@agentunion/fastaun-browser 0.4.13 → 0.5.0

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 (175) hide show
  1. package/CHANGELOG.md +480 -386
  2. package/_packed_docs/CHANGELOG.md +480 -386
  3. package/_packed_docs/INDEX.md +111 -53
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +43 -29
  5. package/_packed_docs/agent.md/SCHEMA.md +2 -0
  6. package/_packed_docs/agent.md/examples/codeagent-claudecode.md +2 -0
  7. package/_packed_docs/agent.md/examples/human-developer.md +2 -0
  8. package/_packed_docs/agent.md/examples/openclaw-lobster.md +2 -0
  9. package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +2 -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 +2 -0
  11. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +265 -686
  12. package/_packed_docs/collab-gateway-boundary-test-report.md +164 -0
  13. package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +2 -0
  14. 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 +2 -0
  15. package/_packed_docs/design/E2EE_V2/347/256/200/345/214/226/344/270/2721DH/345/212/240Per-AID_Wrap/346/226/271/346/241/210.md +2 -0
  16. package/_packed_docs/design//350/267/250/350/257/255/350/250/200/345/256/271/345/231/250E2E/346/265/213/350/257/225/346/226/271/346/241/210.md +2 -0
  17. package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +2 -0
  18. package/_packed_docs/protocol/00A-/350/256/276/350/256/241/345/216/237/345/210/231-/344/270/272Agent/350/200/214/347/224/237.md +2 -0
  19. package/_packed_docs/protocol/01-/350/272/253/344/273/275/344/270/216/345/207/255/350/257/201/345/215/217/350/256/256-auth.md +2 -0
  20. package/_packed_docs/protocol/02-/350/257/201/344/271/246/344/270/216/344/277/241/344/273/273/344/275/223/347/263/273.md +2 -0
  21. package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +2 -0
  22. package/_packed_docs/protocol/04-Peer-/345/255/220/345/215/217/350/256/256.md +2 -0
  23. package/_packed_docs/protocol/05-Relay-/345/255/220/345/215/217/350/256/256.md +2 -0
  24. package/_packed_docs/protocol/07-/351/224/231/350/257/257/347/240/201/344/270/216/347/212/266/346/200/201/346/234/272.md +2 -0
  25. package/_packed_docs/protocol/08-AUN-E2EE-Group.md +2 -0
  26. package/_packed_docs/protocol/08-AUN-E2EE.md +2 -0
  27. package/_packed_docs/protocol/09-/345/256/211/345/205/250/350/200/203/350/231/221.md +2 -0
  28. package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +28 -85
  29. package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +49 -0
  30. package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +2 -0
  31. package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +2 -0
  32. package/_packed_docs/protocol/14-/344/272/244/344/272/222/346/234/272/345/210/266-/345/223/215/345/272/224/346/250/241/345/274/217/344/270/216/350/207/252/344/270/273/346/250/241/345/274/217.md +2 -0
  33. package/_packed_docs/protocol/15-/347/246/273/347/272/277/346/216/250/351/200/201/351/200/232/347/237/245/345/215/217/350/256/256.md +2 -0
  34. package/_packed_docs/protocol/README.md +2 -0
  35. package/_packed_docs/protocol/agent.md/SCHEMA.md +2 -0
  36. package/_packed_docs/protocol/agent.md/examples/codeagent-claudecode.md +2 -0
  37. package/_packed_docs/protocol/agent.md/examples/human-developer.md +2 -0
  38. package/_packed_docs/protocol/agent.md/examples/openclaw-lobster.md +2 -0
  39. package/_packed_docs/protocol/aun-docs-guide.md +2 -0
  40. package/_packed_docs/protocol/index.md +3 -1
  41. package/_packed_docs/protocol//350/215/211/346/241/210-agent.md/347/255/276/345/220/215/345/215/217/350/256/256.md +2 -0
  42. package/_packed_docs/protocol//350/215/211/346/241/210-/346/213/222/347/273/235/344/277/241/345/217/267/345/215/217/350/256/256.md +2 -0
  43. package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +2 -0
  44. package/_packed_docs/protocol//351/231/204/345/275/225B-/346/211/251/345/261/225/346/200/247/346/214/207/345/215/227.md +2 -0
  45. package/_packed_docs/protocol//351/231/204/345/275/225C-/347/247/201/351/222/245/347/256/241/347/220/206/344/270/216/350/272/253/344/273/275/346/201/242/345/244/215.md +2 -0
  46. package/_packed_docs/protocol//351/231/204/345/275/225D-Root_CA_/346/262/273/347/220/206/346/234/272/345/210/266.md +2 -0
  47. package/_packed_docs/protocol//351/231/204/345/275/225E-Root_CA_/345/207/206/345/205/245/346/265/201/347/250/213.md +2 -0
  48. package/_packed_docs/protocol//351/231/204/345/275/225F-Issuer_CA_/347/224/263/350/257/267/346/265/201/347/250/213.md +2 -0
  49. package/_packed_docs/protocol//351/231/204/345/275/225G-AID_/345/255/244/345/204/277/351/242/204/351/230/262/344/270/216/346/225/221/346/217/264/346/234/272/345/210/266.md +2 -0
  50. package/_packed_docs/protocol//351/231/204/345/275/225H-Identity/346/234/215/345/212/241/345/256/236/347/216/260/346/214/207/345/215/227.md +2 -0
  51. package/_packed_docs/protocol//351/231/204/345/275/225I-/350/267/250/345/237/237/346/266/210/346/201/257/350/267/257/347/224/261/345/256/236/347/216/260/346/214/207/345/215/227.md +2 -0
  52. package/_packed_docs/protocol//351/231/204/345/275/225J-/345/256/242/346/210/267/347/253/257/346/216/245/345/205/245/347/244/272/344/276/213.md +2 -0
  53. package/_packed_docs/protocol//351/231/204/345/275/225K-Agent_Web/345/217/221/347/216/260/345/215/217/350/256/256.md +2 -0
  54. package/_packed_docs/protocol//351/231/204/345/275/225L-E2EE/345/256/236/347/216/260/346/214/207/345/215/227.md +2 -0
  55. package/_packed_docs/protocol//351/231/204/345/275/225M-JWT/350/256/244/350/257/201/345/256/236/347/216/260/346/214/207/345/215/227.md +2 -0
  56. package/_packed_docs/protocol//351/231/204/345/275/225N-/345/210/206/345/270/203/345/274/217Trace/345/215/217/350/256/256.md +2 -0
  57. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +2 -0
  58. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -0
  59. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +2 -0
  60. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +2 -0
  61. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +2 -0
  62. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +283 -267
  63. package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +4 -1
  64. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +2 -0
  65. package/_packed_docs/sdk/09-collab-rpc-manual.md +550 -0
  66. package/_packed_docs/sdk/09-custody-api-manual.md +2 -0
  67. package/_packed_docs/sdk/09-group-rpc-manual.md +197 -443
  68. package/_packed_docs/sdk/09-message-rpc-manual.md +2 -0
  69. package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -0
  70. package/_packed_docs/sdk/09-payload-reference.md +2 -0
  71. package/_packed_docs/sdk/09-proxy-rpc-manual.md +2 -0
  72. package/_packed_docs/sdk/09-storage-rpc-manual.md +952 -279
  73. package/_packed_docs/sdk/09-stream-rpc-manual.md +2 -0
  74. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +33 -20
  75. package/_packed_docs/sdk/E2EE_V2/346/266/210/346/201/257/351/200/232/344/277/241/346/227/266/345/272/217/345/233/276.md +2 -0
  76. package/_packed_docs/sdk/INDEX.md +46 -29
  77. package/_packed_docs/sdk/Notify/351/200/232/347/237/245/346/226/271/346/241/210.md +2 -0
  78. package/_packed_docs/sdk/README.md +17 -15
  79. package/dist/aid-store.d.ts +25 -0
  80. package/dist/aid-store.d.ts.map +1 -1
  81. package/dist/aid-store.js +89 -8
  82. package/dist/aid-store.js.map +1 -1
  83. package/dist/bundle.js +19128 -16784
  84. package/dist/client/delivery.d.ts +2 -0
  85. package/dist/client/delivery.d.ts.map +1 -1
  86. package/dist/client/delivery.js +52 -8
  87. package/dist/client/delivery.js.map +1 -1
  88. package/dist/client/rpc-pipeline.d.ts +1 -0
  89. package/dist/client/rpc-pipeline.d.ts.map +1 -1
  90. package/dist/client/rpc-pipeline.js +70 -33
  91. package/dist/client/rpc-pipeline.js.map +1 -1
  92. package/dist/client.d.ts +31 -0
  93. package/dist/client.d.ts.map +1 -1
  94. package/dist/client.js +282 -20
  95. package/dist/client.js.map +1 -1
  96. package/dist/collab/client.d.ts +39 -0
  97. package/dist/collab/client.d.ts.map +1 -0
  98. package/dist/collab/client.js +124 -0
  99. package/dist/collab/client.js.map +1 -0
  100. package/dist/collab/errors.d.ts +16 -0
  101. package/dist/collab/errors.d.ts.map +1 -0
  102. package/dist/collab/errors.js +60 -0
  103. package/dist/collab/errors.js.map +1 -0
  104. package/dist/collab/index.d.ts +4 -0
  105. package/dist/collab/index.d.ts.map +1 -0
  106. package/dist/collab/index.js +4 -0
  107. package/dist/collab/index.js.map +1 -0
  108. package/dist/collab/types.d.ts +111 -0
  109. package/dist/collab/types.d.ts.map +1 -0
  110. package/dist/collab/types.js +2 -0
  111. package/dist/collab/types.js.map +1 -0
  112. package/dist/crypto.d.ts +6 -0
  113. package/dist/crypto.d.ts.map +1 -1
  114. package/dist/crypto.js +6 -0
  115. package/dist/crypto.js.map +1 -1
  116. package/dist/errors.d.ts.map +1 -1
  117. package/dist/errors.js +16 -1
  118. package/dist/errors.js.map +1 -1
  119. package/dist/facades.d.ts +89 -0
  120. package/dist/facades.d.ts.map +1 -0
  121. package/dist/facades.js +228 -0
  122. package/dist/facades.js.map +1 -0
  123. package/dist/group-fs.d.ts +103 -0
  124. package/dist/group-fs.d.ts.map +1 -0
  125. package/dist/group-fs.js +496 -0
  126. package/dist/group-fs.js.map +1 -0
  127. package/dist/group-resources.d.ts +98 -0
  128. package/dist/group-resources.d.ts.map +1 -0
  129. package/dist/group-resources.js +635 -0
  130. package/dist/group-resources.js.map +1 -0
  131. package/dist/index.d.ts +4 -1
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +6 -0
  134. package/dist/index.js.map +1 -1
  135. package/dist/register-flow.d.ts +1 -0
  136. package/dist/register-flow.d.ts.map +1 -1
  137. package/dist/register-flow.js +3 -0
  138. package/dist/register-flow.js.map +1 -1
  139. package/dist/service-proxy.d.ts +1 -0
  140. package/dist/service-proxy.d.ts.map +1 -1
  141. package/dist/service-proxy.js +15 -3
  142. package/dist/service-proxy.js.map +1 -1
  143. package/dist/storage/errors.d.ts +28 -0
  144. package/dist/storage/errors.d.ts.map +1 -0
  145. package/dist/storage/errors.js +65 -0
  146. package/dist/storage/errors.js.map +1 -0
  147. package/dist/storage/index.d.ts +2 -0
  148. package/dist/storage/index.d.ts.map +1 -0
  149. package/dist/storage/index.js +2 -0
  150. package/dist/storage/index.js.map +1 -0
  151. package/dist/storage/lowlevel.d.ts +314 -0
  152. package/dist/storage/lowlevel.d.ts.map +1 -0
  153. package/dist/storage/lowlevel.js +460 -0
  154. package/dist/storage/lowlevel.js.map +1 -0
  155. package/dist/storage/types.d.ts +59 -0
  156. package/dist/storage/types.d.ts.map +1 -0
  157. package/dist/storage/types.js +113 -0
  158. package/dist/storage/types.js.map +1 -0
  159. package/dist/storage/vfs.d.ts +144 -0
  160. package/dist/storage/vfs.d.ts.map +1 -0
  161. package/dist/storage/vfs.js +403 -0
  162. package/dist/storage/vfs.js.map +1 -0
  163. package/dist/tools/cross-sdk-agent.d.ts +3 -0
  164. package/dist/tools/cross-sdk-agent.d.ts.map +1 -0
  165. package/dist/tools/cross-sdk-agent.js +1089 -0
  166. package/dist/tools/cross-sdk-agent.js.map +1 -0
  167. package/dist/transport.d.ts +3 -0
  168. package/dist/transport.d.ts.map +1 -1
  169. package/dist/transport.js +33 -13
  170. package/dist/transport.js.map +1 -1
  171. package/dist/version.d.ts +1 -1
  172. package/dist/version.d.ts.map +1 -1
  173. package/dist/version.js +1 -1
  174. package/dist/version.js.map +1 -1
  175. package/package.json +44 -44
