@burtson-labs/agent-core 1.6.13
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 +201 -0
- package/README.md +88 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/activation.d.ts +60 -0
- package/dist/mcp/activation.d.ts.map +1 -0
- package/dist/mcp/activation.js +139 -0
- package/dist/mcp/activation.js.map +1 -0
- package/dist/mcp/clientPool.d.ts +202 -0
- package/dist/mcp/clientPool.d.ts.map +1 -0
- package/dist/mcp/clientPool.js +469 -0
- package/dist/mcp/clientPool.js.map +1 -0
- package/dist/mcp/index.d.ts +18 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +28 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +43 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +130 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/toolAdapter.d.ts +57 -0
- package/dist/mcp/toolAdapter.d.ts.map +1 -0
- package/dist/mcp/toolAdapter.js +223 -0
- package/dist/mcp/toolAdapter.js.map +1 -0
- package/dist/mcp/types.d.ts +122 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +15 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/providers/deterministic-provider.d.ts +21 -0
- package/dist/providers/deterministic-provider.d.ts.map +1 -0
- package/dist/providers/deterministic-provider.js +80 -0
- package/dist/providers/deterministic-provider.js.map +1 -0
- package/dist/providers/provider-client.d.ts +12 -0
- package/dist/providers/provider-client.d.ts.map +1 -0
- package/dist/providers/provider-client.js +11 -0
- package/dist/providers/provider-client.js.map +1 -0
- package/dist/runtime/AgentRuntime.d.ts +67 -0
- package/dist/runtime/AgentRuntime.d.ts.map +1 -0
- package/dist/runtime/AgentRuntime.js +382 -0
- package/dist/runtime/AgentRuntime.js.map +1 -0
- package/dist/security/secretPatterns.d.ts +76 -0
- package/dist/security/secretPatterns.d.ts.map +1 -0
- package/dist/security/secretPatterns.js +290 -0
- package/dist/security/secretPatterns.js.map +1 -0
- package/dist/tools/ask-user-tool.d.ts +19 -0
- package/dist/tools/ask-user-tool.d.ts.map +1 -0
- package/dist/tools/ask-user-tool.js +148 -0
- package/dist/tools/ask-user-tool.js.map +1 -0
- package/dist/tools/compactMessages.d.ts +52 -0
- package/dist/tools/compactMessages.d.ts.map +1 -0
- package/dist/tools/compactMessages.js +158 -0
- package/dist/tools/compactMessages.js.map +1 -0
- package/dist/tools/core-tools.d.ts +29 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/tools/core-tools.js +2214 -0
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/git-tools.d.ts +32 -0
- package/dist/tools/git-tools.d.ts.map +1 -0
- package/dist/tools/git-tools.js +330 -0
- package/dist/tools/git-tools.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +31 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/language-adapters.d.ts +48 -0
- package/dist/tools/language-adapters.d.ts.map +1 -0
- package/dist/tools/language-adapters.js +299 -0
- package/dist/tools/language-adapters.js.map +1 -0
- package/dist/tools/loop/compactionTrigger.d.ts +47 -0
- package/dist/tools/loop/compactionTrigger.d.ts.map +1 -0
- package/dist/tools/loop/compactionTrigger.js +32 -0
- package/dist/tools/loop/compactionTrigger.js.map +1 -0
- package/dist/tools/loop/finalAnswerNudges.d.ts +68 -0
- package/dist/tools/loop/finalAnswerNudges.d.ts.map +1 -0
- package/dist/tools/loop/finalAnswerNudges.js +87 -0
- package/dist/tools/loop/finalAnswerNudges.js.map +1 -0
- package/dist/tools/loop/goalAnchor.d.ts +72 -0
- package/dist/tools/loop/goalAnchor.d.ts.map +1 -0
- package/dist/tools/loop/goalAnchor.js +76 -0
- package/dist/tools/loop/goalAnchor.js.map +1 -0
- package/dist/tools/loop/llmStream.d.ts +70 -0
- package/dist/tools/loop/llmStream.d.ts.map +1 -0
- package/dist/tools/loop/llmStream.js +181 -0
- package/dist/tools/loop/llmStream.js.map +1 -0
- package/dist/tools/loop/parallelExecute.d.ts +57 -0
- package/dist/tools/loop/parallelExecute.d.ts.map +1 -0
- package/dist/tools/loop/parallelExecute.js +54 -0
- package/dist/tools/loop/parallelExecute.js.map +1 -0
- package/dist/tools/loop/singleToolExecute.d.ts +71 -0
- package/dist/tools/loop/singleToolExecute.d.ts.map +1 -0
- package/dist/tools/loop/singleToolExecute.js +139 -0
- package/dist/tools/loop/singleToolExecute.js.map +1 -0
- package/dist/tools/loop/toolCallNormalize.d.ts +57 -0
- package/dist/tools/loop/toolCallNormalize.d.ts.map +1 -0
- package/dist/tools/loop/toolCallNormalize.js +99 -0
- package/dist/tools/loop/toolCallNormalize.js.map +1 -0
- package/dist/tools/loop/turnSetup.d.ts +43 -0
- package/dist/tools/loop/turnSetup.d.ts.map +1 -0
- package/dist/tools/loop/turnSetup.js +48 -0
- package/dist/tools/loop/turnSetup.js.map +1 -0
- package/dist/tools/ocr.d.ts +52 -0
- package/dist/tools/ocr.d.ts.map +1 -0
- package/dist/tools/ocr.js +238 -0
- package/dist/tools/ocr.js.map +1 -0
- package/dist/tools/post-edit-checks.d.ts +46 -0
- package/dist/tools/post-edit-checks.d.ts.map +1 -0
- package/dist/tools/post-edit-checks.js +236 -0
- package/dist/tools/post-edit-checks.js.map +1 -0
- package/dist/tools/skill-loader.d.ts +94 -0
- package/dist/tools/skill-loader.d.ts.map +1 -0
- package/dist/tools/skill-loader.js +422 -0
- package/dist/tools/skill-loader.js.map +1 -0
- package/dist/tools/skill-registry.d.ts +44 -0
- package/dist/tools/skill-registry.d.ts.map +1 -0
- package/dist/tools/skill-registry.js +118 -0
- package/dist/tools/skill-registry.js.map +1 -0
- package/dist/tools/skill-types.d.ts +38 -0
- package/dist/tools/skill-types.d.ts.map +1 -0
- package/dist/tools/skill-types.js +10 -0
- package/dist/tools/skill-types.js.map +1 -0
- package/dist/tools/skills/code-review-skill.d.ts +9 -0
- package/dist/tools/skills/code-review-skill.d.ts.map +1 -0
- package/dist/tools/skills/code-review-skill.js +66 -0
- package/dist/tools/skills/code-review-skill.js.map +1 -0
- package/dist/tools/skills/core-skill.d.ts +13 -0
- package/dist/tools/skills/core-skill.d.ts.map +1 -0
- package/dist/tools/skills/core-skill.js +23 -0
- package/dist/tools/skills/core-skill.js.map +1 -0
- package/dist/tools/skills/git-skill.d.ts +10 -0
- package/dist/tools/skills/git-skill.d.ts.map +1 -0
- package/dist/tools/skills/git-skill.js +30 -0
- package/dist/tools/skills/git-skill.js.map +1 -0
- package/dist/tools/skills/index.d.ts +17 -0
- package/dist/tools/skills/index.d.ts.map +1 -0
- package/dist/tools/skills/index.js +49 -0
- package/dist/tools/skills/index.js.map +1 -0
- package/dist/tools/skills/interaction-skill.d.ts +14 -0
- package/dist/tools/skills/interaction-skill.d.ts.map +1 -0
- package/dist/tools/skills/interaction-skill.js +24 -0
- package/dist/tools/skills/interaction-skill.js.map +1 -0
- package/dist/tools/skills/mail-search-skill.d.ts +25 -0
- package/dist/tools/skills/mail-search-skill.d.ts.map +1 -0
- package/dist/tools/skills/mail-search-skill.js +343 -0
- package/dist/tools/skills/mail-search-skill.js.map +1 -0
- package/dist/tools/skills/plan-skill.d.ts +10 -0
- package/dist/tools/skills/plan-skill.d.ts.map +1 -0
- package/dist/tools/skills/plan-skill.js +126 -0
- package/dist/tools/skills/plan-skill.js.map +1 -0
- package/dist/tools/skills/semantic-search-skill.d.ts +22 -0
- package/dist/tools/skills/semantic-search-skill.d.ts.map +1 -0
- package/dist/tools/skills/semantic-search-skill.js +244 -0
- package/dist/tools/skills/semantic-search-skill.js.map +1 -0
- package/dist/tools/skills/test-gen-skill.d.ts +9 -0
- package/dist/tools/skills/test-gen-skill.d.ts.map +1 -0
- package/dist/tools/skills/test-gen-skill.js +123 -0
- package/dist/tools/skills/test-gen-skill.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +60 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +200 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/tool-types.d.ts +281 -0
- package/dist/tools/tool-types.d.ts.map +1 -0
- package/dist/tools/tool-types.js +10 -0
- package/dist/tools/tool-types.js.map +1 -0
- package/dist/tools/tool-use-loop.d.ts +231 -0
- package/dist/tools/tool-use-loop.d.ts.map +1 -0
- package/dist/tools/tool-use-loop.js +2057 -0
- package/dist/tools/tool-use-loop.js.map +1 -0
- package/dist/tools/tool-use-parser.d.ts +78 -0
- package/dist/tools/tool-use-parser.d.ts.map +1 -0
- package/dist/tools/tool-use-parser.js +427 -0
- package/dist/tools/tool-use-parser.js.map +1 -0
- package/dist/tools/toolAvailabilityDetector.d.ts +48 -0
- package/dist/tools/toolAvailabilityDetector.d.ts.map +1 -0
- package/dist/tools/toolAvailabilityDetector.js +156 -0
- package/dist/tools/toolAvailabilityDetector.js.map +1 -0
- package/dist/tools/unified-patch.d.ts +87 -0
- package/dist/tools/unified-patch.d.ts.map +1 -0
- package/dist/tools/unified-patch.js +217 -0
- package/dist/tools/unified-patch.js.map +1 -0
- package/dist/types/agent.d.ts +69 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +54 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/tasks.d.ts +22 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +3 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/utils/event-emitter.d.ts +13 -0
- package/dist/utils/event-emitter.d.ts.map +1 -0
- package/dist/utils/event-emitter.js +54 -0
- package/dist/utils/event-emitter.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Message-history compaction for the tool-use loop.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists:
|
|
6
|
+
* The loop appends every tool result as a `user` message carrying
|
|
7
|
+
* the raw output (read_file content, search_code hits, command
|
|
8
|
+
* stdout). After ~6 iterations on a medium-sized codebase the
|
|
9
|
+
* cumulative tool output is ~12-18k tokens — enough to push past
|
|
10
|
+
* the Ollama num_ctx ceiling on small/medium models, which causes
|
|
11
|
+
* silent front-truncation of the system prompt (the exact failure
|
|
12
|
+
* mode that made `bandit-core:12b-it-qat` appear to "refuse" C#
|
|
13
|
+
* edits until num_ctx was properly configured).
|
|
14
|
+
*
|
|
15
|
+
* Strategy (deterministic, no extra LLM calls):
|
|
16
|
+
* 1. Count tokens with a cheap char/4 heuristic.
|
|
17
|
+
* 2. If the total fits a configurable budget, return as-is.
|
|
18
|
+
* 3. Otherwise, walk the message list from oldest to newest and
|
|
19
|
+
* replace the *body* of earlier tool-result messages with a
|
|
20
|
+
* one-line placeholder ("[read_file api/foo.cs — 412 lines, see
|
|
21
|
+
* earlier]"). We always keep the system prompt, the initial user
|
|
22
|
+
* prompt, the last N tool results in full, and any assistant
|
|
23
|
+
* message that contains a tool call (the model needs to see its
|
|
24
|
+
* own prior reasoning).
|
|
25
|
+
*
|
|
26
|
+
* The compacted messages retain the same `role` / `content` shape so
|
|
27
|
+
* the loop doesn't need to change — it just passes them through chat.
|
|
28
|
+
*/
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.compactToolMessages = compactToolMessages;
|
|
31
|
+
const DEFAULT_BUDGET = 12000;
|
|
32
|
+
// Bumped 2 → 4 (2026-05-06): keepRecent = 2 over-collapsed traces where
|
|
33
|
+
// the most recent two tool results were tiny (e.g. `check_task` returns
|
|
34
|
+
// 78 chars each). Trace 23-34Z went 30k → 3.5k tokens at iter 7 because
|
|
35
|
+
// the last two surviving in-full results were small `check_task` polls,
|
|
36
|
+
// and every substantive read got replaced with a 1-line placeholder.
|
|
37
|
+
// 4 keeps enough recent reads in full to give the model real working
|
|
38
|
+
// material on the next iteration without ballooning back over budget.
|
|
39
|
+
const DEFAULT_KEEP_RECENT = 4;
|
|
40
|
+
const DEFAULT_CPT = 4;
|
|
41
|
+
const TOOL_RESULT_PREFIX = '<tool_result name="';
|
|
42
|
+
/** Heuristic token count — good enough for budget checks. */
|
|
43
|
+
function estimateTokens(content, cpt) {
|
|
44
|
+
return Math.ceil(content.length / cpt);
|
|
45
|
+
}
|
|
46
|
+
function isToolResultMessage(msg) {
|
|
47
|
+
return msg.role === 'user' && msg.content.startsWith(TOOL_RESULT_PREFIX);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Extract the tool name + first interesting line from a tool_result
|
|
51
|
+
* envelope so the placeholder carries enough signal for the model to
|
|
52
|
+
* know what it already saw.
|
|
53
|
+
*/
|
|
54
|
+
function summarizeToolResult(content) {
|
|
55
|
+
const nameMatch = content.match(/<tool_result name="([^"]+)"/);
|
|
56
|
+
const toolName = nameMatch?.[1] ?? 'tool';
|
|
57
|
+
// First non-tag line of the body.
|
|
58
|
+
const bodyStart = content.indexOf('>');
|
|
59
|
+
const body = bodyStart >= 0 ? content.slice(bodyStart + 1) : content;
|
|
60
|
+
const firstLine = body.split('\n').find((l) => l.trim().length > 0)?.trim() ?? '';
|
|
61
|
+
const shortFirst = firstLine.length > 80 ? firstLine.slice(0, 77) + '…' : firstLine;
|
|
62
|
+
const lineCount = body.split('\n').filter((l) => l.length > 0).length;
|
|
63
|
+
return `<tool_result name="${toolName}">[earlier run, ${lineCount} lines elided — summary: ${shortFirst}]</tool_result>`;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Main entry point. Returns compacted messages plus a report of what
|
|
67
|
+
* changed. Callers can log the report so agents/CLIs can surface
|
|
68
|
+
* "compacted history — N msgs, saved X tokens" as a status line.
|
|
69
|
+
*/
|
|
70
|
+
function compactToolMessages(messages, options = {}) {
|
|
71
|
+
const budget = options.tokenBudget ?? DEFAULT_BUDGET;
|
|
72
|
+
const keepRecent = options.keepRecentToolResults ?? DEFAULT_KEEP_RECENT;
|
|
73
|
+
const cpt = options.charsPerToken ?? DEFAULT_CPT;
|
|
74
|
+
const beforeTokens = messages.reduce((acc, m) => acc + estimateTokens(m.content, cpt), 0);
|
|
75
|
+
if (beforeTokens <= budget) {
|
|
76
|
+
return {
|
|
77
|
+
compacted: messages,
|
|
78
|
+
beforeTokens,
|
|
79
|
+
afterTokens: beforeTokens,
|
|
80
|
+
messagesCompacted: 0
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// Index tool-result messages so we can decide which to summarize.
|
|
84
|
+
const toolResultIndices = [];
|
|
85
|
+
for (let i = 0; i < messages.length; i++) {
|
|
86
|
+
if (isToolResultMessage(messages[i]))
|
|
87
|
+
toolResultIndices.push(i);
|
|
88
|
+
}
|
|
89
|
+
// Greedy compaction (2026-05-06): summarize OLDEST tool results first
|
|
90
|
+
// and stop the moment we drop under budget. Previously we summarized
|
|
91
|
+
// every tool result except the last `keepRecent` in one pass —
|
|
92
|
+
// regardless of whether fewer summarizations would already fit. The
|
|
93
|
+
// self-eval trace went 30k → 3.5k tokens at iter 7 because of that,
|
|
94
|
+
// even though dropping the single oldest huge read would have been
|
|
95
|
+
// enough to clear budget. Greedy keeps as much real context in front
|
|
96
|
+
// of the model as possible.
|
|
97
|
+
//
|
|
98
|
+
// Floor: never summarize the most recent `keepRecent` tool results
|
|
99
|
+
// even if we're still over budget after exhausting the older ones —
|
|
100
|
+
// those go to the message-drop branch below instead.
|
|
101
|
+
const minKeepInFull = Math.min(toolResultIndices.length, keepRecent);
|
|
102
|
+
const summarizableIndices = toolResultIndices.slice(0, toolResultIndices.length - minKeepInFull);
|
|
103
|
+
const summarized = new Set();
|
|
104
|
+
let estimatedAfter = beforeTokens;
|
|
105
|
+
for (const idx of summarizableIndices) {
|
|
106
|
+
if (estimatedAfter <= budget)
|
|
107
|
+
break;
|
|
108
|
+
const original = messages[idx].content;
|
|
109
|
+
const summary = summarizeToolResult(original);
|
|
110
|
+
estimatedAfter -= estimateTokens(original, cpt);
|
|
111
|
+
estimatedAfter += estimateTokens(summary, cpt);
|
|
112
|
+
summarized.add(idx);
|
|
113
|
+
}
|
|
114
|
+
const out = [];
|
|
115
|
+
let messagesCompacted = 0;
|
|
116
|
+
for (let i = 0; i < messages.length; i++) {
|
|
117
|
+
if (summarized.has(i)) {
|
|
118
|
+
out.push({ role: messages[i].role, content: summarizeToolResult(messages[i].content) });
|
|
119
|
+
messagesCompacted++;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
out.push(messages[i]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
let afterTokens = out.reduce((acc, m) => acc + estimateTokens(m.content, cpt), 0);
|
|
126
|
+
// Still over budget after compacting tool results? Drop the oldest
|
|
127
|
+
// non-system, non-first-user messages until we fit. This is the
|
|
128
|
+
// "last resort" branch — well within budget in normal usage.
|
|
129
|
+
if (afterTokens > budget) {
|
|
130
|
+
const systemIndices = new Set();
|
|
131
|
+
const firstUserIndex = out.findIndex((m) => m.role === 'user');
|
|
132
|
+
out.forEach((m, i) => {
|
|
133
|
+
if (m.role === 'system')
|
|
134
|
+
systemIndices.add(i);
|
|
135
|
+
});
|
|
136
|
+
// Walk forward from iteration after the first user, drop messages
|
|
137
|
+
// until budget fits or we hit the last two (needed for model state).
|
|
138
|
+
let i = firstUserIndex + 1;
|
|
139
|
+
while (afterTokens > budget && i < out.length - 2) {
|
|
140
|
+
if (systemIndices.has(i)) {
|
|
141
|
+
i++;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const droppedTokens = estimateTokens(out[i].content, cpt);
|
|
145
|
+
out.splice(i, 1);
|
|
146
|
+
afterTokens -= droppedTokens;
|
|
147
|
+
messagesCompacted++;
|
|
148
|
+
// Don't advance i — splice shifted subsequent messages left.
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
compacted: out,
|
|
153
|
+
beforeTokens,
|
|
154
|
+
afterTokens,
|
|
155
|
+
messagesCompacted
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=compactMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compactMessages.js","sourceRoot":"","sources":["../../src/tools/compactMessages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core agent tools: read_file, write_file, apply_edit, replace_range, list_files, search_code, run_command.
|
|
3
|
+
*
|
|
4
|
+
* All tools delegate to the injected ToolExecutionContext — no direct
|
|
5
|
+
* dependency on Node.js APIs, VS Code, or any specific host.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentTool } from './tool-types';
|
|
8
|
+
import { ToolRegistry } from './tool-registry';
|
|
9
|
+
declare const readFileTool: AgentTool;
|
|
10
|
+
declare const writeFileTool: AgentTool;
|
|
11
|
+
declare const deleteFileTool: AgentTool;
|
|
12
|
+
declare const applyEditTool: AgentTool;
|
|
13
|
+
declare const replaceRangeTool: AgentTool;
|
|
14
|
+
declare const applyPatchTool: AgentTool;
|
|
15
|
+
declare const listFilesTool: AgentTool;
|
|
16
|
+
declare const lsTool: AgentTool;
|
|
17
|
+
declare const findDirectoryTool: AgentTool;
|
|
18
|
+
declare const searchCodeTool: AgentTool;
|
|
19
|
+
declare const runCommandTool: AgentTool;
|
|
20
|
+
declare const watchCommandTool: AgentTool;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a ToolRegistry pre-loaded with all core tools.
|
|
23
|
+
* Pass the result to ToolUseLoop or use it standalone.
|
|
24
|
+
* Git tools are registered separately via createGitToolRegistry() and
|
|
25
|
+
* can be merged with registry.registerAll([...gitRegistry.getAll()]).
|
|
26
|
+
*/
|
|
27
|
+
export declare function createCoreToolRegistry(): ToolRegistry;
|
|
28
|
+
export { readFileTool, writeFileTool, deleteFileTool, applyEditTool, replaceRangeTool, applyPatchTool, listFilesTool, lsTool, findDirectoryTool, searchCodeTool, runCommandTool, watchCommandTool };
|
|
29
|
+
//# sourceMappingURL=core-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-tools.d.ts","sourceRoot":"","sources":["../../src/tools/core-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAoC,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+G/C,QAAA,MAAM,YAAY,EAAE,SAuGnB,CAAC;AAIF,QAAA,MAAM,aAAa,EAAE,SAqFpB,CAAC;AAYF,QAAA,MAAM,cAAc,EAAE,SAgDrB,CAAC;AAoBF,QAAA,MAAM,aAAa,EAAE,SA6VpB,CAAC;AAQF,QAAA,MAAM,gBAAgB,EAAE,SAgJvB,CAAC;AA2BF,QAAA,MAAM,cAAc,EAAE,SA0TrB,CAAC;AAyPF,QAAA,MAAM,aAAa,EAAE,SAyBpB,CAAC;AAQF,QAAA,MAAM,MAAM,EAAE,SAqCb,CAAC;AA2DF,QAAA,MAAM,iBAAiB,EAAE,SA6FxB,CAAC;AAIF,QAAA,MAAM,cAAc,EAAE,SAwBrB,CAAC;AAyRF,QAAA,MAAM,cAAc,EAAE,SAqFrB,CAAC;AAmBF,QAAA,MAAM,gBAAgB,EAAE,SAqFvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAerD;AAED,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,CAAC"}
|