@agentunion/fastaun 0.5.20 → 0.5.22
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 +104 -0
- package/_packed_docs/CHANGELOG.md +104 -0
- package/_packed_docs/INDEX.md +59 -34
- package/_packed_docs/KITE_DOCS_GUIDE.md +59 -52
- 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/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +307 -67
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +41 -15
- 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/11-Storage-/345/255/220/345/215/217/350/256/256.md +30 -8
- 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 +33 -22
- 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/0.5.22-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +212 -0
- package/_packed_docs/sdk/0.5.22-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +199 -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 +163 -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 +15 -2
- package/_packed_docs/sdk/09-message-rpc-manual.md +250 -160
- package/_packed_docs/sdk/09-storage-rpc-manual.md +64 -7
- package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +73 -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 +90 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +33 -25
- package/_packed_docs/sdk/INDEX.md +67 -33
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +74 -57
- 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 +312 -300
- 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 +322 -382
- 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 +28 -20
- 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 +190 -97
- 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 +158 -127
- 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 +92 -68
- 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.d.ts +1 -0
- package/dist/auth.js +22 -2
- 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 +87 -1
- package/dist/client/delivery.js +1387 -139
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +3 -0
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +4 -1
- package/dist/client/rpc-pipeline.js +149 -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 +831 -304
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +26 -2
- package/dist/client.js +412 -68
- 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/group-fs.d.ts +1 -0
- package/dist/group-fs.js +37 -19
- package/dist/group-fs.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 +46 -0
- package/dist/org-protocol.js +802 -12
- package/dist/org-protocol.js.map +1 -1
- package/dist/ownership-v21.d.ts +36 -5
- package/dist/ownership-v21.js +168 -52
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.d.ts +24 -2
- package/dist/ownership-workflow.js +682 -41
- 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/storage/lowlevel.d.ts +6 -0
- package/dist/storage/lowlevel.js +24 -7
- package/dist/storage/lowlevel.js.map +1 -1
- package/dist/storage/read-cache.d.ts +70 -0
- package/dist/storage/read-cache.js +625 -0
- package/dist/storage/read-cache.js.map +1 -0
- package/dist/storage/vfs.d.ts +2 -0
- package/dist/storage/vfs.js +50 -15
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +86 -3
- package/dist/tools/cross-sdk-agent.js +758 -46
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +3 -0
- package/dist/transport.js +104 -46
- 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);
|
|
@@ -856,8 +869,12 @@ export class RPCTransport {
|
|
|
856
869
|
const targetAid = this._serviceEventCurrentAid();
|
|
857
870
|
const targetVersion = this._serviceEventIdentityVersion();
|
|
858
871
|
const value = structuredClone(payload);
|
|
859
|
-
void Promise.resolve().then(() =>
|
|
860
|
-
if (
|
|
872
|
+
void Promise.resolve().then(() => {
|
|
873
|
+
if (!current() || targetAid !== this._serviceEventCurrentAid() || targetVersion !== this._serviceEventIdentityVersion())
|
|
874
|
+
return null;
|
|
875
|
+
return this._serviceEventVerifier(event, value);
|
|
876
|
+
}).then((result) => {
|
|
877
|
+
if (result?.signature_valid === true && typeof result.credential_known === 'boolean' && current() && targetAid === this._serviceEventCurrentAid() && targetVersion === this._serviceEventIdentityVersion())
|
|
861
878
|
this._dispatcher.enqueue(event, value);
|
|
862
879
|
}).catch(() => { });
|
|
863
880
|
}
|
|
@@ -867,7 +884,7 @@ export class RPCTransport {
|
|
|
867
884
|
for (const message of buffered)
|
|
868
885
|
this._handleWorkerEvent(message);
|
|
869
886
|
}
|
|
870
|
-
_workerCommand(command, connectAttempt) {
|
|
887
|
+
_workerCommand(command, connectAttempt, onSent, sentCheckpoint) {
|
|
871
888
|
this._ensureNetworkWorker();
|
|
872
889
|
if (!this._worker)
|
|
873
890
|
return Promise.reject(new ConnectionError('transport worker unavailable'));
|
|
@@ -898,6 +915,8 @@ export class RPCTransport {
|
|
|
898
915
|
timer,
|
|
899
916
|
commandType: command.type,
|
|
900
917
|
connectAttempt,
|
|
918
|
+
onSent,
|
|
919
|
+
sentCheckpoint,
|
|
901
920
|
});
|
|
902
921
|
const postCommand = () => {
|
|
903
922
|
if (!this._workerPending.has(id))
|
|
@@ -987,6 +1006,9 @@ export class RPCTransport {
|
|
|
987
1006
|
this._onDisconnect = callback;
|
|
988
1007
|
this._protocolDisconnectCallback = callback !== null;
|
|
989
1008
|
}
|
|
1009
|
+
getTraceMode() {
|
|
1010
|
+
return this._traceMode;
|
|
1011
|
+
}
|
|
990
1012
|
/** 设置 trace 模式:off / log / diag */
|
|
991
1013
|
setTraceMode(mode) {
|
|
992
1014
|
if (mode !== 'off' && mode !== 'log' && mode !== 'diag') {
|
|
@@ -1488,12 +1510,34 @@ export class RPCTransport {
|
|
|
1488
1510
|
* 发送 JSON-RPC 2.0 请求并等待响应。
|
|
1489
1511
|
*/
|
|
1490
1512
|
call(method, params, timeout, trace, background = false) {
|
|
1513
|
+
return this._call(method, params, timeout, trace, background);
|
|
1514
|
+
}
|
|
1515
|
+
_callWithSent(method, params, onSent, timeout, trace, background = false) {
|
|
1516
|
+
let resolveSent;
|
|
1517
|
+
let rejectSent;
|
|
1518
|
+
const sent = new Promise((resolve, reject) => { resolveSent = resolve; rejectSent = reject; });
|
|
1519
|
+
let request;
|
|
1520
|
+
const recordSent = async () => {
|
|
1521
|
+
try {
|
|
1522
|
+
await onSent();
|
|
1523
|
+
resolveSent();
|
|
1524
|
+
}
|
|
1525
|
+
catch (error) {
|
|
1526
|
+
rejectSent(error);
|
|
1527
|
+
request?.cancel?.();
|
|
1528
|
+
}
|
|
1529
|
+
};
|
|
1530
|
+
request = this._call(method, params, timeout, trace, background, recordSent, sent);
|
|
1531
|
+
const result = Promise.all([request, sent]).then(([response]) => response);
|
|
1532
|
+
return Object.assign(result, { cancel: request.cancel });
|
|
1533
|
+
}
|
|
1534
|
+
_call(method, params, timeout, trace, background = false, onSent, sentCheckpoint) {
|
|
1491
1535
|
if (this._worker) {
|
|
1492
1536
|
const requestContext = trafficLogContext('outbound', params ?? {});
|
|
1493
1537
|
const requestLog = withLogContext(this._logger, requestContext);
|
|
1494
1538
|
const responseLog = withLogContext(requestLog, { direction: 'inbound', peerAid: requestContext.peerAid });
|
|
1495
1539
|
requestLog.debug(`RPC request queued: method=${method}`);
|
|
1496
|
-
const request = this._workerCommand({ type: 'call', method, params, timeout, trace, background });
|
|
1540
|
+
const request = this._workerCommand({ type: 'call', method, params, timeout, trace, background, ...(onSent ? { trackSent: true } : {}) }, undefined, onSent, sentCheckpoint);
|
|
1497
1541
|
const result = request.then((result) => {
|
|
1498
1542
|
responseLog.debug(`RPC response ok: method=${method}`);
|
|
1499
1543
|
return result;
|
|
@@ -1503,9 +1547,9 @@ export class RPCTransport {
|
|
|
1503
1547
|
});
|
|
1504
1548
|
return Object.assign(result, { cancel: request.cancel });
|
|
1505
1549
|
}
|
|
1506
|
-
return this._enqueueActorStart(() => this._callLocal(method, params, timeout, trace, background), () => new TimeoutError(`rpc cancelled: ${method}`, { retryable: true }));
|
|
1550
|
+
return this._enqueueActorStart(() => this._callLocal(method, params, timeout, trace, background, onSent, sentCheckpoint), () => new TimeoutError(`rpc cancelled: ${method}`, { retryable: true }));
|
|
1507
1551
|
}
|
|
1508
|
-
_callLocal(method, params, timeout, trace, background = false) {
|
|
1552
|
+
_callLocal(method, params, timeout, trace, background = false, onSent, sentCheckpoint) {
|
|
1509
1553
|
if (this._closed || !this._ws) {
|
|
1510
1554
|
const suffix = this._lastCloseCode !== null ? `: close code ${this._lastCloseCode}` : '';
|
|
1511
1555
|
throw new ConnectionError(`transport not connected${suffix}`, {
|
|
@@ -1558,42 +1602,48 @@ export class RPCTransport {
|
|
|
1558
1602
|
const pending = {
|
|
1559
1603
|
resolve: (response) => {
|
|
1560
1604
|
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`);
|
|
1605
|
+
const acceptResponse = () => {
|
|
1606
|
+
const elapsed = Date.now() - tStart;
|
|
1607
|
+
if (response.error !== undefined) {
|
|
1608
|
+
responseLog.debug(`RPC error response: method=${method}, id=${rpcId}, elapsed=${elapsed}ms, error=${JSON.stringify(response.error)}`);
|
|
1609
|
+
if (traceId) {
|
|
1610
|
+
responseLog.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=error`);
|
|
1611
|
+
}
|
|
1612
|
+
// 处理 error 路径的 _trace
|
|
1613
|
+
const respTrace = response._trace;
|
|
1614
|
+
if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
|
|
1615
|
+
this._handleResponseTrace(method, 'error', elapsed, respTrace, responseLog);
|
|
1616
|
+
}
|
|
1617
|
+
reject(mapRemoteError(response.error));
|
|
1578
1618
|
}
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
this._queueObserver('meta_observer', this._metaObserver, meta);
|
|
1619
|
+
else if (response.result !== undefined) {
|
|
1620
|
+
responseLog.debug(`RPC response ok: method=${method}, id=${rpcId}, elapsed=${elapsed}ms ${summarizeDict(response.result, DIAG_RESULT_FIELDS)}`);
|
|
1621
|
+
if (traceId) {
|
|
1622
|
+
responseLog.info(`[trace=${traceId}] rpc_recv method=${method} rpc_id=${rpcId} duration_ms=${elapsed} status=ok`);
|
|
1584
1623
|
}
|
|
1624
|
+
// 透传 envelope._meta 给 observer
|
|
1625
|
+
if (this._metaObserver !== null) {
|
|
1626
|
+
const meta = response._meta;
|
|
1627
|
+
if (meta !== null && typeof meta === 'object' && !Array.isArray(meta)) {
|
|
1628
|
+
this._queueObserver('meta_observer', this._metaObserver, meta);
|
|
1629
|
+
}
|
|
1630
|
+
}
|
|
1631
|
+
// 处理 success 路径的 _trace
|
|
1632
|
+
const respTrace = response._trace;
|
|
1633
|
+
if (respTrace && typeof respTrace === 'object' && !Array.isArray(respTrace)) {
|
|
1634
|
+
this._handleResponseTrace(method, 'ok', elapsed, respTrace, responseLog);
|
|
1635
|
+
}
|
|
1636
|
+
resolve(response.result);
|
|
1585
1637
|
}
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
this._handleResponseTrace(method, 'ok', elapsed, respTrace, responseLog);
|
|
1638
|
+
else {
|
|
1639
|
+
responseLog.warn(`RPC response missing result or error: method=${method}, id=${rpcId}, elapsed=${elapsed}ms`);
|
|
1640
|
+
reject(new SerializationError(`rpc response missing result and error: ${method}`));
|
|
1590
1641
|
}
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
}
|
|
1642
|
+
};
|
|
1643
|
+
if (sentCheckpoint)
|
|
1644
|
+
void sentCheckpoint.then(acceptResponse, reject);
|
|
1645
|
+
else
|
|
1646
|
+
acceptResponse();
|
|
1597
1647
|
},
|
|
1598
1648
|
reject: (err) => {
|
|
1599
1649
|
clearTimeout(timer);
|
|
@@ -1615,6 +1665,7 @@ export class RPCTransport {
|
|
|
1615
1665
|
timeoutMs: effectiveTimeout,
|
|
1616
1666
|
background: backgroundRpc,
|
|
1617
1667
|
logger: requestLog,
|
|
1668
|
+
onSent,
|
|
1618
1669
|
});
|
|
1619
1670
|
if (backgroundRpc) {
|
|
1620
1671
|
this._rpcQueue.pop();
|
|
@@ -1627,6 +1678,7 @@ export class RPCTransport {
|
|
|
1627
1678
|
timeoutMs: effectiveTimeout,
|
|
1628
1679
|
background: true,
|
|
1629
1680
|
logger: requestLog,
|
|
1681
|
+
onSent,
|
|
1630
1682
|
});
|
|
1631
1683
|
}
|
|
1632
1684
|
this._drainRpcQueue();
|
|
@@ -1804,6 +1856,7 @@ export class RPCTransport {
|
|
|
1804
1856
|
}
|
|
1805
1857
|
this._sendText(entry.payload, `rpc ${entry.method}`, () => this._pending.get(entry.rpcId) === entry.pending).then(() => {
|
|
1806
1858
|
entry.logger.debug(`RPC request sent: method=${entry.method}, id=${entry.rpcId}, background=${entry.background}`);
|
|
1859
|
+
return entry.onSent?.();
|
|
1807
1860
|
}).catch((err) => {
|
|
1808
1861
|
if (this._pending.get(entry.rpcId) !== entry.pending)
|
|
1809
1862
|
return;
|
|
@@ -2199,7 +2252,12 @@ if (!isMainThread && Boolean(workerData?.aunTransportWorker) && parentPort) {
|
|
|
2199
2252
|
break;
|
|
2200
2253
|
}
|
|
2201
2254
|
case 'call': {
|
|
2202
|
-
const request =
|
|
2255
|
+
const request = (command.trackSent
|
|
2256
|
+
? actor['_callWithSent'](String(command.method ?? ''), command.params ?? undefined, async () => {
|
|
2257
|
+
if (id)
|
|
2258
|
+
parentPort.postMessage({ type: 'sent', id, generation: bridgeGeneration() });
|
|
2259
|
+
}, command.timeout, command.trace, Boolean(command.background))
|
|
2260
|
+
: actor.call(String(command.method ?? ''), command.params ?? undefined, command.timeout, command.trace, Boolean(command.background)));
|
|
2203
2261
|
if (id)
|
|
2204
2262
|
active.set(id, request);
|
|
2205
2263
|
result = await request;
|