@@ -273,3 +273,5 @@ async with aiohttp.ClientSession() as session:
273
273
  | -33405 | Stream invalid params | 参数无效(如缺少 stream_id) |
274
274
  | -33406 | Stream rate limited | 速率限制 |
275
275
  | -33407 | Stream internal error | 服务内部错误 |
276
+
277
+
@@ -6,12 +6,15 @@ AUN SDK 文档位于 `docs/sdk/`,索引文件 `docs/sdk/INDEX.md` 分三层:
6
6
 
7
7
  当前 SDK 聚焦三主体模型:
8
8
 
9
- - `AIDStore`:注册、加载、列举、解析和证书运维。
10
- - `AID`:不可变身份值对象,负责签名、验签和 agent.md 签验。
11
- - `AUNClient`:认证、连接、状态机、事件和 RPC。
12
- - `ServiceProxyClient`:Python SDK 的 Service Proxy provider 侧客户端,负责 Gateway 控制面注册和 proxy-server 数据面隧道注册。
9
+ - `AIDStore`:注册、加载、列举、解析和证书运维。
10
+ - `AID`:不可变身份值对象,负责签名、验签和 agent.md 签验。
11
+ - `AUNClient`:认证、连接、状态机、事件和 RPC。
12
+ - `ServiceProxyClient`:Python SDK 的 Service Proxy provider 侧客户端,负责 Gateway 控制面注册和 proxy-server 数据面隧道注册。
13
+
14
+ 业务 RPC 的底层参数见 `09-*-rpc-manual.md`,可通过 `client.call(method, params)` 调用;Storage、Collab、Group FS、Service Proxy 等具备高层门面的能力以对应专项文档为准。`message.send`、`message.thought.put`、`group.send`、`group.thought.put` 的业务 payload 见 `09-payload-reference.md`。在线轻量通知和跨域 federation notify 方案见 `Notify通知方案.md`。
13
15
 
