centaurus-cli 2.9.3 → 2.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/cli-adapter.d.ts +74 -10
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +898 -244
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.d.ts +1 -1
  6. package/dist/commands/CommandParser.d.ts.map +1 -1
  7. package/dist/commands/CommandParser.js +113 -0
  8. package/dist/commands/CommandParser.js.map +1 -1
  9. package/dist/config/slash-commands.d.ts +2 -0
  10. package/dist/config/slash-commands.d.ts.map +1 -1
  11. package/dist/config/slash-commands.js +28 -0
  12. package/dist/config/slash-commands.js.map +1 -1
  13. package/dist/context/context-manager.d.ts +7 -1
  14. package/dist/context/context-manager.d.ts.map +1 -1
  15. package/dist/context/context-manager.js +14 -1
  16. package/dist/context/context-manager.js.map +1 -1
  17. package/dist/context/handlers/docker-handler.d.ts +11 -0
  18. package/dist/context/handlers/docker-handler.d.ts.map +1 -1
  19. package/dist/context/handlers/docker-handler.js +159 -14
  20. package/dist/context/handlers/docker-handler.js.map +1 -1
  21. package/dist/context/handlers/ssh-handler.d.ts +20 -0
  22. package/dist/context/handlers/ssh-handler.d.ts.map +1 -1
  23. package/dist/context/handlers/ssh-handler.js +129 -1
  24. package/dist/context/handlers/ssh-handler.js.map +1 -1
  25. package/dist/context/subshell-handler.d.ts +15 -0
  26. package/dist/context/subshell-handler.d.ts.map +1 -1
  27. package/dist/index.js +10 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/services/ai-service-client.d.ts.map +1 -1
  30. package/dist/services/ai-service-client.js +33 -11
  31. package/dist/services/ai-service-client.js.map +1 -1
  32. package/dist/services/api-client.js +1 -1
  33. package/dist/services/api-client.js.map +1 -1
  34. package/dist/services/local-chat-storage.d.ts +3 -1
  35. package/dist/services/local-chat-storage.d.ts.map +1 -1
  36. package/dist/services/local-chat-storage.js +8 -3
  37. package/dist/services/local-chat-storage.js.map +1 -1
  38. package/dist/services/warpify-detector.d.ts +43 -0
  39. package/dist/services/warpify-detector.d.ts.map +1 -0
  40. package/dist/services/warpify-detector.js +203 -0
  41. package/dist/services/warpify-detector.js.map +1 -0
  42. package/dist/services/workflow-storage.d.ts +72 -0
  43. package/dist/services/workflow-storage.d.ts.map +1 -0
  44. package/dist/services/workflow-storage.js +239 -0
  45. package/dist/services/workflow-storage.js.map +1 -0
  46. package/dist/tools/command.d.ts.map +1 -1
  47. package/dist/tools/command.js +106 -38
  48. package/dist/tools/command.js.map +1 -1
  49. package/dist/tools/enter-remote-session.d.ts +13 -0
  50. package/dist/tools/enter-remote-session.d.ts.map +1 -0
  51. package/dist/tools/enter-remote-session.js +226 -0
  52. package/dist/tools/enter-remote-session.js.map +1 -0
  53. package/dist/tools/find-files.d.ts.map +1 -1
  54. package/dist/tools/find-files.js +9 -2
  55. package/dist/tools/find-files.js.map +1 -1
  56. package/dist/tools/grep-search.d.ts +104 -31
  57. package/dist/tools/grep-search.d.ts.map +1 -1
  58. package/dist/tools/grep-search.js +779 -431
  59. package/dist/tools/grep-search.js.map +1 -1
  60. package/dist/tools/workflow-tool.d.ts +11 -0
  61. package/dist/tools/workflow-tool.d.ts.map +1 -0
  62. package/dist/tools/workflow-tool.js +87 -0
  63. package/dist/tools/workflow-tool.js.map +1 -0
  64. package/dist/types/workflow.d.ts +110 -0
  65. package/dist/types/workflow.d.ts.map +1 -0
  66. package/dist/types/workflow.js +8 -0
  67. package/dist/types/workflow.js.map +1 -0
  68. package/dist/ui/components/App.d.ts +10 -1
  69. package/dist/ui/components/App.d.ts.map +1 -1
  70. package/dist/ui/components/App.js +135 -8
  71. package/dist/ui/components/App.js.map +1 -1
  72. package/dist/ui/components/Breadcrumbs.d.ts +4 -3
  73. package/dist/ui/components/Breadcrumbs.d.ts.map +1 -1
  74. package/dist/ui/components/Breadcrumbs.js +80 -54
  75. package/dist/ui/components/Breadcrumbs.js.map +1 -1
  76. package/dist/ui/components/ConnectionStatusMessage.js +2 -2
  77. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  78. package/dist/ui/components/InputBox.d.ts +1 -0
  79. package/dist/ui/components/InputBox.d.ts.map +1 -1
  80. package/dist/ui/components/InputBox.js +226 -19
  81. package/dist/ui/components/InputBox.js.map +1 -1
  82. package/dist/ui/components/InteractiveShell.d.ts +4 -0
  83. package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
  84. package/dist/ui/components/InteractiveShell.js +52 -15
  85. package/dist/ui/components/InteractiveShell.js.map +1 -1
  86. package/dist/ui/components/KeyboardHelp.d.ts.map +1 -1
  87. package/dist/ui/components/KeyboardHelp.js +14 -6
  88. package/dist/ui/components/KeyboardHelp.js.map +1 -1
  89. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  90. package/dist/ui/components/ToolExecutionMessage.js +165 -27
  91. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  92. package/dist/ui/components/WorkflowCreatorScreen.d.ts +25 -0
  93. package/dist/ui/components/WorkflowCreatorScreen.d.ts.map +1 -0
  94. package/dist/ui/components/WorkflowCreatorScreen.js +164 -0
  95. package/dist/ui/components/WorkflowCreatorScreen.js.map +1 -0
  96. package/dist/utils/ansi-encoder.d.ts.map +1 -1
  97. package/dist/utils/ansi-encoder.js +7 -0
  98. package/dist/utils/ansi-encoder.js.map +1 -1
  99. package/dist/utils/editor-utils.d.ts +9 -0
  100. package/dist/utils/editor-utils.d.ts.map +1 -1
  101. package/dist/utils/editor-utils.js +105 -0
  102. package/dist/utils/editor-utils.js.map +1 -1
  103. package/dist/utils/input-classifier.d.ts.map +1 -1
  104. package/dist/utils/input-classifier.js +2 -1
  105. package/dist/utils/input-classifier.js.map +1 -1
  106. package/dist/utils/terminal-output.d.ts +3 -1
  107. package/dist/utils/terminal-output.d.ts.map +1 -1
  108. package/dist/utils/terminal-output.js +138 -157
  109. package/dist/utils/terminal-output.js.map +1 -1
  110. package/package.json +1 -1
