kagent-ts 0.1.3 → 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 +407 -35
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +685 -70
- 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 +144 -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 +128 -101
- 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 +61 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +121 -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/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +72 -0
- package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
- package/dist/mcp/mcp-client-manager.js +235 -0
- package/dist/mcp/mcp-client-manager.js.map +1 -0
- package/dist/mcp/mcp-types.d.ts +58 -0
- package/dist/mcp/mcp-types.d.ts.map +1 -0
- package/dist/mcp/mcp-types.js +20 -0
- package/dist/mcp/mcp-types.js.map +1 -0
- 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 +9 -20
- package/dist/skills/file-skill-loader.d.ts.map +1 -1
- package/dist/skills/file-skill-loader.js +35 -164
- 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 +22 -29
- package/dist/skills/skill-manager.d.ts.map +1 -1
- package/dist/skills/skill-manager.js +63 -85
- package/dist/skills/skill-manager.js.map +1 -1
- package/dist/skills/types.d.ts +4 -16
- 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 +83 -7
- package/dist/trace/trace-logger.js.map +1 -1
- package/package.json +14 -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
|
@@ -1,51 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.ToolErrorTracker = void 0;
|
|
37
4
|
exports.categorizeError = categorizeError;
|
|
38
|
-
/**
|
|
39
|
-
* ToolErrorTracker — records the complete lifecycle of tool failures
|
|
40
|
-
* and persists them as structured documents for developer review.
|
|
41
|
-
*
|
|
42
|
-
* Each "trace" captures one error chain: first failure → retries →
|
|
43
|
-
* LLM analysis → resolution or circuit-open. Traces are stored as
|
|
44
|
-
* individual JSON files in a designated directory (.error-traces/)
|
|
45
|
-
* so developers can inspect, aggregate, and learn from them.
|
|
46
|
-
*/
|
|
47
|
-
const fs = __importStar(require("fs"));
|
|
48
|
-
const path = __importStar(require("path"));
|
|
49
5
|
/**
|
|
50
6
|
* Generates a short unique trace ID.
|
|
51
7
|
*/
|
|
@@ -85,7 +41,7 @@ function sanitizeArgs(args) {
|
|
|
85
41
|
return sanitized;
|
|
86
42
|
}
|
|
87
43
|
/**
|
|
88
|
-
* Limit error message length to avoid huge trace
|
|
44
|
+
* Limit error message length to avoid huge trace objects.
|
|
89
45
|
*/
|
|
90
46
|
function truncateError(error, maxLen = 500) {
|
|
91
47
|
if (error.length <= maxLen)
|
|
@@ -125,12 +81,13 @@ function categorizeError(error) {
|
|
|
125
81
|
return "unknown";
|
|
126
82
|
}
|
|
127
83
|
/**
|
|
128
|
-
* ToolErrorTracker records the
|
|
84
|
+
* ToolErrorTracker records the lifecycle of tool failures in memory
|
|
85
|
+
* for the duration of a session.
|
|
129
86
|
*
|
|
130
87
|
* Usage:
|
|
131
88
|
* ```ts
|
|
132
|
-
* const tracker = new ToolErrorTracker(
|
|
133
|
-
* const registry = new ToolRegistry(
|
|
89
|
+
* const tracker = new ToolErrorTracker();
|
|
90
|
+
* const registry = new ToolRegistry(2, tracker);
|
|
134
91
|
* ```
|
|
135
92
|
*
|
|
136
93
|
* Lifecycle of a trace:
|
|
@@ -140,18 +97,12 @@ function categorizeError(error) {
|
|
|
140
97
|
* 4. Recovery → `recordRecovery()` marks the trace as resolved
|
|
141
98
|
* 5. Circuit open → `recordFailure()` marks the trace as unresolved
|
|
142
99
|
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
100
|
+
* For cross-session persistence and LLM-powered error diagnosis,
|
|
101
|
+
* use {@link import('../reflection/error-notebook').ErrorNotebook}.
|
|
145
102
|
*/
|
|
146
103
|
class ToolErrorTracker {
|
|
147
104
|
traces = new Map();
|
|
148
105
|
activeTraceByTool = new Map();
|
|
149
|
-
storageDir;
|
|
150
|
-
persistImmediately;
|
|
151
|
-
constructor(config) {
|
|
152
|
-
this.storageDir = config?.storageDir ?? ".error-traces";
|
|
153
|
-
this.persistImmediately = config?.persistImmediately ?? true;
|
|
154
|
-
}
|
|
155
106
|
// ─── Event Recording ────────────────────────────────────────────────────
|
|
156
107
|
/**
|
|
157
108
|
* Record a tool execution failure.
|
|
@@ -163,17 +114,15 @@ class ToolErrorTracker {
|
|
|
163
114
|
*
|
|
164
115
|
* @returns The trace ID for the chain this failure belongs to.
|
|
165
116
|
*/
|
|
166
|
-
recordFailure(toolName, args, error, retriesRemaining) {
|
|
117
|
+
recordFailure(toolName, args, error, retriesRemaining, breakerState) {
|
|
167
118
|
const existingTraceId = this.activeTraceByTool.get(toolName);
|
|
168
119
|
let trace;
|
|
169
120
|
if (existingTraceId) {
|
|
170
|
-
// Append to existing trace
|
|
171
121
|
const existing = this.traces.get(existingTraceId);
|
|
172
122
|
if (existing && !existing.resolved) {
|
|
173
123
|
trace = existing;
|
|
174
124
|
}
|
|
175
125
|
else {
|
|
176
|
-
// Existing trace is resolved/closed — start a new one
|
|
177
126
|
trace = this.createTrace(toolName, args);
|
|
178
127
|
}
|
|
179
128
|
}
|
|
@@ -181,8 +130,13 @@ class ToolErrorTracker {
|
|
|
181
130
|
trace = this.createTrace(toolName, args);
|
|
182
131
|
}
|
|
183
132
|
const attemptNumber = trace.events.filter((e) => e.type === "failure" || e.type === "retry").length + 1;
|
|
133
|
+
const eventType = retriesRemaining > 0
|
|
134
|
+
? "failure"
|
|
135
|
+
: breakerState === "half_open"
|
|
136
|
+
? "circuit_half_open"
|
|
137
|
+
: "circuit_open";
|
|
184
138
|
const event = {
|
|
185
|
-
type:
|
|
139
|
+
type: eventType,
|
|
186
140
|
timestamp: nowISO(),
|
|
187
141
|
error: truncateError(error),
|
|
188
142
|
attemptNumber,
|
|
@@ -191,21 +145,18 @@ class ToolErrorTracker {
|
|
|
191
145
|
};
|
|
192
146
|
trace.events.push(event);
|
|
193
147
|
trace.updatedAt = nowISO();
|
|
194
|
-
|
|
195
|
-
|
|
148
|
+
// Only close the trace when the circuit is fully OPEN, not when
|
|
149
|
+
// retriesRemaining === 0 but the breaker is still HALF_OPEN (recovery
|
|
150
|
+
// is still possible in that state).
|
|
151
|
+
if (breakerState === "open") {
|
|
196
152
|
trace.resolved = false;
|
|
197
153
|
this.activeTraceByTool.delete(toolName);
|
|
198
154
|
}
|
|
199
155
|
this.traces.set(trace.traceId, trace);
|
|
200
|
-
this.persistTrace(trace.traceId);
|
|
201
156
|
return trace.traceId;
|
|
202
157
|
}
|
|
203
158
|
/**
|
|
204
159
|
* Record a tool recovery (successful execution after previous failures).
|
|
205
|
-
*
|
|
206
|
-
* @param toolName The tool that recovered.
|
|
207
|
-
* @param traceId The trace ID for this failure chain.
|
|
208
|
-
* @param resolution Optional description of how it was resolved.
|
|
209
160
|
*/
|
|
210
161
|
recordRecovery(toolName, traceId, resolution) {
|
|
211
162
|
const trace = this.traces.get(traceId);
|
|
@@ -223,12 +174,9 @@ class ToolErrorTracker {
|
|
|
223
174
|
trace.updatedAt = nowISO();
|
|
224
175
|
this.traces.set(traceId, trace);
|
|
225
176
|
this.activeTraceByTool.delete(toolName);
|
|
226
|
-
this.persistTrace(traceId);
|
|
227
177
|
}
|
|
228
178
|
/**
|
|
229
179
|
* Attach LLM analysis to the latest failure/retry event in a trace.
|
|
230
|
-
*
|
|
231
|
-
* Called by the agent after the LLM has reasoned about a tool error.
|
|
232
180
|
*/
|
|
233
181
|
recordAnalysis(traceId, analysis) {
|
|
234
182
|
const trace = this.traces.get(traceId);
|
|
@@ -251,7 +199,6 @@ class ToolErrorTracker {
|
|
|
251
199
|
trace.events.push(analysisEvent);
|
|
252
200
|
trace.updatedAt = nowISO();
|
|
253
201
|
this.traces.set(traceId, trace);
|
|
254
|
-
this.persistTrace(traceId);
|
|
255
202
|
}
|
|
256
203
|
// ─── Query ───────────────────────────────────────────────────────────────
|
|
257
204
|
/**
|
|
@@ -288,51 +235,27 @@ class ToolErrorTracker {
|
|
|
288
235
|
return this.activeTraceByTool.get(toolName);
|
|
289
236
|
}
|
|
290
237
|
/**
|
|
291
|
-
* Get
|
|
292
|
-
*/
|
|
293
|
-
get traceCount() {
|
|
294
|
-
return this.traces.size;
|
|
295
|
-
}
|
|
296
|
-
// ─── Persistence ─────────────────────────────────────────────────────────
|
|
297
|
-
/**
|
|
298
|
-
* Persist all traces to disk immediately.
|
|
238
|
+
* Get all currently active (unresolved) traces.
|
|
299
239
|
*/
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
for (const traceId of this.
|
|
303
|
-
this.
|
|
240
|
+
getActiveTraces() {
|
|
241
|
+
const result = [];
|
|
242
|
+
for (const [toolName, traceId] of this.activeTraceByTool) {
|
|
243
|
+
const trace = this.traces.get(traceId);
|
|
244
|
+
if (trace && !trace.resolved) {
|
|
245
|
+
result.push({ toolName, traceId });
|
|
246
|
+
}
|
|
304
247
|
}
|
|
305
|
-
|
|
248
|
+
return result;
|
|
306
249
|
}
|
|
307
250
|
/**
|
|
308
|
-
*
|
|
251
|
+
* Get the total number of traces recorded in this session.
|
|
309
252
|
*/
|
|
310
|
-
|
|
311
|
-
this.
|
|
312
|
-
const dir = this.storageDir;
|
|
313
|
-
if (!fs.existsSync(dir))
|
|
314
|
-
return;
|
|
315
|
-
const files = fs.readdirSync(dir);
|
|
316
|
-
for (const file of files) {
|
|
317
|
-
if (!file.startsWith("trace_") || !file.endsWith(".json"))
|
|
318
|
-
continue;
|
|
319
|
-
if (file === "traces.json")
|
|
320
|
-
continue; // skip index
|
|
321
|
-
try {
|
|
322
|
-
const content = fs.readFileSync(path.join(dir, file), "utf-8");
|
|
323
|
-
const trace = JSON.parse(content);
|
|
324
|
-
this.traces.set(trace.traceId, trace);
|
|
325
|
-
if (!trace.resolved) {
|
|
326
|
-
this.activeTraceByTool.set(trace.toolName, trace.traceId);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
catch {
|
|
330
|
-
// Skip corrupted files
|
|
331
|
-
}
|
|
332
|
-
}
|
|
253
|
+
get traceCount() {
|
|
254
|
+
return this.traces.size;
|
|
333
255
|
}
|
|
256
|
+
// ─── Report ──────────────────────────────────────────────────────────────
|
|
334
257
|
/**
|
|
335
|
-
* Generate
|
|
258
|
+
* Generate an in-memory markdown report of all traces for the current session.
|
|
336
259
|
*/
|
|
337
260
|
generateMarkdownReport() {
|
|
338
261
|
const summaries = this.getAllSummaries();
|
|
@@ -356,7 +279,6 @@ class ToolErrorTracker {
|
|
|
356
279
|
report += `- **Created:** ${summary.createdAt}\n`;
|
|
357
280
|
report += `- **Status:** ${summary.resolved ? "✅ Resolved" : "❌ Unresolved"}\n`;
|
|
358
281
|
report += `- **Attempts:** ${summary.errorCount}\n\n`;
|
|
359
|
-
// Events table
|
|
360
282
|
report += `| # | Type | Timestamp | Error / Analysis |\n`;
|
|
361
283
|
report += `|---|------|-----------|------------------|\n`;
|
|
362
284
|
let eventNum = 0;
|
|
@@ -374,6 +296,9 @@ class ToolErrorTracker {
|
|
|
374
296
|
else if (event.type === "recovery") {
|
|
375
297
|
detail = event.resolution ?? "Recovered";
|
|
376
298
|
}
|
|
299
|
+
else if (event.type === "circuit_half_open") {
|
|
300
|
+
detail = `Circuit degraded (half-open) after ${event.attemptNumber} attempt(s) — next failure will open the circuit`;
|
|
301
|
+
}
|
|
377
302
|
else if (event.type === "circuit_open") {
|
|
378
303
|
detail = `Circuit opened after ${event.attemptNumber} attempts`;
|
|
379
304
|
}
|
|
@@ -387,25 +312,11 @@ class ToolErrorTracker {
|
|
|
387
312
|
return report;
|
|
388
313
|
}
|
|
389
314
|
/**
|
|
390
|
-
*
|
|
315
|
+
* Clear all in-memory traces.
|
|
391
316
|
*/
|
|
392
|
-
|
|
317
|
+
clear() {
|
|
393
318
|
this.traces.clear();
|
|
394
319
|
this.activeTraceByTool.clear();
|
|
395
|
-
const dir = this.storageDir;
|
|
396
|
-
if (fs.existsSync(dir)) {
|
|
397
|
-
const files = fs.readdirSync(dir);
|
|
398
|
-
for (const file of files) {
|
|
399
|
-
if (file.endsWith(".json")) {
|
|
400
|
-
try {
|
|
401
|
-
fs.unlinkSync(path.join(dir, file));
|
|
402
|
-
}
|
|
403
|
-
catch {
|
|
404
|
-
// ignore
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
320
|
}
|
|
410
321
|
// ─── Private Helpers ─────────────────────────────────────────────────────
|
|
411
322
|
createTrace(toolName, args) {
|
|
@@ -424,36 +335,6 @@ class ToolErrorTracker {
|
|
|
424
335
|
this.activeTraceByTool.set(toolName, traceId);
|
|
425
336
|
return trace;
|
|
426
337
|
}
|
|
427
|
-
persistTrace(traceId) {
|
|
428
|
-
if (!this.persistImmediately)
|
|
429
|
-
return;
|
|
430
|
-
this.ensureStorageDir();
|
|
431
|
-
this.writeTraceFile(traceId);
|
|
432
|
-
this.writeIndexFile();
|
|
433
|
-
}
|
|
434
|
-
ensureStorageDir() {
|
|
435
|
-
if (!fs.existsSync(this.storageDir)) {
|
|
436
|
-
fs.mkdirSync(this.storageDir, { recursive: true });
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
writeTraceFile(traceId) {
|
|
440
|
-
const trace = this.traces.get(traceId);
|
|
441
|
-
if (!trace)
|
|
442
|
-
return;
|
|
443
|
-
const filePath = path.join(this.storageDir, `${traceId}.json`);
|
|
444
|
-
fs.writeFileSync(filePath, JSON.stringify(trace, null, 2), "utf-8");
|
|
445
|
-
}
|
|
446
|
-
writeIndexFile() {
|
|
447
|
-
const summaries = this.getAllSummaries();
|
|
448
|
-
const filePath = path.join(this.storageDir, "traces.json");
|
|
449
|
-
fs.writeFileSync(filePath, JSON.stringify({
|
|
450
|
-
totalTraces: summaries.length,
|
|
451
|
-
resolvedCount: summaries.filter((s) => s.resolved).length,
|
|
452
|
-
openCount: summaries.filter((s) => !s.resolved).length,
|
|
453
|
-
updatedAt: nowISO(),
|
|
454
|
-
traces: summaries,
|
|
455
|
-
}, null, 2), "utf-8");
|
|
456
|
-
}
|
|
457
338
|
formatEventType(type) {
|
|
458
339
|
switch (type) {
|
|
459
340
|
case "failure":
|
|
@@ -462,6 +343,8 @@ class ToolErrorTracker {
|
|
|
462
343
|
return "🟡 Retry";
|
|
463
344
|
case "recovery":
|
|
464
345
|
return "🟢 Recovery";
|
|
346
|
+
case "circuit_half_open":
|
|
347
|
+
return "⚠️ Circuit Half-Open";
|
|
465
348
|
case "circuit_open":
|
|
466
349
|
return "⛔ Circuit Open";
|
|
467
350
|
case "analysis":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-tracker.js","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error-tracker.js","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Tool } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* A tool filter decides whether a given tool should be included.
|
|
4
|
+
*
|
|
5
|
+
* Pass a filter to a sub-agent definition so you can restrict which
|
|
6
|
+
* tools the sub-agent can access without editing the main agent's
|
|
7
|
+
* ToolRegistry.
|
|
8
|
+
*
|
|
9
|
+
* Built-in factories (`allowlist`, `denylist`, `pattern`) cover common
|
|
10
|
+
* cases; implement this interface directly for custom logic.
|
|
11
|
+
*/
|
|
12
|
+
export interface ToolFilter {
|
|
13
|
+
/** Human-readable name shown in debug/log output. */
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** Return `true` to include the tool, `false` to exclude. */
|
|
16
|
+
filter(tool: Tool): boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Only allow tools whose name is in the provided list.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const filter = allowlist(["read_file", "grep", "glob"]);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function allowlist(...names: string[]): ToolFilter;
|
|
27
|
+
/**
|
|
28
|
+
* Allow all tools EXCEPT those whose name is in the provided list.
|
|
29
|
+
* Useful for removing dangerous or unnecessary tools from sub-agents.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* const filter = denylist("spawn_subagent", "list_subagents");
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function denylist(...names: string[]): ToolFilter;
|
|
37
|
+
/**
|
|
38
|
+
* Include only tools whose name matches a regex pattern.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const filter = pattern(/^(read|write|edit)_/); // file-system tools only
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function pattern(regex: RegExp): ToolFilter;
|
|
46
|
+
/**
|
|
47
|
+
* Combine multiple filters with AND logic — a tool must pass ALL filters.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* // Allow file tools, but exclude write
|
|
52
|
+
* const filter = all(pattern(/^(read|write|edit)_/), denylist("write_file"));
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function all(...filters: ToolFilter[]): ToolFilter;
|
|
56
|
+
/**
|
|
57
|
+
* Combine multiple filters with OR logic — a tool must pass AT LEAST ONE filter.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* // Allow read_file or exact grep match
|
|
62
|
+
* const filter = any(allowlist("read_file"), allowlist("grep"));
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function any(...filters: ToolFilter[]): ToolFilter;
|
|
66
|
+
/**
|
|
67
|
+
* Apply a filter to a tool array and return the filtered subset.
|
|
68
|
+
*/
|
|
69
|
+
export declare function filterTools(tools: Tool[], filter: ToolFilter): Tool[];
|
|
70
|
+
//# sourceMappingURL=tool-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-filter.d.ts","sourceRoot":"","sources":["../../src/tools/tool-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6DAA6D;IAC7D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;CAC7B;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAMxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAMvD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxD;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,CAErE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allowlist = allowlist;
|
|
4
|
+
exports.denylist = denylist;
|
|
5
|
+
exports.pattern = pattern;
|
|
6
|
+
exports.all = all;
|
|
7
|
+
exports.any = any;
|
|
8
|
+
exports.filterTools = filterTools;
|
|
9
|
+
// ─── Built-in Filters ────────────────────────────────────────────────────────
|
|
10
|
+
/**
|
|
11
|
+
* Only allow tools whose name is in the provided list.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const filter = allowlist(["read_file", "grep", "glob"]);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function allowlist(...names) {
|
|
19
|
+
const set = new Set(names);
|
|
20
|
+
return {
|
|
21
|
+
name: `allowlist(${names.join(", ")})`,
|
|
22
|
+
filter: (tool) => set.has(tool.name),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Allow all tools EXCEPT those whose name is in the provided list.
|
|
27
|
+
* Useful for removing dangerous or unnecessary tools from sub-agents.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const filter = denylist("spawn_subagent", "list_subagents");
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
function denylist(...names) {
|
|
35
|
+
const set = new Set(names);
|
|
36
|
+
return {
|
|
37
|
+
name: `denylist(${names.join(", ")})`,
|
|
38
|
+
filter: (tool) => !set.has(tool.name),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Include only tools whose name matches a regex pattern.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const filter = pattern(/^(read|write|edit)_/); // file-system tools only
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
function pattern(regex) {
|
|
50
|
+
return {
|
|
51
|
+
name: `pattern(/${regex.source}/${regex.flags})`,
|
|
52
|
+
filter: (tool) => regex.test(tool.name),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Combine multiple filters with AND logic — a tool must pass ALL filters.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* // Allow file tools, but exclude write
|
|
61
|
+
* const filter = all(pattern(/^(read|write|edit)_/), denylist("write_file"));
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
function all(...filters) {
|
|
65
|
+
return {
|
|
66
|
+
name: `all(${filters.map((f) => f.name).join(", ")})`,
|
|
67
|
+
filter: (tool) => filters.every((f) => f.filter(tool)),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Combine multiple filters with OR logic — a tool must pass AT LEAST ONE filter.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* // Allow read_file or exact grep match
|
|
76
|
+
* const filter = any(allowlist("read_file"), allowlist("grep"));
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
function any(...filters) {
|
|
80
|
+
return {
|
|
81
|
+
name: `any(${filters.map((f) => f.name).join(", ")})`,
|
|
82
|
+
filter: (tool) => filters.some((f) => f.filter(tool)),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// ─── Helper ──────────────────────────────────────────────────────────────────
|
|
86
|
+
/**
|
|
87
|
+
* Apply a filter to a tool array and return the filtered subset.
|
|
88
|
+
*/
|
|
89
|
+
function filterTools(tools, filter) {
|
|
90
|
+
return tools.filter((t) => filter.filter(t));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=tool-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-filter.js","sourceRoot":"","sources":["../../src/tools/tool-filter.ts"],"names":[],"mappings":";;AAgCA,8BAMC;AAWD,4BAMC;AAUD,0BAKC;AAWD,kBAKC;AAWD,kBAKC;AAOD,kCAEC;AAzFD,gFAAgF;AAEhF;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,GAAG,KAAe;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,GAAG,KAAe;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO;QACL,IAAI,EAAE,YAAY,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG;QAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,GAAG,CAAC,GAAG,OAAqB;IAC1C,OAAO;QACL,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,GAAG,CAAC,GAAG,OAAqB;IAC1C,OAAO;QACL,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,MAAkB;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truncator for tool outputs that exceed a byte threshold.
|
|
3
|
+
*
|
|
4
|
+
* When a tool returns a very large result it fills the context window
|
|
5
|
+
* and wastes tokens. This component saves the full result to disk and
|
|
6
|
+
* returns a short preview + a file path, so the LLM can decide whether
|
|
7
|
+
* to read the full content via the normal file-reading tools.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ToolOutputTruncator {
|
|
10
|
+
private maxBytes;
|
|
11
|
+
private keepBytes;
|
|
12
|
+
private outputDir;
|
|
13
|
+
/**
|
|
14
|
+
* @param maxBytes Outputs larger than this are truncated (0 = off).
|
|
15
|
+
* @param keepBytes How many bytes to keep from the start of the output
|
|
16
|
+
* when truncating.
|
|
17
|
+
* @param outputDir Directory where full outputs are saved.
|
|
18
|
+
*/
|
|
19
|
+
constructor(maxBytes?: number, keepBytes?: number, outputDir?: string);
|
|
20
|
+
/**
|
|
21
|
+
* Whether truncation is active (maxBytes > 0).
|
|
22
|
+
*/
|
|
23
|
+
get enabled(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Truncate a tool result string if it exceeds the configured threshold.
|
|
26
|
+
*
|
|
27
|
+
* - If the result is within `maxBytes`, returns it unchanged.
|
|
28
|
+
* - Otherwise saves the full output to disk and returns the first
|
|
29
|
+
* `keepBytes` bytes + a marker pointing to the saved file.
|
|
30
|
+
*
|
|
31
|
+
* @param toolName Name of the tool that produced this result.
|
|
32
|
+
* @param result The raw result string from tool execution.
|
|
33
|
+
*/
|
|
34
|
+
truncate(toolName: string, result: string): string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=tool-output-truncator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-output-truncator.d.ts","sourceRoot":"","sources":["../../src/tools/tool-output-truncator.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;OAKG;gBAED,QAAQ,GAAE,MAAU,EACpB,SAAS,GAAE,MAAa,EACxB,SAAS,CAAC,EAAE,MAAM;IAOpB;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CA6BnD"}
|