14
- 业务操作统一通过 `client.call(method, params)` 调用;消息、群组、存储、meta、stream、proxy 的参数见 `09-*-rpc-manual.md`。`message.send`、`message.thought.put`、`group.send`、`group.thought.put` 的业务 payload `09-payload-reference.md`。在线轻量通知和跨域 federation notify 方案见 `Notify通知方案.md`。
16
+ Storage SDK VFS、控制面/数据面分离、direct backend 上传下载、类 Linux 权限、mount/symlink 和服务端分层见 `AUN Storage架构设计.md`。
17
+ Group FS 的 `group.fs.*` RPC、`client.group.fs.*` 门面、`aun group fs` CLI、`cp/mv` 语义、群自有区 `group_aid` 写身份、`parents` 语义、JS string 差异和 memberdata 服务端映射见 `09-group-rpc-manual.md`。Collab 的 `gc`、`reflog`、`revert`、`clone` 及版本化文档/标签语义见 `09-collab-rpc-manual.md`。
15
18
 
16
19
  ## 渐进式查阅流程
17
20
 
@@ -27,9 +30,12 @@ AUN SDK 文档位于 `docs/sdk/`,索引文件 `docs/sdk/INDEX.md` 分三层:
27
30
  - 连接与状态:AUNClient / 九态状态机 / Gateway / 重连
28
31
  - E2EE:默认加密、ProtectedHeaders、P2P / Group V2
29
32
  - RPC 与事件:`client.call()`、`client.on()`、`client.notify()`、RPC 手册
30
- - Service Proxy:`ServiceProxyClient`、`proxy.register_services`、proxy-server `register_services`
31
- - agent.md:`AIDStore.upload_agent_md()`、`AIDStore.download_agent_md()`、`AIDStore.check_agent_md()`
32
- - 错误处理:Result、异常、错误码、重试
33
+ - Storage:SDK VFS、direct backend 数据面、`storage.*` low-level RPC、类 Linux 权限、mount/symlink、Storage Service 分层
34
+ - 群文件系统:`group.fs.*`、`client.group.fs.*`、`aun group fs`、`cp/mv` 上传下载、群自有区 `group_aid` 写身份、`parents`、JS string 差异和 memberdata 服务端映射(见 `09-group-rpc-manual.md`)
35
+ - 协作(collab):`collab.*` 版本化文档、乐观锁 CAS commit、三方合并、标签、GC、reflog、revert(见 `09-collab-rpc-manual.md`)
36
+ - Service Proxy:`ServiceProxyClient`、`proxy.register_services`、proxy-server `register_services`
37
+ - agent.md:`AIDStore.upload_agent_md()`、`AIDStore.download_agent_md()`、`AIDStore.check_agent_md()`
38
+ - 错误处理:Result、异常、错误码、重试
33
39
 
34
40
  ### Step 3:读 Layer 3 摘要
35
41
 
@@ -44,12 +50,13 @@ AUN SDK 文档位于 `docs/sdk/`,索引文件 `docs/sdk/INDEX.md` 分三层:
44
50
  | 03 | [核心概念](03-核心概念.md) | AID、状态机、认证、E2EE |
45
51
  | 04 | [连接与认证](04-连接与认证.md) | AIDStore、连接、网关发现、事件 |
46
52
  | 05 | [E2EE加密通信](05-E2EE加密通信.md) | E2EE、ProtectedHeaders、密钥管理 |
47
- | 06 | [API手册](06-API手册.md) | AIDStore / AID / AUNClient / ServiceProxyClient / 事件 / RPC |
48
- | 07 | [错误处理](07-错误处理.md) | Result、异常、错误码、重试 |
49
- | 08 | [最佳实践](08-最佳实践.md) | 幂等、多 AID、资源清理、测试数据 |
50
- | 09 | `09-*-rpc-manual.md` | 各服务 RPC 参数和响应 |
51
- | 09 | [Service Proxy RPC手册](09-proxy-rpc-manual.md) | `proxy.*` 控制面和 proxy-server 数据面注册 |
52
- | 09 | [AID托管API手册](09-custody-api-manual.md) | 可选 custody HTTP 服务 |
53
+ | 06 | [API手册](06-API手册.md) | AIDStore / AID / AUNClient / ServiceProxyClient / 事件 / RPC |
54
+ | 07 | [错误处理](07-错误处理.md) | Result、异常、错误码、重试 |
55
+ | 08 | [最佳实践](08-最佳实践.md) | 幂等、多 AID、资源清理、测试数据 |
56
+ | - | [AUN Storage架构设计](<AUN Storage架构设计.md>) | Storage SDK VFS、控制面/数据面分离、类 Linux 权限、mount/symlink、服务端分层 |
57
+ | 09 | `09-*-rpc-manual.md` | 各服务 RPC 参数和响应 |
58
+ | 09 | [Service Proxy RPC手册](09-proxy-rpc-manual.md) | `proxy.*` 控制面和 proxy-server 数据面注册 |
59
+ | 09 | [AID托管API手册](09-custody-api-manual.md) | 可选 custody HTTP 服务 |
53
60
 