@@ -110,7 +110,10 @@ Commands will be run with PAGER=cat. You may want to limit the length of output
110
110
  const contextManager = context.contextManager;
111
111
  const currentContext = contextManager.getCurrentContext();
112
112
  // Special handling for cd command - change the actual working directory
113
- const cdMatch = command.match(/^cd\s+(.+)$/);
113
+ // Only intercept simple cd commands, not chained ones (cd path && cmd, cd path; cmd)
114
+ // Chained commands will be executed by the shell directly
115
+ const isChainedCommand = /&&|;/.test(command);
116
+ const cdMatch = !isChainedCommand && command.match(/^cd\s+(.+)$/);
114
117
  if (cdMatch) {
115
118
  if (currentContext.type === 'local') {
116
119
  const targetDir = cdMatch[1].trim();
@@ -122,6 +125,13 @@ Commands will be run with PAGER=cat. You may want to limit the length of output
122
125
  throw new Error(`Path is not a directory: ${targetDir}\n\nAction: Verify the path points to a directory, not a file.`);
123
126
  }
124
127
  contextManager.updateWorkingDirectory(newCwd);
128
+ // Update CLI adapter CWD and notify UI
129
+ if (context.cliAdapter) {
130
+ context.cliAdapter.cwd = newCwd;
131
+ if (context.cliAdapter.onCwdChange) {
132
+ context.cliAdapter.onCwdChange(newCwd);
133
+ }
134
+ }
125
135
  return `Changed directory to: ${newCwd}`;
126
136
  }
