@agentunion/fastaun-browser 0.3.2 → 0.3.4

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 (105) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/_packed_docs/CHANGELOG.md +45 -0
  3. package/_packed_docs/INDEX.md +81 -0
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +55 -0
  5. 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 +328 -0
  6. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +686 -0
  7. 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 +665 -0
  8. 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 +257 -0
  9. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +5 -5
  10. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +1 -1
  11. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +2 -2
  12. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +454 -396
  13. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +1410 -1244
  14. package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +19 -1
  15. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +20 -5
  16. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +6 -4
  17. 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 +171 -0
  18. package/_packed_docs/sdk/INDEX.md +9 -4
  19. package/_packed_docs/sdk/README.md +3 -3
  20. package/dist/auth.d.ts +10 -11
  21. package/dist/auth.d.ts.map +1 -1
  22. package/dist/auth.js +128 -95
  23. package/dist/auth.js.map +1 -1
  24. package/dist/bundle.js +2658 -816
  25. package/dist/client.d.ts +73 -7
  26. package/dist/client.d.ts.map +1 -1
  27. package/dist/client.js +1586 -494
  28. package/dist/client.js.map +1 -1
  29. package/dist/crypto.d.ts.map +1 -1
  30. package/dist/crypto.js +45 -31
  31. package/dist/crypto.js.map +1 -1
  32. package/dist/discovery.d.ts +4 -0
  33. package/dist/discovery.d.ts.map +1 -1
  34. package/dist/discovery.js +16 -11
  35. package/dist/discovery.js.map +1 -1
  36. package/dist/errors.d.ts +4 -0
  37. package/dist/errors.d.ts.map +1 -1
  38. package/dist/errors.js +7 -0
  39. package/dist/errors.js.map +1 -1
  40. package/dist/index.d.ts +3 -3
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -3
  43. package/dist/index.js.map +1 -1
  44. package/dist/keystore/index.d.ts +27 -0
  45. package/dist/keystore/index.d.ts.map +1 -1
  46. package/dist/keystore/indexeddb.d.ts +16 -1
  47. package/dist/keystore/indexeddb.d.ts.map +1 -1
  48. package/dist/keystore/indexeddb.js +168 -7
  49. package/dist/keystore/indexeddb.js.map +1 -1
  50. package/dist/logger.d.ts +5 -1
  51. package/dist/logger.d.ts.map +1 -1
  52. package/dist/logger.js +8 -2
  53. package/dist/logger.js.map +1 -1
  54. package/dist/namespaces/auth.d.ts +4 -3
  55. package/dist/namespaces/auth.d.ts.map +1 -1
  56. package/dist/namespaces/auth.js +77 -20
  57. package/dist/namespaces/auth.js.map +1 -1
  58. package/dist/secret-store/indexeddb-store.js +1 -1
  59. package/dist/secret-store/indexeddb-store.js.map +1 -1
  60. package/dist/seq-tracker.d.ts +5 -3
  61. package/dist/seq-tracker.d.ts.map +1 -1
  62. package/dist/seq-tracker.js +30 -3
  63. package/dist/seq-tracker.js.map +1 -1
  64. package/dist/transport.d.ts +9 -1
  65. package/dist/transport.d.ts.map +1 -1
  66. package/dist/transport.js +176 -64
  67. package/dist/transport.js.map +1 -1
  68. package/dist/v2/crypto/canonical.d.ts +1 -1
  69. package/dist/v2/crypto/canonical.d.ts.map +1 -1
  70. package/dist/v2/crypto/canonical.js +42 -13
  71. package/dist/v2/crypto/canonical.js.map +1 -1
  72. package/dist/v2/crypto/ecdh.d.ts.map +1 -1
  73. package/dist/v2/crypto/ecdh.js +18 -1
  74. package/dist/v2/crypto/ecdh.js.map +1 -1
  75. package/dist/v2/e2ee/decrypt.d.ts.map +1 -1
  76. package/dist/v2/e2ee/decrypt.js +57 -3
  77. package/dist/v2/e2ee/decrypt.js.map +1 -1
  78. package/dist/v2/e2ee/encrypt-group.d.ts.map +1 -1
  79. package/dist/v2/e2ee/encrypt-group.js +16 -6
  80. package/dist/v2/e2ee/encrypt-group.js.map +1 -1
  81. package/dist/v2/e2ee/encrypt-p2p.d.ts.map +1 -1
  82. package/dist/v2/e2ee/encrypt-p2p.js +40 -11
  83. package/dist/v2/e2ee/encrypt-p2p.js.map +1 -1
  84. package/dist/v2/e2ee/metadata-auth.d.ts +1 -0
  85. package/dist/v2/e2ee/metadata-auth.d.ts.map +1 -1
  86. package/dist/v2/e2ee/metadata-auth.js +51 -0
  87. package/dist/v2/e2ee/metadata-auth.js.map +1 -1
  88. package/dist/v2/e2ee/types.d.ts +2 -2
  89. package/dist/v2/e2ee/types.d.ts.map +1 -1
  90. package/dist/v2/session/keystore.d.ts +12 -4
  91. package/dist/v2/session/keystore.d.ts.map +1 -1
  92. package/dist/v2/session/keystore.js +177 -35
  93. package/dist/v2/session/keystore.js.map +1 -1
  94. package/dist/v2/session/session.d.ts +11 -3
  95. package/dist/v2/session/session.d.ts.map +1 -1
  96. package/dist/v2/session/session.js +97 -17
  97. package/dist/v2/session/session.js.map +1 -1
  98. package/dist/v2/state/commitment.d.ts.map +1 -1
  99. package/dist/v2/state/commitment.js +4 -1
  100. package/dist/v2/state/commitment.js.map +1 -1
  101. package/package.json +43 -43
  102. package/dist/e2ee-group.d.ts +0 -276
  103. package/dist/e2ee-group.d.ts.map +0 -1
  104. package/dist/e2ee-group.js +0 -1653
  105. package/dist/e2ee-group.js.map +0 -1