54
61
  ## 常见查阅场景
55
62
 
@@ -57,13 +64,19 @@ AUN SDK 文档位于 `docs/sdk/`,索引文件 `docs/sdk/INDEX.md` 分三层:
57
64
  |------|----------|
58
65
  | 首次使用 SDK | [01-快速开始](01-快速开始.md) |
59
66
  | 理解新构造入口 | [01-快速开始](01-快速开始.md)、[06-API手册](06-API手册.md) |
60
- | 注册或加载 AID | [04-连接与认证](04-连接与认证.md) |
61
- | 发布、下载或检查 agent.md | [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md) |
62
- | 状态机和重连 | [03-核心概念](03-核心概念.md)、[04-连接与认证](04-连接与认证.md) |
67
+ | 注册或加载 AID | [04-连接与认证](04-连接与认证.md) |
68
+ | 发布、下载或检查 agent.md | [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md) |
69
+ | 状态机和重连 | [03-核心概念](03-核心概念.md)、[04-连接与认证](04-连接与认证.md) |
63
70
  | 查方法签名 | [06-API手册](06-API手册.md) |
64
71
  | 查消息或群组 RPC | 对应 `09-*-rpc-manual.md` |
65
- | notify 在线轻量通知 / 跨域 federation | [Notify通知方案.md](Notify通知方案.md) |
66
- | 查 Service Proxy 服务注册和路由 | [06-API手册](06-API手册.md)、[09-proxy-rpc-manual.md](09-proxy-rpc-manual.md) |
67
- | 查 payload 格式 | [09-payload-reference.md](09-payload-reference.md) |
72
+ | 查群文件系统 RPC / SDK / CLI 入口、群自有区写身份、`parents` 和 JS string 差异 | [09-group-rpc-manual.md](09-group-rpc-manual.md)、[06-API手册](06-API手册.md) |
73
+ | 查 Storage 架构、SDK VFS、权限模型、mount/symlink 和上传下载链路 | [AUN Storage架构设计.md](<AUN Storage架构设计.md>) |
74
+ | 查 Storage RPC 参数 | [09-storage-rpc-manual.md](09-storage-rpc-manual.md) |
75
+ | 查协作(版本化文档/乐观锁/标签/GC/reflog/revert)RPC | [09-collab-rpc-manual.md](09-collab-rpc-manual.md) |
76
+ | 查 notify 在线轻量通知 / 跨域 federation | [Notify通知方案.md](Notify通知方案.md) |
77
+ | 查 Service Proxy 服务注册和路由 | [06-API手册](06-API手册.md)、[09-proxy-rpc-manual.md](09-proxy-rpc-manual.md) |
78
+ | 查 payload 格式 | [09-payload-reference.md](09-payload-reference.md) |
68
79
  | 排查错误 | [07-错误处理](07-错误处理.md) |
69
80
  | 写测试或 demo | [08-最佳实践](08-最佳实践.md) |
81
+
82
+
@@ -169,3 +169,5 @@ sequenceDiagram
169
169
  | GROUP 明文 | `group.send(encrypt=false)` | `group_messages` + `group_events` | `group.v2.pull` 合并明文行 | 不解密 |
170
170
  | GROUP 加密 | `group.v2.send` 承载 `e2ee.group_encrypted` | `v2_group_messages` + `v2_group_wraps` | `group.v2.pull` | 接收方 SDK |
171
171
 
172
+
173
+
@@ -19,13 +19,17 @@
19
19
  | [08-最佳实践](08-最佳实践.md) | 幂等连接 · 多 AID · 资源清理 · 测试数据保护 |
20
20
  | [09-payload-reference](09-payload-reference.md) | message / group / thought payload 格式 |
21
21
  | [09-message-rpc-manual](09-message-rpc-manual.md) | P2P 消息 RPC |
22
- | [09-group-rpc-manual](09-group-rpc-manual.md) | 群组 RPC |
23
- | [09-storage-rpc-manual](09-storage-rpc-manual.md) | 存储 RPC |
24
- | [09-meta-rpc-manual](09-meta-rpc-manual.md) | meta RPC 和信任根 |
25
- | [09-stream-rpc-manual](09-stream-rpc-manual.md) | stream RPC |
26
- | [09-proxy-rpc-manual](09-proxy-rpc-manual.md) | Service Proxy 控制面 RPC 和数据面隧道注册 |
27
- | [09-custody-api-manual](09-custody-api-manual.md) | 可选 AID 托管 HTTP API |
28
- | [Notify通知方案](Notify通知方案.md) | `client.notify()` 在线轻量通知、跨域 federation 和可靠消息分工 |
22
+ | [09-group-rpc-manual](09-group-rpc-manual.md) | 群组 RPC(含 `group.fs.*` 群文件系统 RPC、群自有区写身份和 `parents` 语义) |
23
+ | [09-storage-rpc-manual](09-storage-rpc-manual.md) | 存储 RPC(对象 + POSIX VFS / 卷 / 软链 / ACL / token) |
24
+ | [09-collab-rpc-manual](09-collab-rpc-manual.md) | 协作 RPC(版本化文档 / 乐观锁 / 三方合并 / 标签 / GC / reflog / revert) |
25
+ | [group.fs POSIX 化详细设计](../aun-fs/group-fs/group.fs-POSIX化详细设计.md) | 下一版 `client.group.fs.*` / `aun group fs` / `group.fs.*` 群文件系统设计,含群自有区写身份、`parents` 和 JS string 语义 |
26
+ | [group.fs POSIX 化分阶段实施计划](../aun-fs/group-fs/group.fs-POSIX化分阶段实施计划.md) | group.fs 重构的 IPO、Step-by-step、用例集、Checklist、验收和回滚 |
27
+ | [AUN Storage架构设计](<AUN Storage架构设计.md>) | Storage SDK VFS、控制面/数据面分离、服务端分层、类 Linux 权限、mount/symlink 与关键时序 |
28
+ | [09-meta-rpc-manual](09-meta-rpc-manual.md) | meta RPC 和信任根 |
29
+ | [09-stream-rpc-manual](09-stream-rpc-manual.md) | stream RPC |
30
+ | [09-proxy-rpc-manual](09-proxy-rpc-manual.md) | Service Proxy 控制面 RPC 和数据面隧道注册 |
31
+ | [09-custody-api-manual](09-custody-api-manual.md) | 可选 AID 托管 HTTP API |
32
+ | [Notify通知方案](Notify通知方案.md) | `client.notify()` 在线轻量通知、跨域 federation 和可靠消息分工 |
29
33
 