127
137
  else {
@@ -134,6 +144,13 @@ Commands will be run with PAGER=cat. You may want to limit the length of output
134
144
  const newCwd = await currentContext.handler.getCurrentWorkingDirectory();
135
145
  if (newCwd) {
136
146
  contextManager.updateWorkingDirectory(newCwd);
147
+ // Update CLI adapter CWD and notify UI
148
+ if (context.cliAdapter) {
149
+ context.cliAdapter.cwd = newCwd;
150
+ if (context.cliAdapter.onCwdChange) {
151
+ context.cliAdapter.onCwdChange(newCwd);
152
+ }
153
+ }
137
154
  }
138
155
  }
139
156
  return `Changed directory to: ${contextManager.getCurrentContext().metadata.workingDirectory}`;
@@ -289,48 +306,99 @@ Commands will be run with PAGER=cat. You may want to limit the length of output
289
306
  });
290
307
  }
291
308
  else if (currentContext.type === 'docker') {
292
- // Docker execution with PTY for proper TTY handling
309
+ // Docker execution - check if nested inside SSH
310
+ const parentContext = contextManager.getParentContext();
293
311
  const remoteCwd = Cwd || context.cwd || currentContext.metadata.workingDirectory;
294
312
  const containerId = currentContext.metadata?.containerId || '';
295
- return new Promise((resolve, reject) => {
296
- let output = '';
297
- // Calculate constrained terminal dimensions for proper escape sequence handling
298
- const constrainedCols = Math.max(40, (process.stdout.columns || 80) - 4);
299
- const constrainedRows = Math.min(process.stdout.rows || 24, 50);
300
- const dockerPty = runDockerCommand(containerId, command, remoteCwd, (data) => {
301
- // Stream output to UI
302
- output += data;
303
- if (context.onStreamingOutput) {
304
- context.onStreamingOutput(data, 'stdout');
305
- }
306
- }, (exitCode) => {
307
- // Clear the interactive process
313
+ // Calculate constrained terminal dimensions for proper escape sequence handling
314
+ const constrainedCols = Math.max(40, (process.stdout.columns || 80) - 4);
315
+ const constrainedRows = Math.min(process.stdout.rows || 24, 50);
316
+ if (parentContext && parentContext.type === 'ssh') {
317
+ // Nested Docker inside SSH: route docker exec command through SSH
318
+ const sshClient = parentContext.handler?.client;
319
+ if (!sshClient) {
320
+ throw new Error('SSH client not available for nested Docker session');
321
+ }
322
+ // Build docker exec command to run via SSH
323
+ // Escape the command properly for nested shell execution
324
+ const escapedCommand = command.replace(/"/g, '\\"');
325
+ const dockerCommand = `docker exec -w "${remoteCwd}" ${containerId} sh -c "${escapedCommand}"`;
326
+ return new Promise((resolve, reject) => {
327
+ let output = '';
328
+ const sshPty = runSSHCommand(sshClient, dockerCommand, parentContext.metadata.workingDirectory || '~', (data) => {
329
+ // Stream output to UI
330
+ output += data;
331
+ if (context.onStreamingOutput) {
332
+ context.onStreamingOutput(data, 'stdout');
333
+ }
334
+ }, (exitCode) => {
335
+ // Clear the interactive process
336
+ if (context.cliAdapter) {
337
+ context.cliAdapter.setCurrentInteractiveProcess(undefined);
338
+ }
339
+ if (exitCode !== 0) {
340
+ reject(new Error(`${output || `Command failed with exit code ${exitCode}`}\n\nPossible reasons:\n1. The command is invalid or not installed in the container.\n2. The arguments are incorrect.\n3. The Docker container may not be running.`));
341
+ }
342
+ else {
343
+ resolve(output || 'Command executed successfully');
344
+ }
345
+ }, constrainedCols, constrainedRows);
346
+ // Set up interactive process for stdin
308
347
  if (context.cliAdapter) {
309
- context.cliAdapter.setCurrentInteractiveProcess(undefined);
310
- }
311
- if (exitCode !== 0) {
312
- reject(new Error(`${output || `Command failed with exit code ${exitCode}`}\n\nPossible reasons:\n1. The command is invalid or not installed.\n2. The arguments are incorrect.`));
348
+ context.cliAdapter.setCurrentInteractiveProcess({
349
+ process: null,
350
+ write: (data) => sshPty.write(data),
351
+ kill: () => sshPty.kill(),
352
+ signal: (sig) => {
353
+ if (sig === 'SIGINT') {
354
+ sshPty.write('\x03'); // Ctrl+C
355
+ }
356
+ },
357
+ resize: (cols, rows) => sshPty.resize(cols, rows),
358
+ isPty: true
359
+ });
313
360
  }
314
- else {
315
- resolve(output || 'Command executed successfully');
361
+ });
362
+ }
363
+ else {
364
+ // Local Docker: use standard runDockerCommand
365
+ return new Promise((resolve, reject) => {
366
+ let output = '';
367
+ const dockerPty = runDockerCommand(containerId, command, remoteCwd, (data) => {
368
+ // Stream output to UI
369
+ output += data;
370
+ if (context.onStreamingOutput) {
371
+ context.onStreamingOutput(data, 'stdout');
372
+ }
373
+ }, (exitCode) => {
374
+ // Clear the interactive process
375
+ if (context.cliAdapter) {
376
+ context.cliAdapter.setCurrentInteractiveProcess(undefined);
377
+ }
378
+ if (exitCode !== 0) {
379
+ reject(new Error(`${output || `Command failed with exit code ${exitCode}`}\n\nPossible reasons:\n1. The command is invalid or not installed.\n2. The arguments are incorrect.`));
380
+ }
381
+ else {
382
+ resolve(output || 'Command executed successfully');
383
+ }
384
+ }, constrainedCols, constrainedRows);
385
+ // Set up interactive process for stdin
386
+ if (context.cliAdapter) {
387
+ context.cliAdapter.setCurrentInteractiveProcess({
388
+ process: null,
389
+ write: (data) => dockerPty.write(data),
390
+ kill: () => dockerPty.kill(),
391
+ signal: (sig) => {
392
+ if (sig === 'SIGINT') {
393
+ dockerPty.write('\x03'); // Ctrl+C
394
+ }
395
+ },
396
+ resize: (cols, rows) => dockerPty.resize(cols, rows),
397
+ isPty: true
398
+ });
316
399
  }
317
- }, constrainedCols, constrainedRows);
318
- // Set up interactive process for stdin
319
- if (context.cliAdapter) {
320
- context.cliAdapter.setCurrentInteractiveProcess({
321
- process: null,
322
- write: (data) => dockerPty.write(data),
323
- kill: () => dockerPty.kill(),
324
- signal: (sig) => {
325
- if (sig === 'SIGINT') {
326
- dockerPty.write('\x03'); // Ctrl+C
327
- }
328
- },
329
- resize: (cols, rows) => dockerPty.resize(cols, rows),
330
- isPty: true
331
- });
332
- }
333
- });
400
+ });
401
+ }
334
402
  }
335
403
  else if (currentContext.type === 'ssh') {
336
404
  // SSH execution with PTY for proper TTY handling
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Enter Remote Session Tool
3
+ *
4
+ * Allows the AI agent to programmatically enter SSH, Docker, or WSL environments.
5
+ * When executed, the session context automatically switches ("auto-warpify")
6
+ * and subsequent commands run in the remote environment.
7
+ *
8
+ * Password prompts are handled by the existing password request callback,
9
+ * which prompts the user for input when needed.
10
+ */
11
+ import { Tool } from './types.js';
12
+ export declare const enterRemoteSessionTool: Tool;
13
+ //# sourceMappingURL=enter-remote-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enter-remote-session.d.ts","sourceRoot":"","sources":["../../src/tools/enter-remote-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA2GlC,eAAO,MAAM,sBAAsB,EAAE,IAoIpC,CAAC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Enter Remote Session Tool
3
+ *
4
+ * Allows the AI agent to programmatically enter SSH, Docker, or WSL environments.
5
+ * When executed, the session context automatically switches ("auto-warpify")
6
+ * and subsequent commands run in the remote environment.
7
+ *
8
+ * Password prompts are handled by the existing password request callback,
9
+ * which prompts the user for input when needed.
10
+ */
11
+ /**
12
+ * Parse connection string from SSH command
13
+ * Examples:
14
+ * "ssh rohan@192.168.1.100" -> "rohan@192.168.1.100"
15
+ * "ssh -p 22 rohan@localhost" -> "rohan@localhost"
16
+ * "ssh -i ~/.ssh/id_rsa user@host" -> "user@host"
17
+ */
18
+ function parseSSHConnectionString(command) {
19
+ // Match user@host pattern in the command
20
+ const match = command.match(/(\S+)@(\S+)/);
21
+ if (match) {
22
+ return match[0];
23
+ }
24
+ return undefined;
25
+ }
26
+ /**
27
+ * Parse container name from Docker command
28
+ * Examples:
29
+ * "docker exec -it mycontainer bash" -> "mycontainer"
30
+ * "docker exec mycontainer sh" -> "mycontainer"
31
+ */
32
+ function parseDockerContainer(command) {
33
+ // docker exec pattern: look for container name after flags
34
+ const execMatch = command.match(/docker\s+exec\s+(?:-\w+\s+)*(\S+)/i);
35
+ if (execMatch) {
36
+ return execMatch[1];
37
+ }
38
+ // docker run pattern
39
+ const runMatch = command.match(/docker\s+run\s+(?:-\w+(?:\s+\S+)?\s+)*(\S+)/i);
40
+ if (runMatch) {
41
+ return runMatch[1];
42
+ }
43
+ return undefined;
44
+ }
45
+ /**
46
+ * Parse WSL distro name from command
47
+ * Examples:
48
+ * "wsl" -> "Ubuntu" (default)
49
+ * "wsl -d Ubuntu-22.04" -> "Ubuntu-22.04"
50
+ */
51
+ function parseWSLDistro(command) {
52
+ const match = command.match(/wsl\s+(?:-d|--distribution)\s+(\S+)/i);
53
+ if (match) {
54
+ return match[1];
55
+ }
56
+ return 'Ubuntu'; // Default distro
57
+ }
58
+ /**
59
+ * Validate that the command matches the expected session type
60
+ */
61
+ function validateCommand(command, sessionType) {
62
+ const trimmedCommand = command.trim().toLowerCase();
63
+ switch (sessionType) {
64
+ case 'ssh':
65
+ if (!trimmedCommand.startsWith('ssh ') && trimmedCommand !== 'ssh') {
66
+ return { valid: false, error: 'SSH command must start with "ssh"' };
67
+ }
68
+ // Validate it has a target
69
+ if (!command.match(/\S+@\S+/) && !command.match(/ssh\s+\S+/)) {
70
+ return { valid: false, error: 'SSH command must specify a host (e.g., "ssh user@host")' };
71
+ }
72
+ break;
73
+ case 'docker':
74
+ if (!trimmedCommand.startsWith('docker ')) {
75
+ return { valid: false, error: 'Docker command must start with "docker"' };
76
+ }
77
+ if (!trimmedCommand.includes('exec') && !trimmedCommand.includes('run')) {
78
+ return { valid: false, error: 'Docker command must use "exec" or "run" (e.g., "docker exec -it container bash")' };
79
+ }
80
+ break;
81
+ case 'wsl':
82
+ if (!trimmedCommand.startsWith('wsl') && trimmedCommand !== 'bash') {
83
+ return { valid: false, error: 'WSL command must start with "wsl" or be "bash"' };
84
+ }
85
+ break;
86
+ }
87
+ return { valid: true };
88
+ }
89
+ /**
90
+ * Get connection string based on session type and command
91
+ */
92
+ function getConnectionString(command, sessionType) {
93
+ switch (sessionType) {
94
+ case 'ssh':
95
+ return parseSSHConnectionString(command);
96
+ case 'docker':
97
+ return parseDockerContainer(command);
98
+ case 'wsl':
99
+ return parseWSLDistro(command);
100
+ default:
101
+ return undefined;
102
+ }
103
+ }
104
+ export const enterRemoteSessionTool = {
105
+ schema: {
106
+ name: 'enter_remote_session',
107
+ description: `Manage remote environment sessions (SSH, Docker, or WSL).
108
+
109
+ ACTIONS:
110
+ - enter: Switch context to a remote session. All subsequent commands will run in the remote environment.
111
+ - exit: Exit the current remote session and return to the parent environment.
112
+
113
+ **Enter action**:
114
+ After the tool executes successfully:
115
+ - All subsequent commands will run in the remote environment
116
+ - The working directory will change to the remote system's directory
117
+ - File operations will target remote files
118
+
119
+ Examples:
120
+ - SSH: action="enter", session_type="ssh", command="ssh rohan@192.168.1.100"
121
+ - Docker: action="enter", session_type="docker", command="docker exec -it mycontainer bash"
122
+ - WSL: action="enter", session_type="wsl", command="wsl -d Ubuntu"
123
+
124
+ **Exit action**:
125
+ Exits the current remote session and returns to the parent environment (local or outer remote session).
126
+ - Example: action="exit"
127
+
128
+ IMPORTANT:
129
+ - You CANNOT run raw ssh/docker/wsl commands via execute_command. Use this tool instead.
130
+ - To exit a remote session, use action="exit" instead of running the "exit" command.
131
+ - Password prompts go to the user; the tool will wait for user input.`,
132
+ parameters: {
133
+ type: 'object',
134
+ properties: {
135
+ action: {
136
+ type: 'string',
137
+ enum: ['enter', 'exit'],
138
+ description: 'The action to perform: "enter" to connect to a remote session, "exit" to leave the current remote session.'
139
+ },
140
+ reason_text: {
141
+ type: 'string',
142
+ description: 'A short, user-facing explanation of why you are entering/exiting this remote session.'
143
+ },
144
+ session_type: {
145
+ type: 'string',
146
+ enum: ['ssh', 'docker', 'wsl'],
147
+ description: 'The type of remote session to enter. Required for "enter" action.'
148
+ },
149
+ command: {
150
+ type: 'string',
151
+ description: 'The full command to establish the connection. Required for "enter" action. For SSH: "ssh user@host". For Docker: "docker exec -it container bash". For WSL: "wsl".'
152
+ }
153
+ },
154
+ required: ['action', 'reason_text']
155
+ }
156
+ },
157
+ async execute(args, context) {
158
+ const { action, session_type, command } = args;
159
+ // Check if cliAdapter is available
160
+ if (!context.cliAdapter) {
161
+ return 'Error: CLI adapter not available. Cannot manage remote session.';
162
+ }
163
+ // Handle exit action
164
+ if (action === 'exit') {
165
+ // Check if exitRemoteSession method exists
166
+ if (typeof context.cliAdapter.exitRemoteSession !== 'function') {
167
+ return 'Error: exitRemoteSession method not available on CLI adapter.';
168
+ }
169
+ try {
170
+ const success = await context.cliAdapter.exitRemoteSession();
171
+ if (success) {
172
+ return 'Successfully exited remote session. Commands will now execute in the parent environment.';
173
+ }
174
+ else {
175
+ return 'No remote session to exit. Already in local environment.';
176
+ }
177
+ }
178
+ catch (error) {
179
+ const errorMessage = error?.message || String(error);
180
+ return `Error exiting remote session: ${errorMessage}`;
181
+ }
182
+ }
183
+ // Handle enter action (default behavior)
184
+ // Validate session type
185
+ const validTypes = ['ssh', 'docker', 'wsl'];
186
+ if (!validTypes.includes(session_type)) {
187
+ return `Error: Invalid session_type "${session_type}". Must be one of: ssh, docker, wsl`;
188
+ }
189
+ if (!command) {
190
+ return 'Error: command is required for the "enter" action.';
191
+ }
192
+ // Validate command matches session type
193
+ const validation = validateCommand(command, session_type);
194
+ if (!validation.valid) {
195
+ return `Error: ${validation.error}`;
196
+ }
197
+ // Check if warpifySession method exists
198
+ if (typeof context.cliAdapter.warpifySession !== 'function') {
199
+ return 'Error: warpifySession method not available on CLI adapter.';
200
+ }
201
+ // Get connection string for display purposes
202
+ const connectionString = getConnectionString(command, session_type);
203
+ try {
204
+ // Call warpifySession - this handles:
205
+ // 1. Password prompting via onPasswordRequest callback
206
+ // 2. Connection establishment via the appropriate handler
207
+ // 3. Context switching via contextManager
208
+ // 4. CWD updates
209
+ const success = await context.cliAdapter.warpifySession(command, session_type, connectionString);
210
+ if (success) {
211
+ const sessionDesc = connectionString
212
+ ? `${session_type.toUpperCase()}: ${connectionString}`
213
+ : session_type.toUpperCase();
214
+ return `Successfully entered remote session: ${sessionDesc}. All subsequent commands will now execute in this remote environment.`;
215
+ }
216
+ else {
217
+ return `Failed to enter remote session. Check the connection details and try again. The connection may have been rejected or timed out.`;
218
+ }
219
+ }
220
+ catch (error) {
221
+ const errorMessage = error?.message || String(error);
222
+ return `Error entering remote session: ${errorMessage}`;
223
+ }
224
+ }
225
+ };
226
+ //# sourceMappingURL=enter-remote-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enter-remote-session.js","sourceRoot":"","sources":["../../src/tools/enter-remote-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC7C,yCAAyC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,OAAe;IACzC,2DAA2D;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtE,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,qBAAqB;IACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC/E,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAe;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACpE,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,iBAAiB;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,WAAwB;IAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEpD,QAAQ,WAAW,EAAE,CAAC;QAClB,KAAK,KAAK;YACN,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;gBACjE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;YACxE,CAAC;YACD,2BAA2B;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC;YAC9F,CAAC;YACD,MAAM;QAEV,KAAK,QAAQ;YACT,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kFAAkF,EAAE,CAAC;YACvH,CAAC;YACD,MAAM;QAEV,KAAK,KAAK;YACN,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;gBACjE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;YACrF,CAAC;YACD,MAAM;IACd,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,WAAwB;IAClE,QAAQ,WAAW,EAAE,CAAC;QAClB,KAAK,KAAK;YACN,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACT,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzC,KAAK,KAAK;YACN,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAS;IACxC,MAAM,EAAE;QACJ,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;sEAwBiD;QAC9D,UAAU,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,MAAM,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;oBACvB,WAAW,EAAE,4GAA4G;iBAC5H;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uFAAuF;iBACvG;gBACD,YAAY,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;oBAC9B,WAAW,EAAE,mEAAmE;iBACnF;gBACD,OAAO,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oKAAoK;iBACpL;aACJ;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;SACtC;KACJ;IAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QACvB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAE/C,mCAAmC;QACnC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,iEAAiE,CAAC;QAC7E,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,2CAA2C;YAC3C,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC7D,OAAO,+DAA+D,CAAC;YAC3E,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACV,OAAO,0FAA0F,CAAC;gBACtG,CAAC;qBAAM,CAAC;oBACJ,OAAO,0DAA0D,CAAC;gBACtE,CAAC;YACL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrD,OAAO,iCAAiC,YAAY,EAAE,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,wBAAwB;QACxB,MAAM,UAAU,GAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,gCAAgC,YAAY,qCAAqC,CAAC;QAC7F,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,oDAAoD,CAAC;QAChE,CAAC;QAED,wCAAwC;QACxC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,YAA2B,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC1D,OAAO,4DAA4D,CAAC;QACxE,CAAC;QAED,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAA2B,CAAC,CAAC;QAEnF,IAAI,CAAC;YACD,sCAAsC;YACtC,uDAAuD;YACvD,0DAA0D;YAC1D,0CAA0C;YAC1C,iBAAiB;YACjB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CACnD,OAAO,EACP,YAA2B,EAC3B,gBAAgB,CACnB,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,gBAAgB;oBAChC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,gBAAgB,EAAE;oBACtD,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBACjC,OAAO,wCAAwC,WAAW,wEAAwE,CAAC;YACvI,CAAC;iBAAM,CAAC;gBACJ,OAAO,iIAAiI,CAAC;YAC7I,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,kCAAkC,YAAY,EAAE,CAAC;QAC5D,CAAC;IACL,CAAC;CACJ,CAAC"}
@@ -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;CA+F9E;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,GAAG,OAAO,CAAC,eAAe,CAAC;CAuG9E;AA0BD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAyD3B,CAAC"}
@@ -115,8 +115,15 @@ export class FindFilesTool {
115
115
  }
116
116
  // Build patterns to search - handle multi-word patterns for fuzzy matching
117
117
  const patterns = [];
118
- // Always add the original pattern
119
- patterns.push(params.pattern);
118
+ // Auto-prefix with **/ if pattern is simple (no path separators) and not already recursive
119
+ // This allows finding "file.txt" anywhere in the project without typing "**/"
120
+ let mainPattern = params.pattern;
121
+ const normalizedPattern = mainPattern.replace(/\\/g, '/');
122
+ if (!normalizedPattern.includes('/') && !normalizedPattern.startsWith('**')) {
123
+ mainPattern = `**/${mainPattern}`;
124
+ }
125
+ // Always add the main pattern
126
+ patterns.push(mainPattern);
120
127
  // If pattern contains spaces or is multi-word (without glob chars), also search individual terms
121
128
  const cleanPattern = params.pattern.replace(/\*\*/g, '').replace(/\*/g, '').trim();
122
129
  if (cleanPattern.includes(' ')) {
@@ -1 +1 @@
1
- {"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../src/tools/find-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../src/tools/find-files.ts"],"names":[],"mappings":"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"}