@agentunion/fastaun-browser 0.5.10 → 0.5.12

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 (44) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/_packed_docs/CHANGELOG.md +62 -0
  3. package/_packed_docs/INDEX.md +3 -3
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +1 -1
  5. package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +21 -3
  6. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +59 -0
  7. package/_packed_docs/sdk/09-group-rpc-manual.md +29 -2
  8. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +3 -2
  9. package/_packed_docs/sdk/INDEX.md +2 -1
  10. package/dist/bundle.js +1145 -381
  11. package/dist/client/delivery.d.ts +12 -4
  12. package/dist/client/delivery.d.ts.map +1 -1
  13. package/dist/client/delivery.js +341 -273
  14. package/dist/client/delivery.js.map +1 -1
  15. package/dist/client/group-state.d.ts.map +1 -1
  16. package/dist/client/group-state.js +1 -0
  17. package/dist/client/group-state.js.map +1 -1
  18. package/dist/client/rpc-pipeline.d.ts.map +1 -1
  19. package/dist/client/rpc-pipeline.js +38 -13
  20. package/dist/client/rpc-pipeline.js.map +1 -1
  21. package/dist/client/v2-e2ee.d.ts +3 -1
  22. package/dist/client/v2-e2ee.d.ts.map +1 -1
  23. package/dist/client/v2-e2ee.js +211 -75
  24. package/dist/client/v2-e2ee.js.map +1 -1
  25. package/dist/client.d.ts +15 -0
  26. package/dist/client.d.ts.map +1 -1
  27. package/dist/client.js +402 -20
  28. package/dist/client.js.map +1 -1
  29. package/dist/facades.d.ts +7 -0
  30. package/dist/facades.d.ts.map +1 -1
  31. package/dist/facades.js +44 -0
  32. package/dist/facades.js.map +1 -1
  33. package/dist/seq-tracker.d.ts +2 -2
  34. package/dist/seq-tracker.d.ts.map +1 -1
  35. package/dist/seq-tracker.js +11 -7
  36. package/dist/seq-tracker.js.map +1 -1
  37. package/dist/tools/cross-sdk-agent.js +50 -12
  38. package/dist/tools/cross-sdk-agent.js.map +1 -1
  39. package/dist/transport.d.ts.map +1 -1
  40. package/dist/transport.js +162 -15
  41. package/dist/transport.js.map +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/package.json +1 -1