@@ -1,276 +0,0 @@
1
- import type { ModuleLogger } from './logger.js';
2
- import { type ProtectedHeadersInput } from './e2ee.js';
3
- import type { KeyStore } from './keystore/index.js';
4
- export declare function setModuleLogger(log: ModuleLogger): void;
5
- import { type IdentityRecord, type JsonObject, type Message } from './types.js';
6
- export interface LoadedGroupSecret {
7
- epoch: number;
8
- secret: Uint8Array;
9
- commitment: string;
10
- member_aids: string[];
11
- epoch_chain?: string;
12
- pending_rotation_id?: string;
13
- epoch_chain_unverified?: boolean;
14
- epoch_chain_unverified_reason?: string;
15
- }
16
- /**
17
- * ECIES 加密(异步,SubtleCrypto)。
18
- * @param peerPubkeyBytes 65 字节未压缩 P-256 公钥 (0x04 开头)
19
- * @param plaintext 待加密明文
20
- * @returns ephemeral_pubkey(65B) || iv(12B) || ciphertext || tag(16B)
21
- */
22
- export declare function eciesEncrypt(peerPubkeyBytes: Uint8Array, plaintext: Uint8Array): Promise<Uint8Array>;
23
- /**
24
- * ECIES 解密(异步,SubtleCrypto)。
25
- * @param privateKeyPem PEM 格式 EC 私钥
26
- * @param ciphertext ephemeral_pubkey(65B) || iv(12B) || encrypted+tag(16B)
27
- * @returns 解密后的明文
28
- */
29
- export declare function eciesDecrypt(privateKeyPem: string, ciphertext: Uint8Array): Promise<Uint8Array>;
30
- /**
31
- * 计算 Epoch Transcript Chain 哈希(异步,SubtleCrypto SHA-256)。
32
- * prev_chain=null 时使用 genesis 前缀,否则将 prev_chain hex 解码为字节。
33
- */
34
- export declare function computeEpochChain(prevChain: string | null, epoch: number, commitment: string, rotatorAid: string): Promise<string>;
35
- /**
36
- * 验证 Epoch Chain(常量时间比较,防时序攻击)。
37
- * warn-only:调用方决定是否拒绝;此函数仅返回布尔值。
38
- */
39
- export declare function verifyEpochChain(epochChain: string, prevChain: string | null, epoch: number, commitment: string, rotatorAid: string): Promise<boolean>;
40
- export declare function signGroupKeyResponse(payload: JsonObject, privateKeyPem: string): Promise<JsonObject>;
41
- export declare function verifyGroupKeyResponseSignature(payload: JsonObject, responderCertPem: string): Promise<boolean>;
42
- /** 群组加密模式 */
43
- export declare const MODE_EPOCH_GROUP_KEY = "epoch_group_key";
44
- /** AAD 字段定义(群组) */
45
- export declare const AAD_FIELDS_GROUP: readonly ["group_id", "from", "message_id", "timestamp", "epoch", "encryption_mode", "suite"];
46
- /** AAD 匹配字段(群组,不含 timestamp) */
47
- export declare const AAD_MATCH_FIELDS_GROUP: readonly ["group_id", "from", "message_id", "epoch", "encryption_mode", "suite"];
48
- /** 旧 epoch 默认保留时间(秒) */
49
- export declare const OLD_EPOCH_RETENTION_SECONDS: number;
50
- /**
51
- * 加密群组消息,返回 e2ee.group_encrypted 信封(异步)。
52
- *
53
- * senderPrivateKeyPem: 可选,传入时为密文附加发送方 ECDSA 签名(不可否认性)。
54
- */
55
- export declare function encryptGroupMessage(groupId: string, epoch: number, groupSecret: Uint8Array, payload: JsonObject, opts: {
56
- fromAid: string;
57
- messageId: string;
58
- timestamp: number;
59
- senderPrivateKeyPem?: string | null;
60
- senderCertPem?: string | null;
61
- protectedHeaders?: ProtectedHeadersInput;
62
- protected_headers?: ProtectedHeadersInput;
63
- headers?: ProtectedHeadersInput;
64
- context?: JsonObject | null;
65
- }): Promise<JsonObject>;
66
- /**
67
- * 解密群组消息(异步)。
68
- *
69
- * groupSecrets: {epoch: groupSecretBytes} 映射。
70
- * senderCertPem: 发送方证书,用于验证签名。
71
- * requireSignature: 为 true 时(默认),若消息缺少签名或无证书可验证则拒绝(零信任模式)。
72
- */
73
- export declare function decryptGroupMessage(message: Message, groupSecrets: Map<number, Uint8Array>, senderCertPem?: string | null, opts?: {
74
- requireSignature?: boolean;
75
- }): Promise<Message | null>;
76
- /** 构建 Membership Manifest(未签名) */
77
- export declare function buildMembershipManifest(groupId: string, epoch: number, prevEpoch: number | null, memberAids: string[], opts?: {
78
- added?: string[];
79
- removed?: string[];
80
- initiatorAid?: string;
81
- }): JsonObject;
82
- /** 对 Membership Manifest 签名(异步),返回带 signature 字段的新 manifest */
83
- export declare function signMembershipManifest(manifest: JsonObject, privateKeyPem: string): Promise<JsonObject>;
84
- /** 验证 Membership Manifest 签名(异步) */
85
- export declare function verifyMembershipManifest(manifest: JsonObject, initiatorCertPem: string): Promise<boolean>;
86
- /** 计算 Membership Commitment(异步,使用 SubtleCrypto SHA-256) */
87
- export declare function computeMembershipCommitment(memberAids: string[], epoch: number, groupId: string, groupSecret: Uint8Array): Promise<string>;
88
- /** 验证 Membership Commitment(异步) */
89
- export declare function verifyMembershipCommitment(commitment: string, memberAids: string[], epoch: number, groupId: string, myAid: string, groupSecret: Uint8Array): Promise<boolean>;
90
- /**
91
- * 计算群组状态哈希(异步,SubtleCrypto SHA-256)。
92
- *
93
- * state_hash = SHA-256(
94
- * group_id | 0x00 |
95
- * state_version (uint64 big-endian 8 bytes) | 0x00 |
96
- * key_epoch (uint64 big-endian 8 bytes) | 0x00 |
97
- * membership_block | 0x00 |
98
- * policy_block | 0x00 |
99
- * prev_state_hash (32 bytes, 全零表示创世)
100
- * )
101
- */
102
- export declare function computeStateHash(params: {
103
- groupId: string;
104
- stateVersion: number;
105
- keyEpoch: number;
106
- members: Array<{
107
- aid: string;
108
- role: string;
109
- }>;
110
- policy: Record<string, unknown>;
111
- prevStateHash: string;
112
- }): Promise<string>;
113
- /** 存储 group_secret 到 keystore metadata(异步) */
114
- export declare function storeGroupSecret(keystore: KeyStore, aid: string, groupId: string, epoch: number, groupSecret: Uint8Array, commitment: string, memberAids: string[], epochChain?: string, pendingRotationId?: string, epochChainUnverified?: boolean | null, epochChainUnverifiedReason?: string | null): Promise<boolean>;
115
- /** 保存指定 epoch key;低于 current 时写入 old epoch,不覆盖 current。 */
116
- export declare function storeGroupSecretEpoch(keystore: KeyStore, aid: string, groupId: string, epoch: number, groupSecret: Uint8Array, commitment: string, memberAids: string[], epochChain?: string, pendingRotationId?: string, epochChainUnverified?: boolean | null, epochChainUnverifiedReason?: string | null): Promise<boolean>;
117
- /** 读取 group_secret(异步) */
118
- export declare function loadGroupSecret(keystore: KeyStore, aid: string, groupId: string, epoch?: number | null): Promise<LoadedGroupSecret | null>;
119
- /** 加载某群组所有 epoch 的 group_secret(异步) */
120
- export declare function loadAllGroupSecrets(keystore: KeyStore, aid: string, groupId: string): Promise<Map<number, Uint8Array>>;
121
- /** 清理过期的旧 epoch 记录(异步)。返回清理数量。 */
122
- export declare function cleanupOldEpochs(keystore: KeyStore, aid: string, groupId: string, retentionSeconds?: number): Promise<number>;
123
- /** 仅回滚指定 rotation 写入的本地 pending epoch key(异步) */
124
- export declare function discardPendingGroupSecret(keystore: KeyStore, aid: string, groupId: string, epoch: number, rotationId: string): Promise<boolean>;
125
- /** 删除群组的所有密钥数据(群组解散时使用,异步) */
126
- export declare function deleteGroupSecret(keystore: KeyStore, aid: string, groupId: string): Promise<void>;
127
- /** 生成 32 字节随机 group_secret */
128
- export declare function generateGroupSecret(): Uint8Array;
129
- /** 构建 group key 分发消息 payload(异步) */
130
- export declare function buildKeyDistribution(groupId: string, epoch: number, groupSecret: Uint8Array, memberAids: string[], distributedBy: string, manifest?: JsonObject | null, epochChain?: string): Promise<JsonObject>;
131
- /** 处理收到的 group key 分发消息(异步) */
132
- export declare function handleKeyDistribution(message: Message | JsonObject, keystore: KeyStore, aid: string, initiatorCertPem?: string | null): Promise<boolean>;
133
- /** 构建密钥请求 payload */
134
- export declare function buildKeyRequest(groupId: string, epoch: number, requesterAid: string, requestId?: string): JsonObject;
135
- /** 处理收到的密钥请求(异步) */
136
- export declare function handleKeyRequest(request: Message | JsonObject, keystore: KeyStore, aid: string, currentMembers: string[], privateKeyPem?: string | null): Promise<JsonObject | null>;
137
- /** 处理收到的密钥响应(异步) */
138
- export declare function handleKeyResponse(response: Message | JsonObject, keystore: KeyStore, aid: string, opts?: {
139
- expectedRequest?: JsonObject | null;
140
- responderCertPem?: string | null;
141
- currentMembers?: string[];
142
- strict?: boolean;
143
- }): Promise<boolean>;
144
- /** epoch 降级检查 */
145
- export declare function checkEpochDowngrade(messageEpoch: number, localLatestEpoch: number, opts?: {
146
- allowOldEpoch?: boolean;
147
- }): boolean;
148
- /** 群组消息防重放守卫 */
149
- export declare class GroupReplayGuard {
150
- private _seen;
151
- private _maxSize;
152
- constructor(maxSize?: number);
153
- /** 检查并记录。返回 true 表示首次(通过),false 表示重放(拒绝)。 */
154
- checkAndRecord(groupId: string, senderAid: string, messageId: string): boolean;
155
- /** 仅检查是否已记录 */
156
- isSeen(groupId: string, senderAid: string, messageId: string): boolean;
157
- /** 仅记录 */
158
- record(groupId: string, senderAid: string, messageId: string): void;
159
- /** LRU 裁剪(供外部调用) */
160
- trim(): void;
161
- get size(): number;
162
- }
163
- /** 群组密钥请求/响应频率限制 */
164
- export declare class GroupKeyRequestThrottle {
165
- private _last;
166
- private _cooldown;
167
- constructor(cooldown?: number);
168
- /** 检查是否允许操作。返回 true 并记录时间戳,或 false 表示被限制。 */
169
- allow(key: string): boolean;
170
- reset(key: string): void;
171
- }
172
- /**
173
- * 群组端到端加密管理器 — 浏览器 SubtleCrypto 实现。
174
- *
175
- * 与 E2EEManager 平行:所有网络操作(P2P 发送、RPC 调用)由调用方负责。
176
- * 内置防重放、epoch 降级防护、密钥请求频率限制。
177
- * 所有密码学操作均为异步。
178
- */
179
- export declare class GroupE2EEManager {
180
- private _log;
181
- setLogger(log: ModuleLogger): void;
182
- private _identityFn;
183
- private _keystoreRef;
184
- private _replayGuard;
185
- private _requestThrottle;
186
- private _responseThrottle;
187
- private _senderCertResolver;
188
- private _initiatorCertResolver;
189
- private _pendingKeyRequests;
190
- constructor(opts: {
191
- identityFn: () => IdentityRecord;
192
- keystore: KeyStore;
193
- requestCooldown?: number;
194
- responseCooldown?: number;
195
- senderCertResolver?: ((aid: string) => string | null) | null;
196
- initiatorCertResolver?: ((aid: string) => string | null) | null;
197
- });
198
- /** 用当前身份私钥签名 manifest */
199
- private _signManifest;
200
- /** 创建首个 epoch。返回 {epoch, commitment, distributions: [{to, payload}]}。 */
201
- createEpoch(groupId: string, memberAids: string[]): Promise<JsonObject>;
202
- /** 轮换 epoch(踢人/退出后调用) */
203
- rotateEpoch(groupId: string, memberAids: string[]): Promise<JsonObject>;
204
- /** 指定目标 epoch 号轮换(配合服务端 CAS 使用) */
205
- rotateEpochTo(groupId: string, targetEpoch: number, memberAids: string[], opts?: {
206
- rotationId?: string;
207
- prevChainHint?: string | null;
208
- }): Promise<JsonObject>;
209
- /** 手动存储 group_secret。返回 false 表示 epoch 降级被拒。 */
210
- storeSecret(groupId: string, epoch: number, groupSecretBytes: Uint8Array, commitment: string, memberAids: string[], epochChain?: string): Promise<boolean>;
211
- discardPendingSecret(groupId: string, epoch: number, rotationId: string): Promise<boolean>;
212
- loadSecret(groupId: string, epoch?: number | null): Promise<{
213
- epoch: number;
214
- secret: Uint8Array;
215
- commitment: string;
216
- member_aids: string[];
217
- epoch_chain?: string;
218
- pending_rotation_id?: string;
219
- } | null>;
220
- loadAllSecrets(groupId: string): Promise<Map<number, Uint8Array>>;
221
- cleanup(groupId: string, retentionSeconds?: number): Promise<number>;
222
- /** 加密群消息(含发送方签名)。无密钥时抛 E2EEGroupSecretMissingError。 */
223
- encrypt(groupId: string, payload: JsonObject, opts?: {
224
- messageId?: string;
225
- timestamp?: number;
226
- protectedHeaders?: ProtectedHeadersInput;
227
- protected_headers?: ProtectedHeadersInput;
228
- headers?: ProtectedHeadersInput;
229
- context?: JsonObject | null;
230
- }): Promise<JsonObject>;
231
- /** 使用指定 epoch 加密群消息。 */
232
- encryptWithEpoch(groupId: string, epoch: number, payload: JsonObject, opts?: {
233
- messageId?: string;
234
- timestamp?: number;
235
- protectedHeaders?: ProtectedHeadersInput;
236
- protected_headers?: ProtectedHeadersInput;
237
- headers?: ProtectedHeadersInput;
238
- context?: JsonObject | null;
239
- }): Promise<JsonObject>;
240
- /**
241
- * 解密单条群消息(异步)。内置防重放 + 发送方验签 + 外层字段校验。
242
- *
243
- * opts.skipReplay: 跳过防重放检查(用于 group.pull 场景)。
244
- */
245
- decrypt(message: Message, opts?: {
246
- skipReplay?: boolean;
247
- }): Promise<Message | null>;
248
- /** 批量解密 */
249
- decryptBatch(messages: Message[], opts?: {
250
- skipReplay?: boolean;
251
- }): Promise<Message[]>;
252
- /**
253
- * 处理已解密的 P2P 密钥消息(异步)。
254
- *
255
- * 返回 "distribution"/"request"/"response" 表示已成功处理。
256
- * 返回 "distribution_rejected"/"response_rejected" 表示被拒绝。
257
- * 返回 null 表示不是密钥消息。
258
- */
259
- handleIncoming(payload: JsonObject): Promise<string | null>;
260
- /** 构建恢复请求。返回 {to, payload} 或 null(限流/无目标)。 */
261
- buildRecoveryRequest(groupId: string, epoch: number, opts?: {
262
- senderAid?: string;
263
- }): Promise<JsonObject | null>;
264
- rememberKeyRequest(payload: JsonObject, expectedResponderAid?: string | null): void;
265
- /** 处理密钥请求(受频率限制 + 成员资格验证) */
266
- handleKeyRequestMsg(requestPayload: JsonObject, currentMembers: string[]): Promise<JsonObject | null>;
267
- hasSecret(groupId: string): Promise<boolean>;
268
- currentEpoch(groupId: string): Promise<number | null>;
269
- getMemberAids(groupId: string): Promise<string[]>;
270
- /** 清理过期缓存(replay guard 等),供外部定时调用 */
271
- cleanExpiredCaches(): void;
272
- /** 删除群组的所有本地状态(群组解散时使用,异步) */
273
- removeGroup(groupId: string): Promise<void>;
274
- private _currentAid;
275
- }
276
- //# sourceMappingURL=e2ee-group.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2ee-group.d.ts","sourceRoot":"","sources":["../src/e2ee-group.ts"],"names":[],"mappings":"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"}