@agentunion/fastaun 0.4.13 → 0.5.1

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 +547 -393
  2. package/_packed_docs/CHANGELOG-validators.md +144 -0
  3. package/_packed_docs/CHANGELOG.md +547 -393
  4. package/_packed_docs/INDEX.md +159 -84
  5. package/_packed_docs/KITE_DOCS_GUIDE.md +48 -31
  6. package/_packed_docs/agent.md/SCHEMA.md +2 -0
  7. package/_packed_docs/agent.md/examples/codeagent-claudecode.md +2 -0
  8. package/_packed_docs/agent.md/examples/human-developer.md +2 -0
  9. package/_packed_docs/agent.md/examples/openclaw-lobster.md +2 -0
  10. package/_packed_docs/agent.md/examples/signed-openclaw-lobster.md +2 -0
  11. 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
  12. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +266 -686
  13. package/_packed_docs/cli/CLI/346/211/213/345/206/214.md +331 -0
  14. package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +2 -0
  15. 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
  16. 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
  17. 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
  18. package/_packed_docs/protocol/00-/346/200/273/350/247/210/344/270/216/345/210/206/345/261/202.md +2 -0
  19. 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
  20. 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
  21. 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
  22. package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +2 -0
  23. package/_packed_docs/protocol/04-Peer-/345/255/220/345/215/217/350/256/256.md +2 -0
  24. package/_packed_docs/protocol/05-Relay-/345/255/220/345/215/217/350/256/256.md +2 -0
  25. 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
  26. package/_packed_docs/protocol/08-AUN-E2EE-Group.md +296 -900
  27. package/_packed_docs/protocol/08-AUN-E2EE.md +2 -0
  28. package/_packed_docs/protocol/09-/345/256/211/345/205/250/350/200/203/350/231/221.md +2 -0
  29. package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +66 -173
  30. package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +55 -0
  31. package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +2 -0
  32. package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +2 -0
  33. 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
  34. 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
  35. package/_packed_docs/protocol/16-/347/263/273/347/273/237/347/233/256/345/275/225/344/277/235/346/212/244/346/226/271/346/241/210.md +177 -0
  36. package/_packed_docs/protocol/README.md +4 -1
  37. package/_packed_docs/protocol/agent.md/SCHEMA.md +2 -0
  38. package/_packed_docs/protocol/agent.md/examples/codeagent-claudecode.md +2 -0
  39. package/_packed_docs/protocol/agent.md/examples/human-developer.md +2 -0
  40. package/_packed_docs/protocol/agent.md/examples/openclaw-lobster.md +2 -0
  41. package/_packed_docs/protocol/aun-docs-guide.md +2 -0
  42. package/_packed_docs/protocol/index.md +10 -3
  43. 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
  44. 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
  45. package/_packed_docs/protocol//351/231/204/345/275/225A-/346/234/257/350/257/255/350/241/250.md +2 -0
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +2 -0
  60. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -0
  61. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +2 -0
  62. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +2 -0
  63. package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +6 -252
  64. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +219 -177
  65. package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +4 -1
  66. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +2 -0
  67. package/_packed_docs/sdk/09-collab-rpc-manual.md +581 -0
  68. package/_packed_docs/sdk/09-custody-api-manual.md +2 -0
  69. package/_packed_docs/sdk/09-group-rpc-manual.md +301 -634
  70. package/_packed_docs/sdk/09-message-rpc-manual.md +2 -0
  71. package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -0
  72. package/_packed_docs/sdk/09-payload-reference.md +2 -0
  73. package/_packed_docs/sdk/09-proxy-rpc-manual.md +2 -0
  74. package/_packed_docs/sdk/09-storage-rpc-manual.md +984 -274
  75. package/_packed_docs/sdk/09-stream-rpc-manual.md +2 -0
  76. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +36 -23
  77. 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
  78. package/_packed_docs/sdk/INDEX.md +47 -30
  79. package/_packed_docs/sdk/Notify/351/200/232/347/237/245/346/226/271/346/241/210.md +2 -0
  80. package/_packed_docs/sdk/README.md +17 -15
  81. package/dist/aid-store.d.ts +25 -0
  82. package/dist/aid-store.js +80 -0
  83. package/dist/aid-store.js.map +1 -1
  84. package/dist/client/delivery.d.ts +11 -0
  85. package/dist/client/delivery.js +208 -25
  86. package/dist/client/delivery.js.map +1 -1
  87. package/dist/client/group-state.js +33 -11
  88. package/dist/client/group-state.js.map +1 -1
  89. package/dist/client/rpc-pipeline.d.ts +1 -0
  90. package/dist/client/rpc-pipeline.js +177 -65
  91. package/dist/client/rpc-pipeline.js.map +1 -1
  92. package/dist/client/v2-e2ee.d.ts +6 -1
  93. package/dist/client/v2-e2ee.js +199 -130
  94. package/dist/client/v2-e2ee.js.map +1 -1
  95. package/dist/client.d.ts +37 -1
  96. package/dist/client.js +491 -44
  97. package/dist/client.js.map +1 -1
  98. package/dist/collab/client.d.ts +46 -0
  99. package/dist/collab/client.js +136 -0
  100. package/dist/collab/client.js.map +1 -0
  101. package/dist/collab/errors.d.ts +15 -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 +3 -0
  105. package/dist/collab/index.js +4 -0
  106. package/dist/collab/index.js.map +1 -0
  107. package/dist/collab/types.d.ts +110 -0
  108. package/dist/collab/types.js +2 -0
  109. package/dist/collab/types.js.map +1 -0
  110. package/dist/crypto.d.ts +2 -0
  111. package/dist/crypto.js +6 -0
  112. package/dist/crypto.js.map +1 -1
  113. package/dist/errors.d.ts +0 -12
  114. package/dist/errors.js +9 -25
  115. package/dist/errors.js.map +1 -1
  116. package/dist/facades.d.ts +94 -0
  117. package/dist/facades.js +255 -0
  118. package/dist/facades.js.map +1 -0
  119. package/dist/group-fs.d.ts +122 -0
  120. package/dist/group-fs.js +467 -0
  121. package/dist/group-fs.js.map +1 -0
  122. package/dist/group-id.d.ts +9 -12
  123. package/dist/group-id.js +41 -63
  124. package/dist/group-id.js.map +1 -1
  125. package/dist/group-resources.d.ts +31 -0
  126. package/dist/group-resources.js +84 -0
  127. package/dist/group-resources.js.map +1 -0
  128. package/dist/index.d.ts +9 -3
  129. package/dist/index.js +11 -1
  130. package/dist/index.js.map +1 -1
  131. package/dist/keystore/aid-db.d.ts +1 -0
  132. package/dist/keystore/aid-db.js +43 -43
  133. package/dist/keystore/aid-db.js.map +1 -1
  134. package/dist/keystore/local-identity-store.d.ts +16 -0
  135. package/dist/keystore/local-identity-store.js +190 -18
  136. package/dist/keystore/local-identity-store.js.map +1 -1
  137. package/dist/keystore/local-token-store.d.ts +0 -13
  138. package/dist/keystore/local-token-store.js +0 -105
  139. package/dist/keystore/local-token-store.js.map +1 -1
  140. package/dist/logger.d.ts +2 -0
  141. package/dist/logger.js +4 -0
  142. package/dist/logger.js.map +1 -1
  143. package/dist/register-flow.d.ts +1 -0
  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.js +17 -4
  148. package/dist/service-proxy.js.map +1 -1
  149. package/dist/storage/errors.d.ts +27 -0
  150. package/dist/storage/errors.js +65 -0
  151. package/dist/storage/errors.js.map +1 -0
  152. package/dist/storage/index.d.ts +1 -0
  153. package/dist/storage/index.js +2 -0
  154. package/dist/storage/index.js.map +1 -0
  155. package/dist/storage/lowlevel.d.ts +321 -0
  156. package/dist/storage/lowlevel.js +475 -0
  157. package/dist/storage/lowlevel.js.map +1 -0
  158. package/dist/storage/types.d.ts +57 -0
  159. package/dist/storage/types.js +116 -0
  160. package/dist/storage/types.js.map +1 -0
  161. package/dist/storage/vfs.d.ts +166 -0
  162. package/dist/storage/vfs.js +524 -0
  163. package/dist/storage/vfs.js.map +1 -0
  164. package/dist/tools/cross-sdk-agent.js +708 -1
  165. package/dist/tools/cross-sdk-agent.js.map +1 -1
  166. package/dist/transport.d.ts +5 -0
  167. package/dist/transport.js +124 -21
  168. package/dist/transport.js.map +1 -1
  169. package/dist/types.d.ts +38 -0
  170. package/dist/v2/session/session.d.ts +2 -0
  171. package/dist/v2/session/session.js +53 -23
  172. package/dist/v2/session/session.js.map +1 -1
  173. package/dist/v2/state/commitment.d.ts +1 -1
  174. package/dist/v2/state/commitment.js +4 -2
  175. package/dist/v2/state/commitment.js.map +1 -1
  176. package/dist/validators.d.ts +32 -0
  177. package/dist/validators.js +128 -0
  178. package/dist/validators.js.map +1 -0
  179. package/dist/version.d.ts +1 -1
  180. package/dist/version.js +1 -1
  181. package/dist/version.js.map +1 -1
  182. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"group-state.js","sourceRoot":"","sources":["../../src/client/group-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group-state.js","sourceRoot":"","sources":["../../src/client/group-state.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export declare class RpcPipeline {
32
32
  private postprocessGroupPull;
33
33
  private captureGroupCursorParams;
34
34
  private normalizeGroupCallContext;
35
+ private normalizeGroupCallIdentifier;
35
36
  private groupCursorParams;
36
37
  validateMessageRecipient(toAid: JsonValue | object | undefined): void;
37
38
  }
@@ -3,6 +3,7 @@ import { normalizeSlotId, slotIsolationKey } from '../config.js';
3
3
  import { ClientSignatureError, ConnectionError, PermissionError, StateError, ValidationError } from '../errors.js';
4
4
  import { normalizeGroupId } from '../group-id.js';
5
5
  import { ConnectionState, isJsonObject, } from '../types.js';
6
+ import { validateAIDFormat, validateGroupIDFormat } from '../validators.js';
6
7
  const INTERNAL_ONLY_METHODS = new Set([
7
8
  'auth.login1',
8
9
  'auth.aid_login1',
@@ -12,12 +13,6 @@ const INTERNAL_ONLY_METHODS = new Set([
12
13
  'auth.refresh_token',
13
14
  'initialize',
14
15
  ]);
15
- const REMOVED_E2EE_METHODS = new Set([
16
- 'group.rotate_epoch',
17
- 'group.e2ee.begin_rotation',
18
- 'group.e2ee.commit_rotation',
19
- 'group.e2ee.abort_rotation',
20
- ]);
21
16
  const PROTECTED_HEADERS_METHODS = new Set([
22
17
  'message.send',
23
18
  'group.send',
@@ -35,59 +30,116 @@ const SIGNED_METHODS = new Set([
35
30
  'group.v2.propose_state', 'group.v2.confirm_state',
36
31
  'group.v2.get_proposal',
37
32
  'group.kick', 'group.add_member',
38
- 'group.leave', 'group.remove_member', 'group.update_rules',
39
- 'group.update', 'group.update_announcement',
40
- 'group.update_join_requirements', 'group.set_role',
41
- 'group.transfer_owner', 'group.review_join_request',
33
+ 'group.leave', 'group.remove_member',
34
+ 'group.update',
35
+ 'group.set_role',
36
+ 'group.transfer_owner', 'group.bind_group_aid', 'group.complete_transfer',
37
+ 'group.review_join_request',
42
38
  'group.batch_review_join_request',
43
39
  'group.request_join', 'group.use_invite_code',
44
40
  'group.thought.put',
45
41
  'message.thought.put',
46
42
  'group.set_settings',
47
- 'group.resources.put', 'group.resources.create_folder',
48
- 'group.resources.rename', 'group.resources.move',
49
- 'group.resources.mount_object', 'group.resources.update',
50
- 'group.resources.delete', 'group.resources.cleanup_by_storage_ref',
51
- 'group.resources.request_add', 'group.resources.request_mount_object',
52
- 'group.resources.direct_add', 'group.resources.approve_request',
53
- 'group.resources.reject_request', 'group.resources.unmount',
54
- 'group.resources.get_access', 'group.resources.resolve_access_ticket',
43
+ 'group.update_announcement',
44
+ 'group.update_rules',
55
45
  'storage.put_object', 'storage.delete_object', 'storage.get_by_share',
56
46
  'storage.create_share_link', 'storage.revoke_share_link',
57
47
  'storage.create_upload_session', 'storage.complete_upload',
58
48
  'storage.create_folder', 'storage.rename_folder', 'storage.move_folder',
59
49
  'storage.delete_folder', 'storage.move_object', 'storage.copy_object',
60
50
  'storage.batch_delete', 'storage.set_object_meta', 'storage.append_object',
51
+ 'storage.set_acl', 'storage.remove_acl', 'storage.set_visibility',
52
+ 'storage.check_access',
53
+ 'storage.issue_token', 'storage.revoke_token',
54
+ 'storage.create_symlink', 'storage.atomic_repoint',
55
+ 'storage.rename_symlink', 'storage.delete_symlink',
56
+ 'storage.fs.mkdir', 'storage.fs.remove', 'storage.fs.rename', 'storage.fs.copy',
57
+ 'storage.fs.mount', 'storage.fs.approve', 'storage.fs.reject', 'storage.fs.unmount',
58
+ 'storage.fs.invalidate_membership',
59
+ 'storage.volume.create', 'storage.volume.renew', 'storage.volume.expire_due',
60
+ 'group.fs.mkdir', 'group.fs.rm', 'group.fs.cp', 'group.fs.mv',
61
+ 'group.fs.set_acl', 'group.fs.remove_acl',
62
+ 'group.fs.mount', 'group.fs.umount',
63
+ 'group.fs.check_upload', 'group.fs.create_upload_session',
64
+ 'group.fs.complete_upload', 'group.fs.create_download_ticket',
65
+ 'collab.create', 'collab.commit', 'collab.clone',
66
+ 'collab.prune', 'collab.unregister',
67
+ 'collab.tag.create', 'collab.tag.restore',
68
+ 'collab.tag.rm', 'collab.tag.prune',
61
69
  'group.commit_state',
62
70
  'group.ban', 'group.unban',
63
71
  'group.dissolve', 'group.suspend', 'group.resume',
64
72
  ]);
73
+ const SIGNING_KEY_CACHE_MAX = 32;
74
+ const signingKeyCache = new Map();
75
+ const certFingerprintCache = new Map();
76
+ function cacheGet(cache, key) {
77
+ const value = cache.get(key);
78
+ if (value !== undefined) {
79
+ cache.delete(key);
80
+ cache.set(key, value);
81
+ }
82
+ return value;
83
+ }
84
+ function cachePut(cache, key, value) {
85
+ cache.set(key, value);
86
+ while (cache.size > SIGNING_KEY_CACHE_MAX) {
87
+ const first = cache.keys().next().value;
88
+ if (first === undefined)
89
+ break;
90
+ cache.delete(first);
91
+ }
92
+ return value;
93
+ }
94
+ function sha256Hex(text) {
95
+ return crypto.createHash('sha256').update(text, 'utf-8').digest('hex');
96
+ }
97
+ function getSigningPrivateKey(privateKeyPem) {
98
+ const key = sha256Hex(privateKeyPem);
99
+ return cacheGet(signingKeyCache, key) ?? cachePut(signingKeyCache, key, crypto.createPrivateKey(privateKeyPem));
100
+ }
101
+ function getCertFingerprint(certPem) {
102
+ const key = sha256Hex(certPem);
103
+ const cached = cacheGet(certFingerprintCache, key);
104
+ if (cached !== undefined)
105
+ return cached;
106
+ const certObj = new crypto.X509Certificate(certPem);
107
+ return cachePut(certFingerprintCache, key, 'sha256:' + certObj.fingerprint256.replace(/:/g, '').toLowerCase());
108
+ }
65
109
  /** pull-gate 防并发窗口,与 client.ts PULL_GATE_STALE_MS 保持一致 */
66
110
  const PULL_GATE_STALE_MS = 30000;
67
111
  const NON_IDEMPOTENT_TIMEOUT_MS = 35_000;
68
112
  const NON_IDEMPOTENT_METHODS = new Set([
69
113
  'message.send', 'group.send', 'group.create', 'group.invite',
70
114
  'group.kick', 'group.remove_member', 'group.leave', 'group.dissolve',
71
- 'group.update_name', 'group.update_avatar', 'group.update_announcement',
72
- 'group.update_settings',
115
+ 'group.set_settings',
116
+ 'group.update_announcement', 'group.update_rules',
73
117
  'storage.put_object', 'storage.delete_object', 'storage.get_by_share',
74
118
  'storage.create_share_link', 'storage.revoke_share_link',
75
119
  'storage.create_upload_session', 'storage.complete_upload',
76
120
  'storage.create_folder', 'storage.rename_folder', 'storage.move_folder',
77
121
  'storage.delete_folder', 'storage.move_object', 'storage.copy_object',
78
122
  'storage.batch_delete', 'storage.set_object_meta', 'storage.append_object',
123
+ 'storage.set_acl', 'storage.remove_acl', 'storage.set_visibility',
124
+ 'storage.issue_token', 'storage.revoke_token',
125
+ 'storage.create_symlink', 'storage.atomic_repoint',
126
+ 'storage.rename_symlink', 'storage.delete_symlink',
127
+ 'storage.fs.mkdir', 'storage.fs.remove', 'storage.fs.rename', 'storage.fs.copy',
128
+ 'storage.fs.mount', 'storage.fs.approve', 'storage.fs.reject', 'storage.fs.unmount',
129
+ 'storage.fs.invalidate_membership',
130
+ 'storage.volume.create', 'storage.volume.renew', 'storage.volume.expire_due',
131
+ 'group.fs.mkdir', 'group.fs.rm', 'group.fs.cp', 'group.fs.mv',
132
+ 'group.fs.set_acl', 'group.fs.remove_acl',
133
+ 'group.fs.mount', 'group.fs.umount',
134
+ 'group.fs.check_upload', 'group.fs.create_upload_session',
135
+ 'group.fs.complete_upload', 'group.fs.create_download_ticket',
79
136
  'auth.create_aid', 'auth.renew_cert', 'auth.rekey',
80
137
  'message.thought.put', 'group.thought.put',
81
- 'group.add_member',
82
- 'group.resources.put', 'group.resources.create_folder',
83
- 'group.resources.rename', 'group.resources.move',
84
- 'group.resources.mount_object', 'group.resources.update',
85
- 'group.resources.delete', 'group.resources.cleanup_by_storage_ref',
86
- 'group.resources.request_add', 'group.resources.request_mount_object',
87
- 'group.resources.direct_add', 'group.resources.approve_request',
88
- 'group.resources.reject_request', 'group.resources.unmount',
89
- 'group.resources.get_access',
90
- 'group.resources.resolve_access_ticket',
138
+ 'group.add_member', 'group.bind_group_aid', 'group.renew_group_aid', 'group.complete_transfer',
139
+ 'collab.create', 'collab.commit', 'collab.clone',
140
+ 'collab.prune', 'collab.unregister',
141
+ 'collab.tag.create', 'collab.tag.restore',
142
+ 'collab.tag.rm', 'collab.tag.prune',
91
143
  ]);
92
144
  export class RpcPipeline {
93
145
  runtime;
@@ -141,7 +193,7 @@ export class RpcPipeline {
141
193
  const encrypt = p.encrypt ?? true;
142
194
  delete p.encrypt;
143
195
  if (encrypt) {
144
- return await runWithRpcPriority(() => client._sendGroupV2(String(p.group_id ?? ''), p.payload, {
196
+ return await runWithRpcPriority(() => client._sendGroupV2(String(p.group_aid ?? p.group_id ?? ''), p.payload, {
145
197
  messageId: String(p.message_id ?? '') || undefined,
146
198
  timestamp: p.timestamp,
147
199
  protectedHeaders: client._protectedHeadersFromParams(p),
@@ -199,7 +251,9 @@ export class RpcPipeline {
199
251
  pullOpts.cursorParams = cursorParams;
200
252
  if (!ownsCursor)
201
253
  pullOpts.ownsCursor = false;
202
- const messages = await runWithRpcPriority(() => client._pullGroupV2(String(p.group_id), Number(p.after_seq ?? p.after_message_seq ?? 0) || 0, Number(p.limit ?? 50) || 50, pullOpts));
254
+ if (String(p.group_id ?? '').trim())
255
+ pullOpts.wireGroupId = String(p.group_id).trim();
256
+ const messages = await runWithRpcPriority(() => client._pullGroupV2(String(p.group_aid ?? p.group_id), Number(p.after_seq ?? p.after_message_seq ?? 0) || 0, Number(p.limit ?? 50) || 50, pullOpts));
203
257
  return { messages };
204
258
  }
205
259
  if (method === 'group.ack_messages' || method === 'group.v2.ack') {
@@ -212,7 +266,7 @@ export class RpcPipeline {
212
266
  if (method === 'group.ack_messages' && !ownsCursor) {
213
267
  return await runWithRpcPriority(() => client._rawGroupAckMessages(p));
214
268
  }
215
- return await runWithRpcPriority(() => client._ackGroupV2(String(p.group_id), Number(p.seq ?? p.msg_seq ?? p.up_to_seq ?? 0) || undefined));
269
+ return await runWithRpcPriority(() => client._ackGroupV2(String(p.group_aid ?? p.group_id), Number(p.seq ?? p.msg_seq ?? p.up_to_seq ?? 0) || undefined));
216
270
  }
217
271
  if (method === 'message.pull') {
218
272
  delete p._skip_auto_ack;
@@ -251,9 +305,6 @@ export class RpcPipeline {
251
305
  if (INTERNAL_ONLY_METHODS.has(method)) {
252
306
  throw new PermissionError(`method is internal_only: ${method}`);
253
307
  }
254
- if (method.startsWith('message.e2ee.') || method.startsWith('group.e2ee.') || REMOVED_E2EE_METHODS.has(method)) {
255
- throw new PermissionError(`legacy E2EE method is removed in this SDK: ${method}`);
256
- }
257
308
  const p = { ...(params ?? {}) };
258
309
  this.mergeInstanceProtectedHeaders(method, p);
259
310
  const rpcBackground = Boolean(p._rpc_background) || client._backgroundRpcDepth > 0;
@@ -261,6 +312,7 @@ export class RpcPipeline {
261
312
  if (method === 'message.send' || method === 'group.send') {
262
313
  this.normalizeOutboundMessagePayload(p, method);
263
314
  }
315
+ this.normalizeGroupCallIdentifier(method, p);
264
316
  this.validateOutboundCall(method, p);
265
317
  this.injectMessageCursorContext(method, p);
266
318
  this.captureGroupCursorParams(method, p);
@@ -293,6 +345,8 @@ export class RpcPipeline {
293
345
  validateOutboundCall(method, params) {
294
346
  if (method === 'message.send') {
295
347
  this.validateMessageRecipient(params.to);
348
+ // 校验目标 AID 格式(拒绝 __system__ 等非法格式)
349
+ validateAIDFormat(params.to, 'message.send.to');
296
350
  if ('persist' in params) {
297
351
  throw new ValidationError("message.send no longer accepts 'persist'; configure delivery_mode during connect");
298
352
  }
@@ -301,6 +355,10 @@ export class RpcPipeline {
301
355
  }
302
356
  }
303
357
  if (method === 'group.send') {
358
+ // 校验目标 Group ID 格式(空值交由下游抛规范错误)
359
+ if (String(params.group_id ?? '').trim()) {
360
+ validateGroupIDFormat(params.group_id, 'group.send.group_id');
361
+ }
304
362
  if ('persist' in params) {
305
363
  throw new ValidationError("group.send does not accept 'persist'; group messages are always fanout");
306
364
  }
@@ -318,17 +376,32 @@ export class RpcPipeline {
318
376
  throw new ValidationError(`${method} requires context.type + context.id`);
319
377
  }
320
378
  }
321
- if (method === 'group.thought.get' && !String(params.sender_aid ?? '').trim()) {
322
- throw new ValidationError('group.thought.get requires sender_aid');
379
+ if (method === 'group.thought.put') {
380
+ // 校验目标 Group ID 格式
381
+ validateGroupIDFormat(params.group_id, 'group.thought.put.group_id');
382
+ }
383
+ if (method === 'group.thought.get') {
384
+ if (!String(params.sender_aid ?? '').trim()) {
385
+ throw new ValidationError('group.thought.get requires sender_aid');
386
+ }
387
+ // 校验 sender_aid 和 group_id 格式
388
+ validateAIDFormat(params.sender_aid, 'group.thought.get.sender_aid');
389
+ validateGroupIDFormat(params.group_id, 'group.thought.get.group_id');
323
390
  }
324
391
  if (method === 'message.thought.put') {
325
392
  this.validateMessageRecipient(params.to);
326
393
  if (!String(params.to ?? '').trim()) {
327
394
  throw new ValidationError('message.thought.put requires to');
328
395
  }
396
+ // 校验目标 AID 格式
397
+ validateAIDFormat(params.to, 'message.thought.put.to');
329
398
  }
330
- if (method === 'message.thought.get' && !String(params.sender_aid ?? '').trim()) {
331
- throw new ValidationError('message.thought.get requires sender_aid');
399
+ if (method === 'message.thought.get') {
400
+ if (!String(params.sender_aid ?? '').trim()) {
401
+ throw new ValidationError('message.thought.get requires sender_aid');
402
+ }
403
+ // 校验 sender_aid 格式
404
+ validateAIDFormat(params.sender_aid, 'message.thought.get.sender_aid');
332
405
  }
333
406
  }
334
407
  injectMessageCursorContext(method, params) {
@@ -347,14 +420,19 @@ export class RpcPipeline {
347
420
  params.slot_id = client._slotId;
348
421
  }
349
422
  applyClientSignature(method, params) {
350
- if (!SIGNED_METHODS.has(method)) {
351
- return;
423
+ try {
424
+ if (!SIGNED_METHODS.has(method)) {
425
+ return;
426
+ }
427
+ if (this.shouldSkipClientSignature(method, params)) {
428
+ delete params.client_signature;
429
+ return;
430
+ }
431
+ this.runtime.client._signClientOperation(method, params);
352
432
  }
353
- if (this.shouldSkipClientSignature(method, params)) {
354
- delete params.client_signature;
355
- return;
433
+ finally {
434
+ delete params._client_signature_identity;
356
435
  }
357
- this.runtime.client._signClientOperation(method, params);
358
436
  }
359
437
  shouldSkipClientSignature(method, params) {
360
438
  if (method !== 'message.send' && method !== 'group.send')
@@ -364,7 +442,10 @@ export class RpcPipeline {
364
442
  return this.runtime.client._isEchoPayload(params.payload);
365
443
  }
366
444
  signClientOperation(method, params) {
367
- const currentAid = this.runtime.client._currentAid;
445
+ const internal = params._client_signature_identity;
446
+ const currentAid = (internal && typeof internal === 'object')
447
+ ? internal
448
+ : this.runtime.client._currentAid;
368
449
  if (!currentAid?.privateKeyPem)
369
450
  return;
370
451
  try {
@@ -379,13 +460,12 @@ export class RpcPipeline {
379
460
  const paramsJson = stableStringify(paramsForHash);
380
461
  const paramsHash = crypto.createHash('sha256').update(paramsJson, 'utf-8').digest('hex');
381
462
  const signData = Buffer.from(`${method}|${aid}|${ts}|${paramsHash}`, 'utf-8');
382
- const privateKey = crypto.createPrivateKey(currentAid.privateKeyPem);
463
+ const privateKey = getSigningPrivateKey(currentAid.privateKeyPem);
383
464
  const signature = crypto.sign('SHA256', signData, privateKey);
384
465
  let certFingerprint = '';
385
466
  const certPem = currentAid.certPem;
386
467
  if (certPem) {
387
- const certObj = new crypto.X509Certificate(certPem);
388
- certFingerprint = 'sha256:' + certObj.fingerprint256.replace(/:/g, '').toLowerCase();
468
+ certFingerprint = getCertFingerprint(certPem);
389
469
  }
390
470
  params.client_signature = {
391
471
  aid,
@@ -405,11 +485,11 @@ export class RpcPipeline {
405
485
  if (method === 'message.pull' || method === 'message.v2.pull') {
406
486
  return client._aid ? `p2p:${client._aid}` : '';
407
487
  }
408
- if ((method === 'group.pull' || method === 'group.v2.pull') && String(params.group_id ?? '').trim()) {
409
- return `group:${String(params.group_id ?? '').trim()}`;
488
+ if ((method === 'group.pull' || method === 'group.v2.pull') && String(params.group_aid ?? params.group_id ?? '').trim()) {
489
+ return `group:${String(params.group_aid ?? params.group_id ?? '').trim()}`;
410
490
  }
411
- if (method === 'group.pull_events' && String(params.group_id ?? '').trim()) {
412
- return `group_event:${String(params.group_id ?? '').trim()}`;
491
+ if (method === 'group.pull_events' && String(params.group_aid ?? params.group_id ?? '').trim()) {
492
+ return `group_event:${String(params.group_aid ?? params.group_id ?? '').trim()}`;
413
493
  }
414
494
  return '';
415
495
  }
@@ -534,13 +614,13 @@ export class RpcPipeline {
534
614
  }
535
615
  }
536
616
  if (client._seqTracker.getContiguousSeq(ns) !== contigBefore) {
537
- client._saveSeqTrackerState?.();
617
+ client._persistSeq?.(ns);
538
618
  }
539
619
  result._contig_before = contigBefore;
540
620
  }
541
621
  postprocessGroupPull(params, result) {
542
622
  const client = this.runtime.client;
543
- const gid = String(params.group_id ?? '').trim();
623
+ const gid = String(params.group_aid ?? params.group_id ?? '').trim();
544
624
  if (!gid || !client._seqTracker) {
545
625
  return;
546
626
  }
@@ -561,7 +641,7 @@ export class RpcPipeline {
561
641
  }
562
642
  }
563
643
  if (client._seqTracker.getContiguousSeq(ns) !== contigBefore) {
564
- client._saveSeqTrackerState?.();
644
+ client._persistSeq?.(ns);
565
645
  }
566
646
  result._contig_before = contigBefore;
567
647
  }
@@ -581,14 +661,7 @@ export class RpcPipeline {
581
661
  return;
582
662
  }
583
663
  const client = this.runtime.client;
584
- if (params.group_id !== undefined && params.group_id !== null) {
585
- const rawGroupId = String(params.group_id);
586
- const normalizedGroupId = normalizeGroupId(rawGroupId);
587
- if (normalizedGroupId && normalizedGroupId !== rawGroupId) {
588
- client._clientLog?.debug?.(`call group_id normalized: ${rawGroupId} -> ${normalizedGroupId} method=${method}`);
589
- }
590
- params.group_id = normalizedGroupId;
591
- }
664
+ this.normalizeGroupCallIdentifier(method, params);
592
665
  if (params.device_id === undefined) {
593
666
  params.device_id = client._deviceId;
594
667
  }
@@ -596,6 +669,42 @@ export class RpcPipeline {
596
669
  params.slot_id = client._slotId;
597
670
  }
598
671
  }
672
+ normalizeGroupCallIdentifier(method, params) {
673
+ if (!method.startsWith('group.')) {
674
+ return;
675
+ }
676
+ const record = params;
677
+ const rawEntries = [
678
+ ['group_aid', record.group_aid],
679
+ ['groupAid', record.groupAid],
680
+ ['group_id', record.group_id],
681
+ ['groupId', record.groupId],
682
+ ];
683
+ const found = rawEntries.find(([, value]) => String(value ?? '').trim());
684
+ if (found) {
685
+ const [key, raw] = found;
686
+ const rawGroupId = String(raw).trim();
687
+ const normalizedGroupId = normalizeGroupId(rawGroupId);
688
+ if (normalizedGroupId) {
689
+ if (normalizedGroupId !== rawGroupId) {
690
+ this.runtime.client._clientLog?.debug?.(`call group identifier normalized: ${key}=${rawGroupId} -> ${normalizedGroupId} method=${method}`);
691
+ }
692
+ const existingGroupId = String(record.group_id ?? record.groupId ?? '').trim();
693
+ if (key === 'group_id' || key === 'groupId') {
694
+ params.group_id = rawGroupId;
695
+ }
696
+ else if (existingGroupId) {
697
+ params.group_id = existingGroupId;
698
+ }
699
+ else {
700
+ params.group_id = normalizedGroupId;
701
+ }
702
+ params.group_aid = normalizedGroupId;
703
+ }
704
+ }
705
+ delete record.groupAid;
706
+ delete record.groupId;
707
+ }
599
708
  groupCursorParams(params) {
600
709
  const cursorParams = {};
601
710
  for (const key of ['device_id', 'slot_id', 'device_name', 'device_type']) {
@@ -606,6 +715,9 @@ export class RpcPipeline {
606
715
  return cursorParams;
607
716
  }
608
717
  validateMessageRecipient(toAid) {
718
+ if (!String(toAid ?? '').trim()) {
719
+ throw new ValidationError("message.send requires 'to' (recipient AID)");
720
+ }
609
721
  if (isGroupServiceAid(toAid)) {
610
722
  throw new ValidationError('message.send receiver cannot be group.{issuer}; use group.send instead');
611
723
  }