@agentunion/fastaun 0.5.20 → 0.5.21
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 +47 -0
- package/_packed_docs/CHANGELOG.md +47 -0
- package/_packed_docs/INDEX.md +453 -440
- package/_packed_docs/KITE_DOCS_GUIDE.md +164 -161
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/344/270/216/346/215/242owner/347/274/226/346/216/222/346/226/271/346/241/210.md +530 -0
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/345/256/214/346/225/264/350/256/276/350/256/241/344/270/216/345/256/236/346/226/275/350/256/241/345/210/222.md +685 -0
- package/_packed_docs/agent.md/working/agent.md-schema/344/270/216/347/255/276/345/217/221/351/252/214/347/255/276/346/265/201/347/250/213/346/276/204/346/270/205.md +349 -0
- package/_packed_docs/agent.md/working//346/234/254/345/234/260Docker/346/265/213/350/257/225Bug/346/270/205/345/215/225.md +40 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1433 -1392
- package/_packed_docs/protocol/08-AUN-E2EE.md +17 -12
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +2 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.1.md +666 -658
- package/_packed_docs/sdk/0.5.21-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +368 -0
- package/_packed_docs/sdk/0.5.21-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +350 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +1 -1
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +5 -1
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +64 -64
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +4 -1
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +42 -39
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +147 -14
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +48 -47
- package/_packed_docs/sdk/09-group-rpc-manual.md +5 -2
- package/_packed_docs/sdk/09-message-rpc-manual.md +250 -160
- package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +71 -0
- package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +88 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +134 -130
- package/_packed_docs/sdk/INDEX.md +239 -221
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +930 -922
- package/_packed_docs/sdk/Ownership2.1-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +106 -43
- package/_packed_docs/sdk/Ownership2.1-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +180 -9
- package/_packed_docs/sdk/Ownership2.1-TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +708 -708
- package/_packed_docs/sdk/Ownership2.1/350/257/246/347/273/206/350/256/276/350/256/241.md +480 -476
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +1 -1
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +2 -2
- package/dist/agent-md-schema.js +6 -4
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +22 -2
- package/dist/agent-md.js +84 -67
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +13 -0
- package/dist/aid-store.js +50 -15
- package/dist/aid-store.js.map +1 -1
- package/dist/auth.js +4 -0
- package/dist/auth.js.map +1 -1
- package/dist/cert-utils.d.ts +1 -0
- package/dist/cert-utils.js +13 -0
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +59 -1
- package/dist/client/delivery.js +1018 -125
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +4 -1
- package/dist/client/rpc-pipeline.js +123 -37
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +12 -2
- package/dist/client/v2-e2ee.js +751 -294
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +26 -2
- package/dist/client.js +379 -63
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/events.d.ts +18 -1
- package/dist/events.js +148 -9
- package/dist/events.js.map +1 -1
- package/dist/facades.d.ts +43 -1
- package/dist/facades.js +363 -7
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +6 -1
- package/dist/keystore/aid-db.js +184 -42
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/index.d.ts +14 -0
- package/dist/keystore/local-token-store.d.ts +9 -1
- package/dist/keystore/local-token-store.js +79 -14
- package/dist/keystore/local-token-store.js.map +1 -1
- package/dist/org-protocol.d.ts +45 -0
- package/dist/org-protocol.js +754 -11
- package/dist/org-protocol.js.map +1 -1
- package/dist/ownership-v21.d.ts +16 -3
- package/dist/ownership-v21.js +35 -17
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.d.ts +17 -0
- package/dist/ownership-workflow.js +511 -26
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/secret-store/file-store.js +84 -0
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/seq-tracker.d.ts +1 -0
- package/dist/seq-tracker.js +2 -2
- package/dist/seq-tracker.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +66 -3
- package/dist/tools/cross-sdk-agent.js +466 -36
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +3 -0
- package/dist/transport.js +98 -44
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/v2/e2ee/encrypt-group.js +1 -0
- package/dist/v2/e2ee/encrypt-group.js.map +1 -1
- package/dist/v2/e2ee/encrypt-p2p.js +1 -0
- package/dist/v2/e2ee/encrypt-p2p.js.map +1 -1
- package/dist/v2/e2ee/types.d.ts +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/transport.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export declare class RPCTransport {
|
|
|
108
108
|
setMetaObserver(observer: MetaObserver | null): void;
|
|
109
109
|
setProtocolMetaObserver(observer: MetaObserver | null): void;
|
|
110
110
|
setProtocolDisconnectCallback(callback: DisconnectCallback | null): void;
|
|
111
|
+
getTraceMode(): string;
|
|
111
112
|
/** 设置 trace 模式:off / log / diag */
|
|
112
113
|
setTraceMode(mode: string): void;
|
|
113
114
|
/** 注册 trace observer;observer(traceInfo) 在每次 RPC/事件携带 _trace 时调用。 */
|
|
@@ -142,6 +143,8 @@ export declare class RPCTransport {
|
|
|
142
143
|
* 发送 JSON-RPC 2.0 请求并等待响应。
|
|
143
144
|
*/
|
|
144
145
|
call(method: string, params?: RpcParams, timeout?: number, trace?: string, background?: boolean): Promise<RpcResult>;
|
|
146
|
+
private _callWithSent;
|
|
147
|
+
private _call;
|
|
145
148
|
private _callLocal;
|
|
146
149
|
/** 发送 JSON-RPC 2.0 Notification,不分配 id,也不等待响应。 */
|
|
147
150
|
notify(method: string, params?: RpcParams | null): Promise<void>;
|
package/dist/transport.js
CHANGED
|
@@ -713,6 +713,12 @@ export class RPCTransport {
|
|
|
713
713
|
pending.reject(new ConnectionError('stale transport worker response'));
|
|
714
714
|
return;
|
|
715
715
|
}
|
|
716
|
+
if (message.type === 'sent') {
|
|
717
|
+
const onSent = pending.onSent;
|
|
718
|
+
delete pending.onSent;
|
|
719
|
+
void onSent?.();
|
|
720
|
+
return;
|
|
721
|
+
}
|
|
716
722
|
this._workerPending.delete(message.id);
|
|
717
723
|
if (pending.timer !== null)
|
|
718
724
|
clearTimeout(pending.timer);
|
|
@@ -720,15 +726,22 @@ export class RPCTransport {
|
|
|
720
726
|
&& message.ok && typeof message.generation === 'number') {
|
|
721
727
|
this._workerGeneration = message.generation;
|
|
722
728
|
}
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
this.
|
|
728
|
-
|
|
729
|
+
const settleReply = () => {
|
|
730
|
+
if (message.ok)
|
|
731
|
+
pending.resolve(message.result);
|
|
732
|
+
else {
|
|
733
|
+
if (pending.commandType === 'connect' && pending.connectAttempt === this._workerConnectAttempt) {
|
|
734
|
+
this._workerGeneration = null;
|
|
735
|
+
this._workerBufferedEvents = [];
|
|
736
|
+
}
|
|
737
|
+
pending.reject(deserializeWorkerError(message.error));
|
|
729
738
|
}
|
|
730
|
-
|
|
739
|
+
};
|
|
740
|
+
if (pending.sentCheckpoint && (message.ok || !pending.onSent)) {
|
|
741
|
+
void pending.sentCheckpoint.then(settleReply, pending.reject);
|
|
731
742
|
}
|
|
743
|
+
else
|
|
744
|
+
settleReply();
|
|
732
745
|
});
|
|
733
746
|
worker.on('error', (error) => {
|
|
734
747
|
this._disableNetworkWorker(worker, error);
|
|
@@ -867,7 +880,7 @@ export class RPCTransport {
|
|
|
867
880
|
for (const message of buffered)
|
|
868
881
|
this._handleWorkerEvent(message);
|
|
869
882
|
}
|
|
870
|
-
_workerCommand(command, connectAttempt) {
|
|
883
|
+
_workerCommand(command, connectAttempt, onSent, sentCheckpoint) {
|
|
871
884
|
this._ensureNetworkWorker();
|
|
872
885
|
if (!this._worker)
|
|
873
886
|
return Promise.reject(new ConnectionError('transport worker unavailable'));
|
|
@@ -898,6 +911,8 @@ export class RPCTransport {
|
|
|
898
911
|
timer,
|
|
899
912
|
commandType: command.type,
|
|
900
913
|
connectAttempt,
|
|
914
|
+
onSent,
|
|
915
|
+
sentCheckpoint,
|
|
901
916
|
});
|
|
902
917
|
const postCommand = () => {
|
|
903
918
|
if (!this._workerPending.has(id))
|
|
@@ -987,6 +1002,9 @@ export class RPCTransport {
|
|
|
987
1002
|
this._onDisconnect = callback;
|
|
988
1003
|
this._protocolDisconnectCallback = callback !== null;
|
|
989
1004
|
}
|
|
1005
|
+
getTraceMode() {
|
|
1006
|
+
return this._traceMode;
|
|
1007
|
+
}
|
|
990
1008
|
/** 设置 trace 模式:off / log / diag */
|
|
991
1009
|
setTraceMode(mode) {
|
|
992
1010
|
if (mode !== 'off' && mode !== 'log' && mode !== 'diag') {
|
|
@@ -1488,12 +1506,34 @@ export class RPCTransport {
|
|
|
1488
1506
|
* 发送 JSON-RPC 2.0 请求并等待响应。
|
|
1489
1507
|
*/
|
|
1490
1508
|
call(method, params, timeout, trace, background = false) {
|
|
1509
|
+
return this._call(method, params, timeout, trace, background);
|
|
1510
|
+
}
|
|
1511
|
+
_callWithSent(method, params, onSent, timeout, trace, background = false) {
|
|
1512
|
+
let resolveSent;
|
|
1513
|
+
let rejectSent;
|
|
1514
|
+
const sent = new Promise((resolve, reject) => { resolveSent = resolve; rejectSent = reject; });
|
|
1515
|
+
let request;
|
|
1516
|
+
const recordSent = async () => {
|
|
1517
|
+
try {
|
|
1518
|
+
await onSent();
|
|
1519
|
+
resolveSent();
|
|
1520
|
+
}
|
|
1521
|
+
catch (error) {
|
|
1522
|
+
rejectSent(error);
|
|
1523
|
+
request?.cancel?.();
|
|
1524
|
+
}
|
|
1525
|
+
};
|
|
1526
|
+
request = this._call(method, params, timeout, trace, background, recordSent, sent);
|
|
1527
|
+
const result = Promise.all([request, sent]).then(([response]) => response);
|
|
1528
|
+
return Object.assign(result, { cancel: request.cancel });
|
|
1529
|
+
}
|
|
1530
|
+
_call(method, params, timeout, trace, background = false, onSent, sentCheckpoint) {
|
|
1491
1531
|
if (this._worker) {
|
|
1492
1532
|
const requestContext = trafficLogContext('outbound', params ?? {});
|
|
1493
1533
|
const requestLog = withLogContext(this._logger, requestContext);
|
|
1494
1534
|
const responseLog = withLogContext(requestLog, { direction: 'inbound', peerAid: requestContext.peerAid });
|
|
1495
1535
|
requestLog.debug(`RPC request queued: method=${method}`);
|
|
1496
|
-
const request = this._workerCommand({ type: 'call', method, params, timeout, trace, background });
|
|
1536
|
+
const request = this._workerCommand({ type: 'call', method, params, timeout, trace, background, ...(onSent ? { trackSent: true } : {}) }, undefined, onSent, sentCheckpoint);
|
|
1497
1537
|
const result = request.then((result) => {
|
|
1498
1538
|
responseLog.debug(`RPC response ok: method=${method}`);
|
|
1499
1539
|
return result;
|
|
@@ -1503,9 +1543,9 @@ export class RPCTransport {
|
|
|
1503
1543
|
});
|
|
1504
1544
|
return Object.assign(result, { cancel: request.cancel });
|
|
1505
1545
|
}
|
|
1506
|
-
return this._enqueueActorStart(() => this._callLocal(method, params, timeout, trace, background), () => new TimeoutError(`rpc cancelled: ${method}`, { retryable: true }));
|
|
1546
|
+
return this._enqueueActorStart(() => this._callLocal(method, params, timeout, trace, background, onSent, sentCheckpoint), () => new TimeoutError(`rpc cancelled: ${method}`, { retryable: true }));
|
|
1507
1547
|
}
|
|
1508
|
-
_callLocal(method, params, timeout, trace, background = false) {
|
|
1548
|
+
_callLocal(method, params, timeout, trace, background = false, onSent, sentCheckpoint) {
|
|
1509
1549
|
if (this._closed || !this._ws) {
|
|
1510
1550
|
const suffix = this._lastCloseCode !== null ? `: close code ${this._lastCloseCode}` : '';
|
|
1511
1551
|
throw new ConnectionError(`transport not connected${suffix}`, {
|
|
@@ -1558,42 +1598,48 @@ export class RPCTransport {
|
|
|
1558
1598
|
const pending = {
|
|
1559
1599
|
resolve: (response) => {
|
|
1560
1600
|
clearTimeout(timer);
|
|
1561
|
-
const
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
else if (response.result !== undefined) {
|
|
1575
|
-
responseLog.debug(`RPC response ok: method=${method}, id=${rpcId}, elapsed=${elapsed}ms ${summarizeDict(response.result, DIAG_RESULT_FIELDS)}`);
|
|
1576
|
-
if (traceId) {
|
|
1577
|
-
responseLog.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=ok`);
|
|
1601
|
+
const acceptResponse = () => {
|
|
1602
|
+
const elapsed = Date.now() - tStart;
|
|
1603
|
+
if (response.error !== undefined) {
|
|
1604
|
+
responseLog.debug(`RPC error response: method=${method}, id=${rpcId}, elapsed=${elapsed}ms, error=${JSON.stringify(response.error)}`);
|
|
1605
|
+
if (traceId) {
|
|
1606
|
+
responseLog.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=error`);
|
|
1607
|
+
}
|
|
1608
|
+
// 处理 error 路径的 _trace
|
|
1609
|
+
const respTrace = response._trace;
|
|
1610
|
+
if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
|
|
1611
|
+
this._handleResponseTrace(method, 'error', elapsed, respTrace, responseLog);
|
|
1612
|
+
}
|
|
1613
|
+
reject(mapRemoteError(response.error));
|
|
1578
1614
|
}
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
this._queueObserver('meta_observer', this._metaObserver, meta);
|
|
1615
|
+
else if (response.result !== undefined) {
|
|
1616
|
+
responseLog.debug(`RPC response ok: method=${method}, id=${rpcId}, elapsed=${elapsed}ms ${summarizeDict(response.result, DIAG_RESULT_FIELDS)}`);
|
|
1617
|
+
if (traceId) {
|
|
1618
|
+
responseLog.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=ok`);
|
|
1584
1619
|
}
|
|
1620
|
+
// 透传 envelope._meta 给 observer
|
|
1621
|
+
if (this._metaObserver !== null) {
|
|
1622
|
+
const meta = response._meta;
|
|
1623
|
+
if (meta !== null && typeof meta === 'object' && !Array.isArray(meta)) {
|
|
1624
|
+
this._queueObserver('meta_observer', this._metaObserver, meta);
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
// 处理 success 路径的 _trace
|
|
1628
|
+
const respTrace = response._trace;
|
|
1629
|
+
if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
|
|
1630
|
+
this._handleResponseTrace(method, 'ok', elapsed, respTrace, responseLog);
|
|
1631
|
+
}
|
|
1632
|
+
resolve(response.result);
|
|
1585
1633
|
}
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
this._handleResponseTrace(method, 'ok', elapsed, respTrace, responseLog);
|
|
1634
|
+
else {
|
|
1635
|
+
responseLog.warn(`RPC response missing result or error: method=${method}, id=${rpcId}, elapsed=${elapsed}ms`);
|
|
1636
|
+
reject(new SerializationError(`rpc response missing result and error: ${method}`));
|
|
1590
1637
|
}
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
}
|
|
1638
|
+
};
|
|
1639
|
+
if (sentCheckpoint)
|
|
1640
|
+
void sentCheckpoint.then(acceptResponse, reject);
|
|
1641
|
+
else
|
|
1642
|
+
acceptResponse();
|
|
1597
1643
|
},
|
|
1598
1644
|
reject: (err) => {
|
|
1599
1645
|
clearTimeout(timer);
|
|
@@ -1615,6 +1661,7 @@ export class RPCTransport {
|
|
|
1615
1661
|
timeoutMs: effectiveTimeout,
|
|
1616
1662
|
background: backgroundRpc,
|
|
1617
1663
|
logger: requestLog,
|
|
1664
|
+
onSent,
|
|
1618
1665
|
});
|
|
1619
1666
|
if (backgroundRpc) {
|
|
1620
1667
|
this._rpcQueue.pop();
|
|
@@ -1627,6 +1674,7 @@ export class RPCTransport {
|
|
|
1627
1674
|
timeoutMs: effectiveTimeout,
|
|
1628
1675
|
background: true,
|
|
1629
1676
|
logger: requestLog,
|
|
1677
|
+
onSent,
|
|
1630
1678
|
});
|
|
1631
1679
|
}
|
|
1632
1680
|
this._drainRpcQueue();
|
|
@@ -1804,6 +1852,7 @@ export class RPCTransport {
|
|
|
1804
1852
|
}
|
|
1805
1853
|
this._sendText(entry.payload, `rpc ${entry.method}`, () => this._pending.get(entry.rpcId) === entry.pending).then(() => {
|
|
1806
1854
|
entry.logger.debug(`RPC request sent: method=${entry.method}, id=${entry.rpcId}, background=${entry.background}`);
|
|
1855
|
+
return entry.onSent?.();
|
|
1807
1856
|
}).catch((err) => {
|
|
1808
1857
|
if (this._pending.get(entry.rpcId) !== entry.pending)
|
|
1809
1858
|
return;
|
|
@@ -2199,7 +2248,12 @@ if (!isMainThread && Boolean(workerData?.aunTransportWorker) && parentPort) {
|
|
|
2199
2248
|
break;
|
|
2200
2249
|
}
|
|
2201
2250
|
case 'call': {
|
|
2202
|
-
const request =
|
|
2251
|
+
const request = (command.trackSent
|
|
2252
|
+
? actor['_callWithSent'](String(command.method ?? ''), command.params ?? undefined, async () => {
|
|
2253
|
+
if (id)
|
|
2254
|
+
parentPort.postMessage({ type: 'sent', id, generation: bridgeGeneration() });
|
|
2255
|
+
}, command.timeout, command.trace, Boolean(command.background))
|
|
2256
|
+
: actor.call(String(command.method ?? ''), command.params ?? undefined, command.timeout, command.trace, Boolean(command.background)));
|
|
2203
2257
|
if (id)
|
|
2204
2258
|
active.set(id, request);
|
|
2205
2259
|
result = await request;
|