30
34
  ---
31
35
 
@@ -41,7 +45,7 @@
41
45
 
42
46
  ### 连接与状态
43
47
 
44
- - 九态状态机、device_id / slot_id 隔离键 → [03-核心概念](03-核心概念.md)
48
+ - 九态状态机、device_id / slot_id 隔离键 → [03-核心概念](03-核心概念.md)
45
49
  - `connect()` 选项、长短连接、网关发现 → [04-连接与认证](04-连接与认证.md)
46
50
  - capability getter、事件、生命周期 API → [06-API手册](06-API手册.md)
47
51
  - 裸 WebSocket 握手 → [02-WebSocket协议](02-WebSocket协议.md)
@@ -56,15 +60,18 @@
56
60
 
57
61
  ### RPC 与事件
58
62
 
59
- - `client.call()` / `client.on()` → [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md)
60
- - `client.notify()` 在线轻量通知、跨域 federation、在线/离线边界 → [Notify通知方案](Notify通知方案.md)
63
+ - `client.call()` / `client.on()` → [04-连接与认证](04-连接与认证.md)、[06-API手册](06-API手册.md)
64
+ - `client.notify()` 在线轻量通知、跨域 federation、在线/离线边界 → [Notify通知方案](Notify通知方案.md)
61
65
  - Message RPC → [09-message-rpc-manual](09-message-rpc-manual.md)
62
- - Group RPC → [09-group-rpc-manual](09-group-rpc-manual.md)
63
- - Storage RPC → [09-storage-rpc-manual](09-storage-rpc-manual.md)
64
- - Meta RPC → [09-meta-rpc-manual](09-meta-rpc-manual.md)
65
- - Stream RPC [09-stream-rpc-manual](09-stream-rpc-manual.md)
66
- - Service Proxy RPC 和隧道注册 [09-proxy-rpc-manual](09-proxy-rpc-manual.md)
67
- - Payload 格式 → [09-payload-reference](09-payload-reference.md)
66
+ - Group RPC 与群文件系统 `group.fs.*` 控制面、群自有区写身份和 `parents` 语义 → [09-group-rpc-manual](09-group-rpc-manual.md)
67
+ - 下一版群文件系统 `group.fs.*`、`client.group.fs.*`、`aun group fs`、`cp/mv` POSIX 化语义和 JS string 差异 → [group.fs POSIX 化详细设计](../aun-fs/group-fs/group.fs-POSIX化详细设计.md)、[分阶段实施计划](../aun-fs/group-fs/group.fs-POSIX化分阶段实施计划.md)
68
+ - Storage 架构、SDK VFS、控制面/数据面分离、类 Linux 权限和 mount/symlink → [AUN Storage架构设计](<AUN Storage架构设计.md>)
69
+ - Storage RPC(对象 + `storage.fs.*` / `storage.volume.*` / 软链 / ACL / token)→ [09-storage-rpc-manual](09-storage-rpc-manual.md)
70
+ - Collab RPC(`collab.*` 版本化文档、乐观锁、标签、GC、reflog、revert)→ [09-collab-rpc-manual](09-collab-rpc-manual.md)
71
+ - Meta RPC → [09-meta-rpc-manual](09-meta-rpc-manual.md)
72
+ - Stream RPC → [09-stream-rpc-manual](09-stream-rpc-manual.md)
73
+ - Service Proxy RPC 和隧道注册 → [09-proxy-rpc-manual](09-proxy-rpc-manual.md)
74
+ - Payload 格式 → [09-payload-reference](09-payload-reference.md)
68
75
 
69
76
  ### 错误与测试
70
77
 
@@ -87,7 +94,7 @@
87
94
 
88
95
  ### 03-核心概念
89
96
 
90
- 解释 AID 身份、三主体职责、device_id / slot_id 隔离键、九态状态机、认证挑战-响应、默认 E2EE 行为和 RPC/事件模型。
97
+ 解释 AID 身份、三主体职责、device_id / slot_id 隔离键、九态状态机、认证挑战-响应、默认 E2EE 行为和 RPC/事件模型。
91
98
 
92
99
  ### 04-连接与认证
93
100
 
@@ -99,7 +106,7 @@
99
106
 
100
107
  ### 06-API手册
101
108
 
102
- 列出 AIDStore、AID、AUNClient、事件、ServiceProxyClient、E2EE 高级 API 和 RPC 手册索引,包含 Python / TS / JS / Go 的主要命名差异。
109
+ 列出 AIDStore、AID、AUNClient、事件、ServiceProxyClient、E2EE 高级 API 和 RPC 手册索引,包含 Python / TS / JS / Go 的主要命名差异。
103
110
 
104
111
  ### 07-错误处理
105
112
 
@@ -109,14 +116,24 @@
109
116
 
110
117
  给出幂等加载身份、连接、关闭、多 AID 管理、protected_headers、Flow Control 和测试数据保护建议。
111
118
 
