@agentunion/fastaun-browser 0.5.19 → 0.5.21

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 (154) hide show
  1. package/CHANGELOG.md +176 -78
  2. package/_packed_docs/CHANGELOG.md +176 -78
  3. package/_packed_docs/INDEX.md +288 -269
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +101 -95
  5. package/_packed_docs/agent.md/SCHEMA.md +7 -7
  6. package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/344/270/216/346/215/242owner/347/274/226/346/216/222/346/226/271/346/241/210.md +530 -0
  7. package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/345/256/214/346/225/264/350/256/276/350/256/241/344/270/216/345/256/236/346/226/275/350/256/241/345/210/222.md +685 -0
  8. package/_packed_docs/agent.md/working/agent.md-schema/344/270/216/347/255/276/345/217/221/351/252/214/347/255/276/346/265/201/347/250/213/346/276/204/346/270/205.md +349 -0
  9. package/_packed_docs/agent.md/working//346/234/254/345/234/260Docker/346/265/213/350/257/225Bug/346/270/205/345/215/225.md +40 -0
  10. package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +11 -11
  11. package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +372 -331
  12. package/_packed_docs/protocol/08-AUN-E2EE.md +17 -12
  13. package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +676 -676
  14. package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +8 -12
  15. package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +445 -0
  16. package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.0.md +161 -0
  17. package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.1.md +666 -0
  18. package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2113.0.md +233 -0
  19. package/_packed_docs/protocol/agent.md/SCHEMA.md +1 -1
  20. package/_packed_docs/sdk/0.5.21-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +368 -0
  21. package/_packed_docs/sdk/0.5.21-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +350 -0
  22. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +1 -1
  23. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +5 -1
  24. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +64 -64
  25. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +70 -63
  26. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +43 -40
  27. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +179 -19
  28. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +50 -49
  29. package/_packed_docs/sdk/09-group-rpc-manual.md +261 -254
  30. package/_packed_docs/sdk/09-message-rpc-manual.md +253 -160
  31. package/_packed_docs/sdk/09-storage-rpc-manual.md +18 -26
  32. package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +71 -0
  33. package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +88 -0
  34. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +105 -92
  35. package/_packed_docs/sdk/INDEX.md +197 -167
  36. package/_packed_docs/sdk/Ownership-SDK/345/256/236/347/216/260/346/214/207/345/215/227.md +169 -0
  37. package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/227.md +349 -0
  38. package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +930 -0
  39. package/_packed_docs/sdk/Ownership-SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +270 -0
  40. package/_packed_docs/sdk/Ownership2.1-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +363 -0
  41. package/_packed_docs/sdk/Ownership2.1-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +553 -0
  42. package/_packed_docs/sdk/Ownership2.1-TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +708 -0
  43. package/_packed_docs/sdk/Ownership2.1/350/257/246/347/273/206/350/256/276/350/256/241.md +480 -0
  44. package/_packed_docs/sdk/Ownership/347/256/241/347/220/206/344/270/223/351/242/230.md +559 -0
  45. package/_packed_docs/sdk/ProtectedHeaders/347/224/250/346/263/225/344/270/223/351/242/230.md +299 -0
  46. package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +173 -0
  47. package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +211 -0
  48. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/345/256/236/347/216/260/347/247/273/346/244/215/346/214/207/345/215/227.md +331 -0
  49. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +207 -0
  50. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +252 -0
  51. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/345/256/236/346/226/275/350/256/241/345/210/222.md +156 -0
  52. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/346/226/271/346/241/210.md +273 -0
  53. package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/350/257/246/347/273/206/350/256/276/350/256/241.md +211 -0
  54. package/dist/agent-md-schema.d.ts +16 -4
  55. package/dist/agent-md-schema.d.ts.map +1 -1
  56. package/dist/agent-md-schema.js +65 -30
  57. package/dist/agent-md-schema.js.map +1 -1
  58. package/dist/agent-md.d.ts +35 -3
  59. package/dist/agent-md.d.ts.map +1 -1
  60. package/dist/agent-md.js +384 -150
  61. package/dist/agent-md.js.map +1 -1
  62. package/dist/aid-store.d.ts +59 -0
  63. package/dist/aid-store.d.ts.map +1 -1
  64. package/dist/aid-store.js +202 -16
  65. package/dist/aid-store.js.map +1 -1
  66. package/dist/aid.d.ts +4 -1
  67. package/dist/aid.d.ts.map +1 -1
  68. package/dist/aid.js +24 -42
  69. package/dist/aid.js.map +1 -1
  70. package/dist/auth.d.ts +1 -1
  71. package/dist/auth.d.ts.map +1 -1
  72. package/dist/auth.js +89 -18
  73. package/dist/auth.js.map +1 -1
  74. package/dist/bundle.js +6410 -1848
  75. package/dist/cert-utils.d.ts +50 -1
  76. package/dist/cert-utils.d.ts.map +1 -1
  77. package/dist/cert-utils.js +123 -56
  78. package/dist/cert-utils.js.map +1 -1
  79. package/dist/client/delivery.d.ts +108 -16
  80. package/dist/client/delivery.d.ts.map +1 -1
  81. package/dist/client/delivery.js +1411 -184
  82. package/dist/client/delivery.js.map +1 -1
  83. package/dist/client/rpc-pipeline.d.ts +4 -1
  84. package/dist/client/rpc-pipeline.d.ts.map +1 -1
  85. package/dist/client/rpc-pipeline.js +203 -117
  86. package/dist/client/rpc-pipeline.js.map +1 -1
  87. package/dist/client/v2-e2ee.d.ts +22 -3
  88. package/dist/client/v2-e2ee.d.ts.map +1 -1
  89. package/dist/client/v2-e2ee.js +1312 -684
  90. package/dist/client/v2-e2ee.js.map +1 -1
  91. package/dist/client.d.ts +23 -2
  92. package/dist/client.d.ts.map +1 -1
  93. package/dist/client.js +419 -101
  94. package/dist/client.js.map +1 -1
  95. package/dist/config.d.ts +4 -0
  96. package/dist/config.d.ts.map +1 -1
  97. package/dist/config.js +1 -0
  98. package/dist/config.js.map +1 -1
  99. package/dist/crypto.d.ts.map +1 -1
  100. package/dist/crypto.js +8 -6
  101. package/dist/crypto.js.map +1 -1
  102. package/dist/events.d.ts +24 -3
  103. package/dist/events.d.ts.map +1 -1
  104. package/dist/events.js +171 -29
  105. package/dist/events.js.map +1 -1
  106. package/dist/facades.d.ts +42 -1
  107. package/dist/facades.d.ts.map +1 -1
  108. package/dist/facades.js +368 -12
  109. package/dist/facades.js.map +1 -1
  110. package/dist/index.d.ts +6 -4
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +1 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/keystore/index.d.ts +14 -1
  115. package/dist/keystore/index.d.ts.map +1 -1
  116. package/dist/keystore/indexeddb-identity-store.d.ts +4 -0
  117. package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -1
  118. package/dist/keystore/indexeddb-identity-store.js +30 -13
  119. package/dist/keystore/indexeddb-identity-store.js.map +1 -1
  120. package/dist/keystore/indexeddb-shared.d.ts +19 -2
  121. package/dist/keystore/indexeddb-shared.d.ts.map +1 -1
  122. package/dist/keystore/indexeddb-shared.js +193 -6
  123. package/dist/keystore/indexeddb-shared.js.map +1 -1
  124. package/dist/keystore/indexeddb-token-store.d.ts +15 -2
  125. package/dist/keystore/indexeddb-token-store.d.ts.map +1 -1
  126. package/dist/keystore/indexeddb-token-store.js +308 -27
  127. package/dist/keystore/indexeddb-token-store.js.map +1 -1
  128. package/dist/org-protocol.d.ts +45 -0
  129. package/dist/org-protocol.d.ts.map +1 -1
  130. package/dist/org-protocol.js +827 -21
  131. package/dist/org-protocol.js.map +1 -1
  132. package/dist/ownership-v21.d.ts +43 -9
  133. package/dist/ownership-v21.d.ts.map +1 -1
  134. package/dist/ownership-v21.js +183 -81
  135. package/dist/ownership-v21.js.map +1 -1
  136. package/dist/ownership-workflow.d.ts +36 -1
  137. package/dist/ownership-workflow.d.ts.map +1 -1
  138. package/dist/ownership-workflow.js +610 -89
  139. package/dist/ownership-workflow.js.map +1 -1
  140. package/dist/seq-tracker.d.ts +2 -0
  141. package/dist/seq-tracker.d.ts.map +1 -1
  142. package/dist/seq-tracker.js +3 -2
  143. package/dist/seq-tracker.js.map +1 -1
  144. package/dist/tools/cross-sdk-agent.d.ts +61 -3
  145. package/dist/tools/cross-sdk-agent.d.ts.map +1 -1
  146. package/dist/tools/cross-sdk-agent.js +524 -45
  147. package/dist/tools/cross-sdk-agent.js.map +1 -1
  148. package/dist/transport.d.ts +4 -0
  149. package/dist/transport.d.ts.map +1 -1
  150. package/dist/transport.js +64 -30
  151. package/dist/transport.js.map +1 -1
  152. package/dist/version.d.ts +1 -1
  153. package/dist/version.js +1 -1
  154. package/package.json +1 -1
