centaurus-cli 2.9.6 → 2.9.8
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/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +21 -8
- package/dist/cli-adapter.js.map +1 -1
- package/dist/context/handlers/docker-handler.d.ts +4 -0
- package/dist/context/handlers/docker-handler.d.ts.map +1 -1
- package/dist/context/handlers/docker-handler.js +6 -0
- package/dist/context/handlers/docker-handler.js.map +1 -1
- package/dist/context/handlers/wsl-handler.d.ts +4 -0
- package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
- package/dist/context/handlers/wsl-handler.js +6 -0
- package/dist/context/handlers/wsl-handler.js.map +1 -1
- package/dist/services/checkpoint-manager.d.ts +5 -0
- package/dist/services/checkpoint-manager.d.ts.map +1 -1
- package/dist/services/checkpoint-manager.js +109 -0
- package/dist/services/checkpoint-manager.js.map +1 -1
- package/dist/services/fast-context-agent.d.ts +12 -0
- package/dist/services/fast-context-agent.d.ts.map +1 -0
- package/dist/services/fast-context-agent.js +253 -0
- package/dist/services/fast-context-agent.js.map +1 -0
- package/dist/services/sub-agent-manager.d.ts +1 -0
- package/dist/services/sub-agent-manager.d.ts.map +1 -1
- package/dist/services/sub-agent-manager.js +28 -4
- package/dist/services/sub-agent-manager.js.map +1 -1
- package/dist/tools/fast-context.d.ts +3 -0
- package/dist/tools/fast-context.d.ts.map +1 -0
- package/dist/tools/fast-context.js +72 -0
- package/dist/tools/fast-context.js.map +1 -0
- package/dist/tools/find-files.d.ts +2 -1
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +62 -2
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/get-diff.js +123 -4
- package/dist/tools/get-diff.js.map +1 -1
- package/dist/tools/sub-agent.d.ts.map +1 -1
- package/dist/tools/sub-agent.js +3 -0
- package/dist/tools/sub-agent.js.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +55 -26
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/InteractiveShell.js +3 -3
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +2 -2
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +179 -4
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { aiServiceClient } from './ai-service-client.js';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
export class FastContextAgent {
|
|
4
|
+
toolRegistry;
|
|
5
|
+
model = 'zai-org/glm-4.7-maas';
|
|
6
|
+
constructor(toolRegistry) {
|
|
7
|
+
this.toolRegistry = toolRegistry;
|
|
8
|
+
}
|
|
9
|
+
sanitizeOutput(output) {
|
|
10
|
+
// Remove null bytes and other non-printable characters that might cause Vertex AI errors
|
|
11
|
+
// Keep newlines, tabs, and standard printable characters
|
|
12
|
+
return output.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g, '');
|
|
13
|
+
}
|
|
14
|
+
parseFilesFromOutput(toolName, output) {
|
|
15
|
+
const files = [];
|
|
16
|
+
const lines = output.split('\n');
|
|
17
|
+
if (toolName === 'grep_search') {
|
|
18
|
+
// Grep often returns "file:line:content" or just "file"
|
|
19
|
+
// We need to be careful not to match line numbers or context
|
|
20
|
+
for (const line of lines) {
|
|
21
|
+
const trimmed = line.trim();
|
|
22
|
+
if (!trimmed)
|
|
23
|
+
continue;
|
|
24
|
+
// Skip lines that look like just numbers (common in some grep outputs for counts)
|
|
25
|
+
if (/^\d+$/.test(trimmed))
|
|
26
|
+
continue;
|
|
27
|
+
// Typical grep output with line number: "path/to/file.ts:123: content"
|
|
28
|
+
// Or just path: "path/to/file.ts"
|
|
29
|
+
// Heuristic: take part before the first colon, or the whole line if no colon
|
|
30
|
+
// But avoid "Found 5 matches" type lines
|
|
31
|
+
if (trimmed.startsWith('Found ') || trimmed.startsWith('Match '))
|
|
32
|
+
continue;
|
|
33
|
+
const parts = trimmed.split(':');
|
|
34
|
+
const candidate = parts[0].trim();
|
|
35
|
+
// Validate candidate is likely a file path
|
|
36
|
+
// Should have an extension or contain path separators, and NOT be just numbers
|
|
37
|
+
if (this.isValidFilePath(candidate)) {
|
|
38
|
+
files.push(candidate);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (toolName === 'find_files') {
|
|
43
|
+
// find_files usually returns one file per line
|
|
44
|
+
for (const line of lines) {
|
|
45
|
+
const trimmed = line.trim();
|
|
46
|
+
if (this.isValidFilePath(trimmed)) {
|
|
47
|
+
files.push(trimmed);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (toolName === 'view_file' || toolName === 'read_file') {
|
|
52
|
+
// We can't easily extracting the filename from the output content unless it's in the header
|
|
53
|
+
// The tool output usually starts with "File: <path>"
|
|
54
|
+
const match = output.match(/^File: (.+)/);
|
|
55
|
+
if (match) {
|
|
56
|
+
files.push(match[1]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return files;
|
|
60
|
+
}
|
|
61
|
+
isValidFilePath(pathStr) {
|
|
62
|
+
// Basic validation:
|
|
63
|
+
// 1. Not empty
|
|
64
|
+
// 2. Not just numbers
|
|
65
|
+
// 3. Not a common system message (e.g. "No matches")
|
|
66
|
+
// 4. Has some file-like characteristics (extension or path separator) OR just is a string that doesn't look like garbage
|
|
67
|
+
if (!pathStr || pathStr.length === 0)
|
|
68
|
+
return false;
|
|
69
|
+
if (/^\d+$/.test(pathStr))
|
|
70
|
+
return false; // purely numeric
|
|
71
|
+
if (pathStr.includes('No matches') || pathStr.includes('Found '))
|
|
72
|
+
return false;
|
|
73
|
+
// Exclude common noise
|
|
74
|
+
if (pathStr.startsWith('Total:') || pathStr.startsWith('Size:'))
|
|
75
|
+
return false;
|
|
76
|
+
// Exclude grep output noise
|
|
77
|
+
if (pathStr.includes('(showing first') && pathStr.includes('matches)'))
|
|
78
|
+
return false;
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
async search(query, workingDirectory, parentContext) {
|
|
82
|
+
const startTime = Date.now();
|
|
83
|
+
const scannedFiles = new Set();
|
|
84
|
+
// Import logger if not already imported at the top of the file
|
|
85
|
+
// We'll use console.log here or logInfo/logDebug if available
|
|
86
|
+
const logToTerminal = (msg) => {
|
|
87
|
+
if (parentContext.onStreamingOutput) {
|
|
88
|
+
// Pass debug logging through stderr or a custom type so it's visible in logs
|
|
89
|
+
parentContext.onStreamingOutput(`[FastContextAgent] ${msg}\n`, 'stderr', 'fast_context_search');
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
logToTerminal(`Starting search for query: "${query}" in ${workingDirectory}`);
|
|
93
|
+
const messages = [
|
|
94
|
+
{
|
|
95
|
+
role: 'system',
|
|
96
|
+
content: `You are a Fast Context Retrieval Agent. Your goal is to find precise code snippets and context for the user's query within 8 turns.
|
|
97
|
+
|
|
98
|
+
Rules:
|
|
99
|
+
1. Use massive parallel tool calling. You have NO limits on parallel tool calls, make as many as you need to find the context quickly.
|
|
100
|
+
2. PRIORITIZE: 'grep_search' for specific code patterns, 'find_files' to locate files by name, and 'view_file' to inspect content.
|
|
101
|
+
3. Be aggressive with 'grep_search'. If you have a theory, search for it.
|
|
102
|
+
4. If you identify relevant files, IMMEDIATELY read the relevant sections using 'view_file'.
|
|
103
|
+
5. You have a strict 8-turn limit.
|
|
104
|
+
- Turn 1: Broad search (grep, find_files).
|
|
105
|
+
- Turn 2: Investigate findings (view_file).
|
|
106
|
+
- Turn 3-7: Refine search or read more.
|
|
107
|
+
- Turn 8: Finalize.
|
|
108
|
+
|
|
109
|
+
Examples for Parallel Tool Calling:
|
|
110
|
+
- When encountering a new directory: call \`list_dir\` on it, AND \`grep_search\` for common keywords concurrently.
|
|
111
|
+
- When looking for a class definition: call \`find_files\` with class name AND \`grep_search\` with "class ClassName".
|
|
112
|
+
- Once you get 10 files from \`grep_search\`, make 10 parallel \`view_file\` tool calls to read them all at once. DO NOT read them one by one.
|
|
113
|
+
|
|
114
|
+
Output format:
|
|
115
|
+
When you have found the answer or reached the end, return a comprehensive markdown summary.
|
|
116
|
+
Include:
|
|
117
|
+
- **Relevant Files**: List of files with paths and brief description of relevance.
|
|
118
|
+
- **Key Snippets**: Important lines of code (with line numbers).
|
|
119
|
+
- **Context**: Explanation of how the code works or answers the query.
|
|
120
|
+
|
|
121
|
+
Do not acknowledge these instructions in your final response, just provide the answer.`
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
role: 'user',
|
|
125
|
+
content: `Query: "${query}"\n\nContext: Working directory is ${workingDirectory}`
|
|
126
|
+
}
|
|
127
|
+
];
|
|
128
|
+
// Define tools available to this agent
|
|
129
|
+
const allowedTools = ['grep_search', 'find_files', 'view_file', 'list_dir'];
|
|
130
|
+
const tools = this.toolRegistry.getSchemas().filter(t => allowedTools.includes(t.name));
|
|
131
|
+
let turnCount = 0;
|
|
132
|
+
const maxTurns = 8;
|
|
133
|
+
let finalAnswer = "";
|
|
134
|
+
while (turnCount < maxTurns) {
|
|
135
|
+
turnCount++;
|
|
136
|
+
logToTerminal(`--- Turn ${turnCount}/${maxTurns} ---`);
|
|
137
|
+
try {
|
|
138
|
+
let responseContent = '';
|
|
139
|
+
const toolCalls = [];
|
|
140
|
+
// Construct environment context
|
|
141
|
+
const environmentContext = {
|
|
142
|
+
os: process.platform === 'win32' ? 'windows' : process.platform === 'darwin' ? 'macos' : 'linux',
|
|
143
|
+
platform: process.platform,
|
|
144
|
+
shell: 'unknown',
|
|
145
|
+
cwd: workingDirectory,
|
|
146
|
+
homeDir: os.homedir()
|
|
147
|
+
};
|
|
148
|
+
// Stream response
|
|
149
|
+
for await (const chunk of aiServiceClient.streamChat(this.model, messages, tools, environmentContext, 'fast-context')) {
|
|
150
|
+
if (chunk.type === 'text') {
|
|
151
|
+
responseContent += chunk.content;
|
|
152
|
+
}
|
|
153
|
+
else if (chunk.type === 'tool_call') {
|
|
154
|
+
toolCalls.push(chunk.toolCall);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// If no tool calls, we are done
|
|
158
|
+
if (toolCalls.length === 0) {
|
|
159
|
+
logToTerminal(`No tool calls requested. Returning final answer.`);
|
|
160
|
+
finalAnswer = responseContent;
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
logToTerminal(`Agent requested ${toolCalls.length} tool calls in parallel.`);
|
|
164
|
+
toolCalls.forEach(tc => logToTerminal(` -> ${tc.name}(${JSON.stringify(tc.arguments)})`));
|
|
165
|
+
// Append assistant message with tool calls
|
|
166
|
+
messages.push({
|
|
167
|
+
role: 'assistant',
|
|
168
|
+
content: responseContent,
|
|
169
|
+
tool_calls: toolCalls
|
|
170
|
+
});
|
|
171
|
+
// Execute tools in parallel
|
|
172
|
+
const toolResults = await Promise.all(toolCalls.map(async (call) => {
|
|
173
|
+
try {
|
|
174
|
+
const execContext = {
|
|
175
|
+
...parentContext,
|
|
176
|
+
cwd: workingDirectory,
|
|
177
|
+
requireApproval: async () => true, // Auto-approve read-only tools
|
|
178
|
+
};
|
|
179
|
+
const result = await this.toolRegistry.execute(call.name, call.arguments, execContext);
|
|
180
|
+
let output = result.success ? result.result : `Error: ${result.error}`;
|
|
181
|
+
// Sanitize output to prevent Vertex AI errors
|
|
182
|
+
output = this.sanitizeOutput(output);
|
|
183
|
+
// Track stats
|
|
184
|
+
if (result.success) {
|
|
185
|
+
const files = this.parseFilesFromOutput(call.name, output);
|
|
186
|
+
if (files.length > 0) {
|
|
187
|
+
files.forEach(f => scannedFiles.add(f));
|
|
188
|
+
if (parentContext.onStreamingOutput) {
|
|
189
|
+
parentContext.onStreamingOutput(JSON.stringify({ type: 'scanned_files', files: Array.from(scannedFiles).slice(-4) }) + '\n', 'stdout', 'fast_context_search');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
tool_call_id: call.id,
|
|
195
|
+
name: call.name,
|
|
196
|
+
output: output
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
return {
|
|
201
|
+
tool_call_id: call.id,
|
|
202
|
+
name: call.name,
|
|
203
|
+
output: `System Error executing tool: ${e.message}`
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
logToTerminal(`Completed ${toolResults.length} tool calls.`);
|
|
208
|
+
// Append tool results
|
|
209
|
+
for (const res of toolResults) {
|
|
210
|
+
messages.push({
|
|
211
|
+
role: 'tool',
|
|
212
|
+
tool_call_id: res.tool_call_id,
|
|
213
|
+
content: res.output
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
finalAnswer = `Error during Fast Context search: ${error}`;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// If the loop finishes without an explicit final answer (unlikely if toolCalls.length > 0 was the break condition),
|
|
223
|
+
// we might take the last content. But usually the model will output text when it's done.
|
|
224
|
+
// If the loop exits specifically because maxTurns was reached, we should use the last assistant message if it was text,
|
|
225
|
+
// or generate a final summary. For now, we'll assume the last message content is relevant.
|
|
226
|
+
if (turnCount >= maxTurns && !finalAnswer) {
|
|
227
|
+
logToTerminal(`Reached max turns (${maxTurns}) without a final text response. Using fallback.`);
|
|
228
|
+
// Check if we have a text response in the last turn
|
|
229
|
+
const lastMsg = messages[messages.length - 1];
|
|
230
|
+
if (lastMsg.role === 'assistant' && lastMsg.content) {
|
|
231
|
+
finalAnswer = lastMsg.content;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
finalAnswer = "Search limit reached. Please try a more specific query.";
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
logToTerminal(`Search completed successfully in ${turnCount} turns.`);
|
|
239
|
+
}
|
|
240
|
+
const duration = Date.now() - startTime;
|
|
241
|
+
const stats = {
|
|
242
|
+
filesSearched: scannedFiles.size,
|
|
243
|
+
duration,
|
|
244
|
+
scannedFiles: Array.from(scannedFiles)
|
|
245
|
+
};
|
|
246
|
+
const response = {
|
|
247
|
+
answer: finalAnswer,
|
|
248
|
+
stats
|
|
249
|
+
};
|
|
250
|
+
return JSON.stringify(response);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=fast-context-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-context-agent.js","sourceRoot":"","sources":["../../src/services/fast-context-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-manager.d.ts","sourceRoot":"","sources":["../../src/services/sub-agent-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAmB,OAAO,IAAI,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASpD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sub-agent-manager.d.ts","sourceRoot":"","sources":["../../src/services/sub-agent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -191,14 +191,38 @@ class SubAgentManagerClass {
|
|
|
191
191
|
});
|
|
192
192
|
const tools = this.toolRegistry.getSchemas();
|
|
193
193
|
// Build execution context
|
|
194
|
-
//
|
|
195
|
-
|
|
194
|
+
// Use parent's ContextManager if available (for remote sessions like SSH/Docker/WSL),
|
|
195
|
+
// otherwise create a new local one
|
|
196
|
+
const effectiveContextManager = config.parentContextManager || new ContextManager(config.workingDirectory, process.platform);
|
|
196
197
|
const context = {
|
|
197
198
|
cwd: config.workingDirectory,
|
|
198
|
-
contextManager:
|
|
199
|
+
contextManager: effectiveContextManager,
|
|
199
200
|
requireApproval: async () => true, // Auto-approve for sub-agents (autonomous)
|
|
200
201
|
onStreamingOutput: () => { }, // No streaming output for sub-agents (yet)
|
|
201
202
|
};
|
|
203
|
+
// Detect environment from the effective context manager's current state
|
|
204
|
+
// This ensures the AI model knows the correct OS/shell when in a remote session
|
|
205
|
+
const currentCtx = effectiveContextManager.getCurrentContext();
|
|
206
|
+
const isRemote = currentCtx && currentCtx.type !== 'local';
|
|
207
|
+
let envOs;
|
|
208
|
+
let envShell;
|
|
209
|
+
let envHomeDir;
|
|
210
|
+
let envPlatform;
|
|
211
|
+
if (isRemote && currentCtx.metadata) {
|
|
212
|
+
// Use remote session's OS/shell info
|
|
213
|
+
const remoteOs = currentCtx.metadata.os;
|
|
214
|
+
envOs = remoteOs || 'linux'; // Most remote sessions are Linux
|
|
215
|
+
envPlatform = envOs === 'windows' ? 'win32' : 'linux';
|
|
216
|
+
envShell = currentCtx.metadata.shell || 'bash';
|
|
217
|
+
envHomeDir = currentCtx.metadata.homeDirectory || `/home/${currentCtx.metadata.username || 'user'}`;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
// Local environment
|
|
221
|
+
envOs = process.platform === 'win32' ? 'windows' : process.platform === 'darwin' ? 'macos' : 'linux';
|
|
222
|
+
envPlatform = process.platform;
|
|
223
|
+
envShell = process.env.SHELL || 'cmd.exe';
|
|
224
|
+
envHomeDir = process.env.USERPROFILE || process.env.HOME || '';
|
|
225
|
+
}
|
|
202
226
|
// Agent loop
|
|
203
227
|
while (subAgent.turnCount < MAX_TURNS_PER_SUBAGENT && subAgent.status === 'running') {
|
|
204
228
|
subAgent.turnCount++;
|
|
@@ -213,7 +237,7 @@ class SubAgentManagerClass {
|
|
|
213
237
|
let toolCalls = [];
|
|
214
238
|
// Stream AI response
|
|
215
239
|
try {
|
|
216
|
-
for await (const chunk of aiServiceClient.streamChat(subAgent.model, subAgent.conversationHistory, tools, { cwd: config.workingDirectory, platform:
|
|
240
|
+
for await (const chunk of aiServiceClient.streamChat(subAgent.model, subAgent.conversationHistory, tools, { cwd: config.workingDirectory, platform: envPlatform, shell: envShell, os: envOs, homeDir: envHomeDir }, undefined, undefined, subAgent.abortController?.signal)) {
|
|
217
241
|
if (chunk.type === 'error') {
|
|
218
242
|
throw new Error(chunk.message);
|
|
219
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-manager.js","sourceRoot":"","sources":["../../src/services/sub-agent-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sub-agent-manager.js","sourceRoot":"","sources":["../../src/services/sub-agent-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-context.d.ts","sourceRoot":"","sources":["../../src/tools/fast-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAKxD,eAAO,MAAM,eAAe,EAAE,IAwE7B,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { FastContextAgent } from '../services/fast-context-agent.js';
|
|
2
|
+
import { ToolRegistry } from './registry.js';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
export const fastContextTool = {
|
|
5
|
+
schema: {
|
|
6
|
+
name: 'fast_context_search',
|
|
7
|
+
description: `Rapidly retrieve code context using an intelligent multi-turn agent.
|
|
8
|
+
|
|
9
|
+
USE THIS TOOL WHEN:
|
|
10
|
+
- You need to understand how a feature is implemented across multiple files.
|
|
11
|
+
- You are exploring a new codebase and need a high-level overview of a component.
|
|
12
|
+
- Standard grep/find_files is too manual or you are unsure of exact terms.
|
|
13
|
+
- You want to "find where X is handled" and get a summarized answer with file pointers.
|
|
14
|
+
|
|
15
|
+
HOW IT WORKS:
|
|
16
|
+
- It uses a specialized AI agent (FastContextAgent) to perform up to 8 turns of search.
|
|
17
|
+
- It executes parallel grep/find/read operations.
|
|
18
|
+
- It returns a synthesized markdown summary with relevant snippets and file paths.
|
|
19
|
+
|
|
20
|
+
LIMITATIONS:
|
|
21
|
+
- Read-only. It cannot modify files.
|
|
22
|
+
- Optimized for speed (5s target), so it may miss deep/complex chains if not found quickly.`,
|
|
23
|
+
parameters: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
query: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'The search query. Be specific about what you are looking for (e.g., "how is authentication handled in the backend?", "find the implementation of the grep tool").',
|
|
29
|
+
},
|
|
30
|
+
path: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Optional. The target directory to search within. Defaults to current working directory.',
|
|
33
|
+
},
|
|
34
|
+
reason_text: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: 'REQUIRED: Explanation of why you are using this tool.'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
required: ['query', 'reason_text'],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
async execute(args, context) {
|
|
43
|
+
const { query, path: searchPath } = args;
|
|
44
|
+
const cwd = searchPath ? (path.isAbsolute(searchPath) ? searchPath : path.resolve(context.cwd, searchPath)) : context.cwd;
|
|
45
|
+
// We need a ToolRegistry instance.
|
|
46
|
+
// In a real dependency injection system, we'd inject it.
|
|
47
|
+
// Here, we can instantiate a new one, but it won't have tools registered unless we register them.
|
|
48
|
+
// However, FastContextAgent needs a registry to *execute* tools.
|
|
49
|
+
// If we create a new registry, it starts empty.
|
|
50
|
+
// Solution: We need access to the MAIN registry or re-register tools.
|
|
51
|
+
// Re-registering basic tools (grep, find, view, list) is safe and cheap.
|
|
52
|
+
const registry = new ToolRegistry();
|
|
53
|
+
// We lazily import standard tools to avoid circular dependencies if possible,
|
|
54
|
+
// or just import them here.
|
|
55
|
+
const { grepSearchTool } = await import('./grep-search.js');
|
|
56
|
+
const { findFilesTool } = await import('./find-files.js');
|
|
57
|
+
const { viewFileTool, listDirTool } = await import('./file-ops.js');
|
|
58
|
+
registry.register(grepSearchTool);
|
|
59
|
+
registry.register(findFilesTool);
|
|
60
|
+
registry.register(viewFileTool);
|
|
61
|
+
registry.register(listDirTool);
|
|
62
|
+
const agent = new FastContextAgent(registry);
|
|
63
|
+
try {
|
|
64
|
+
const result = await agent.search(query, cwd, context);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return `Fast Context Search Failed: ${error.message}`;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=fast-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fast-context.js","sourceRoot":"","sources":["../../src/tools/fast-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,eAAe,GAAS;IACjC,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE;;;;;;;;;;;;;;;gGAe2E;QACxF,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mKAAmK;iBACnL;gBACD,IAAI,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yFAAyF;iBACzG;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uDAAuD;iBACvE;aACJ;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;SACrC;KACJ;IACD,KAAK,CAAC,OAAO,CAAC,IAAyB,EAAE,OAA6B;QAClE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAE1H,mCAAmC;QACnC,yDAAyD;QACzD,kGAAkG;QAClG,iEAAiE;QACjE,gDAAgD;QAChD,sEAAsE;QACtE,yEAAyE;QAEzE,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAEpC,+EAA+E;QAC/E,4BAA4B;QAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC1D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC;IACL,CAAC;CACJ,CAAC"}
|
|
@@ -39,7 +39,8 @@ export declare class FindFilesTool {
|
|
|
39
39
|
/**
|
|
40
40
|
* Execute the file search
|
|
41
41
|
*/
|
|
42
|
-
execute(params: FindFilesParams, cwd: string): Promise<FindFilesResult>;
|
|
42
|
+
execute(params: FindFilesParams, cwd: string, contextManager?: any): Promise<FindFilesResult>;
|
|
43
|
+
private searchRemote;
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
46
|
* Find files tool for the tool registry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../src/tools/find-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAYtC;IAEF;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../src/tools/find-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAYtC;IAEF;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;YA+GrF,YAAY;CA0D3B;AA0BD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAyD3B,CAAC"}
|
package/dist/tools/find-files.js
CHANGED
|
@@ -83,12 +83,17 @@ export class FindFilesTool {
|
|
|
83
83
|
/**
|
|
84
84
|
* Execute the file search
|
|
85
85
|
*/
|
|
86
|
-
async execute(params, cwd) {
|
|
86
|
+
async execute(params, cwd, contextManager) {
|
|
87
87
|
// Validate pattern
|
|
88
88
|
const validation = this.validatePattern(params.pattern);
|
|
89
89
|
if (!validation.valid) {
|
|
90
90
|
throw new Error(validation.error);
|
|
91
91
|
}
|
|
92
|
+
const currentContext = contextManager?.getCurrentContext?.();
|
|
93
|
+
const isRemote = currentContext && currentContext.type !== 'local';
|
|
94
|
+
if (isRemote) {
|
|
95
|
+
return this.searchRemote(params, cwd, contextManager);
|
|
96
|
+
}
|
|
92
97
|
const maxResults = params.maxResults ?? FindFilesTool.DEFAULT_MAX_RESULTS;
|
|
93
98
|
const searchType = params.searchType ?? 'all';
|
|
94
99
|
try {
|
|
@@ -178,6 +183,61 @@ export class FindFilesTool {
|
|
|
178
183
|
throw new Error(`File search failed: ${error.message}`);
|
|
179
184
|
}
|
|
180
185
|
}
|
|
186
|
+
async searchRemote(params, cwd, contextManager) {
|
|
187
|
+
const maxResults = params.maxResults ?? FindFilesTool.DEFAULT_MAX_RESULTS;
|
|
188
|
+
const searchType = params.searchType ?? 'all';
|
|
189
|
+
// Check OS type of remote
|
|
190
|
+
const currentContext = contextManager.getCurrentContext();
|
|
191
|
+
const isWindows = currentContext.metadata?.os === 'windows';
|
|
192
|
+
let command;
|
|
193
|
+
let mainPattern = params.pattern.replace(/\*\*/g, '*'); // simplify glob for find
|
|
194
|
+
if (!mainPattern.includes('*')) {
|
|
195
|
+
mainPattern = `*${mainPattern}*`;
|
|
196
|
+
}
|
|
197
|
+
if (isWindows) {
|
|
198
|
+
// PowerShell Get-ChildItem
|
|
199
|
+
let typeFilter = '';
|
|
200
|
+
if (searchType === 'files')
|
|
201
|
+
typeFilter = '-File';
|
|
202
|
+
else if (searchType === 'directories')
|
|
203
|
+
typeFilter = '-Directory';
|
|
204
|
+
command = `Get-ChildItem -Path . -Recurse ${typeFilter} -Filter "${mainPattern}" -ErrorAction SilentlyContinue | Select-Object -First ${maxResults} | Select-Object -ExpandProperty FullName`;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
// Unix find
|
|
208
|
+
let typeFilter = '';
|
|
209
|
+
if (searchType === 'files')
|
|
210
|
+
typeFilter = '-type f';
|
|
211
|
+
else if (searchType === 'directories')
|
|
212
|
+
typeFilter = '-type d';
|
|
213
|
+
// Escape pattern
|
|
214
|
+
const escapedPattern = mainPattern.replace(/'/g, "'\\''");
|
|
215
|
+
// We'll search up to maxResults, ignore permission denied errors
|
|
216
|
+
command = `find . ${typeFilter} -name '${escapedPattern}' 2>/dev/null | head -n ${maxResults}`;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const result = await contextManager.executeCommand(command, 30000, cwd);
|
|
220
|
+
const output = result.stdout;
|
|
221
|
+
const files = output.split('\n')
|
|
222
|
+
.map((line) => line.trim())
|
|
223
|
+
.filter((line) => line.length > 0)
|
|
224
|
+
.map((line) => this.normalizePath(line.startsWith('./') ? line.substring(2) : line));
|
|
225
|
+
return {
|
|
226
|
+
files,
|
|
227
|
+
totalFound: files.length,
|
|
228
|
+
truncated: files.length >= maxResults,
|
|
229
|
+
searchPattern: params.pattern
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
return {
|
|
234
|
+
files: [],
|
|
235
|
+
totalFound: 0,
|
|
236
|
+
truncated: false,
|
|
237
|
+
searchPattern: params.pattern
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
181
241
|
}
|
|
182
242
|
/**
|
|
183
243
|
* Format find files results for display
|
|
@@ -250,7 +310,7 @@ Use this BEFORE trying to read a file when you don't know its exact path.`,
|
|
|
250
310
|
searchType: args.searchType,
|
|
251
311
|
};
|
|
252
312
|
try {
|
|
253
|
-
const result = await tool.execute(params, context.cwd);
|
|
313
|
+
const result = await tool.execute(params, context.cwd, context.contextManager);
|
|
254
314
|
return formatFindFilesResults(result);
|
|
255
315
|
}
|
|
256
316
|
catch (error) {
|