@cicctencent/agent-core 1.0.34 → 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.
- package/dist/cjs/a2a/rest-runner.d.ts.map +1 -1
- package/dist/cjs/a2a/rest-runner.js +24 -5
- package/dist/cjs/a2a/rest-runner.js.map +1 -1
- package/dist/cjs/a2a/runner.d.ts.map +1 -1
- package/dist/cjs/a2a/runner.js +33 -8
- package/dist/cjs/a2a/runner.js.map +1 -1
- package/dist/cjs/agent/compaction.d.ts.map +1 -1
- package/dist/cjs/agent/compaction.js +1 -4
- package/dist/cjs/agent/compaction.js.map +1 -1
- package/dist/cjs/agent/constants.d.ts +14 -0
- package/dist/cjs/agent/constants.d.ts.map +1 -0
- package/dist/cjs/agent/constants.js +30 -0
- package/dist/cjs/agent/constants.js.map +1 -0
- package/dist/cjs/agent/engine.d.ts +57 -2
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +139 -379
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/guard-controller.d.ts +64 -0
- package/dist/cjs/agent/guard-controller.d.ts.map +1 -0
- package/dist/cjs/agent/guard-controller.js +265 -0
- package/dist/cjs/agent/guard-controller.js.map +1 -0
- package/dist/cjs/agent/llm-caller.d.ts +22 -5
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +119 -30
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/agent/rate-limit-manager.d.ts +8 -0
- package/dist/cjs/agent/rate-limit-manager.d.ts.map +1 -1
- package/dist/cjs/agent/rate-limit-manager.js +36 -0
- package/dist/cjs/agent/rate-limit-manager.js.map +1 -1
- package/dist/cjs/agent/runtime-builder.d.ts +44 -0
- package/dist/cjs/agent/runtime-builder.d.ts.map +1 -1
- package/dist/cjs/agent/runtime-builder.js +78 -20
- package/dist/cjs/agent/runtime-builder.js.map +1 -1
- package/dist/cjs/agent/session-state-manager.d.ts +47 -0
- package/dist/cjs/agent/session-state-manager.d.ts.map +1 -0
- package/dist/cjs/agent/session-state-manager.js +85 -0
- package/dist/cjs/agent/session-state-manager.js.map +1 -0
- package/dist/cjs/agent/tool-executor.d.ts +26 -3
- package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
- package/dist/cjs/agent/tool-executor.js +101 -20
- package/dist/cjs/agent/tool-executor.js.map +1 -1
- package/dist/cjs/agent/tool-section-builder.d.ts +55 -0
- package/dist/cjs/agent/tool-section-builder.d.ts.map +1 -0
- package/dist/cjs/agent/tool-section-builder.js +191 -0
- package/dist/cjs/agent/tool-section-builder.js.map +1 -0
- package/dist/cjs/agent/types.d.ts +6 -2
- package/dist/cjs/agent/types.d.ts.map +1 -1
- package/dist/cjs/agent/types.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +20 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/anthropic-provider.d.ts +5 -0
- package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/cjs/llm/anthropic-provider.js +25 -1
- package/dist/cjs/llm/anthropic-provider.js.map +1 -1
- package/dist/cjs/llm/ollama-provider.d.ts +8 -1
- package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
- package/dist/cjs/llm/ollama-provider.js +19 -0
- package/dist/cjs/llm/ollama-provider.js.map +1 -1
- package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
- package/dist/cjs/llm/openai-provider.js +24 -0
- package/dist/cjs/llm/openai-provider.js.map +1 -1
- package/dist/cjs/llm/types.d.ts +40 -0
- package/dist/cjs/llm/types.d.ts.map +1 -1
- package/dist/cjs/llm/types.js +83 -0
- package/dist/cjs/llm/types.js.map +1 -1
- package/dist/cjs/mcp/base-client.js +2 -2
- package/dist/cjs/mcp/base-client.js.map +1 -1
- package/dist/cjs/mcp/client.js +4 -4
- package/dist/cjs/mcp/client.js.map +1 -1
- package/dist/cjs/mcp/factory.d.ts +6 -1
- package/dist/cjs/mcp/factory.d.ts.map +1 -1
- package/dist/cjs/mcp/factory.js +7 -2
- package/dist/cjs/mcp/factory.js.map +1 -1
- package/dist/cjs/mcp/http-client.js +5 -5
- package/dist/cjs/mcp/http-client.js.map +1 -1
- package/dist/cjs/observability/logger.d.ts.map +1 -1
- package/dist/cjs/observability/logger.js +56 -2
- package/dist/cjs/observability/logger.js.map +1 -1
- package/dist/cjs/pool/engine-pool.d.ts +4 -4
- package/dist/cjs/pool/engine-pool.d.ts.map +1 -1
- package/dist/cjs/pool/engine-pool.js +21 -50
- package/dist/cjs/pool/engine-pool.js.map +1 -1
- package/dist/cjs/runtime/run-registry-interface.d.ts +6 -0
- package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.d.ts +8 -0
- package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.js +25 -0
- package/dist/cjs/runtime/run-registry.js.map +1 -1
- package/dist/cjs/security/guard.d.ts +12 -1
- package/dist/cjs/security/guard.d.ts.map +1 -1
- package/dist/cjs/security/guard.js +42 -10
- package/dist/cjs/security/guard.js.map +1 -1
- package/dist/cjs/security/types.d.ts +11 -0
- package/dist/cjs/security/types.d.ts.map +1 -1
- package/dist/cjs/tool/ask-user.js +3 -3
- package/dist/cjs/tool/delegate.d.ts.map +1 -1
- package/dist/cjs/tool/delegate.js +4 -2
- package/dist/cjs/tool/delegate.js.map +1 -1
- package/dist/cjs/types.d.ts +15 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/dsml-parser.d.ts +1 -1
- package/dist/cjs/utils/dsml-parser.js +1 -1
- package/dist/cjs/utils/event-adapter.d.ts.map +1 -1
- package/dist/cjs/utils/event-adapter.js +6 -0
- package/dist/cjs/utils/event-adapter.js.map +1 -1
- package/dist/cjs/utils/ttl-lru-cache.d.ts +49 -0
- package/dist/cjs/utils/ttl-lru-cache.d.ts.map +1 -0
- package/dist/cjs/utils/ttl-lru-cache.js +108 -0
- package/dist/cjs/utils/ttl-lru-cache.js.map +1 -0
- package/dist/esm/a2a/rest-runner.d.ts.map +1 -1
- package/dist/esm/a2a/rest-runner.js +24 -5
- package/dist/esm/a2a/rest-runner.js.map +1 -1
- package/dist/esm/a2a/runner.d.ts.map +1 -1
- package/dist/esm/a2a/runner.js +33 -8
- package/dist/esm/a2a/runner.js.map +1 -1
- package/dist/esm/agent/compaction.d.ts.map +1 -1
- package/dist/esm/agent/compaction.js +1 -4
- package/dist/esm/agent/compaction.js.map +1 -1
- package/dist/esm/agent/constants.d.ts +14 -0
- package/dist/esm/agent/constants.d.ts.map +1 -0
- package/dist/esm/agent/constants.js +27 -0
- package/dist/esm/agent/constants.js.map +1 -0
- package/dist/esm/agent/engine.d.ts +57 -2
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +140 -380
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/guard-controller.d.ts +64 -0
- package/dist/esm/agent/guard-controller.d.ts.map +1 -0
- package/dist/esm/agent/guard-controller.js +256 -0
- package/dist/esm/agent/guard-controller.js.map +1 -0
- package/dist/esm/agent/llm-caller.d.ts +22 -5
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +119 -30
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/agent/rate-limit-manager.d.ts +8 -0
- package/dist/esm/agent/rate-limit-manager.d.ts.map +1 -1
- package/dist/esm/agent/rate-limit-manager.js +36 -0
- package/dist/esm/agent/rate-limit-manager.js.map +1 -1
- package/dist/esm/agent/runtime-builder.d.ts +44 -0
- package/dist/esm/agent/runtime-builder.d.ts.map +1 -1
- package/dist/esm/agent/runtime-builder.js +75 -20
- package/dist/esm/agent/runtime-builder.js.map +1 -1
- package/dist/esm/agent/session-state-manager.d.ts +47 -0
- package/dist/esm/agent/session-state-manager.d.ts.map +1 -0
- package/dist/esm/agent/session-state-manager.js +78 -0
- package/dist/esm/agent/session-state-manager.js.map +1 -0
- package/dist/esm/agent/tool-executor.d.ts +26 -3
- package/dist/esm/agent/tool-executor.d.ts.map +1 -1
- package/dist/esm/agent/tool-executor.js +101 -20
- package/dist/esm/agent/tool-executor.js.map +1 -1
- package/dist/esm/agent/tool-section-builder.d.ts +55 -0
- package/dist/esm/agent/tool-section-builder.d.ts.map +1 -0
- package/dist/esm/agent/tool-section-builder.js +182 -0
- package/dist/esm/agent/tool-section-builder.js.map +1 -0
- package/dist/esm/agent/types.d.ts +6 -2
- package/dist/esm/agent/types.d.ts.map +1 -1
- package/dist/esm/agent/types.js.map +1 -1
- package/dist/esm/index.d.ts +7 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/anthropic-provider.d.ts +5 -0
- package/dist/esm/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/esm/llm/anthropic-provider.js +25 -1
- package/dist/esm/llm/anthropic-provider.js.map +1 -1
- package/dist/esm/llm/ollama-provider.d.ts +8 -1
- package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
- package/dist/esm/llm/ollama-provider.js +19 -0
- package/dist/esm/llm/ollama-provider.js.map +1 -1
- package/dist/esm/llm/openai-provider.d.ts.map +1 -1
- package/dist/esm/llm/openai-provider.js +24 -0
- package/dist/esm/llm/openai-provider.js.map +1 -1
- package/dist/esm/llm/types.d.ts +40 -0
- package/dist/esm/llm/types.d.ts.map +1 -1
- package/dist/esm/llm/types.js +80 -0
- package/dist/esm/llm/types.js.map +1 -1
- package/dist/esm/mcp/base-client.js +2 -2
- package/dist/esm/mcp/base-client.js.map +1 -1
- package/dist/esm/mcp/client.js +4 -4
- package/dist/esm/mcp/client.js.map +1 -1
- package/dist/esm/mcp/factory.d.ts +6 -1
- package/dist/esm/mcp/factory.d.ts.map +1 -1
- package/dist/esm/mcp/factory.js +7 -2
- package/dist/esm/mcp/factory.js.map +1 -1
- package/dist/esm/mcp/http-client.js +5 -5
- package/dist/esm/mcp/http-client.js.map +1 -1
- package/dist/esm/observability/logger.d.ts.map +1 -1
- package/dist/esm/observability/logger.js +56 -2
- package/dist/esm/observability/logger.js.map +1 -1
- package/dist/esm/pool/engine-pool.d.ts +4 -4
- package/dist/esm/pool/engine-pool.d.ts.map +1 -1
- package/dist/esm/pool/engine-pool.js +21 -50
- package/dist/esm/pool/engine-pool.js.map +1 -1
- package/dist/esm/runtime/run-registry-interface.d.ts +6 -0
- package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.d.ts +8 -0
- package/dist/esm/runtime/run-registry.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.js +25 -0
- package/dist/esm/runtime/run-registry.js.map +1 -1
- package/dist/esm/security/guard.d.ts +12 -1
- package/dist/esm/security/guard.d.ts.map +1 -1
- package/dist/esm/security/guard.js +42 -10
- package/dist/esm/security/guard.js.map +1 -1
- package/dist/esm/security/types.d.ts +11 -0
- package/dist/esm/security/types.d.ts.map +1 -1
- package/dist/esm/tool/ask-user.js +3 -3
- package/dist/esm/tool/delegate.d.ts.map +1 -1
- package/dist/esm/tool/delegate.js +4 -2
- package/dist/esm/tool/delegate.js.map +1 -1
- package/dist/esm/types.d.ts +15 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/dsml-parser.d.ts +1 -1
- package/dist/esm/utils/dsml-parser.js +1 -1
- package/dist/esm/utils/event-adapter.d.ts.map +1 -1
- package/dist/esm/utils/event-adapter.js +6 -0
- package/dist/esm/utils/event-adapter.js.map +1 -1
- package/dist/esm/utils/ttl-lru-cache.d.ts +49 -0
- package/dist/esm/utils/ttl-lru-cache.d.ts.map +1 -0
- package/dist/esm/utils/ttl-lru-cache.js +104 -0
- package/dist/esm/utils/ttl-lru-cache.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AgentEvent, Message, TokenUsage } from '../types.js';
|
|
2
|
-
import type { LLMProvider } from '../llm/types.js';
|
|
1
|
+
import type { AgentEvent, Message, ToolCall, TokenUsage } from '../types.js';
|
|
2
|
+
import type { LLMProvider, ResponseFormat } from '../llm/types.js';
|
|
3
3
|
import type { ToolDefinition } from '../tool/types.js';
|
|
4
4
|
import type { RetryPolicy, EngineContext } from './types.js';
|
|
5
5
|
import type { HistoryManager } from './history-manager.js';
|
|
@@ -29,6 +29,19 @@ export interface LLMCallObservability {
|
|
|
29
29
|
/** 实际生效的模型(降级到 fallback 时记录 fallback 模型名) */
|
|
30
30
|
fallbackModel?: string;
|
|
31
31
|
}
|
|
32
|
+
/** 流式 LLM 调用回调(流式工具早分发) */
|
|
33
|
+
export interface LLMStreamCallbacks {
|
|
34
|
+
/**
|
|
35
|
+
* 单个 tool_call 的参数聚合完成(后续 tool_call index 出现,或流结束)时立即上报。
|
|
36
|
+
* 消费方可借此提前启动工具执行,使执行时间与剩余内容生成时间重叠。
|
|
37
|
+
*/
|
|
38
|
+
onToolCallReady?: (call: ToolCall) => void;
|
|
39
|
+
/**
|
|
40
|
+
* 新的 LLM 调用尝试即将开始(重试 / TPM 退避 / fallback)。
|
|
41
|
+
* 上一次尝试产生的早分发状态应作废:早分发缓存须清空,避免跨尝试复用过期结果。
|
|
42
|
+
*/
|
|
43
|
+
onToolCallReset?: () => void;
|
|
44
|
+
}
|
|
32
45
|
/** 单次 LLM 调用结果 */
|
|
33
46
|
export interface LLMCallResult {
|
|
34
47
|
/** 完整的 assistant message */
|
|
@@ -54,9 +67,13 @@ export declare class LLMCaller {
|
|
|
54
67
|
/** 是否为不可重试错误(4xx 类确定性错误) */
|
|
55
68
|
private isNonRetryableError;
|
|
56
69
|
/**
|
|
57
|
-
*
|
|
70
|
+
* 错误分类:将错误分类为不同类型,用于决定重试策略和用户提示。
|
|
71
|
+
*
|
|
72
|
+
* 分类优先级:
|
|
73
|
+
* 1. 结构化字段优先 —— 若 err 携带 `kind` 或 `retryable`,直接依此判定,跨供应商一致;
|
|
74
|
+
* 2. 文本兜底 —— 无结构化字段时回落到错误文本解析(保持旧行为兼容)。
|
|
58
75
|
*
|
|
59
|
-
*
|
|
76
|
+
* 分类优先级(文本兜底):context_too_long > rate_limit_tpm > non_retryable > timeout > server_error > network_error > retryable
|
|
60
77
|
*/
|
|
61
78
|
private classifyError;
|
|
62
79
|
/**
|
|
@@ -76,7 +93,7 @@ export declare class LLMCaller {
|
|
|
76
93
|
* 特殊处理:当 API 返回"输入过长"错误时,自动压缩历史并重试(最多一次)
|
|
77
94
|
* 遇到不可重试错误(4xx 配额/认证等)时立即放弃,不浪费重试次数
|
|
78
95
|
*/
|
|
79
|
-
callWithRetry(sessionId: string, messages: Message[], toolDefs: ToolDefinition[], abortSignal: AbortSignal): AsyncGenerator<AgentEvent, {
|
|
96
|
+
callWithRetry(sessionId: string, messages: Message[], toolDefs: ToolDefinition[], abortSignal: AbortSignal, callbacks?: LLMStreamCallbacks, responseFormat?: ResponseFormat): AsyncGenerator<AgentEvent, {
|
|
80
97
|
assistant: Message | null;
|
|
81
98
|
usage?: TokenUsage;
|
|
82
99
|
observability?: LLMCallObservability;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-caller.d.ts","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"llm-caller.d.ts","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAgB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,eAAe;AACf,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,qBAAqB;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,WAAW;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2BAA2B;AAC3B,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,kBAAkB;AAClB,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAInC,0BAA0B;IAC1B,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI3C,4BAA4B;IAC5B,OAAO,CAAC,mBAAmB;IAI3B;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IA4FrB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,kBAAkB,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,cAAc,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAC;QAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IA+LtH,mBAAmB;IACnB,OAAO,CAAC,qBAAqB;IAO7B;;;;;;;;;OASG;YACY,UAAU;IA0CzB,0BAA0B;YACX,gBAAgB;CAuYhC"}
|
|
@@ -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
|
|
30
|
+
return this.classifyError(err) === 'non_retryable';
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
*
|
|
33
|
+
* 错误分类:将错误分类为不同类型,用于决定重试策略和用户提示。
|
|
33
34
|
*
|
|
34
|
-
* 分类优先级:
|
|
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(
|
|
37
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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':
|
|
330
|
+
'non_retryable': lastErrorMsg || '请求被拒绝(认证/配额问题)',
|
|
276
331
|
'context_too_long': '对话上下文过长,请开启新对话或清理历史',
|
|
277
|
-
'retryable':
|
|
332
|
+
'retryable': lastErrorMsg || 'AI 服务调用失败,请稍后重试',
|
|
278
333
|
};
|
|
279
|
-
const errorMsg = userFacingErrors[errorType] ||
|
|
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(
|
|
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();
|
|
@@ -350,9 +409,12 @@ class LLMCaller {
|
|
|
350
409
|
const msgTokens = (0, token_counter_ts_1.countMessageTokens)(messages);
|
|
351
410
|
const toolTokens = toolDefs.length > 0 ? (0, token_counter_ts_1.estimateTokens)(JSON.stringify(toolDefs)) : 0;
|
|
352
411
|
const estPromptTokens = msgTokens + toolTokens;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
412
|
+
// 精简日志:只在 token 数量异常大时输出详细信息
|
|
413
|
+
if (estPromptTokens > 30000) {
|
|
414
|
+
console.log(`[LLMCaller] Request → ${modelLabel} (${isFallback ? 'fallback' : 'primary'}): msgs=${messages.length}, tools=${toolDefs.length}, est_prompt=~${estPromptTokens} tok`);
|
|
415
|
+
}
|
|
416
|
+
// 逐条消息诊断:只在 debug 模式且 token 异常大时(>50000)输出详细信息
|
|
417
|
+
if (msgTokens > 50000 && process.env.LOG_LEVEL === 'debug') {
|
|
356
418
|
console.warn(`[LLMCaller] ⚠️ Message token count unusually high (${msgTokens} tok), diagnosing per-message:`);
|
|
357
419
|
for (let i = 0; i < messages.length; i++) {
|
|
358
420
|
const m = messages[i];
|
|
@@ -419,6 +481,7 @@ class LLMCaller {
|
|
|
419
481
|
messages,
|
|
420
482
|
tools: toolDefs.length > 0 ? toolDefs : undefined,
|
|
421
483
|
toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
|
|
484
|
+
responseFormat,
|
|
422
485
|
abortSignal: streamAbort.signal,
|
|
423
486
|
debug: debugEnabled,
|
|
424
487
|
onDebug,
|
|
@@ -430,6 +493,25 @@ class LLMCaller {
|
|
|
430
493
|
let role = 'assistant';
|
|
431
494
|
let toolStreamingLastEmit = 0;
|
|
432
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
|
+
};
|
|
433
515
|
// DSML 流式解析器(用于处理 DeepSeek 模型的 DSML 格式工具调用)。
|
|
434
516
|
// 解析器内部已处理「部分 DSML 标记前缀」的暂留,因此所有 content chunk
|
|
435
517
|
// 统一走 process(),由解析器决定哪些是文本增量、哪些暂留等待后续 chunk。
|
|
@@ -501,6 +583,8 @@ class LLMCaller {
|
|
|
501
583
|
for (const tc of delta.tool_calls) {
|
|
502
584
|
const idx = tc.index ?? 0;
|
|
503
585
|
if (!toolCallsMap.has(idx)) {
|
|
586
|
+
// 新 tool_call index 出现:更小 index 的条目参数已聚合完成,立即上报(早分发)
|
|
587
|
+
reportReadyToolCalls(idx);
|
|
504
588
|
toolCallsMap.set(idx, { id: '', name: '', args: '' });
|
|
505
589
|
}
|
|
506
590
|
const entry = toolCallsMap.get(idx);
|
|
@@ -552,6 +636,8 @@ class LLMCaller {
|
|
|
552
636
|
const fullContent = contentParts.join('') || null;
|
|
553
637
|
const fullReasoning = reasoningParts.join('') || null;
|
|
554
638
|
const toolCalls = [];
|
|
639
|
+
// 流结束:上报剩余未上报的 tool_calls(最后一个 index 的完成信号即流结束)
|
|
640
|
+
reportReadyToolCalls();
|
|
555
641
|
const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
556
642
|
for (const [, entry] of sortedEntries) {
|
|
557
643
|
if (entry.id && entry.name) {
|
|
@@ -661,7 +747,10 @@ class LLMCaller {
|
|
|
661
747
|
for (const info of debugEvents) {
|
|
662
748
|
yield this.config.createEvent(sessionId, { type: 'debug', debug: info });
|
|
663
749
|
}
|
|
664
|
-
|
|
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 };
|
|
665
754
|
}
|
|
666
755
|
}
|
|
667
756
|
}
|
|
@@ -1 +1 @@
|
|
|
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;;;AAQ/D,4DAA8D;AAC9D,mEAA2D;AAC3D,gEAA+E;AAwC/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,EAAE,OAAO,IAAI,EAAE,CAAC,KAAK,eAAe,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,MAAc;QAClC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEzC,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,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,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;QAExB,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,GAAkB,IAAI,CAAC;QAEpC,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,CAAC,CAAC;QAC3O,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,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACpF,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,CAAC,CAAC;YAC3H,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,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC;QAE9F,mBAAmB;QACnB,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACjD,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,CAAC,CAAC;YACrL,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,CAAC,CAAC;gBACjN,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,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU;oBAAE,MAAM;YACnF,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,CAAC,CAAC;gBAC7N,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,EAAE,OAAO,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACvF,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,CAAC,CAAC;oBAClI,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,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAA2B;YAC/C,SAAS,EAAE,6BAA6B;YACxC,eAAe,EAAE,iBAAiB;YAClC,cAAc,EAAE,mBAAmB;YACnC,gBAAgB,EAAE,oBAAoB;YACtC,eAAe,EAAE,SAAS,IAAI,gBAAgB;YAC9C,kBAAkB,EAAE,qBAAqB;YACzC,WAAW,EAAE,SAAS,IAAI,iBAAiB;SAC5C,CAAC;QACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,wCAAwC,CAAC;QACtG,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,YAA2B;QAE3B,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,IAAI,SAAS,GAAG,YAAY,CAAC;QAC7B,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,CAAC,CAAC;YAC9I,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,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBAAE,MAAM;QACjE,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;QAEnB,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,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,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,WAAW,QAAQ,CAAC,MAAM,MAAM,SAAS,gBAAgB,QAAQ,CAAC,MAAM,MAAM,UAAU,sBAAsB,eAAe,MAAM,CAAC,CAAC;YAE5N,6CAA6C;YAC7C,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;gBACtB,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,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,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,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,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,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC1F,CAAC;IACH,CAAC;CAEF;AArsBD,8BAqsBC;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"}
|
|
1
|
+
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
@@ -130,6 +130,14 @@ declare class RateLimitManager {
|
|
|
130
130
|
private resetGlobal;
|
|
131
131
|
/** 重置指定主会话相关的限流状态 */
|
|
132
132
|
private resetForSession;
|
|
133
|
+
/**
|
|
134
|
+
* 完全重置所有限流与并发状态(测试用)。
|
|
135
|
+
*
|
|
136
|
+
* 与 `resetGlobal()` 不同:此方法无条件清空全部状态(包括 429 计数、
|
|
137
|
+
* 冷却周期、per-session 并发等),并清理冷却定时器,
|
|
138
|
+
* 确保测试间完全隔离。
|
|
139
|
+
*/
|
|
140
|
+
reset(): void;
|
|
133
141
|
}
|
|
134
142
|
/** 全局单例(跨所有 AgentEngine 实例共享) */
|
|
135
143
|
export declare const rateLimitManager: RateLimitManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AA8DA;;GAEG;AACH,cAAM,gBAAgB;IAEpB,cAAc;IACd,OAAO,CAAC,QAAQ,CAAS;IACzB,qBAAqB;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,8BAA8B;IAC9B,OAAO,CAAC,aAAa,CAA8C;IAGnE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAyC;IACnE,6BAA6B;IAC7B,OAAO,CAAC,mBAAmB,CAAqB;IAGhD,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAE5C,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAWtB,uCAAuC;IACvC,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAQzE;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA4C9C;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe3C;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CjE;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAwD1C,cAAc;IACd,SAAS,IAAI,OAAO;IAIpB,gCAAgC;IAChC,wBAAwB,IAAI,OAAO;IAKnC,oBAAoB;IACpB,QAAQ,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;IAYD,yBAAyB;IACzB,OAAO,CAAC,mBAAmB;IAQ3B,sBAAsB;IACtB,OAAO,CAAC,aAAa;IA0BrB,sCAAsC;IACtC,OAAO,CAAC,mBAAmB;IAI3B,cAAc;IACd,OAAO,CAAC,gBAAgB;IAqBxB,cAAc;IACd,OAAO,CAAC,YAAY;IAmBpB,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAkCnB,qCAAqC;IACrC,OAAO,CAAC,UAAU;IA4BlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAoCnB,qBAAqB;IACrB,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"rate-limit-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/rate-limit-manager.ts"],"names":[],"mappings":"AA8DA;;GAEG;AACH,cAAM,gBAAgB;IAEpB,cAAc;IACd,OAAO,CAAC,QAAQ,CAAS;IACzB,qBAAqB;IACrB,OAAO,CAAC,aAAa,CAAK;IAC1B,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,uCAAuC;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,8BAA8B;IAC9B,OAAO,CAAC,aAAa,CAA8C;IAGnE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAyC;IACnE,6BAA6B;IAC7B,OAAO,CAAC,mBAAmB,CAAqB;IAGhD,sBAAsB;IACtB,OAAO,CAAC,SAAS,CAA6B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAE5C,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAWtB,uCAAuC;IACvC,OAAO,CAAC,cAAc;IAQtB;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IAQzE;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IA4C9C;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe3C;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CjE;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAwD1C,cAAc;IACd,SAAS,IAAI,OAAO;IAIpB,gCAAgC;IAChC,wBAAwB,IAAI,OAAO;IAKnC,oBAAoB;IACpB,QAAQ,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;IAYD,yBAAyB;IACzB,OAAO,CAAC,mBAAmB;IAQ3B,sBAAsB;IACtB,OAAO,CAAC,aAAa;IA0BrB,sCAAsC;IACtC,OAAO,CAAC,mBAAmB;IAI3B,cAAc;IACd,OAAO,CAAC,gBAAgB;IAqBxB,cAAc;IACd,OAAO,CAAC,YAAY;IAmBpB,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAkCnB,qCAAqC;IACrC,OAAO,CAAC,UAAU;IA4BlB,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAMvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAoCnB,qBAAqB;IACrB,OAAO,CAAC,eAAe;IAmBvB;;;;;;OAMG;IACH,KAAK,IAAI,IAAI;CA0Bd;AAED,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AAEvD,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,sBAAsB;AACtB,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAC"}
|
|
@@ -541,6 +541,42 @@ class RateLimitManager {
|
|
|
541
541
|
this.sessionConcurrency.delete(sessionId);
|
|
542
542
|
}
|
|
543
543
|
}
|
|
544
|
+
/**
|
|
545
|
+
* 完全重置所有限流与并发状态(测试用)。
|
|
546
|
+
*
|
|
547
|
+
* 与 `resetGlobal()` 不同:此方法无条件清空全部状态(包括 429 计数、
|
|
548
|
+
* 冷却周期、per-session 并发等),并清理冷却定时器,
|
|
549
|
+
* 确保测试间完全隔离。
|
|
550
|
+
*/
|
|
551
|
+
reset() {
|
|
552
|
+
if (this.cooldownTimer) {
|
|
553
|
+
clearTimeout(this.cooldownTimer);
|
|
554
|
+
this.cooldownTimer = null;
|
|
555
|
+
}
|
|
556
|
+
this.cooldown = false;
|
|
557
|
+
this.cooldownUntil = 0;
|
|
558
|
+
this.count429 = 0;
|
|
559
|
+
this.last429Ts = 0;
|
|
560
|
+
this.cooldownCycles = 0;
|
|
561
|
+
// 拒绝所有排队中的请求
|
|
562
|
+
for (const conc of this.sessionConcurrency.values()) {
|
|
563
|
+
const queue = conc.waitQueue;
|
|
564
|
+
conc.waitQueue = [];
|
|
565
|
+
for (const item of queue) {
|
|
566
|
+
if (item.timeoutId)
|
|
567
|
+
clearTimeout(item.timeoutId);
|
|
568
|
+
try {
|
|
569
|
+
item.resolve(false);
|
|
570
|
+
}
|
|
571
|
+
catch { /* ignore */ }
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
this.sessionConcurrency.clear();
|
|
575
|
+
this.activeSubSessionSet.clear();
|
|
576
|
+
this.parentMap.clear();
|
|
577
|
+
this.mainSessionControllers.clear();
|
|
578
|
+
this.abortedSessions.clear();
|
|
579
|
+
}
|
|
544
580
|
}
|
|
545
581
|
exports.RateLimitManager = RateLimitManager;
|
|
546
582
|
/** 全局单例(跨所有 AgentEngine 实例共享) */
|