@cicctencent/agent-core 0.1.1 → 0.1.3
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/agent/engine.d.ts.map +1 -0
- package/dist/cjs/agent/engine.js +766 -0
- package/dist/cjs/agent/engine.js.map +1 -0
- package/dist/cjs/agent/history-manager.d.ts.map +1 -0
- package/dist/cjs/agent/history-manager.js +271 -0
- package/dist/cjs/agent/history-manager.js.map +1 -0
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -0
- package/dist/cjs/agent/llm-caller.js +307 -0
- package/dist/cjs/agent/llm-caller.js.map +1 -0
- package/dist/cjs/agent/tool-executor.d.ts.map +1 -0
- package/dist/cjs/agent/tool-executor.js +568 -0
- package/dist/cjs/agent/tool-executor.js.map +1 -0
- package/dist/cjs/agent/types.d.ts.map +1 -0
- package/dist/cjs/agent/types.js +6 -0
- package/dist/cjs/agent/types.js.map +1 -0
- package/dist/cjs/agent/workflow.d.ts.map +1 -0
- package/dist/cjs/agent/workflow.js +262 -0
- package/dist/cjs/agent/workflow.js.map +1 -0
- package/dist/cjs/context/collector.d.ts.map +1 -0
- package/dist/cjs/context/collector.js +94 -0
- package/dist/cjs/context/collector.js.map +1 -0
- package/dist/cjs/context/manager.d.ts.map +1 -0
- package/dist/cjs/context/manager.js +36 -0
- package/dist/cjs/context/manager.js.map +1 -0
- package/dist/cjs/context/types.d.ts.map +1 -0
- package/dist/cjs/context/types.js +6 -0
- package/dist/cjs/context/types.js.map +1 -0
- package/dist/cjs/hooks/types.d.ts.map +1 -0
- package/dist/cjs/hooks/types.js +6 -0
- package/dist/cjs/hooks/types.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -0
- package/dist/cjs/llm/anthropic-provider.js +356 -0
- package/dist/cjs/llm/anthropic-provider.js.map +1 -0
- package/dist/cjs/llm/factory.d.ts.map +1 -0
- package/dist/cjs/llm/factory.js +34 -0
- package/dist/cjs/llm/factory.js.map +1 -0
- package/dist/cjs/llm/ollama-provider.d.ts.map +1 -0
- package/dist/cjs/llm/ollama-provider.js +34 -0
- package/dist/cjs/llm/ollama-provider.js.map +1 -0
- package/dist/cjs/llm/openai-provider.d.ts.map +1 -0
- package/dist/cjs/llm/openai-provider.js +186 -0
- package/dist/cjs/llm/openai-provider.js.map +1 -0
- package/dist/cjs/llm/provider.d.ts.map +1 -0
- package/dist/cjs/llm/provider.js +18 -0
- package/dist/cjs/llm/provider.js.map +1 -0
- package/dist/cjs/llm/types.d.ts.map +1 -0
- package/dist/cjs/llm/types.js +6 -0
- package/dist/cjs/llm/types.js.map +1 -0
- package/dist/cjs/mcp/base-client.d.ts.map +1 -0
- package/dist/cjs/mcp/base-client.js +112 -0
- package/dist/cjs/mcp/base-client.js.map +1 -0
- package/dist/cjs/mcp/client.d.ts.map +1 -0
- package/dist/cjs/mcp/client.js +76 -0
- package/dist/cjs/mcp/client.js.map +1 -0
- package/dist/cjs/mcp/factory.d.ts.map +1 -0
- package/dist/cjs/mcp/factory.js +43 -0
- package/dist/cjs/mcp/factory.js.map +1 -0
- package/dist/cjs/mcp/http-client.d.ts.map +1 -0
- package/dist/cjs/mcp/http-client.js +142 -0
- package/dist/cjs/mcp/http-client.js.map +1 -0
- package/dist/cjs/mcp/proxy-agent.d.ts.map +1 -0
- package/dist/cjs/mcp/proxy-agent.js +195 -0
- package/dist/cjs/mcp/proxy-agent.js.map +1 -0
- package/dist/cjs/mcp/stdio-client.d.ts.map +1 -0
- package/dist/cjs/mcp/stdio-client.js +95 -0
- package/dist/cjs/mcp/stdio-client.js.map +1 -0
- package/dist/cjs/mcp/types.d.ts.map +1 -0
- package/dist/cjs/mcp/types.js +6 -0
- package/dist/cjs/mcp/types.js.map +1 -0
- package/dist/cjs/memory/checkpoint.d.ts.map +1 -0
- package/dist/cjs/memory/checkpoint.js +160 -0
- package/dist/cjs/memory/checkpoint.js.map +1 -0
- package/dist/cjs/memory/extractor.d.ts.map +1 -0
- package/dist/cjs/memory/extractor.js +121 -0
- package/dist/cjs/memory/extractor.js.map +1 -0
- package/dist/cjs/memory/persona.d.ts.map +1 -0
- package/dist/cjs/memory/persona.js +79 -0
- package/dist/cjs/memory/persona.js.map +1 -0
- package/dist/cjs/memory/pipeline.d.ts.map +1 -0
- package/dist/cjs/memory/pipeline.js +148 -0
- package/dist/cjs/memory/pipeline.js.map +1 -0
- package/dist/cjs/memory/prompts.d.ts.map +1 -0
- package/dist/cjs/memory/prompts.js +70 -0
- package/dist/cjs/memory/prompts.js.map +1 -0
- package/dist/cjs/memory/recall.d.ts.map +1 -0
- package/dist/cjs/memory/recall.js +164 -0
- package/dist/cjs/memory/recall.js.map +1 -0
- package/dist/cjs/memory/scene.d.ts.map +1 -0
- package/dist/cjs/memory/scene.js +101 -0
- package/dist/cjs/memory/scene.js.map +1 -0
- package/dist/cjs/memory/types.d.ts.map +1 -0
- package/dist/cjs/memory/types.js +6 -0
- package/dist/cjs/memory/types.js.map +1 -0
- package/dist/cjs/middleware/types.d.ts.map +1 -0
- package/dist/cjs/middleware/types.js +6 -0
- package/dist/cjs/middleware/types.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/sandbox/types.d.ts.map +1 -0
- package/dist/cjs/sandbox/types.js +128 -0
- package/dist/cjs/sandbox/types.js.map +1 -0
- package/dist/cjs/security/guard.d.ts.map +1 -0
- package/dist/cjs/security/guard.js +229 -0
- package/dist/cjs/security/guard.js.map +1 -0
- package/dist/cjs/security/types.d.ts.map +1 -0
- package/dist/cjs/security/types.js +6 -0
- package/dist/cjs/security/types.js.map +1 -0
- package/dist/cjs/skill/manager.d.ts.map +1 -0
- package/dist/cjs/skill/manager.js +413 -0
- package/dist/cjs/skill/manager.js.map +1 -0
- package/dist/cjs/skill/router.d.ts.map +1 -0
- package/dist/cjs/skill/router.js +139 -0
- package/dist/cjs/skill/router.js.map +1 -0
- package/dist/cjs/skill/types.d.ts.map +1 -0
- package/dist/cjs/skill/types.js +6 -0
- package/dist/cjs/skill/types.js.map +1 -0
- package/dist/cjs/tool/delegate.d.ts.map +1 -0
- package/dist/cjs/tool/delegate.js +78 -0
- package/dist/cjs/tool/delegate.js.map +1 -0
- package/dist/cjs/tool/registry.d.ts.map +1 -0
- package/dist/cjs/tool/registry.js +57 -0
- package/dist/cjs/tool/registry.js.map +1 -0
- package/dist/cjs/tool/types.d.ts.map +1 -0
- package/dist/cjs/tool/types.js +6 -0
- package/dist/cjs/tool/types.js.map +1 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +6 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/token-counter.d.ts.map +1 -0
- package/dist/cjs/utils/token-counter.js +104 -0
- package/dist/cjs/utils/token-counter.js.map +1 -0
- package/dist/esm/agent/engine.d.ts +113 -0
- package/dist/esm/agent/engine.d.ts.map +1 -0
- package/dist/esm/agent/engine.js +762 -0
- package/dist/esm/agent/engine.js.map +1 -0
- package/dist/esm/agent/history-manager.d.ts +78 -0
- package/dist/esm/agent/history-manager.d.ts.map +1 -0
- package/dist/esm/agent/history-manager.js +267 -0
- package/dist/esm/agent/history-manager.js.map +1 -0
- package/dist/esm/agent/llm-caller.d.ts +58 -0
- package/dist/esm/agent/llm-caller.d.ts.map +1 -0
- package/dist/esm/agent/llm-caller.js +303 -0
- package/dist/esm/agent/llm-caller.js.map +1 -0
- package/dist/esm/agent/tool-executor.d.ts +95 -0
- package/dist/esm/agent/tool-executor.d.ts.map +1 -0
- package/dist/esm/agent/tool-executor.js +564 -0
- package/dist/esm/agent/tool-executor.js.map +1 -0
- package/dist/esm/agent/types.d.ts +128 -0
- package/dist/esm/agent/types.d.ts.map +1 -0
- package/dist/esm/agent/types.js +5 -0
- package/dist/esm/agent/types.js.map +1 -0
- package/dist/esm/agent/workflow.d.ts +74 -0
- package/dist/esm/agent/workflow.d.ts.map +1 -0
- package/dist/esm/agent/workflow.js +248 -0
- package/dist/esm/agent/workflow.js.map +1 -0
- package/dist/esm/context/collector.d.ts +12 -0
- package/dist/esm/context/collector.d.ts.map +1 -0
- package/dist/esm/context/collector.js +57 -0
- package/dist/esm/context/collector.js.map +1 -0
- package/dist/esm/context/manager.d.ts +16 -0
- package/dist/esm/context/manager.d.ts.map +1 -0
- package/dist/esm/context/manager.js +32 -0
- package/dist/esm/context/manager.js.map +1 -0
- package/dist/esm/context/types.d.ts +39 -0
- package/dist/esm/context/types.d.ts.map +1 -0
- package/dist/esm/context/types.js +5 -0
- package/dist/esm/context/types.js.map +1 -0
- package/dist/esm/hooks/types.d.ts +47 -0
- package/dist/esm/hooks/types.d.ts.map +1 -0
- package/dist/esm/hooks/types.js +5 -0
- package/dist/esm/hooks/types.js.map +1 -0
- package/{src/index.ts → dist/esm/index.d.ts} +15 -140
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +39 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/llm/anthropic-provider.d.ts +28 -0
- package/dist/esm/llm/anthropic-provider.d.ts.map +1 -0
- package/dist/esm/llm/anthropic-provider.js +352 -0
- package/dist/esm/llm/anthropic-provider.js.map +1 -0
- package/{src/llm/factory.ts → dist/esm/llm/factory.d.ts} +3 -18
- package/dist/esm/llm/factory.d.ts.map +1 -0
- package/dist/esm/llm/factory.js +30 -0
- package/dist/esm/llm/factory.js.map +1 -0
- package/dist/esm/llm/ollama-provider.d.ts +13 -0
- package/dist/esm/llm/ollama-provider.d.ts.map +1 -0
- package/dist/esm/llm/ollama-provider.js +30 -0
- package/dist/esm/llm/ollama-provider.js.map +1 -0
- package/dist/esm/llm/openai-provider.d.ts +18 -0
- package/dist/esm/llm/openai-provider.d.ts.map +1 -0
- package/dist/esm/llm/openai-provider.js +182 -0
- package/dist/esm/llm/openai-provider.js.map +1 -0
- package/{src/llm/provider.ts → dist/esm/llm/provider.d.ts} +1 -9
- package/dist/esm/llm/provider.d.ts.map +1 -0
- package/dist/esm/llm/provider.js +10 -0
- package/dist/esm/llm/provider.js.map +1 -0
- package/dist/esm/llm/types.d.ts +78 -0
- package/dist/esm/llm/types.d.ts.map +1 -0
- package/dist/esm/llm/types.js +5 -0
- package/dist/esm/llm/types.js.map +1 -0
- package/dist/esm/mcp/base-client.d.ts +50 -0
- package/dist/esm/mcp/base-client.d.ts.map +1 -0
- package/dist/esm/mcp/base-client.js +108 -0
- package/dist/esm/mcp/base-client.js.map +1 -0
- package/dist/esm/mcp/client.d.ts +27 -0
- package/dist/esm/mcp/client.d.ts.map +1 -0
- package/dist/esm/mcp/client.js +70 -0
- package/dist/esm/mcp/client.js.map +1 -0
- package/dist/esm/mcp/factory.d.ts +16 -0
- package/dist/esm/mcp/factory.d.ts.map +1 -0
- package/dist/esm/mcp/factory.js +39 -0
- package/dist/esm/mcp/factory.js.map +1 -0
- package/dist/esm/mcp/http-client.d.ts +24 -0
- package/dist/esm/mcp/http-client.d.ts.map +1 -0
- package/dist/esm/mcp/http-client.js +138 -0
- package/dist/esm/mcp/http-client.js.map +1 -0
- package/dist/esm/mcp/proxy-agent.d.ts +49 -0
- package/dist/esm/mcp/proxy-agent.d.ts.map +1 -0
- package/dist/esm/mcp/proxy-agent.js +187 -0
- package/dist/esm/mcp/proxy-agent.js.map +1 -0
- package/dist/esm/mcp/stdio-client.d.ts +16 -0
- package/dist/esm/mcp/stdio-client.d.ts.map +1 -0
- package/dist/esm/mcp/stdio-client.js +91 -0
- package/dist/esm/mcp/stdio-client.js.map +1 -0
- package/dist/esm/mcp/types.d.ts +60 -0
- package/dist/esm/mcp/types.d.ts.map +1 -0
- package/dist/esm/mcp/types.js +5 -0
- package/dist/esm/mcp/types.js.map +1 -0
- package/dist/esm/memory/checkpoint.d.ts +62 -0
- package/dist/esm/memory/checkpoint.d.ts.map +1 -0
- package/dist/esm/memory/checkpoint.js +121 -0
- package/dist/esm/memory/checkpoint.js.map +1 -0
- package/dist/esm/memory/extractor.d.ts +59 -0
- package/dist/esm/memory/extractor.d.ts.map +1 -0
- package/dist/esm/memory/extractor.js +117 -0
- package/dist/esm/memory/extractor.js.map +1 -0
- package/dist/esm/memory/persona.d.ts +38 -0
- package/dist/esm/memory/persona.d.ts.map +1 -0
- package/dist/esm/memory/persona.js +75 -0
- package/dist/esm/memory/persona.js.map +1 -0
- package/dist/esm/memory/pipeline.d.ts +50 -0
- package/dist/esm/memory/pipeline.d.ts.map +1 -0
- package/dist/esm/memory/pipeline.js +144 -0
- package/dist/esm/memory/pipeline.js.map +1 -0
- package/dist/esm/memory/prompts.d.ts +9 -0
- package/dist/esm/memory/prompts.d.ts.map +1 -0
- package/{src/memory/prompts.ts → dist/esm/memory/prompts.js} +6 -13
- package/dist/esm/memory/prompts.js.map +1 -0
- package/dist/esm/memory/recall.d.ts +66 -0
- package/dist/esm/memory/recall.d.ts.map +1 -0
- package/dist/esm/memory/recall.js +159 -0
- package/dist/esm/memory/recall.js.map +1 -0
- package/dist/esm/memory/scene.d.ts +49 -0
- package/dist/esm/memory/scene.d.ts.map +1 -0
- package/dist/esm/memory/scene.js +97 -0
- package/dist/esm/memory/scene.js.map +1 -0
- package/dist/esm/memory/types.d.ts +43 -0
- package/dist/esm/memory/types.d.ts.map +1 -0
- package/dist/esm/memory/types.js +5 -0
- package/dist/esm/memory/types.js.map +1 -0
- package/dist/esm/middleware/types.d.ts +52 -0
- package/dist/esm/middleware/types.d.ts.map +1 -0
- package/dist/esm/middleware/types.js +5 -0
- package/dist/esm/middleware/types.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/sandbox/types.d.ts +59 -0
- package/dist/esm/sandbox/types.d.ts.map +1 -0
- package/dist/esm/sandbox/types.js +125 -0
- package/dist/esm/sandbox/types.js.map +1 -0
- package/dist/esm/security/guard.d.ts +41 -0
- package/dist/esm/security/guard.d.ts.map +1 -0
- package/dist/esm/security/guard.js +225 -0
- package/dist/esm/security/guard.js.map +1 -0
- package/dist/esm/security/types.d.ts +36 -0
- package/dist/esm/security/types.d.ts.map +1 -0
- package/dist/esm/security/types.js +5 -0
- package/dist/esm/security/types.js.map +1 -0
- package/dist/esm/skill/manager.d.ts +95 -0
- package/dist/esm/skill/manager.d.ts.map +1 -0
- package/dist/esm/skill/manager.js +376 -0
- package/dist/esm/skill/manager.js.map +1 -0
- package/dist/esm/skill/router.d.ts +26 -0
- package/dist/esm/skill/router.d.ts.map +1 -0
- package/dist/esm/skill/router.js +135 -0
- package/dist/esm/skill/router.js.map +1 -0
- package/dist/esm/skill/types.d.ts +55 -0
- package/dist/esm/skill/types.d.ts.map +1 -0
- package/dist/esm/skill/types.js +5 -0
- package/dist/esm/skill/types.js.map +1 -0
- package/dist/esm/tool/delegate.d.ts +34 -0
- package/dist/esm/tool/delegate.d.ts.map +1 -0
- package/dist/esm/tool/delegate.js +75 -0
- package/dist/esm/tool/delegate.js.map +1 -0
- package/dist/esm/tool/registry.d.ts +24 -0
- package/dist/esm/tool/registry.d.ts.map +1 -0
- package/dist/esm/tool/registry.js +53 -0
- package/dist/esm/tool/registry.js.map +1 -0
- package/dist/esm/tool/types.d.ts +101 -0
- package/dist/esm/tool/types.d.ts.map +1 -0
- package/dist/esm/tool/types.js +5 -0
- package/dist/esm/tool/types.js.map +1 -0
- package/dist/esm/types.d.ts +150 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +5 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/token-counter.d.ts +22 -0
- package/dist/esm/utils/token-counter.d.ts.map +1 -0
- package/dist/esm/utils/token-counter.js +99 -0
- package/dist/esm/utils/token-counter.js.map +1 -0
- package/package.json +16 -10
- package/dist/agent/engine.d.ts.map +0 -1
- package/dist/agent/history-manager.d.ts.map +0 -1
- package/dist/agent/llm-caller.d.ts.map +0 -1
- package/dist/agent/tool-executor.d.ts.map +0 -1
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/workflow.d.ts.map +0 -1
- package/dist/context/collector.d.ts.map +0 -1
- package/dist/context/manager.d.ts.map +0 -1
- package/dist/context/types.d.ts.map +0 -1
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/llm/anthropic-provider.d.ts.map +0 -1
- package/dist/llm/factory.d.ts.map +0 -1
- package/dist/llm/ollama-provider.d.ts.map +0 -1
- package/dist/llm/openai-provider.d.ts.map +0 -1
- package/dist/llm/provider.d.ts.map +0 -1
- package/dist/llm/types.d.ts.map +0 -1
- package/dist/mcp/base-client.d.ts.map +0 -1
- package/dist/mcp/client.d.ts.map +0 -1
- package/dist/mcp/factory.d.ts.map +0 -1
- package/dist/mcp/http-client.d.ts.map +0 -1
- package/dist/mcp/proxy-agent.d.ts.map +0 -1
- package/dist/mcp/stdio-client.d.ts.map +0 -1
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/memory/checkpoint.d.ts.map +0 -1
- package/dist/memory/extractor.d.ts.map +0 -1
- package/dist/memory/persona.d.ts.map +0 -1
- package/dist/memory/pipeline.d.ts.map +0 -1
- package/dist/memory/prompts.d.ts.map +0 -1
- package/dist/memory/recall.d.ts.map +0 -1
- package/dist/memory/scene.d.ts.map +0 -1
- package/dist/memory/types.d.ts.map +0 -1
- package/dist/middleware/types.d.ts.map +0 -1
- package/dist/sandbox/types.d.ts.map +0 -1
- package/dist/security/guard.d.ts.map +0 -1
- package/dist/security/types.d.ts.map +0 -1
- package/dist/skill/manager.d.ts.map +0 -1
- package/dist/skill/router.d.ts.map +0 -1
- package/dist/skill/types.d.ts.map +0 -1
- package/dist/tool/delegate.d.ts.map +0 -1
- package/dist/tool/registry.d.ts.map +0 -1
- package/dist/tool/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/token-counter.d.ts.map +0 -1
- package/src/agent/engine.ts +0 -875
- package/src/agent/history-manager.ts +0 -323
- package/src/agent/llm-caller.ts +0 -383
- package/src/agent/tool-executor.ts +0 -713
- package/src/agent/types.ts +0 -136
- package/src/agent/workflow.ts +0 -339
- package/src/context/collector.ts +0 -59
- package/src/context/manager.ts +0 -40
- package/src/context/types.ts +0 -51
- package/src/hooks/types.ts +0 -77
- package/src/llm/anthropic-provider.ts +0 -412
- package/src/llm/ollama-provider.ts +0 -39
- package/src/llm/openai-provider.ts +0 -200
- package/src/llm/types.ts +0 -91
- package/src/mcp/base-client.ts +0 -159
- package/src/mcp/client.ts +0 -81
- package/src/mcp/factory.ts +0 -45
- package/src/mcp/http-client.ts +0 -149
- package/src/mcp/proxy-agent.ts +0 -227
- package/src/mcp/stdio-client.ts +0 -104
- package/src/mcp/types.ts +0 -65
- package/src/memory/checkpoint.ts +0 -146
- package/src/memory/extractor.ts +0 -164
- package/src/memory/persona.ts +0 -106
- package/src/memory/pipeline.ts +0 -192
- package/src/memory/recall.ts +0 -217
- package/src/memory/scene.ts +0 -137
- package/src/memory/types.ts +0 -54
- package/src/middleware/types.ts +0 -62
- package/src/sandbox/types.ts +0 -185
- package/src/security/guard.ts +0 -249
- package/src/security/types.ts +0 -46
- package/src/skill/manager.ts +0 -420
- package/src/skill/router.ts +0 -158
- package/src/skill/types.ts +0 -67
- package/src/tool/delegate.ts +0 -105
- package/src/tool/registry.ts +0 -64
- package/src/tool/types.ts +0 -124
- package/src/types.ts +0 -188
- package/src/utils/token-counter.ts +0 -108
- /package/dist/{agent → cjs/agent}/engine.d.ts +0 -0
- /package/dist/{agent → cjs/agent}/history-manager.d.ts +0 -0
- /package/dist/{agent → cjs/agent}/llm-caller.d.ts +0 -0
- /package/dist/{agent → cjs/agent}/tool-executor.d.ts +0 -0
- /package/dist/{agent → cjs/agent}/types.d.ts +0 -0
- /package/dist/{agent → cjs/agent}/workflow.d.ts +0 -0
- /package/dist/{context → cjs/context}/collector.d.ts +0 -0
- /package/dist/{context → cjs/context}/manager.d.ts +0 -0
- /package/dist/{context → cjs/context}/types.d.ts +0 -0
- /package/dist/{hooks → cjs/hooks}/types.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{llm → cjs/llm}/anthropic-provider.d.ts +0 -0
- /package/dist/{llm → cjs/llm}/factory.d.ts +0 -0
- /package/dist/{llm → cjs/llm}/ollama-provider.d.ts +0 -0
- /package/dist/{llm → cjs/llm}/openai-provider.d.ts +0 -0
- /package/dist/{llm → cjs/llm}/provider.d.ts +0 -0
- /package/dist/{llm → cjs/llm}/types.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/base-client.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/client.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/factory.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/http-client.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/proxy-agent.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/stdio-client.d.ts +0 -0
- /package/dist/{mcp → cjs/mcp}/types.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/checkpoint.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/extractor.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/persona.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/pipeline.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/prompts.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/recall.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/scene.d.ts +0 -0
- /package/dist/{memory → cjs/memory}/types.d.ts +0 -0
- /package/dist/{middleware → cjs/middleware}/types.d.ts +0 -0
- /package/dist/{sandbox → cjs/sandbox}/types.d.ts +0 -0
- /package/dist/{security → cjs/security}/guard.d.ts +0 -0
- /package/dist/{security → cjs/security}/types.d.ts +0 -0
- /package/dist/{skill → cjs/skill}/manager.d.ts +0 -0
- /package/dist/{skill → cjs/skill}/router.d.ts +0 -0
- /package/dist/{skill → cjs/skill}/types.d.ts +0 -0
- /package/dist/{tool → cjs/tool}/delegate.d.ts +0 -0
- /package/dist/{tool → cjs/tool}/registry.d.ts +0 -0
- /package/dist/{tool → cjs/tool}/types.d.ts +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{utils → cjs/utils}/token-counter.d.ts +0 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// LLMCaller — LLM 调用 + 重试 + 降级
|
|
3
|
+
// ============================================================
|
|
4
|
+
/**
|
|
5
|
+
* LLM 调用管理器
|
|
6
|
+
*
|
|
7
|
+
* 职责:
|
|
8
|
+
* - 流式调用 LLM(支持 tool_calls 累积)
|
|
9
|
+
* - 重试 + 指数退避
|
|
10
|
+
* - 主 Provider → Fallback Provider 降级
|
|
11
|
+
*/
|
|
12
|
+
export class LLMCaller {
|
|
13
|
+
config;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
}
|
|
17
|
+
/** 更新主 Provider(热更新场景) */
|
|
18
|
+
updateProvider(provider) {
|
|
19
|
+
this.config.llmProvider = provider;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 带重试和降级的 LLM 调用
|
|
23
|
+
* 返回 assistant message 或 null(所有尝试失败)
|
|
24
|
+
*
|
|
25
|
+
* 特殊处理:当 API 返回“输入过长”错误时,自动压缩历史并重试(最多一次)
|
|
26
|
+
*/
|
|
27
|
+
async *callWithRetry(sessionId, messages, toolDefs, abortSignal) {
|
|
28
|
+
const policy = this.config.retryPolicy;
|
|
29
|
+
const maxRetries = policy?.maxRetries ?? 0;
|
|
30
|
+
const initialDelay = policy?.initialDelay ?? 1000;
|
|
31
|
+
const maxDelay = policy?.maxDelay ?? 30000;
|
|
32
|
+
const backoffFactor = policy?.backoffFactor ?? 2;
|
|
33
|
+
// 尝试主 Provider
|
|
34
|
+
const { result: firstResult, contextTooLong } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
35
|
+
if (firstResult !== null)
|
|
36
|
+
return firstResult;
|
|
37
|
+
// 上下文过长:压缩后重试(仅一次)
|
|
38
|
+
if (contextTooLong && this.config.historyManager) {
|
|
39
|
+
const tokensAfter = this.config.historyManager.compressMessages(messages);
|
|
40
|
+
console.log(`[LLMCaller] Context too long, compressed to ~${tokensAfter} tokens, retrying...`);
|
|
41
|
+
yield this.config.createEvent(sessionId, {
|
|
42
|
+
type: 'thinking',
|
|
43
|
+
content: `🔄 Context too long, compressed history and retrying...`,
|
|
44
|
+
});
|
|
45
|
+
const { result } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
46
|
+
if (result !== null)
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
// 重试主 Provider
|
|
50
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
51
|
+
if (abortSignal.aborted)
|
|
52
|
+
return null;
|
|
53
|
+
const delay = Math.min(initialDelay * Math.pow(backoffFactor, attempt - 1), maxDelay);
|
|
54
|
+
const providerName = this.config.llmProvider.getModel().provider || 'primary';
|
|
55
|
+
yield this.config.createEvent(sessionId, {
|
|
56
|
+
type: 'retry',
|
|
57
|
+
attempt,
|
|
58
|
+
maxRetries,
|
|
59
|
+
delay,
|
|
60
|
+
error: `LLM call failed, retrying...`,
|
|
61
|
+
provider: providerName,
|
|
62
|
+
});
|
|
63
|
+
await sleep(delay);
|
|
64
|
+
if (abortSignal.aborted)
|
|
65
|
+
return null;
|
|
66
|
+
const { result } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
67
|
+
if (result !== null)
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
// 主 Provider 重试耗尽,尝试 fallback
|
|
71
|
+
if (this.config.fallbackProvider) {
|
|
72
|
+
const fallbackName = this.config.fallbackProvider.getModel().provider || 'fallback';
|
|
73
|
+
console.log(`[LLMCaller] Primary provider exhausted retries, switching to fallback: ${fallbackName}`);
|
|
74
|
+
yield this.config.createEvent(sessionId, {
|
|
75
|
+
type: 'retry',
|
|
76
|
+
attempt: maxRetries + 1,
|
|
77
|
+
maxRetries,
|
|
78
|
+
delay: 0,
|
|
79
|
+
error: `Switching to fallback provider: ${fallbackName}`,
|
|
80
|
+
provider: fallbackName,
|
|
81
|
+
});
|
|
82
|
+
const { result } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true);
|
|
83
|
+
if (result !== null)
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
// 所有尝试失败
|
|
87
|
+
const errorMsg = 'All LLM providers failed after retries';
|
|
88
|
+
await this.config.runHooks('on_error', { sessionId, iteration: 0, error: errorMsg, recoverable: false });
|
|
89
|
+
yield this.config.createEvent(sessionId, { type: 'error', error: errorMsg, recoverable: false });
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
/** 是否为“上下文过长”错误 */
|
|
93
|
+
isContextTooLongError(err) {
|
|
94
|
+
const msg = (err?.message || '').toLowerCase();
|
|
95
|
+
return msg.includes('too long') || msg.includes('input length') ||
|
|
96
|
+
msg.includes('context length') || msg.includes('too many tokens') ||
|
|
97
|
+
msg.includes('maximum context') || msg.includes('max_tokens');
|
|
98
|
+
}
|
|
99
|
+
/** 单次 LLM 调用(流式),带诊断信息 */
|
|
100
|
+
async *callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback) {
|
|
101
|
+
try {
|
|
102
|
+
// Hook: before_ll_call(仅主 Provider 首次调用时触发)
|
|
103
|
+
if (!isFallback) {
|
|
104
|
+
await this.config.runHooks('before_ll_call', {
|
|
105
|
+
sessionId,
|
|
106
|
+
iteration: 0,
|
|
107
|
+
messages,
|
|
108
|
+
tools: toolDefs,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// 使用流式 API
|
|
112
|
+
const stream = provider.chatStream({
|
|
113
|
+
messages,
|
|
114
|
+
tools: toolDefs.length > 0 ? toolDefs : undefined,
|
|
115
|
+
toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
|
|
116
|
+
abortSignal,
|
|
117
|
+
});
|
|
118
|
+
// 累积流式数据
|
|
119
|
+
let contentParts = [];
|
|
120
|
+
let reasoningParts = [];
|
|
121
|
+
const toolCallsMap = new Map();
|
|
122
|
+
let role = 'assistant';
|
|
123
|
+
let chunkUsage;
|
|
124
|
+
let toolStreamingLastEmit = 0;
|
|
125
|
+
for await (const chunk of stream) {
|
|
126
|
+
if (abortSignal.aborted)
|
|
127
|
+
break;
|
|
128
|
+
if (chunk.usage) {
|
|
129
|
+
chunkUsage = chunk.usage;
|
|
130
|
+
}
|
|
131
|
+
const delta = chunk.delta;
|
|
132
|
+
if (delta.reasoning_content) {
|
|
133
|
+
reasoningParts.push(delta.reasoning_content);
|
|
134
|
+
yield this.config.createEvent(sessionId, { type: 'thinking', content: delta.reasoning_content });
|
|
135
|
+
}
|
|
136
|
+
if (delta.content) {
|
|
137
|
+
contentParts.push(delta.content);
|
|
138
|
+
yield this.config.createEvent(sessionId, { type: 'message', content: delta.content, delta: true });
|
|
139
|
+
}
|
|
140
|
+
if (delta.tool_calls) {
|
|
141
|
+
for (const tc of delta.tool_calls) {
|
|
142
|
+
const idx = tc.index ?? 0;
|
|
143
|
+
if (!toolCallsMap.has(idx)) {
|
|
144
|
+
toolCallsMap.set(idx, { id: '', name: '', args: '' });
|
|
145
|
+
}
|
|
146
|
+
const entry = toolCallsMap.get(idx);
|
|
147
|
+
if (tc.id)
|
|
148
|
+
entry.id = tc.id;
|
|
149
|
+
if (tc.function?.name)
|
|
150
|
+
entry.name = tc.function.name;
|
|
151
|
+
if (tc.function?.arguments)
|
|
152
|
+
entry.args += tc.function.arguments;
|
|
153
|
+
}
|
|
154
|
+
const totalLen = Array.from(toolCallsMap.values()).reduce((s, e) => s + e.args.length, 0);
|
|
155
|
+
const threshold = Math.max(toolStreamingLastEmit * 2, 500);
|
|
156
|
+
if (totalLen - toolStreamingLastEmit >= threshold) {
|
|
157
|
+
toolStreamingLastEmit = totalLen;
|
|
158
|
+
const names = Array.from(toolCallsMap.values()).map(e => e.name || 'tool').join(', ');
|
|
159
|
+
yield this.config.createEvent(sessionId, {
|
|
160
|
+
type: 'thinking',
|
|
161
|
+
content: `⏳ Generating ${names} parameters (${totalLen} chars)...`,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (delta.role)
|
|
166
|
+
role = delta.role;
|
|
167
|
+
}
|
|
168
|
+
const fullContent = contentParts.join('') || null;
|
|
169
|
+
const fullReasoning = reasoningParts.join('') || null;
|
|
170
|
+
const toolCalls = [];
|
|
171
|
+
const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
172
|
+
for (const [, entry] of sortedEntries) {
|
|
173
|
+
if (entry.id && entry.name) {
|
|
174
|
+
toolCalls.push({
|
|
175
|
+
id: entry.id,
|
|
176
|
+
type: 'function',
|
|
177
|
+
function: { name: entry.name, arguments: entry.args },
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
const assistant = {
|
|
182
|
+
role,
|
|
183
|
+
content: fullContent,
|
|
184
|
+
...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
|
|
185
|
+
...(fullReasoning ? { reasoning_content: fullReasoning } : {}),
|
|
186
|
+
};
|
|
187
|
+
if (!fullContent && toolCalls.length === 0) {
|
|
188
|
+
return { result: null, contextTooLong: false };
|
|
189
|
+
}
|
|
190
|
+
return { result: assistant, contextTooLong: false };
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
const contextTooLong = this.isContextTooLongError(err);
|
|
194
|
+
console.warn(`[LLMCaller] LLM call failed (${isFallback ? 'fallback' : 'primary'})${contextTooLong ? ' [CONTEXT_TOO_LONG]' : ''}:`, err?.message || err);
|
|
195
|
+
return { result: null, contextTooLong };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** 单次 LLM 调用(流式),返回 assistant message 或 null(保留向后兼容) */
|
|
199
|
+
async *callOnce(sessionId, messages, toolDefs, abortSignal, provider, isFallback) {
|
|
200
|
+
try {
|
|
201
|
+
// Hook: before_ll_call(仅主 Provider 首次调用时触发)
|
|
202
|
+
if (!isFallback) {
|
|
203
|
+
await this.config.runHooks('before_ll_call', {
|
|
204
|
+
sessionId,
|
|
205
|
+
iteration: 0,
|
|
206
|
+
messages,
|
|
207
|
+
tools: toolDefs,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// 使用流式 API
|
|
211
|
+
const stream = provider.chatStream({
|
|
212
|
+
messages,
|
|
213
|
+
tools: toolDefs.length > 0 ? toolDefs : undefined,
|
|
214
|
+
toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
|
|
215
|
+
abortSignal,
|
|
216
|
+
});
|
|
217
|
+
// 累积流式数据
|
|
218
|
+
let contentParts = [];
|
|
219
|
+
let reasoningParts = [];
|
|
220
|
+
const toolCallsMap = new Map();
|
|
221
|
+
let role = 'assistant';
|
|
222
|
+
let chunkUsage;
|
|
223
|
+
let toolStreamingLastEmit = 0; // 工具参数流式生成进度追踪
|
|
224
|
+
for await (const chunk of stream) {
|
|
225
|
+
if (abortSignal.aborted)
|
|
226
|
+
break;
|
|
227
|
+
if (chunk.usage) {
|
|
228
|
+
chunkUsage = chunk.usage;
|
|
229
|
+
}
|
|
230
|
+
const delta = chunk.delta;
|
|
231
|
+
if (delta.reasoning_content) {
|
|
232
|
+
reasoningParts.push(delta.reasoning_content);
|
|
233
|
+
yield this.config.createEvent(sessionId, { type: 'thinking', content: delta.reasoning_content });
|
|
234
|
+
}
|
|
235
|
+
if (delta.content) {
|
|
236
|
+
contentParts.push(delta.content);
|
|
237
|
+
yield this.config.createEvent(sessionId, { type: 'message', content: delta.content, delta: true });
|
|
238
|
+
}
|
|
239
|
+
if (delta.tool_calls) {
|
|
240
|
+
for (const tc of delta.tool_calls) {
|
|
241
|
+
const idx = tc.index ?? 0;
|
|
242
|
+
if (!toolCallsMap.has(idx)) {
|
|
243
|
+
toolCallsMap.set(idx, { id: '', name: '', args: '' });
|
|
244
|
+
}
|
|
245
|
+
const entry = toolCallsMap.get(idx);
|
|
246
|
+
if (tc.id)
|
|
247
|
+
entry.id = tc.id;
|
|
248
|
+
if (tc.function?.name)
|
|
249
|
+
entry.name = tc.function.name;
|
|
250
|
+
if (tc.function?.arguments)
|
|
251
|
+
entry.args += tc.function.arguments;
|
|
252
|
+
}
|
|
253
|
+
// 工具参数流式生成时,定期发出 thinking 事件让 UI 有可见进度
|
|
254
|
+
const totalLen = Array.from(toolCallsMap.values()).reduce((s, e) => s + e.args.length, 0);
|
|
255
|
+
const threshold = Math.max(toolStreamingLastEmit * 2, 500);
|
|
256
|
+
if (totalLen - toolStreamingLastEmit >= threshold) {
|
|
257
|
+
toolStreamingLastEmit = totalLen;
|
|
258
|
+
const names = Array.from(toolCallsMap.values()).map(e => e.name || 'tool').join(', ');
|
|
259
|
+
yield this.config.createEvent(sessionId, {
|
|
260
|
+
type: 'thinking',
|
|
261
|
+
content: `⏳ Generating ${names} parameters (${totalLen} chars)...`,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (delta.role)
|
|
266
|
+
role = delta.role;
|
|
267
|
+
}
|
|
268
|
+
// 组装完整 assistant message
|
|
269
|
+
const fullContent = contentParts.join('') || null;
|
|
270
|
+
const fullReasoning = reasoningParts.join('') || null;
|
|
271
|
+
const toolCalls = [];
|
|
272
|
+
const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
273
|
+
for (const [, entry] of sortedEntries) {
|
|
274
|
+
if (entry.id && entry.name) {
|
|
275
|
+
toolCalls.push({
|
|
276
|
+
id: entry.id,
|
|
277
|
+
type: 'function',
|
|
278
|
+
function: { name: entry.name, arguments: entry.args },
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const assistant = {
|
|
283
|
+
role,
|
|
284
|
+
content: fullContent,
|
|
285
|
+
...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
|
|
286
|
+
...(fullReasoning ? { reasoning_content: fullReasoning } : {}),
|
|
287
|
+
};
|
|
288
|
+
if (!fullContent && toolCalls.length === 0) {
|
|
289
|
+
return null; // 空响应,由重试逻辑处理
|
|
290
|
+
}
|
|
291
|
+
return assistant;
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
console.warn(`[LLMCaller] LLM call failed (${isFallback ? 'fallback' : 'primary'}):`, err?.message || err);
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/** 辅助:异步延迟 */
|
|
300
|
+
function sleep(ms) {
|
|
301
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=llm-caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { AgentEvent, Message, ToolCall, ToolCallRecord } from '../types.ts';
|
|
2
|
+
import type { ToolRegistry } from '../tool/registry.ts';
|
|
3
|
+
import type { ToolContext } from '../tool/types.ts';
|
|
4
|
+
import type { SecurityGuard } from '../security/guard.ts';
|
|
5
|
+
import type { HookEvent, HookContext, HookResult } from '../hooks/types.ts';
|
|
6
|
+
import type { Middleware } from '../middleware/types.ts';
|
|
7
|
+
import type { HistoryManager } from './history-manager.ts';
|
|
8
|
+
/** 工具执行配置 */
|
|
9
|
+
export interface ToolExecutorConfig {
|
|
10
|
+
/** Tool Registry */
|
|
11
|
+
toolRegistry: ToolRegistry;
|
|
12
|
+
/** 安全守卫(可选) */
|
|
13
|
+
securityGuard?: SecurityGuard;
|
|
14
|
+
/** 单工具执行超时(毫秒) */
|
|
15
|
+
toolTimeout: number;
|
|
16
|
+
/** Hook 执行器 */
|
|
17
|
+
runHooks: (event: HookEvent, ctx: HookContext) => Promise<HookResult[]>;
|
|
18
|
+
/** 中间件工具阶段执行器 */
|
|
19
|
+
runMiddlewareToolPhase: (phase: 'onToolBefore' | 'onToolAfter', ctx: HookContext) => Promise<HookResult[]>;
|
|
20
|
+
/** 事件创建辅助 */
|
|
21
|
+
createEvent: (sessionId: string, event: Record<string, unknown>) => AgentEvent;
|
|
22
|
+
/** 历史管理器 */
|
|
23
|
+
historyManager: HistoryManager;
|
|
24
|
+
/** 中间件列表 */
|
|
25
|
+
getMiddleware: () => Middleware[] | undefined;
|
|
26
|
+
}
|
|
27
|
+
/** 工具执行结果 */
|
|
28
|
+
export interface ToolExecResult {
|
|
29
|
+
result: string;
|
|
30
|
+
isError: boolean;
|
|
31
|
+
actualArgs: Record<string, unknown>;
|
|
32
|
+
duration: number;
|
|
33
|
+
call: ToolCall;
|
|
34
|
+
}
|
|
35
|
+
/** LoopState 接口(与 Engine 交互的最小契约) */
|
|
36
|
+
export interface ToolLoopState {
|
|
37
|
+
sessionId: string;
|
|
38
|
+
messages: Message[];
|
|
39
|
+
toolContext: ToolContext;
|
|
40
|
+
internalAbort: AbortController;
|
|
41
|
+
iteration: number;
|
|
42
|
+
toolCallRecords: ToolCallRecord[];
|
|
43
|
+
consecutiveToolFailures: Map<string, number>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 工具执行管理器
|
|
47
|
+
*
|
|
48
|
+
* 职责:
|
|
49
|
+
* - 按并发属性分组执行 tool_calls
|
|
50
|
+
* - 串行/并行执行 + 超时保护
|
|
51
|
+
* - 熔断器(连续失败自动阻断)
|
|
52
|
+
* - 安全检查(execute_command)
|
|
53
|
+
* - Hook/Middleware 生命周期集成
|
|
54
|
+
*/
|
|
55
|
+
export declare class AgentToolExecutor {
|
|
56
|
+
private config;
|
|
57
|
+
/** 连续失败熔断阈值:同一工具连续失败超过此值后自动阻断(降低以加速失败重试终止) */
|
|
58
|
+
private static readonly CIRCUIT_BREAKER_THRESHOLD;
|
|
59
|
+
constructor(config: ToolExecutorConfig);
|
|
60
|
+
/** 执行一批 tool_calls(按并发属性分组) */
|
|
61
|
+
executeToolCalls(state: ToolLoopState, toolCalls: ToolCall[]): AsyncGenerator<AgentEvent>;
|
|
62
|
+
/** 按并发属性将 tool_calls 分组 */
|
|
63
|
+
private groupByConcurrency;
|
|
64
|
+
/** 并行执行一组工具(按顺序推送事件和结果) */
|
|
65
|
+
private executeToolGroupParallel;
|
|
66
|
+
/** 串行执行单个工具调用(含安全检查 + Hooks) */
|
|
67
|
+
private executeOneToolCall;
|
|
68
|
+
/** 带超时的工具执行 */
|
|
69
|
+
private runWithTimeout;
|
|
70
|
+
private emitUnavailableToolResult;
|
|
71
|
+
/** 检查工具是否被熔断 */
|
|
72
|
+
private isCircuitBroken;
|
|
73
|
+
/** 更新工具连续失败计数 */
|
|
74
|
+
private updateFailureCount;
|
|
75
|
+
/**
|
|
76
|
+
* 从截断的 JSON 中抢救 run_script 的参数。
|
|
77
|
+
* 当 LLM 生成过长的 code 导致 JSON 被截断时,尝试提取 language 和 code 字段并修复执行。
|
|
78
|
+
* 返回 null 表示抢救失败。
|
|
79
|
+
*/
|
|
80
|
+
private rescueRunScriptArgs;
|
|
81
|
+
/**
|
|
82
|
+
* 从截断的 JSON 中抢救 delegate_task 的参数。
|
|
83
|
+
* delegate_task 的 task 字段可能很长(包含数据、指令),导致 JSON 被截断。
|
|
84
|
+
* 抢救策略:提取 agent(短字段,不会被截断)和 task(可能不完整但仍可执行)。
|
|
85
|
+
* 返回 null 表示抢救失败。
|
|
86
|
+
*/
|
|
87
|
+
private rescueDelegateTaskArgs;
|
|
88
|
+
/**
|
|
89
|
+
* 从截断的 JSON 中抢救 write_file / append_file 的参数。
|
|
90
|
+
* 当 LLM 生成过长的 content 导致 JSON 被截断时,尝试提取 path 和部分内容并写入。
|
|
91
|
+
* 返回 null 表示抢救失败。
|
|
92
|
+
*/
|
|
93
|
+
private rescueWriteFileArgs;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=tool-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACxE,iBAAiB;IACjB,sBAAsB,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3G,aAAa;IACb,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,UAAU,CAAC;IAC/E,YAAY;IACZ,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY;IACZ,aAAa,EAAE,MAAM,UAAU,EAAE,GAAG,SAAS,CAAC;CAC/C;AAQD,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAqB;IAEnC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;gBAE1C,MAAM,EAAE,kBAAkB;IAItC,+BAA+B;IACxB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;IAmBhG,2BAA2B;IAC3B,OAAO,CAAC,kBAAkB;IA0B1B,2BAA2B;YACZ,wBAAwB;IAoEvC,gCAAgC;YACjB,kBAAkB;IAwQjC,eAAe;YACD,cAAc;YA0Db,yBAAyB;IA0BxC,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAIvB,iBAAiB;IACjB,OAAO,CAAC,kBAAkB;IAQ1B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAoD9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAyC5B"}
|