112
- ### 09-*-rpc-manual
113
-
114
- 各业务服务的 RPC 参数、响应和错误语义。SDK 不为每个 RPC 提供一层业务 wrapper,应用直接通过 `client.call()` 调用。
115
-
116
- ### 09-proxy-rpc-manual
117
-
118
- 定义 Service ProxyGateway 控制面 `proxy.register_services` / `proxy.unregister_services` / `proxy.list_services`,以及 proxy-server 数据面 `register_services` 隧道消息、双注册顺序、服务列表一致性和 wakeup 路由语义。
119
-
120
- ### Notify通知方案
121
-
122
- 定义 `client.notify()` 的在线轻量通知语义、服务端/AID/群路由方式、跨域 federation 在线转发、无离线存储边界、安全约束,以及与 `message.send` / `group.send` 可靠应用事件的分工。
119
+ ### 09-*-rpc-manual
120
+
121
+ 各业务服务的 RPC 参数、响应和错误语义。Storage、Collab、Group FS、Service Proxy 等明确提供高层门面的能力应优先使用门面;需要精确控制底层参数时再通过 `client.call()` 调用业务 RPC。
122
+
123
+ ### AUN Storage架构设计
124
+
125
+ 定义 AUN StorageSDK VFS、low-level storage client、Storage Service、Storage Core、Metadata Engine 和 Blob Backend 分层。文档明确主数据流量直连 backend、控制面走 `storage.*` RPC,底层 session/ticket/complete RPC 继续保留,但普通应用通过 SDK VFS 获得类 POSIX 文件操作语义;同时定义类 Linux mode/ACL、目录 `x` 位、mount/unmount、symlink/readlink/lstat、share link direct backend ticket 的授权边界,并给出上传、下载、rename/move、delete/GC、路径解析和鉴权的 Mermaid 时序图。
126
+
127
+ ### 09-collab-rpc-manual
128
+
129
+ 定义协作层 `collab.*` RPC(共 21 个):文档版本线(ls-files/create/show/commit/merge/log/diff/revert/prune)、运维备份迁移(gc/reflog/clone)、目录级标签(tag.create/list/show/diff/restore/rm/prune)、群内发现(ls-remote/unregister)。collab 编排并入 storage 服务进程,以调用者身份直调 storage 原语,授权下沉到 storage ACL。涵盖乐观锁 CAS commit 撞版本响应、三方合并冲突标记、forward-only 标签回滚、垃圾扫描和审计日志语义。
130
+
131
+ ### 09-proxy-rpc-manual
132
+
133
+ 定义 Service Proxy 的 Gateway 控制面 `proxy.register_services` / `proxy.unregister_services` / `proxy.list_services`,以及 proxy-server 数据面 `register_services` 隧道消息、双注册顺序、服务列表一致性和 wakeup 路由语义。
134
+
135
+ ### Notify通知方案
136
+
137
+ 定义 `client.notify()` 的在线轻量通知语义、服务端/AID/群路由方式、跨域 federation 在线转发、无离线存储边界、安全约束,以及与 `message.send` / `group.send` 可靠应用事件的分工。
138
+
139
+
@@ -212,3 +212,5 @@ notify 专项测试覆盖:
212
212
  - 单域集成:AID 在线实时投递、group 在线成员投递。
213
213
  - E2E:`device_id` / `slot_id` 精确投递、离线不存储不补发。
214
214
  - 双域跨域:Python / TypeScript / Go / 浏览器 JavaScript 从 `aid.com` 在线投递到 `aid.net`。
215
+
216
+
@@ -10,8 +10,8 @@ AUN(Agent Union Network)定义 Agent 之间安全通信的标准接口,基
10
10
  - **三主体 SDK 模型**:`AIDStore` 管理 keystore,`AID` 是不可变身份值对象,`AUNClient` 管理连接与会话。
11
11
  - **Gateway 连接**:当前各语言 SDK 稳定支持 Gateway 接入;Peer / Relay 仍处于协议定义或未实现状态。
12
12
  - **默认 E2EE**:P2P 和 Group V2 消息默认加密;普通明文消息需要显式关闭加密。
13
- - **统一 RPC / 事件 / Notify**:业务方法通过 `client.call(method, params)` 调用,事件通过 `client.on(event, handler)` 订阅;在线轻量通知通过 `client.notify()` 发送,支持同域和跨域在线 federation,详见 `Notify通知方案.md`。
14
- - **Service Proxy**:Python SDK 提供 `ServiceProxyClient`,provider 会先向 Gateway 注册 `proxy.*` 控制面服务列表,再在每条 proxy-server 隧道认证后注册数据面服务列表。
13
+ - **统一 RPC / 事件 / Notify**:业务方法通过 `client.call(method, params)` 调用,事件通过 `client.on(event, handler)` 订阅;在线轻量通知通过 `client.notify()` 发送,支持同域和跨域在线 federation,详见 `Notify通知方案.md`。
14
+ - **Service Proxy**:Python SDK 提供 `ServiceProxyClient`,provider 会先向 Gateway 注册 `proxy.*` 控制面服务列表,再在每条 proxy-server 隧道认证后注册数据面服务列表。
15
15
 
16
16
  ---
17
17
 
@@ -40,7 +40,7 @@ async def create_client(aid: str) -> AUNClient:
40
40
  raise RuntimeError(registered["error"]["message"])
41
41
  loaded = store.load(aid)
42
42
 
43
- client = AUNClient(loaded["data"]["aid"])
43
+ client = AUNClient(loaded["data"]["aid"])
44
44
  await client.connect({"slot_id": "main", "auto_reconnect": True})
45
45
  return client
46
46
 
@@ -69,14 +69,14 @@ asyncio.run(main())
69
69
 
70
70
  ## 多语言构造约束
71
71
 
72
- | 语言 | 无身份构造 | 带身份构造 |
72
+ | 语言 | 无身份构造 | 带身份构造 |
73
73
  |------|--------------|---------------|
74
74
  | Python | `AUNClient()` | `AUNClient(aid)` |
75
75
  | TypeScript | `new AUNClient()` | `new AUNClient(aid)` |
76
76
  | JavaScript | `new AUNClient()` | `new AUNClient(aid)` |
77
77
  | Go | `aun.NewAUNClientEmpty()` | `aun.NewAUNClient(aid)` |
78
78
 
79
- `aid` 必须是 `AIDStore.load()` 返回的 AID 对象,不是字符串。debug / verify_ssl / root_ca_path 等配置由 AID 携带,不再通过 `AUNClient` 构造参数传入。
79
+ `aid` 必须是 `AIDStore.load()` 返回的 AID 对象,不是字符串。debug / verify_ssl / root_ca_path 等配置由 AID 携带,不再通过 `AUNClient` 构造参数传入。
80
80
 
81
81
  ---
82
82
 
@@ -108,22 +108,24 @@ Layer 1: 安全层 TLS + AUN E2EE
108
108
  | [03-核心概念](03-核心概念.md) | AID、AIDStore、AUNClient、九态状态机、E2EE |
109
109
  | [04-连接与认证](04-连接与认证.md) | 注册、加载、认证、连接、事件、agent.md |
110
110
  | [05-E2EE加密通信](05-E2EE加密通信.md) | E2EE 收发、ProtectedHeaders、密钥管理 |
111
- | [06-API手册](06-API手册.md) | AIDStore / AID / AUNClient / ServiceProxyClient / 事件 / RPC 索引 |
111
+ | [06-API手册](06-API手册.md) | AIDStore / AID / AUNClient / ServiceProxyClient / 事件 / RPC 索引 |
112
112
  | [07-错误处理](07-错误处理.md) | Result、异常层级、错误码、重试策略 |
