@cicctencent/agent-core 1.0.35 → 1.0.37

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 (119) hide show
  1. package/dist/cjs/agent/engine.d.ts +19 -0
  2. package/dist/cjs/agent/engine.d.ts.map +1 -1
  3. package/dist/cjs/agent/engine.js +87 -2
  4. package/dist/cjs/agent/engine.js.map +1 -1
  5. package/dist/cjs/agent/llm-caller.d.ts +22 -5
  6. package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
  7. package/dist/cjs/agent/llm-caller.js +113 -27
  8. package/dist/cjs/agent/llm-caller.js.map +1 -1
  9. package/dist/cjs/agent/tool-executor.d.ts +24 -0
  10. package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
  11. package/dist/cjs/agent/tool-executor.js +92 -4
  12. package/dist/cjs/agent/tool-executor.js.map +1 -1
  13. package/dist/cjs/agent/types.d.ts +5 -1
  14. package/dist/cjs/agent/types.d.ts.map +1 -1
  15. package/dist/cjs/agent/types.js.map +1 -1
  16. package/dist/cjs/index.d.ts +6 -2
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +17 -11
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/llm/anthropic-provider.d.ts +5 -0
  21. package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -1
  22. package/dist/cjs/llm/anthropic-provider.js +25 -1
  23. package/dist/cjs/llm/anthropic-provider.js.map +1 -1
  24. package/dist/cjs/llm/ollama-provider.d.ts +8 -1
  25. package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
  26. package/dist/cjs/llm/ollama-provider.js +19 -0
  27. package/dist/cjs/llm/ollama-provider.js.map +1 -1
  28. package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
  29. package/dist/cjs/llm/openai-provider.js +24 -0
  30. package/dist/cjs/llm/openai-provider.js.map +1 -1
  31. package/dist/cjs/llm/types.d.ts +40 -0
  32. package/dist/cjs/llm/types.d.ts.map +1 -1
  33. package/dist/cjs/llm/types.js +83 -0
  34. package/dist/cjs/llm/types.js.map +1 -1
  35. package/dist/cjs/pool/engine-pool.d.ts +4 -4
  36. package/dist/cjs/pool/engine-pool.d.ts.map +1 -1
  37. package/dist/cjs/pool/engine-pool.js +21 -50
  38. package/dist/cjs/pool/engine-pool.js.map +1 -1
  39. package/dist/cjs/runtime/run-registry-interface.d.ts +6 -0
  40. package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -1
  41. package/dist/cjs/runtime/run-registry.d.ts +8 -0
  42. package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
  43. package/dist/cjs/runtime/run-registry.js +25 -0
  44. package/dist/cjs/runtime/run-registry.js.map +1 -1
  45. package/dist/cjs/security/guard.d.ts +12 -1
  46. package/dist/cjs/security/guard.d.ts.map +1 -1
  47. package/dist/cjs/security/guard.js +42 -10
  48. package/dist/cjs/security/guard.js.map +1 -1
  49. package/dist/cjs/security/types.d.ts +11 -0
  50. package/dist/cjs/security/types.d.ts.map +1 -1
  51. package/dist/cjs/types.d.ts +15 -1
  52. package/dist/cjs/types.d.ts.map +1 -1
  53. package/dist/cjs/utils/event-adapter.d.ts.map +1 -1
  54. package/dist/cjs/utils/event-adapter.js +6 -0
  55. package/dist/cjs/utils/event-adapter.js.map +1 -1
  56. package/dist/cjs/utils/ttl-lru-cache.d.ts +49 -0
  57. package/dist/cjs/utils/ttl-lru-cache.d.ts.map +1 -0
  58. package/dist/cjs/utils/ttl-lru-cache.js +108 -0
  59. package/dist/cjs/utils/ttl-lru-cache.js.map +1 -0
  60. package/dist/esm/agent/engine.d.ts +19 -0
  61. package/dist/esm/agent/engine.d.ts.map +1 -1
  62. package/dist/esm/agent/engine.js +87 -2
  63. package/dist/esm/agent/engine.js.map +1 -1
  64. package/dist/esm/agent/llm-caller.d.ts +22 -5
  65. package/dist/esm/agent/llm-caller.d.ts.map +1 -1
  66. package/dist/esm/agent/llm-caller.js +113 -27
  67. package/dist/esm/agent/llm-caller.js.map +1 -1
  68. package/dist/esm/agent/tool-executor.d.ts +24 -0
  69. package/dist/esm/agent/tool-executor.d.ts.map +1 -1
  70. package/dist/esm/agent/tool-executor.js +92 -4
  71. package/dist/esm/agent/tool-executor.js.map +1 -1
  72. package/dist/esm/agent/types.d.ts +5 -1
  73. package/dist/esm/agent/types.d.ts.map +1 -1
  74. package/dist/esm/agent/types.js.map +1 -1
  75. package/dist/esm/index.d.ts +6 -2
  76. package/dist/esm/index.d.ts.map +1 -1
  77. package/dist/esm/index.js +3 -0
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/llm/anthropic-provider.d.ts +5 -0
  80. package/dist/esm/llm/anthropic-provider.d.ts.map +1 -1
  81. package/dist/esm/llm/anthropic-provider.js +25 -1
  82. package/dist/esm/llm/anthropic-provider.js.map +1 -1
  83. package/dist/esm/llm/ollama-provider.d.ts +8 -1
  84. package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
  85. package/dist/esm/llm/ollama-provider.js +19 -0
  86. package/dist/esm/llm/ollama-provider.js.map +1 -1
  87. package/dist/esm/llm/openai-provider.d.ts.map +1 -1
  88. package/dist/esm/llm/openai-provider.js +24 -0
  89. package/dist/esm/llm/openai-provider.js.map +1 -1
  90. package/dist/esm/llm/types.d.ts +40 -0
  91. package/dist/esm/llm/types.d.ts.map +1 -1
  92. package/dist/esm/llm/types.js +80 -0
  93. package/dist/esm/llm/types.js.map +1 -1
  94. package/dist/esm/pool/engine-pool.d.ts +4 -4
  95. package/dist/esm/pool/engine-pool.d.ts.map +1 -1
  96. package/dist/esm/pool/engine-pool.js +21 -50
  97. package/dist/esm/pool/engine-pool.js.map +1 -1
  98. package/dist/esm/runtime/run-registry-interface.d.ts +6 -0
  99. package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -1
  100. package/dist/esm/runtime/run-registry.d.ts +8 -0
  101. package/dist/esm/runtime/run-registry.d.ts.map +1 -1
  102. package/dist/esm/runtime/run-registry.js +25 -0
  103. package/dist/esm/runtime/run-registry.js.map +1 -1
  104. package/dist/esm/security/guard.d.ts +12 -1
  105. package/dist/esm/security/guard.d.ts.map +1 -1
  106. package/dist/esm/security/guard.js +42 -10
  107. package/dist/esm/security/guard.js.map +1 -1
  108. package/dist/esm/security/types.d.ts +11 -0
  109. package/dist/esm/security/types.d.ts.map +1 -1
  110. package/dist/esm/types.d.ts +15 -1
  111. package/dist/esm/types.d.ts.map +1 -1
  112. package/dist/esm/utils/event-adapter.d.ts.map +1 -1
  113. package/dist/esm/utils/event-adapter.js +6 -0
  114. package/dist/esm/utils/event-adapter.js.map +1 -1
  115. package/dist/esm/utils/ttl-lru-cache.d.ts +49 -0
  116. package/dist/esm/utils/ttl-lru-cache.d.ts.map +1 -0
  117. package/dist/esm/utils/ttl-lru-cache.js +104 -0
  118. package/dist/esm/utils/ttl-lru-cache.js.map +1 -0
  119. package/package.json +1 -1
