@agentunion/fastaun-browser 0.4.6 → 0.4.8

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 (85) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/_packed_docs/CHANGELOG.md +45 -0
  3. package/_packed_docs/INDEX.md +46 -22
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +16 -12
  5. package/_packed_docs/design/AUNClient/346/213/206/345/210/206/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +859 -0
  6. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +5 -3
  7. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +5 -5
  8. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +4 -2
  9. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +1 -1
  10. package/dist/agent-md.d.ts +1 -1
  11. package/dist/agent-md.d.ts.map +1 -1
  12. package/dist/agent-md.js +33 -8
  13. package/dist/agent-md.js.map +1 -1
  14. package/dist/aid-store.d.ts +8 -1
  15. package/dist/aid-store.d.ts.map +1 -1
  16. package/dist/aid-store.js +109 -16
  17. package/dist/aid-store.js.map +1 -1
  18. package/dist/aid.d.ts +1 -0
  19. package/dist/aid.d.ts.map +1 -1
  20. package/dist/aid.js +10 -4
  21. package/dist/aid.js.map +1 -1
  22. package/dist/bundle.js +9924 -8897
  23. package/dist/cert-utils.d.ts +5 -1
  24. package/dist/cert-utils.d.ts.map +1 -1
  25. package/dist/cert-utils.js +52 -8
  26. package/dist/cert-utils.js.map +1 -1
  27. package/dist/client/delivery.d.ts +44 -0
  28. package/dist/client/delivery.d.ts.map +1 -0
  29. package/dist/client/delivery.js +1033 -0
  30. package/dist/client/delivery.js.map +1 -0
  31. package/dist/client/group-state.d.ts +32 -0
  32. package/dist/client/group-state.d.ts.map +1 -0
  33. package/dist/client/group-state.js +909 -0
  34. package/dist/client/group-state.js.map +1 -0
  35. package/dist/client/identity.d.ts +8 -0
  36. package/dist/client/identity.d.ts.map +1 -0
  37. package/dist/client/identity.js +34 -0
  38. package/dist/client/identity.js.map +1 -0
  39. package/dist/client/lifecycle.d.ts +10 -0
  40. package/dist/client/lifecycle.d.ts.map +1 -0
  41. package/dist/client/lifecycle.js +222 -0
  42. package/dist/client/lifecycle.js.map +1 -0
  43. package/dist/client/peers.d.ts +11 -0
  44. package/dist/client/peers.d.ts.map +1 -0
  45. package/dist/client/peers.js +42 -0
  46. package/dist/client/peers.js.map +1 -0
  47. package/dist/client/rpc-pipeline.d.ts +36 -0
  48. package/dist/client/rpc-pipeline.d.ts.map +1 -0
  49. package/dist/client/rpc-pipeline.js +446 -0
  50. package/dist/client/rpc-pipeline.js.map +1 -0
  51. package/dist/client/runtime.d.ts +6 -0
  52. package/dist/client/runtime.d.ts.map +1 -0
  53. package/dist/client/runtime.js +7 -0
  54. package/dist/client/runtime.js.map +1 -0
  55. package/dist/client/v2-e2ee.d.ts +104 -0
  56. package/dist/client/v2-e2ee.d.ts.map +1 -0
  57. package/dist/client/v2-e2ee.js +1586 -0
  58. package/dist/client/v2-e2ee.js.map +1 -0
  59. package/dist/client.d.ts +26 -49
  60. package/dist/client.d.ts.map +1 -1
  61. package/dist/client.js +303 -3733
  62. package/dist/client.js.map +1 -1
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +4 -3
  65. package/dist/config.js.map +1 -1
  66. package/dist/discovery.d.ts.map +1 -1
  67. package/dist/discovery.js +69 -10
  68. package/dist/discovery.js.map +1 -1
  69. package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -1
  70. package/dist/keystore/indexeddb-identity-store.js +23 -22
  71. package/dist/keystore/indexeddb-identity-store.js.map +1 -1
  72. package/dist/v2/crypto/dh-path.js +2 -2
  73. package/dist/v2/crypto/index.js +7 -7
  74. package/dist/v2/e2ee/decrypt.js +8 -8
  75. package/dist/v2/e2ee/encrypt-group.js +9 -9
  76. package/dist/v2/e2ee/encrypt-p2p.js +9 -9
  77. package/dist/v2/e2ee/index.js +5 -5
  78. package/dist/v2/e2ee/metadata-auth.js +1 -1
  79. package/dist/v2/session/index.js +2 -2
  80. package/dist/v2/session/session.js +1 -1
  81. package/dist/v2/state/commitment.js +1 -1
  82. package/dist/v2/state/index.js +1 -1
  83. package/dist/version.d.ts +1 -1
  84. package/dist/version.js +1 -1
  85. package/package.json +2 -2
