@agentunion/fastaun-browser 0.4.12 → 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 (182) hide show
  1. package/CHANGELOG.md +480 -359
  2. package/_packed_docs/CHANGELOG.md +480 -359
  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 -445
  68. package/_packed_docs/sdk/09-message-rpc-manual.md +8 -7
  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/auth.d.ts +2 -0
  84. package/dist/auth.d.ts.map +1 -1
  85. package/dist/auth.js +98 -9
  86. package/dist/auth.js.map +1 -1
  87. package/dist/bundle.js +19156 -16554
  88. package/dist/client/delivery.d.ts +5 -0
  89. package/dist/client/delivery.d.ts.map +1 -1
  90. package/dist/client/delivery.js +169 -15
  91. package/dist/client/delivery.js.map +1 -1
  92. package/dist/client/rpc-pipeline.d.ts +1 -0
  93. package/dist/client/rpc-pipeline.d.ts.map +1 -1
  94. package/dist/client/rpc-pipeline.js +76 -34
  95. package/dist/client/rpc-pipeline.js.map +1 -1
  96. package/dist/client/v2-e2ee.d.ts.map +1 -1
  97. package/dist/client/v2-e2ee.js +67 -8
  98. package/dist/client/v2-e2ee.js.map +1 -1
  99. package/dist/client.d.ts +31 -0
  100. package/dist/client.d.ts.map +1 -1
  101. package/dist/client.js +313 -23
  102. package/dist/client.js.map +1 -1
  103. package/dist/collab/client.d.ts +39 -0
  104. package/dist/collab/client.d.ts.map +1 -0
  105. package/dist/collab/client.js +124 -0
  106. package/dist/collab/client.js.map +1 -0
  107. package/dist/collab/errors.d.ts +16 -0
  108. package/dist/collab/errors.d.ts.map +1 -0
  109. package/dist/collab/errors.js +60 -0
  110. package/dist/collab/errors.js.map +1 -0
  111. package/dist/collab/index.d.ts +4 -0
  112. package/dist/collab/index.d.ts.map +1 -0
  113. package/dist/collab/index.js +4 -0
  114. package/dist/collab/index.js.map +1 -0
  115. package/dist/collab/types.d.ts +111 -0
  116. package/dist/collab/types.d.ts.map +1 -0
  117. package/dist/collab/types.js +2 -0
  118. package/dist/collab/types.js.map +1 -0
  119. package/dist/crypto.d.ts +6 -0
  120. package/dist/crypto.d.ts.map +1 -1
  121. package/dist/crypto.js +6 -0
  122. package/dist/crypto.js.map +1 -1
  123. package/dist/errors.d.ts.map +1 -1
  124. package/dist/errors.js +16 -1
  125. package/dist/errors.js.map +1 -1
  126. package/dist/facades.d.ts +89 -0
  127. package/dist/facades.d.ts.map +1 -0
  128. package/dist/facades.js +228 -0
  129. package/dist/facades.js.map +1 -0
  130. package/dist/group-fs.d.ts +103 -0
  131. package/dist/group-fs.d.ts.map +1 -0
  132. package/dist/group-fs.js +496 -0
  133. package/dist/group-fs.js.map +1 -0
  134. package/dist/group-resources.d.ts +98 -0
  135. package/dist/group-resources.d.ts.map +1 -0
  136. package/dist/group-resources.js +635 -0
  137. package/dist/group-resources.js.map +1 -0
  138. package/dist/index.d.ts +4 -1
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +6 -0
  141. package/dist/index.js.map +1 -1
  142. package/dist/register-flow.d.ts +1 -0
  143. package/dist/register-flow.d.ts.map +1 -1
  144. package/dist/register-flow.js +3 -0
  145. package/dist/register-flow.js.map +1 -1
  146. package/dist/service-proxy.d.ts +1 -0
  147. package/dist/service-proxy.d.ts.map +1 -1
  148. package/dist/service-proxy.js +15 -3
  149. package/dist/service-proxy.js.map +1 -1
  150. package/dist/storage/errors.d.ts +28 -0
  151. package/dist/storage/errors.d.ts.map +1 -0
  152. package/dist/storage/errors.js +65 -0
  153. package/dist/storage/errors.js.map +1 -0
  154. package/dist/storage/index.d.ts +2 -0
  155. package/dist/storage/index.d.ts.map +1 -0
  156. package/dist/storage/index.js +2 -0
  157. package/dist/storage/index.js.map +1 -0
  158. package/dist/storage/lowlevel.d.ts +314 -0
  159. package/dist/storage/lowlevel.d.ts.map +1 -0
  160. package/dist/storage/lowlevel.js +460 -0
  161. package/dist/storage/lowlevel.js.map +1 -0
  162. package/dist/storage/types.d.ts +59 -0
  163. package/dist/storage/types.d.ts.map +1 -0
  164. package/dist/storage/types.js +113 -0
  165. package/dist/storage/types.js.map +1 -0
  166. package/dist/storage/vfs.d.ts +144 -0
  167. package/dist/storage/vfs.d.ts.map +1 -0
  168. package/dist/storage/vfs.js +403 -0
  169. package/dist/storage/vfs.js.map +1 -0
  170. package/dist/tools/cross-sdk-agent.d.ts +3 -0
  171. package/dist/tools/cross-sdk-agent.d.ts.map +1 -0
  172. package/dist/tools/cross-sdk-agent.js +1089 -0
  173. package/dist/tools/cross-sdk-agent.js.map +1 -0
  174. package/dist/transport.d.ts +3 -0
  175. package/dist/transport.d.ts.map +1 -1
  176. package/dist/transport.js +33 -13
  177. package/dist/transport.js.map +1 -1
  178. package/dist/version.d.ts +1 -1
  179. package/dist/version.d.ts.map +1 -1
  180. package/dist/version.js +1 -1
  181. package/dist/version.js.map +1 -1
  182. package/package.json +44 -44