@@ -4,6 +4,7 @@
4
4
  // ============================================================
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LLMCaller = void 0;
7
+ const types_ts_1 = require("../llm/types.js");
7
8
  const dsml_parser_ts_1 = require("../utils/dsml-parser.js");
8
9
  const rate_limit_manager_ts_1 = require("./rate-limit-manager.js");
9
10
  const token_counter_ts_1 = require("../utils/token-counter.js");
@@ -26,15 +27,58 @@ class LLMCaller {
26
27
  }
27
28
  /** 是否为不可重试错误(4xx 类确定性错误) */
28
29
  isNonRetryableError(err) {
29
- return this.classifyError(err?.message || '') === 'non_retryable';
30
+ return this.classifyError(err) === 'non_retryable';
30
31
  }
31
32
  /**
32
- * 错误分类:将错误消息分类为不同类型,用于决定重试策略和用户提示。
33
+ * 错误分类:将错误分类为不同类型,用于决定重试策略和用户提示。
33
34
  *
34
- * 分类优先级:context_too_long > rate_limit_tpm > non_retryable > timeout > server_error > network_error > retryable
35
+ * 分类优先级:
36
+ * 1. 结构化字段优先 —— 若 err 携带 `kind` 或 `retryable`,直接依此判定,跨供应商一致;
37
+ * 2. 文本兜底 —— 无结构化字段时回落到错误文本解析(保持旧行为兼容)。
38
+ *
39
+ * 分类优先级(文本兜底):context_too_long > rate_limit_tpm > non_retryable > timeout > server_error > network_error > retryable
35
40
  */
