@agentunion/fastaun 0.5.9 → 0.5.11

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 (43) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/_packed_docs/CHANGELOG.md +64 -0
  3. package/_packed_docs/INDEX.md +3 -3
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +1 -1
  5. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +6 -5
  6. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +102 -8
  7. package/_packed_docs/sdk/09-group-rpc-manual.md +18 -3
  8. package/_packed_docs/sdk/09-message-rpc-manual.md +34 -10
  9. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +3 -2
  10. package/_packed_docs/sdk/INDEX.md +2 -1
  11. package/dist/agent-md.js +5 -1
  12. package/dist/agent-md.js.map +1 -1
  13. package/dist/auth.d.ts +2 -1
  14. package/dist/auth.js +30 -44
  15. package/dist/auth.js.map +1 -1
  16. package/dist/client/delivery.d.ts +39 -9
  17. package/dist/client/delivery.js +407 -73
  18. package/dist/client/delivery.js.map +1 -1
  19. package/dist/client/group-state.js +6 -6
  20. package/dist/client/group-state.js.map +1 -1
  21. package/dist/client/lifecycle.js +5 -14
  22. package/dist/client/lifecycle.js.map +1 -1
  23. package/dist/client/rpc-pipeline.d.ts +4 -0
  24. package/dist/client/rpc-pipeline.js +51 -5
  25. package/dist/client/rpc-pipeline.js.map +1 -1
  26. package/dist/client/v2-e2ee.d.ts +3 -0
  27. package/dist/client/v2-e2ee.js +236 -59
  28. package/dist/client/v2-e2ee.js.map +1 -1
  29. package/dist/client.d.ts +1 -0
  30. package/dist/client.js +84 -30
  31. package/dist/client.js.map +1 -1
  32. package/dist/events.d.ts +23 -8
  33. package/dist/events.js +120 -26
  34. package/dist/events.js.map +1 -1
  35. package/dist/register-flow.js +15 -111
  36. package/dist/register-flow.js.map +1 -1
  37. package/dist/transport.d.ts +36 -3
  38. package/dist/transport.js +855 -33
  39. package/dist/transport.js.map +1 -1
  40. package/dist/version.d.ts +1 -1
  41. package/dist/version.js +1 -1
  42. package/dist/version.js.map +1 -1
  43. package/package.json +1 -1