package/dist/client.d.ts CHANGED
@@ -173,6 +173,9 @@ export declare class AUNClient {
173
173
  private _mailFacade?;
174
174
  private _groupFacade?;
175
175
  private _streamFacade?;
176
+ private _groupInvitePending;
177
+ private _groupInviteStateAid;
178
+ private _groupInviteStateLoad;
176
179
  constructor(aid?: AID);
177
180
  get aid(): string | null;
178
181
  /** 返回后台刷新任务维护的最新 access token。 */
@@ -265,8 +268,10 @@ export declare class AUNClient {
265
268
  call(method: string, params?: RpcParams): Promise<RpcResult>;
266
269
  private _maybeHandleHalfOpenRpcFailure;
267
270
  _recoverIdentityAdmission(err: unknown, _method?: string, params?: RpcParams): Promise<boolean>;
271
+ private _checkIdentityAdmissionAfterConnect;
268
272
  private _runGroupIdentityOperation;
269
273
  createGroup(params?: RpcParams, options?: CreateGroupOptions): Promise<RpcResult>;
274
+ private _inviteInitialGroupMembers;
270
275
  private _groupAgentMdContent;
271
276
  private _uploadGroupAgentMd;
272
277
  bindGroupAid(params?: RpcParams, options?: BindGroupAidOptions): Promise<RpcResult>;
@@ -315,6 +320,16 @@ export declare class AUNClient {
315
320
  private _publishOrderedMessage;
316
321
  private _publishPulledMessage;
317
322
  private _extractGroupIdFromResult;
323
+ private groupInviteKey;
324
+ private ensureGroupInviteStateLoaded;
325
+ private persistGroupInviteState;
326
+ private inviteArray;
327
+ private inviteBool;
328
+ private _onRawGroupInviteReceived;
329
+ private _onRawGroupInviteFinalized;
330
+ _onGroupInviteActionResult(method: string, params: RpcParams, result?: unknown, error?: unknown): Promise<void>;
331
+ private restoreGroupInvitesFromResult;
332
+ private restoreGroupInvitesAfterConnect;
318
333
  private _onRawGroupChanged;
319
334
  /**
320
335
  * 处理 event/group.state_committed:验证 state_hash 链并更新本地存储。
@@ -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
@@ -96,10 +96,12 @@ const RECONNECT_MIN_BASE_DELAY_SECONDS = 1.0;
96
96
  const RECONNECT_MAX_BASE_DELAY_SECONDS = 64.0;
97
97
  const TOKEN_REFRESH_CHECK_INTERVAL_MS = 30_000;
98
98
  const MAX_NOTIFY_PAYLOAD_SIZE = 64 * 1024;
99
+ const GROUP_INVITE_METADATA_KEY = 'group_invite_pending_v1';
99
100
  // P1-23: 非幂等方法使用更长超时(35s),避免 SDK 10s 超时 < gateway 30s 处理时间
100
101
  const NON_IDEMPOTENT_TIMEOUT = 35;
101
102
  const NON_IDEMPOTENT_METHODS = new Set([
102
- 'message.send', 'mail.send', 'group.send', 'group.create', 'group.invite',
103
+ 'message.send', 'mail.send', 'group.send', 'group.create',
104
+ 'group.accept_invite', 'group.reject_invite', 'group.revoke_invite',
103
105
  'group.kick', 'group.remove_member', 'group.leave', 'group.dissolve',
104
106
  'group.set_settings',
105
107
  'group.update_announcement', 'group.update_rules',
@@ -120,7 +122,8 @@ const NON_IDEMPOTENT_METHODS = new Set([
120
122
  'storage.volume.create', 'storage.volume.renew', 'storage.volume.expire_due',
121
123
  'auth.create_aid', 'auth.renew_cert', 'auth.rekey',
122
124
  'message.thought.put', 'group.thought.put',
123
- 'group.add_member', 'group.bind_group_aid', 'group.complete_transfer',
125
+ 'group.add_member',
126
+ 'group.bind_group_aid', 'group.complete_transfer',
124
127
  'group.fs.mkdir', 'group.fs.rm', 'group.fs.cp', 'group.fs.mv',
125
128
  'group.fs.set_acl', 'group.fs.remove_acl',
126
129
  'group.fs.mount', 'group.fs.umount',
@@ -142,7 +145,8 @@ const SIGNED_METHODS = new Set([
142
145
  'group.v2.send', 'group.v2.pull', 'group.v2.ack',
143
146
  'group.v2.propose_state', 'group.v2.confirm_state',
144
147
  'group.v2.get_proposal',
145
- 'group.kick', 'group.add_member',
148
+ 'group.kick', 'group.add_member', 'group.invite_member', 'group.list_my_invites',
149
+ 'group.accept_invite', 'group.reject_invite', 'group.revoke_invite',
146
150
  'group.leave', 'group.remove_member',
147
151
  'group.update',
148
152
  'group.set_role',
@@ -629,6 +633,9 @@ export class AUNClient {
629
633
  _mailFacade;
630
634
  _groupFacade;
631
635
  _streamFacade;
636
+ _groupInvitePending = new Map();
637
+ _groupInviteStateAid = null;
638
+ _groupInviteStateLoad = null;
632
639
  constructor(aid) {
633
640
  if (aid !== null && aid !== undefined && !isAIDObject(aid)) {
634
641
  throw new ValidationError('AUNClient only accepts an AID object or no argument');
@@ -749,6 +756,15 @@ export class AUNClient {
749
756
  this._dispatcher.subscribe('_raw.group.changed', (data) => {
750
757
  this._onRawGroupChanged(data);
751
758
  });
759
+ this._dispatcher.subscribe('_raw.group.invite_created', (data) => {
760
+ this._safeAsync(this._onRawGroupInviteReceived(data, 'push'));
761
+ });
762
+ this._dispatcher.subscribe('_raw.group.invite_received', (data) => {
763
+ this._safeAsync(this._onRawGroupInviteReceived(data, 'push'));
764
+ });
765
+ this._dispatcher.subscribe('_raw.group.invite_finalized', (data) => {
766
+ this._safeAsync(this._onRawGroupInviteFinalized(data));
767
+ });
752
768
  // V2 P2P / 群组服务平面事件:统一在构造期订阅,避免重连或重复初始化时重复注册。
753
769
  this._dispatcher.subscribe('_raw.peer.v2.message_received', (data) => {
754
770
  this._safeAsync(this._onV2PushNotification(data));
@@ -1232,6 +1248,61 @@ export class AUNClient {
1232
1248
  await this._agentMdManager.upload(await this._agentMdManager.readContent(target) ?? buildDefaultAgentMd(target));
1233
1249
  return true;
1234
1250
  }
1251
+ async _checkIdentityAdmissionAfterConnect() {
1252
+ const aid = String(this._aid ?? this._currentAid?.aid ?? '').trim();
1253
+ if (!aid)
1254
+ return;
1255
+ try {
1256
+ const checked = await this._agentMdManager.check(aid);
1257
+ if (!checked.remote_found) {
1258
+ const content = await this._agentMdManager.readContent(aid) ?? buildDefaultAgentMd(aid);
1259
+ await this._agentMdManager.upload(content);
1260
+ }
1261
+ }
1262
+ catch (exc) {
1263
+ this._clientLog.warn(`post-connect agent.md check failed: ${String(exc)}`);
1264
+ }
1265
+ const store = this._aidStore;
1266
+ if (!store)
1267
+ return;
1268
+ let listed;
1269
+ try {
1270
+ listed = await this.call('group.list_my', {});
1271
+ }
1272
+ catch (exc) {
1273
+ this._clientLog.warn(`post-connect group identity check failed: ${String(exc)}`);
1274
+ return;
1275
+ }
1276
+ const result = isJsonObject(listed) ? listed : {};
1277
+ const groups = Array.isArray(result.groups) ? result.groups : (Array.isArray(result.items) ? result.items : []);
1278
+ for (const raw of groups) {
1279
+ if (!isJsonObject(raw))
1280
+ continue;
1281
+ const role = String(raw.role ?? raw.my_role ?? '').trim().toLowerCase();
1282
+ if (role !== 'owner')
1283
+ continue;
1284
+ const groupId = String(raw.group_id ?? raw.groupId ?? raw.group_aid ?? raw.groupAid ?? '').trim();
1285
+ const groupAid = String(raw.group_aid ?? raw.groupAid ?? groupId).trim();
1286
+ if (!groupId || !groupAid)
1287
+ continue;
1288
+ try {
1289
+ await this._runGroupIdentityOperation(groupId, async () => {
1290
+ const loaded = await store.load(groupAid);
1291
+ if (!loaded.ok || !loaded.data?.aid?.isPrivateKeyValid()) {
1292
+ await this.bindGroupAid({ group_id: groupId, group_aid: groupAid }, { aidStore: store });
1293
+ return;
1294
+ }
1295
+ const checked = await this._agentMdManager.check(groupAid);
1296
+ if (!checked.remote_found) {
1297
+ await this._uploadGroupAgentMd(store, groupAid, {}, {}, aid);
1298
+ }
1299
+ });
1300
+ }
1301
+ catch (exc) {
1302
+ this._clientLog.warn(`post-connect group identity check failed: group=${groupId} err=${String(exc)}`);
1303
+ }
1304
+ }
1305
+ }
1235
1306
  async _runGroupIdentityOperation(groupId, operation) {
1236
1307
  const aid = String(this._aid ?? this._currentAid?.aid ?? '').trim();
1237
1308
  const dot = aid.indexOf('.');
@@ -1261,6 +1332,8 @@ export class AUNClient {
1261
1332
  }
1262
1333
  this._aidStore = store;
1263
1334
  const payload = { ...params };
1335
+ const initialMembers = payload.members;
1336
+ delete payload.members;
1264
1337
  if (payload.group_name === undefined && payload.groupName !== undefined) {
1265
1338
  payload.group_name = payload.groupName;
1266
1339
  delete payload.groupName;
@@ -1288,7 +1361,8 @@ export class AUNClient {
1288
1361
  const result = { ...createdMap, ...boundMap, group: { ...createdGroup, ...boundGroup } };
1289
1362
  const postprocessParams = { ...payload };
1290
1363
  delete postprocessParams._defer_group_ready_postprocess;
1291
- return await this._groupState.postprocessResult('group.create', postprocessParams, result);
1364
+ const processed = await this._groupState.postprocessResult('group.create', postprocessParams, result);
1365
+ return await this._inviteInitialGroupMembers(processed, groupId, initialMembers);
1292
1366
  }
1293
1367
  const pendingKey = `create:${String(payload.group_name).trim().toLowerCase()}`;
1294
1368
  const keystore = store._keystore;
@@ -1339,7 +1413,32 @@ export class AUNClient {
1339
1413
  }
1340
1414
  const postprocessParams = { ...payload };
1341
1415
  delete postprocessParams._defer_group_ready_postprocess;
1342
- return await this._groupState.postprocessResult('group.create', postprocessParams, result);
1416
+ const processed = await this._groupState.postprocessResult('group.create', postprocessParams, result);
1417
+ return await this._inviteInitialGroupMembers(processed, String(group.group_id ?? groupAid).trim(), initialMembers);
1418
+ }
1419
+ async _inviteInitialGroupMembers(result, groupId, members) {
1420
+ const invites = [];
1421
+ const inviteErrors = [];
1422
+ const seen = new Set();
1423
+ if (Array.isArray(members)) {
1424
+ for (const item of members) {
1425
+ const aid = typeof item === 'string' ? item.trim() : (isJsonObject(item) ? String(item.aid ?? '').trim() : '');
1426
+ const memberType = isJsonObject(item) ? String(item.member_type ?? '').trim() : '';
1427
+ if (!aid || aid === String(this._aid ?? this._currentAid?.aid ?? '').trim() || seen.has(aid))
1428
+ continue;
1429
+ seen.add(aid);
1430
+ const params = { group_id: groupId, invitee_aid: aid };
1431
+ if (memberType)
1432
+ params.member_type = memberType;
1433
+ try {
1434
+ invites.push(await this.group.inviteMember(params));
1435
+ }
1436
+ catch (err) {
1437
+ inviteErrors.push({ aid, error: err instanceof Error ? err.message : String(err) });
1438
+ }
1439
+ }
1440
+ }
1441
+ return { ...(isJsonObject(result) ? result : {}), invites, invite_errors: inviteErrors };
1343
1442
  }
1344
1443
  _groupAgentMdContent(groupAid, params = {}, group = {}) {
1345
1444
  const explicit = params.group_agent_md ?? params.groupAgentMd ?? params.content;
@@ -1875,7 +1974,7 @@ export class AUNClient {
1875
1974
  _markPublishedSeq(ns, seq) {
1876
1975
  this._delivery.markPublishedSeq(ns, seq);
1877
1976
  }
1878
- async _publishAppEvent(event, payload, source = '', ns = '', batch) {
1977
+ async _publishAppEvent(event, payload, source = 'direct', ns = '', batch) {
1879
1978
  await this._delivery.publishAppEvent(event, payload, source, ns, batch);
1880
1979
  }
1881
1980
  _echoTimestamp() {
@@ -1937,6 +2036,293 @@ export class AUNClient {
1937
2036
  const member = isJsonObject(result.member) ? result.member : null;
1938
2037
  return member ? String(member.group_id ?? member.groupId ?? member.group_aid ?? member.groupAid ?? '') : '';
1939
2038
  }
2039
+ groupInviteKey(groupId, inviteeAid) {
2040
+ const group = normalizeGroupId(groupId);
2041
+ const invitee = String(inviteeAid ?? '').trim().toLowerCase();
2042
+ return group && invitee ? `${group}\n${invitee}` : '';
2043
+ }
2044
+ async ensureGroupInviteStateLoaded() {
2045
+ const aid = String(this._aid ?? '').trim();
2046
+ if (!aid) {
2047
+ this._groupInvitePending.clear();
2048
+ this._groupInviteStateAid = null;
2049
+ return;
2050
+ }
2051
+ if (this._groupInviteStateAid === aid)
2052
+ return;
2053
+ if (this._groupInviteStateLoad) {
2054
+ await this._groupInviteStateLoad;
2055
+ if (this._groupInviteStateAid === aid)
2056
+ return;
2057
+ }
2058
+ this._groupInviteStateLoad = (async () => {
2059
+ this._groupInvitePending.clear();
2060
+ this._groupInviteStateAid = aid;
2061
+ const getter = this._tokenStore?.getMetadata;
2062
+ if (typeof getter !== 'function')
2063
+ return;
2064
+ try {
2065
+ const raw = await getter.call(this._tokenStore, aid, GROUP_INVITE_METADATA_KEY);
2066
+ const parsed = raw ? JSON.parse(String(raw)) : {};
2067
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
2068
+ return;
2069
+ for (const [key, value] of Object.entries(parsed)) {
2070
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
2071
+ this._groupInvitePending.set(key, value);
2072
+ }
2073
+ }
2074
+ }
2075
+ catch (exc) {
2076
+ this._clientLog.debug(`group invite state restore skipped: ${String(exc)}`);
2077
+ }
2078
+ })().finally(() => { this._groupInviteStateLoad = null; });
2079
+ return this._groupInviteStateLoad;
2080
+ }
2081
+ async persistGroupInviteState() {
2082
+ const aid = String(this._aid ?? '').trim();
2083
+ const setter = this._tokenStore?.setMetadata;
2084
+ if (!aid || typeof setter !== 'function')
2085
+ return;
2086
+ const state = {};
2087
+ for (const [key, value] of this._groupInvitePending)
2088
+ state[key] = value;
2089
+ try {
2090
+ await setter.call(this._tokenStore, aid, GROUP_INVITE_METADATA_KEY, JSON.stringify(state));
2091
+ }
2092
+ catch (exc) {
2093
+ this._clientLog.debug(`group invite state persist skipped: ${String(exc)}`);
2094
+ }
2095
+ }
2096
+ inviteArray(value, singular) {
2097
+ const values = Array.isArray(value) ? value : singular !== undefined ? [singular] : [];
2098
+ return [...new Set(values.map((item) => String(item ?? '').trim()).filter(Boolean))];
2099
+ }
2100
+ inviteBool(value) {
2101
+ return value === true || value === 1 || String(value ?? '').trim().toLowerCase() === 'true';
2102
+ }
2103
+ async _onRawGroupInviteReceived(data, source = 'push') {
2104
+ if (!isJsonObject(data))
2105
+ return;
2106
+ const groupId = normalizeGroupId(data.group_id ?? data.groupId ?? data.group_aid ?? data.groupAid);
2107
+ const inviteeAid = String(data.invitee_aid ?? data.inviteeAid ?? this._aid ?? '').trim();
2108
+ if (!groupId || !inviteeAid || (this._aid && inviteeAid.toLowerCase() !== this._aid.toLowerCase()))
2109
+ return;
2110
+ if (String(data.status ?? 'pending').trim().toLowerCase() !== 'pending') {
2111
+ await this._onRawGroupInviteFinalized(data);
2112
+ return;
2113
+ }
2114
+ await this.ensureGroupInviteStateLoaded();
2115
+ const key = this.groupInviteKey(groupId, inviteeAid);
2116
+ if (!key)
2117
+ return;
2118
+ const inviteIds = this.inviteArray(data.invite_ids, data.invite_id);
2119
+ const inviterAids = this.inviteArray(data.inviter_aids, data.inviter_aid);
2120
+ const existing = this._groupInvitePending.get(key);
2121
+ if (existing) {
2122
+ existing.invite_ids = [...new Set([...this.inviteArray(existing.invite_ids), ...inviteIds])];
2123
+ existing.inviter_aids = [...new Set([...this.inviteArray(existing.inviter_aids), ...inviterAids])];
2124
+ await this.persistGroupInviteState();
2125
+ return;
2126
+ }
2127
+ const payload = {
2128
+ ...data,
2129
+ group_id: groupId,
2130
+ group_aid: groupId,
2131
+ invitee_aid: inviteeAid,
2132
+ invite_ids: inviteIds,
2133
+ inviter_aids: inviterAids,
2134
+ role: data.role ?? 'member',
2135
+ member_type: data.member_type ?? data.memberType ?? 'human',
2136
+ created_at: data.created_at ?? data.createdAt ?? 0,
2137
+ expires_at: data.expires_at ?? data.expiresAt ?? 0,
2138
+ status: 'pending',
2139
+ };
2140
+ delete payload.groupId;
2141
+ delete payload.groupAid;
2142
+ delete payload.inviteeAid;
2143
+ delete payload.inviterAid;
2144
+ this._groupInvitePending.set(key, payload);
2145
+ await this.persistGroupInviteState();
2146
+ await this._publishAppEvent('group.invite_received', JSON.parse(JSON.stringify(payload)), source);
2147
+ }
2148
+ async _onRawGroupInviteFinalized(data) {
2149
+ if (!isJsonObject(data))
2150
+ return;
2151
+ await this.ensureGroupInviteStateLoaded();
2152
+ const groupId = normalizeGroupId(data.group_id ?? data.groupId ?? data.group_aid ?? data.groupAid);
2153
+ const inviteeAid = String(data.invitee_aid ?? data.inviteeAid ?? this._aid ?? '').trim();
2154
+ if (this._aid && inviteeAid.toLowerCase() !== this._aid.toLowerCase())
2155
+ return;
2156
+ const inviteId = String(data.invite_id ?? '').trim();
2157
+ const key = this.groupInviteKey(groupId, inviteeAid);
2158
+ const status = String(data.status ?? '').trim().toLowerCase();
2159
+ const aggregateStatus = String(data.aggregate_status ?? data.aggregateStatus ?? '').trim().toLowerCase();
2160
+ const pendingIds = this.inviteArray(data.pending_invite_ids ?? data.pendingInviteIds);
2161
+ const pendingInviters = this.inviteArray(data.pending_inviter_aids ?? data.pendingInviterAids);
2162
+ const finalizedIds = this.inviteBool(data.remaining_pending) && inviteId
2163
+ ? [inviteId]
2164
+ : this.inviteArray(data.invite_ids, data.invite_id);
2165
+ const finalizedInviters = this.inviteArray(data.inviter_aids, data.inviter_aid);
2166
+ const leavesPending = this.inviteBool(data.remaining_pending)
2167
+ || this.inviteBool(data.pending)
2168
+ || status === 'pending'
2169
+ || aggregateStatus === 'pending'
2170
+ || pendingIds.length > 0;
2171
+ let changed = false;
2172
+ const candidates = [];
2173
+ if (key) {
2174
+ const current = this._groupInvitePending.get(key);
2175
+ if (current)
2176
+ candidates.push([key, current]);
2177
+ }
2178
+ if (candidates.length === 0 && inviteId) {
2179
+ for (const [itemKey, item] of this._groupInvitePending) {
2180
+ if (this.inviteArray(item.invite_ids).includes(inviteId))
2181
+ candidates.push([itemKey, item]);
2182
+ }
2183
+ }
2184
+ for (const [itemKey, item] of candidates) {
2185
+ if (!leavesPending) {
2186
+ this._groupInvitePending.delete(itemKey);
2187
+ changed = true;
2188
+ continue;
2189
+ }
2190
+ const currentIds = this.inviteArray(item.invite_ids);
2191
+ const currentInviters = this.inviteArray(item.inviter_aids);
2192
+ const finalizedIndexes = new Set(currentIds
2193
+ .map((id, index) => finalizedIds.includes(id) ? index : -1)
2194
+ .filter((index) => index >= 0));
2195
+ const nextIds = pendingIds.length > 0
2196
+ ? pendingIds
2197
+ : finalizedIds.length > 0
2198
+ ? currentIds.filter((id) => !finalizedIds.includes(id))
2199
+ : currentIds;
2200
+ const nextInviters = pendingInviters.length > 0
2201
+ ? pendingInviters
2202
+ : finalizedInviters.length > 0
2203
+ ? currentInviters.filter((aid) => !finalizedInviters.includes(aid))
2204
+ : finalizedIndexes.size > 0
2205
+ ? currentInviters.filter((_aid, index) => !finalizedIndexes.has(index))
2206
+ : currentInviters;
2207
+ if (nextIds.length === 0) {
2208
+ this._groupInvitePending.delete(itemKey);
2209
+ }
2210
+ else {
2211
+ item.invite_ids = nextIds;
2212
+ item.inviter_aids = nextInviters;
2213
+ }
2214
+ changed = true;
2215
+ }
2216
+ if (changed)
2217
+ await this.persistGroupInviteState();
2218
+ }
2219
+ async _onGroupInviteActionResult(method, params, result, error) {
2220
+ if (method === 'group.list_my_invites' && !error && (isJsonObject(result) || Array.isArray(result))) {
2221
+ await this.restoreGroupInvitesFromResult(result, params);
2222
+ return;
2223
+ }
2224
+ if (!['group.accept_invite', 'group.reject_invite', 'group.revoke_invite'].includes(method))
2225
+ return;
2226
+ const text = String(error instanceof Error ? error.message : error ?? '').toLowerCase();
2227
+ const resultStatus = isJsonObject(result) ? String(result.status ?? '').toLowerCase() : '';
2228
+ const aggregateResultStatus = isJsonObject(result)
2229
+ ? String(result.aggregate_status ?? result.aggregateStatus ?? '').toLowerCase()
2230
+ : '';
2231
+ const terminalStatus = resultStatus || aggregateResultStatus;
2232
+ const pendingResult = resultStatus === 'pending' || aggregateResultStatus === 'pending'
2233
+ || (isJsonObject(result) && (this.inviteBool(result.remaining_pending) || this.inviteBool(result.pending)));
2234
+ if (pendingResult) {
2235
+ if (isJsonObject(result) && (this.inviteBool(result.remaining_pending)
2236
+ || this.inviteArray(result.pending_invite_ids ?? result.pendingInviteIds).length > 0)) {
2237
+ await this._onRawGroupInviteFinalized({ ...params, ...result });
2238
+ }
2239
+ return;
2240
+ }
2241
+ const terminal = !pendingResult && (!error || ['accepted', 'rejected', 'revoked', 'expired', 'ended'].includes(terminalStatus)
2242
+ || /ended|expired|not.*pending|no longer.*pending|not found|finalized|already\s+(?:been\s+)?(?:accepted|rejected|revoked)/.test(text));
2243
+ if (!terminal)
2244
+ return;
2245
+ await this._onRawGroupInviteFinalized({
2246
+ ...params,
2247
+ ...(isJsonObject(result) ? result : {}),
2248
+ status: terminalStatus || 'ended',
2249
+ });
2250
+ }
2251
+ async restoreGroupInvitesFromResult(result, requestParams = {}) {
2252
+ const seen = new Set();
2253
+ const visitedPages = new Set();
2254
+ let current = result;
2255
+ let currentParams = { ...requestParams };
2256
+ let finalPage = false;
2257
+ while (!finalPage) {
2258
+ const root = Array.isArray(current) ? null : isJsonObject(current) ? current : null;
2259
+ const nestedValue = root && isJsonObject(root.data)
2260
+ ? root.data
2261
+ : root;
2262
+ const nested = nestedValue ?? {};
2263
+ const rawItems = Array.isArray(nested.items)
2264
+ ? nested.items
2265
+ : Array.isArray(nested.invites)
2266
+ ? nested.invites
2267
+ : Array.isArray(current)
2268
+ ? current
2269
+ : [];
2270
+ for (const item of rawItems) {
2271
+ if (!isJsonObject(item))
2272
+ continue;
2273
+ const status = String(item.status ?? 'pending').toLowerCase();
2274
+ const gid = normalizeGroupId(item.group_id ?? item.group_aid ?? item.groupId ?? item.groupAid);
2275
+ const aid = String(item.invitee_aid ?? item.inviteeAid ?? this._aid ?? '').trim();
2276
+ if (this._aid && aid.toLowerCase() !== this._aid.toLowerCase())
2277
+ continue;
2278
+ const key = this.groupInviteKey(gid, aid);
2279
+ if (status === 'pending' && key) {
2280
+ seen.add(key);
2281
+ await this._onRawGroupInviteReceived(item, 'pull');
2282
+ }
2283
+ else if (key) {
2284
+ seen.add(key);
2285
+ await this._onRawGroupInviteFinalized(item);
2286
+ }
2287
+ }
2288
+ const hasMore = this.inviteBool(nested.has_more ?? nested.hasMore ?? (root ? root.has_more ?? root.hasMore : undefined));
2289
+ if (!hasMore) {
2290
+ finalPage = true;
2291
+ break;
2292
+ }
2293
+ const page = Number(nested.page ?? root?.page ?? currentParams.page ?? 1);
2294
+ const nextPageValue = nested.next_page ?? nested.nextPage ?? root?.next_page ?? root?.nextPage;
2295
+ const nextPage = Number(nextPageValue ?? page + 1);
2296
+ if (!Number.isFinite(nextPage) || nextPage <= 0 || visitedPages.has(nextPage) || nextPage === page)
2297
+ break;
2298
+ visitedPages.add(page);
2299
+ currentParams = { ...currentParams, page: nextPage };
2300
+ if (currentParams.size === undefined) {
2301
+ const size = nested.size ?? root?.size;
2302
+ if (size !== undefined)
2303
+ currentParams.size = size;
2304
+ }
2305
+ current = await this.call('group.list_my_invites', currentParams);
2306
+ }
2307
+ await this.ensureGroupInviteStateLoaded();
2308
+ let changed = false;
2309
+ for (const key of this._groupInvitePending.keys()) {
2310
+ if (!seen.has(key)) {
2311
+ this._groupInvitePending.delete(key);
2312
+ changed = true;
2313
+ }
2314
+ }
2315
+ if (changed)
2316
+ await this.persistGroupInviteState();
2317
+ }
2318
+ async restoreGroupInvitesAfterConnect() {
2319
+ if (!this._aid || this._state !== 'connected')
2320
+ return;
2321
+ const result = await this.call('group.list_my_invites', { page: 1, size: 200, _rpc_background: true });
2322
+ if (isJsonObject(result) || Array.isArray(result)) {
2323
+ await this.restoreGroupInvitesFromResult(result, { page: 1, size: 200, _rpc_background: true });
2324
+ }
2325
+ }
1940
2326
  async _onRawGroupChanged(data) {
1941
2327
  const tStart = Date.now();
1942
2328
  const action = String(data?.action ?? '');
@@ -2284,6 +2670,7 @@ export class AUNClient {
2284
2670
  }
2285
2671
  this._lifecycle.assertConnectionAttemptOwner(connectionOwner);
2286
2672
  this._startBackgroundTasks();
2673
+ this._safeAsync(this.restoreGroupInvitesAfterConnect());
2287
2674
  const connectionKind = String(params.connection_kind ?? 'long');
2288
2675
  const isShortConnection = connectionKind === 'short';
2289
2676
  const hasExplicitBackgroundSync = Object.prototype.hasOwnProperty.call(params, 'background_sync');
@@ -2301,6 +2688,7 @@ export class AUNClient {
2301
2688
  if (backgroundSyncEnabled) {
2302
2689
  this._safeAsync(this._fillP2pGap());
2303
2690
  }
2691
+ this._safeAsync(this._checkIdentityAdmissionAfterConnect());
2304
2692
  this._clientLog.debug(`_connectOnce exit: elapsed=${Date.now() - tStart}ms aid=${this._aid ?? '-'}`);
2305
2693
  }
2306
2694
  catch (err) {
@@ -3100,19 +3488,10 @@ export class AUNClient {
3100
3488
  return this._delivery.clampAckParams(method, params);
3101
3489
  }
3102
3490
  _repairPushContiguousBound(ns, pushSeq, hasPayload, label) {
3103
- if (!ns || !Number.isFinite(pushSeq) || pushSeq <= 0) {
3104
- return ns ? this._seqTracker.getContiguousSeq(ns) : 0;
3105
- }
3106
- const contig = this._seqTracker.getContiguousSeq(ns);
3107
- const shouldRepair = contig > pushSeq;
3108
- if (!shouldRepair)
3109
- return contig;
3110
- const repairedTo = Math.max(0, pushSeq - 1);
3111
- this._seqTracker.repairContiguousSeq(ns, repairedTo);
3112
- const repaired = this._seqTracker.getContiguousSeq(ns);
3113
- this._persistRepairedSeq(ns);
3114
- this._clientLog.warn(`${label} push repaired contiguous_seq: ns=${ns} payload=${hasPayload} push_seq=${pushSeq} contiguous=${contig}->${repaired}`);
3115
- return repaired;
3491
+ void pushSeq;
3492
+ void hasPayload;
3493
+ void label;
3494
+ return ns ? this._seqTracker.getContiguousSeq(ns) : 0;
3116
3495
  }
3117
3496
  async _ensureV2SessionReady(method, errorMessage) {
3118
3497
  if (!this._v2SessionMatchesIdentity()) {
@@ -3300,7 +3679,7 @@ export class AUNClient {
3300
3679
  * undecryptable 事件、成功消费后触发 SPK 轮换。inline Push 在游标提交和
3301
3680
  * Head/正文绑定校验前调用本入口时必须显式关闭这些副作用。
3302
3681
  */
3303
- async _decryptV2Message(msg, allowPending = true, emitUndecryptable = true, rotateKeys = true, observeAgentMd = true, deferStatus, deferKeyFetch = false) {
3682
+ async _decryptV2Message(msg, allowPending = true, emitUndecryptable = true, rotateKeys = true, observeAgentMd = true, deferStatus, deferKeyFetch = false, source = 'pull') {
3304
3683
  const session = this._v2Session;
3305
3684
  if (!session)
3306
3685
  return null;
@@ -3400,6 +3779,7 @@ export class AUNClient {
3400
3779
  _envelope_type: String(envelope.type ?? ''),
3401
3780
  _suite: String(envelope.suite ?? ''),
3402
3781
  _spk_id: spkId,
3782
+ source,
3403
3783
  };
3404
3784
  attachV2EnvelopeMetadata(event, e2eeMeta);
3405
3785
  this._dispatcher.enqueue(undecryptableEvent, event);
@@ -3441,6 +3821,7 @@ export class AUNClient {
3441
3821
  _decrypt_stage: 'sender_ik',
3442
3822
  _envelope_type: String(envelope.type ?? ''),
3443
3823
  _suite: String(envelope.suite ?? ''),
3824
+ source,
3444
3825
  };
3445
3826
  attachV2EnvelopeMetadata(event, e2eeMeta);
3446
3827
  this._dispatcher.enqueue(undecryptableEvent, event);
@@ -3473,6 +3854,7 @@ export class AUNClient {
3473
3854
  _decrypt_stage: 'decrypt',
3474
3855
  _envelope_type: String(envelope.type ?? ''),
3475
3856
  _suite: String(envelope.suite ?? ''),
3857
+ source,
3476
3858
  };
3477
3859
  attachV2EnvelopeMetadata(event, e2eeMeta);
3478
3860
  this._dispatcher.enqueue(undecryptableEvent, event);