36
- classifyError(errMsg) {
37
- const msg = (errMsg || '').toLowerCase();
41
+ classifyError(err) {
42
+ // —— 结构化优先 ——
43
+ if (err && typeof err === 'object') {
44
+ // 显式 retryable 优先(最权威)
45
+ if (err.retryable === false)
46
+ return 'non_retryable';
47
+ if (err.retryable === true) {
48
+ if (err.kind === 'context_length')
49
+ return 'context_too_long';
50
+ return 'retryable';
51
+ }
52
+ switch (err.kind) {
53
+ case 'auth':
54
+ case 'quota':
55
+ return 'non_retryable';
56
+ case 'rate_limit_tpm':
57
+ case 'rate_limit_rpm':
58
+ return 'rate_limit_tpm';
59
+ case 'context_length':
60
+ return 'context_too_long';
61
+ case 'timeout':
62
+ return 'timeout';
63
+ case 'server_error':
64
+ return 'server_error';
65
+ case 'network_error':
66
+ return 'network_error';
67
+ }
68
+ // 有 HTTP status 时也可结构化判定
69
+ const st = err.status ?? err.statusCode ?? (typeof err.response?.status === 'number' ? err.response.status : undefined);
70
+ if (st !== undefined) {
71
+ if (st === 429)
72
+ return 'rate_limit_tpm';
73
+ if (st === 401 || st === 403)
74
+ return 'non_retryable';
75
+ if (st >= 500)
76
+ return 'server_error';
77
+ if (st >= 400)
78
+ return 'non_retryable';
79
+ }
80
+ }
81
+ const msg = ((err?.message || err || '') + '').toLowerCase();
38
82
  // 上下文过长(可恢复:压缩后重试)
39
83
  if (msg.includes('too long') || msg.includes('input length') ||
40
84
  msg.includes('context length') || msg.includes('too many tokens') ||
@@ -91,7 +135,15 @@ class LLMCaller {
91
135
  * 典型错误消息:"rate limit exceeded on dimension: tpm"
92
136
  */
93
137
  isTPMRateLimitError(err) {
94
- const msg = (err?.message || '').toLowerCase();
138
+ // 结构化优先
139
+ if (err && typeof err === 'object') {
140
+ if (err.kind === 'rate_limit_tpm' || err.kind === 'rate_limit_rpm')
141
+ return true;
142
+ const st = err.status ?? err.statusCode ?? (typeof err.response?.status === 'number' ? err.response.status : undefined);
143
+ if (st === 429)
144
+ return true;
145
+ }
146
+ const msg = ((err?.message || err || '') + '').toLowerCase();
95
147
  return /\b429\b/.test(msg) && /\btpm\b/.test(msg);
96
148
  }
97
149
  /**
@@ -101,7 +153,7 @@ class LLMCaller {
101
153
  * 特殊处理:当 API 返回"输入过长"错误时,自动压缩历史并重试(最多一次)
102
154
  * 遇到不可重试错误(4xx 配额/认证等)时立即放弃,不浪费重试次数
103
155
  */
104
- async *callWithRetry(sessionId, messages, toolDefs, abortSignal) {
156
+ async *callWithRetry(sessionId, messages, toolDefs, abortSignal, callbacks, responseFormat) {
105
157
  const policy = this.config.retryPolicy;
106
158
  const maxRetries = policy?.maxRetries ?? 1;
107
159
  const initialDelay = policy?.initialDelay ?? 1000;
@@ -134,7 +186,7 @@ class LLMCaller {
134
186
  };
135
187
  // 尝试主 Provider
136
188
  callCount++;
137
- const { result: firstResult, contextTooLong, emptyResponse, usage: firstUsage, error: firstError, firstTokenAt: firstTokenAt0 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
189
+ const { result: firstResult, contextTooLong, emptyResponse, usage: firstUsage, error: firstError, firstTokenAt: firstTokenAt0 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
138
190
  if (firstResult !== null) {
139
191
  successFirstTokenAt = firstTokenAt0;
140
192
  successUsage = firstUsage;
@@ -143,8 +195,8 @@ class LLMCaller {
143
195
  lastError = firstError;
144
196
  // TPM 速率限制专用重试:TPM 是按分钟计的时间窗口限制,等待窗口重置后可恢复,
145
197
  // 不同于配额耗尽。在常规重试/降级之前先尝试 TPM 退避重试。
146
- if (this.isTPMRateLimitError({ message: firstError || '' }) && !abortSignal.aborted) {
147
- const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, firstError);
198
+ if (this.isTPMRateLimitError(firstError) && !abortSignal.aborted) {
199
+ const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, firstError, callbacks, responseFormat);
148
200
  callCount += tpm.attempts;
149
201
  if (tpm.result !== null) {
150
202
  successFirstTokenAt = tpm.firstTokenAt;
@@ -154,9 +206,9 @@ class LLMCaller {
154
206
  lastError = tpm.error || lastError;
155
207
  }
156
208
  // 不可重试错误:立即放弃,不重试
157
- const nonRetryable = this.isNonRetryableError({ message: firstError || '' }) || emptyResponse;
209
+ const nonRetryable = this.isNonRetryableError(firstError) || emptyResponse;
158
210
  // 上下文过长:压缩后重试(仅一次)
159
- if (contextTooLong && this.config.historyManager) {
211
+ if (contextTooLong && this.config.historyManager && !abortSignal.aborted) {
160
212
  const tokensAfter = this.config.historyManager.compressMessages(messages);
161
213
  console.log(`[LLMCaller] Context too long, compressed to ~${tokensAfter} tokens, retrying...`);
162
214
  yield this.config.createEvent(sessionId, {
@@ -164,7 +216,7 @@ class LLMCaller {
164
216
  content: `🔄 Context too long, compressed history and retrying...`,
165
217
  });
166
218
  callCount++;
167
- const { result, usage: retryUsage, error: retryError, firstTokenAt: rft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
219
+ const { result, usage: retryUsage, error: retryError, firstTokenAt: rft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
168
220
  if (result !== null) {
169
221
  successFirstTokenAt = rft;
170
222
  successUsage = retryUsage;
@@ -192,7 +244,7 @@ class LLMCaller {
192
244
  if (abortSignal.aborted)
193
245
  return { assistant: null };
194
246
  callCount++;
195
- const { result, usage: retryUsage, emptyResponse: retryEmpty, error: retryError, firstTokenAt: rft2 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
247
+ const { result, usage: retryUsage, emptyResponse: retryEmpty, error: retryError, firstTokenAt: rft2 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
196
248
  if (result !== null) {
197
249
  successFirstTokenAt = rft2;
198
250
  successUsage = retryUsage;
@@ -200,7 +252,7 @@ class LLMCaller {
200
252
  }
201
253
  lastError = retryError || lastError;
202
254
  // 重试后再次检查是否不可重试(含空响应)
203
- if (this.isNonRetryableError({ message: retryError || '' }) || retryEmpty)
255
+ if (this.isNonRetryableError(retryError) || retryEmpty)
204
256
  break;
205
257
  }
206
258
  }
@@ -242,7 +294,7 @@ class LLMCaller {
242
294
  provider: fallbackName,
243
295
  });
244
296
  callCount++;
245
- const { result, usage: fallbackUsage, emptyResponse: fallbackEmpty, error: fallbackError, firstTokenAt: fft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true);
297
+ const { result, usage: fallbackUsage, emptyResponse: fallbackEmpty, error: fallbackError, firstTokenAt: fft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, callbacks, responseFormat);
246
298
  if (result !== null) {
247
299
  successFirstTokenAt = fft;
248
300
  successUsage = fallbackUsage;
@@ -255,8 +307,8 @@ class LLMCaller {
255
307
  }
256
308
  // TPM 速率限制:fallback 也可能受 TPM 限制(主备常共享同一配额),
257
309
  // 等待速率窗口重置后重试
258
- if (this.isTPMRateLimitError({ message: fallbackError || '' }) && !abortSignal.aborted) {
259
- const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, fallbackError);
310
+ if (this.isTPMRateLimitError(fallbackError) && !abortSignal.aborted) {
311
+ const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, fallbackError, callbacks, responseFormat);
260
312
  if (tpm.result !== null)
261
313
  return { assistant: tpm.result, usage: tpm.usage };
262
314
  if (!(fallbackEmpty && lastError)) {
@@ -266,17 +318,20 @@ class LLMCaller {
266
318
  }
267
319
  }
268
320
  // 所有尝试失败 — 将原始错误信息传递给前端,由前端决定展示方式
269
- const errorType = this.classifyError(lastError || '');
321
+ // lastError 为 normalizeLLMError 结果(对象),统一提取原始文本报文,
322
+ // 确保服务商返回 code/重置时间等原文被透传,而非展示 [object Object]。
323
+ const lastErrorMsg = (0, types_ts_1.normalizeLLMError)(lastError).message;
324
+ const errorType = this.classifyError(lastErrorMsg);
270
325
  const userFacingErrors = {
271
326
  'timeout': 'LLM 响应超时,可能是网络问题或服务繁忙,请稍后重试',
272
327
  'network_error': '网络连接异常,请检查网络后重试',
273
328
  'server_error': 'AI 服务端暂时不可用,请稍后重试',
274
329
  'rate_limit_tpm': '请求频率超限,请等待 1 分钟后重试',
275
- 'non_retryable': lastError || '请求被拒绝(认证/配额问题)',
330
+ 'non_retryable': lastErrorMsg || '请求被拒绝(认证/配额问题)',
276
331
  'context_too_long': '对话上下文过长,请开启新对话或清理历史',
277
- 'retryable': lastError || 'AI 服务调用失败,请稍后重试',
332
+ 'retryable': lastErrorMsg || 'AI 服务调用失败,请稍后重试',
278
333
  };
279
- const errorMsg = userFacingErrors[errorType] || lastError || 'All LLM providers failed after retries';
334
+ const errorMsg = userFacingErrors[errorType] || lastErrorMsg || 'All LLM providers failed after retries';
280
335
  console.warn(`[LLMCaller] All providers exhausted. Error type: ${errorType}, message: ${errorMsg}`);
281
336
  await this.config.runHooks('on_error', { sessionId, iteration: 0, error: errorMsg, recoverable: false });
282
337
  yield this.config.createEvent(sessionId, { type: 'error', error: errorMsg, recoverable: false, errorType });
@@ -299,7 +354,7 @@ class LLMCaller {
299
354
  * 策略:每次固定等待 60s(覆盖完整 TPM 窗口),重试 2 次。
300
355
  * 当错误不再是 TPM 类型时提前跳出(可能是其他错误或已成功)。
301
356
  */
302
- async *retryOnTPM(sessionId, messages, toolDefs, abortSignal, provider, isFallback, initialError) {
357
+ async *retryOnTPM(sessionId, messages, toolDefs, abortSignal, provider, isFallback, initialError, callbacks, responseFormat) {
303
358
  const tpmRetries = 2;
304
359
  /** 固定 60s,覆盖完整 TPM 窗口周期 */
305
360
  const tpmDelay = 60_000;
@@ -322,19 +377,19 @@ class LLMCaller {
322
377
  if (abortSignal.aborted)
323
378
  return { result: null, usage: lastUsage, error: lastError, attempts };
324
379
  attempts++;
325
- const { result, usage, error, firstTokenAt } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback);
380
+ const { result, usage, error, firstTokenAt } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback, callbacks, responseFormat);
326
381
  if (result !== null)
327
382
  return { result, usage, error: null, firstTokenAt, attempts };
328
383
  lastError = error || lastError;
329
384
  lastUsage = usage;
330
385
  // 不再是 TPM 错误,跳出 TPM 专用重试(交由后续降级逻辑处理)
331
- if (!this.isTPMRateLimitError({ message: error || '' }))
386
+ if (!this.isTPMRateLimitError(error))
332
387
  break;
333
388
  }
334
389
  return { result: null, usage: lastUsage, error: lastError, firstTokenAt: undefined, attempts };
335
390
  }
336
391
  /** 单次 LLM 调用(流式),带诊断信息 */
337
- async *callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback) {
392
+ async *callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback, callbacks, responseFormat) {
338
393
  let chunkUsage;
339
394
  /** 调试模式下累积本次请求的网络诊断信息,待流式结束后统一以 debug 事件抛出 */
340
395
  const debugEvents = [];
@@ -343,6 +398,10 @@ class LLMCaller {
343
398
  let onExternalAbort = null;
344
399
  /** 首内容 chunk 到达时间(用于计算 TTFT);声明在 try 外,供 catch 返回 */
345
400
  let firstTokenAt;
401
+ // 流式工具早分发:已上报完毕的 tool_call index(本次尝试内)
402
+ const reportedToolCallIdx = new Set();
403
+ // 新的调用尝试开始:通知消费方作废上一次尝试的早分发状态
404
+ callbacks?.onToolCallReset?.();
346
405
  try {
347
406
  // 估算请求 token 规模(诊断用:定位 TPM 429 是否因请求体过大)
348
407
  const modelInfo = provider.getModel();
@@ -422,6 +481,7 @@ class LLMCaller {
422
481
  messages,
423
482
  tools: toolDefs.length > 0 ? toolDefs : undefined,
424
483
  toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
484
+ responseFormat,
425
485
  abortSignal: streamAbort.signal,
426
486
  debug: debugEnabled,
427
487
  onDebug,
@@ -433,6 +493,25 @@ class LLMCaller {
433
493
  let role = 'assistant';
434
494
  let toolStreamingLastEmit = 0;
435
495
  let finishReason;
496
+ /** 流式工具早分发:上报参数聚合完成的 tool_calls(upToIdx 限定只上报 index 更小的条目;省略则上报全部未上报项) */
497
+ const reportReadyToolCalls = (upToIdx) => {
498
+ if (!callbacks?.onToolCallReady)
499
+ return;
500
+ for (const [idx, entry] of toolCallsMap) {
501
+ if (reportedToolCallIdx.has(idx))
502
+ continue;
503
+ if (upToIdx !== undefined && idx >= upToIdx)
504
+ continue;
505
+ if (entry.id && entry.name) {
506
+ reportedToolCallIdx.add(idx);
507
+ callbacks.onToolCallReady({
508
+ id: entry.id,
509
+ type: 'function',
510
+ function: { name: entry.name, arguments: entry.args },
511
+ });
512
+ }
513
+ }
514
+ };
436
515
  // DSML 流式解析器(用于处理 DeepSeek 模型的 DSML 格式工具调用)。
437
516
  // 解析器内部已处理「部分 DSML 标记前缀」的暂留,因此所有 content chunk
438
517
  // 统一走 process(),由解析器决定哪些是文本增量、哪些暂留等待后续 chunk。
@@ -504,6 +583,8 @@ class LLMCaller {
504
583
  for (const tc of delta.tool_calls) {
505
584
  const idx = tc.index ?? 0;
506
585
  if (!toolCallsMap.has(idx)) {
586
+ // 新 tool_call index 出现:更小 index 的条目参数已聚合完成,立即上报(早分发)
587
+ reportReadyToolCalls(idx);
507
588
  toolCallsMap.set(idx, { id: '', name: '', args: '' });
508
589
  }
509
590
  const entry = toolCallsMap.get(idx);
@@ -555,6 +636,8 @@ class LLMCaller {
555
636
  const fullContent = contentParts.join('') || null;
556
637
  const fullReasoning = reasoningParts.join('') || null;
557
638
  const toolCalls = [];
639
+ // 流结束:上报剩余未上报的 tool_calls(最后一个 index 的完成信号即流结束)
640
+ reportReadyToolCalls();
558
641
  const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
559
642
  for (const [, entry] of sortedEntries) {
560
643
  if (entry.id && entry.name) {
@@ -664,7 +747,10 @@ class LLMCaller {
664
747
  for (const info of debugEvents) {
665
748
  yield this.config.createEvent(sessionId, { type: 'debug', debug: info });
666
749
  }
667
- return { result: null, contextTooLong, usage: chunkUsage, error: errMsg, firstTokenAt };
750
+ // 归一化为结构化错误:优先基于 HTTP status/code/type 推断 kind,
751
+ // 使上层 classifyError 跨供应商一致决策,无需依赖文本正则。
752
+ const structuredErr = (0, types_ts_1.normalizeLLMError)(err, { status: errStatus, code: errCode, type: errType });
753
+ return { result: null, contextTooLong, usage: chunkUsage, error: structuredErr, firstTokenAt };
668
754
  }
669
755
  }
670
756
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+BAA+B;AAC/B,+DAA+D;;;AAI/D,8CAAoD;AAIpD,4DAA8D;AAC9D,mEAA2D;AAC3D,gEAA+E;AAsD/E;;;;;;;GAOG;AACH,MAAa,SAAS;IACZ,MAAM,CAAkB;IAEhC,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,0BAA0B;IAC1B,cAAc,CAAC,QAAqB;QAClC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED,4BAA4B;IACpB,mBAAmB,CAAC,GAAQ;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa,CAAC,GAAQ;QAC5B,cAAc;QACd,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,uBAAuB;YACvB,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK;gBAAE,OAAO,eAAe,CAAC;YACpD,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB;oBAAE,OAAO,kBAAkB,CAAC;gBAC7D,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACV,OAAO,eAAe,CAAC;gBACzB,KAAK,gBAAgB,CAAC;gBACtB,KAAK,gBAAgB;oBACnB,OAAO,gBAAgB,CAAC;gBAC1B,KAAK,gBAAgB;oBACnB,OAAO,kBAAkB,CAAC;gBAC5B,KAAK,SAAS;oBACZ,OAAO,SAAS,CAAC;gBACnB,KAAK,cAAc;oBACjB,OAAO,cAAc,CAAC;gBACxB,KAAK,eAAe;oBAClB,OAAO,eAAe,CAAC;YAC3B,CAAC;YACD,yBAAyB;YACzB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxH,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,IAAI,EAAE,KAAK,GAAG;oBAAE,OAAO,gBAAgB,CAAC;gBACxC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,OAAO,eAAe,CAAC;gBACrD,IAAI,EAAE,IAAI,GAAG;oBAAE,OAAO,cAAc,CAAC;gBACrC,IAAI,EAAE,IAAI,GAAG;oBAAE,OAAO,eAAe,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7D,mBAAmB;QACnB,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,gBAAgB;QAChB,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzD,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,aAAa;QACb,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtF,+CAA+C;YAC/C,kDAAkD;YAClD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClF,OAAO,eAAe,CAAC;YACzB,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,0BAA0B;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;YAC1F,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yBAAyB;QACzB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/D,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvE,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,yBAAyB;QACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5D,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7D,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,SAAS;QACT,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACK,mBAAmB,CAAC,GAAQ;QAClC,QAAQ;QACR,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAO,IAAI,CAAC;YAChF,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxH,IAAI,EAAE,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;QAC9B,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,aAAa,CAClB,SAAiB,EACjB,QAAmB,EACnB,QAA0B,EAC1B,WAAwB,EACxB,SAA8B,EAC9B,cAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,GAAQ,IAAI,CAAC;QAE1B,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,uDAAuD;QACvD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,iBAAqC,CAAC;QAC1C,IAAI,mBAAuC,CAAC;QAC5C,IAAI,YAAoC,CAAC;QAEzC,MAAM,QAAQ,GAAG,GAAqC,EAAE;YACtD,IAAI,mBAAmB,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC;YAClD,yDAAyD;YACzD,gDAAgD;YAChD,MAAM,IAAI,GAAG,mBAAmB,GAAG,YAAY,CAAC;YAChD,MAAM,UAAU,GAAG,YAAY,EAAE,gBAAgB,IAAI,CAAC,CAAC;YACvD,mDAAmD;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5G,OAAO;gBACL,gBAAgB,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC9C,eAAe,EAAE,GAAG;gBACpB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;gBACtC,aAAa,EAAE,iBAAiB;aACjC,CAAC;QACJ,CAAC,CAAC;QAEF,eAAe;QACf,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACtQ,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,mBAAmB,GAAG,aAAa,CAAC;YAAC,YAAY,GAAG,UAAU,CAAC;YAC/D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClF,CAAC;QACD,SAAS,GAAG,UAAU,CAAC;QAEvB,4CAA4C;QAC5C,kCAAkC;QAClC,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACtJ,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC;YAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACxB,mBAAmB,GAAG,GAAG,CAAC,YAAY,CAAC;gBAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;gBACjE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChF,CAAC;YACD,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;QACrC,CAAC;QAED,kBAAkB;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC;QAE3E,mBAAmB;QACnB,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,gDAAgD,WAAW,sBAAsB,CAAC,CAAC;YAC/F,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;gBACvC,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,yDAAyD;aACnE,CAAC,CAAC;YACH,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAChN,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,mBAAmB,GAAG,GAAG,CAAC;gBAAC,YAAY,GAAG,UAAU,CAAC;gBACrD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC7E,CAAC;YACD,SAAS,GAAG,UAAU,IAAI,SAAS,CAAC;QACtC,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBACvD,IAAI,WAAW,CAAC,OAAO;oBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC;gBAE1F,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;oBACvC,IAAI,EAAE,OAAO;oBACb,OAAO;oBACP,UAAU;oBACV,KAAK;oBACL,KAAK,EAAE,iCAAiC,SAAS,IAAI,eAAe,GAAG;oBACvE,QAAQ,EAAE,YAAY;iBACvB,CAAC,CAAC;gBAEH,MAAM,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAChC,IAAI,WAAW,CAAC,OAAO;oBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAEpD,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;gBAC5O,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,mBAAmB,GAAG,IAAI,CAAC;oBAAC,YAAY,GAAG,UAAU,CAAC;oBACtD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAC7E,CAAC;gBACD,SAAS,GAAG,UAAU,IAAI,SAAS,CAAC;gBACpC,sBAAsB;gBACtB,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,UAAU;oBAAE,MAAM;YAChE,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,iDAAiD;QACjD,mCAAmC;QACnC,2CAA2C;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,uCAAuC;YACvC,IAAI,IAAI,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,2IAA2I,CAAC,CAAC;gBAC1J,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;oBACvC,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,4JAA4J;iBACtK,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAE7D,wCAAwC;YACxC,8CAA8C;YAC9C,kBAAkB;YAClB,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO;mBAC7D,WAAW,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC;YAE9C,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,4DAA4D,WAAW,CAAC,OAAO,WAAW,WAAW,CAAC,KAAK,sBAAsB,CAAC,CAAC;YACjJ,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,IAAI,GAAG,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACxF,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,IAAI,UAAU,CAAC;gBACpG,OAAO,CAAC,GAAG,CAAC,iCAAiC,YAAY,+CAA+C,YAAY,EAAE,CAAC,CAAC;gBAExH,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;oBACvC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,UAAU,GAAG,CAAC;oBACvB,UAAU;oBACV,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,mCAAmC,YAAY,EAAE;oBACxD,QAAQ,EAAE,YAAY;iBACvB,CAAC,CAAC;gBAEH,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;gBACxP,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,mBAAmB,GAAG,GAAG,CAAC;oBAAC,YAAY,GAAG,aAAa,CAAC;oBACxD,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;oBACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAChF,CAAC;gBACD,oCAAoC;gBACpC,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,EAAE,CAAC;oBAClC,SAAS,GAAG,aAAa,IAAI,SAAS,CAAC;gBACzC,CAAC;gBAED,4CAA4C;gBAC5C,cAAc;gBACd,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACpE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;oBAC7J,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI;wBAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC5E,IAAI,CAAC,CAAC,aAAa,IAAI,SAAS,CAAC,EAAE,CAAC;wBAClC,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,mDAAmD;QACnD,gDAAgD;QAChD,MAAM,YAAY,GAAG,IAAA,4BAAiB,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAA2B;YAC/C,SAAS,EAAE,6BAA6B;YACxC,eAAe,EAAE,iBAAiB;YAClC,cAAc,EAAE,mBAAmB;YACnC,gBAAgB,EAAE,oBAAoB;YACtC,eAAe,EAAE,YAAY,IAAI,gBAAgB;YACjD,kBAAkB,EAAE,qBAAqB;YACzC,WAAW,EAAE,YAAY,IAAI,iBAAiB;SAC/C,CAAC;QACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,YAAY,IAAI,wCAAwC,CAAC;QACzG,OAAO,CAAC,IAAI,CAAC,oDAAoD,SAAS,cAAc,QAAQ,EAAE,CAAC,CAAC;QACpG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACzG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5G,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;IACX,qBAAqB,CAAC,GAAQ;QACpC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC7D,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACjE,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,CAAC,UAAU,CACvB,SAAiB,EACjB,QAAmB,EACnB,QAA0B,EAC1B,WAAwB,EACxB,QAAqB,EACrB,UAAmB,EACnB,YAAiB,EACjB,SAA8B,EAC9B,cAA+B;QAE/B,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,IAAI,SAAS,GAAQ,YAAY,CAAC;QAClC,IAAI,SAAiC,CAAC;QACtC,2DAA2D;QAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,WAAW,CAAC,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;YAC/F,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAChF,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,KAAK,UAAU,cAAc,QAAQ,GAAG,IAAI,kBAAkB,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;YACzI,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;gBACvC,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,kCAAkC,KAAK,KAAK,UAAU,cAAc,QAAQ,GAAG,IAAI,gDAAgD,OAAO,IAAI,UAAU,MAAM;aACxK,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACnC,IAAI,WAAW,CAAC,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;YAC/F,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YACzK,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;YACnF,SAAS,GAAG,KAAK,IAAI,SAAS,CAAC;YAC/B,SAAS,GAAG,KAAK,CAAC;YAClB,qCAAqC;YACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBAAE,MAAM;QAC9C,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjG,CAAC;IAED,0BAA0B;IAClB,KAAK,CAAC,CAAC,gBAAgB,CAC7B,SAAiB,EACjB,QAAmB,EACnB,QAA0B,EAC1B,WAAwB,EACxB,QAAqB,EACrB,UAAmB,EACnB,SAA8B,EAC9B,cAA+B;QAE/B,IAAI,UAAkC,CAAC;QACvC,8CAA8C;QAC9C,MAAM,WAAW,GAAmB,EAAE,CAAC;QACvC,8CAA8C;QAC9C,IAAI,SAAS,GAAyC,IAAI,CAAC;QAC3D,IAAI,eAAe,GAAwB,IAAI,CAAC;QAChD,qDAAqD;QACrD,IAAI,YAAgC,CAAC;QACrC,wCAAwC;QACxC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,8BAA8B;QAC9B,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,yCAAyC;YACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,IAAA,qCAAkB,EAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAc,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;YAC/C,6BAA6B;YAC7B,IAAI,eAAe,GAAG,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,WAAW,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,MAAM,iBAAiB,eAAe,MAAM,CAAC,CAAC;YACrL,CAAC;YAED,+CAA+C;YAC/C,IAAI,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,sDAAsD,SAAS,gCAAgC,CAAC,CAAC;gBAC9G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,IAAI,cAAc,GAAG,EAAE,CAAC;oBACxB,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAClC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC9B,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3C,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;wBAC9C,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3D,CAAC;oBACD,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM;wBACvC,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;wBACjI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,MAAM,GAAG,IAAA,qCAAkB,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,IAAI,gBAAgB,UAAU,aAAa,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC;oBACnH,OAAO,CAAC,IAAI,CAAC,6BAA6B,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE;oBAC3C,SAAS;oBACT,SAAS,EAAE,CAAC;oBACZ,QAAQ;oBACR,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,SAAS,EAAE,SAAS,CAAC,SAAS;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,WAAW;YACX,2CAA2C;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;YAChD,MAAM,OAAO,GAAG,YAAY;gBAC1B,CAAC,CAAC,CAAC,IAAkB,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,SAAS,CAAC;YAEd,sDAAsD;YACtD,oEAAoE;YACpE,4DAA4D;YAC5D,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;YAC1C,eAAe,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACvE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/C,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,MAAM,cAAc,GAAG,GAAG,EAAE;gBAC1B,IAAI,SAAS;oBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBACvC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC1B,cAAc,GAAG,IAAI,CAAC;oBACtB,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,wBAAwB,eAAe,KAAK,CAAC,CAAC,CAAC;gBAC7E,CAAC,EAAE,eAAe,CAAC,CAAC;YACtB,CAAC,CAAC;YACF,cAAc,EAAE,CAAC;YAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACjC,QAAQ;gBACR,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBACjD,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACpD,cAAc;gBACd,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,KAAK,EAAE,YAAY;gBACnB,OAAO;aACR,CAAC,CAAC;YAEH,SAAS;YACT,IAAI,YAAY,GAAa,EAAE,CAAC;YAChC,IAAI,cAAc,GAAa,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsD,CAAC;YACnF,IAAI,IAAI,GAA6C,WAAW,CAAC;YACjE,IAAI,qBAAqB,GAAG,CAAC,CAAC;YAC9B,IAAI,YAAgC,CAAC;YAErC,0EAA0E;YAC1E,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAQ,EAAE;gBACtD,IAAI,CAAC,SAAS,EAAE,eAAe;oBAAE,OAAO;gBACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;oBACxC,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAC3C,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,IAAI,OAAO;wBAAE,SAAS;oBACtD,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC3B,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC7B,SAAS,CAAC,eAAe,CAAC;4BACxB,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;yBACtD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,6CAA6C;YAC7C,+CAA+C;YAC/C,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,oCAAmB,EAAE,CAAC;YAC7C,yDAAyD;YACzD,MAAM,eAAe,GAAG,SAAS,CAAC;YAClC,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAE1B,+DAA+D;YAC/D,MAAM,sBAAsB,GAAG,CAAC,EAAY,EAAc,EAAE;gBAC1D,MAAM,GAAG,GAAG,eAAe,GAAG,iBAAiB,EAAE,CAAC;gBAClD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;oBACpB,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,0DAA0D;gBAC1D,IAAI,KAAc,CAAC;gBACnB,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC1C,CAAC;gBACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;oBACxC,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,EAAE,CAAC,EAAE;oBACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBAC1B,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBAC7B,KAAK;oBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM;gBAEtC,4BAA4B;gBAC5B,IAAI,CAAC,cAAc;oBAAE,cAAc,EAAE,CAAC;gBAEtC,4CAA4C;gBAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC3B,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,iBAAiB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;oBACvG,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC3B,CAAC;gBAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACxB,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE1B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACxC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;4BACrB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACpC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxG,CAAC;wBACD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;4BAC3C,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,UAAmB,EAAE,CAAC;wBAC3C,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;wBAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC3B,qDAAqD;4BACrD,oBAAoB,CAAC,GAAG,CAAC,CAAC;4BAC1B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;wBACxD,CAAC;wBACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;wBACrC,IAAI,EAAE,CAAC,EAAE;4BAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;wBAC5B,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI;4BAAE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;wBACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS;4BAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAClE,CAAC;oBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3D,IAAI,QAAQ,GAAG,qBAAqB,IAAI,SAAS,EAAE,CAAC;wBAClD,qBAAqB,GAAG,QAAQ,CAAC;wBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;4BACvC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,KAAK;4BACZ,KAAK,EAAE,QAAQ;yBAChB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI;oBAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACpC,CAAC;YAED,gCAAgC;YAChC,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAE1D,gDAAgD;YAChD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAG,4BAA4B,eAAe,sCAAsC,CAAC;gBACrG,OAAO,CAAC,IAAI,CAAC,eAAe,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;YACrG,CAAC;YAED,6CAA6C;YAC7C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,4CAA4C;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;gBAChD,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;YAClD,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;YACtD,MAAM,SAAS,GAAe,EAAE,CAAC;YAEjC,gDAAgD;YAChD,oBAAoB,EAAE,CAAC;YAEvB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC;wBACb,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;qBACtD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAY;gBACzB,IAAI;gBACJ,OAAO,EAAE,WAAW;gBACpB,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;YAEF,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,+DAA+D;gBAC/D,wDAAwD;gBACxD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,kBAAkB,GAAY;wBAClC,IAAI;wBACJ,OAAO,EAAE,aAAa;wBACtB,iBAAiB,EAAE,aAAa;qBACjC,CAAC;oBACF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBACpG,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;gBAC7G,CAAC;gBACD,oCAAoC;gBACpC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,oBAAoB,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,QAAQ,GAAG,gDAAgD,MAAM,EAAE,CAAC;gBAC1E,6CAA6C;gBAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;oBACxF,OAAO,CAAC,IAAI,CAAC,+BAA+B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,oBAAoB,YAAY,IAAI,MAAM,EAAE,CAAC,CAAC;oBAC7H,OAAO,CAAC,IAAI,CAAC,+CAA+C,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC;oBACxG,OAAO,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;oBACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACtB,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;4BAClD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC5C,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,IAAI,SAAS,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,aAAa,KAAK,cAAc,EAAE,CAAC,CAAC;oBACxL,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,oCAAoC,YAAY,CAAC,MAAM,KAAK,WAAW,EAAE,MAAM,IAAI,CAAC,2BAA2B,cAAc,CAAC,MAAM,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC,yBAAyB,YAAY,CAAC,IAAI,UAAU,IAAI,mBAAmB,YAAY,IAAI,MAAM,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC1T,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;4BACxC,OAAO,CAAC,IAAI,CAAC,0BAA0B,GAAG,QAAQ,KAAK,CAAC,EAAE,IAAI,SAAS,UAAU,KAAK,CAAC,IAAI,IAAI,SAAS,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC9K,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACtD,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;YACxH,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACpG,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,kBAAkB;YAClB,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,eAAe;gBAAE,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACjD,qDAAqD;YACrD,kCAAkC;YAClC,MAAM,SAAS,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,UAAU,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC1E,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;YAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;YAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;YACxE,MAAM,UAAU,GAAG;gBACjB,SAAS,UAAU,EAAE;gBACrB,QAAQ,IAAI,EAAE;gBACd,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC1D,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;gBAChD,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI;gBAChD,QAAQ,QAAQ,CAAC,MAAM,EAAE;gBACzB,SAAS,QAAQ,CAAC,MAAM,EAAE;gBAC1B,eAAe,IAAA,qCAAkB,EAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAc,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;gBACxH,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;aAC1D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,IAAI,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;YACvD,uCAAuC;YACvC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAA,qCAAkB,EAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAc,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnH,OAAO,CAAC,IAAI,CAAC,yCAAyC,MAAM,qJAAqJ,CAAC,CAAC;YACrN,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChF,OAAO,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,GAAG,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,EAAE,CAAC;gBACxG,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,8CAA8C;YAC9C,8DAA8D;YAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1C,yDAAyD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,aAAa,EAAE,CAAC;gBAClB,wCAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;YAED,8CAA8C;YAC9C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,gDAAgD;YAChD,uCAAuC;YACvC,MAAM,aAAa,GAAG,IAAA,4BAAiB,EAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;CAEF;AA3xBD,8BA2xBC;AAED,mCAAmC;AACnC,SAAS,KAAK,CAAC,EAAU,EAAE,WAAyB;IAClD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -24,6 +24,8 @@ export interface ToolExecutorConfig extends EngineContext {
24
24
  historyManager: HistoryManager;
25
25
  /** 中间件列表 */
26
26
  getMiddleware: () => Middleware[] | undefined;
27
+ /** 是否存在 before_tool hook / onToolBefore 拦截器(存在时禁用流式工具早分发,防止 block/modify 语义被绕过) */
28
+ hasBeforeToolInterceptors?: () => boolean;
27
29
  }
28
30
  /** 工具执行结果 */
29
31
  export interface ToolExecResult {
@@ -46,6 +48,11 @@ export interface ToolLoopState {
46
48
  * 与 deniedTools(构造时固定)不同,这是动态的:当 iterationGuard / dataFetchGuard
47
49
  * 触发后,数据获取类工具被加入此集合,阻止 LLM 幻觉调用已被禁用的工具。 */
48
50
  blockedTools?: Set<string>;
51
+ /** 流式工具早分发:已就绪工具调用的预执行结果缓存(callId -> 执行结果)。
52
+ * 由 engine 在每次 LLM 调用前新建/重置;executeOneToolCall 命中缓存时跳过实际执行。 */
53
+ earlyToolResults?: Map<string, ToolExecResult>;
54
+ /** 流式工具早分发:进行中的预执行 Promise(流结束后 await 收尾) */
55
+ earlyExecutions?: Promise<void>[];
49
56
  }
50
57
  /**
51
58
  * 工具执行管理器
@@ -64,6 +71,23 @@ export declare class AgentToolExecutor {
64
71
  /** 被禁工具集合(构造时编译,O(1) 查找) */
65
72
  private deniedToolsSet;
66
73
  constructor(config: ToolExecutorConfig);
74
+ /**
75
+ * 流式工具早分发:LLM 仍在生成后续内容时,立即预执行已聚合完成的工具调用。
76
+ *
77
+ * 安全约束(任一命中则不早分发,交由流结束后的正常路径处理):
78
+ * - 工具未注册 / 被禁(deniedTools / blockedTools)/ 熔断中
79
+ * - execute_command(securityGuard 可能改写参数)
80
+ * - delegate_task(子代理路径复杂,含限流槽位)
81
+ * - 非并发工具(必须保持分组串行语义)
82
+ * - 参数 JSON 解析失败(可能流截断,需走截断抢救路径)
83
+ * - 存在 before_tool hook / onToolBefore middleware(可能 block 或 modify 参数)
84
+ *
85
+ * 预执行结果写入 state.earlyToolResults;executeOneToolCall 命中缓存时
86
+ * 跳过实际执行(事件发射、历史写入、records、after hooks 均保持原时序不变)。
87
+ */
88
+ startEarlyExecution(state: ToolLoopState, call: ToolCall): void;
89
+ /** 等待全部早分发预执行收尾(engine 在 LLM 流结束后调用;abort 场景同样先收尾再退出) */
90
+ awaitEarlyExecutions(state: ToolLoopState): Promise<void>;
67
91
  /** 执行一批 tool_calls(按并发属性分组) */
68
92
  executeToolCalls(state: ToolLoopState, toolCalls: ToolCall[]): AsyncGenerator<AgentEvent>;
69
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AgentToolExecutor = void 0;
7
7
  const rate_limit_manager_ts_1 = require("./rate-limit-manager.js");
8
+ const logger_ts_1 = require("../observability/logger.js");
8
9
  /**
9
10
  * 工具执行管理器
10
11
  *
@@ -25,6 +26,81 @@ class AgentToolExecutor {
25
26
  this.config = config;
26
27
  this.deniedToolsSet = new Set(config.deniedTools ?? []);
27
28
  }
29
+ /**
30
+ * 流式工具早分发:LLM 仍在生成后续内容时,立即预执行已聚合完成的工具调用。
31
+ *
32
+ * 安全约束(任一命中则不早分发,交由流结束后的正常路径处理):
33
+ * - 工具未注册 / 被禁(deniedTools / blockedTools)/ 熔断中
34
+ * - execute_command(securityGuard 可能改写参数)
35
+ * - delegate_task(子代理路径复杂,含限流槽位)
36
+ * - 非并发工具(必须保持分组串行语义)
37
+ * - 参数 JSON 解析失败(可能流截断,需走截断抢救路径)
38
+ * - 存在 before_tool hook / onToolBefore middleware(可能 block 或 modify 参数)
39
+ *
40
+ * 预执行结果写入 state.earlyToolResults;executeOneToolCall 命中缓存时
41
+ * 跳过实际执行(事件发射、历史写入、records、after hooks 均保持原时序不变)。
42
+ */
43
+ startEarlyExecution(state, call) {
44
+ try {
45
+ const name = call.function.name;
46
+ if (!name || !call.id)
47
+ return;
48
+ if (!this.config.toolRegistry.has(name))
49
+ return;
50
+ if (this.deniedToolsSet.has(name))
51
+ return;
52
+ if (state.blockedTools?.has(name))
53
+ return;
54
+ if (this.isCircuitBroken(state, name))
55
+ return;
56
+ if (name === 'execute_command' && this.config.securityGuard)
57
+ return;
58
+ if (name === 'delegate_task')
59
+ return;
60
+ const toolMeta = this.config.toolRegistry.get(name);
61
+ if (!toolMeta?.concurrent)
62
+ return;
63
+ if (this.config.hasBeforeToolInterceptors?.())
64
+ return;
65
+ // 参数不完整(流截断风险)不早分发:截断抢救逻辑依赖流结束后的完整上下文
66
+ let args;
67
+ try {
68
+ args = JSON.parse(call.function.arguments);
69
+ }
70
+ catch {
71
+ return;
72
+ }
73
+ state.earlyToolResults ??= new Map();
74
+ state.earlyExecutions ??= [];
75
+ if (state.earlyToolResults.has(call.id))
76
+ return; // 幂等去重
77
+ // 捕获当前缓存引用:onToolCallReset 替换 Map 后,旧尝试的写入落入旧 Map(作废)而非污染新缓存
78
+ const resultsMap = state.earlyToolResults;
79
+ const p = this.runWithTimeout(state, call, args)
80
+ .then((r) => {
81
+ resultsMap.set(call.id, r);
82
+ })
83
+ .catch((err) => {
84
+ // 预执行失败:不写缓存,流结束后的正常路径将重新执行
85
+ (0, logger_ts_1.logEvent)({
86
+ event: 'tool_executor.early_execution_failed',
87
+ level: 'warn',
88
+ sessionId: state.sessionId,
89
+ data: { tool: name, callId: call.id, error: err?.message || String(err) },
90
+ });
91
+ });
92
+ state.earlyExecutions.push(p);
93
+ }
94
+ catch {
95
+ // 早分发是纯优化:任何异常都不影响主流程
96
+ }
97
+ }
98
+ /** 等待全部早分发预执行收尾(engine 在 LLM 流结束后调用;abort 场景同样先收尾再退出) */
99
+ async awaitEarlyExecutions(state) {
100
+ if (!state.earlyExecutions?.length)
101
+ return;
102
+ await Promise.allSettled(state.earlyExecutions);
103
+ }
28
104
  /** 执行一批 tool_calls(按并发属性分组) */
29
105
  async *executeToolCalls(state, toolCalls) {
30
106
  const groups = this.groupByConcurrency(toolCalls);
@@ -190,8 +266,11 @@ class AgentToolExecutor {
190
266
  });
191
267
  continue;
192
268
  }
193
- // 执行工具
194
- const execResult = await this.runWithTimeout(state, call, args);
269
+ // 执行工具(流式早分发预执行结果命中时直接复用,跳过实际执行)
270
+ const cachedEarly = state.earlyToolResults?.get(call.id);
271
+ const execResult = cachedEarly
272
+ ? cachedEarly
273
+ : await this.runWithTimeout(state, call, args);
195
274
  // 立即更新失败计数,使熔断器能在同组后续调用中生效
196
275
  this.updateFailureCount(state, toolName, execResult.isError);
197
276
  results.push(execResult);
@@ -392,8 +471,17 @@ class AgentToolExecutor {
392
471
  const modified = allBefore.find(r => r.modify);
393
472
  if (modified?.modify)
394
473
  actualArgs = { ...actualArgs, ...modified.modify };
395
- // 执行工具(带超时)
396
- const execResult = await this.runWithTimeout(state, call, actualArgs);
474
+ // 执行工具(带超时);流式早分发预执行结果命中时直接复用(跳过实际执行)
475
+ const cachedEarly = state.earlyToolResults?.get(call.id);
476
+ let execResult;
477
+ if (cachedEarly) {
478
+ // 早分发预执行使用原始 args;before hook 的 modify 已在早分发禁用条件中排除,
479
+ // 此处 actualArgs 与预执行一致,可直接复用结果
480
+ execResult = cachedEarly;
481
+ }
482
+ else {
483
+ execResult = await this.runWithTimeout(state, call, actualArgs);
484
+ }
397
485
  const { result, isError, duration } = execResult;
398
486
  // Hook + Middleware: after_tool
399
487
  const afterHookCtx = {