package/dist/aid-store.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AID } from './aid.js';
2
2
  import { CryptoProvider, pemToArrayBuffer, importPrivateKeyEcdsa, importCertPublicKeyEcdsa, ecdsaSignDer, ecdsaVerifyDer, certificateSha256Fingerprint } from './crypto.js';
3
3
  import * as codes from './error-codes.js';
4
- import { certMatchesFingerprint, publicKeyDerB64 } from './cert-utils.js';
4
+ import { certMatchesFingerprint, parseAgentMdTailSignatureForRead, publicKeyDerB64, signDocument, verifyDocument, parseCertMetadata } from './cert-utils.js';
5
5
  import { RegisterFlow } from './register-flow.js';
6
6
  import { GatewayDiscovery } from './discovery.js';
7
7
  import { AUNError, ClientSignatureError, IdentityConflictError, NotFoundError, StateError, ValidationError } from './errors.js';
@@ -9,11 +9,29 @@ import { IndexedDBIdentityStore } from './keystore/indexeddb-identity-store.js';
9
9
  import { IndexedDBTokenStore } from './keystore/indexeddb-token-store.js';
10
10
  import { getDeviceId, normalizeSlotId } from './config.js';
11
11
  import { resultErr, resultOk } from './result.js';
12
- import { AgentMdManager, buildDefaultAgentMd } from './agent-md.js';
12
+ import { AgentMdManager, buildDefaultAgentMd, readAgentMdFrontmatter } from './agent-md.js';
13
13
  import { AuthFlow } from './auth.js';