113
- | [08-最佳实践](08-最佳实践.md) | 幂等连接、多 AID、资源清理、测试数据保护 |
114
- | [Notify通知方案](Notify通知方案.md) | `client.notify()` 在线轻量通知、跨域 federation 和可靠消息分工 |
113
+ | [08-最佳实践](08-最佳实践.md) | 幂等连接、多 AID、资源清理、测试数据保护 |
114
+ | [AUN Storage架构设计](<AUN Storage架构设计.md>) | Storage SDK VFS、控制面/数据面分离、服务端分层、类 Linux 权限、mount/symlink 和关键时序 |
115
+ | [Notify通知方案](Notify通知方案.md) | `client.notify()` 在线轻量通知、跨域 federation 和可靠消息分工 |
115
116
 
116
117
  RPC 专项手册:
117
118
 
118
119
  | 手册 | 范围 |
119
120
  |------|------|
120
121
  | [09-message-rpc-manual.md](09-message-rpc-manual.md) | P2P 消息、ack、thought |
121
- | [09-group-rpc-manual.md](09-group-rpc-manual.md) | 群组生命周期、成员、群消息、群 thought |
122
- | [09-storage-rpc-manual.md](09-storage-rpc-manual.md) | 文件和对象存储 |
123
- | [09-meta-rpc-manual.md](09-meta-rpc-manual.md) | ping / status / trust_roots |
124
- | [09-stream-rpc-manual.md](09-stream-rpc-manual.md) | 流式数据传输 |
125
- | [09-proxy-rpc-manual.md](09-proxy-rpc-manual.md) | Service Proxy 控制面 RPC 和数据面隧道注册 |
126
- | [09-payload-reference.md](09-payload-reference.md) | message / group payload 结构 |
122
+ | [09-group-rpc-manual.md](09-group-rpc-manual.md) | 群组生命周期、成员、群消息、群 thought、Group FS |
123
+ | [09-storage-rpc-manual.md](09-storage-rpc-manual.md) | 对象存储 + POSIX VFS(fs/卷/软链/ACL/token) |
124
+ | [09-collab-rpc-manual.md](09-collab-rpc-manual.md) | 协作层:版本化文档、乐观锁、三方合并、目录快照 |
125
+ | [09-meta-rpc-manual.md](09-meta-rpc-manual.md) | ping / status / trust_roots |
126
+ | [09-stream-rpc-manual.md](09-stream-rpc-manual.md) | 流式数据传输 |
127
+ | [09-proxy-rpc-manual.md](09-proxy-rpc-manual.md) | Service Proxy 控制面 RPC 和数据面隧道注册 |
128
+ | [09-payload-reference.md](09-payload-reference.md) | message / group payload 结构 |
127
129
  | [09-custody-api-manual.md](09-custody-api-manual.md) | 可选 AID 托管 HTTP API |
128
130
 
129
- 协议文档随 SDK 包分发,位于 `aun_core/docs/protocol/`。
131
+ 协议文档随 SDK 包分发,位于 `aun_core/docs/protocol/`。
@@ -42,6 +42,20 @@ export type RekeyResult = {
42
42
  new_cert_not_after: Date;
43
43
  new_fingerprint: string;
44
44
  };
45
+ export type ImportGroupIdentityOptions = {
46
+ private_key_pem?: string;
47
+ privateKeyPem?: string;
48
+ public_key_der_b64?: string;
49
+ publicKeyDerB64?: string;
50
+ curve?: string;
51
+ cert_pem?: string;
52
+ certPem?: string;
53
+ cert?: string;
54
+ };
55
+ export type ImportGroupIdentityResult = {
56
+ imported: true;
57
+ aid: string;
58
+ };
45
59
  export type ChangeSeedResult = {
46
60
  changed: boolean;
47
61
  count: number;
@@ -74,8 +88,13 @@ export declare class AIDStore {
74
88
  load(aid: string): Promise<Result<{
75
89
  aid: AID;
76
90
  }>>;
91
+ loadAsync(aid: string): Promise<Result<{
92
+ aid: AID;
93
+ }>>;
77
94
  list(): Promise<Result<ListResult>>;
95
+ listAsync(): Promise<Result<ListResult>>;
78
96
  changeSeed(oldSeed: string, newSeed: string): Promise<Result<ChangeSeedResult>>;
97
+ changeSeedAsync(oldSeed: string, newSeed: string): Promise<Result<ChangeSeedResult>>;
79
98
  register(aid: string): Promise<Result<{
80
99
  registered: true;
81
100
  }>>;
@@ -91,6 +110,12 @@ export declare class AIDStore {
91
110
  diagnose(aid: string): Promise<Result<DiagnoseResult>>;
92
111
  renewCert(aid: string): Promise<Result<RenewCertResult>>;
93
112
  rekey(aid: string): Promise<Result<RekeyResult>>;
113
+ importGroupIdentity(aidOrOptions: string | (ImportGroupIdentityOptions & {
114
+ aid?: string;
115
+ }), options?: ImportGroupIdentityOptions): Promise<Result<ImportGroupIdentityResult>>;
116
+ importGroupIdentityAsync(aidOrOptions: string | (ImportGroupIdentityOptions & {
117
+ aid?: string;
118
+ }), options?: ImportGroupIdentityOptions): Promise<Result<ImportGroupIdentityResult>>;
94
119
  private _beginAidOperation;
95
120
  private _resolveGateway;
96
121
  private _loadCachedGatewayUrl;
@@ -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
@@ -360,14 +360,15 @@ export class AIDStore {
360
360
  }
361
361
  // 有效期检查(对齐 Python cert_time_error)
362
362
  const validity = parseCertValidity(certPem);
363
- if (validity) {
364
- const now = Date.now();
365
- if (now > validity.notAfter) {
366
- return resultErr(codes.CERT_EXPIRED, `certificate expired for aid: ${target}`);
367
- }
368
- if (now < validity.notBefore) {
369
- return resultErr(codes.CERT_NOT_YET_VALID, `certificate not yet valid for aid: ${target}`);
370
- }
363
+ if (!validity) {
364
+ return resultErr(codes.CERT_PARSE_ERROR, `certificate validity parse failed for aid: ${target}`);
365
+ }
366
+ const now = Date.now();
367
+ if (now > validity.notAfter) {
368
+ return resultErr(codes.CERT_EXPIRED, `certificate expired for aid: ${target}`);
369
+ }
370
+ if (now < validity.notBefore) {
371
+ return resultErr(codes.CERT_NOT_YET_VALID, `certificate not yet valid for aid: ${target}`);
371
372
  }
372
373
  // CN 校验(对齐 Python cert_common_name 检查)
373
374
  const cn = parseCertCN(certPem);
@@ -434,6 +435,9 @@ export class AIDStore {
434
435
  }),
435
436
  });
436
437
  }
