@agentunion/fastaun-browser 0.3.0 → 0.3.2

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/dist/transport.js CHANGED
@@ -1,9 +1,170 @@
1
1
  // ── RPC Transport(浏览器原生 WebSocket)──────────────────
2
- import { ConnectionError, SerializationError, TimeoutError, mapRemoteError, } from './errors.js';
2
+ import { ConnectionError, SerializationError, TimeoutError, ValidationError, mapRemoteError, } from './errors.js';
3
3
  import { isJsonObject } from './types.js';
4
+ const MAX_WS_PAYLOAD_SIZE = 1_000_000;
4
5
  const _noopLog = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { } };
5
6
  /** RPC 请求递增计数器,避免 Date.now() 高并发碰撞 */
6
7
  let _rpcIdCounter = 0;
8
+ // ── Trace 树状展示 ─────────────────────────────────────────────
9
+ const TRACE_SPAN_DETAIL_FIELDS = [
10
+ 'method', 'route', 'namespace', 'instance_id', 'aid', 'caller_aid',
11
+ 'peer_aid', 'to_aid', 'from_aid', 'group_id', 'message_id', 'event',
12
+ 'status', 'error_code', 'error_msg', 'found', 'delivered_count',
13
+ 'success', 'created', 'connection_id', 'device_id', 'slot_id',
14
+ 'key_source', 'spk_id', 'curve', 'lifecycle_state', 'auth_method',
15
+ ];
16
+ /** 按因果顺序排序 trace spans(不依赖绝对 ts,避免跨进程时钟偏差) */
17
+ function sortTraceSpansForDisplay(spans) {
18
+ const indexed = spans
19
+ .map((span, idx) => ({ idx, span }))
20
+ .filter(({ span }) => span !== null && typeof span === 'object');
21
+ indexed.sort((a, b) => {
22
+ const stageA = _spanStage(a.span);
23
+ const stageB = _spanStage(b.span);
24
+ if (stageA !== stageB)
25
+ return stageA - stageB;
26
+ return a.idx - b.idx;
27
+ });
28
+ return indexed.map(({ span }) => span);
29
+ }
30
+ function _spanStage(span) {
31
+ const node = String(span.node ?? '');
32
+ const action = String(span.action ?? 'process');
33
+ if (node === 'sdk' && action === 'send')
34
+ return 0;
35
+ if (node === 'gateway' && (action === 'relay_in' || action === 'enter'))
36
+ return 10;
37
+ if (node === 'gateway' && (action === 'relay_out' || action === 'exit'))
38
+ return 90;
39
+ if (node === 'sdk' && action === 'recv')
40
+ return 100;
41
+ return 50;
42
+ }
43
+ /** 生成单调逻辑时间偏移(以 sdk.send 为 0 点,sdk.recv 为总耗时) */
44
+ function traceLogicalOffsets(spans) {
45
+ let totalMs = null;
46
+ for (const span of spans) {
47
+ if (span.node === 'sdk' && span.action === 'recv') {
48
+ const ms = span.ms;
49
+ if (typeof ms === 'number' && ms >= 0) {
50
+ totalMs = Math.round(ms);
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ const serverTs = [];
56
+ for (const span of spans) {
57
+ if (span.node !== 'sdk' && typeof span.ts === 'number' && span.ts > 0) {
58
+ serverTs.push(Math.round(span.ts));
59
+ }
60
+ }
61
+ const serverMin = serverTs.length > 0 ? Math.min(...serverTs) : null;
62
+ const serverMax = serverTs.length > 0 ? Math.max(...serverTs) : null;
63
+ const serverDur = (serverMin !== null && serverMax !== null) ? serverMax - serverMin : 0;
64
+ let serverBase;
65
+ let serverScale;
66
+ if (totalMs !== null && serverMin !== null) {
67
+ if (serverDur > totalMs && serverDur > 0) {
68
+ serverBase = 0;
69
+ serverScale = totalMs / serverDur;
70
+ }
71
+ else {
72
+ serverBase = Math.max(0, totalMs - serverDur);
73
+ serverScale = 1.0;
74
+ }
75
+ }
76
+ else {
77
+ serverBase = 0;
78
+ serverScale = 1.0;
79
+ }
80
+ const offsets = [];
81
+ let lastOffset = 0;
82
+ for (let idx = 0; idx < spans.length; idx++) {
83
+ const span = spans[idx];
84
+ const node = span.node;
85
+ const action = span.action;
86
+ const ts = span.ts;
87
+ let offset;
88
+ if (node === 'sdk' && action === 'send') {
89
+ offset = 0;
90
+ }
91
+ else if (node === 'sdk' && action === 'recv' && totalMs !== null) {
92
+ offset = totalMs;
93
+ }
94
+ else if (node !== 'sdk' && serverMin !== null && typeof ts === 'number' && ts > 0) {
95
+ offset = Math.round(serverBase + (Math.round(ts) - serverMin) * serverScale);
96
+ }
97
+ else {
98
+ offset = idx === 0 ? 0 : lastOffset;
99
+ }
100
+ if (offset < lastOffset)
101
+ offset = lastOffset;
102
+ offsets.push(offset);
103
+ lastOffset = offset;
104
+ }
105
+ return offsets;
106
+ }
107
+ /** 格式化 span 的业务字段为 key=value 字符串 */
108
+ function formatTraceFields(span) {
109
+ const parts = [];
110
+ for (const key of TRACE_SPAN_DETAIL_FIELDS) {
111
+ const value = span[key];
112
+ if (value === undefined || value === null || value === '')
113
+ continue;
114
+ let s = String(value);
115
+ if (s.length > 48)
116
+ s = s.slice(0, 45) + '...';
117
+ parts.push(`${key}=${s}`);
118
+ }
119
+ return parts.join(' ');
120
+ }
121
+ /** 将 span 列表格式化为树状结构字符串 */
122
+ function formatTraceTree(spans) {
123
+ if (!spans || spans.length === 0)
124
+ return '';
125
+ const sortedSpans = sortTraceSpansForDisplay(spans);
126
+ const offsets = traceLogicalOffsets(sortedSpans);
127
+ const lines = [];
128
+ const stack = [];
129
+ for (let idx = 0; idx < sortedSpans.length; idx++) {
130
+ const span = sortedSpans[idx];
131
+ const node = String(span.node ?? '?');
132
+ const action = String(span.action ?? 'process');
133
+ const timePart = ` +${offsets[idx]}ms`;
134
+ if (action === 'enter') {
135
+ const indent = ' '.repeat(stack.length);
136
+ const fieldsStr = formatTraceFields(span);
137
+ const detail = fieldsStr ? ` ${fieldsStr}` : '';
138
+ lines.push(`${indent}├─ ${node}.enter${detail}${timePart}`);
139
+ stack.push({ node, span });
140
+ }
141
+ else if (action === 'exit') {
142
+ if (stack.length > 0 && stack[stack.length - 1].node === node) {
143
+ stack.pop();
144
+ }
145
+ const indent = ' '.repeat(stack.length);
146
+ const dur = span.ms ?? 0;
147
+ const fieldsStr = formatTraceFields(span);
148
+ const detail = fieldsStr ? ` ${fieldsStr}` : '';
149
+ lines.push(`${indent}└─ ${node}.exit${detail} dur=${dur}ms${timePart}`);
150
+ }
151
+ else {
152
+ const indent = ' '.repeat(stack.length);
153
+ const fieldsStr = formatTraceFields(span);
154
+ const dur = span.ms;
155
+ const durPart = dur !== undefined && dur !== null ? ` dur=${dur}ms` : '';
156
+ const detail = fieldsStr ? ` ${fieldsStr}` : '';
157
+ lines.push(`${indent}├─ ${node}.${action}${detail}${durPart}${timePart}`);
158
+ }
159
+ }
160
+ return lines.join('\n');
161
+ }
162
+ /** 格式化完整 trace 展示(header + tree) */
163
+ function traceDisplay(method, status, durationMs, trace, spans) {
164
+ const tree = formatTraceTree(spans);
165
+ const header = `[TRACE][${method}][${status}] total=${durationMs}ms trace_id=${String(trace.trace_id ?? '')}`;
166
+ return tree ? `${header}\n${tree}` : header;
167
+ }
7
168
  /** 协议事件名映射 */
8
169
  const EVENT_NAME_MAP = {
9
170
  'message.received': 'message.received',
@@ -81,6 +242,10 @@ export class RPCTransport {
81
242
  // Gateway 在 RPC envelope 注入 _meta 字段(与 result 同级),由 client 层 observer 接收。
82
243
  // 注入失败 / 字段缺失时 observer 不会被调用,不影响业务路径。
83
244
  _metaObserver = null;
245
+ // Trace 模式:off / log / diag
246
+ _traceMode = 'off';
247
+ // Trace observer:observer(traceInfo) 在每次 RPC/事件携带 _trace 时调用
248
+ _traceObserver = null;
84
249
  constructor(opts) {
85
250
  this._dispatcher = opts.eventDispatcher;
86
251
  this._timeout = opts.timeout ?? 10;
@@ -99,6 +264,17 @@ export class RPCTransport {
99
264
  setMetaObserver(observer) {
100
265
  this._metaObserver = observer;
101
266
  }
267
+ /** 设置 trace 模式:off / log / diag */
268
+ setTraceMode(mode) {
269
+ if (mode !== 'off' && mode !== 'log' && mode !== 'diag') {
270
+ throw new ValidationError(`invalid trace mode: ${mode}, must be off/log/diag`);
271
+ }
272
+ this._traceMode = mode;
273
+ }
274
+ /** 注册 trace observer;observer(traceInfo) 在每次 RPC/事件携带 _trace 时调用。 */
275
+ setTraceObserver(observer) {
276
+ this._traceObserver = observer;
277
+ }
102
278
  /** 获取连接时收到的 challenge */
103
279
  get challenge() {
104
280
  return this._challenge;
@@ -195,7 +371,7 @@ export class RPCTransport {
195
371
  * 发起 JSON-RPC 2.0 调用。
196
372
  * 返回 result 字段的值;若有 error 字段则抛出映射后的错误。
197
373
  */
198
- async call(method, params, timeout) {
374
+ async call(method, params, timeout, trace) {
199
375
  if (this._closed || !this._ws) {
200
376
  throw new ConnectionError('transport not connected');
201
377
  }
@@ -203,18 +379,41 @@ export class RPCTransport {
203
379
  const rpcId = `rpc-${String(++_rpcIdCounter).padStart(6, '0')}`;
204
380
  const effectiveTimeout = (timeout ?? this._timeout) * 1000;
205
381
  const tStart = Date.now();
382
+ // 注入 _trace(会话级或调用级 mode 非 off 时)
383
+ const effectiveTraceMode = (trace === 'off' || trace === 'log' || trace === 'diag') ? trace : this._traceMode;
384
+ let traceId = '';
385
+ let sendParams = params ?? {};
386
+ if (effectiveTraceMode !== 'off') {
387
+ // 浏览器环境使用 crypto.randomUUID 或 Math.random 生成 trace_id
388
+ traceId = typeof crypto !== 'undefined' && crypto.randomUUID
389
+ ? crypto.randomUUID().replace(/-/g, '')
390
+ : Array.from({ length: 32 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
391
+ sendParams = { ...(params ?? {}) };
392
+ const tracePayload = { trace_id: traceId, mode: effectiveTraceMode };
393
+ if (effectiveTraceMode === 'diag') {
394
+ tracePayload.spans = [{ node: 'sdk', ts: tStart, action: 'send' }];
395
+ }
396
+ sendParams._trace = tracePayload;
397
+ this._log.info(`[trace=${traceId}] rpc_send method=${method} rpc_id=${rpcId}`);
398
+ }
206
399
  const promise = new Promise((resolve, reject) => {
207
400
  this._pending.set(rpcId, { resolve, reject });
208
401
  });
209
402
  // 发送请求
403
+ const payload = JSON.stringify({
404
+ jsonrpc: '2.0',
405
+ id: rpcId,
406
+ method,
407
+ params: sendParams,
408
+ });
409
+ const payloadSize = new TextEncoder().encode(payload).length;
410
+ if (payloadSize > MAX_WS_PAYLOAD_SIZE) {
411
+ this._pending.delete(rpcId);
412
+ throw new ValidationError('payload is too large');
413
+ }
210
414
  try {
211
- this._ws.send(JSON.stringify({
212
- jsonrpc: '2.0',
213
- id: rpcId,
214
- method,
215
- params: params ?? {},
216
- }));
217
- this._log.debug(`RPC request sent: method=${method}, id=${rpcId} ${summarizeDict(params, DIAG_PARAM_FIELDS)}`);
415
+ this._ws.send(payload);
416
+ this._log.debug(`RPC request sent: method=${method}, id=${rpcId} ${summarizeDict(sendParams, DIAG_PARAM_FIELDS)}`);
218
417
  }
219
418
  catch (exc) {
220
419
  this._pending.delete(rpcId);
@@ -235,12 +434,23 @@ export class RPCTransport {
235
434
  const elapsed = Date.now() - tStart;
236
435
  if (response.error !== undefined) {
237
436
  this._log.debug(`RPC error response: method=${method}, id=${rpcId}, elapsed=${elapsed}ms, error=${JSON.stringify(response.error)}`);
437
+ if (traceId) {
438
+ this._log.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=error`);
439
+ }
440
+ // 处理 error 路径的 _trace
441
+ const respTrace = response._trace;
442
+ if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
443
+ this._handleResponseTrace(method, 'error', elapsed, respTrace);
444
+ }
238
445
  throw mapRemoteError(response.error);
239
446
  }
240
447
  if (response.result === undefined) {
241
448
  throw new SerializationError(`rpc response missing result and error: ${method}`);
242
449
  }
243
450
  this._log.debug(`RPC response ok: method=${method}, id=${rpcId}, elapsed=${elapsed}ms ${summarizeDict(response.result, DIAG_RESULT_FIELDS)}`);
451
+ if (traceId) {
452
+ this._log.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=ok`);
453
+ }
244
454
  // 透传 envelope._meta 给 observer(与业务无关,注入失败被吞,不影响 result 返回)。
245
455
  if (this._metaObserver !== null) {
246
456
  const meta = response._meta;
@@ -253,6 +463,11 @@ export class RPCTransport {
253
463
  }
254
464
  }
255
465
  }
466
+ // 处理 success 路径的 _trace
467
+ const respTrace = response._trace;
468
+ if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
469
+ this._handleResponseTrace(method, 'ok', elapsed, respTrace);
470
+ }
256
471
  return response.result;
257
472
  }
258
473
  finally {
@@ -261,6 +476,27 @@ export class RPCTransport {
261
476
  }
262
477
  }
263
478
  }
479
+ /** 处理 RPC 响应中的 _trace 字段:追加 sdk.recv span,格式化输出,通知 observer */
480
+ _handleResponseTrace(method, status, elapsedMs, respTrace) {
481
+ try {
482
+ const sdkRecvSpan = {
483
+ node: 'sdk',
484
+ ts: Date.now(),
485
+ action: 'recv',
486
+ ms: elapsedMs,
487
+ };
488
+ const existingSpans = Array.isArray(respTrace.spans) ? respTrace.spans : [];
489
+ const spans = [...existingSpans, sdkRecvSpan];
490
+ const enriched = { ...respTrace, spans };
491
+ this._log.info(traceDisplay(method, status, elapsedMs, respTrace, spans));
492
+ if (this._traceObserver !== null) {
493
+ this._traceObserver({ type: 'rpc', method, trace: enriched, status, duration_ms: elapsedMs });
494
+ }
495
+ }
496
+ catch (err) {
497
+ this._log.debug(`trace handling raised: ${err instanceof Error ? err.message : String(err)}`);
498
+ }
499
+ }
264
500
  // ── 内部消息处理 ──────────────────────────────────
265
501
  _handleMessage(data) {
266
502
  try {
@@ -316,8 +552,24 @@ export class RPCTransport {
316
552
  const protocolEvent = method.slice(6);
317
553
  const sdkEvent = EVENT_NAME_MAP[protocolEvent] ?? protocolEvent;
318
554
  this._log.debug(`event recv: event=${sdkEvent} ${summarizeDict(message.params, DIAG_RESULT_FIELDS)}`);
555
+ // 提取事件中的 _trace 并回调 observer,然后从 params 中剥离
556
+ const params = (message.params ?? {});
557
+ if ('_trace' in params) {
558
+ const eventTrace = params._trace;
559
+ delete params._trace;
560
+ if (eventTrace && typeof eventTrace === 'object' && !Array.isArray(eventTrace)) {
561
+ if (this._traceObserver !== null) {
562
+ try {
563
+ this._traceObserver({ type: 'event', event: sdkEvent, trace: eventTrace });
564
+ }
565
+ catch { /* observer 抛错被吞 */ }
566
+ }
567
+ const traceObj = eventTrace;
568
+ this._log.info(`[trace=${String(traceObj.trace_id ?? '')}] event_recv event=${sdkEvent}`);
569
+ }
570
+ }
319
571
  // 发布为 _raw.{event},由 AUNClient 处理后再发布用户可见的事件
320
- this._dispatcher.publish(`_raw.${sdkEvent}`, message.params ?? {});
572
+ this._dispatcher.publish(`_raw.${sdkEvent}`, params);
321
573
  return;
322
574
  }
323
575
  // 其他通知
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,15 @@ export declare class V2KeyStore {
37
37
  /** 返回最近 N 代 SPK 的 spk_id(按 created_at DESC)。 */
38
38
  listRecentSPKIds(deviceId: string, n: number): Promise<string[]>;
39
39
  listExpiredSPKIds(deviceId: string, maxAgeMs: number): Promise<string[]>;
40
+ private static _groupSpkKeyId;
41
+ saveGroupSPK(deviceId: string, groupId: string, spkId: string, priv: Uint8Array, pubDer: Uint8Array): Promise<void>;
42
+ loadGroupSPK(deviceId: string, groupId: string, spkId: string): Promise<Uint8Array | null>;
43
+ /** 取指定群最新 group SPK(按 created_at DESC,key_id 前缀匹配)。 */
44
+ loadCurrentGroupSPK(deviceId: string, groupId: string): Promise<{
45
+ spkId: string;
46
+ priv: Uint8Array;
47
+ pubDer: Uint8Array;
48
+ } | null>;
40
49
  saveIK(deviceId: string, priv: Uint8Array, pubDer: Uint8Array): Promise<void>;
41
50
  loadIK(deviceId: string): Promise<{
42
51
  priv: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAaxE;;;;;GAKG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,WAAW;IAE5C,6BAA6B;WAChB,IAAI,CAAC,MAAM,GAAE,MAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBnE,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,KAAK;IAMP,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;IAgBV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY1E,0CAA0C;IACpC,cAAc,CAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAyBpE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,gDAAgD;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0BxE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E,MAAM,CACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAe3D,oBAAoB;IACd,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
1
+ {"version":3,"file":"keystore.d.ts","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,UAAU,WAAW,CAAC;AACnC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAaxE;;;;;GAKG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,WAAW;IAE5C,6BAA6B;WAChB,IAAI,CAAC,MAAM,GAAE,MAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBnE,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,KAAK;IAMP,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;IAgBV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY1E,0CAA0C;IACpC,cAAc,CAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAyBpE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,gDAAgD;IAC1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0B9E,OAAO,CAAC,MAAM,CAAC,cAAc;IAIvB,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;IAgBV,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY7B,uDAAuD;IACjD,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAkCpE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E,MAAM,CACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAe3D,oBAAoB;IACd,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
@@ -145,6 +145,66 @@ export class V2KeyStore {
145
145
  req.onerror = () => reject(req.error);
146
146
  });
147
147
  }
148
+ // ---------- Group SPK ----------
149
+ static _groupSpkKeyId(groupId, spkId) {
150
+ return `${groupId}\0${spkId}`;
151
+ }
152
+ async saveGroupSPK(deviceId, groupId, spkId, priv, pubDer) {
153
+ const record = {
154
+ device_id: deviceId,
155
+ key_type: 'group_spk',
156
+ key_id: V2KeyStore._groupSpkKeyId(groupId, spkId),
157
+ private_key: priv,
158
+ public_key: pubDer,
159
+ created_at: Date.now(),
160
+ };
161
+ return new Promise((resolve, reject) => {
162
+ const req = this.store('readwrite').put(record);
163
+ req.onsuccess = () => resolve();
164
+ req.onerror = () => reject(req.error);
165
+ });
166
+ }
167
+ async loadGroupSPK(deviceId, groupId, spkId) {
168
+ const keyId = V2KeyStore._groupSpkKeyId(groupId, spkId);
169
+ return new Promise((resolve, reject) => {
170
+ const req = this.store('readonly').get([deviceId, 'group_spk', keyId]);
171
+ req.onsuccess = () => {
172
+ const r = req.result;
173
+ resolve(r ? new Uint8Array(r.private_key) : null);
174
+ };
175
+ req.onerror = () => reject(req.error);
176
+ });
177
+ }
178
+ /** 取指定群最新 group SPK(按 created_at DESC,key_id 前缀匹配)。 */
179
+ async loadCurrentGroupSPK(deviceId, groupId) {
180
+ const prefix = `${groupId}\0`;
181
+ return new Promise((resolve, reject) => {
182
+ const idx = this.store('readonly').index(V2_INDEX_BY_DEVICE_TYPE_CREATED);
183
+ const range = IDBKeyRange.bound([deviceId, 'group_spk', -Infinity], [deviceId, 'group_spk', Infinity]);
184
+ const req = idx.openCursor(range, 'prev');
185
+ req.onsuccess = () => {
186
+ const cursor = req.result;
187
+ if (!cursor) {
188
+ resolve(null);
189
+ return;
190
+ }
191
+ const r = cursor.value;
192
+ if (r.key_id.startsWith(prefix)) {
193
+ const spkId = r.key_id.slice(prefix.length);
194
+ resolve({
195
+ spkId,
196
+ priv: new Uint8Array(r.private_key),
197
+ pubDer: new Uint8Array(r.public_key),
198
+ });
199
+ }
200
+ else {
201
+ // 继续遍历,找到匹配前缀的记录
202
+ cursor.continue();
203
+ }
204
+ };
205
+ req.onerror = () => reject(req.error);
206
+ });
207
+ }
148
208
  // ---------- IK ----------
149
209
  async saveIK(deviceId, priv, pubDer) {
150
210
  const record = {
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,8 @@ export declare class V2Session {
46
46
  private _spkPriv?;
47
47
  private _spkPubDer?;
48
48
  private _registered;
49
+ private _lastUploadedSPKId;
50
+ private _lastUploadedGroupSPKIds;
49
51
  private _peerIKCache;
50
52
  private _verifiedSPKs;
51
53
  private _oldSPKMaxSeq;
@@ -80,16 +82,37 @@ export declare class V2Session {
80
82
  /** 跟踪每个旧 SPK 引用的最大 seq(用于销毁判定)。 */
81
83
  trackOldSPKMaxSeq(spkId: string, seq: number): void;
82
84
  /**
83
- * contig_seq 已覆盖、超过 7h 安全窗口、且不在最近 7 代保留窗口内时销毁。
85
+ * contig_seq 已覆盖、超过 7 天安全窗口、且不在最近 7 代保留窗口内时销毁。
84
86
  *
85
87
  * 销毁条件(全部满足才销毁):
86
88
  * - contig_seq >= 该 SPK 引用的最大 seq
87
- * - 自最后一次见到该 spk_id 引用 >= 7 小时
89
+ * - 自最后一次见到该 spk_id 引用 >= 7
88
90
  * - 不在最近 7 代 SPK 保留窗口内
89
91
  */
90
92
  maybeDestroyOldSPKs(contigSeq: number): Promise<string[]>;
91
93
  /** 轮换 SPK:生成新 SPK 并上报到服务端。旧 SPK 保留本地用于解密。 */
92
94
  rotateSPK(callFn: CallFn): Promise<void>;
95
+ /** 判断 spkId 是否为本进程最后一次成功上传的 P2P SPK。 */
96
+ isLastUploadedSPK(spkId: string | null | undefined): boolean;
97
+ /** 判断 spkId 是否为本进程在该群最后一次成功上传的 group SPK。 */
98
+ isLastUploadedGroupSPK(groupId: string, spkId: string | null | undefined): boolean;
99
+ /** 确保指定群有独立 group SPK,返回 { spkId, priv, pubDer }。 */
100
+ ensureGroupSPK(groupId: string): Promise<{
101
+ spkId: string;
102
+ priv: Uint8Array;
103
+ pubDer: Uint8Array;
104
+ }>;
105
+ /** 注册指定群的 group SPK。group 服务负责成员鉴权。 */
106
+ ensureGroupRegistered(groupId: string, callFn: CallFn): Promise<void>;
107
+ /** 轮换指定群的 group SPK,保留旧私钥用于缓存窗口内的历史 wrap 解密。 */
108
+ rotateGroupSPK(groupId: string, callFn: CallFn): Promise<{
109
+ spkId: string;
110
+ priv: Uint8Array;
111
+ pubDer: Uint8Array;
112
+ }>;
113
+ /** 群消息解密优先查 group SPK;找不到时 fallback 旧 P2P SPK 兼容历史消息。 */
114
+ getGroupDecryptKeys(groupId: string, spkId: string | null | undefined): Promise<DecryptKeys>;
115
+ private _publishGroupSPK;
93
116
  cachePeerIK(peerAid: string, deviceId: string, ikPubDer: Uint8Array): void;
94
117
  getPeerIK(peerAid: string, deviceId: string): Uint8Array | null;
95
118
  isPeerSPKVerified(peerAid: string, deviceId: string, spkId: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/v2/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/v2/session/session.ts"],"names":[],"mappings":"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"}