ft-scout 3.0.7 → 3.0.9
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/bin/ft.js +2 -2
- package/bin/src/commands/agent.d.ts.map +1 -1
- package/bin/src/commands/agent.js +173 -191
- package/bin/src/commands/agent.js.map +1 -1
- package/bin/src/engine/agentEngine.d.ts.map +1 -0
- package/bin/src/engine/agentEngine.js +439 -0
- package/bin/src/engine/agentEngine.js.map +1 -0
- package/bin/src/engine/llm.d.ts.map +1 -1
- package/bin/src/engine/llm.js +152 -15
- package/bin/src/engine/llm.js.map +1 -1
- package/bin/src/index.js +4 -4
- package/bin/src/utils/branding.js +1 -1
- package/package.json +48 -1
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { exec } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { spinner, confirm, isCancel } from '@clack/prompts';
|
|
7
|
+
import { getDirectoryFiles, recordHistoryAction } from '../utils/config.js';
|
|
8
|
+
import { safeNote, renderMarkdown } from '../utils/markdown.js';
|
|
9
|
+
import { openai, callOpenAIWithRetry } from './llm.js';
|
|
10
|
+
const execAsync = promisify(exec);
|
|
11
|
+
export const AGENT_TOOLS = [
|
|
12
|
+
{
|
|
13
|
+
name: 'read_file',
|
|
14
|
+
description: 'Read contents of a file in the workspace with optional line numbers range.',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
path: { type: 'string', description: 'Relative path to the target file' },
|
|
19
|
+
startLine: { type: 'number', description: 'Optional 1-based start line' },
|
|
20
|
+
endLine: { type: 'number', description: 'Optional 1-based end line' },
|
|
21
|
+
},
|
|
22
|
+
required: ['path'],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'write_file',
|
|
27
|
+
description: 'Create a new file or overwrite an existing file with complete new content.',
|
|
28
|
+
parameters: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
path: { type: 'string', description: 'Relative path to the target file' },
|
|
32
|
+
content: { type: 'string', description: 'Complete source code / content string' },
|
|
33
|
+
},
|
|
34
|
+
required: ['path', 'content'],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'edit_file',
|
|
39
|
+
description: 'Replace an exact target snippet in a file with new replacement code.',
|
|
40
|
+
parameters: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
path: { type: 'string', description: 'Relative path to the target file' },
|
|
44
|
+
target: { type: 'string', description: 'Exact string snippet to find in the file' },
|
|
45
|
+
replacement: { type: 'string', description: 'New string snippet to replace target with' },
|
|
46
|
+
},
|
|
47
|
+
required: ['path', 'target', 'replacement'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'run_command',
|
|
52
|
+
description: 'Execute a terminal/shell command in the workspace (e.g. npm test, npm run build, git status).',
|
|
53
|
+
parameters: {
|
|
54
|
+
type: 'object',
|
|
55
|
+
properties: {
|
|
56
|
+
command: { type: 'string', description: 'The terminal command string to execute' },
|
|
57
|
+
},
|
|
58
|
+
required: ['command'],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'list_dir',
|
|
63
|
+
description: 'List contents of a directory in the workspace.',
|
|
64
|
+
parameters: {
|
|
65
|
+
type: 'object',
|
|
66
|
+
properties: {
|
|
67
|
+
path: { type: 'string', description: 'Relative directory path (default "." for root)' },
|
|
68
|
+
},
|
|
69
|
+
required: [],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'grep_search',
|
|
74
|
+
description: 'Search for text pattern across all files in the codebase.',
|
|
75
|
+
parameters: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: {
|
|
78
|
+
query: { type: 'string', description: 'Text or substring to search for' },
|
|
79
|
+
},
|
|
80
|
+
required: ['query'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'glob_search',
|
|
85
|
+
description: 'Find workspace files matching a glob or file pattern (e.g. *.ts or src/**/*.js).',
|
|
86
|
+
parameters: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
pattern: { type: 'string', description: 'File pattern or extension filter' },
|
|
90
|
+
},
|
|
91
|
+
required: ['pattern'],
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'task_completed',
|
|
96
|
+
description: 'Signal that the user goal has been fully completed with a final teardown summary.',
|
|
97
|
+
parameters: {
|
|
98
|
+
type: 'object',
|
|
99
|
+
properties: {
|
|
100
|
+
summary: { type: 'string', description: 'Comprehensive teardown report of completed changes' },
|
|
101
|
+
},
|
|
102
|
+
required: ['summary'],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
export class AgentExecutionLoop {
|
|
107
|
+
cwd;
|
|
108
|
+
historyMessages = [];
|
|
109
|
+
modifiedFiles = new Set();
|
|
110
|
+
backups = [];
|
|
111
|
+
autoApprove;
|
|
112
|
+
maxSteps;
|
|
113
|
+
projectName;
|
|
114
|
+
constructor(options) {
|
|
115
|
+
this.cwd = process.cwd();
|
|
116
|
+
this.autoApprove = Boolean(options?.autoApprove);
|
|
117
|
+
this.maxSteps = options?.maxSteps || 15;
|
|
118
|
+
this.projectName = options?.projectName || path.basename(this.cwd);
|
|
119
|
+
}
|
|
120
|
+
getModifiedFiles() {
|
|
121
|
+
return Array.from(this.modifiedFiles);
|
|
122
|
+
}
|
|
123
|
+
getBackups() {
|
|
124
|
+
return this.backups;
|
|
125
|
+
}
|
|
126
|
+
resetContext() {
|
|
127
|
+
this.historyMessages = [];
|
|
128
|
+
this.modifiedFiles.clear();
|
|
129
|
+
this.backups = [];
|
|
130
|
+
}
|
|
131
|
+
systemPrompt() {
|
|
132
|
+
const filesList = getDirectoryFiles(this.cwd).slice(0, 100);
|
|
133
|
+
return `You are Scout Agent, an elite AI Principal Software Engineer & Autonomous Coding Assistant (built like Claude Code).
|
|
134
|
+
|
|
135
|
+
Project Name: "${this.projectName}"
|
|
136
|
+
Working Directory: "${this.cwd}"
|
|
137
|
+
|
|
138
|
+
Workspace Overview (first 100 files):
|
|
139
|
+
${filesList.join('\n')}
|
|
140
|
+
|
|
141
|
+
Core Capabilities & Guidelines:
|
|
142
|
+
1. You act autonomously through step-by-step tool invocation.
|
|
143
|
+
2. Fully understand user intent in any language (English, Hinglish like "likho", "bnao", "code karo", "fix karo", Hindi, etc.).
|
|
144
|
+
3. Inspect codebase files with \`read_file\`, search with \`grep_search\` and \`glob_search\`.
|
|
145
|
+
4. CRITICAL: Whenever user asks to write, edit, create, implement, or fix code in a file, YOU MUST CALL \`write_file\` or \`edit_file\` to save the changes directly to disk in the workspace! Do NOT just print code in text responses without calling tools to save it.
|
|
146
|
+
5. Execute shell commands (tests, builds, linters) using \`run_command\`.
|
|
147
|
+
6. Maintain strict docstring, comment, and code structure integrity. Do not wipe out unrelated code.
|
|
148
|
+
7. When task is complete, invoke \`task_completed\` tool with a thorough summary of changes.
|
|
149
|
+
|
|
150
|
+
When returning tool calls, use standard OpenAI function calling format or JSON tool call payload format:
|
|
151
|
+
\`\`\`json
|
|
152
|
+
{
|
|
153
|
+
"tool": "tool_name",
|
|
154
|
+
"args": { ... }
|
|
155
|
+
}
|
|
156
|
+
\`\`\`
|
|
157
|
+
`.trim();
|
|
158
|
+
}
|
|
159
|
+
async executeGoal(userGoal) {
|
|
160
|
+
if (this.historyMessages.length === 0) {
|
|
161
|
+
this.historyMessages.push({ role: 'system', content: this.systemPrompt() });
|
|
162
|
+
}
|
|
163
|
+
this.historyMessages.push({ role: 'user', content: userGoal });
|
|
164
|
+
let step = 0;
|
|
165
|
+
let finalSummary = '';
|
|
166
|
+
while (step < this.maxSteps) {
|
|
167
|
+
step++;
|
|
168
|
+
const stepSpinner = spinner();
|
|
169
|
+
stepSpinner.start(chalk.cyan(`🤖 Scout Agent Step ${step}/${this.maxSteps}...`));
|
|
170
|
+
try {
|
|
171
|
+
const response = await callOpenAIWithRetry(async (model) => {
|
|
172
|
+
return await openai.chat.completions.create({
|
|
173
|
+
model,
|
|
174
|
+
messages: this.historyMessages,
|
|
175
|
+
tools: AGENT_TOOLS.map((t) => ({ type: 'function', function: t })),
|
|
176
|
+
tool_choice: 'auto',
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
const choice = response.choices[0];
|
|
180
|
+
if (!choice) {
|
|
181
|
+
stepSpinner.stop(chalk.yellow('No response from AI model. Retrying step...'));
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const msg = choice.message;
|
|
185
|
+
this.historyMessages.push(msg);
|
|
186
|
+
// Check native tool calls
|
|
187
|
+
if (msg.tool_calls && msg.tool_calls.length > 0) {
|
|
188
|
+
stepSpinner.stop(chalk.green(`Step ${step}: AI issued ${msg.tool_calls.length} tool call(s).`));
|
|
189
|
+
for (const tc of msg.tool_calls) {
|
|
190
|
+
if (tc.type === 'function' && tc.function) {
|
|
191
|
+
const fnName = tc.function.name;
|
|
192
|
+
let args = {};
|
|
193
|
+
try {
|
|
194
|
+
args = JSON.parse(tc.function.arguments || '{}');
|
|
195
|
+
}
|
|
196
|
+
catch { }
|
|
197
|
+
const toolResult = await this.dispatchToolCall(fnName, args);
|
|
198
|
+
this.historyMessages.push({
|
|
199
|
+
role: 'tool',
|
|
200
|
+
tool_call_id: tc.id,
|
|
201
|
+
content: toolResult.result,
|
|
202
|
+
});
|
|
203
|
+
if (fnName === 'task_completed') {
|
|
204
|
+
finalSummary = args.summary || toolResult.result;
|
|
205
|
+
return { success: true, summary: finalSummary };
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
// Check text response or fallback JSON tool call
|
|
212
|
+
const textContent = msg.content || '';
|
|
213
|
+
stepSpinner.stop(chalk.blue(`Step ${step} thinking complete.`));
|
|
214
|
+
const parsedJsonTool = this.extractJsonToolCall(textContent);
|
|
215
|
+
if (parsedJsonTool) {
|
|
216
|
+
const toolResult = await this.dispatchToolCall(parsedJsonTool.tool, parsedJsonTool.args);
|
|
217
|
+
this.historyMessages.push({
|
|
218
|
+
role: 'user',
|
|
219
|
+
content: `Tool Execution Result (${parsedJsonTool.tool}):\n${toolResult.result}`,
|
|
220
|
+
});
|
|
221
|
+
if (parsedJsonTool.tool === 'task_completed') {
|
|
222
|
+
finalSummary = parsedJsonTool.args?.summary || toolResult.result;
|
|
223
|
+
return { success: true, summary: finalSummary };
|
|
224
|
+
}
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (textContent.trim()) {
|
|
228
|
+
safeNote(renderMarkdown(textContent), `🤖 Scout Agent Thought (Step ${step})`);
|
|
229
|
+
}
|
|
230
|
+
// If assistant didn't call a tool and didn't complete, prompt to continue or conclude
|
|
231
|
+
if (textContent.includes('completed') || textContent.includes('done') || textContent.includes('finished')) {
|
|
232
|
+
return { success: true, summary: textContent };
|
|
233
|
+
}
|
|
234
|
+
this.historyMessages.push({
|
|
235
|
+
role: 'user',
|
|
236
|
+
content: 'Please proceed with tool calls (read_file, edit_file, write_file, run_command, task_completed) to fulfill the goal.',
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
stepSpinner.stop(chalk.red(`Step ${step} execution error: ${err?.message || String(err)}`));
|
|
241
|
+
this.historyMessages.push({
|
|
242
|
+
role: 'user',
|
|
243
|
+
content: `Error in previous turn: ${err?.message || String(err)}. Please try alternative steps or call tools.`,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
success: false,
|
|
249
|
+
summary: `Reached max iteration steps limit (${this.maxSteps}). Modified files: ${Array.from(this.modifiedFiles).join(', ')}`,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
extractJsonToolCall(content) {
|
|
253
|
+
if (!content)
|
|
254
|
+
return null;
|
|
255
|
+
const funcMatch = content.match(/<function=([a-zA-Z0-9_]+)>([\s\S]*?)<\/function>/i);
|
|
256
|
+
if (funcMatch && funcMatch[1] && funcMatch[2]) {
|
|
257
|
+
const tool = funcMatch[1].trim();
|
|
258
|
+
let args = {};
|
|
259
|
+
try {
|
|
260
|
+
args = JSON.parse(funcMatch[2].trim());
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
args = { raw: funcMatch[2].trim() };
|
|
264
|
+
}
|
|
265
|
+
return { tool, args };
|
|
266
|
+
}
|
|
267
|
+
const knownTools = ['read_file', 'write_file', 'edit_file', 'run_command', 'list_dir', 'grep_search', 'glob_search', 'task_completed'];
|
|
268
|
+
for (const toolName of knownTools) {
|
|
269
|
+
const tagRegex = new RegExp(`<${toolName}>([\\s\\S]*?)<\\/${toolName}>`, 'i');
|
|
270
|
+
const match = content.match(tagRegex);
|
|
271
|
+
if (match && match[1]) {
|
|
272
|
+
let args = {};
|
|
273
|
+
try {
|
|
274
|
+
args = JSON.parse(match[1].trim());
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
args = { content: match[1].trim() };
|
|
278
|
+
}
|
|
279
|
+
return { tool: toolName, args };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const jsonMatch = content.match(/```json\s*([\s\S]*?)\s*```/) || content.match(/\{[\s\S]*"tool"[\s\S]*\}/);
|
|
283
|
+
if (jsonMatch) {
|
|
284
|
+
try {
|
|
285
|
+
const rawStr = jsonMatch[1] || jsonMatch[0];
|
|
286
|
+
const obj = JSON.parse(rawStr);
|
|
287
|
+
if (obj && typeof obj.tool === 'string') {
|
|
288
|
+
return { tool: obj.tool, args: obj.args || obj.parameters || {} };
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch { }
|
|
292
|
+
}
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
async dispatchToolCall(name, args) {
|
|
296
|
+
const badge = chalk.bgCyan.black.bold(` 🛠️ TOOL: ${name} `);
|
|
297
|
+
console.log(`\n${badge} ${chalk.dim(JSON.stringify(args))}`);
|
|
298
|
+
switch (name) {
|
|
299
|
+
case 'read_file': {
|
|
300
|
+
const targetPath = String(args.path || '').trim();
|
|
301
|
+
const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
|
|
302
|
+
if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile()) {
|
|
303
|
+
return { result: `Error: File not found at path "${targetPath}"` };
|
|
304
|
+
}
|
|
305
|
+
const fileContent = fs.readFileSync(fullPath, 'utf-8');
|
|
306
|
+
const lines = fileContent.split('\n');
|
|
307
|
+
const start = Math.max(1, Number(args.startLine) || 1);
|
|
308
|
+
const end = Math.min(lines.length, Number(args.endLine) || lines.length);
|
|
309
|
+
const sliced = lines.slice(start - 1, end).map((l, i) => `${start + i} | ${l}`).join('\n');
|
|
310
|
+
return { result: `File: ${targetPath} (Lines ${start}-${end}/${lines.length}):\n${sliced}` };
|
|
311
|
+
}
|
|
312
|
+
case 'write_file': {
|
|
313
|
+
const targetPath = String(args.path || '').trim();
|
|
314
|
+
let content = String(args.content || '');
|
|
315
|
+
if (content.includes('\\n') && !content.includes('\n')) {
|
|
316
|
+
content = content.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
|
|
317
|
+
}
|
|
318
|
+
const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
|
|
319
|
+
if (!this.autoApprove && process.stdout.isTTY) {
|
|
320
|
+
const ok = await confirm({
|
|
321
|
+
message: chalk.yellow(`Allow Scout Agent to write file: ${chalk.bold.cyan(targetPath)}?`),
|
|
322
|
+
initialValue: true,
|
|
323
|
+
});
|
|
324
|
+
if (isCancel(ok) || !ok) {
|
|
325
|
+
return { result: `User rejected write_file to "${targetPath}"` };
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (fs.existsSync(fullPath)) {
|
|
329
|
+
const orig = fs.readFileSync(fullPath, 'utf-8');
|
|
330
|
+
this.backups.push({ filePath: targetPath, originalContent: orig });
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
this.backups.push({ filePath: targetPath, originalContent: '__FT_WAS_NEW__' });
|
|
334
|
+
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
335
|
+
}
|
|
336
|
+
fs.writeFileSync(fullPath, content, 'utf-8');
|
|
337
|
+
this.modifiedFiles.add(targetPath);
|
|
338
|
+
return { result: `Successfully wrote ${content.length} characters to "${targetPath}".` };
|
|
339
|
+
}
|
|
340
|
+
case 'edit_file': {
|
|
341
|
+
const targetPath = String(args.path || '').trim();
|
|
342
|
+
let target = String(args.target || '');
|
|
343
|
+
let replacement = String(args.replacement || '');
|
|
344
|
+
if (replacement.includes('\\n') && !replacement.includes('\n')) {
|
|
345
|
+
replacement = replacement.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
|
|
346
|
+
}
|
|
347
|
+
if (target.includes('\\n') && !target.includes('\n')) {
|
|
348
|
+
target = target.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
|
|
349
|
+
}
|
|
350
|
+
const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
|
|
351
|
+
if (!fs.existsSync(fullPath)) {
|
|
352
|
+
return { result: `Error: File "${targetPath}" does not exist.` };
|
|
353
|
+
}
|
|
354
|
+
const origContent = fs.readFileSync(fullPath, 'utf-8');
|
|
355
|
+
if (!origContent.includes(target)) {
|
|
356
|
+
return { result: `Error: Target snippet not found in "${targetPath}". Please re-read file content.` };
|
|
357
|
+
}
|
|
358
|
+
if (!this.autoApprove && process.stdout.isTTY) {
|
|
359
|
+
const ok = await confirm({
|
|
360
|
+
message: chalk.yellow(`Allow Scout Agent to edit snippet in file: ${chalk.bold.cyan(targetPath)}?`),
|
|
361
|
+
initialValue: true,
|
|
362
|
+
});
|
|
363
|
+
if (isCancel(ok) || !ok) {
|
|
364
|
+
return { result: `User rejected edit_file to "${targetPath}"` };
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
this.backups.push({ filePath: targetPath, originalContent: origContent });
|
|
368
|
+
const updated = origContent.replace(target, replacement);
|
|
369
|
+
fs.writeFileSync(fullPath, updated, 'utf-8');
|
|
370
|
+
this.modifiedFiles.add(targetPath);
|
|
371
|
+
return { result: `Successfully replaced target snippet in "${targetPath}".` };
|
|
372
|
+
}
|
|
373
|
+
case 'run_command': {
|
|
374
|
+
const cmd = String(args.command || '').trim();
|
|
375
|
+
if (!this.autoApprove && process.stdout.isTTY) {
|
|
376
|
+
const ok = await confirm({
|
|
377
|
+
message: chalk.yellow(`Allow Scout Agent to run shell command: ${chalk.bold.cyan(cmd)}?`),
|
|
378
|
+
initialValue: true,
|
|
379
|
+
});
|
|
380
|
+
if (isCancel(ok) || !ok) {
|
|
381
|
+
return { result: `User rejected shell execution: "${cmd}"` };
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
const runSpin = spinner();
|
|
385
|
+
runSpin.start(chalk.dim(`Executing: \`${cmd}\`...`));
|
|
386
|
+
try {
|
|
387
|
+
const { stdout, stderr } = await execAsync(cmd, { cwd: this.cwd, maxBuffer: 10 * 1024 * 1024 });
|
|
388
|
+
runSpin.stop(chalk.green(`Command \`${cmd}\` executed successfully (Exit Code 0).`));
|
|
389
|
+
const combined = (stdout || '') + (stderr ? `\nSTDERR:\n${stderr}` : '');
|
|
390
|
+
return { result: `Command Exit Code 0 Output:\n${combined.slice(0, 8000)}` };
|
|
391
|
+
}
|
|
392
|
+
catch (err) {
|
|
393
|
+
runSpin.stop(chalk.red(`Command \`${cmd}\` failed with code ${err.code || 1}.`));
|
|
394
|
+
const combined = (err.stdout || '') + '\n' + (err.stderr || '');
|
|
395
|
+
return { result: `Command Exit Code ${err.code || 1} Error:\n${combined.slice(0, 8000)}` };
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
case 'list_dir': {
|
|
399
|
+
const relDir = String(args.path || '.').trim();
|
|
400
|
+
const fullDir = path.resolve(this.cwd, relDir);
|
|
401
|
+
if (!fs.existsSync(fullDir) || !fs.statSync(fullDir).isDirectory()) {
|
|
402
|
+
return { result: `Directory not found: "${relDir}"` };
|
|
403
|
+
}
|
|
404
|
+
const files = fs.readdirSync(fullDir).slice(0, 100);
|
|
405
|
+
return { result: `Directory entries in "${relDir}":\n${files.join('\n')}` };
|
|
406
|
+
}
|
|
407
|
+
case 'grep_search': {
|
|
408
|
+
const query = String(args.query || '').toLowerCase().trim();
|
|
409
|
+
const allFiles = getDirectoryFiles(this.cwd);
|
|
410
|
+
const matches = [];
|
|
411
|
+
for (const f of allFiles) {
|
|
412
|
+
if (matches.length >= 25)
|
|
413
|
+
break;
|
|
414
|
+
const fullPath = path.resolve(this.cwd, f);
|
|
415
|
+
try {
|
|
416
|
+
const text = fs.readFileSync(fullPath, 'utf-8');
|
|
417
|
+
if (text.toLowerCase().includes(query)) {
|
|
418
|
+
matches.push(f);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
catch { }
|
|
422
|
+
}
|
|
423
|
+
return { result: `Grep search for "${query}" matched in ${matches.length} file(s):\n${matches.join('\n')}` };
|
|
424
|
+
}
|
|
425
|
+
case 'glob_search': {
|
|
426
|
+
const pattern = String(args.pattern || '').toLowerCase().trim();
|
|
427
|
+
const allFiles = getDirectoryFiles(this.cwd);
|
|
428
|
+
const matched = allFiles.filter((f) => f.toLowerCase().includes(pattern) || path.basename(f).toLowerCase().endsWith(pattern.replace('*', '')));
|
|
429
|
+
return { result: `Glob search "${pattern}" matched ${matched.length} file(s):\n${matched.slice(0, 30).join('\n')}` };
|
|
430
|
+
}
|
|
431
|
+
case 'task_completed': {
|
|
432
|
+
return { result: String(args.summary || 'Task completed successfully.') };
|
|
433
|
+
}
|
|
434
|
+
default:
|
|
435
|
+
return { result: `Unknown tool call name: "${name}"` };
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
//# sourceMappingURL=agentEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentEngine.js","sourceRoot":"","sources":["agentEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["llm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["llm.ts"],"names":[],"mappings":"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"}
|