kagent-ts 0.1.4 → 0.1.5
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/LICENSE +68 -21
- package/README.md +27 -371
- package/dist/compression/progressive-compressor.d.ts +66 -0
- package/dist/compression/progressive-compressor.d.ts.map +1 -0
- package/dist/compression/progressive-compressor.js +367 -0
- package/dist/compression/progressive-compressor.js.map +1 -0
- package/dist/compression/types.d.ts +1 -5
- package/dist/compression/types.d.ts.map +1 -1
- package/dist/context/context-manager.d.ts +34 -15
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +78 -28
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/types.d.ts +20 -4
- package/dist/context/types.d.ts.map +1 -1
- package/dist/core/agent.d.ts +354 -25
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +646 -64
- package/dist/core/agent.js.map +1 -1
- package/dist/core/fusion-agent.d.ts +207 -0
- package/dist/core/fusion-agent.d.ts.map +1 -0
- package/dist/core/fusion-agent.js +769 -0
- package/dist/core/fusion-agent.js.map +1 -0
- package/dist/core/hooks.d.ts +19 -7
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.d.ts +1 -15
- package/dist/core/plan-solve-agent.d.ts.map +1 -1
- package/dist/core/plan-solve-agent.js +142 -117
- package/dist/core/plan-solve-agent.js.map +1 -1
- package/dist/core/react-agent.d.ts +0 -13
- package/dist/core/react-agent.d.ts.map +1 -1
- package/dist/core/react-agent.js +127 -102
- package/dist/core/react-agent.js.map +1 -1
- package/dist/core/response-schema.d.ts +65 -0
- package/dist/core/response-schema.d.ts.map +1 -1
- package/dist/core/response-schema.js +174 -1
- package/dist/core/response-schema.js.map +1 -1
- package/dist/core/system-prompts.d.ts +27 -0
- package/dist/core/system-prompts.d.ts.map +1 -0
- package/dist/core/system-prompts.js +112 -0
- package/dist/core/system-prompts.js.map +1 -0
- package/dist/eval/benchmark.d.ts +81 -0
- package/dist/eval/benchmark.d.ts.map +1 -0
- package/dist/eval/benchmark.js +292 -0
- package/dist/eval/benchmark.js.map +1 -0
- package/dist/eval/eval-runner.d.ts +79 -0
- package/dist/eval/eval-runner.d.ts.map +1 -0
- package/dist/eval/eval-runner.js +252 -0
- package/dist/eval/eval-runner.js.map +1 -0
- package/dist/eval/index.d.ts +7 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +13 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/tool-call-evaluator.d.ts +72 -0
- package/dist/eval/tool-call-evaluator.d.ts.map +1 -0
- package/dist/eval/tool-call-evaluator.js +265 -0
- package/dist/eval/tool-call-evaluator.js.map +1 -0
- package/dist/eval/types.d.ts +219 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +3 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/index.d.ts +58 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +116 -8
- package/dist/index.js.map +1 -1
- package/dist/llm/anthropic-provider.d.ts +141 -0
- package/dist/llm/anthropic-provider.d.ts.map +1 -0
- package/dist/llm/anthropic-provider.js +486 -0
- package/dist/llm/anthropic-provider.js.map +1 -0
- package/dist/llm/errors.d.ts +26 -0
- package/dist/llm/errors.d.ts.map +1 -0
- package/dist/llm/errors.js +19 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/factory.d.ts +73 -0
- package/dist/llm/factory.d.ts.map +1 -0
- package/dist/llm/factory.js +77 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/fallback-provider.d.ts +47 -0
- package/dist/llm/fallback-provider.d.ts.map +1 -0
- package/dist/llm/fallback-provider.js +91 -0
- package/dist/llm/fallback-provider.js.map +1 -0
- package/dist/llm/interface.d.ts +54 -11
- package/dist/llm/interface.d.ts.map +1 -1
- package/dist/llm/interface.js +34 -0
- package/dist/llm/interface.js.map +1 -1
- package/dist/llm/model-router.d.ts +126 -0
- package/dist/llm/model-router.d.ts.map +1 -0
- package/dist/llm/model-router.js +178 -0
- package/dist/llm/model-router.js.map +1 -0
- package/dist/llm/openai-provider.d.ts +8 -32
- package/dist/llm/openai-provider.d.ts.map +1 -1
- package/dist/llm/openai-provider.js +27 -60
- package/dist/llm/openai-provider.js.map +1 -1
- package/dist/llm/rate-limiter.d.ts +41 -0
- package/dist/llm/rate-limiter.d.ts.map +1 -0
- package/dist/llm/rate-limiter.js +93 -0
- package/dist/llm/rate-limiter.js.map +1 -0
- package/dist/llm/retry.d.ts +26 -0
- package/dist/llm/retry.d.ts.map +1 -0
- package/dist/llm/retry.js +44 -0
- package/dist/llm/retry.js.map +1 -0
- package/dist/llm/token-budget.d.ts +97 -0
- package/dist/llm/token-budget.d.ts.map +1 -0
- package/dist/llm/token-budget.js +115 -0
- package/dist/llm/token-budget.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +7 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.d.ts +38 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +34 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +10 -2
- package/dist/mcp/mcp-client-manager.d.ts.map +1 -1
- package/dist/mcp/mcp-client-manager.js +20 -9
- package/dist/mcp/mcp-client-manager.js.map +1 -1
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +6 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +119 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +334 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/messages/types.d.ts +2 -0
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +13 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/json-extractor.d.ts +18 -0
- package/dist/orchestrator/json-extractor.d.ts.map +1 -0
- package/dist/orchestrator/json-extractor.js +111 -0
- package/dist/orchestrator/json-extractor.js.map +1 -0
- package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
- package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-agent.js +675 -0
- package/dist/orchestrator/orchestrator-agent.js.map +1 -0
- package/dist/orchestrator/orchestrator-response.d.ts +40 -0
- package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-response.js +275 -0
- package/dist/orchestrator/orchestrator-response.js.map +1 -0
- package/dist/orchestrator/orchestrator-types.d.ts +116 -0
- package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator-types.js +3 -0
- package/dist/orchestrator/orchestrator-types.js.map +1 -0
- package/dist/preferences/preference-manager.d.ts +8 -3
- package/dist/preferences/preference-manager.d.ts.map +1 -1
- package/dist/preferences/preference-manager.js +17 -4
- package/dist/preferences/preference-manager.js.map +1 -1
- package/dist/rag/chroma-store.d.ts +52 -0
- package/dist/rag/chroma-store.d.ts.map +1 -0
- package/dist/rag/chroma-store.js +110 -0
- package/dist/rag/chroma-store.js.map +1 -0
- package/dist/rag/document-loader.d.ts +21 -0
- package/dist/rag/document-loader.d.ts.map +1 -0
- package/dist/rag/document-loader.js +129 -0
- package/dist/rag/document-loader.js.map +1 -0
- package/dist/rag/embedding-provider.d.ts +36 -0
- package/dist/rag/embedding-provider.d.ts.map +1 -0
- package/dist/rag/embedding-provider.js +74 -0
- package/dist/rag/embedding-provider.js.map +1 -0
- package/dist/rag/index.d.ts +17 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +27 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/keyword-index.d.ts +53 -0
- package/dist/rag/keyword-index.d.ts.map +1 -0
- package/dist/rag/keyword-index.js +161 -0
- package/dist/rag/keyword-index.js.map +1 -0
- package/dist/rag/llm-reranker.d.ts +36 -0
- package/dist/rag/llm-reranker.d.ts.map +1 -0
- package/dist/rag/llm-reranker.js +95 -0
- package/dist/rag/llm-reranker.js.map +1 -0
- package/dist/rag/rag-manager.d.ts +54 -0
- package/dist/rag/rag-manager.d.ts.map +1 -0
- package/dist/rag/rag-manager.js +179 -0
- package/dist/rag/rag-manager.js.map +1 -0
- package/dist/rag/rag-types.d.ts +143 -0
- package/dist/rag/rag-types.d.ts.map +1 -0
- package/dist/rag/rag-types.js +9 -0
- package/dist/rag/rag-types.js.map +1 -0
- package/dist/rag/rrf.d.ts +47 -0
- package/dist/rag/rrf.d.ts.map +1 -0
- package/dist/rag/rrf.js +70 -0
- package/dist/rag/rrf.js.map +1 -0
- package/dist/rag/search-knowledge.d.ts +24 -0
- package/dist/rag/search-knowledge.d.ts.map +1 -0
- package/dist/rag/search-knowledge.js +86 -0
- package/dist/rag/search-knowledge.js.map +1 -0
- package/dist/rag/text-splitter.d.ts +25 -0
- package/dist/rag/text-splitter.d.ts.map +1 -0
- package/dist/rag/text-splitter.js +136 -0
- package/dist/rag/text-splitter.js.map +1 -0
- package/dist/rag/vector-store.d.ts +34 -0
- package/dist/rag/vector-store.d.ts.map +1 -0
- package/dist/rag/vector-store.js +73 -0
- package/dist/rag/vector-store.js.map +1 -0
- package/dist/reflection/error-notebook.d.ts +125 -0
- package/dist/reflection/error-notebook.d.ts.map +1 -0
- package/dist/reflection/error-notebook.js +368 -0
- package/dist/reflection/error-notebook.js.map +1 -0
- package/dist/reflection/index.d.ts +8 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/dist/reflection/index.js +12 -0
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/memory-reflector.d.ts +97 -0
- package/dist/reflection/memory-reflector.d.ts.map +1 -0
- package/dist/reflection/memory-reflector.js +215 -0
- package/dist/reflection/memory-reflector.js.map +1 -0
- package/dist/reflection/reflection-agent.d.ts +105 -0
- package/dist/reflection/reflection-agent.d.ts.map +1 -0
- package/dist/reflection/reflection-agent.js +234 -0
- package/dist/reflection/reflection-agent.js.map +1 -0
- package/dist/reflection/reflection-hook.d.ts +50 -0
- package/dist/reflection/reflection-hook.d.ts.map +1 -0
- package/dist/reflection/reflection-hook.js +108 -0
- package/dist/reflection/reflection-hook.js.map +1 -0
- package/dist/rules/project-rules.d.ts +47 -0
- package/dist/rules/project-rules.d.ts.map +1 -0
- package/dist/rules/project-rules.js +166 -0
- package/dist/rules/project-rules.js.map +1 -0
- package/dist/security/boundaries.d.ts +81 -0
- package/dist/security/boundaries.d.ts.map +1 -0
- package/dist/security/boundaries.js +158 -0
- package/dist/security/boundaries.js.map +1 -0
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +11 -0
- package/dist/security/index.js.map +1 -0
- package/dist/session/session-types.d.ts +25 -4
- package/dist/session/session-types.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.d.ts +4 -6
- package/dist/skills/file-skill-loader.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.js +8 -19
- package/dist/skills/file-skill-loader.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -2
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/skill-manager.d.ts +18 -8
- package/dist/skills/skill-manager.d.ts.map +1 -1
- package/dist/skills/skill-manager.js +58 -36
- package/dist/skills/skill-manager.js.map +1 -1
- package/dist/skills/types.d.ts +3 -8
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/subagent/index.d.ts +4 -0
- package/dist/subagent/index.d.ts.map +1 -0
- package/dist/subagent/index.js +8 -0
- package/dist/subagent/index.js.map +1 -0
- package/dist/subagent/subagent-loader.d.ts +53 -0
- package/dist/subagent/subagent-loader.d.ts.map +1 -0
- package/dist/subagent/subagent-loader.js +155 -0
- package/dist/subagent/subagent-loader.js.map +1 -0
- package/dist/subagent/subagent-manager.d.ts +161 -0
- package/dist/subagent/subagent-manager.d.ts.map +1 -0
- package/dist/subagent/subagent-manager.js +468 -0
- package/dist/subagent/subagent-manager.js.map +1 -0
- package/dist/subagent/subagent-types.d.ts +77 -0
- package/dist/subagent/subagent-types.d.ts.map +1 -0
- package/dist/subagent/subagent-types.js +3 -0
- package/dist/subagent/subagent-types.js.map +1 -0
- package/dist/tools/builtin/bash.d.ts +3 -0
- package/dist/tools/builtin/bash.d.ts.map +1 -0
- package/dist/tools/builtin/bash.js +87 -0
- package/dist/tools/builtin/bash.js.map +1 -0
- package/dist/tools/builtin/edit-file.d.ts.map +1 -1
- package/dist/tools/builtin/edit-file.js +1 -0
- package/dist/tools/builtin/edit-file.js.map +1 -1
- package/dist/tools/builtin/index.d.ts +14 -0
- package/dist/tools/builtin/index.d.ts.map +1 -1
- package/dist/tools/builtin/index.js +45 -1
- package/dist/tools/builtin/index.js.map +1 -1
- package/dist/tools/builtin/list-errors.d.ts +7 -0
- package/dist/tools/builtin/list-errors.d.ts.map +1 -0
- package/dist/tools/builtin/list-errors.js +64 -0
- package/dist/tools/builtin/list-errors.js.map +1 -0
- package/dist/tools/builtin/list-subagents.d.ts +7 -0
- package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
- package/dist/tools/builtin/list-subagents.js +21 -0
- package/dist/tools/builtin/list-subagents.js.map +1 -0
- package/dist/tools/builtin/recall.d.ts +11 -0
- package/dist/tools/builtin/recall.d.ts.map +1 -0
- package/dist/tools/builtin/recall.js +60 -0
- package/dist/tools/builtin/recall.js.map +1 -0
- package/dist/tools/builtin/remember.d.ts +12 -0
- package/dist/tools/builtin/remember.d.ts.map +1 -0
- package/dist/tools/builtin/remember.js +72 -0
- package/dist/tools/builtin/remember.js.map +1 -0
- package/dist/tools/builtin/skill.d.ts +14 -0
- package/dist/tools/builtin/skill.d.ts.map +1 -0
- package/dist/tools/builtin/skill.js +71 -0
- package/dist/tools/builtin/skill.js.map +1 -0
- package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
- package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
- package/dist/tools/builtin/spawn-subagent.js +43 -0
- package/dist/tools/builtin/spawn-subagent.js.map +1 -0
- package/dist/tools/builtin/web-fetch.d.ts +3 -0
- package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
- package/dist/tools/builtin/web-fetch.js +101 -0
- package/dist/tools/builtin/web-fetch.js.map +1 -0
- package/dist/tools/builtin/write-file.d.ts.map +1 -1
- package/dist/tools/builtin/write-file.js +1 -0
- package/dist/tools/builtin/write-file.js.map +1 -1
- package/dist/tools/circuit-breaker.d.ts +19 -10
- package/dist/tools/circuit-breaker.d.ts.map +1 -1
- package/dist/tools/circuit-breaker.js +22 -11
- package/dist/tools/circuit-breaker.js.map +1 -1
- package/dist/tools/error-tracker.d.ts +28 -44
- package/dist/tools/error-tracker.d.ts.map +1 -1
- package/dist/tools/error-tracker.js +39 -156
- package/dist/tools/error-tracker.js.map +1 -1
- package/dist/tools/tool-filter.d.ts +70 -0
- package/dist/tools/tool-filter.d.ts.map +1 -0
- package/dist/tools/tool-filter.js +92 -0
- package/dist/tools/tool-filter.js.map +1 -0
- package/dist/tools/tool-output-truncator.d.ts +36 -0
- package/dist/tools/tool-output-truncator.d.ts.map +1 -0
- package/dist/tools/tool-output-truncator.js +117 -0
- package/dist/tools/tool-output-truncator.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +25 -9
- package/dist/tools/tool-registry.d.ts.map +1 -1
- package/dist/tools/tool-registry.js +77 -28
- package/dist/tools/tool-registry.js.map +1 -1
- package/dist/tools/tool-validator.d.ts +13 -0
- package/dist/tools/tool-validator.d.ts.map +1 -0
- package/dist/tools/tool-validator.js +116 -0
- package/dist/tools/tool-validator.js.map +1 -0
- package/dist/tools/types.d.ts +86 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +51 -2
- package/dist/tools/types.js.map +1 -1
- package/dist/trace/trace-logger.d.ts +30 -4
- package/dist/trace/trace-logger.d.ts.map +1 -1
- package/dist/trace/trace-logger.js +82 -6
- package/dist/trace/trace-logger.js.map +1 -1
- package/package.json +13 -4
- package/dist/compression/sliding-window.d.ts +0 -21
- package/dist/compression/sliding-window.d.ts.map +0 -1
- package/dist/compression/sliding-window.js +0 -44
- package/dist/compression/sliding-window.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/tools/builtin/skill.ts"],"names":[],"mappings":";;AAaA,0CAiEC;AA3ED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAC7B,YAA0B,EAC1B,cAA0B;IAE1B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EACT,oEAAoE;YACpE,iEAAiE;YACjE,sEAAsE;YACtE,sDAAsD;QACxD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;oBAChC,WAAW,EACT,mFAAmF;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QAED,KAAK,CAAC,OAAO,CAAC,MAA+B;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAI,MAAM,CAAC,MAAiB,IAAI,UAAU,CAAC;YAEvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,YAAY;qBAC3B,MAAM,EAAE;qBACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,mBAAmB,SAAS,wBAAwB,SAAS,IAAI,MAAM,GAAG,CAAC;YACpF,CAAC;YAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,OAAO,UAAU,SAAS,gBAAgB,CAAC;gBAC7C,CAAC;gBACD,OAAO,UAAU,SAAS,4BAA4B,CAAC;YACzD,CAAC;YAED,qBAAqB;YACrB,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,UAAU,SAAS,sBAAsB,CAAC;YACnD,CAAC;YAED,IAAI,CAAC;gBACH,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACjC,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,OAAO,UAAU,SAAS,6BAA6B,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;YACpF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,2BAA2B,SAAS,MAAM,OAAO,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tool } from "../types";
|
|
2
|
+
import type { SubAgentManager } from "../../subagent/subagent-manager";
|
|
3
|
+
/**
|
|
4
|
+
* Factory: create a `spawn_subagent` tool bound to a SubAgentManager instance.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createSpawnSubagentTool(manager: SubAgentManager): Tool;
|
|
7
|
+
//# sourceMappingURL=spawn-subagent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-subagent.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/spawn-subagent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAsCtE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSpawnSubagentTool = createSpawnSubagentTool;
|
|
4
|
+
/**
|
|
5
|
+
* Factory: create a `spawn_subagent` tool bound to a SubAgentManager instance.
|
|
6
|
+
*/
|
|
7
|
+
function createSpawnSubagentTool(manager) {
|
|
8
|
+
return {
|
|
9
|
+
name: "spawn_subagent",
|
|
10
|
+
description: "Spawn an asynchronous sub-agent to handle a task. " +
|
|
11
|
+
"The sub-agent runs in the background; its result will appear " +
|
|
12
|
+
"as a new user message enclosed in <subagent-result> tags once it completes. " +
|
|
13
|
+
"Call list_subagents first to see available sub-agents and pick the right one.",
|
|
14
|
+
parameters: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
name: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Name of the sub-agent to spawn. Call list_subagents first to see available names.",
|
|
20
|
+
},
|
|
21
|
+
input: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "Task description / instructions for the sub-agent.",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ["name", "input"],
|
|
27
|
+
},
|
|
28
|
+
async execute(params) {
|
|
29
|
+
const name = String(params.name ?? "");
|
|
30
|
+
const input = String(params.input ?? "");
|
|
31
|
+
try {
|
|
32
|
+
const runId = manager.spawn(name, input);
|
|
33
|
+
return (`Sub-agent "${name}" spawned successfully. Run ID: ${runId}. ` +
|
|
34
|
+
`It will report back when finished.`);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
38
|
+
return `Error spawning sub-agent "${name}": ${message}`;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=spawn-subagent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-subagent.js","sourceRoot":"","sources":["../../../src/tools/builtin/spawn-subagent.ts"],"names":[],"mappings":";;AAMA,0DAsCC;AAzCD;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAwB;IAC9D,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,oDAAoD;YACpD,+DAA+D;YAC/D,8EAA8E;YAC9E,+EAA+E;QACjF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mFAAmF;iBACjG;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5B;QAED,KAAK,CAAC,OAAO,CAAC,MAA+B;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzC,OAAO,CACL,cAAc,IAAI,mCAAmC,KAAK,IAAI;oBAC9D,oCAAoC,CACrC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,6BAA6B,IAAI,MAAM,OAAO,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/web-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAyBhC,eAAO,MAAM,YAAY,EAAE,IAwF1B,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebFetchTool = void 0;
|
|
4
|
+
const boundaries_1 = require("../../security/boundaries");
|
|
5
|
+
const MAX_CHARS = 100_000;
|
|
6
|
+
const TIMEOUT_MS = 15_000;
|
|
7
|
+
/**
|
|
8
|
+
* Strip HTML tags from text (simple regex-based approach — sufficient for
|
|
9
|
+
* extracting readable content from most pages).
|
|
10
|
+
*/
|
|
11
|
+
function stripHtml(html) {
|
|
12
|
+
return html
|
|
13
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "")
|
|
14
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "")
|
|
15
|
+
.replace(/<[^>]+>/g, "")
|
|
16
|
+
.replace(/&/g, "&")
|
|
17
|
+
.replace(/</g, "<")
|
|
18
|
+
.replace(/>/g, ">")
|
|
19
|
+
.replace(/"/g, '"')
|
|
20
|
+
.replace(/'/g, "'")
|
|
21
|
+
.replace(/ /g, " ")
|
|
22
|
+
.replace(/\n\s*\n\s*\n/g, "\n\n")
|
|
23
|
+
.slice(0, MAX_CHARS);
|
|
24
|
+
}
|
|
25
|
+
exports.WebFetchTool = {
|
|
26
|
+
name: "web_fetch",
|
|
27
|
+
description: "Fetch a web page by URL and return its content as markdown-formatted text. " +
|
|
28
|
+
"Use this to retrieve documentation, API responses, or any web resource. " +
|
|
29
|
+
"The content is stripped of HTML tags and limited to 100,000 characters. " +
|
|
30
|
+
"This is a read-only operation — no files or system state are modified.",
|
|
31
|
+
parameters: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {
|
|
34
|
+
url: {
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "The full URL to fetch (must start with http:// or https://).",
|
|
37
|
+
},
|
|
38
|
+
maxChars: {
|
|
39
|
+
type: "number",
|
|
40
|
+
description: "Maximum characters to return (default: 100,000).",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["url"],
|
|
44
|
+
},
|
|
45
|
+
async execute(args) {
|
|
46
|
+
const url = String(args.url ?? "");
|
|
47
|
+
const maxChars = typeof args.maxChars === "number" ? Math.min(args.maxChars, MAX_CHARS) : MAX_CHARS;
|
|
48
|
+
// Validate URL
|
|
49
|
+
let parsedUrl;
|
|
50
|
+
try {
|
|
51
|
+
parsedUrl = new URL(url);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return `Error: Invalid URL "${url}". Make sure the URL starts with http:// or https://.`;
|
|
55
|
+
}
|
|
56
|
+
if (!["http:", "https:"].includes(parsedUrl.protocol)) {
|
|
57
|
+
return `Error: Unsupported protocol "${parsedUrl.protocol}". Only HTTP and HTTPS are supported.`;
|
|
58
|
+
}
|
|
59
|
+
// Fetch with timeout
|
|
60
|
+
const controller = new AbortController();
|
|
61
|
+
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
62
|
+
try {
|
|
63
|
+
const response = await fetch(url, {
|
|
64
|
+
headers: {
|
|
65
|
+
"User-Agent": "kagent-ts/1.0 (web_fetch tool)",
|
|
66
|
+
Accept: "text/html, application/xhtml+xml, text/plain",
|
|
67
|
+
},
|
|
68
|
+
signal: controller.signal,
|
|
69
|
+
redirect: "follow",
|
|
70
|
+
});
|
|
71
|
+
clearTimeout(timeout);
|
|
72
|
+
if (!response.ok) {
|
|
73
|
+
return `Error: HTTP ${response.status} ${response.statusText} when fetching "${url}".`;
|
|
74
|
+
}
|
|
75
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
76
|
+
const raw = await response.text();
|
|
77
|
+
// Extract title
|
|
78
|
+
const titleMatch = raw.match(/<title[^>]*>([\s\S]*?)<\/title>/i);
|
|
79
|
+
const title = titleMatch ? titleMatch[1].trim() : parsedUrl.hostname;
|
|
80
|
+
// Strip HTML to get readable text
|
|
81
|
+
const text = stripHtml(raw);
|
|
82
|
+
const content = text.length > maxChars
|
|
83
|
+
? text.slice(0, maxChars) + `\n\n(Truncated — ${(text.length / 1024).toFixed(1)} KB total, showing first ${(maxChars / 1024).toFixed(1)} KB)`
|
|
84
|
+
: text;
|
|
85
|
+
const contentTypeNote = contentType.includes("text/html") ? "" : `\nContent-Type: ${contentType}`;
|
|
86
|
+
// Scan for prompt-injection signatures in the fetched content
|
|
87
|
+
const injectionPatterns = (0, boundaries_1.detectInjectionSignatures)(content);
|
|
88
|
+
const warning = (0, boundaries_1.buildInjectionWarning)(injectionPatterns, `web_fetch:${url}`);
|
|
89
|
+
return `${warning}# ${title}\n\nURL: ${url}${contentTypeNote}\n\n${content}`;
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
clearTimeout(timeout);
|
|
93
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
94
|
+
if (err instanceof DOMException || (err instanceof Error && err.name === "AbortError")) {
|
|
95
|
+
return `Error: Request timed out after ${TIMEOUT_MS / 1000}s for URL "${url}".`;
|
|
96
|
+
}
|
|
97
|
+
return `Error fetching "${url}": ${message}`;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=web-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/tools/builtin/web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/write-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/write-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,IAiD3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtin/write-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B;;;;;;GAMG;AACU,QAAA,aAAa,GAAS;IACjC,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,iEAAiE;QACjE,6EAA6E;IAC/E,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;KACnC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;QAEvC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,gDAAgD,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,+BAA+B,CAAC;QACzC,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvC,aAAa;YACb,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO,sBAAsB,IAAI,CAAC,IAAI,aAAa,YAAY,EAAE,CAAC;QACpE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,uBAAuB,YAAY,MAAM,OAAO,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtin/write-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B;;;;;;GAMG;AACU,QAAA,aAAa,GAAS;IACjC,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,iEAAiE;QACjE,6EAA6E;IAC/E,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;aAC7C;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;KACnC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;QAEvC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,gDAAgD,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,+BAA+B,CAAC;QACzC,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvC,aAAa;YACb,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO,sBAAsB,IAAI,CAAC,IAAI,aAAa,YAAY,EAAE,CAAC;QACpE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,uBAAuB,YAAY,MAAM,OAAO,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,eAAe,EAAE,IAAI;CACtB,CAAC"}
|
|
@@ -16,15 +16,18 @@ export interface CircuitBreakerConfig {
|
|
|
16
16
|
* Circuit breaker that tracks consecutive failures for a single tool.
|
|
17
17
|
*
|
|
18
18
|
* States:
|
|
19
|
-
* - CLOSED:
|
|
20
|
-
* -
|
|
21
|
-
*
|
|
19
|
+
* - CLOSED: Normal operation — no failures, executions are allowed.
|
|
20
|
+
* - HALF_OPEN: Degraded operation — failures have occurred but retries
|
|
21
|
+
* remain. Tool calls are still allowed, but the caller
|
|
22
|
+
* should proceed with caution.
|
|
23
|
+
* - OPEN: All retries exhausted — subsequent calls are blocked
|
|
24
|
+
* without attempting execution.
|
|
22
25
|
*
|
|
23
|
-
* Flow:
|
|
24
|
-
* 1st failure →
|
|
25
|
-
* 2nd failure →
|
|
26
|
+
* Flow (with retryCount = 2):
|
|
27
|
+
* 1st failure → HALF_OPEN, 1 retry remaining → LLM should analyze and retry
|
|
28
|
+
* 2nd failure → HALF_OPEN, 0 retries remaining → last chance
|
|
26
29
|
* 3rd failure → circuit OPENS → LLM must try a different approach
|
|
27
|
-
* Success
|
|
30
|
+
* Success → circuit returns to CLOSED, failure count resets
|
|
28
31
|
*/
|
|
29
32
|
export declare class CircuitBreaker {
|
|
30
33
|
private toolName;
|
|
@@ -33,7 +36,9 @@ export declare class CircuitBreaker {
|
|
|
33
36
|
private _state;
|
|
34
37
|
constructor(config: CircuitBreakerConfig);
|
|
35
38
|
/**
|
|
36
|
-
* Whether the
|
|
39
|
+
* Whether the tool can be called.
|
|
40
|
+
* Returns true in CLOSED (normal) and HALF_OPEN (degraded) states.
|
|
41
|
+
* Only returns false when the circuit is fully OPEN.
|
|
37
42
|
*/
|
|
38
43
|
get isAvailable(): boolean;
|
|
39
44
|
/**
|
|
@@ -55,12 +60,16 @@ export declare class CircuitBreaker {
|
|
|
55
60
|
get effectiveThreshold(): number;
|
|
56
61
|
/**
|
|
57
62
|
* Record a successful tool execution — resets failure count
|
|
58
|
-
* and closes the circuit
|
|
63
|
+
* and closes the circuit.
|
|
59
64
|
*/
|
|
60
65
|
recordSuccess(): void;
|
|
61
66
|
/**
|
|
62
67
|
* Record a failed tool execution.
|
|
63
|
-
*
|
|
68
|
+
*
|
|
69
|
+
* State transitions:
|
|
70
|
+
* - CLOSED → HALF_OPEN (first failure, retries remain)
|
|
71
|
+
* - HALF_OPEN → HALF_OPEN (still have retries) or OPEN (retries exhausted)
|
|
72
|
+
* - OPEN → stays OPEN (should not normally be called in this state)
|
|
64
73
|
*
|
|
65
74
|
* @returns The updated number of retries remaining (0 means the circuit opened).
|
|
66
75
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/tools/circuit-breaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/tools/circuit-breaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAqC;gBAEvC,MAAM,EAAE,oBAAoB;IAKxC;;;;OAIG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,YAAY,CAExB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;OAGG;IACH,aAAa,IAAI,IAAI;IAKrB;;;;;;;;;OASG;IACH,aAAa,IAAI,MAAM;IAWvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,SAAS,IAAI,aAAa;CAS3B"}
|
|
@@ -6,15 +6,18 @@ const types_1 = require("./types");
|
|
|
6
6
|
* Circuit breaker that tracks consecutive failures for a single tool.
|
|
7
7
|
*
|
|
8
8
|
* States:
|
|
9
|
-
* - CLOSED:
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
9
|
+
* - CLOSED: Normal operation — no failures, executions are allowed.
|
|
10
|
+
* - HALF_OPEN: Degraded operation — failures have occurred but retries
|
|
11
|
+
* remain. Tool calls are still allowed, but the caller
|
|
12
|
+
* should proceed with caution.
|
|
13
|
+
* - OPEN: All retries exhausted — subsequent calls are blocked
|
|
14
|
+
* without attempting execution.
|
|
12
15
|
*
|
|
13
|
-
* Flow:
|
|
14
|
-
* 1st failure →
|
|
15
|
-
* 2nd failure →
|
|
16
|
+
* Flow (with retryCount = 2):
|
|
17
|
+
* 1st failure → HALF_OPEN, 1 retry remaining → LLM should analyze and retry
|
|
18
|
+
* 2nd failure → HALF_OPEN, 0 retries remaining → last chance
|
|
16
19
|
* 3rd failure → circuit OPENS → LLM must try a different approach
|
|
17
|
-
* Success
|
|
20
|
+
* Success → circuit returns to CLOSED, failure count resets
|
|
18
21
|
*/
|
|
19
22
|
class CircuitBreaker {
|
|
20
23
|
toolName;
|
|
@@ -26,10 +29,12 @@ class CircuitBreaker {
|
|
|
26
29
|
this.retryCount = config.retryCount ?? 2;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
|
-
* Whether the
|
|
32
|
+
* Whether the tool can be called.
|
|
33
|
+
* Returns true in CLOSED (normal) and HALF_OPEN (degraded) states.
|
|
34
|
+
* Only returns false when the circuit is fully OPEN.
|
|
30
35
|
*/
|
|
31
36
|
get isAvailable() {
|
|
32
|
-
return this._state === types_1.BreakerState.CLOSED;
|
|
37
|
+
return this._state === types_1.BreakerState.CLOSED || this._state === types_1.BreakerState.HALF_OPEN;
|
|
33
38
|
}
|
|
34
39
|
/**
|
|
35
40
|
* Current breaker state.
|
|
@@ -58,7 +63,7 @@ class CircuitBreaker {
|
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Record a successful tool execution — resets failure count
|
|
61
|
-
* and closes the circuit
|
|
66
|
+
* and closes the circuit.
|
|
62
67
|
*/
|
|
63
68
|
recordSuccess() {
|
|
64
69
|
this.failureCount = 0;
|
|
@@ -66,7 +71,11 @@ class CircuitBreaker {
|
|
|
66
71
|
}
|
|
67
72
|
/**
|
|
68
73
|
* Record a failed tool execution.
|
|
69
|
-
*
|
|
74
|
+
*
|
|
75
|
+
* State transitions:
|
|
76
|
+
* - CLOSED → HALF_OPEN (first failure, retries remain)
|
|
77
|
+
* - HALF_OPEN → HALF_OPEN (still have retries) or OPEN (retries exhausted)
|
|
78
|
+
* - OPEN → stays OPEN (should not normally be called in this state)
|
|
70
79
|
*
|
|
71
80
|
* @returns The updated number of retries remaining (0 means the circuit opened).
|
|
72
81
|
*/
|
|
@@ -76,6 +85,8 @@ class CircuitBreaker {
|
|
|
76
85
|
this._state = types_1.BreakerState.OPEN;
|
|
77
86
|
return 0;
|
|
78
87
|
}
|
|
88
|
+
// First failure or still within retry budget — enter/remain HALF_OPEN
|
|
89
|
+
this._state = types_1.BreakerState.HALF_OPEN;
|
|
79
90
|
return this.retriesRemaining;
|
|
80
91
|
}
|
|
81
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/tools/circuit-breaker.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAiBtD
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/tools/circuit-breaker.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAiBtD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,cAAc;IACjB,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,GAAG,CAAC,CAAC;IACjB,MAAM,GAAiB,oBAAY,CAAC,MAAM,CAAC;IAEnD,YAAY,MAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,KAAK,oBAAY,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,oBAAY,CAAC,SAAS,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,oBAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED;;;;;;;;;OASG;IACH,aAAa;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,oBAAY,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,sEAAsE;QACtE,IAAI,CAAC,MAAM,GAAG,oBAAY,CAAC,SAAS,CAAC;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,oBAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;YACzC,SAAS,EAAE,IAAI,CAAC,WAAW;SAC5B,CAAC;IACJ,CAAC;CACF;AAnGD,wCAmGC"}
|
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
import { ToolErrorTrace, ErrorTraceSummary } from "./types";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* ToolErrorTracker — in-memory tracker for tool failure chains within a session.
|
|
3
|
+
*
|
|
4
|
+
* Provides real-time visibility into which tools are failing and why,
|
|
5
|
+
* so the LLM can query error state via `list_errors` and the agent can
|
|
6
|
+
* attach LLM analysis to active traces.
|
|
7
|
+
*
|
|
8
|
+
* This is NOT a persistence layer. For cross-session learning and
|
|
9
|
+
* structured error diagnosis, use the ErrorNotebook (错题本) via
|
|
10
|
+
* ReflectionHook — it runs a post-execution LLM reflection that
|
|
11
|
+
* categorises mistakes and injects lessons into future sessions.
|
|
4
12
|
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Directory where trace files are stored.
|
|
8
|
-
* Defaults to `.error-traces` relative to the working directory.
|
|
9
|
-
*/
|
|
10
|
-
storageDir?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Whether to persist traces to disk immediately.
|
|
13
|
-
* Defaults to true.
|
|
14
|
-
*/
|
|
15
|
-
persistImmediately?: boolean;
|
|
16
|
-
}
|
|
13
|
+
import { ToolErrorTrace, ErrorTraceSummary } from "./types";
|
|
17
14
|
/**
|
|
18
15
|
* Categorize a tool error based on its message content.
|
|
19
16
|
* Helps developers quickly identify common failure patterns.
|
|
20
17
|
*/
|
|
21
18
|
export declare function categorizeError(error: string): string;
|
|
22
19
|
/**
|
|
23
|
-
* ToolErrorTracker records the
|
|
20
|
+
* ToolErrorTracker records the lifecycle of tool failures in memory
|
|
21
|
+
* for the duration of a session.
|
|
24
22
|
*
|
|
25
23
|
* Usage:
|
|
26
24
|
* ```ts
|
|
27
|
-
* const tracker = new ToolErrorTracker(
|
|
28
|
-
* const registry = new ToolRegistry(
|
|
25
|
+
* const tracker = new ToolErrorTracker();
|
|
26
|
+
* const registry = new ToolRegistry(2, tracker);
|
|
29
27
|
* ```
|
|
30
28
|
*
|
|
31
29
|
* Lifecycle of a trace:
|
|
@@ -35,15 +33,12 @@ export declare function categorizeError(error: string): string;
|
|
|
35
33
|
* 4. Recovery → `recordRecovery()` marks the trace as resolved
|
|
36
34
|
* 5. Circuit open → `recordFailure()` marks the trace as unresolved
|
|
37
35
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
36
|
+
* For cross-session persistence and LLM-powered error diagnosis,
|
|
37
|
+
* use {@link import('../reflection/error-notebook').ErrorNotebook}.
|
|
40
38
|
*/
|
|
41
39
|
export declare class ToolErrorTracker {
|
|
42
40
|
private traces;
|
|
43
41
|
private activeTraceByTool;
|
|
44
|
-
private storageDir;
|
|
45
|
-
private persistImmediately;
|
|
46
|
-
constructor(config?: ErrorTrackerConfig);
|
|
47
42
|
/**
|
|
48
43
|
* Record a tool execution failure.
|
|
49
44
|
*
|
|
@@ -54,19 +49,13 @@ export declare class ToolErrorTracker {
|
|
|
54
49
|
*
|
|
55
50
|
* @returns The trace ID for the chain this failure belongs to.
|
|
56
51
|
*/
|
|
57
|
-
recordFailure(toolName: string, args: Record<string, unknown>, error: string, retriesRemaining: number): string;
|
|
52
|
+
recordFailure(toolName: string, args: Record<string, unknown>, error: string, retriesRemaining: number, breakerState?: string): string;
|
|
58
53
|
/**
|
|
59
54
|
* Record a tool recovery (successful execution after previous failures).
|
|
60
|
-
*
|
|
61
|
-
* @param toolName The tool that recovered.
|
|
62
|
-
* @param traceId The trace ID for this failure chain.
|
|
63
|
-
* @param resolution Optional description of how it was resolved.
|
|
64
55
|
*/
|
|
65
56
|
recordRecovery(toolName: string, traceId: string, resolution?: string): void;
|
|
66
57
|
/**
|
|
67
58
|
* Attach LLM analysis to the latest failure/retry event in a trace.
|
|
68
|
-
*
|
|
69
|
-
* Called by the agent after the LLM has reasoned about a tool error.
|
|
70
59
|
*/
|
|
71
60
|
recordAnalysis(traceId: string, analysis: string): void;
|
|
72
61
|
/**
|
|
@@ -82,30 +71,25 @@ export declare class ToolErrorTracker {
|
|
|
82
71
|
*/
|
|
83
72
|
getActiveTraceId(toolName: string): string | undefined;
|
|
84
73
|
/**
|
|
85
|
-
* Get
|
|
74
|
+
* Get all currently active (unresolved) traces.
|
|
86
75
|
*/
|
|
87
|
-
|
|
76
|
+
getActiveTraces(): Array<{
|
|
77
|
+
toolName: string;
|
|
78
|
+
traceId: string;
|
|
79
|
+
}>;
|
|
88
80
|
/**
|
|
89
|
-
*
|
|
81
|
+
* Get the total number of traces recorded in this session.
|
|
90
82
|
*/
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Load traces from disk (e.g., on startup to resume monitoring).
|
|
94
|
-
*/
|
|
95
|
-
loadFromDisk(): void;
|
|
83
|
+
get traceCount(): number;
|
|
96
84
|
/**
|
|
97
|
-
* Generate
|
|
85
|
+
* Generate an in-memory markdown report of all traces for the current session.
|
|
98
86
|
*/
|
|
99
87
|
generateMarkdownReport(): string;
|
|
100
88
|
/**
|
|
101
|
-
*
|
|
89
|
+
* Clear all in-memory traces.
|
|
102
90
|
*/
|
|
103
|
-
|
|
91
|
+
clear(): void;
|
|
104
92
|
private createTrace;
|
|
105
|
-
private persistTrace;
|
|
106
|
-
private ensureStorageDir;
|
|
107
|
-
private writeTraceFile;
|
|
108
|
-
private writeIndexFile;
|
|
109
93
|
private formatEventType;
|
|
110
94
|
}
|
|
111
95
|
//# sourceMappingURL=error-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-tracker.d.ts","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-tracker.d.ts","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,cAAc,EAEd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAoDjB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6BrD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,iBAAiB,CAAkC;IAI3D;;;;;;;;;OASG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAmDT;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI;IAoBP;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA2BvD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE;IAyBtC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItD;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAW/D;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAID;;OAEG;IACH,sBAAsB,IAAI,MAAM;IA6DhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,eAAe;CAoBxB"}
|