package/dist/client.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { type AUNConfig } from './config.js';
2
2
  import { type EventHandler, type Subscription } from './events.js';
3
3
  import { GatewayDiscovery } from './discovery.js';
4
+ import { AIDStore } from './aid-store.js';
5
+ import { GroupFacade, MessageFacade, StreamFacade } from './facades.js';
6
+ import { StorageVFS } from './storage/vfs.js';
7
+ import { CollabClient } from './collab/client.js';
4
8
  import { ConnectionState, type JsonObject, type RpcParams, type RpcResult } from './types.js';
5
9
  import { AID } from './aid.js';
6
10
  export interface ConnectionOptions {
@@ -29,6 +33,12 @@ export interface NotifyOptions {
29
33
  ttl_ms?: number;
30
34
  ttlMs?: number;
31
35
  }
36
+ export interface BindGroupAidOptions {
37
+ aidStore?: AIDStore;
38
+ }
39
+ export interface CompleteGroupTransferOptions {
40
+ aidStore?: AIDStore;
41
+ }
32
42
  /**
33
43
  * AUN Core SDK 客户端 — 浏览器版本。
34
44
  *
@@ -115,6 +125,7 @@ export declare class AUNClient {
115
125
  private _onlineUnreadHintIntervalMs;
116
126
  /** gap fill 来源标记:true 表示当前正在补洞(pull 触发),false 表示非补洞 */
117
127
  private _gapFillActive;
128
+ private _backgroundRpcDepth;
118
129
  private _pullGates;
119
130
  private _reconnectActive;
120
131
  private _reconnectAbort;
@@ -146,8 +157,23 @@ export declare class AUNClient {
146
157
  private _delivery;
147
158
  private _v2E2EE;
148
159
  private _groupState;
160
+ private _storage?;
161
+ private _collab?;
162
+ private _messageFacade?;
163
+ private _groupFacade?;
164
+ private _streamFacade?;
149
165
  constructor(aid?: AID);
150
166
  get aid(): string | null;
167
+ /** AUN Storage VFS 入口 */
168
+ get storage(): StorageVFS;
169
+ /** AUN collab 协作层入口 */
170
+ get collab(): CollabClient;
171
+ /** Message RPC facade 入口 */
172
+ get message(): MessageFacade;
173
+ /** Group RPC facade 入口 */
174
+ get group(): GroupFacade;
175
+ /** Stream RPC facade 入口 */
176
+ get stream(): StreamFacade;
151
177
  private _observeAgentMdFromEnvelope;
152
178
  /** transport 的 meta observer:吸收 gateway 注入的 _meta 字段。失败不影响业务。 */
153
179
  private _observeRpcMeta;
@@ -203,6 +229,10 @@ export declare class AUNClient {
203
229
  * 自动解密 message.pull/group.pull、Group E2EE 生命周期编排。
204
230
  */
205
231
  call(method: string, params?: RpcParams): Promise<RpcResult>;
232
+ createGroup(params?: RpcParams): Promise<RpcResult>;
233
+ bindGroupAid(params?: RpcParams, options?: BindGroupAidOptions): Promise<RpcResult>;
234
+ startGroupTransfer(params?: RpcParams, options?: CompleteGroupTransferOptions): Promise<RpcResult>;
235
+ completeGroupTransfer(params?: RpcParams, options?: CompleteGroupTransferOptions): Promise<RpcResult>;
206
236
  private static _notifyParamsSizeOk;
207
237
  private static _validateNotifyEventMethod;
208
238
  private static _normalizeNotifyTtl;
@@ -448,6 +478,7 @@ export declare class AUNClient {
448
478
  private _safeAsync;
449
479
  private _explicitGroupCursorParams;
450
480
  private _groupCursorTargetsCurrentInstance;
481
+ private _withBackgroundRpc;
451
482
  private _runPullSerialized;
452
483
  /** 可取消的 sleep */
453
484
  private _sleep;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -8,6 +8,7 @@ import { createConfig, getDeviceId, normalizeSlotId } from './config.js';
8
8
  import { EventDispatcher } from './events.js';
9
9
  import { normalizeGroupId } from './group-id.js';
10
10
  import { GatewayDiscovery } from './discovery.js';
11
+ import { AIDStore } from './aid-store.js';
11
12
  import { RPCTransport } from './transport.js';
12
13
  import { AuthFlow } from './auth.js';
13
14
  import { SeqTracker } from './seq-tracker.js';
@@ -17,6 +18,9 @@ import { IdentityRuntimeManager } from './client/identity.js';
17
18
  import { LifecycleController } from './client/lifecycle.js';
18
19
  import { PeerDirectory } from './client/peers.js';
19
20
  import { RpcPipeline } from './client/rpc-pipeline.js';
21
+ import { GroupFacade, MessageFacade, StreamFacade } from './facades.js';
22
+ import { StorageVFS } from './storage/vfs.js';
23
+ import { CollabClient } from './collab/client.js';
20
24
  import { V2E2EECoordinator } from './client/v2-e2ee.js';
21
25
  import { GroupStateCoordinator } from './client/group-state.js';
22
26
  import { CryptoProvider, base64ToUint8, pemToArrayBuffer, ecdsaVerifyDer, importCertPublicKeyEcdsa, } from './crypto.js';
@@ -110,18 +114,25 @@ const NON_IDEMPOTENT_METHODS = new Set([
110
114
  'storage.create_folder', 'storage.rename_folder', 'storage.move_folder',
111
115
  'storage.delete_folder', 'storage.move_object', 'storage.copy_object',
112
116
  'storage.batch_delete', 'storage.set_object_meta', 'storage.append_object',
117
+ 'storage.set_acl', 'storage.remove_acl', 'storage.set_visibility',
118
+ 'storage.issue_token', 'storage.revoke_token',
119
+ 'storage.create_symlink', 'storage.atomic_repoint',
120
+ 'storage.rename_symlink', 'storage.delete_symlink',
121
+ 'storage.fs.mkdir', 'storage.fs.remove', 'storage.fs.rename', 'storage.fs.copy',
122
+ 'storage.fs.mount', 'storage.fs.approve', 'storage.fs.reject', 'storage.fs.unmount',
123
+ 'storage.fs.invalidate_membership',
124
+ 'storage.volume.create', 'storage.volume.renew', 'storage.volume.expire_due',
113
125
  'auth.create_aid', 'auth.renew_cert', 'auth.rekey',
114
126
  'message.thought.put', 'group.thought.put',
115
- 'group.add_member',
116
- 'group.resources.put', 'group.resources.create_folder',
117
- 'group.resources.rename', 'group.resources.move',
118
- 'group.resources.mount_object', 'group.resources.update',
119
- 'group.resources.delete', 'group.resources.cleanup_by_storage_ref',
120
- 'group.resources.request_add', 'group.resources.request_mount_object',
121
- 'group.resources.direct_add', 'group.resources.approve_request',
122
- 'group.resources.reject_request', 'group.resources.unmount',
123
- 'group.resources.get_access',
124
- 'group.resources.resolve_access_ticket',
127
+ 'group.add_member', 'group.bind_group_aid', 'group.complete_transfer',
128
+ 'group.fs.mkdir', 'group.fs.rm', 'group.fs.cp', 'group.fs.mv',
129
+ 'group.fs.mount', 'group.fs.umount',
130
+ 'group.fs.check_upload', 'group.fs.create_upload_session',
131
+ 'group.fs.complete_upload', 'group.fs.create_download_ticket',
132
+ 'collab.create', 'collab.commit', 'collab.clone',
133
+ 'collab.prune', 'collab.unregister',
134
+ 'collab.tag.create', 'collab.tag.restore',
135
+ 'collab.tag.rm', 'collab.tag.prune',
125
136
  ]);
126
137
  /** 需要客户端签名的关键方法。运行时逻辑已迁入 RpcPipeline,此处保留给源码审计测试。 */
127
138
  const SIGNED_METHODS = new Set([
@@ -138,20 +149,17 @@ const SIGNED_METHODS = new Set([
138
149
  'group.leave', 'group.remove_member', 'group.update_rules',
139
150
  'group.update', 'group.update_announcement',
140
151
  'group.update_join_requirements', 'group.set_role',
141
- 'group.transfer_owner', 'group.review_join_request',
152
+ 'group.transfer_owner', 'group.bind_group_aid', 'group.complete_transfer',
153
+ 'group.review_join_request',
142
154
  'group.batch_review_join_request',
143
155
  'group.request_join', 'group.use_invite_code',
144
156
  'group.thought.put',
145
157
  'message.thought.put',
146
158
  'group.set_settings',
147
- 'group.resources.put', 'group.resources.create_folder',
148
- 'group.resources.rename', 'group.resources.move',
149
- 'group.resources.mount_object', 'group.resources.update',
150
- 'group.resources.delete', 'group.resources.cleanup_by_storage_ref',
151
- 'group.resources.request_add', 'group.resources.request_mount_object',
152
- 'group.resources.direct_add', 'group.resources.approve_request',
153
- 'group.resources.reject_request', 'group.resources.unmount',
154
- 'group.resources.get_access', 'group.resources.resolve_access_ticket',
159
+ 'group.fs.mkdir', 'group.fs.rm', 'group.fs.cp', 'group.fs.mv',
160
+ 'group.fs.mount', 'group.fs.umount',
161
+ 'group.fs.check_upload', 'group.fs.create_upload_session',
162
+ 'group.fs.complete_upload', 'group.fs.create_download_ticket',
155
163
  'storage.put_object', 'storage.delete_object',
156
164
  'storage.create_share_link', 'storage.revoke_share_link',
157
165
  'storage.get_by_share',
@@ -159,6 +167,19 @@ const SIGNED_METHODS = new Set([
159
167
  'storage.create_folder', 'storage.rename_folder', 'storage.move_folder',
160
168
  'storage.delete_folder', 'storage.move_object', 'storage.copy_object',
161
169
  'storage.batch_delete', 'storage.set_object_meta', 'storage.append_object',
170
+ 'storage.set_acl', 'storage.remove_acl', 'storage.set_visibility',
171
+ 'storage.check_access',
172
+ 'storage.issue_token', 'storage.revoke_token',
173
+ 'storage.create_symlink', 'storage.atomic_repoint',
174
+ 'storage.rename_symlink', 'storage.delete_symlink',
175
+ 'storage.fs.mkdir', 'storage.fs.remove', 'storage.fs.rename', 'storage.fs.copy',
176
+ 'storage.fs.mount', 'storage.fs.approve', 'storage.fs.reject', 'storage.fs.unmount',
177
+ 'storage.fs.invalidate_membership',
178
+ 'storage.volume.create', 'storage.volume.renew', 'storage.volume.expire_due',
179
+ 'collab.create', 'collab.commit', 'collab.clone',
180
+ 'collab.prune', 'collab.unregister',
181
+ 'collab.tag.create', 'collab.tag.restore',
182
+ 'collab.tag.rm', 'collab.tag.prune',
162
183
  'group.commit_state',
163
184
  'group.ban', 'group.unban',
164
185
  'group.dissolve', 'group.suspend', 'group.resume',
@@ -344,6 +365,22 @@ function _v2ConcatBytes(...parts) {
344
365
  function formatCaughtError(error) {
345
366
  return error instanceof Error ? error : String(error);
346
367
  }
368
+ const RELOGIN_REFRESH_ERRORS = new Set([
369
+ 'missing refresh_token',
370
+ 'invalid_or_expired_refresh_token',
371
+ 'refresh not supported',
372
+ ]);
373
+ function authErrorRequiresRelogin(error) {
374
+ const data = error.data;
375
+ if (isJsonObject(data)) {
376
+ if (data.relogin_required === true)
377
+ return true;
378
+ const code = String(data.error ?? '').trim().toLowerCase();
379
+ if (RELOGIN_REFRESH_ERRORS.has(code))
380
+ return true;
381
+ }
382
+ return RELOGIN_REFRESH_ERRORS.has(error.message.trim().toLowerCase());
383
+ }
347
384
  function v2E2eeMeta(envelope) {
348
385
  const suite = String(envelope.suite ?? '');
349
386
  const modeSuite = String(envelope.suite ?? 'unknown');
@@ -544,6 +581,7 @@ export class AUNClient {
544
581
  _onlineUnreadHintIntervalMs = 50;
545
582
  /** gap fill 来源标记:true 表示当前正在补洞(pull 触发),false 表示非补洞 */
546
583
  _gapFillActive = false;
584
+ _backgroundRpcDepth = 0;
547
585
  // Pull Gate:序列化同一 key 的并发 pull 操作,防止重复拉取
548
586
  _pullGates = new Map();
549
587
  // 重连相关
@@ -579,6 +617,11 @@ export class AUNClient {
579
617
  _delivery;
580
618
  _v2E2EE;
581
619
  _groupState;
620
+ _storage;
621
+ _collab;
622
+ _messageFacade;
623
+ _groupFacade;
624
+ _streamFacade;
582
625
  constructor(aid) {
583
626
  if (aid !== null && aid !== undefined && !isAIDObject(aid)) {
584
627
  throw new ValidationError('AUNClient only accepts an AID object or no argument');
@@ -735,6 +778,36 @@ export class AUNClient {
735
778
  get aid() {
736
779
  return this._aid;
737
780
  }
781
+ /** AUN Storage VFS 入口 */
782
+ get storage() {
783
+ if (!this._storage)
784
+ this._storage = new StorageVFS(this);
785
+ return this._storage;
786
+ }
787
+ /** AUN collab 协作层入口 */
788
+ get collab() {
789
+ if (!this._collab)
790
+ this._collab = new CollabClient(this);
791
+ return this._collab;
792
+ }
793
+ /** Message RPC facade 入口 */
794
+ get message() {
795
+ if (!this._messageFacade)
796
+ this._messageFacade = new MessageFacade(this);
797
+ return this._messageFacade;
798
+ }
799
+ /** Group RPC facade 入口 */
800
+ get group() {
801
+ if (!this._groupFacade)
802
+ this._groupFacade = new GroupFacade(this);
803
+ return this._groupFacade;
804
+ }
805
+ /** Stream RPC facade 入口 */
806
+ get stream() {
807
+ if (!this._streamFacade)
808
+ this._streamFacade = new StreamFacade(this);
809
+ return this._streamFacade;
810
+ }
738
811
  async _observeAgentMdFromEnvelope(envelope) {
739
812
  await this._agentMdManager.observeEnvelope(envelope);
740
813
  }
@@ -976,6 +1049,200 @@ export class AUNClient {
976
1049
  async call(method, params) {
977
1050
  return await this._rpcPipeline.call(method, params);
978
1051
  }
1052
+ async createGroup(params = {}) {
1053
+ if (!isJsonObject(params)) {
1054
+ throw new ValidationError('createGroup params must be an object');
1055
+ }
1056
+ const payload = { ...params };
1057
+ const groupName = String(payload.group_name ?? payload.groupName ?? '').trim();
1058
+ if (!groupName) {
1059
+ return await this.call('group.create', payload);
1060
+ }
1061
+ const keyPair = await new CryptoProvider().generateIdentity();
1062
+ payload.public_key = keyPair.public_key_der_b64;
1063
+ payload.curve = keyPair.curve;
1064
+ const result = await this.call('group.create', payload);
1065
+ const resultMap = isJsonObject(result) ? result : {};
1066
+ const group = isJsonObject(resultMap.group) ? resultMap.group : {};
1067
+ const aidCert = isJsonObject(resultMap.aid_cert) ? resultMap.aid_cert : {};
1068
+ const groupAid = String(group.group_aid ?? resultMap.group_aid ?? '').trim();
1069
+ const certPem = String(aidCert.cert ?? aidCert.cert_pem ?? resultMap.cert ?? resultMap.cert_pem ?? '').trim();
1070
+ if (!groupAid || !certPem) {
1071
+ throw new ValidationError('group.create named group response missing group.group_aid or aid_cert.cert');
1072
+ }
1073
+ const store = new AIDStore({
1074
+ aunPath: this.configModel.aunPath,
1075
+ encryptionSeed: this.configModel.seedPassword ?? '',
1076
+ slotId: this._slotId,
1077
+ rootCaPem: this.configModel.rootCaPem,
1078
+ verifySsl: this.configModel.verifySsl,
1079
+ });
1080
+ try {
1081
+ const imported = await store.importGroupIdentity(groupAid, {
1082
+ private_key_pem: keyPair.private_key_pem,
1083
+ public_key_der_b64: keyPair.public_key_der_b64,
1084
+ curve: keyPair.curve,
1085
+ cert_pem: certPem,
1086
+ });
1087
+ if (!imported.ok) {
1088
+ throw new ValidationError(imported.error.message);
1089
+ }
1090
+ }
1091
+ finally {
1092
+ store.close();
1093
+ }
1094
+ return result;
1095
+ }
1096
+ async bindGroupAid(params = {}, options = {}) {
1097
+ if (!isJsonObject(params)) {
1098
+ throw new ValidationError('bindGroupAid params must be an object');
1099
+ }
1100
+ const store = options.aidStore;
1101
+ if (!store) {
1102
+ throw new ValidationError('bindGroupAid requires aidStore');
1103
+ }
1104
+ const keyPair = await new CryptoProvider().generateIdentity();
1105
+ const payload = { ...params };
1106
+ payload.public_key = keyPair.public_key_der_b64;
1107
+ payload.curve = keyPair.curve;
1108
+ const result = await this.call('group.bind_group_aid', payload);
1109
+ const resultMap = isJsonObject(result) ? result : {};
1110
+ const group = isJsonObject(resultMap.group) ? resultMap.group : {};
1111
+ const aidCert = isJsonObject(resultMap.aid_cert) ? resultMap.aid_cert : {};
1112
+ const groupAid = String(group.group_aid ?? resultMap.group_aid ?? '').trim();
1113
+ const certPem = String(aidCert.cert ?? aidCert.cert_pem ?? resultMap.cert ?? resultMap.cert_pem ?? '').trim();
1114
+ if (!groupAid || !certPem) {
1115
+ throw new ValidationError('group.bind_group_aid response missing group.group_aid or aid_cert.cert');
1116
+ }
1117
+ const imported = await store.importGroupIdentity(groupAid, {
1118
+ private_key_pem: keyPair.private_key_pem,
1119
+ public_key_der_b64: keyPair.public_key_der_b64,
1120
+ curve: keyPair.curve,
1121
+ cert_pem: certPem,
1122
+ });
1123
+ if (!imported.ok) {
1124
+ throw new ValidationError(imported.error.message);
1125
+ }
1126
+ return result;
1127
+ }
1128
+ async startGroupTransfer(params = {}, options = {}) {
1129
+ if (!isJsonObject(params)) {
1130
+ throw new ValidationError('startGroupTransfer params must be an object');
1131
+ }
1132
+ const store = options.aidStore;
1133
+ if (!store) {
1134
+ throw new ValidationError('startGroupTransfer requires aidStore');
1135
+ }
1136
+ const groupId = String(params.group_id ?? '').trim();
1137
+ const newOwner = String(params.new_owner ?? '').trim();
1138
+ if (!groupId || !newOwner) {
1139
+ throw new ValidationError('startGroupTransfer requires group_id and new_owner');
1140
+ }
1141
+ let groupAid = String(params.group_aid ?? '').trim();
1142
+ if (!groupAid) {
1143
+ const info = await this.call('group.get', { group_id: groupId });
1144
+ const infoMap = isJsonObject(info) ? info : {};
1145
+ const grp = isJsonObject(infoMap.group) ? infoMap.group : infoMap;
1146
+ groupAid = String(grp.group_aid ?? '').trim();
1147
+ }
1148
+ if (!groupAid) {
1149
+ throw new ValidationError('startGroupTransfer: unable to determine group_aid');
1150
+ }
1151
+ const loaded = await store.load(groupAid);
1152
+ if (!loaded.ok || !loaded.data) {
1153
+ throw new ValidationError(`startGroupTransfer: group_aid identity not found: ${groupAid}`);
1154
+ }
1155
+ const aidObj = loaded.data.aid;
1156
+ if (!aidObj.isPrivateKeyValid() || !aidObj.privateKeyPem) {
1157
+ throw new ValidationError(`startGroupTransfer: group_aid private key not found: ${groupAid}`);
1158
+ }
1159
+ const nonce = globalThis.crypto.randomUUID().replace(/-/g, '');
1160
+ const issuedMs = Date.now();
1161
+ const canonical = [
1162
+ 'aun-group-owner-transfer-v1',
1163
+ groupId.toLowerCase(),
1164
+ groupAid.toLowerCase(),
1165
+ newOwner.toLowerCase(),
1166
+ nonce,
1167
+ String(issuedMs),
1168
+ ].join('|');
1169
+ const signed = await aidObj.sign(canonical);
1170
+ if (!signed.ok) {
1171
+ throw new ValidationError(`startGroupTransfer: sign failed: ${signed.error.message}`);
1172
+ }
1173
+ const payload = { ...params, group_aid: groupAid };
1174
+ payload.transfer_auth = { nonce, issued_ms: issuedMs, signature: signed.data.signature };
1175
+ return await this.call('group.transfer_owner', payload);
1176
+ }
1177
+ async completeGroupTransfer(params = {}, options = {}) {
1178
+ if (!isJsonObject(params)) {
1179
+ throw new ValidationError('completeGroupTransfer params must be an object');
1180
+ }
1181
+ const store = options.aidStore;
1182
+ if (!store) {
1183
+ throw new ValidationError('completeGroupTransfer requires aidStore');
1184
+ }
1185
+ const keyPair = await new CryptoProvider().generateIdentity();
1186
+ const payload = { ...params };
1187
+ const groupId = String(params.group_id ?? '').trim();
1188
+ if (!groupId) {
1189
+ throw new ValidationError('completeGroupTransfer requires group_id');
1190
+ }
1191
+ let groupAid = String(params.group_aid ?? '').trim();
1192
+ if (!groupAid) {
1193
+ const info = await this.call('group.get', { group_id: groupId });
1194
+ const infoMap = isJsonObject(info) ? info : {};
1195
+ const grp = isJsonObject(infoMap.group) ? infoMap.group : infoMap;
1196
+ groupAid = String(grp.group_aid ?? '').trim();
1197
+ }
1198
+ if (!groupAid) {
1199
+ throw new ValidationError('completeGroupTransfer: unable to determine group_aid');
1200
+ }
1201
+ const current = this.currentAid;
1202
+ const newOwner = String(current?.aid ?? '').trim();
1203
+ if (!current || !newOwner || !current.isPrivateKeyValid()) {
1204
+ throw new ValidationError('completeGroupTransfer requires current new-owner AID with private key');
1205
+ }
1206
+ const nonce = globalThis.crypto.randomUUID().replace(/-/g, '');
1207
+ const issuedMs = Date.now();
1208
+ const publicKeyHash = bytesToHex(new Uint8Array(await globalThis.crypto.subtle.digest('SHA-256', new TextEncoder().encode(keyPair.public_key_der_b64))));
1209
+ const canonical = [
1210
+ 'aun-group-owner-transfer-accept-v1',
1211
+ groupId.toLowerCase(),
1212
+ groupAid.toLowerCase(),
1213
+ newOwner.toLowerCase(),
1214
+ publicKeyHash,
1215
+ nonce,
1216
+ String(issuedMs),
1217
+ ].join('|');
1218
+ const signed = await current.sign(canonical);
1219
+ if (!signed.ok) {
1220
+ throw new ValidationError(`completeGroupTransfer: accept sign failed: ${signed.error.message}`);
1221
+ }
1222
+ payload.group_aid = groupAid;
1223
+ payload.public_key = keyPair.public_key_der_b64;
1224
+ payload.curve = keyPair.curve;
1225
+ payload.transfer_accept = { nonce, issued_ms: issuedMs, signature: signed.data.signature };
1226
+ const result = await this.call('group.complete_transfer', payload);
1227
+ const resultMap = isJsonObject(result) ? result : {};
1228
+ const group = isJsonObject(resultMap.group) ? resultMap.group : {};
1229
+ const aidCert = isJsonObject(resultMap.aid_cert) ? resultMap.aid_cert : {};
1230
+ const returnedGroupAid = String(group.group_aid ?? resultMap.group_aid ?? '').trim();
1231
+ const certPem = String(aidCert.cert ?? aidCert.cert_pem ?? resultMap.cert ?? resultMap.cert_pem ?? '').trim();
1232
+ if (!returnedGroupAid || !certPem) {
1233
+ throw new ValidationError('group.complete_transfer response missing group.group_aid or aid_cert.cert');
1234
+ }
1235
+ const imported = await store.importGroupIdentity(returnedGroupAid, {
1236
+ private_key_pem: keyPair.private_key_pem,
1237
+ public_key_der_b64: keyPair.public_key_der_b64,
1238
+ curve: keyPair.curve,
1239
+ cert_pem: certPem,
1240
+ });
1241
+ if (!imported.ok) {
1242
+ throw new ValidationError(imported.error.message);
1243
+ }
1244
+ return result;
1245
+ }
979
1246
  static _notifyParamsSizeOk(params) {
980
1247
  return new TextEncoder().encode(JSON.stringify(params)).length <= MAX_NOTIFY_PAYLOAD_SIZE;
981
1248
  }
@@ -1062,6 +1329,8 @@ export class AUNClient {
1062
1329
  }
1063
1330
  async _callRawV2Rpc(method, params) {
1064
1331
  const p = { ...(params ?? {}) };
1332
+ const rpcBackground = Boolean(p._rpc_background) || this._backgroundRpcDepth > 0;
1333
+ delete p._rpc_background;
1065
1334
  delete p._pull_gate_locked;
1066
1335
  delete p._skip_auto_ack;
1067
1336
  delete p.skip_auto_ack;
@@ -1075,7 +1344,7 @@ export class AUNClient {
1075
1344
  if (method.startsWith('group.') && p.slot_id === undefined) {
1076
1345
  p.slot_id = this._slotId;
1077
1346
  }
1078
- return await this._rpcPipeline.rawCall(method, p);
1347
+ return await this._rpcPipeline.rawCall(method, p, { background: rpcBackground });
1079
1348
  }
1080
1349
  // ── 事件 ──────────────────────────────────────────
1081
1350
  /**
@@ -1845,16 +2114,28 @@ export class AUNClient {
1845
2114
  }
1846
2115
  catch (exc) {
1847
2116
  if (exc instanceof AuthError) {
2117
+ if (authErrorRequiresRelogin(exc)) {
2118
+ this._clientLog.warn(`token refresh requires relogin, stopping refresh loop and triggering reconnect: ${exc.message}`);
2119
+ await this._dispatcher.publish('token.refresh_exhausted', {
2120
+ aid: this._identity?.aid ?? null,
2121
+ consecutive_failures: 1,
2122
+ last_error: String(exc),
2123
+ relogin_required: true,
2124
+ });
2125
+ this._tokenRefreshFailures = 0;
2126
+ await this._handleTransportDisconnect(new Error('token refresh relogin required, triggering reconnect'));
2127
+ return;
2128
+ }
1848
2129
  this._tokenRefreshFailures++;
1849
2130
  if (this._tokenRefreshFailures >= 3) {
1850
- this._clientLog.warn(`token refreshconsecutivefailed ${this._tokenRefreshFailures} , stop refresh loop and trigger reconnect`);
1851
- this._dispatcher.publish('token.refresh_exhausted', {
2131
+ this._clientLog.warn(`token refresh failed ${this._tokenRefreshFailures} consecutive times, stopping refresh loop and triggering reconnect`);
2132
+ await this._dispatcher.publish('token.refresh_exhausted', {
1852
2133
  aid: this._identity?.aid ?? null,
1853
2134
  consecutive_failures: this._tokenRefreshFailures,
1854
2135
  last_error: String(exc),
1855
2136
  });
1856
2137
  this._tokenRefreshFailures = 0;
1857
- this._handleTransportDisconnect(new Error('token refresh exhausted, triggering reconnect'));
2138
+ await this._handleTransportDisconnect(new Error('token refresh exhausted, triggering reconnect'));
1858
2139
  return;
1859
2140
  }
1860
2141
  this._clientLog.warn(`token refresh failed (${this._tokenRefreshFailures}/3), next retry: ${String(exc)}`);
@@ -2660,6 +2941,15 @@ export class AUNClient {
2660
2941
  && (!slotId || slotId === (this._slotId ?? ''));
2661
2942
  }
2662
2943
  // ── Pull Gate(序列化同一 key 的并发 pull)──────────────────
2944
+ async _withBackgroundRpc(operation) {
2945
+ this._backgroundRpcDepth += 1;
2946
+ try {
2947
+ return await operation();
2948
+ }
2949
+ finally {
2950
+ this._backgroundRpcDepth = Math.max(0, this._backgroundRpcDepth - 1);
2951
+ }
2952
+ }
2663
2953
  async _runPullSerialized(key, operation) {
2664
2954
  return await this._rpcPipeline.runPullSerialized(key, operation);
2665
2955
  }