14
14
  import { parseOwnershipRegistrationIntent } from './ownership-workflow.js';
15
15
  import { validateAIDFormat } from './validators.js';
16
16
  import { validateAgentMdDocument } from './agent-md-schema.js';
17
+ async function readSigningInput(input, inputType = 'text') {
18
+ if (inputType === 'text') {
19
+ if (typeof input === 'string' || input instanceof Uint8Array)
20
+ return input;
21
+ throw new Error('text input requires a string or Uint8Array');
22
+ }
23
+ if (typeof input === 'string' || input instanceof Uint8Array)
24
+ throw new Error('browser file input does not support filesystem paths');
25
+ const file = 'getFile' in input ? await input.getFile() : input;
26
+ if (typeof file.arrayBuffer === 'function')
27
+ return new Uint8Array(await file.arrayBuffer());
28
+ return await new Promise((resolve, reject) => {
29
+ const reader = new FileReader();
30
+ reader.onload = () => resolve(new Uint8Array(reader.result));
31
+ reader.onerror = () => reject(reader.error);
32
+ reader.readAsArrayBuffer(file);
33
+ });
34
+ }
17
35
  // ── 证书 DER 解析工具 ────────────────────────────────────────────
18
36
  function _derReadLength(data, offset) {
19
37
  if (offset >= data.length)
@@ -335,6 +353,8 @@ export class AIDStore {
335
353
  const fp = String(certFingerprint ?? '').trim().toLowerCase();
336
354
  const cachedCert = await this._keystore.loadCert(target, fp || undefined);
337
355
  if (cachedCert) {
356
+ const gatewayUrl = await this._resolveGateway(target);
357
+ await this._verifyDownloadedPeerCertificate(gatewayUrl, target, cachedCert, fp, signedAt);
338
358
  return await AID.create({ aid: target, aunPath: this.aunPath, certPem: cachedCert, privateKeyPem: null, certValid: true, privateKeyValid: false });
339
359
  }
340
360
  if (fp) {
@@ -365,6 +385,76 @@ export class AIDStore {
365
385
  if (typeof closeTokens === 'function')
366
386
  closeTokens.call(this._tokenStore);
367
387
  }
388
+ async sign(aid, input, options = {}) {
389
+ try {
390
+ if (options.inputType !== undefined && !['text', 'file'].includes(options.inputType) || options.format !== undefined && !['raw', 'document'].includes(options.format))
391
+ throw new Error('unsupported signing inputType or format');
392
+ if (options.append && options.format !== 'document')
393
+ throw new Error('append requires document format');
394
+ if (options.inPlace && (options.inputType !== 'file' || options.format !== 'document' || typeof input !== 'object' || !('createWritable' in input) || typeof input.createWritable !== 'function'))
395
+ throw new Error('inPlace document signing requires a writable file handle');
396
+ const loaded = options.identity ? resultOk({ aid: options.identity }) : await this.load(aid);
397
+ if (!loaded.ok)
398
+ return loaded;
399
+ if (loaded.data.aid.aid !== aid || parseCertMetadata(loaded.data.aid.certPem).subject.toLowerCase() !== aid.toLowerCase())
400
+ throw new Error('signing identity does not match AID');
401
+ const raw = await readSigningInput(input, options.inputType);
402
+ if (typeof raw === 'string' && new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(new TextEncoder().encode(raw)) !== raw)
403
+ throw new Error('signing input must be valid UTF-8');
404
+ if (options.format !== 'document')
405
+ return await loaded.data.aid.sign(raw);
406
+ const content = typeof raw === 'string' ? raw : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(raw);
407
+ const result = await signDocument(loaded.data.aid, content, options);
408
+ if (options.inPlace) {
409
+ const writable = await input.createWritable();
410
+ await writable.write(result.signed);
411
+ await writable.close();
412
+ }
413
+ return resultOk(result);
414
+ }
415
+ catch (exc) {
416
+ return resultErr(codes.SIGNATURE_OPERATION_ERROR, String(exc), exc);
417
+ }
418
+ }
419
+ async verify(aid, input, signatureOrOptions = {}, options = {}) {
420
+ try {
421
+ const opts = typeof signatureOrOptions === 'string' ? options : signatureOrOptions;
422
+ if (opts.inputType !== undefined && !['text', 'file'].includes(opts.inputType) || opts.format !== undefined && !['raw', 'document'].includes(opts.format))
423
+ throw new Error('unsupported verification inputType or format');
424
+ if (opts.identity && (opts.identity.aid !== aid || parseCertMetadata(opts.identity.certPem).subject.toLowerCase() !== aid.toLowerCase()))
425
+ throw new Error('verification identity does not match AID');
426
+ const raw = await readSigningInput(input, opts.inputType);
427
+ if (typeof raw === 'string' && new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(new TextEncoder().encode(raw)) !== raw)
428
+ throw new Error('verification input must be valid UTF-8');
429
+ if (opts.format === 'document') {
430
+ const content = typeof raw === 'string' ? raw : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(raw);
431
+ const resolver = opts.certificateResolver ?? (async (signer, fingerprint) => {
432
+ if (opts.identity?.aid === signer)
433
+ return opts.identity;
434
+ const resolved = await this.load(signer);
435
+ if (!resolved.ok)
436
+ throw new Error(resolved.error.message);
437
+ return resolved.data.aid;
438
+ });
439
+ return resultOk(await verifyDocument(content, resolver, { expectedAid: aid }));
440
+ }
441
+ if (typeof signatureOrOptions !== 'string')
442
+ throw new Error('raw verification requires a detached signature');
443
+ const supplied = !opts.identity && opts.certificateResolver ? await opts.certificateResolver(aid, '', 0) : undefined;
444
+ if (supplied && typeof supplied !== 'string' && 'aid' in supplied && supplied.aid !== aid)
445
+ throw new Error('verification certificate identity does not match AID');
446
+ const suppliedPem = typeof supplied === 'string' ? supplied : supplied?.certPem;
447
+ const loaded = opts.identity ? resultOk({ aid: opts.identity }) : suppliedPem ? resultOk({ aid: await AID.create({ aid, aunPath: this.aunPath, certPem: suppliedPem, privateKeyPem: null, certValid: true, privateKeyValid: false }) }) : await this.load(aid);
448
+ if (!loaded.ok)
449
+ return loaded;
450
+ if (loaded.data.aid.aid !== aid || parseCertMetadata(loaded.data.aid.certPem).subject.toLowerCase() !== aid.toLowerCase())
451
+ throw new Error('verification identity does not match AID');
452
+ return await loaded.data.aid.verify(raw, signatureOrOptions);
453
+ }
454
+ catch (exc) {
455
+ return resultErr(codes.VERIFICATION_OPERATION_ERROR, String(exc), exc);
456
+ }
457
+ }
368
458
  async load(aid) {
369
459
  const target = String(aid ?? '').trim();
370
460
  const certPem = await this._keystore.loadCert(target);
@@ -497,8 +587,8 @@ export class AIDStore {
497
587
  this._registerFlow.validateAidName(target);
498
588
  const type = String(options?.type ?? '').trim(), owner = String(options?.owner ?? '').trim().toLowerCase();
499
589
  const entity = ['group', 'org'].includes(type);
500
- if (!type || type === 'human' && owner || (type === 'agent' || entity) && !owner)
501
- throw new ValidationError('register requires type; human forbids owner; agent/group/org requires owner');
590
+ if (!type || type === 'human' && owner || entity && !owner)
591
+ throw new ValidationError('register requires type; human forbids owner; group/org requires owner');
502
592
  if (owner)
503
593
  validateAIDFormat(owner, 'owner');
504
594
  const previousRaw = await this._tokenStore.getMetadata(target, 'registration_intent');
@@ -507,7 +597,8 @@ export class AIDStore {
507
597
  if (previous && (previous.type !== type || previous.owner !== owner || previous.exttype !== exttype))
508
598
  throw new StateError('ownership registration intent changed', { stringCode: 'conflict' });
509
599
  const intent = previous ?? (entity ? { schema_version: 1, sub_aid: target, type, owner, exttype, protocol: 'entity', pending: false } : { schema_version: 1, sub_aid: target, type, owner, exttype, operation_id: crypto.randomUUID(), pending: Boolean(owner) });
510
- await this._tokenStore.setMetadata(target, 'registration_intent', JSON.stringify(intent));
600
+ if (type !== 'agent' || owner)
601
+ await this._tokenStore.setMetadata(target, 'registration_intent', JSON.stringify(intent));
511
602
  const gatewayUrl = await this._resolveGateway(target);
512
603
  const result = await this._registerFlow.registerAid(gatewayUrl, target);
513
604
  if (result.cert) {
@@ -522,8 +613,8 @@ export class AIDStore {
522
613
  }
523
614
  await this._persistGatewayUrl(target, gatewayUrl);
524
615
  if (!entity) {
525
- const snapshot = await this._agentMdManager.readOwnershipFresh(target).catch(() => null);
526
- if (snapshot && !snapshot.exists && snapshot.relation_version === 0 && snapshot.lock === 'unlocked')
616
+ const snapshot = await this._agentMdManager.readAgentMdFresh(target).catch(() => null);
617
+ if (snapshot && !snapshot.exists)
527
618
  await this.uploadAgentMd(target, buildDefaultAgentMd(target, { type, exttype: intent.exttype }));
528
619
  }
529
620
  return resultOk({ registered: true });
@@ -569,7 +660,12 @@ export class AIDStore {
569
660
  let peer;
570
661
  let certFromCache = false;
571
662
  const cached = await this.load(target);
572
- if (cached.ok && !forceRefresh) {
663
+ const localIdentity = !cached.ok && cached.error.code === codes.CERT_EXPIRED && !forceRefresh && !skipAgentMd ? await this._expiredIdentityForAgentMdRead(target) : null;
664
+ if (localIdentity) {
665
+ peer = localIdentity;
666
+ certFromCache = true;
667
+ }
668
+ else if (cached.ok && !forceRefresh) {
573
669
  peer = cached.data.aid;
574
670
  certFromCache = true;
575
671
  }
@@ -588,17 +684,68 @@ export class AIDStore {
588
684
  }
589
685
  const source = { cert_from_cache: certFromCache, agent_md_fetched: false };
590
686
  if (skipAgentMd)
591
- return resultOk({ aid: peer, source });
687
+ return await this._resolveOwnership({ aid: peer, source }, opts);
688
+ if (!forceRefresh && (localIdentity || peer.isPrivateKeyValid() && peer.privateKeyPem)) {
689
+ const record = await this._agentMdManager.loadRecord(target, true);
690
+ const draft = String(record?.local_draft_content ?? '');
691
+ const local = draft || await this._agentMdManager.readContent(target);
692
+ if (local) {
693
+ const etag = await AgentMdManager.contentEtag(local);
694
+ return await this._resolveOwnership({ aid: peer, source, agent_md: { aid: target, content: local, frontmatter: readAgentMdFrontmatter(local), verification: { status: 'unverified' }, signature: { status: 'unverified' }, cert_pem: peer.certPem, etag: draft ? '' : etag, last_modified: String(record?.last_modified ?? ''), status: 0, in_sync: draft ? false : etag === record?.remote_etag, saved_to: null, save_error: null } }, opts);
695
+ }
696
+ }
592
697
  const agentMd = await this.downloadAgentMd(target, opts?.timeout);
593
698
  if (!agentMd.ok)
594
699
  return agentMd;
595
700
  source.agent_md_fetched = true;
596
- return resultOk({ aid: peer, agent_md: agentMd.data, source });
701
+ return await this._resolveOwnership({ aid: peer, agent_md: agentMd.data, source }, opts);
597
702
  }
598
703
  catch (exc) {
599
704
  return resultErr(codes.NETWORK_ERROR, String(exc), exc);
600
705
  }
601
706
  }
707
+ async _resolveOwnership(data, opts) {
708
+ if (!opts?.ownership)
709
+ return resultOk(data);
710
+ const target = data.aid.aid;
711
+ try {
712
+ const cached = (await this._agentMdManager.loadRecord(target))?.ownership_snapshot;
713
+ const now = Date.now(), ttl = opts.ownershipTtlMs ?? 60_000;
714
+ const hash = data.agent_md ? (await AgentMdManager.contentEtag(data.agent_md.content)).slice(1, -1) : '';
715
+ if (!opts.forceRefresh && cached?.sub_aid === target && cached.status !== 'unavailable' && now >= cached.checked_at && now - cached.checked_at < ttl && (!hash || cached.agent_md_sha256 === hash)) {
716
+ data.ownership = { ...JSON.parse(JSON.stringify(cached)), cached: true };
717
+ }
718
+ else {
719
+ const checked = await opts.ownership.checkOwnershipConsensus(target);
720
+ data.ownership = { ...JSON.parse(JSON.stringify(checked)), checked_at: Date.now(), cached: false };
721
+ await this._agentMdManager.saveRecord(target, { ownership_snapshot: JSON.parse(JSON.stringify(data.ownership)) });
722
+ }
723
+ }
724
+ catch (error) {
725
+ data.ownership = { status: 'unavailable', sub_aid: target, owner_aid: null, relation_version: 0, lock: 'unlocked', agent_md_etag: '', agent_md_sha256: '', owner_md_sha256: '', code: 'unavailable', reason: error instanceof Error ? error.message : String(error), retryable: true, checked_at: Date.now(), cached: false };
726
+ await this._agentMdManager.saveRecord(target, { ownership_snapshot: data.ownership });
727
+ }
728
+ return resultOk(data);
729
+ }
730
+ async _expiredIdentityForAgentMdRead(target) {
731
+ const record = await this._agentMdManager.loadRecord(target, true);
732
+ if (!String(record?.local_draft_content ?? '') && !await this._agentMdManager.readContent(target))
733
+ return null;
734
+ const certPem = await this._keystore.loadCert(target);
735
+ const keyPair = await this._keystore.loadKeyPair(target);
736
+ if (!certPem || !keyPair?.private_key_pem || parseCertCN(certPem) !== target)
737
+ return null;
738
+ try {
739
+ const privateKey = await importPrivateKeyEcdsa(String(keyPair.private_key_pem));
740
+ const probe = new TextEncoder().encode('aun-aidstore-private-key-self-test');
741
+ if (!await ecdsaVerifyDer(await importCertPublicKeyEcdsa(certPem), await ecdsaSignDer(privateKey, probe), probe))
742
+ return null;
743
+ return await AID.create({ aid: target, aunPath: this.aunPath, certPem, privateKeyPem: null, certValid: false, privateKeyValid: false, deviceId: this.deviceId, slotId: this.slotId, verifySsl: this._verifySsl, aidStore: this });
744
+ }
745
+ catch {
746
+ return null;
747
+ }
748
+ }
602
749
  async downloadAgentMd(aid, timeoutMs = 30000) {
603
750
  try {
604
751
  return resultOk(await this._agentMdManager.download(aid, timeoutMs));
@@ -623,7 +770,7 @@ export class AIDStore {
623
770
  if (signedAt === undefined)
624
771
  await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid);
625
772
  else
626
- await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid, signedAt);
773
+ await this._peerAuth.verifyPeerCertificate(gatewayUrl, certPem, aid, signedAt, false, true);
627
774
  }
628
775
  async _resolveEntityAgentMdOwner(aid, type) {
629
776
  const authority = await this._agentMdManager.readEntityAuthorityFresh(aid);
@@ -674,10 +821,16 @@ export class AIDStore {
674
821
  return resultErr(loaded.error.code, loaded.error.message);
675
822
  }
676
823
  const current = loaded.data.aid;
677
- const raw = content ?? await this._agentMdManager.readContent(target);
678
- const parsed = validateAgentMdDocument(String(raw ?? ''), { expectedAid: target });
824
+ const record = content == null ? await this._agentMdManager.loadRecord(target, true) : null;
825
+ const pending = record?.pending_operation === 'replace' ? String(record.pending_content ?? '') : '';
826
+ const raw = content ?? (pending || String(record?.local_draft_content ?? '') || await this._agentMdManager.readContent(target));
827
+ const tail = parseAgentMdTailSignatureForRead(String(raw ?? ''));
828
+ if (tail.parseError)
829
+ throw new ValidationError(tail.parseError);
830
+ const base = validateAgentMdDocument(tail.payload, { expectedAid: target, validateOwnership: false });
831
+ const entity = ['group', 'org'].includes(String(base.frontmatter.type));
832
+ const parsed = entity ? validateAgentMdDocument(String(raw ?? ''), { expectedAid: target }) : base;
679
833
  const meta = parsed.frontmatter;
680
- const entity = ['group', 'org'].includes(String(meta.type));
681
834
  if ((!current.isPrivateKeyValid() || !current.privateKeyPem) && !(entity && parsed.signature)) {
682
835
  return resultErr(codes.PRIVATE_KEY_NOT_VALID, `uploadAgentMd requires local AID with a valid private key: ${target}`);
683
836
  }
@@ -707,7 +860,23 @@ export class AIDStore {
707
860
  accessTokenResolver: async () => this._uploadAgentMdToken(uploader, await this._resolveGateway(uploaderTarget)),
708
861
  aidValidator: (value) => this._registerFlow.validateAidName(value),
709
862
  });
710
- return resultOk(entity ? await manager.uploadAs(target, String(raw), current) : await manager.upload(raw));
863
+ if (pending) {
864
+ await manager.resumePendingUpload(target, entity ? uploader : current);
865
+ const restored = await manager.loadRecord(target, true);
866
+ return resultOk({ aid: target, etag: String(restored?.remote_etag ?? ''), last_modified: String(restored?.last_modified ?? '') });
867
+ }
868
+ if (entity) {
869
+ let signed = String(raw);
870
+ if (!parsed.signature)
871
+ signed = (await signDocument(current, signed, { signerAid: true })).signed;
872
+ if (options.coSignerAid) {
873
+ if (options.coSignerAid !== meta.owner)
874
+ throw new ValidationError('entity additional signer must be current owner');
875
+ signed = (await signDocument(uploader, signed, { append: true })).signed;
876
+ }
877
+ return resultOk(await manager.uploadAs(target, signed, current));
878
+ }
879
+ return resultOk(await manager.upload(raw));
711
880
  }
712
881
  catch (exc) {
713
882
  return agentMdFailure(exc);
@@ -751,8 +920,15 @@ export class AIDStore {
751
920
  });
752
921
  }
753
922
  async renewCert(aid) {
923
+ return this._renewCert(aid);
924
+ }
925
+ async _renewCert(aid, guard) {
926
+ const check = () => { if (guard && (!guard.current() || guard.signal?.aborted))
927
+ throw new Error('credential renewal was superseded'); };
928
+ check();
754
929
  const target = String(aid ?? '').trim();
755
930
  const loaded = await this.load(target);
931
+ check();
756
932
  if (!loaded.ok || !loaded.data.aid.isPrivateKeyValid()) {
757
933
  return resultErr(codes.PRIVATE_KEY_REQUIRED, `private key required for aid: ${target}`);
758
934
  }
@@ -763,8 +939,11 @@ export class AIDStore {
763
939
  return resultErr(codes.PRIVATE_KEY_REQUIRED, `private key required for aid: ${target}`);
764
940
  }
765
941
  const gatewayUrl = await this._resolveGateway(target);
942
+ check();
766
943
  const phase1 = await this._beginAidOperation(gatewayUrl, aidObj);
944
+ check();
767
945
  const signResult = await aidObj.sign(String(phase1.nonce));
946
+ check();
768
947
  if (!signResult.ok || !signResult.data) {
769
948
  return resultErr(codes.CERT_RENEWAL_FAILED, resultError(signResult)?.message ?? 'sign failed');
770
949
  }
@@ -777,8 +956,15 @@ export class AIDStore {
777
956
  const certPem = String(response.cert ?? response.cert_pem ?? '').trim();
778
957
  if (!certPem)
779
958
  return resultErr(codes.CERT_RENEWAL_FAILED, 'server response missing certificate');
780
- await this._keystore.saveCert(target, certPem);
959
+ check();
960
+ const guardedSave = this._keystore._saveCertIfCurrent;
961
+ if (guard && typeof guardedSave === 'function')
962
+ await guardedSave.call(this._keystore, target, certPem, guard);
963
+ else
964
+ await this._keystore.saveCert(target, certPem);
965
+ check();
781
966
  const refreshed = await this.load(target);
967
+ check();
782
968
  if (!refreshed.ok)
783
969
  return resultErr(codes.CERT_RENEWAL_FAILED, 'renewed certificate reload failed');
784
970
  return resultOk({
@@ -1 +1 @@
1
- {"version":3,"file":"aid-store.js","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aid-store.js","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"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"}
package/dist/aid.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type DocumentCertificateResolver, type DocumentSignature } from './cert-utils.js';
1
2
  import { type Result } from './result.js';
2
3
  export interface VerifyResult {
3
4
  status: 'verified' | 'invalid' | 'unsigned';
@@ -7,6 +8,8 @@ export interface VerifyResult {
7
8
  public_key_fingerprint?: string;
8
9
  timestamp?: number;
9
10
  reason?: string;
11
+ valid?: boolean;
12
+ signatures?: DocumentSignature[];
10
13
  }
11
14
  export interface VerifyContext {
12
15
  expectedAid?: string;
@@ -71,6 +74,6 @@ export declare class AID {
71
74
  verifyWithContext(payload: Uint8Array | string, signature: string, context: VerifyContext): Promise<Result<{
72
75
  valid: boolean;
73
76
  }>>;
74
- verifyAgentMd(content: string): Promise<Result<VerifyResult>>;
77
+ verifyAgentMd(content: string, certificateResolver?: DocumentCertificateResolver): Promise<Result<VerifyResult>>;
75
78
  }
76
79
  //# sourceMappingURL=aid.d.ts.map
package/dist/aid.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aid.d.ts","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aid.d.ts","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"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"}