@@ -204,9 +204,11 @@ print(client.can_connect, client.can_send, client.is_online)
204
204
  发布自己的 agent.md:
205
205
 
206
206
  ```python
207
- await client.upload_agent_md(content)
207
+ uploaded = await store.upload_agent_md("alice.agentid.pub", content)
208
208
  ```
209
209
 
210
+ `aid` 必须是本地 AID。上传由 `AIDStore` 读取本地私钥签名,并通过 `AuthFlow` 获取或复用该 AID 的 access_token。
211
+
210
212
  解析对端并验签 agent.md:
211
213
 
212
214
  ```python
@@ -231,9 +233,9 @@ state = await store.check_agent_md("bob.agentid.pub", ttl_days=1)
231
233
 
232
234
  | 主体 | 公开能力 |
233
235
  |------|----------|
234
- | `AUNClient` | `upload_agent_md(content=None)`:读取/签名/上传当前 AID agent.md |
235
- | `AIDStore` | `download_agent_md(aid)`、`check_agent_md(aid, ttl_days=1)`、`resolve(aid, opts)` |
236
+ | `AIDStore` | `upload_agent_md(aid, content=None)`、`download_agent_md(aid)`、`check_agent_md(aid, ttl_days=1)`、`resolve(aid, opts)` |
236
237
  | `AID` | `sign_agent_md(content)`、`verify_agent_md(content)` 低层签验能力 |
238
+ | `AUNClient` | 连接、事件和 RPC 调用;不再暴露 agent.md 上传入口 |
237
239
 
238
240
  本地落盘位置由 SDK 管理。Python / TypeScript / Go 写入 `{aun_path}/AIDs/{aid}/agent.md` 和同目录 `agentmd.json`;浏览器 JavaScript 写入 IndexedDB 的等价 logical key,存储不可用时退化为内存缓存。agent.md 不写入 SQLite,也不再使用旧 `{aun_path}/AgentMDs` 目录。
239
241
 
@@ -343,11 +343,11 @@ prekey_material = client.e2ee.generate_prekey()
343
343
 
344
344
  ```python
345
345
  from aun_core.e2ee import E2EEManager
346
- from aun_core.keystore.file import FileKeyStore
346
+ from aun_core.keystore.local_token_store import LocalTokenStore
347
347
 
348
348
  e2ee = E2EEManager(
349
349
  identity_fn=lambda: my_identity,
350
- keystore=FileKeyStore("~/.aun/myapp"),
350
+ keystore=LocalTokenStore("~/.aun/myapp"),
351
351
  )
352
352
  ```
353
353
 
@@ -426,11 +426,11 @@ await my_rpc_call("message.e2ee.put_prekey", prekey_material)
426
426
 
427
427
  ```python
428
428
  from aun_core.e2ee import GroupE2EEManager
429
- from aun_core.keystore.file import FileKeyStore
429
+ from aun_core.keystore.local_token_store import LocalTokenStore
430
430
 