438
+ loadAsync(aid) {
439
+ return this.load(aid);
440
+ }
437
441
  async list() {
438
442
  try {
439
443
  const aids = await this._keystore.listIdentities();
@@ -455,6 +459,9 @@ export class AIDStore {
455
459
  return resultErr('LIST_IDENTITIES_FAILED', String(exc), exc);
456
460
  }
457
461
  }
462
+ listAsync() {
463
+ return this.list();
464
+ }
458
465
  async changeSeed(oldSeed, newSeed) {
459
466
  try {
460
467
  const changed = await this._keystore.changeSeed?.(oldSeed, newSeed);
@@ -465,6 +472,9 @@ export class AIDStore {
465
472
  return resultErr(codes.PRIVATE_KEY_PARSE_ERROR, String(exc), exc);
466
473
  }
467
474
  }
475
+ changeSeedAsync(oldSeed, newSeed) {
476
+ return this.changeSeed(oldSeed, newSeed);
477
+ }
468
478
  async register(aid) {
469
479
  const target = String(aid ?? '').trim();
470
480
  try {
@@ -750,6 +760,77 @@ export class AIDStore {
750
760
  return resultErr(codes.REKEY_FAILED, String(exc), exc);
751
761
  }
752
762
  }
763
+ async importGroupIdentity(aidOrOptions, options = {}) {
764
+ const fromObject = typeof aidOrOptions === 'object' && aidOrOptions !== null ? aidOrOptions : {};
765
+ const target = String(typeof aidOrOptions === 'string' ? aidOrOptions : fromObject.aid ?? '').trim();
766
+ const privateKeyPem = String(options.private_key_pem ?? options.privateKeyPem ?? fromObject.private_key_pem ?? fromObject.privateKeyPem ?? '').trim();
767
+ const declaredPublicKeyDerB64 = String(options.public_key_der_b64 ?? options.publicKeyDerB64 ?? fromObject.public_key_der_b64 ?? fromObject.publicKeyDerB64 ?? '').trim();
768
+ const curve = String(options.curve ?? fromObject.curve ?? 'P-256').trim() || 'P-256';
769
+ const certPem = String(options.cert_pem ?? options.certPem ?? options.cert ?? fromObject.cert_pem ?? fromObject.certPem ?? fromObject.cert ?? '').trim();
770
+ if (!target)
771
+ return resultErr(codes.INVALID_AID_FORMAT, 'importGroupIdentity requires a non-empty aid');
772
+ if (!privateKeyPem)
773
+ return resultErr(codes.PRIVATE_KEY_PARSE_ERROR, 'importGroupIdentity requires private_key_pem');
774
+ if (!declaredPublicKeyDerB64)
775
+ return resultErr(codes.KEYPAIR_MISMATCH, 'importGroupIdentity requires public_key_der_b64');
776
+ if (!certPem)
777
+ return resultErr(codes.CERT_PARSE_ERROR, 'importGroupIdentity requires cert_pem');
778
+ try {
779
+ const certPub = publicKeyDerB64(certPem);
780
+ if (!certPub)
781
+ return resultErr(codes.CERT_PARSE_ERROR, `certificate parse failed for aid: ${target}`);
782
+ const validity = parseCertValidity(certPem);
783
+ if (!validity)
784
+ return resultErr(codes.CERT_PARSE_ERROR, `certificate validity parse failed for aid: ${target}`);
785
+ const now = Date.now();
786
+ if (now > validity.notAfter)
787
+ return resultErr(codes.CERT_CHAIN_BROKEN, `importGroupIdentity returned certificate is expired`);
788
+ if (now < validity.notBefore)
789
+ return resultErr(codes.CERT_CHAIN_BROKEN, `importGroupIdentity returned certificate is not_yet_valid`);
790
+ const cn = parseCertCN(certPem);
791
+ if (cn !== target) {
792
+ return resultErr(codes.CERT_CHAIN_BROKEN, `importGroupIdentity returned certificate CN mismatch: expected ${target}, got ${cn ?? ''}`);
793
+ }
794
+ if (certPub !== declaredPublicKeyDerB64) {
795
+ return resultErr(codes.KEYPAIR_MISMATCH, 'importGroupIdentity returned certificate public key mismatch');
796
+ }
797
+ try {
798
+ const privateKey = await importPrivateKeyEcdsa(privateKeyPem);
799
+ const probe = new TextEncoder().encode('aun-group-identity-import-self-test');
800
+ const sig = await ecdsaSignDer(privateKey, probe);
801
+ const pubKey = await importCertPublicKeyEcdsa(certPem);
802
+ const ok = await ecdsaVerifyDer(pubKey, sig, probe);
803
+ if (!ok) {
804
+ return resultErr(codes.KEYPAIR_MISMATCH, `private key does not match certificate for aid: ${target}`);
805
+ }
806
+ }
807
+ catch (exc) {
808
+ return resultErr(codes.PRIVATE_KEY_PARSE_ERROR, `private key parse failed for aid: ${target}`, exc);
809
+ }
810
+ await this._keystore.saveIdentity(target, {
811
+ aid: target,
812
+ private_key_pem: privateKeyPem,
813
+ public_key_der_b64: declaredPublicKeyDerB64,
814
+ curve,
815
+ cert: certPem,
816
+ });
817
+ const loaded = await this.load(target);
818
+ if (!loaded.ok) {
819
+ return resultErr(loaded.error.code, loaded.error.message);
820
+ }
821
+ const signProbe = await loaded.data.aid.sign('aun-group-identity-import-self-test');
822
+ if (!signProbe.ok) {
823
+ return resultErr(codes.KEYPAIR_MISMATCH, signProbe.error.message);
824
+ }
825
+ return resultOk({ imported: true, aid: target });
826
+ }
827
+ catch (exc) {
828
+ return resultErr(codes.CERT_PARSE_ERROR, String(exc), exc);
829
+ }
830
+ }
831
+ importGroupIdentityAsync(aidOrOptions, options = {}) {
832
+ return this.importGroupIdentity(aidOrOptions, options);
833
+ }
753
834
  async _beginAidOperation(gatewayUrl, aidObj) {
754
835
  const clientNonce = this._registerFlow.newClientNonce();
755
836
  const phase1 = await this._registerFlow.shortRpc(gatewayUrl, 'auth.aid_login1', {