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
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { ToolFilter } from "../tools/tool-filter";
|
|
2
|
+
/**
|
|
3
|
+
* SubAgent type definitions.
|
|
4
|
+
*
|
|
5
|
+
* Sub-agents are lightweight ReAct agents that the main agent can spawn
|
|
6
|
+
* on demand. Each sub-agent is defined by a `.md` file with frontmatter
|
|
7
|
+
* declaring its name, description, available tools, and skills.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Declarative definition of a sub-agent, read from an AGENT.md file
|
|
11
|
+
* or constructed programmatically.
|
|
12
|
+
*/
|
|
13
|
+
export interface SubAgentDefinition {
|
|
14
|
+
/** Unique identifier (used as the spawn target name). */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Human-readable description shown to the main agent's LLM. */
|
|
17
|
+
description: string;
|
|
18
|
+
/** System prompt content (body of the AGENT.md file). */
|
|
19
|
+
systemPrompt: string;
|
|
20
|
+
/**
|
|
21
|
+
* Tool name patterns from the main agent's ToolRegistry that this sub-agent
|
|
22
|
+
* can use.
|
|
23
|
+
*
|
|
24
|
+
* Supports two forms:
|
|
25
|
+
* - **Exact names**: `"echo"`, `"bash"` — matches a single tool by name.
|
|
26
|
+
* - **Wildcard patterns**: `"filesystem_*"` — matches all tools whose names
|
|
27
|
+
* match the glob (e.g. all MCP tools from the "filesystem" server).
|
|
28
|
+
* Only `*` is supported (matches any sequence of characters).
|
|
29
|
+
*
|
|
30
|
+
* When `toolFilter` is also provided, the filter is applied on top of this
|
|
31
|
+
* allowlist (both must pass).
|
|
32
|
+
*/
|
|
33
|
+
tools: string[];
|
|
34
|
+
/**
|
|
35
|
+
* Optional ToolFilter for finer-grained control over which tools the
|
|
36
|
+
* sub-agent can access. Applied AFTER the `tools` allowlist.
|
|
37
|
+
* Use built-in factories like `allowlist()`, `denylist()`, `pattern()`,
|
|
38
|
+
* or combine with `all()` / `any()`.
|
|
39
|
+
*/
|
|
40
|
+
toolFilter?: ToolFilter;
|
|
41
|
+
/** Skill names to activate when the sub-agent starts. */
|
|
42
|
+
skills: string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Runtime status of a spawned sub-agent.
|
|
46
|
+
*/
|
|
47
|
+
export type SubAgentStatus = "running" | "completed" | "error";
|
|
48
|
+
/**
|
|
49
|
+
* Result returned when a sub-agent completes.
|
|
50
|
+
*/
|
|
51
|
+
export interface SubAgentResult {
|
|
52
|
+
/** Unique run ID (generated at spawn time). */
|
|
53
|
+
subAgentId: string;
|
|
54
|
+
/** Sub-agent definition name. */
|
|
55
|
+
name: string;
|
|
56
|
+
/** Whether the run completed without error. */
|
|
57
|
+
success: boolean;
|
|
58
|
+
/** The final output (answer text or error message). */
|
|
59
|
+
output: string;
|
|
60
|
+
/** Wall-clock duration of the run in milliseconds. */
|
|
61
|
+
durationMs: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Pending sub-agent run — stored internally while the
|
|
65
|
+
* sub-agent is executing asynchronously.
|
|
66
|
+
*/
|
|
67
|
+
export interface PendingRun {
|
|
68
|
+
subAgentId: string;
|
|
69
|
+
name: string;
|
|
70
|
+
startedAt: number;
|
|
71
|
+
promise: Promise<SubAgentResult>;
|
|
72
|
+
/** Set to the result once the promise resolves. */
|
|
73
|
+
resolved: SubAgentResult | null;
|
|
74
|
+
/** Whether this run was interrupted by user cancellation. */
|
|
75
|
+
cancelled?: boolean;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=subagent-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-types.d.ts","sourceRoot":"","sources":["../../src/subagent/subagent-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,mDAAmD;IACnD,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-types.js","sourceRoot":"","sources":["../../src/subagent/subagent-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAMhC,eAAO,MAAM,QAAQ,EAAE,IAoGtB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BashTool = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
6
|
+
const MAX_TIMEOUT_MS = 120_000;
|
|
7
|
+
const MAX_OUTPUT_BYTES = 50 * 1024;
|
|
8
|
+
exports.BashTool = {
|
|
9
|
+
name: "bash",
|
|
10
|
+
description: "Execute a shell command in the current working directory. " +
|
|
11
|
+
"Captures stdout and stderr. Commands are limited to 120 seconds maximum. " +
|
|
12
|
+
"Output is limited to 50 KB. This tool is useful for running build scripts, " +
|
|
13
|
+
"test suites, or any command-line tool. " +
|
|
14
|
+
"⚠️ WARNING: This is an irreversible system operation — approval is required.",
|
|
15
|
+
parameters: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
command: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "The shell command to execute. Must be a single command string. " +
|
|
21
|
+
"Pipe and redirect operators (|, >, <, &&, ||) are supported.",
|
|
22
|
+
},
|
|
23
|
+
workdir: {
|
|
24
|
+
type: "string",
|
|
25
|
+
description: "Working directory for the command (defaults to the current directory).",
|
|
26
|
+
},
|
|
27
|
+
timeout: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: `Maximum execution time in milliseconds (default: ${DEFAULT_TIMEOUT_MS / 1000}s, max: ${MAX_TIMEOUT_MS / 1000}s).`,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
required: ["command"],
|
|
33
|
+
},
|
|
34
|
+
requireApproval: true,
|
|
35
|
+
async execute(args) {
|
|
36
|
+
const command = String(args.command ?? "");
|
|
37
|
+
const workdir = args.workdir ? String(args.workdir) : undefined;
|
|
38
|
+
const timeoutMs = Math.min(typeof args.timeout === "number" ? args.timeout : DEFAULT_TIMEOUT_MS, MAX_TIMEOUT_MS);
|
|
39
|
+
if (!command.trim()) {
|
|
40
|
+
return "Error: Command must not be empty.";
|
|
41
|
+
}
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
|
+
const child = (0, child_process_1.exec)(command, {
|
|
44
|
+
cwd: workdir ?? process.cwd(),
|
|
45
|
+
timeout: timeoutMs,
|
|
46
|
+
maxBuffer: MAX_OUTPUT_BYTES,
|
|
47
|
+
shell: process.env.SHELL || (process.platform === "win32" ? "cmd.exe" : "/bin/sh"),
|
|
48
|
+
}, (error, stdout, stderr) => {
|
|
49
|
+
const exitCode = error?.code ?? 0;
|
|
50
|
+
const signal = error?.signal;
|
|
51
|
+
let output = `(exit code: ${exitCode})\n`;
|
|
52
|
+
if (stdout.trim()) {
|
|
53
|
+
output += stdout.trimEnd() + "\n";
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
output += "(no stdout)\n";
|
|
57
|
+
}
|
|
58
|
+
if (stderr.trim()) {
|
|
59
|
+
output += "\n(stderr:\n" + stderr.trimEnd() + "\n)";
|
|
60
|
+
}
|
|
61
|
+
if (signal) {
|
|
62
|
+
output += `\n(process killed by signal: ${signal})`;
|
|
63
|
+
}
|
|
64
|
+
if (error && error.code === "ENOENT") {
|
|
65
|
+
resolve(`Error: Command not found or shell not available.\n` +
|
|
66
|
+
`Make sure the command exists and is in your PATH.\n\n${output}`);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
resolve(output);
|
|
70
|
+
});
|
|
71
|
+
// Ensure the process is killed after timeout
|
|
72
|
+
const killTimer = setTimeout(() => {
|
|
73
|
+
if (child.exitCode === null) {
|
|
74
|
+
child.kill("SIGTERM");
|
|
75
|
+
setTimeout(() => {
|
|
76
|
+
if (child.exitCode === null) {
|
|
77
|
+
child.kill("SIGKILL");
|
|
78
|
+
}
|
|
79
|
+
}, 2000);
|
|
80
|
+
}
|
|
81
|
+
}, timeoutMs);
|
|
82
|
+
child.on("close", () => clearTimeout(killTimer));
|
|
83
|
+
child.on("exit", () => clearTimeout(killTimer));
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=bash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/tools/builtin/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/edit-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/edit-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,IA2F1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../src/tools/builtin/edit-file.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"edit-file.js","sourceRoot":"","sources":["../../../src/tools/builtin/edit-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,25 @@ import { Tool } from "../types";
|
|
|
4
4
|
* Array of all built-in tools.
|
|
5
5
|
*/
|
|
6
6
|
export declare const BUILTIN_TOOLS: Tool[];
|
|
7
|
+
/**
|
|
8
|
+
* Names of every built-in tool (both static and dynamically-created).
|
|
9
|
+
* Used to distinguish framework tools from MCP / user-registered tools.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BUILTIN_TOOL_NAMES: Set<string>;
|
|
7
12
|
export { ReadFileTool } from "./read-file";
|
|
8
13
|
export { WriteFileTool } from "./write-file";
|
|
9
14
|
export { EditFileTool } from "./edit-file";
|
|
10
15
|
export { GrepSearchTool } from "./grep-search";
|
|
11
16
|
export { GlobSearchTool } from "./glob-search";
|
|
17
|
+
export { WebFetchTool } from "./web-fetch";
|
|
18
|
+
export { BashTool } from "./bash";
|
|
19
|
+
export { createListSubagentsTool } from "./list-subagents";
|
|
20
|
+
export { createSpawnSubagentTool } from "./spawn-subagent";
|
|
21
|
+
export { createListErrorsTool } from "./list-errors";
|
|
22
|
+
export { createSkillTool } from "./skill";
|
|
23
|
+
export { createRememberTool } from "./remember";
|
|
24
|
+
export { createRecallTool } from "./recall";
|
|
25
|
+
export { createSearchKnowledgeTool, createListKnowledgeDocumentsTool } from "../../rag/search-knowledge";
|
|
12
26
|
/**
|
|
13
27
|
* Register all built-in tools into the given registry.
|
|
14
28
|
* Silently skips tools that are already registered.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAShC;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,EAQ/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAgB7B,CAAC;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAEzG;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EACtB,SAAS,UAAQ,GAChB,IAAI,CAYN"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GlobSearchTool = exports.GrepSearchTool = exports.EditFileTool = exports.WriteFileTool = exports.ReadFileTool = exports.BUILTIN_TOOLS = void 0;
|
|
3
|
+
exports.createListKnowledgeDocumentsTool = exports.createSearchKnowledgeTool = exports.createRecallTool = exports.createRememberTool = exports.createSkillTool = exports.createListErrorsTool = exports.createSpawnSubagentTool = exports.createListSubagentsTool = exports.BashTool = exports.WebFetchTool = exports.GlobSearchTool = exports.GrepSearchTool = exports.EditFileTool = exports.WriteFileTool = exports.ReadFileTool = exports.BUILTIN_TOOL_NAMES = exports.BUILTIN_TOOLS = void 0;
|
|
4
4
|
exports.registerAllBuiltinTools = registerAllBuiltinTools;
|
|
5
5
|
const read_file_1 = require("./read-file");
|
|
6
6
|
const write_file_1 = require("./write-file");
|
|
7
7
|
const edit_file_1 = require("./edit-file");
|
|
8
8
|
const grep_search_1 = require("./grep-search");
|
|
9
9
|
const glob_search_1 = require("./glob-search");
|
|
10
|
+
const web_fetch_1 = require("./web-fetch");
|
|
11
|
+
const bash_1 = require("./bash");
|
|
10
12
|
/**
|
|
11
13
|
* Array of all built-in tools.
|
|
12
14
|
*/
|
|
@@ -16,7 +18,30 @@ exports.BUILTIN_TOOLS = [
|
|
|
16
18
|
edit_file_1.EditFileTool,
|
|
17
19
|
grep_search_1.GrepSearchTool,
|
|
18
20
|
glob_search_1.GlobSearchTool,
|
|
21
|
+
web_fetch_1.WebFetchTool,
|
|
22
|
+
bash_1.BashTool,
|
|
19
23
|
];
|
|
24
|
+
/**
|
|
25
|
+
* Names of every built-in tool (both static and dynamically-created).
|
|
26
|
+
* Used to distinguish framework tools from MCP / user-registered tools.
|
|
27
|
+
*/
|
|
28
|
+
exports.BUILTIN_TOOL_NAMES = new Set([
|
|
29
|
+
"read_file",
|
|
30
|
+
"write_file",
|
|
31
|
+
"edit_file",
|
|
32
|
+
"glob_search",
|
|
33
|
+
"grep_search",
|
|
34
|
+
"web_fetch",
|
|
35
|
+
"bash",
|
|
36
|
+
"skill",
|
|
37
|
+
"spawn_subagent",
|
|
38
|
+
"list_subagents",
|
|
39
|
+
"remember",
|
|
40
|
+
"recall",
|
|
41
|
+
"list_errors",
|
|
42
|
+
"search_knowledge",
|
|
43
|
+
"list_knowledge_documents",
|
|
44
|
+
]);
|
|
20
45
|
// Re-export individual tools
|
|
21
46
|
var read_file_2 = require("./read-file");
|
|
22
47
|
Object.defineProperty(exports, "ReadFileTool", { enumerable: true, get: function () { return read_file_2.ReadFileTool; } });
|
|
@@ -28,6 +53,25 @@ var grep_search_2 = require("./grep-search");
|
|
|
28
53
|
Object.defineProperty(exports, "GrepSearchTool", { enumerable: true, get: function () { return grep_search_2.GrepSearchTool; } });
|
|
29
54
|
var glob_search_2 = require("./glob-search");
|
|
30
55
|
Object.defineProperty(exports, "GlobSearchTool", { enumerable: true, get: function () { return glob_search_2.GlobSearchTool; } });
|
|
56
|
+
var web_fetch_2 = require("./web-fetch");
|
|
57
|
+
Object.defineProperty(exports, "WebFetchTool", { enumerable: true, get: function () { return web_fetch_2.WebFetchTool; } });
|
|
58
|
+
var bash_2 = require("./bash");
|
|
59
|
+
Object.defineProperty(exports, "BashTool", { enumerable: true, get: function () { return bash_2.BashTool; } });
|
|
60
|
+
var list_subagents_1 = require("./list-subagents");
|
|
61
|
+
Object.defineProperty(exports, "createListSubagentsTool", { enumerable: true, get: function () { return list_subagents_1.createListSubagentsTool; } });
|
|
62
|
+
var spawn_subagent_1 = require("./spawn-subagent");
|
|
63
|
+
Object.defineProperty(exports, "createSpawnSubagentTool", { enumerable: true, get: function () { return spawn_subagent_1.createSpawnSubagentTool; } });
|
|
64
|
+
var list_errors_1 = require("./list-errors");
|
|
65
|
+
Object.defineProperty(exports, "createListErrorsTool", { enumerable: true, get: function () { return list_errors_1.createListErrorsTool; } });
|
|
66
|
+
var skill_1 = require("./skill");
|
|
67
|
+
Object.defineProperty(exports, "createSkillTool", { enumerable: true, get: function () { return skill_1.createSkillTool; } });
|
|
68
|
+
var remember_1 = require("./remember");
|
|
69
|
+
Object.defineProperty(exports, "createRememberTool", { enumerable: true, get: function () { return remember_1.createRememberTool; } });
|
|
70
|
+
var recall_1 = require("./recall");
|
|
71
|
+
Object.defineProperty(exports, "createRecallTool", { enumerable: true, get: function () { return recall_1.createRecallTool; } });
|
|
72
|
+
var search_knowledge_1 = require("../../rag/search-knowledge");
|
|
73
|
+
Object.defineProperty(exports, "createSearchKnowledgeTool", { enumerable: true, get: function () { return search_knowledge_1.createSearchKnowledgeTool; } });
|
|
74
|
+
Object.defineProperty(exports, "createListKnowledgeDocumentsTool", { enumerable: true, get: function () { return search_knowledge_1.createListKnowledgeDocumentsTool; } });
|
|
31
75
|
/**
|
|
32
76
|
* Register all built-in tools into the given registry.
|
|
33
77
|
* Silently skips tools that are already registered.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/builtin/index.ts"],"names":[],"mappings":";;;AAqEA,0DAeC;AAlFD,2CAA2C;AAC3C,6CAA6C;AAC7C,2CAA2C;AAC3C,+CAA+C;AAC/C,+CAA+C;AAC/C,2CAA2C;AAC3C,iCAAkC;AAElC;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC,wBAAY;IACZ,0BAAa;IACb,wBAAY;IACZ,4BAAc;IACd,4BAAc;IACd,wBAAY;IACZ,eAAQ;CACT,CAAC;AAEF;;;GAGG;AACU,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACxC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,MAAM;IACN,OAAO;IACP,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,aAAa;IACb,kBAAkB;IAClB,0BAA0B;CAC3B,CAAC,CAAC;AAEH,6BAA6B;AAC7B,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AACtB,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA;AACjB,mDAA2D;AAAlD,yHAAA,uBAAuB,OAAA;AAChC,mDAA2D;AAAlD,yHAAA,uBAAuB,OAAA;AAChC,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAC7B,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AACxB,uCAAgD;AAAvC,8GAAA,kBAAkB,OAAA;AAC3B,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,+DAAyG;AAAhG,6HAAA,yBAAyB,OAAA;AAAE,oIAAA,gCAAgC,OAAA;AAEpE;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACrC,QAAsB,EACtB,SAAS,GAAG,KAAK;IAEjB,KAAK,MAAM,IAAI,IAAI,qBAAa,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,qBAAqB;QACvB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tool } from "../types";
|
|
2
|
+
import type { ToolRegistry } from "../tool-registry";
|
|
3
|
+
/**
|
|
4
|
+
* Factory: create a `list_errors` tool bound to a ToolRegistry instance.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createListErrorsTool(registry: ToolRegistry): Tool;
|
|
7
|
+
//# sourceMappingURL=list-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-errors.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/list-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CA6DjE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createListErrorsTool = createListErrorsTool;
|
|
4
|
+
/**
|
|
5
|
+
* Factory: create a `list_errors` tool bound to a ToolRegistry instance.
|
|
6
|
+
*/
|
|
7
|
+
function createListErrorsTool(registry) {
|
|
8
|
+
return {
|
|
9
|
+
name: "list_errors",
|
|
10
|
+
description: "List recent tool errors and their status. " +
|
|
11
|
+
"Use this before retrying a failed tool to check known failure patterns, " +
|
|
12
|
+
"or to see which tools have been disabled by the circuit breaker.",
|
|
13
|
+
parameters: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
tool_name: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "Optional: filter errors by a specific tool name.",
|
|
19
|
+
},
|
|
20
|
+
unresolved_only: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
description: "If true, only show unresolved errors. Default: false.",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
async execute(params) {
|
|
27
|
+
const toolName = params.tool_name;
|
|
28
|
+
const unresolvedOnly = params.unresolved_only;
|
|
29
|
+
const tracker = registry.getErrorTracker();
|
|
30
|
+
if (!tracker) {
|
|
31
|
+
return "Error tracker is not configured. Set `toolErrorTracker` in AgentConfig to enable.";
|
|
32
|
+
}
|
|
33
|
+
const summaries = tracker.getAllSummaries();
|
|
34
|
+
const filtered = summaries.filter((s) => {
|
|
35
|
+
if (toolName && s.toolName !== toolName)
|
|
36
|
+
return false;
|
|
37
|
+
if (unresolvedOnly && s.resolved)
|
|
38
|
+
return false;
|
|
39
|
+
return true;
|
|
40
|
+
});
|
|
41
|
+
if (filtered.length === 0) {
|
|
42
|
+
return "No error traces found" +
|
|
43
|
+
(toolName ? ` for tool "${toolName}"` : "") +
|
|
44
|
+
(unresolvedOnly ? " (unresolved)" : "") +
|
|
45
|
+
".";
|
|
46
|
+
}
|
|
47
|
+
const lines = [
|
|
48
|
+
`Found ${filtered.length} error trace(s):`,
|
|
49
|
+
"",
|
|
50
|
+
];
|
|
51
|
+
for (const s of filtered) {
|
|
52
|
+
const status = s.resolved ? "✅ resolved" : "❌ unresolved";
|
|
53
|
+
lines.push(`- **${s.toolName}** [${s.traceId}] ${status}`);
|
|
54
|
+
lines.push(` First error: ${s.firstError || "(none)"}`);
|
|
55
|
+
lines.push(` Attempts: ${s.errorCount}`);
|
|
56
|
+
if (s.resolution)
|
|
57
|
+
lines.push(` Resolution: ${s.resolution}`);
|
|
58
|
+
lines.push("");
|
|
59
|
+
}
|
|
60
|
+
return lines.join("\n");
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=list-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-errors.js","sourceRoot":"","sources":["../../../src/tools/builtin/list-errors.ts"],"names":[],"mappings":";;AAMA,oDA6DC;AAhED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,QAAsB;IACzD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,4CAA4C;YAC5C,0EAA0E;YAC1E,kEAAkE;QACpE,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uDAAuD;iBACrE;aACF;SACF;QAED,KAAK,CAAC,OAAO,CAAC,MAA+B;YAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAA+B,CAAC;YACxD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAsC,CAAC;YAErE,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,mFAAmF,CAAC;YAC7F,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtC,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBACtD,IAAI,cAAc,IAAI,CAAC,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC/C,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,uBAAuB;oBAC5B,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,GAAG,CAAC;YACR,CAAC;YAED,MAAM,KAAK,GAAG;gBACZ,SAAS,QAAQ,CAAC,MAAM,kBAAkB;gBAC1C,EAAE;aACH,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,CAAC,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,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 `list_subagents` tool bound to a SubAgentManager instance.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createListSubagentsTool(manager: SubAgentManager): Tool;
|
|
7
|
+
//# sourceMappingURL=list-subagents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-subagents.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/list-subagents.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,CAetE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createListSubagentsTool = createListSubagentsTool;
|
|
4
|
+
/**
|
|
5
|
+
* Factory: create a `list_subagents` tool bound to a SubAgentManager instance.
|
|
6
|
+
*/
|
|
7
|
+
function createListSubagentsTool(manager) {
|
|
8
|
+
return {
|
|
9
|
+
name: "list_subagents",
|
|
10
|
+
description: "List all available sub-agents with their names, descriptions, tools, and skills. " +
|
|
11
|
+
"Call this first before using spawn_subagent so you can pick the right one.",
|
|
12
|
+
parameters: { type: "object", properties: {} },
|
|
13
|
+
async execute() {
|
|
14
|
+
const list = manager.buildSubAgentList();
|
|
15
|
+
if (list === "No sub-agents registered.")
|
|
16
|
+
return list;
|
|
17
|
+
return "Available sub-agents:\n\n" + list;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=list-subagents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-subagents.js","sourceRoot":"","sources":["../../../src/tools/builtin/list-subagents.ts"],"names":[],"mappings":";;AAMA,0DAeC;AAlBD;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAwB;IAC9D,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,mFAAmF;YACnF,4EAA4E;QAC9E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QAE9C,KAAK,CAAC,OAAO;YACX,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACzC,IAAI,IAAI,KAAK,2BAA2B;gBAAE,OAAO,IAAI,CAAC;YAEtD,OAAO,2BAA2B,GAAG,IAAI,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tool } from "../types";
|
|
2
|
+
import type { MemoryManager } from "../../memory/memory-manager";
|
|
3
|
+
/**
|
|
4
|
+
* Create a `recall` tool so the LLM can load full memory content on demand.
|
|
5
|
+
*
|
|
6
|
+
* The system prompt only lists memory names to save space; the LLM calls
|
|
7
|
+
* this tool to load the complete markdown body when a memory is relevant
|
|
8
|
+
* to the current task.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createRecallTool(memoryManager: MemoryManager): Tool;
|
|
11
|
+
//# sourceMappingURL=recall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/recall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAyCnE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRecallTool = createRecallTool;
|
|
4
|
+
const boundaries_1 = require("../../security/boundaries");
|
|
5
|
+
/**
|
|
6
|
+
* Create a `recall` tool so the LLM can load full memory content on demand.
|
|
7
|
+
*
|
|
8
|
+
* The system prompt only lists memory names to save space; the LLM calls
|
|
9
|
+
* this tool to load the complete markdown body when a memory is relevant
|
|
10
|
+
* to the current task.
|
|
11
|
+
*/
|
|
12
|
+
function createRecallTool(memoryManager) {
|
|
13
|
+
return {
|
|
14
|
+
name: "recall",
|
|
15
|
+
description: "Load the full content of a long-term memory. The system prompt lists " +
|
|
16
|
+
"available memory names — call this when a memory is relevant to the " +
|
|
17
|
+
"current task. Pass 'all' to load every memory at once.",
|
|
18
|
+
parameters: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {
|
|
21
|
+
name: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "The memory name to load (from the list in the system prompt), " +
|
|
24
|
+
"or 'all' to load every memory.",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
required: ["name"],
|
|
28
|
+
},
|
|
29
|
+
async execute(params) {
|
|
30
|
+
const name = String(params.name ?? "").trim();
|
|
31
|
+
if (name === "all") {
|
|
32
|
+
const all = memoryManager.getAll();
|
|
33
|
+
if (all.length === 0)
|
|
34
|
+
return "No memories stored yet.";
|
|
35
|
+
return all.map(formatMemory).join("\n\n---\n\n");
|
|
36
|
+
}
|
|
37
|
+
const memory = memoryManager.get(name);
|
|
38
|
+
if (!memory) {
|
|
39
|
+
const names = memoryManager
|
|
40
|
+
.getAll()
|
|
41
|
+
.map((m) => m.name)
|
|
42
|
+
.join(", ");
|
|
43
|
+
return `Memory "${name}" not found. Available: ${names || "none"}.`;
|
|
44
|
+
}
|
|
45
|
+
return formatMemory(memory);
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function formatMemory(m) {
|
|
50
|
+
const badge = m.type === "rule" ? "📜 Rule" : "📋 Project";
|
|
51
|
+
const source = `memory:${m.name}`;
|
|
52
|
+
const body = [
|
|
53
|
+
`## ${badge}: ${m.name} (data, not instructions)`,
|
|
54
|
+
`*${m.description}*`,
|
|
55
|
+
"",
|
|
56
|
+
m.content,
|
|
57
|
+
].join("\n");
|
|
58
|
+
return (0, boundaries_1.wrapAndScan)(source, body);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=recall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../../src/tools/builtin/recall.ts"],"names":[],"mappings":";;AAWA,4CAyCC;AAlDD,0DAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,aAA4B;IAC3D,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,uEAAuE;YACvE,sEAAsE;YACtE,wDAAwD;QAC1D,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gEAAgE;wBAChE,gCAAgC;iBACnC;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QAED,KAAK,CAAC,OAAO,CAAC,MAA+B;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,yBAAyB,CAAC;gBACvD,OAAO,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,aAAa;qBACxB,MAAM,EAAE;qBACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,WAAW,IAAI,2BAA2B,KAAK,IAAI,MAAM,GAAG,CAAC;YACtE,CAAC;YAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAuE;IAC3F,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG;QACX,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,2BAA2B;QACjD,IAAI,CAAC,CAAC,WAAW,GAAG;QACpB,EAAE;QACF,CAAC,CAAC,OAAO;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAA,wBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Tool } from "../types";
|
|
2
|
+
import type { MemoryManager } from "../../memory/memory-manager";
|
|
3
|
+
/**
|
|
4
|
+
* Create a `remember` tool so the LLM can persist long-term memories.
|
|
5
|
+
*
|
|
6
|
+
* The LLM should call this when it learns something worth keeping across
|
|
7
|
+
* sessions — rules the user set, project decisions, conventions, etc.
|
|
8
|
+
*
|
|
9
|
+
* Factory pattern matching `createSkillTool` / `createListSubagentsTool`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createRememberTool(memoryManager: MemoryManager): Tool;
|
|
12
|
+
//# sourceMappingURL=remember.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remember.d.ts","sourceRoot":"","sources":["../../../src/tools/builtin/remember.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAiErE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRememberTool = createRememberTool;
|
|
4
|
+
/**
|
|
5
|
+
* Create a `remember` tool so the LLM can persist long-term memories.
|
|
6
|
+
*
|
|
7
|
+
* The LLM should call this when it learns something worth keeping across
|
|
8
|
+
* sessions — rules the user set, project decisions, conventions, etc.
|
|
9
|
+
*
|
|
10
|
+
* Factory pattern matching `createSkillTool` / `createListSubagentsTool`.
|
|
11
|
+
*/
|
|
12
|
+
function createRememberTool(memoryManager) {
|
|
13
|
+
return {
|
|
14
|
+
name: "remember",
|
|
15
|
+
description: "Save a long-term memory that will be recalled in future conversations. " +
|
|
16
|
+
"Use this when you learn a user rule, project convention, or important " +
|
|
17
|
+
"decision that should influence future sessions. Memories persist across " +
|
|
18
|
+
"sessions and are injected into the system prompt.",
|
|
19
|
+
parameters: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
name: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "Short kebab-case slug used as the memory filename. " +
|
|
25
|
+
"Examples: 'use-prisma-migrations', 'prefer-functional-components'.",
|
|
26
|
+
},
|
|
27
|
+
type: {
|
|
28
|
+
type: "string",
|
|
29
|
+
enum: ["rule", "project"],
|
|
30
|
+
description: "'rule' for user constraints (why + when they apply). " +
|
|
31
|
+
"'project' for project facts/decisions (what + why + how to apply).",
|
|
32
|
+
},
|
|
33
|
+
description: {
|
|
34
|
+
type: "string",
|
|
35
|
+
description: "One-line summary shown in the memory index. Keep it concise " +
|
|
36
|
+
"(under 100 chars) so the index stays small.",
|
|
37
|
+
},
|
|
38
|
+
content: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Full markdown body. For rules: include why the user required it and " +
|
|
41
|
+
"when it takes effect. For project facts: include what happened, why " +
|
|
42
|
+
"(the constraint or deadline that drove it), and how the agent should " +
|
|
43
|
+
"apply this knowledge in future sessions.",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
required: ["name", "type", "description", "content"],
|
|
47
|
+
},
|
|
48
|
+
async execute(params) {
|
|
49
|
+
const name = String(params.name ?? "").trim();
|
|
50
|
+
const memType = params.type === "rule" ? "rule" : "project";
|
|
51
|
+
const description = String(params.description ?? "").trim();
|
|
52
|
+
const content = String(params.content ?? "").trim();
|
|
53
|
+
if (!name)
|
|
54
|
+
return "Error: 'name' is required (kebab-case slug).";
|
|
55
|
+
if (!description)
|
|
56
|
+
return "Error: 'description' is required (one-line summary).";
|
|
57
|
+
if (!content)
|
|
58
|
+
return "Error: 'content' is required (markdown body).";
|
|
59
|
+
if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(name)) {
|
|
60
|
+
return `Error: 'name' must be kebab-case (e.g. 'use-prisma-migrations'). Got: "${name}".`;
|
|
61
|
+
}
|
|
62
|
+
// Upsert: overwrite if exists, add if new. Oldest entries are
|
|
63
|
+
// silently pruned when the index exceeds 200 lines / 25 KB.
|
|
64
|
+
const isUpdate = memoryManager.has(name);
|
|
65
|
+
memoryManager.add({ name, type: memType, description, content });
|
|
66
|
+
return isUpdate
|
|
67
|
+
? `Memory "${name}" updated successfully.`
|
|
68
|
+
: `Memory "${name}" saved successfully (index: ${memoryManager.count} entries).`;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=remember.js.map
|