431
431
  group_e2ee = GroupE2EEManager(
432
432
  identity_fn=lambda: my_identity,
433
- keystore=FileKeyStore("~/.aun/myapp"),
433
+ keystore=LocalTokenStore("~/.aun/myapp"),
434
434
  )
435
435
  ```
436
436
 
@@ -596,7 +596,7 @@ class MySecretStore:
596
596
  client = AUNClient(aid)
597
597
  ```
598
598
 
599
- `AUNClient` 构造函数只接收可选 AID 对象。`SecretStore` / `KeyStore` / `SQLiteBackup` 属于 SDK 内部基础设施,不作为应用层构造参数暴露。
599
+ `AUNClient` 构造函数只接收可选 AID 对象。`SecretStore` / `KeyStore` / `SQLiteBackup` 属于 SDK 内部基础设施,不作为应用层构造参数暴露。
600
600
 
601
601
  ---
602
602
 
@@ -66,6 +66,7 @@ store := aun.NewAIDStore(aunPath, encryptionSeed, aun.AIDStoreOptions{
66
66
  | `list()` | `list()` | `List()` | 列出本地 AID |
67
67
  | `exists(aid)` | `exists(aid)` | `Exists(ctx, aid)` | 远端存在性检查 |
68
68
  | `resolve(aid, opts=None)` | `resolve(aid, opts?)` | `Resolve(ctx, aid, opts...)` | 拉证书并缓存;默认下载 agent.md,可用 `skip_agent_md` / `skipAgentMd` 跳过 |
69
+ | `upload_agent_md(aid, content=None)` | `uploadAgentMd(aid, content?)` | `UploadAgentMD(ctx, aid, content...)` | 发布本地 AID 的 agent.md;签名后使用该 AID 的 access_token 上传 |
69
70
  | `download_agent_md(aid, timeout_s=None)` | `downloadAgentMd(aid, timeoutMs=30000)` | `DownloadAgentMD(ctx, aid)` | 下载 agent.md,返回 `DownloadAgentMdResult` / `AgentMDInfo` |
70
71
  | `check_agent_md(aid, ttl_days=1)` | `checkAgentMd(aid, ttlDays=1)` | `CheckAgentMD(ctx, aid, maxUnsyncedDays...)` | 通过 HEAD 和本地记录检查一致性 |
71
72
  | `diagnose(aid)` | `diagnose(aid)` | `Diagnose(ctx, aid)` | 本地 + 远端诊断 |
@@ -264,13 +265,14 @@ headers = client.get_protected_headers()
264
265
 
265
266
  | Python | TS/JS | Go | 说明 |
266
267
  |--------|-------|----|------|
267
- | `upload_agent_md(content=None)` | `uploadAgentMd(content?)` | `UploadAgentMD(ctx, content...)` | 发布当前 AID 的 agent.md |
268
+ | `AIDStore.upload_agent_md(aid, content=None)` | `store.uploadAgentMd(aid, content?)` | `store.UploadAgentMD(ctx, aid, content...)` | 发布指定本地 AID 的 agent.md |
268
269
  | `AIDStore.download_agent_md(aid)` | `store.downloadAgentMd(aid)` | `store.DownloadAgentMD(ctx, aid)` | 下载并验签 |
269
270
  | `AIDStore.check_agent_md(aid)` | `store.checkAgentMd(aid)` | `store.CheckAgentMD(ctx, aid, maxUnsyncedDays...)` | 检查一致性 |
270
271
 
271
272
  说明:
272
273
 
273
- - `AUNClient` 只保留上传入口;下载和检查入口在 `AIDStore`。
274
+ - agent.md 上传、下载和检查入口都在 `AIDStore`;`AUNClient` 不再暴露上传入口。
275
+ - 上传要求目标 AID 已在本地加载且私钥有效;SDK 会对正文签名,并通过 `AuthFlow` 获取或复用该 AID 的 access_token。
274
276
  - SDK 发起 GET 时只发送 `Accept: text/markdown`,不主动发送 `If-None-Match` / `If-Modified-Since`。如果服务端异常返回 304,本地有内容则复用;无内容时再发一次无条件 GET。
275
277
  - `Accept: text/markdown` 与 agent.md 的 YAML frontmatter + Markdown 格式兼容;agent.md 仍是 Markdown 媒体类型上的结构化约定。
276
278
 
@@ -26,7 +26,7 @@ AUN SDK 文档位于 `docs/sdk/`,索引文件 `docs/sdk/INDEX.md` 分三层:
26
26
  - 连接与状态:AUNClient / 九态状态机 / Gateway / 重连
27
27
  - E2EE:默认加密、ProtectedHeaders、P2P / Group V2
28
28
  - RPC 与事件:`client.call()`、`client.on()`、RPC 手册
29
- - agent.md:`AUNClient.upload_agent_md()`、`AIDStore.download_agent_md()`、`AIDStore.check_agent_md()`
29
+ - agent.md:`AIDStore.upload_agent_md()`、`AIDStore.download_agent_md()`、`AIDStore.check_agent_md()`
30
30
  - 错误处理:Result、异常、错误码、重试
31
31
 
32
32
  ### Step 3:读 Layer 3 摘要
@@ -41,7 +41,7 @@ export interface AgentMdManagerOptions {
41
41
  ownerAidGetter?: () => string | null | undefined;
42
42
  currentAidGetter?: () => AID | null | undefined;
43
43
  gatewayResolver?: (aid: string) => Promise<string> | string;
44
- peerResolver?: (aid: string) => Promise<AID> | AID;
44
+ peerResolver?: (aid: string, certFingerprint?: string | null) => Promise<AID> | AID;
45
45
  accessTokenResolver?: (aid: string, gatewayUrl: string) => Promise<string> | string;
46
46
  aidValidator?: (aid: string) => void;
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-md.d.ts","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-md.d.ts","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
package/dist/agent-md.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AID } from './aid.js';
2
+ import { certMatchesFingerprint, parseAgentMdTailSignature } from './cert-utils.js';
2
3
  import { AUNError, ClientSignatureError, NotFoundError, StateError, ValidationError } from './errors.js';
3
4
  import { isJsonObject } from './types.js';
4
5
  const DEFAULT_HTTP_TIMEOUT_MS = 30_000;
@@ -125,7 +126,9 @@ export class AgentMdManager {
125
126
  async download(aid, timeoutMs = DEFAULT_HTTP_TIMEOUT_MS) {
126
127
  const target = this._safeAid(String(aid ?? this._ownerAid() ?? '').trim());
127
128
  const contentResult = await this._downloadHttp(target, timeoutMs);
128
- const peer = await this._resolvePeer(target);
129
+ const parsed = parseAgentMdTailSignature(contentResult.content);
130
+ const expectedFp = parsed.fields?.cert_fingerprint || parsed.fields?.public_key_fingerprint || null;
131
+ const peer = await this._resolvePeer(target, expectedFp);
129
132
  const verified = await peer.verifyAgentMd(contentResult.content);
130
133
  if (!verified.ok)
131
134
  throw new AUNError(verified.error.message);
@@ -432,11 +435,15 @@ export class AgentMdManager {
432
435
  async _resolveGateway(aid) {
433
436
  return String(await this._gatewayResolver?.(aid) ?? '');
434
437
  }
435
- async _resolvePeer(aid) {
438
+ async _resolvePeer(aid, certFingerprint) {
439
+ const expectedFp = String(certFingerprint ?? '').trim().toLowerCase();
436
440
  const current = this._currentAid();
437
- if (current?.aid === aid)
438
- return current;
439
- const peer = await this._peerResolver?.(aid);
441
+ if (current?.aid === aid) {
442
+ if (!expectedFp || await certMatchesFingerprint(current.certPem, expectedFp))
443
+ return current;
444
+ throw new StateError(`current AID certificate fingerprint mismatch for ${aid}`);
445
+ }
446
+ const peer = await this._peerResolver?.(aid, expectedFp || null);
440
447
  if (!(peer instanceof AID)) {
441
448
  throw new StateError(`agent.md peer resolver did not return AID for ${aid}`);
442
449
  }
@@ -476,14 +483,32 @@ export class AgentMdManager {
476
483
  }
477
484
  async _downloadHttp(aid, timeoutMs) {
478
485
  const target = this._safeAid(aid);
486
+ const cached = await this.loadRecord(target) ?? {};
479
487
  const gatewayUrl = await this._resolveGateway(target);
480
488
  const url = this._url(target, gatewayUrl);
481
489
  const headers = { Accept: 'text/markdown' };
482
- const response = await fetchWithTimeout(url, {
490
+ const cachedEtag = String(cached.remote_etag ?? cached.etag ?? cached.local_etag ?? '').trim();
491
+ const cachedLastModified = String(cached.last_modified ?? '').trim();
492
+ let response = await fetchWithTimeout(url, {
483
493
  method: 'GET',
484
494
  headers,
485
495
  redirect: 'follow',
486
496
  }, timeoutMs);
497
+ if (response.status === 304 && cached.content !== undefined && cached.content !== null) {
498
+ return {
499
+ content: String(cached.content),
500
+ etag: headerValue(response.headers, 'ETag') || cachedEtag,
501
+ last_modified: headerValue(response.headers, 'Last-Modified') || cachedLastModified,
502
+ status: response.status,
503
+ };
504
+ }
505
+ if (response.status === 304) {
506
+ response = await fetchWithTimeout(url, {
507
+ method: 'GET',
508
+ headers: { Accept: 'text/markdown' },
509
+ redirect: 'follow',
510
+ }, timeoutMs);
511
+ }
487
512
  if (response.status === 404) {
488
513
  await this.saveRecord(target, { remote_status: 'missing', checked_at: Date.now(), last_error: '' });
489
514
  throw new NotFoundError(`agent.md not found for aid: ${target}`);
@@ -495,8 +520,8 @@ export class AgentMdManager {
495
520
  const content = await response.text();
496
521
  return {
497
522
  content,
498
- etag: headerValue(response.headers, 'ETag'),
499
- last_modified: headerValue(response.headers, 'Last-Modified'),
523
+ etag: headerValue(response.headers, 'ETag') || cachedEtag,
524
+ last_modified: headerValue(response.headers, 'Last-Modified') || cachedLastModified,
500
525
  status: response.status,
501
526
  };
502
527
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-md.js","sourceRoot":"","sources":["../src/agent-md.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export type ResolveResult = {
22
22
  };
23
23
  export type DownloadAgentMdResult = AgentMdDownloadResult;
24
24
  export type CheckAgentMdResult = AgentMdCheckResult;
25
+ export type UploadAgentMdResult = Record<string, unknown>;
25
26
  export type DiagnoseResult = {
26
27
  aid: string;
27
28
  status: string;
@@ -54,15 +55,17 @@ export declare class AIDStore {
54
55
  readonly slotId: string;
55
56
  private _encryptionSeed;
56
57
  private _keystore;
58
+ private _tokenStore;
57
59
  private _registerFlow;
58
60
  private _discovery;
61
+ private _crypto;
62
+ private _rootCaPem;
59
63
  private _verifySsl;
60
64
  private _gatewayCache;
61
65
  private _agentMdManager;
62
66
  constructor(opts: {
63
67
  aunPath: string;
64
68
  encryptionSeed: string;
65
- deviceId?: string;
66
69
  slotId?: string;
67
70
  rootCaPem?: string | null;
68
71
  verifySsl?: boolean;
@@ -82,6 +85,9 @@ export declare class AIDStore {
82
85
  resolve(aid: string, opts?: ResolveOpts): Promise<Result<ResolveResult>>;
83
86
  downloadAgentMd(aid: string, timeoutMs?: number): Promise<Result<DownloadAgentMdResult>>;
84
87
  checkAgentMd(aid: string, ttlDays?: number): Promise<Result<CheckAgentMdResult>>;
88
+ private _authIdentityFromAid;
89
+ private _uploadAgentMdToken;
90
+ uploadAgentMd(aid: string, content?: string | null): Promise<Result<UploadAgentMdResult>>;
85
91
  diagnose(aid: string): Promise<Result<DiagnoseResult>>;
86
92
  renewCert(aid: string): Promise<Result<RenewCertResult>>;
87
93
  rekey(aid: string): Promise<Result<RekeyResult>>;
@@ -89,5 +95,6 @@ export declare class AIDStore {
89
95
  private _resolveGateway;
90
96
  private _loadCachedGatewayUrl;
91
97
  private _persistGatewayUrl;
98
+ private _hasLocalAidMaterial;
92
99
  }
93
100
  //# sourceMappingURL=aid-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aid-store.d.ts","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aid-store.d.ts","sourceRoot":"","sources":["../src/aid-store.ts"],"names":[],"mappings":"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"}
package/dist/aid-store.js CHANGED
@@ -6,9 +6,11 @@ import { RegisterFlow } from './register-flow.js';
6
6
  import { GatewayDiscovery } from './discovery.js';
7
7
  import { IdentityConflictError, NotFoundError, ValidationError } from './errors.js';
8
8
  import { IndexedDBIdentityStore } from './keystore/indexeddb-identity-store.js';
9
- import { getDeviceId, normalizeInstanceId, normalizeSlotId } from './config.js';
9
+ import { IndexedDBTokenStore } from './keystore/indexeddb-token-store.js';
10
+ import { getDeviceId, normalizeSlotId } from './config.js';
10
11
  import { resultErr, resultOk } from './result.js';
11
12
  import { AgentMdManager } from './agent-md.js';
13
+ import { AuthFlow } from './auth.js';
12
14
  // ── 证书 DER 解析工具 ────────────────────────────────────────────
13
15
  function _derReadLength(data, offset) {
14
16
  if (offset >= data.length)
@@ -242,8 +244,12 @@ function gatewayHttpUrl(gatewayUrl, path) {
242
244
  parsed.hash = '';
243
245
  return parsed.toString();
244
246
  }
245
- function pkiCertUrl(gatewayUrl, aid) {
246
- return gatewayHttpUrl(gatewayUrl, `/pki/cert/${encodeURIComponent(aid)}`);
247
+ function pkiCertUrl(gatewayUrl, aid, certFingerprint) {
248
+ const url = new URL(gatewayHttpUrl(gatewayUrl, `/pki/cert/${encodeURIComponent(aid)}`));
249
+ const fp = String(certFingerprint ?? '').trim().toLowerCase();
250
+ if (fp)
251
+ url.searchParams.set('cert_fingerprint', fp);
252
+ return url.toString();
247
253
  }
248
254
  async function fetchWithTimeout(input, init = {}, timeoutMs = 30000) {
249
255
  const controller = new AbortController();
@@ -273,42 +279,59 @@ export class AIDStore {
273
279
  slotId;
274
280
  _encryptionSeed;
275
281
  _keystore;
282
+ _tokenStore;
276
283
  _registerFlow;
277
284
  _discovery;
285
+ _crypto;
286
+ _rootCaPem;
278
287
  _verifySsl;
279
288
  _gatewayCache = new Map();
280
289
  _agentMdManager;
281
290
  constructor(opts) {
282
291
  this.aunPath = String(opts.aunPath ?? '');
283
292
  this._encryptionSeed = String(opts.encryptionSeed ?? '');
284
- this.deviceId = opts.deviceId
285
- ? normalizeInstanceId(opts.deviceId, 'deviceId', { allowEmpty: true })
286
- : getDeviceId();
293
+ this.deviceId = getDeviceId();
287
294
  this.slotId = normalizeSlotId(opts.slotId);
288
295
  if (opts.verifySsl === false) {
289
296
  console.warn('[aun_core.config] verify_ssl=false 在浏览器环境中不受支持,SSL 证书验证将保持启用。');
290
297
  }
291
298
  this._verifySsl = opts.verifySsl === false ? true : (opts.verifySsl ?? true);
299
+ this._rootCaPem = opts.rootCaPem ?? null;
292
300
  this._keystore = new IndexedDBIdentityStore({ encryptionSeed: this._encryptionSeed || undefined });
293
- const crypto = new CryptoProvider();
301
+ this._tokenStore = new IndexedDBTokenStore();
302
+ this._crypto = new CryptoProvider();
294
303
  this._discovery = new GatewayDiscovery();
295
304
  this._registerFlow = new RegisterFlow({
296
305
  keystore: this._keystore,
297
- crypto,
306
+ crypto: this._crypto,
298
307
  verifySsl: this._verifySsl,
299
308
  });
300
309
  this._agentMdManager = new AgentMdManager({
301
310
  aunPath: this.aunPath,
311
+ tokenStore: this._tokenStore,
302
312
  aidValidator: (target) => this._registerFlow.validateAidName(target),
303
313
  gatewayResolver: (target) => this._resolveGateway(target),
304
- peerResolver: async (target) => {
305
- const loaded = await this.load(target);
306
- if (loaded.ok)
307
- return loaded.data.aid;
308
- const resolved = await this.resolve(target, { skipAgentMd: true });
309
- if (resolved.ok)
310
- return resolved.data.aid;
311
- throw new Error(resolved.error.message);
314
+ peerResolver: async (target, certFingerprint) => {
315
+ const fp = String(certFingerprint ?? '').trim().toLowerCase();
316
+ const cachedCert = await this._keystore.loadCert(target, fp || undefined);
317
+ if (cachedCert) {
318
+ return await AID.create({ aid: target, aunPath: this.aunPath, certPem: cachedCert, privateKeyPem: null, certValid: true, privateKeyValid: false });
319
+ }
320
+ if (fp) {
321
+ const gatewayUrl = await this._resolveGateway(target);
322
+ const response = await fetchWithTimeout(pkiCertUrl(gatewayUrl, target, fp), { method: 'GET' }, 10000);
323
+ if (!response.ok)
324
+ throw new Error(`certificate not found for aid: ${target}`);
325
+ const certPem = await response.text();
326
+ await this._keystore.saveCert(target, certPem, fp, { makeActive: false });
327
+ return await AID.create({ aid: target, aunPath: this.aunPath, certPem, privateKeyPem: null, certValid: true, privateKeyValid: false });
328
+ }
329
+ const gatewayUrl = await this._resolveGateway(target);
330
+ const certPem = await this._registerFlow.fetchPeerCert(gatewayUrl, target);
331
+ if (!certPem)
332
+ throw new Error(`certificate not found for aid: ${target}`);
333
+ await this._keystore.saveCert(target, certPem);
334
+ return await AID.create({ aid: target, aunPath: this.aunPath, certPem, privateKeyPem: null, certValid: true, privateKeyValid: false });
312
335
  },
313
336
  });
314
337
  }
@@ -316,6 +339,9 @@ export class AIDStore {
316
339
  const close = this._keystore.close;
317
340
  if (typeof close === 'function')
318
341
  close.call(this._keystore);
342
+ const closeTokens = this._tokenStore.close;
343
+ if (typeof closeTokens === 'function')
344
+ closeTokens.call(this._tokenStore);
319
345
  }
320
346
  async load(aid) {
321
347
  const target = String(aid ?? '').trim();
@@ -457,6 +483,7 @@ export class AIDStore {
457
483
  curve: result.curve,
458
484
  });
459
485
  }
486
+ await this._persistGatewayUrl(target, gatewayUrl);
460
487
  return resultOk({ registered: true });
461
488
  }
462
489
  catch (exc) {
@@ -508,6 +535,7 @@ export class AIDStore {
508
535
  if (!certPem)
509
536
  return resultErr(codes.CERT_NOT_FOUND, `certificate not found for aid: ${target}`);
510
537
  await this._keystore.saveCert(target, certPem);
538
+ await this._persistGatewayUrl(target, gatewayUrl);
511
539
  const reloaded = await this.load(target);
512
540
  if (!reloaded.ok)
513
541
  return reloaded;
@@ -542,6 +570,58 @@ export class AIDStore {
542
570
  return agentMdFailure(exc);
543
571
  }
544
572
  }
573
+ _authIdentityFromAid(aid) {
574
+ return {
575
+ aid: aid.aid,
576
+ private_key_pem: aid.privateKeyPem,
577
+ public_key_der_b64: aid.publicKey,
578
+ cert: aid.certPem,
579
+ };
580
+ }
581
+ async _uploadAgentMdToken(aid, gatewayUrl) {
582
+ const auth = new AuthFlow({
583
+ tokenStore: this._tokenStore,
584
+ crypto: this._crypto,
585
+ aid: aid.aid,
586
+ deviceId: this.deviceId,
587
+ slotId: this.slotId,
588
+ rootCaPem: this._rootCaPem,
589
+ verifySsl: this._verifySsl,
590
+ });
591
+ auth.setIdentity(this._authIdentityFromAid(aid));
592
+ const result = await auth.authenticate(gatewayUrl, aid.aid);
593
+ const token = String(result.access_token ?? result.token ?? result.kite_token ?? '').trim();
594
+ if (!token)
595
+ throw new Error('authenticate did not return access_token');
596
+ return token;
597
+ }
598
+ async uploadAgentMd(aid, content) {
599
+ const target = String(aid ?? '').trim();
600
+ try {
601
+ this._registerFlow.validateAidName(target);
602
+ const loaded = await this.load(target);
603
+ if (!loaded.ok) {
604
+ return resultErr(loaded.error.code, loaded.error.message);
605
+ }
606
+ const current = loaded.data.aid;
607
+ if (!current.isPrivateKeyValid() || !current.privateKeyPem) {
608
+ return resultErr(codes.PRIVATE_KEY_NOT_VALID, `uploadAgentMd requires local AID with a valid private key: ${target}`);
609
+ }
610
+ const manager = new AgentMdManager({
611
+ aunPath: this.aunPath,
612
+ tokenStore: this._tokenStore,
613
+ ownerAidGetter: () => target,
614
+ currentAidGetter: () => current,
615
+ gatewayResolver: (value) => this._resolveGateway(value),
616
+ accessTokenResolver: (_value, gatewayUrl) => this._uploadAgentMdToken(current, gatewayUrl),
617
+ aidValidator: (value) => this._registerFlow.validateAidName(value),
618
+ });
619
+ return resultOk(await manager.upload(content));
620
+ }
621
+ catch (exc) {
622
+ return agentMdFailure(exc);
623
+ }
624
+ }
545
625
  async diagnose(aid) {
546
626
  const target = String(aid ?? '').trim();
547
627
  const loaded = await this.load(target);
@@ -747,11 +827,24 @@ export class AIDStore {
747
827
  if (typeof setMetadata !== 'function' || !gatewayUrl)
748
828
  return;
749
829
  try {
830
+ if (!await this._hasLocalAidMaterial(aid))
831
+ return;
750
832
  await setMetadata.call(this._keystore, aid, 'gateway_url', gatewayUrl);
751
833
  }
752
834
  catch {
753
835
  // 缓存失败不影响主流程。
754
836
  }
755
837
  }
838
+ async _hasLocalAidMaterial(aid) {
839
+ try {
840
+ const cert = await this._keystore.loadCert(aid);
841
+ if (cert)
842
+ return true;
843
+ return !!await this._keystore.loadKeyPair(aid);
844
+ }
845
+ catch {
846
+ return false;
847
+ }
848
+ }
756
849
  }
757
850
  //# sourceMappingURL=aid-store.js.map