package/dist/events.d.ts CHANGED
@@ -32,20 +32,35 @@ export declare class Subscription {
32
32
  export declare class EventDispatcher {
33
33
  private _logger;
34
34
  private _handlers;
35
+ private _queue;
36
+ private _draining;
37
+ private _drainScheduled;
38
+ private _nextEventId;
39
+ private _flushWaiters;
40
+ private _closing;
41
+ private _closed;
42
+ private _handlerContext;
35
43
  constructor(logger?: ModuleLogger);
36
44
  /** 订阅指定事件,返回 Subscription 句柄 */
37
45
  subscribe(event: string, handler: EventHandler): Subscription;
38
46
  /** 移除指定事件的指定处理器 */
39
47
  unsubscribe(event: string, handler: EventHandler): void;
40
48
  private _invokeHandler;
41
- /**
42
- * 同步优先发布事件。
43
- *
44
- * 消息交付路径会在应用 handler 返回后立即推进已交付游标;同步 handler
45
- * 不能被 async publish 人为延后一轮微任务,否则应用侧刚收到事件就可能读到旧游标。
46
- * 若 handler 返回 Promise,仍按原语义等待它完成后再继续。
47
- */
49
+ private _acceptsQueuedEvent;
50
+ private _enqueueInternal;
51
+ private _scheduleDrain;
52
+ private _dispatchQueuedEvent;
53
+ private _resolveFlushWaiters;
54
+ private _finishClose;
55
+ private _drainQueue;
56
+ /** 将事件放入异步 FIFO 队列,不等待处理器执行完成。 */
57
+ enqueue(event: string, payload: EventPayload): void;
58
+ /** 兼容旧调用;客户端 dispatcher 仍统一通过异步队列发布。 */
48
59
  publishSyncAware(event: string, payload: EventPayload): void | Promise<void>;
49
- /** 发布事件,按注册顺序调用所有处理器(支持异步) */
60
+ /** 发布事件,按注册顺序调用所有处理器(支持异步)。 */
50
61
  publish(event: string, payload: EventPayload): Promise<void>;
62
+ /** 等待当前已接受的事件及其派生事件全部处理完成。 */
63
+ flush(): Promise<void>;
64
+ /** 关闭事件队列,先排空已接受的事件;关闭后新事件会被丢弃。 */
65
+ close(): Promise<void>;
51
66
  }
package/dist/events.js CHANGED
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * 与 Python SDK 的 EventDispatcher 完全对齐:订阅、取消订阅、发布。
5
5
  */
6
+ import { AsyncLocalStorage } from 'node:async_hooks';
6
7
  const _noopLogger = {
7
8
  error: () => { },
8
9
  warn: () => { },
@@ -44,6 +45,15 @@ export class Subscription {
44
45
  export class EventDispatcher {
45
46
  _logger;
46
47
  _handlers = new Map();
48
+ _queue = [];
49
+ _draining = false;
50
+ _drainScheduled = false;
51
+ _nextEventId = 0;
52
+ _flushWaiters = [];
53
+ _closing = false;
54
+ _closed = false;
55
+ // 使用 AsyncLocalStorage 标记当前处理器,避免嵌套 publish/close 等待正在执行的队列工作器。
56
+ _handlerContext = new AsyncLocalStorage();
47
57
  constructor(logger) {
48
58
  this._logger = logger ?? _noopLogger;
49
59
  }
@@ -84,39 +94,123 @@ export class EventDispatcher {
84
94
  this._logger.warn(`event ${event} handler ${handler.name || '<anonymous>'} threw: ${exc instanceof Error ? exc.message : String(exc)}`);
85
95
  }
86
96
  }
87
- /**
88
- * 同步优先发布事件。
89
- *
90
- * 消息交付路径会在应用 handler 返回后立即推进已交付游标;同步 handler
91
- * 不能被 async publish 人为延后一轮微任务,否则应用侧刚收到事件就可能读到旧游标。
92
- * handler 返回 Promise,仍按原语义等待它完成后再继续。
93
- */
94
- publishSyncAware(event, payload) {
95
- const handlers = this._handlers.get(event);
96
- if (!handlers)
97
+ _acceptsQueuedEvent() {
98
+ return !this._closed && !this._closing;
99
+ }
100
+ _enqueueInternal(event, payload) {
101
+ let resolve;
102
+ const completed = new Promise((done) => { resolve = done; });
103
+ this._queue.push({ id: ++this._nextEventId, event, payload, resolve });
104
+ this._scheduleDrain();
105
+ return completed;
106
+ }
107
+ _scheduleDrain() {
108
+ if (this._draining || this._drainScheduled || this._queue.length === 0)
97
109
  return;
98
- const snapshot = [...handlers];
99
- let chain;
100
- for (const handler of snapshot) {
101
- if (chain) {
102
- chain = chain.then(() => {
103
- const result = this._invokeHandler(event, handler, payload);
104
- return isPromiseLike(result) ? result : undefined;
110
+ this._drainScheduled = true;
111
+ queueMicrotask(() => {
112
+ this._drainScheduled = false;
113
+ void this._drainQueue();
114
+ });
115
+ }
116
+ async _dispatchQueuedEvent(item) {
117
+ const handlers = [...(this._handlers.get(item.event) ?? [])];
118
+ for (const handler of handlers) {
119
+ const context = { id: item.id, active: true };
120
+ try {
121
+ await this._handlerContext.run(context, async () => {
122
+ const result = this._invokeHandler(item.event, handler, item.payload);
123
+ if (isPromiseLike(result))
124
+ await result;
105
125
  });
106
- continue;
107
126
  }
108
- const result = this._invokeHandler(event, handler, payload);
109
- if (isPromiseLike(result)) {
110
- chain = Promise.resolve(result);
127
+ finally {
128
+ context.active = false;
111
129
  }
112
130
  }
113
- return chain;
114
131
  }
115
- /** 发布事件,按注册顺序调用所有处理器(支持异步) */
132
+ _resolveFlushWaiters() {
133
+ if (this._draining || this._drainScheduled || this._queue.length > 0)
134
+ return;
135
+ const waiters = this._flushWaiters;
136
+ this._flushWaiters = [];
137
+ for (const resolve of waiters)
138
+ resolve();
139
+ }
140
+ _finishClose() {
141
+ if (!this._closing || this._closed || this._draining || this._drainScheduled || this._queue.length > 0)
142
+ return;
143
+ this._closed = true;
144
+ this._handlers.clear();
145
+ }
146
+ async _drainQueue() {
147
+ if (this._draining)
148
+ return;
149
+ this._draining = true;
150
+ try {
151
+ while (this._queue.length > 0) {
152
+ const item = this._queue.shift();
153
+ try {
154
+ await this._dispatchQueuedEvent(item);
155
+ }
156
+ catch (exc) {
157
+ // _invokeHandler 通常会隔离处理器异常;若非标准 thenable 穿透该边界,也要保持队列继续运行。
158
+ this._logger.warn(`event ${item.event} dispatch failed: ${exc instanceof Error ? exc.message : String(exc)}`);
159
+ }
160
+ finally {
161
+ item.resolve();
162
+ }
163
+ }
164
+ }
165
+ finally {
166
+ this._draining = false;
167
+ if (this._queue.length > 0 && !this._closed) {
168
+ this._scheduleDrain();
169
+ }
170
+ else {
171
+ this._finishClose();
172
+ this._resolveFlushWaiters();
173
+ }
174
+ }
175
+ }
176
+ /** 将事件放入异步 FIFO 队列,不等待处理器执行完成。 */
177
+ enqueue(event, payload) {
178
+ if (!this._acceptsQueuedEvent())
179
+ return;
180
+ this._enqueueInternal(event, payload);
181
+ }
182
+ /** 兼容旧调用;客户端 dispatcher 仍统一通过异步队列发布。 */
183
+ publishSyncAware(event, payload) {
184
+ this.enqueue(event, payload);
185
+ }
186
+ /** 发布事件,按注册顺序调用所有处理器(支持异步)。 */
116
187
  async publish(event, payload) {
117
- const result = this.publishSyncAware(event, payload);
118
- if (isPromiseLike(result))
119
- await result;
188
+ if (!this._acceptsQueuedEvent())
189
+ return;
190
+ const completed = this._enqueueInternal(event, payload);
191
+ // 处理器可能发布后续事件;此处等待会让单一 FIFO 工作器死锁,因此嵌套调用直接入队返回。
192
+ if (this._handlerContext.getStore()?.active)
193
+ return;
194
+ await completed;
195
+ }
196
+ /** 等待当前已接受的事件及其派生事件全部处理完成。 */
197
+ async flush() {
198
+ if (this._handlerContext.getStore()?.active)
199
+ return;
200
+ if (!this._draining && !this._drainScheduled && this._queue.length === 0)
201
+ return;
202
+ await new Promise((resolve) => { this._flushWaiters.push(resolve); });
203
+ }
204
+ /** 关闭事件队列,先排空已接受的事件;关闭后新事件会被丢弃。 */
205
+ async close() {
206
+ if (this._closed)
207
+ return;
208
+ this._closing = true;
209
+ // close() 可能由当前工作器正在执行的处理器调用。
210
+ if (this._handlerContext.getStore()?.active)
211
+ return;
212
+ await this.flush();
213
+ this._finishClose();
120
214
  }
121
215
  }
122
216
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@
5
5
  import * as crypto from 'node:crypto';
6
6
  import * as http from 'node:http';
7
7
  import * as https from 'node:https';
8
- import WebSocket from 'ws';
9
8
  import { AuthError, IdentityConflictError, ValidationError, mapRemoteError } from './errors.js';
10
9
  import { isJsonObject } from './types.js';
10
+ import { shortRpcViaNetworkActor } from './transport.js';
11
11
  const _noopLogger = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { } };
12
12
  const AID_NAME_RE = /^[a-z0-9_][a-z0-9_-]{3,63}$/;
13
13
  function _loadX509(pem) {
@@ -59,20 +59,6 @@ function _httpGet(url, verifySsl) {
59
59
  req.on('timeout', () => { req.destroy(); reject(new Error(`timeout GET ${url}`)); });
60
60
  });
61
61
  }
62
- const SHORT_RPC_BUFFER = Symbol('shortRpcBuffer');
63
- const SHORT_RPC_BUFFER_HANDLER = Symbol('shortRpcBufferHandler');
64
- function _defaultConnectionFactory(url) {
65
- return new Promise((resolve, reject) => {
66
- const ws = new WebSocket(url, { handshakeTimeout: 5000, rejectUnauthorized: false });
67
- const bufferedMessages = [];
68
- const bufferHandler = (data) => { bufferedMessages.push(data); };
69
- ws[SHORT_RPC_BUFFER] = bufferedMessages;
70
- ws[SHORT_RPC_BUFFER_HANDLER] = bufferHandler;
71
- ws.on('message', bufferHandler);
72
- ws.on('open', () => resolve(ws));
73
- ws.on('error', (err) => reject(new AuthError(`websocket connect failed: ${err.message}`)));
74
- });
75
- }
76
62
  export class RegisterFlow {
77
63
  _keystore;
78
64
  _crypto;
@@ -362,104 +348,22 @@ export class RegisterFlow {
362
348
  }
363
349
  async _shortRpc(gatewayUrl, method, params) {
364
350
  this._logger.debug(`_shortRpc enter: method=${method}, gateway=${gatewayUrl}`);
365
- const ws = await _defaultConnectionFactory(gatewayUrl);
366
- try {
367
- const requestId = `pre-${method}`;
368
- const payload = JSON.stringify({ jsonrpc: '2.0', id: requestId, method, params });
369
- return await new Promise((resolve, reject) => {
370
- const bufferedWebSocket = ws;
371
- const bufferedMessages = bufferedWebSocket[SHORT_RPC_BUFFER] ?? [];
372
- const bufferHandler = bufferedWebSocket[SHORT_RPC_BUFFER_HANDLER];
373
- let challengeReceived = false;
374
- let settled = false;
375
- const cleanup = () => {
376
- clearTimeout(timer);
377
- ws.off('message', onMessage);
378
- ws.off('error', onError);
379
- ws.off('close', onClose);
380
- };
381
- const fail = (error) => {
382
- if (settled)
383
- return;
384
- settled = true;
385
- cleanup();
386
- reject(error);
387
- };
388
- const succeed = (result) => {
389
- if (settled)
390
- return;
391
- settled = true;
392
- cleanup();
393
- resolve(result);
394
- };
395
- const timer = setTimeout(() => fail(new AuthError(`shortRpc timeout: ${method}`)), 15000);
396
- const onError = (error) => fail(new AuthError(`websocket error: ${error.message}`));
397
- const onClose = () => fail(new AuthError(challengeReceived
398
- ? `websocket closed before ${method} response`
399
- : 'websocket closed before challenge'));
400
- const onMessage = (data) => {
401
- try {
402
- const raw = Buffer.isBuffer(data)
403
- ? data.toString('utf-8')
404
- : data instanceof ArrayBuffer
405
- ? Buffer.from(data).toString('utf-8')
406
- : String(data);
407
- const message = JSON.parse(raw);
408
- if (!isJsonObject(message)) {
409
- fail(new ValidationError(`invalid WebSocket frame before ${method}`));
410
- return;
411
- }
412
- if (!challengeReceived) {
413
- if (message.method !== 'challenge')
414
- return;
415
- challengeReceived = true;
416
- this._logger.debug(`short RPC request full: ${payload}`);
417
- ws.send(payload);
418
- return;
419
- }
420
- if (message.id !== requestId)
421
- return;
422
- this._logger.debug(`short RPC response full: method=${method} ${JSON.stringify(message)}`);
423
- if (message.error !== undefined) {
424
- if (!isJsonObject(message.error)) {
425
- fail(new ValidationError(`invalid JSON-RPC error response for ${method}`));
426
- return;
427
- }
428
- fail(mapRemoteError(message.error));
429
- return;
430
- }
431
- const result = isJsonObject(message.result) ? message.result : null;
432
- if (result === null) {
433
- fail(new ValidationError(`invalid pre-auth response for ${method}`));
434
- return;
435
- }
436
- if (result.success === false) {
437
- fail(new AuthError(String(result.error || `${method} failed`)));
438
- return;
439
- }
440
- succeed(result);
441
- }
442
- catch (error) {
443
- fail(error instanceof Error ? error : new AuthError(String(error)));
444
- }
445
- };
446
- if (bufferHandler)
447
- ws.off('message', bufferHandler);
448
- delete bufferedWebSocket[SHORT_RPC_BUFFER];
449
- delete bufferedWebSocket[SHORT_RPC_BUFFER_HANDLER];
450
- ws.on('message', onMessage);
451
- ws.on('error', onError);
452
- ws.on('close', onClose);
453
- for (const bufferedMessage of bufferedMessages)
454
- onMessage(bufferedMessage);
455
- });
456
- }
457
- finally {
458
- try {
459
- ws.close();
351
+ const message = await shortRpcViaNetworkActor(gatewayUrl, method, params);
352
+ this._logger.debug(`short RPC response full: method=${method} ${JSON.stringify(message)}`);
353
+ if (message.error !== undefined) {
354
+ if (!isJsonObject(message.error)) {
355
+ throw new ValidationError(`invalid JSON-RPC error response for ${method}`);
460
356
  }
461
- catch { /* ignore */ }
357
+ throw mapRemoteError(message.error);
358
+ }
359
+ const result = isJsonObject(message.result) ? message.result : null;
360
+ if (result === null) {
361
+ throw new ValidationError(`invalid pre-auth response for ${method}`);
362
+ }
363
+ if (result.success === false) {
364
+ throw new AuthError(String(result.error || `${method} failed`));
462
365
  }
366
+ return result;
463
367
  }
464
368
  _assertCertMatchesLocalKeypair(identity) {
465
369
  const aid = identity.aid ?? '?';
@@ -1 +1 @@
1
- {"version":3,"file":"register-flow.js","sourceRoot":"","sources":["../src/register-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-flow.js","sourceRoot":"","sources":["../src/register-flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,YAAY,EAA4E,MAAM,YAAY,CAAC;AAIpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;AAEvG,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAYlD,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA4B;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,IAAI,EAAE;QAAE,OAAO,EAAsB,CAAC;IAChF,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAwB,EAAE,SAAiB,EAAE,IAAY;IACjF,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;gBAAE,OAAO;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAe;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,SAAkB;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,IAAI,GAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,UAAU,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxD,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,OAAO,YAAY;IACf,SAAS,CAAkB;IAC3B,OAAO,CAAiB;IACxB,UAAU,CAAU;IACpB,OAAO,CAAe;IACtB,IAAI,CAAyB;IAErC,YAAY,IAMX;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CACvB,qBAAqB,IAAI,oEAAoE,CAC9F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,GAAW;QACjD,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,MAAc,EAAE,MAAiB;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAA8B,CAAC;IACrE,CAAC;IAED,qBAAqB;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,UAAkB,EAAE,MAAkB,EAAE,WAAmB;QACpF,KAAK,UAAU,CAAC;QAChB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACpF,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QAChH,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QACxG,IAAI,CAAC;YACH,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACxH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,GAAW;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,aAAa,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,sBAAsB;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2EAA2E,GAAG,EAAE,CAAC,CAAC;gBACrG,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBACxD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,4BAA4B;oBAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6EAA6E,GAAG,EAAE,CAAC,CAAC;oBACvG,IAAI,OAAmB,CAAC;oBACxB,IAAI,CAAC;wBACH,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAA0B,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kDAAkD,GAAG,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAChI,MAAM,CAAC,CAAC;oBACV,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC3C,IAAI,CAAC,OAAO;wBAAE,MAAM,IAAI,SAAS,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;oBAC1F,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;oBACxB,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;oBAC9C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC;oBAChG,OAAO;wBACL,GAAG;wBACH,IAAI,EAAE,OAAO;wBACb,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;wBACvD,kBAAkB,EAAE,WAAW;wBAC/B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC;qBACzC,CAAC;gBACJ,CAAC;gBACD,OAAO;gBACP,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;gBACtC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACvD,IAAI,CAAE,YAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,qBAAqB,CAC7B,QAAQ,GAAG,4FAA4F,CACxG,CAAC;gBACJ,CAAC;gBACD,cAAc;gBACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kEAAkE,GAAG,EAAE,CAAC,CAAC;gBAC3F,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnB,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;oBAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO;oBACL,GAAG;oBACH,IAAI,EAAE,aAAa;oBACnB,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;oBACvD,kBAAkB,EAAE,WAAW;oBAC/B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC;iBACzC,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7E,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC;gBACpE,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,gBAAgB;YAChB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8DAA8D,GAAG,EAAE,CAAC,CAAC;gBACvF,MAAM,IAAI,qBAAqB,CAC7B,QAAQ,GAAG,4GAA4G,CACxH,CAAC;YACJ,CAAC;YAED,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAoB,CAAC;YACnE,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEjE,sBAAsB;YACtB,IAAI,OAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2DAA2D,GAAG,aAAa,UAAU,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChK,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,SAAS,CAAC,iDAAiD,GAAG,EAAE,CAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;YAExB,6BAA6B;YAC7B,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAE9C,2BAA2B;YAC3B,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAExD,oBAAoB;YACpB,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjH,MAAM,IAAI,qBAAqB,CAC7B,QAAQ,GAAG,qFAAqF,CACjG,CAAC;YACJ,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC;YACpF,OAAO;gBACL,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACzB,IAAI,EAAE,OAAO;gBACb,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;gBACvD,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC;gBAC7D,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzI,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,UAAkB,EAAE,GAAW;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEzC,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,QAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wEAAwE,GAAG,aAAa,UAAU,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnL,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/B,MAAM,YAAY,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kEAAkE,UAAU,EAAE,CAAC,CAAC;gBAClG,MAAM,YAAY,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAE,UAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2DAA2D,GAAG,aAAa,CAAC,CAAC;gBAC/F,MAAM,YAAY,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,CAAC;gBACxD,MAAM,IAAI,qBAAqB,CAC7B,QAAQ,GAAG,sHAAsH,CAClI,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2EAA2E,GAAG,EAAE,CAAC,CAAC;YACpG,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAmB;gBAC/B,GAAG;gBACH,eAAe,EAAE,SAAS;gBAC1B,kBAAkB,EAAE,WAAW;gBAC/B,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,OAAO,CAAC;gBACzC,IAAI,EAAE,UAAU;aACjB,CAAC;YACF,MAAM,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,qBAAqB,CAC7B,QAAQ,GAAG,iFAAiF,CAC7F,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;QAC3I,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAqC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI;YACjB,oBAAoB;YACpB,yBAAyB;YACzB,oBAAoB;YACpB,oBAAoB;YACpB,iBAAiB;YACjB,wBAAwB;SAChB,EAAE,CAAC;YACX,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,IAAI,SAAS,CAAC,mDAAmD,IAAI,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,UAAkB,EAAE,GAAW;QACnE,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,IAAI,OAAe,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,GAAG,MAAO,IAAI,CAAC,IAAY,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpE,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChF,MAAM,IAAI,SAAS,CAAC,mBAAmB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,QAAwB;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,iBAAiB,EAAE;YACnE,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,UAAU,EAAE,QAAQ,CAAC,kBAAkB;YACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,OAAO;SACjC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,MAAc,EAAE,MAAiB;QAC3E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,aAAa,UAAU,EAAE,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,eAAe,CAAC,uCAAuC,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,8BAA8B,CAAC,QAAwB;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAA0B,CAAC;QACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,kBAAwC,CAAC;QACtE,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,6BAA6B,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,UAAkB,CAAC;QACvB,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAW,CAAC;YACvF,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,SAAS,CAAC,8CAA8C,GAAG,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,qEAAqE,GAAG,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,QAAwB;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -9,13 +9,17 @@
9
9
  */
10
10
  import type { EventDispatcher } from './events.js';
11
11
  import type { ModuleLogger } from './logger.js';
12
- import { type RpcMessage, type RpcParams, type RpcResult } from './types.js';
12
+ import { type JsonObject, type RpcMessage, type RpcParams, type RpcResult } from './types.js';
13
13
  /** 断线回调,closeCode 为 WebSocket close code(1006 = 网络异常断开,其他 = 服务端主动关闭) */
14
14
  export type DisconnectCallback = (error: Error | null, closeCode?: number) => void | Promise<void>;
15
15
  /** RPC envelope 的 _meta 字段观察者;observer 抛错被吞掉,不影响业务。 */
16
- export type MetaObserver = (meta: Record<string, unknown>) => void;
16
+ export type MetaObserver = (meta: Record<string, unknown>) => void | Promise<void>;
17
17
  /** Trace observer;observer(traceInfo) 在每次 RPC/事件携带 _trace 时调用。 */
18
- export type TraceObserver = (traceInfo: Record<string, unknown>) => void;
18
+ export type TraceObserver = (traceInfo: Record<string, unknown>) => void | Promise<void>;
19
+ export type ShortRpcActorPromise = Promise<JsonObject> & {
20
+ cancel: () => void;
21
+ };
22
+ export declare function shortRpcViaNetworkActor(url: string, method: string, params: RpcParams): ShortRpcActorPromise;
19
23
  /**
20
24
  * WebSocket JSON-RPC 2.0 传输层
21
25
  */
@@ -49,6 +53,19 @@ export declare class RPCTransport {
49
53
  private _metaObserver;
50
54
  private _traceMode;
51
55
  private _traceObserver;
56
+ private _actorTail;
57
+ private _actorBusy;
58
+ private _worker;
59
+ private _workerReady;
60
+ private _workerReadyTimer;
61
+ private _workerDisabled;
62
+ private _workerPending;
63
+ private _workerSeq;
64
+ private _workerConnected;
65
+ private _workerGeneration;
66
+ private _workerConnecting;
67
+ private _workerBufferedEvents;
68
+ private _workerOptions;
52
69
  constructor(opts: {
53
70
  eventDispatcher: EventDispatcher;
54
71
  timeout?: number;
@@ -57,6 +74,13 @@ export declare class RPCTransport {
57
74
  logger?: ModuleLogger;
58
75
  dnsNet?: import('./net.js').DnsResilientNet | null;
59
76
  });
77
+ private _startNetworkWorker;
78
+ private _disableNetworkWorker;
79
+ private _ensureNetworkWorker;
80
+ private _dnsFallbackSnapshot;
81
+ private _handleWorkerEvent;
82
+ private _flushWorkerEvents;
83
+ private _workerCommand;
60
84
  /** 设置默认 RPC 超时(毫秒) */
61
85
  setTimeout(timeout: number): void;
62
86
  /** 设置 WebSocket 建连及 challenge 超时(毫秒)。 */
@@ -74,15 +98,21 @@ export declare class RPCTransport {
74
98
  setTraceMode(mode: string): void;
75
99
  /** 注册 trace observer;observer(traceInfo) 在每次 RPC/事件携带 _trace 时调用。 */
76
100
  setTraceObserver(observer: TraceObserver | null): void;
101
+ private _queueObserver;
102
+ private _dispatchObserver;
77
103
  /** 获取上次连接的 challenge 消息 */
78
104
  get challenge(): RpcMessage | null;
79
105
  /** 串行化 WebSocket 的清理与握手安装,不持有到 challenge 返回。 */
80
106
  private _withConnectionSetup;
107
+ private _enqueueActor;
108
+ /** 启动长生命周期 RPC,但不把 actor 队列占用到响应返回。 */
109
+ private _enqueueActorStart;
81
110
  /**
82
111
  * 连接到 Gateway WebSocket 端点。
83
112
  * 返回初始 challenge 消息(如果有)。
84
113
  */
85
114
  connect(url: string): Promise<RpcMessage | null>;
115
+ private _connectLocal;
86
116
  /**
87
117
  * 内部:使用已创建的 WebSocket 实例完成握手。
88
118
  * 握手阶段(open 后到首条消息处理完毕)如果发生 error 或解析失败,
@@ -91,14 +121,17 @@ export declare class RPCTransport {
91
121
  private _connectWithWs;
92
122
  /** 关闭连接 */
93
123
  close(): Promise<void>;
124
+ private _closeLocal;
94
125
  /** 已持有连接建立串行权时关闭当前 WebSocket。 */
95
126
  private _closeUnlocked;
96
127
  /**
97
128
  * 发送 JSON-RPC 2.0 请求并等待响应。
98
129
  */
99
130
  call(method: string, params?: RpcParams, timeout?: number, trace?: string, background?: boolean): Promise<RpcResult>;
131
+ private _callLocal;
100
132
  /** 发送 JSON-RPC 2.0 Notification,不分配 id,也不等待响应。 */
101
133
  notify(method: string, params?: RpcParams | null): Promise<void>;
134
+ private _notifyLocal;
102
135
  private _enqueueSend;
103
136
  private _sendText;
104
137
  private _sendFailureError;