@agentunion/fastaun 0.5.29 → 0.5.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/_packed_docs/CHANGELOG.md +22 -0
  3. package/_packed_docs/INDEX.md +11 -2
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +10 -8
  5. package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +18 -1
  6. package/_packed_docs/sdk/0.5.30-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +61 -0
  7. package/_packed_docs/sdk/0.5.30-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +68 -0
  8. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +5 -3
  9. package/_packed_docs/sdk/INDEX.md +9 -1
  10. package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +138 -0
  11. package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256/350/257/246/347/273/206/350/256/276/350/256/241.md +231 -0
  12. package/dist/agent-md.js +13 -4
  13. package/dist/agent-md.js.map +1 -1
  14. package/dist/aid-store.js +5 -3
  15. package/dist/aid-store.js.map +1 -1
  16. package/dist/client/control-messages.d.ts +0 -1
  17. package/dist/client/control-messages.js +66 -68
  18. package/dist/client/control-messages.js.map +1 -1
  19. package/dist/client/rpc-pipeline.js +8 -0
  20. package/dist/client/rpc-pipeline.js.map +1 -1
  21. package/dist/client/v2-e2ee.js +7 -7
  22. package/dist/client/v2-e2ee.js.map +1 -1
  23. package/dist/client.js +5 -5
  24. package/dist/client.js.map +1 -1
  25. package/dist/config.js +23 -18
  26. package/dist/config.js.map +1 -1
  27. package/dist/facades.d.ts +20 -0
  28. package/dist/facades.js +9 -0
  29. package/dist/facades.js.map +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/keystore/aid-db.js +14 -2
  33. package/dist/keystore/aid-db.js.map +1 -1
  34. package/dist/keystore/index.d.ts +3 -0
  35. package/dist/keystore/index.js +61 -1
  36. package/dist/keystore/index.js.map +1 -1
  37. package/dist/keystore/local-identity-store.js +112 -76
  38. package/dist/keystore/local-identity-store.js.map +1 -1
  39. package/dist/keystore/local-token-store.js +15 -26
  40. package/dist/keystore/local-token-store.js.map +1 -1
  41. package/dist/ownership-workflow.js +4 -3
  42. package/dist/ownership-workflow.js.map +1 -1
  43. package/dist/register-flow.js +3 -2
  44. package/dist/register-flow.js.map +1 -1
  45. package/dist/risk-control.js +2 -2
  46. package/dist/risk-control.js.map +1 -1
  47. package/dist/secret-store/file-store.js +68 -56
  48. package/dist/secret-store/file-store.js.map +1 -1
  49. package/dist/semantic-protocol.d.ts +2 -12
  50. package/dist/semantic-protocol.js +31 -48
  51. package/dist/semantic-protocol.js.map +1 -1
  52. package/dist/storage/lowlevel.d.ts +4 -0
  53. package/dist/storage/lowlevel.js +58 -1
  54. package/dist/storage/lowlevel.js.map +1 -1
  55. package/dist/storage/vfs.d.ts +4 -0
  56. package/dist/storage/vfs.js +57 -12
  57. package/dist/storage/vfs.js.map +1 -1
  58. package/dist/tools/cross-sdk-agent.d.ts +1 -1
  59. package/dist/tools/cross-sdk-agent.js +10 -1
  60. package/dist/tools/cross-sdk-agent.js.map +1 -1
  61. package/dist/transport.js +1 -1
  62. package/dist/transport.js.map +1 -1
  63. package/dist/validators.js +9 -8
  64. package/dist/validators.js.map +1 -1
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/package.json +1 -1
@@ -9,9 +9,10 @@
9
9
  * 与 Python SDK 的 FileSecretStore 完全对齐。
10
10
  */
11
11
  import { createCipheriv, createDecipheriv, createHmac, pbkdf2Sync, randomBytes, } from 'node:crypto';
12
- import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, renameSync, readdirSync, } from 'node:fs';
12
+ import { existsSync, mkdirSync, readFileSync, renameSync, readdirSync, } from 'node:fs';
13
13
  import { join } from 'node:path';
14
14
  import { createRequire } from 'node:module';
15
+ import { writeFileAtomic } from '../keystore/index.js';
15
16
  const _noopLogger = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { } };
16
17
  function decodeSecretPart(value) {
17
18
  if (/^[0-9a-fA-F]+$/.test(value) && value.length % 2 === 0) {
@@ -80,27 +81,7 @@ function nextVersionedBackupPath(path) {
80
81
  }
81
82
  }
82
83
  function writeKeyJsonAtomic(path, data) {
83
- const tmp = `${path}.tmp-${process.pid}-${Date.now()}-${randomBytes(4).toString('hex')}`;
84
- try {
85
- writeFileSync(tmp, JSON.stringify(data, null, 2), { encoding: 'utf-8', mode: 0o600 });
86
- try {
87
- renameSync(tmp, path);
88
- }
89
- catch {
90
- try {
91
- unlinkSync(path);
92
- }
93
- catch { /* ignore */ }
94
- renameSync(tmp, path);
95
- }
96
- }
97
- catch (exc) {
98
- try {
99
- unlinkSync(tmp);
100
- }
101
- catch { /* ignore */ }
102
- throw exc;
103
- }
84
+ writeFileAtomic(path, JSON.stringify(data, null, 2), 0o600);
104
85
  }
105
86
  function verifyPrivateKeys(root, oldMasterKey) {
106
87
  const aidsRoot = join(root, 'AIDs');
@@ -145,6 +126,30 @@ function verifyPrivateKeys(root, oldMasterKey) {
145
126
  }
146
127
  return migrations;
147
128
  }
129
+ function writeMetadataMigration(item, rollback = false) {
130
+ const { DatabaseSync } = createRequire(import.meta.url)('node:sqlite');
131
+ const db = new DatabaseSync(item.path);
132
+ try {
133
+ db.exec('PRAGMA busy_timeout = 5000');
134
+ db.exec('BEGIN IMMEDIATE');
135
+ for (const row of item.rows) {
136
+ const updated = db.prepare('UPDATE metadata_kv SET value = ?, updated_at = ? WHERE key = ? AND value = ?').run(rollback ? row.previous : row.value, Date.now(), row.key, rollback ? row.value : row.previous);
137
+ if (Number(updated.changes) !== 1)
138
+ throw new SeedMigrationError('seed migration refused: protected metadata changed concurrently');
139
+ }
140
+ db.exec('COMMIT');
141
+ }
142
+ catch (error) {
143
+ try {
144
+ db.exec('ROLLBACK');
145
+ }
146
+ catch { }
147
+ throw error;
148
+ }
149
+ finally {
150
+ db.close();
151
+ }
152
+ }
148
153
  function verifyMetadata(root, oldMasterKey, newMasterKey) {
149
154
  const { DatabaseSync } = createRequire(import.meta.url)('node:sqlite');
150
155
  const migrations = [];
@@ -221,47 +226,54 @@ function changeSeedBytes(root, oldSeedBytes, newSeedBytes, renameSeedPath, logge
221
226
  result.seedFilesRenamed = 1;
222
227
  return result;
223
228
  }
224
- for (const item of migrations) {
225
- const record = encryptWithKey(newMasterKey, item.aid, 'identity/private_key', item.plaintext);
226
- const verified = tryDecryptWithKey(newMasterKey, item.aid, 'identity/private_key', record);
227
- if (!verified || !verified.equals(item.plaintext)) {
228
- throw new SeedMigrationError(`new seed verification failed for private key: aid=${item.aid}`);
229
+ const writtenKeys = [];
230
+ const writtenMetadata = [];
231
+ try {
232
+ for (const item of migrations) {
233
+ const record = encryptWithKey(newMasterKey, item.aid, 'identity/private_key', item.plaintext);
234
+ const verified = tryDecryptWithKey(newMasterKey, item.aid, 'identity/private_key', record);
235
+ if (!verified || !verified.equals(item.plaintext)) {
236
+ throw new SeedMigrationError(`new seed verification failed for private key: aid=${item.aid}`);
237
+ }
238
+ const data = JSON.parse(readFileSync(item.path, 'utf-8'));
239
+ data.private_key_protection = record;
240
+ delete data.private_key_pem;
241
+ // 覆盖前先备份(.v1/.v2 递增)
242
+ const bakPath = nextVersionedBackupPath(item.path);
243
+ writeFileAtomic(bakPath, readFileSync(item.path), 0o600, false);
244
+ writeKeyJsonAtomic(item.path, data);
245
+ writtenKeys.push({ path: item.path, backup: bakPath });
246
+ result.migrated += 1;
247
+ result.privateKeysMigrated += 1;
248
+ }
249
+ for (const item of metadata) {
250
+ if (item.rows.length === 0)
251
+ continue;
252
+ writeMetadataMigration(item);
253
+ writtenMetadata.push(item);
229
254
  }
230
- const data = JSON.parse(readFileSync(item.path, 'utf-8'));
231
- data.private_key_protection = record;
232
- delete data.private_key_pem;
233
- // 覆盖前先备份(.v1/.v2 递增)
234
- const bakPath = nextVersionedBackupPath(item.path);
235
- writeFileSync(bakPath, readFileSync(item.path));
236
- writeKeyJsonAtomic(item.path, data);
237
- result.migrated += 1;
238
- result.privateKeysMigrated += 1;
239
255
  }
240
- const { DatabaseSync } = createRequire(import.meta.url)('node:sqlite');
241
- for (const item of metadata) {
242
- if (item.rows.length === 0)
243
- continue;
244
- const db = new DatabaseSync(item.path);
245
- try {
246
- db.exec('PRAGMA busy_timeout = 5000');
247
- db.exec('BEGIN IMMEDIATE');
248
- for (const row of item.rows) {
249
- const updated = db.prepare('UPDATE metadata_kv SET value = ?, updated_at = ? WHERE key = ? AND value = ?').run(row.value, Date.now(), row.key, row.previous);
250
- if (Number(updated.changes) !== 1)
251
- throw new SeedMigrationError('seed migration refused: protected metadata changed concurrently');
256
+ catch (error) {
257
+ const failures = [];
258
+ for (const item of writtenMetadata.reverse()) {
259
+ try {
260
+ writeMetadataMigration(item, true);
261
+ }
262
+ catch (failure) {
263
+ failures.push(failure);
252
264
  }
253
- db.exec('COMMIT');
254
265
  }
255
- catch (error) {
266
+ for (const item of writtenKeys.reverse()) {
256
267
  try {
257
- db.exec('ROLLBACK');
268
+ renameSync(item.backup, item.path);
269
+ }
270
+ catch (failure) {
271
+ failures.push(failure);
258
272
  }
259
- catch { }
260
- throw error;
261
- }
262
- finally {
263
- db.close();
264
273
  }
274
+ if (failures.length)
275
+ throw new AggregateError([error, ...failures], 'seed migration failed: rollback incomplete');
276
+ throw error;
265
277
  }
266
278
  if (renameSeedPath && renameSeedFile(renameSeedPath))
267
279
  result.seedFilesRenamed = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/secret-store/file-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/secret-store/file-store.ts"],"names":[],"mappings":"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"}
@@ -318,6 +318,7 @@ export interface SemanticMessageVerificationContext extends Partial<RecordVerifi
318
318
  selfDeviceId: string;
319
319
  selfIkPrivate?: Uint8Array;
320
320
  selfSpkPrivate?: Uint8Array;
321
+ resolveMessage?: (messageId: string) => Uint8Array | Promise<Uint8Array>;
321
322
  resolveDecryptionKeys?: (envelope: Record<string, unknown>) => {
322
323
  ikPriv: Uint8Array;
323
324
  spkPriv?: Uint8Array;
@@ -330,19 +331,8 @@ export interface SemanticMessageVerificationContext extends Partial<RecordVerifi
330
331
  verifySenderIdentity: (sender: string, device: string, fingerprint: string, signedAt: number, publicKey: Uint8Array) => void | Promise<void>;
331
332
  }
332
333
  export interface MessageBodyRef {
333
- sender: AID;
334
334
  message_id: string;
335
- signed_core_hash: Digest;
336
- conversation: {
337
- kind: "p2p";
338
- to: AID;
339
- } | {
340
- kind: "group";
341
- group_id: string;
342
- epoch: number;
343
- state_commitment: JsonObject;
344
- };
345
- envelope: EvidenceRef;
335
+ envelope_hash: Digest;
346
336
  context?: EvidenceRef[];
347
337
  attachments?: EvidenceRef[];
348
338
  }
@@ -1,4 +1,3 @@
1
- import { canonicalJson as messageCanonical } from './v2/crypto/canonical.js';
2
1
  import { decryptMessageWithEvidence } from './v2/e2ee/decrypt.js';
3
2
  import { createHash, verify as verifySignature, X509Certificate } from 'node:crypto';
4
3
  import { canonicalJson as legacyCanonicalJson, parseJsonStrict as legacyParseJsonStrict, validateCapability } from './org-protocol.js';
@@ -280,11 +279,16 @@ export async function archiveMessage(envelope, received) {
280
279
  shape(received, { received_by: aid, received_at: integer, source: string });
281
280
  return { envelope: await createEvidenceRef(bytes, 'aun-e2ee-v2-envelope-raw/1'), envelope_bytes: bytes, ...received };
282
281
  }
283
- async function verifiedMessage(ref, context) {
282
+ async function verifiedMessage(ref, context, originalBytes) {
284
283
  messageBody(ref);
285
- if (ref.envelope.profile !== 'aun-e2ee-v2-envelope-raw/1')
286
- invalid('unsupported message evidence profile');
287
- const envelope = parseJsonStrict(await resolveEvidence(ref.envelope, context.resolvers));
284
+ if (originalBytes === undefined && typeof context.resolveMessage !== 'function')
285
+ throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'trusted received-message resolver is unavailable');
286
+ const bytes = originalBytes ?? await context.resolveMessage(ref.message_id);
287
+ if (!evidenceBytes(bytes))
288
+ throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'original message bytes are unavailable');
289
+ if (bytesDigest(bytes) !== ref.envelope_hash)
290
+ throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'message envelope bytes differ from signed hash');
291
+ const envelope = parseJsonStrict(bytes);
288
292
  object(envelope);
289
293
  object(envelope.aad);
290
294
  const aad = envelope.aad;
@@ -293,38 +297,35 @@ async function verifiedMessage(ref, context) {
293
297
  integer(aad.timestamp);
294
298
  string(aad.from_device);
295
299
  string(aad.wrap_protocol);
296
- if (aad.from !== ref.sender || aad.message_id !== ref.message_id)
297
- throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'protected message identity differs from signed reference');
298
- if (ref.conversation.kind === 'p2p') {
299
- if (envelope.type !== 'e2ee.p2p_encrypted' || aad.to !== ref.conversation.to || context.selfAid !== aad.to)
300
- throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'P2P reference or original recipient differs');
301
- }
302
- else if (envelope.type !== 'e2ee.group_encrypted' || aad.group_id !== ref.conversation.group_id || aad.epoch !== ref.conversation.epoch
303
- || digest(aad.state_commitment) !== digest(ref.conversation.state_commitment))
304
- throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'group epoch or state commitment differs');
300
+ aid(aad.from);
301
+ if (aad.message_id !== ref.message_id)
302
+ throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'protected message ID differs from signed reference');
303
+ if (envelope.type === 'e2ee.p2p_encrypted') {
304
+ if (context.selfAid !== aad.to)
305
+ throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'business identity was not the original P2P recipient');
306
+ }
307
+ else if (envelope.type === 'e2ee.group_encrypted') {
308
+ string(aad.group_id);
309
+ integer(aad.epoch);
310
+ jsonObject(aad.state_commitment);
311
+ }
312
+ else
313
+ invalid('unsupported message envelope type');
305
314
  if (!Array.isArray(envelope.recipients) && (!envelope.recipient || envelope.merkle_proof !== undefined && !Array.isArray(envelope.merkle_proof)))
306
315
  throw new SemanticProtocolError('SEMANTIC_STATE_UNAVAILABLE', 'original recipient collection or Merkle proof is required');
307
316
  if (typeof envelope.recipients_digest !== 'string' || !/^[0-9a-f]{64}$/.test(envelope.recipients_digest))
308
317
  invalid('invalid original recipient digest');
309
- const ciphertext = decodeBase64(envelope.ciphertext), tag = decodeBase64(envelope.tag), nonce = decodeBase64(envelope.nonce), signature = decodeBase64(envelope.sender_signature);
318
+ decodeBase64(envelope.ciphertext);
319
+ const tag = decodeBase64(envelope.tag), nonce = decodeBase64(envelope.nonce), signature = decodeBase64(envelope.sender_signature);
310
320
  decodeBase64(envelope.sender_session_pk);
311
321
  string(envelope.sender_cert_fingerprint);
312
322
  if (tag.length !== 16 || nonce.length !== 12 || signature.length !== 64)
313
323
  invalid('invalid V2 encryption or RAW signature lengths');
314
- const aadBytes = messageCanonical(aad), root = new Uint8Array(envelope.recipients_digest.match(/../g).map((value) => parseInt(value, 16)));
315
- const core = new Uint8Array(ciphertext.length + tag.length + aadBytes.length + root.length);
316
- let offset = 0;
317
- for (const part of [ciphertext, tag, aadBytes, root]) {
318
- core.set(part, offset);
319
- offset += part.length;
320
- }
321
- if (bytesDigest(core) !== ref.signed_core_hash)
322
- throw new SemanticProtocolError('SEMANTIC_BINDING_INVALID', 'message signed core differs from reference');
323
324
  if (typeof context.resolveSenderKey !== 'function' || typeof context.verifySenderIdentity !== 'function')
324
325
  throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'trusted historical sender identity adapter is required');
325
326
  const signedAt = Math.trunc(aad.timestamp / 1000), fingerprint = envelope.sender_cert_fingerprint;
326
- const senderKey = await context.resolveSenderKey(ref.sender, aad.from_device, fingerprint, signedAt);
327
- await context.verifySenderIdentity(ref.sender, aad.from_device, fingerprint, signedAt, senderKey);
327
+ const senderKey = await context.resolveSenderKey(aad.from, aad.from_device, fingerprint, signedAt);
328
+ await context.verifySenderIdentity(aad.from, aad.from_device, fingerprint, signedAt, senderKey);
328
329
  const keys = context.resolveDecryptionKeys ? await context.resolveDecryptionKeys(envelope) : { ikPriv: context.selfIkPrivate, spkPriv: context.selfSpkPrivate };
329
330
  if (!evidenceBytes(keys.ikPriv))
330
331
  throw new SemanticProtocolError('SEMANTIC_IDENTITY_INVALID', 'original receiver decryption keys are required');
@@ -345,19 +346,7 @@ async function verifyEvidenceProfile(ref, context) {
345
346
  object(envelope);
346
347
  object(envelope.aad);
347
348
  const aad = envelope.aad;
348
- const ciphertext = decodeBase64(envelope.ciphertext), tag = decodeBase64(envelope.tag), aadBytes = messageCanonical(aad);
349
- if (typeof envelope.recipients_digest !== 'string' || !/^[0-9a-f]{64}$/.test(envelope.recipients_digest))
350
- invalid('invalid original recipient digest');
351
- const root = new Uint8Array(envelope.recipients_digest.match(/../g).map((value) => parseInt(value, 16)));
352
- const core = new Uint8Array(ciphertext.length + tag.length + aadBytes.length + root.length);
353
- let offset = 0;
354
- for (const part of [ciphertext, tag, aadBytes, root]) {
355
- core.set(part, offset);
356
- offset += part.length;
357
- }
358
- await verifiedMessage({ sender: aad.from, message_id: aad.message_id, signed_core_hash: bytesDigest(core),
359
- conversation: envelope.type === 'e2ee.p2p_encrypted' ? { kind: 'p2p', to: aad.to }
360
- : { kind: 'group', group_id: aad.group_id, epoch: aad.epoch, state_commitment: aad.state_commitment }, envelope: ref }, context);
349
+ await verifiedMessage({ message_id: aad.message_id, envelope_hash: ref.hash }, context, bytes);
361
350
  }
362
351
  else if (ref.profile === 'aun-cap-usage-allocation/1') {
363
352
  const allocation = parseJsonStrict(bytes), canonical = canonicalJson(allocation);
@@ -380,7 +369,7 @@ export async function verifyMessageBody(value, context) {
380
369
  if (credential.authorization.kind === 'text')
381
370
  return { credential_hash: digest(credential), body_hash: bytesDigest(new TextEncoder().encode(credential.authorization.text)), text: credential.authorization.text, evidence_hashes: [...evidence].sort() };
382
371
  const ref = credential.authorization.message, verified = await verifiedMessage(ref, context);
383
- evidence.add(ref.envelope.hash);
372
+ evidence.add(ref.envelope_hash);
384
373
  for (const item of ref.context ?? []) {
385
374
  if (item.profile !== 'aun-e2ee-v2-envelope-raw/1')
386
375
  invalid('necessary context requires message evidence profile');
@@ -397,14 +386,8 @@ export async function verifyMessageBody(value, context) {
397
386
  }
398
387
  function messageBody(value) {
399
388
  shape(value, {
400
- message_id: string, sender: aid, signed_core_hash: hash,
401
- conversation: conversation => {
402
- object(conversation);
403
- if (conversation.kind === 'p2p')
404
- shape(conversation, { kind: literal('p2p'), to: aid });
405
- else
406
- shape(conversation, { kind: literal('group'), group_id: string, epoch: integer, state_commitment: jsonObject });
407
- }, envelope: validateEvidenceRef, 'context?': array(validateEvidenceRef), 'attachments?': array(validateEvidenceRef),
389
+ message_id: string, envelope_hash: hash,
390
+ 'context?': array(validateEvidenceRef), 'attachments?': array(validateEvidenceRef),
408
391
  });
409
392
  }
410
393
  function capability(value) {