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.
Files changed (52) hide show
  1. package/dist/cli-adapter.d.ts.map +1 -1
  2. package/dist/cli-adapter.js +21 -8
  3. package/dist/cli-adapter.js.map +1 -1
  4. package/dist/context/handlers/docker-handler.d.ts +4 -0
  5. package/dist/context/handlers/docker-handler.d.ts.map +1 -1
  6. package/dist/context/handlers/docker-handler.js +6 -0
  7. package/dist/context/handlers/docker-handler.js.map +1 -1
  8. package/dist/context/handlers/wsl-handler.d.ts +4 -0
  9. package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
  10. package/dist/context/handlers/wsl-handler.js +6 -0
  11. package/dist/context/handlers/wsl-handler.js.map +1 -1
  12. package/dist/services/checkpoint-manager.d.ts +5 -0
  13. package/dist/services/checkpoint-manager.d.ts.map +1 -1
  14. package/dist/services/checkpoint-manager.js +109 -0
  15. package/dist/services/checkpoint-manager.js.map +1 -1
  16. package/dist/services/fast-context-agent.d.ts +12 -0
  17. package/dist/services/fast-context-agent.d.ts.map +1 -0
  18. package/dist/services/fast-context-agent.js +253 -0
  19. package/dist/services/fast-context-agent.js.map +1 -0
  20. package/dist/services/sub-agent-manager.d.ts +1 -0
  21. package/dist/services/sub-agent-manager.d.ts.map +1 -1
  22. package/dist/services/sub-agent-manager.js +28 -4
  23. package/dist/services/sub-agent-manager.js.map +1 -1
  24. package/dist/tools/fast-context.d.ts +3 -0
  25. package/dist/tools/fast-context.d.ts.map +1 -0
  26. package/dist/tools/fast-context.js +72 -0
  27. package/dist/tools/fast-context.js.map +1 -0
  28. package/dist/tools/find-files.d.ts +2 -1
  29. package/dist/tools/find-files.d.ts.map +1 -1
  30. package/dist/tools/find-files.js +62 -2
  31. package/dist/tools/find-files.js.map +1 -1
  32. package/dist/tools/get-diff.js +123 -4
  33. package/dist/tools/get-diff.js.map +1 -1
  34. package/dist/tools/sub-agent.d.ts.map +1 -1
  35. package/dist/tools/sub-agent.js +3 -0
  36. package/dist/tools/sub-agent.js.map +1 -1
  37. package/dist/tools/types.d.ts +1 -1
  38. package/dist/tools/types.d.ts.map +1 -1
  39. package/dist/types/index.d.ts +1 -0
  40. package/dist/types/index.d.ts.map +1 -1
  41. package/dist/ui/components/App.d.ts.map +1 -1
  42. package/dist/ui/components/App.js +55 -26
  43. package/dist/ui/components/App.js.map +1 -1
  44. package/dist/ui/components/InteractiveShell.js +3 -3
  45. package/dist/ui/components/InteractiveShell.js.map +1 -1
  46. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  47. package/dist/ui/components/MessageDisplay.js +2 -2
  48. package/dist/ui/components/MessageDisplay.js.map +1 -1
  49. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  50. package/dist/ui/components/ToolExecutionMessage.js +179 -4
  51. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  52. 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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"}
@@ -11,6 +11,7 @@ export interface SubAgentConfig {
11
11
  context: string;
12
12
  workingDirectory: string;
13
13
  complexity: number;
14
+ parentContextManager?: any;
14
15
  }
15
16
  export interface FileOperation {
16
17
  type: 'create' | 'edit' | 'delete';
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent-manager.d.ts","sourceRoot":"","sources":["../../src/services/sub-agent-manager.ts"],"names":[],"mappings":"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"}
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
- // Create a dedicated ContextManager for this sub-agent
195
- const contextManager = new ContextManager(config.workingDirectory, process.platform);
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: 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: process.platform, shell: process.env.SHELL || 'cmd.exe', os: 'windows', homeDir: process.env.USERPROFILE || '' }, undefined, undefined, subAgent.abortController?.signal)) {
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,3 @@
1
+ import { Tool } from './types.js';
2
+ export declare const fastContextTool: Tool;
3
+ //# sourceMappingURL=fast-context.d.ts.map
@@ -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;CAuG9E;AA0BD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAyD3B,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"}
@@ -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) {