@agentunion/fastaun-browser 0.3.0 → 0.3.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.
- package/CHANGELOG.md +16 -0
- package/README.md +0 -1
- package/_packed_docs/CHANGELOG.md +16 -0
- package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +542 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1 -24
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +41 -0
- package/_packed_docs/sdk/09-message-rpc-manual.md +30 -67
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +5 -2
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +775 -33
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +185 -25
- package/dist/client.js.map +1 -1
- package/dist/namespaces/auth.d.ts +9 -0
- package/dist/namespaces/auth.d.ts.map +1 -1
- package/dist/namespaces/auth.js +243 -0
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/seq-tracker.d.ts.map +1 -1
- package/dist/seq-tracker.js +2 -3
- package/dist/seq-tracker.js.map +1 -1
- package/dist/transport.d.ts +9 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +262 -10
- package/dist/transport.js.map +1 -1
- package/dist/v2/session/keystore.d.ts +9 -0
- package/dist/v2/session/keystore.d.ts.map +1 -1
- package/dist/v2/session/keystore.js +60 -0
- package/dist/v2/session/keystore.js.map +1 -1
- package/dist/v2/session/session.d.ts +25 -2
- package/dist/v2/session/session.d.ts.map +1 -1
- package/dist/v2/session/session.js +77 -3
- package/dist/v2/session/session.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts.map
CHANGED
|
@@ -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
|
@@ -932,6 +932,13 @@ export class AUNClient {
|
|
|
932
932
|
catch (exc) {
|
|
933
933
|
this._clientLog.debug(`V2 post-membership propose failed (non-fatal): group=${groupId} err=${formatCaughtError(exc)}`);
|
|
934
934
|
}
|
|
935
|
+
// group.create / group.use_invite_code 成功后注册 group SPK
|
|
936
|
+
if (method === 'group.create' || method === 'group.use_invite_code') {
|
|
937
|
+
const callFn = async (m, ps) => this.call(m, ps);
|
|
938
|
+
this._v2Session.ensureGroupRegistered?.(groupId, callFn)?.catch(exc => {
|
|
939
|
+
this._clientLog.debug(`group SPK registration after ${method} failed (non-fatal): group=${groupId} err=${exc}`);
|
|
940
|
+
});
|
|
941
|
+
}
|
|
935
942
|
}
|
|
936
943
|
}
|
|
937
944
|
// message.pull 返回后的 seq 跟踪(V2 路径已在 call() 开头路由,此处为 plaintext pull 的 seq 跟踪)
|
|
@@ -1669,6 +1676,26 @@ export class AUNClient {
|
|
|
1669
1676
|
if (groupId) {
|
|
1670
1677
|
this._v2BootstrapCache.delete(`group:${groupId}`);
|
|
1671
1678
|
}
|
|
1679
|
+
// Group SPK 编排:成员变更触发注册/轮换
|
|
1680
|
+
if (this._v2Session && groupId) {
|
|
1681
|
+
const membershipActions = new Set([
|
|
1682
|
+
'member_added', 'member_left', 'member_removed', 'role_changed',
|
|
1683
|
+
'owner_transferred', 'joined', 'join_approved',
|
|
1684
|
+
]);
|
|
1685
|
+
if (membershipActions.has(action)) {
|
|
1686
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
1687
|
+
if (action === 'joined' || action === 'join_approved') {
|
|
1688
|
+
this._v2Session.ensureGroupRegistered?.(groupId, callFn)?.catch(exc => {
|
|
1689
|
+
this._clientLog.debug(`group SPK registration failed (non-fatal): group=${groupId} action=${action} err=${exc}`);
|
|
1690
|
+
});
|
|
1691
|
+
}
|
|
1692
|
+
else {
|
|
1693
|
+
this._v2Session.rotateGroupSPK?.(groupId, callFn)?.catch(exc => {
|
|
1694
|
+
this._clientLog.debug(`group SPK rotation failed (non-fatal): group=${groupId} action=${action} err=${exc}`);
|
|
1695
|
+
});
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1672
1699
|
if (groupId && action === 'upsert' && this._v2Session) {
|
|
1673
1700
|
this._safeAsync(this._v2AutoProposeState(groupId, { leaderDelay: true }));
|
|
1674
1701
|
}
|
|
@@ -3581,13 +3608,22 @@ export class AUNClient {
|
|
|
3581
3608
|
const result = isJsonObject(raw)
|
|
3582
3609
|
? { ...raw }
|
|
3583
3610
|
: { result: raw };
|
|
3584
|
-
|
|
3611
|
+
let actualAckSeq = seq;
|
|
3612
|
+
if ('effective_ack_seq' in result)
|
|
3613
|
+
actualAckSeq = Number(result.effective_ack_seq ?? 0);
|
|
3614
|
+
else if ('ack_seq' in result)
|
|
3615
|
+
actualAckSeq = Number(result.ack_seq ?? 0);
|
|
3616
|
+
else if ('cursor' in result)
|
|
3617
|
+
actualAckSeq = Number(result.cursor ?? 0);
|
|
3618
|
+
if (!Number.isFinite(actualAckSeq))
|
|
3619
|
+
actualAckSeq = seq;
|
|
3620
|
+
result.ack_seq = actualAckSeq;
|
|
3585
3621
|
result.success = true;
|
|
3586
3622
|
if (Number(result.acked ?? 0) === 0)
|
|
3587
|
-
result.acked =
|
|
3623
|
+
result.acked = actualAckSeq;
|
|
3588
3624
|
if (this._v2Session) {
|
|
3589
3625
|
try {
|
|
3590
|
-
const destroyed = await this._v2Session.maybeDestroyOldSPKs(
|
|
3626
|
+
const destroyed = await this._v2Session.maybeDestroyOldSPKs(actualAckSeq);
|
|
3591
3627
|
if (destroyed.length > 0) {
|
|
3592
3628
|
this._clientLog.info(`V2 destroyed old SPKs after ack: ${destroyed.slice(0, 3)} (PFS)`);
|
|
3593
3629
|
}
|
|
@@ -3614,18 +3650,51 @@ export class AUNClient {
|
|
|
3614
3650
|
this._clientLog.warn(`V2 decrypt: invalid envelope_json for msg seq=${String(msg.seq)}`);
|
|
3615
3651
|
return null;
|
|
3616
3652
|
}
|
|
3617
|
-
// 确定 spk_id
|
|
3653
|
+
// 确定 spk_id 和 recipient_key_source
|
|
3618
3654
|
let spkId = '';
|
|
3655
|
+
let recipientKeySource = '';
|
|
3619
3656
|
const recipientObj = envelope.recipient;
|
|
3620
3657
|
if (recipientObj && typeof recipientObj === 'object') {
|
|
3621
3658
|
spkId = String(recipientObj.spk_id ?? '');
|
|
3659
|
+
recipientKeySource = String(recipientObj.key_source ?? '');
|
|
3622
3660
|
}
|
|
3623
3661
|
else if (Array.isArray(envelope.recipients)) {
|
|
3624
3662
|
spkId = String(msg.spk_id ?? '');
|
|
3663
|
+
// 从 recipients 数组中查找本设备的 row 以获取 key_source
|
|
3664
|
+
if (!spkId) {
|
|
3665
|
+
for (const row of envelope.recipients) {
|
|
3666
|
+
if (Array.isArray(row) && row.length >= 6 && row[0] === this._aid && row[1] === this._deviceId) {
|
|
3667
|
+
spkId = String(row[5] ?? '');
|
|
3668
|
+
recipientKeySource = row.length > 3 ? String(row[3] ?? '') : '';
|
|
3669
|
+
break;
|
|
3670
|
+
}
|
|
3671
|
+
}
|
|
3672
|
+
}
|
|
3673
|
+
else {
|
|
3674
|
+
for (const row of envelope.recipients) {
|
|
3675
|
+
if (Array.isArray(row) && row.length >= 6 && row[0] === this._aid && row[1] === this._deviceId) {
|
|
3676
|
+
recipientKeySource = row.length > 3 ? String(row[3] ?? '') : '';
|
|
3677
|
+
break;
|
|
3678
|
+
}
|
|
3679
|
+
}
|
|
3680
|
+
}
|
|
3681
|
+
}
|
|
3682
|
+
// 根据 aad.group_id 判断使用 group SPK 还是 P2P SPK
|
|
3683
|
+
const aad = isJsonObject(envelope.aad) ? envelope.aad : {};
|
|
3684
|
+
const groupIdForKeys = String(msg.group_id ?? aad.group_id ?? envelope.group_id ?? '').trim();
|
|
3685
|
+
let ikPriv;
|
|
3686
|
+
let spkPriv;
|
|
3687
|
+
if (groupIdForKeys) {
|
|
3688
|
+
const keys = await session.getGroupDecryptKeys(groupIdForKeys, spkId);
|
|
3689
|
+
ikPriv = keys.ikPriv;
|
|
3690
|
+
spkPriv = keys.spkPriv;
|
|
3691
|
+
}
|
|
3692
|
+
else {
|
|
3693
|
+
const keys = await session.getDecryptKeys(spkId);
|
|
3694
|
+
ikPriv = keys.ikPriv;
|
|
3695
|
+
spkPriv = keys.spkPriv;
|
|
3625
3696
|
}
|
|
3626
|
-
const { ikPriv, spkPriv } = await session.getDecryptKeys(spkId);
|
|
3627
3697
|
const fromAid = String(msg.from_aid ?? '');
|
|
3628
|
-
const aad = envelope.aad ?? {};
|
|
3629
3698
|
const senderDeviceId = String(aad.from_device ?? '');
|
|
3630
3699
|
const senderPubDer = await this._getV2SenderPubDer(fromAid, senderDeviceId);
|
|
3631
3700
|
if (!senderPubDer) {
|
|
@@ -3660,15 +3729,23 @@ export class AUNClient {
|
|
|
3660
3729
|
}
|
|
3661
3730
|
if (plaintext == null)
|
|
3662
3731
|
return null;
|
|
3663
|
-
//
|
|
3664
|
-
if (session.
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3732
|
+
// 消费触发 SPK 轮换(fire-and-forget,不阻塞消息处理)
|
|
3733
|
+
if (groupIdForKeys && recipientKeySource === 'group_device_prekey' && session.isLastUploadedGroupSPK(groupIdForKeys, spkId)) {
|
|
3734
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
3735
|
+
session.rotateGroupSPK(groupIdForKeys, callFn).catch(exc => {
|
|
3736
|
+
this._clientLog.debug(`V2 group SPK rotation failed (non-fatal): group=${groupIdForKeys} err=${exc}`);
|
|
3737
|
+
});
|
|
3738
|
+
}
|
|
3739
|
+
else if (groupIdForKeys && recipientKeySource === 'peer_device_prekey') {
|
|
3740
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
3741
|
+
session.ensureGroupRegistered(groupIdForKeys, callFn).catch(exc => {
|
|
3742
|
+
this._clientLog.debug(`V2 group SPK registration after peer fallback failed (non-fatal): group=${groupIdForKeys} err=${exc}`);
|
|
3743
|
+
});
|
|
3744
|
+
}
|
|
3745
|
+
else if (!groupIdForKeys && session.isLastUploadedSPK(spkId)) {
|
|
3746
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
3747
|
+
session.rotateSPK(callFn).catch(exc => {
|
|
3748
|
+
this._clientLog.debug(`V2 SPK rotation failed (non-fatal): ${exc}`);
|
|
3672
3749
|
});
|
|
3673
3750
|
}
|
|
3674
3751
|
return {
|
|
@@ -4202,21 +4279,36 @@ export class AUNClient {
|
|
|
4202
4279
|
const session = this._v2Session;
|
|
4203
4280
|
if (!session || !opts.envelope)
|
|
4204
4281
|
return null;
|
|
4205
|
-
// 找到本设备所引用的 spk_id:根据 envelope.recipients 中 [aid, device_id, ..., spk_id]
|
|
4282
|
+
// 找到本设备所引用的 spk_id 和 key_source:根据 envelope.recipients 中 [aid, device_id, ..., spk_id]
|
|
4206
4283
|
let spkId = '';
|
|
4284
|
+
let recipientKeySource = '';
|
|
4207
4285
|
const recipients = opts.envelope.recipients;
|
|
4208
4286
|
if (Array.isArray(recipients)) {
|
|
4209
4287
|
for (const row of recipients) {
|
|
4210
4288
|
if (Array.isArray(row) && row.length >= 6) {
|
|
4211
4289
|
if (row[0] === this._aid && row[1] === this._deviceId) {
|
|
4212
4290
|
spkId = String(row[5] ?? '');
|
|
4291
|
+
recipientKeySource = row.length > 3 ? String(row[3] ?? '') : '';
|
|
4213
4292
|
break;
|
|
4214
4293
|
}
|
|
4215
4294
|
}
|
|
4216
4295
|
}
|
|
4217
4296
|
}
|
|
4218
|
-
|
|
4297
|
+
// 根据 aad.group_id 判断使用 group SPK 还是 P2P SPK
|
|
4219
4298
|
const aad = opts.envelope.aad ?? {};
|
|
4299
|
+
const groupIdForKeys = String(aad.group_id ?? opts.envelope.group_id ?? '').trim();
|
|
4300
|
+
let ikPriv;
|
|
4301
|
+
let spkPriv;
|
|
4302
|
+
if (groupIdForKeys) {
|
|
4303
|
+
const keys = await session.getGroupDecryptKeys(groupIdForKeys, spkId);
|
|
4304
|
+
ikPriv = keys.ikPriv;
|
|
4305
|
+
spkPriv = keys.spkPriv;
|
|
4306
|
+
}
|
|
4307
|
+
else {
|
|
4308
|
+
const keys = await session.getDecryptKeys(spkId);
|
|
4309
|
+
ikPriv = keys.ikPriv;
|
|
4310
|
+
spkPriv = keys.spkPriv;
|
|
4311
|
+
}
|
|
4220
4312
|
const fromAid = String(opts.fromAid || aad.from || '').trim();
|
|
4221
4313
|
const senderDeviceId = String(aad.from_device ?? '');
|
|
4222
4314
|
const senderPubDer = await this._getV2SenderPubDer(fromAid, senderDeviceId);
|
|
@@ -4225,7 +4317,23 @@ export class AUNClient {
|
|
|
4225
4317
|
return null;
|
|
4226
4318
|
}
|
|
4227
4319
|
try {
|
|
4228
|
-
|
|
4320
|
+
const plaintext = await decryptMessage(opts.envelope, this._aid ?? '', this._deviceId, ikPriv, spkPriv, senderPubDer);
|
|
4321
|
+
// 消费触发 SPK 轮换(与 _decryptV2Message 对齐)
|
|
4322
|
+
if (plaintext != null) {
|
|
4323
|
+
if (groupIdForKeys && recipientKeySource === 'group_device_prekey' && session.isLastUploadedGroupSPK(groupIdForKeys, spkId)) {
|
|
4324
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
4325
|
+
session.rotateGroupSPK(groupIdForKeys, callFn).catch(exc => {
|
|
4326
|
+
this._clientLog.debug(`V2 thought group SPK rotation failed (non-fatal): group=${groupIdForKeys} err=${exc}`);
|
|
4327
|
+
});
|
|
4328
|
+
}
|
|
4329
|
+
else if (groupIdForKeys && recipientKeySource === 'peer_device_prekey') {
|
|
4330
|
+
const callFn = async (method, params) => this.call(method, params);
|
|
4331
|
+
session.ensureGroupRegistered(groupIdForKeys, callFn).catch(exc => {
|
|
4332
|
+
this._clientLog.debug(`V2 thought group SPK registration after peer fallback failed (non-fatal): group=${groupIdForKeys} err=${exc}`);
|
|
4333
|
+
});
|
|
4334
|
+
}
|
|
4335
|
+
}
|
|
4336
|
+
return plaintext;
|
|
4229
4337
|
}
|
|
4230
4338
|
catch (exc) {
|
|
4231
4339
|
this._clientLog.warn(`V2 thought decrypt failed from=${fromAid}: ${String(exc)}`);
|
|
@@ -4816,27 +4924,79 @@ export class AUNClient {
|
|
|
4816
4924
|
async _onV2PushNotification(data) {
|
|
4817
4925
|
if (!this._v2Session)
|
|
4818
4926
|
return;
|
|
4819
|
-
//
|
|
4820
|
-
|
|
4927
|
+
// 提取 push 通知中的元数据
|
|
4928
|
+
const pushSeq = isJsonObject(data) ? Number(data.seq ?? 0) || 0 : 0;
|
|
4929
|
+
const pushFrom = isJsonObject(data) ? String(data.from_aid ?? '') : '';
|
|
4930
|
+
const pushMsgId = isJsonObject(data) ? String(data.message_id ?? '') : '';
|
|
4931
|
+
const envelopeJson = isJsonObject(data) ? data.envelope_json : undefined;
|
|
4932
|
+
const ns = this._aid ? `p2p:${this._aid}` : '';
|
|
4933
|
+
const contigBefore = ns ? this._seqTracker.getContiguousSeq(ns) : 0;
|
|
4934
|
+
this._clientLog.debug(`_onV2PushNotification: push_seq=${pushSeq || 'null'} push_from=${pushFrom} push_msg_id=${pushMsgId} has_payload=${!!envelopeJson} contiguous_seq=${contigBefore}`);
|
|
4935
|
+
// ── 带 payload 的 push:尝试就地解密 ──
|
|
4936
|
+
if (envelopeJson && pushSeq > 0 && ns) {
|
|
4937
|
+
try {
|
|
4938
|
+
const decrypted = await this._decryptV2Message(data);
|
|
4939
|
+
if (decrypted) {
|
|
4940
|
+
// 解密成功:contiguous_seq 上界 = push_seq
|
|
4941
|
+
this._seqTracker.onMessageSeq(ns, pushSeq);
|
|
4942
|
+
if (pushSeq === contigBefore + 1) {
|
|
4943
|
+
this._seqTracker.forceContiguousSeq(ns, pushSeq);
|
|
4944
|
+
}
|
|
4945
|
+
await this._publishOrderedMessage('message.received', ns, pushSeq, decrypted);
|
|
4946
|
+
const newContig = this._seqTracker.getContiguousSeq(ns);
|
|
4947
|
+
if (newContig !== contigBefore) {
|
|
4948
|
+
this._saveSeqTrackerState();
|
|
4949
|
+
}
|
|
4950
|
+
if (newContig > 0 && newContig !== contigBefore) {
|
|
4951
|
+
this._transport.call('message.v2.ack', { up_to_seq: newContig })
|
|
4952
|
+
.catch(e => this._clientLog.debug(`V2 P2P push-ack failed: ${e}`));
|
|
4953
|
+
}
|
|
4954
|
+
this._clientLog.debug(`_onV2PushNotification: push 带 payload 解密成功, contiguous_seq=${contigBefore}->${newContig} push_seq=${pushSeq}`);
|
|
4955
|
+
return;
|
|
4956
|
+
}
|
|
4957
|
+
}
|
|
4958
|
+
catch (exc) {
|
|
4959
|
+
this._clientLog.debug(`_onV2PushNotification: push payload 解密失败, fallback to pull: ${exc}`);
|
|
4960
|
+
}
|
|
4961
|
+
}
|
|
4962
|
+
// ── 不带 payload 或解密失败:标记上界并触发 pull ──
|
|
4963
|
+
if (pushSeq > 0 && ns) {
|
|
4964
|
+
if (pushSeq <= contigBefore) {
|
|
4965
|
+
// 消息已在有序队列中,直接回播
|
|
4966
|
+
this._clientLog.debug(`_onV2PushNotification: push_seq=${pushSeq} <= contiguous_seq=${contigBefore}, 回播有序队列`);
|
|
4967
|
+
try {
|
|
4968
|
+
await this._drainOrderedMessages(ns);
|
|
4969
|
+
}
|
|
4970
|
+
catch (exc) {
|
|
4971
|
+
this._clientLog.warn(`V2 push drain ordered messages failed: ${exc}`);
|
|
4972
|
+
}
|
|
4973
|
+
return;
|
|
4974
|
+
}
|
|
4975
|
+
else {
|
|
4976
|
+
// 不带 payload:上界 = push_seq - 1(push_seq 本身还需要 pull)
|
|
4977
|
+
this._seqTracker.onMessageSeq(ns, pushSeq);
|
|
4978
|
+
this._clientLog.debug(`_onV2PushNotification: 纯通知 push_seq=${pushSeq} > contiguous_seq=${contigBefore}, 标记上界(seq-1=${pushSeq - 1}) 触发 pull`);
|
|
4979
|
+
}
|
|
4980
|
+
}
|
|
4981
|
+
// only one in flight + drain pending
|
|
4821
4982
|
if (this._v2PullInflight) {
|
|
4822
4983
|
this._v2PullPending = true;
|
|
4823
4984
|
return;
|
|
4824
4985
|
}
|
|
4825
4986
|
this._v2PullInflight = true;
|
|
4826
|
-
// 同时标记 gapFillDone,阻止 _fillP2pGap 并发
|
|
4827
|
-
const ns = this._aid ? `p2p:${this._aid}` : '';
|
|
4828
4987
|
const dedupKey = `p2p_pull:${ns}`;
|
|
4829
4988
|
this._gapFillDone.add(dedupKey);
|
|
4830
4989
|
try {
|
|
4831
4990
|
do {
|
|
4832
4991
|
this._v2PullPending = false;
|
|
4833
|
-
// pullV2 内部已经走 _publishOrderedMessage 发布去重
|
|
4834
|
-
// 这里不需再次 publish,否则会双重派发
|
|
4835
4992
|
await this.pullV2();
|
|
4993
|
+
const newContig = ns ? this._seqTracker.getContiguousSeq(ns) : -1;
|
|
4994
|
+
this._clientLog.debug(`_onV2PushNotification pull done: contiguous_seq=${contigBefore}->${newContig} (push_seq=${pushSeq || 'null'})`);
|
|
4836
4995
|
} while (this._v2PullPending);
|
|
4837
4996
|
}
|
|
4838
4997
|
catch (exc) {
|
|
4839
|
-
this.
|
|
4998
|
+
const newContig = ns ? this._seqTracker.getContiguousSeq(ns) : -1;
|
|
4999
|
+
this._clientLog.warn(`V2 push auto-pull failed: contiguous_seq=${contigBefore}->${newContig} err=${exc}`);
|
|
4840
5000
|
}
|
|
4841
5001
|
finally {
|
|
4842
5002
|
this._v2PullInflight = false;
|