centaurus-cli 3.0.0 → 3.1.0

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 (552) hide show
  1. package/dist/ai/types.js +0 -1
  2. package/dist/ai/types.js.map +1 -1
  3. package/dist/cli-adapter.js +5047 -5037
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +372 -315
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/build-config.js +11 -42
  8. package/dist/config/build-config.js.map +1 -1
  9. package/dist/config/defaultConfig.js +94 -82
  10. package/dist/config/defaultConfig.js.map +1 -1
  11. package/dist/config/manager.js +144 -160
  12. package/dist/config/manager.js.map +1 -1
  13. package/dist/config/mcp-config-manager.js +411 -364
  14. package/dist/config/mcp-config-manager.js.map +1 -1
  15. package/dist/config/models.js +118 -185
  16. package/dist/config/models.js.map +1 -1
  17. package/dist/config/slash-commands.js +186 -184
  18. package/dist/config/slash-commands.js.map +1 -1
  19. package/dist/config/types.js +33 -26
  20. package/dist/config/types.js.map +1 -1
  21. package/dist/context/command-detector.js +63 -67
  22. package/dist/context/command-detector.js.map +1 -1
  23. package/dist/context/context-manager.js +533 -518
  24. package/dist/context/context-manager.js.map +1 -1
  25. package/dist/context/handlers/docker-handler.js +518 -576
  26. package/dist/context/handlers/docker-handler.js.map +1 -1
  27. package/dist/context/handlers/ssh-handler.js +1050 -1109
  28. package/dist/context/handlers/ssh-handler.js.map +1 -1
  29. package/dist/context/handlers/wsl-handler.js +558 -630
  30. package/dist/context/handlers/wsl-handler.js.map +1 -1
  31. package/dist/context/index.js +42 -6
  32. package/dist/context/index.js.map +1 -1
  33. package/dist/context/subshell-handler.js +0 -4
  34. package/dist/context/subshell-handler.js.map +1 -1
  35. package/dist/context/types.js +20 -31
  36. package/dist/context/types.js.map +1 -1
  37. package/dist/hooks/useConnectivity.js +13 -10
  38. package/dist/hooks/useConnectivity.js.map +1 -1
  39. package/dist/hooks/useTerminalDimensions.js +67 -79
  40. package/dist/hooks/useTerminalDimensions.js.map +1 -1
  41. package/dist/index.js +228 -251
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp/mcp-command-handler.js +297 -260
  44. package/dist/mcp/mcp-command-handler.js.map +1 -1
  45. package/dist/mcp/mcp-server-manager.js +139 -155
  46. package/dist/mcp/mcp-server-manager.js.map +1 -1
  47. package/dist/mcp/mcp-tool-wrapper.js +74 -94
  48. package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
  49. package/dist/services/ai-autocomplete-agent.js +169 -181
  50. package/dist/services/ai-autocomplete-agent.js.map +1 -1
  51. package/dist/services/ai-context-injector.js +180 -93
  52. package/dist/services/ai-context-injector.js.map +1 -1
  53. package/dist/services/ai-service-client.js +513 -456
  54. package/dist/services/ai-service-client.js.map +1 -1
  55. package/dist/services/api-client.js +443 -441
  56. package/dist/services/api-client.js.map +1 -1
  57. package/dist/services/auth-handler.js +162 -198
  58. package/dist/services/auth-handler.js.map +1 -1
  59. package/dist/services/background-task-manager.js +258 -282
  60. package/dist/services/background-task-manager.js.map +1 -1
  61. package/dist/services/checkpoint-manager.js +1513 -973
  62. package/dist/services/checkpoint-manager.js.map +1 -1
  63. package/dist/services/clipboard-service.js +151 -200
  64. package/dist/services/clipboard-service.js.map +1 -1
  65. package/dist/services/connectivity-manager.js +63 -65
  66. package/dist/services/connectivity-manager.js.map +1 -1
  67. package/dist/services/conversation-manager.js +118 -121
  68. package/dist/services/conversation-manager.js.map +1 -1
  69. package/dist/services/environment-context-injector.js +160 -187
  70. package/dist/services/environment-context-injector.js.map +1 -1
  71. package/dist/services/fast-context-agent.js +203 -243
  72. package/dist/services/fast-context-agent.js.map +1 -1
  73. package/dist/services/input-detection-agent.js +190 -202
  74. package/dist/services/input-detection-agent.js.map +1 -1
  75. package/dist/services/input-requirement-detector.js +155 -189
  76. package/dist/services/input-requirement-detector.js.map +1 -1
  77. package/dist/services/local-chat-storage.js +342 -365
  78. package/dist/services/local-chat-storage.js.map +1 -1
  79. package/dist/services/monitored-shell-manager.js +225 -233
  80. package/dist/services/monitored-shell-manager.js.map +1 -1
  81. package/dist/services/ollama-service.js +293 -310
  82. package/dist/services/ollama-service.js.map +1 -1
  83. package/dist/services/rules-storage.js +142 -0
  84. package/dist/services/rules-storage.js.map +1 -0
  85. package/dist/services/session-quota-manager.js +219 -235
  86. package/dist/services/session-quota-manager.js.map +1 -1
  87. package/dist/services/shell-input-agent.js +299 -334
  88. package/dist/services/shell-input-agent.js.map +1 -1
  89. package/dist/services/sub-agent-manager.js +459 -501
  90. package/dist/services/sub-agent-manager.js.map +1 -1
  91. package/dist/services/warpify-detector.js +133 -183
  92. package/dist/services/warpify-detector.js.map +1 -1
  93. package/dist/services/workflow-storage.js +202 -217
  94. package/dist/services/workflow-storage.js.map +1 -1
  95. package/dist/test-ssh-handler.js +148 -193
  96. package/dist/test-ssh-handler.js.map +1 -1
  97. package/dist/tools/add-mcp.js +161 -0
  98. package/dist/tools/add-mcp.js.map +1 -0
  99. package/dist/tools/background-command.js +240 -273
  100. package/dist/tools/background-command.js.map +1 -1
  101. package/dist/tools/command.js +447 -440
  102. package/dist/tools/command.js.map +1 -1
  103. package/dist/tools/create-image.js +172 -202
  104. package/dist/tools/create-image.js.map +1 -1
  105. package/dist/tools/enter-remote-session.js +169 -215
  106. package/dist/tools/enter-remote-session.js.map +1 -1
  107. package/dist/tools/fast-context.js +60 -67
  108. package/dist/tools/fast-context.js.map +1 -1
  109. package/dist/tools/file-ops.js +605 -537
  110. package/dist/tools/file-ops.js.map +1 -1
  111. package/dist/tools/find-files.js +262 -303
  112. package/dist/tools/find-files.js.map +1 -1
  113. package/dist/tools/get-diff.js +423 -400
  114. package/dist/tools/get-diff.js.map +1 -1
  115. package/dist/tools/grep-search.js +966 -948
  116. package/dist/tools/grep-search.js.map +1 -1
  117. package/dist/tools/inspect-symbol.js +308 -323
  118. package/dist/tools/inspect-symbol.js.map +1 -1
  119. package/dist/tools/plan-mode.js +459 -503
  120. package/dist/tools/plan-mode.js.map +1 -1
  121. package/dist/tools/read-binary-file.js +160 -190
  122. package/dist/tools/read-binary-file.js.map +1 -1
  123. package/dist/tools/registry.js +100 -84
  124. package/dist/tools/registry.js.map +1 -1
  125. package/dist/tools/reproduce_issue.js +170 -151
  126. package/dist/tools/reproduce_issue.js.map +1 -1
  127. package/dist/tools/sub-agent.js +223 -228
  128. package/dist/tools/sub-agent.js.map +1 -1
  129. package/dist/tools/task-complete.js +28 -27
  130. package/dist/tools/task-complete.js.map +1 -1
  131. package/dist/tools/types.js +0 -1
  132. package/dist/tools/types.js.map +1 -1
  133. package/dist/tools/validation.js +96 -118
  134. package/dist/tools/validation.js.map +1 -1
  135. package/dist/tools/web-search.js +194 -194
  136. package/dist/tools/web-search.js.map +1 -1
  137. package/dist/tools/workflow-tool.js +77 -82
  138. package/dist/tools/workflow-tool.js.map +1 -1
  139. package/dist/types/index.js +0 -1
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/rule.js +1 -0
  142. package/dist/types/rule.js.map +1 -0
  143. package/dist/types/workflow.js +0 -7
  144. package/dist/types/workflow.js.map +1 -1
  145. package/dist/ui/components/AgentTimer.js +24 -25
  146. package/dist/ui/components/AgentTimer.js.map +1 -1
  147. package/dist/ui/components/App.js +3266 -3249
  148. package/dist/ui/components/App.js.map +1 -1
  149. package/dist/ui/components/AuthScreen.js +22 -34
  150. package/dist/ui/components/AuthScreen.js.map +1 -1
  151. package/dist/ui/components/AuthWelcomeScreen.js +30 -24
  152. package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
  153. package/dist/ui/components/Breadcrumbs.js +53 -82
  154. package/dist/ui/components/Breadcrumbs.js.map +1 -1
  155. package/dist/ui/components/CircularSelectInput.js +59 -67
  156. package/dist/ui/components/CircularSelectInput.js.map +1 -1
  157. package/dist/ui/components/ClipboardFileAutocomplete.js +78 -39
  158. package/dist/ui/components/ClipboardFileAutocomplete.js.map +1 -1
  159. package/dist/ui/components/CodeBlock.js +24 -42
  160. package/dist/ui/components/CodeBlock.js.map +1 -1
  161. package/dist/ui/components/ConfigViewer.js +18 -25
  162. package/dist/ui/components/ConfigViewer.js.map +1 -1
  163. package/dist/ui/components/ConfirmPrompt.js +49 -71
  164. package/dist/ui/components/ConfirmPrompt.js.map +1 -1
  165. package/dist/ui/components/ConnectionStatusMessage.js +32 -83
  166. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  167. package/dist/ui/components/ContextWindowIndicator.js +34 -49
  168. package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
  169. package/dist/ui/components/DetailedPlanReviewScreen.js +104 -106
  170. package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -1
  171. package/dist/ui/components/DiffViewer.js +68 -121
  172. package/dist/ui/components/DiffViewer.js.map +1 -1
  173. package/dist/ui/components/ErrorBoundary.js +40 -48
  174. package/dist/ui/components/ErrorBoundary.js.map +1 -1
  175. package/dist/ui/components/FileCreationPreview.js +29 -60
  176. package/dist/ui/components/FileCreationPreview.js.map +1 -1
  177. package/dist/ui/components/FileOperation.js +34 -29
  178. package/dist/ui/components/FileOperation.js.map +1 -1
  179. package/dist/ui/components/FileTagAutocomplete.js +55 -25
  180. package/dist/ui/components/FileTagAutocomplete.js.map +1 -1
  181. package/dist/ui/components/FontRecommendation.js.map +1 -1
  182. package/dist/ui/components/GitDiffBreadcrumb.js +29 -0
  183. package/dist/ui/components/GitDiffBreadcrumb.js.map +1 -0
  184. package/dist/ui/components/InputBox.js +1620 -2150
  185. package/dist/ui/components/InputBox.js.map +1 -1
  186. package/dist/ui/components/InteractiveShell.js +234 -352
  187. package/dist/ui/components/InteractiveShell.js.map +1 -1
  188. package/dist/ui/components/KeyboardHelp.js +34 -35
  189. package/dist/ui/components/KeyboardHelp.js.map +1 -1
  190. package/dist/ui/components/LoadingIndicator.js +22 -25
  191. package/dist/ui/components/LoadingIndicator.js.map +1 -1
  192. package/dist/ui/components/MCPAddScreen.js +40 -51
  193. package/dist/ui/components/MCPAddScreen.js.map +1 -1
  194. package/dist/ui/components/MCPListScreen.js +40 -48
  195. package/dist/ui/components/MCPListScreen.js.map +1 -1
  196. package/dist/ui/components/MCPServerListScreen.js +49 -56
  197. package/dist/ui/components/MCPServerListScreen.js.map +1 -1
  198. package/dist/ui/components/MarkdownRenderer.js +69 -96
  199. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  200. package/dist/ui/components/MessageBox.js +66 -48
  201. package/dist/ui/components/MessageBox.js.map +1 -1
  202. package/dist/ui/components/MessageDisplay.js +150 -142
  203. package/dist/ui/components/MessageDisplay.js.map +1 -1
  204. package/dist/ui/components/MonitorModeAIPanel.js +46 -65
  205. package/dist/ui/components/MonitorModeAIPanel.js.map +1 -1
  206. package/dist/ui/components/MultiLineInput.js +243 -277
  207. package/dist/ui/components/MultiLineInput.js.map +1 -1
  208. package/dist/ui/components/PasswordPrompt.js +37 -18
  209. package/dist/ui/components/PasswordPrompt.js.map +1 -1
  210. package/dist/ui/components/PlanAcceptedMessage.js +27 -38
  211. package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
  212. package/dist/ui/components/PlanReviewScreen.js +46 -50
  213. package/dist/ui/components/PlanReviewScreen.js.map +1 -1
  214. package/dist/ui/components/RulesEditorScreen.js +81 -0
  215. package/dist/ui/components/RulesEditorScreen.js.map +1 -0
  216. package/dist/ui/components/SelectPrompt.js +19 -8
  217. package/dist/ui/components/SelectPrompt.js.map +1 -1
  218. package/dist/ui/components/ShimmerText.js +44 -0
  219. package/dist/ui/components/ShimmerText.js.map +1 -0
  220. package/dist/ui/components/SlashCommandAutocomplete.js +49 -22
  221. package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
  222. package/dist/ui/components/StatusBar.js +56 -87
  223. package/dist/ui/components/StatusBar.js.map +1 -1
  224. package/dist/ui/components/StreamingMessageDisplay.js +116 -99
  225. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  226. package/dist/ui/components/TaskCompletedMessage.js +28 -23
  227. package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
  228. package/dist/ui/components/TaskProgressIndicator.js +44 -70
  229. package/dist/ui/components/TaskProgressIndicator.js.map +1 -1
  230. package/dist/ui/components/ThinkingDisplay.js +44 -41
  231. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  232. package/dist/ui/components/ToolExecutionMessage.js +772 -1326
  233. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  234. package/dist/ui/components/ToolExecutionStatus.js +53 -84
  235. package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
  236. package/dist/ui/components/ToolResult.js +22 -15
  237. package/dist/ui/components/ToolResult.js.map +1 -1
  238. package/dist/ui/components/VersionUpdatePrompt.js +88 -120
  239. package/dist/ui/components/VersionUpdatePrompt.js.map +1 -1
  240. package/dist/ui/components/WelcomeBanner.js +176 -26
  241. package/dist/ui/components/WelcomeBanner.js.map +1 -1
  242. package/dist/ui/components/WorkflowCreatorScreen.js +94 -161
  243. package/dist/ui/components/WorkflowCreatorScreen.js.map +1 -1
  244. package/dist/utils/ansi-encoder.js +30 -61
  245. package/dist/utils/ansi-encoder.js.map +1 -1
  246. package/dist/utils/chat-formatter.js +327 -305
  247. package/dist/utils/chat-formatter.js.map +1 -1
  248. package/dist/utils/command-history.js +152 -174
  249. package/dist/utils/command-history.js.map +1 -1
  250. package/dist/utils/context-sanitizer.js +49 -112
  251. package/dist/utils/context-sanitizer.js.map +1 -1
  252. package/dist/utils/conversation-logger.js +292 -324
  253. package/dist/utils/conversation-logger.js.map +1 -1
  254. package/dist/utils/custom-commands-manager.js +126 -131
  255. package/dist/utils/custom-commands-manager.js.map +1 -1
  256. package/dist/utils/editor-utils.js +732 -837
  257. package/dist/utils/editor-utils.js.map +1 -1
  258. package/dist/utils/file.js +174 -213
  259. package/dist/utils/file.js.map +1 -1
  260. package/dist/utils/git-stats.js +169 -0
  261. package/dist/utils/git-stats.js.map +1 -0
  262. package/dist/utils/input-classifier.js +960 -482
  263. package/dist/utils/input-classifier.js.map +1 -1
  264. package/dist/utils/logger.js +48 -73
  265. package/dist/utils/logger.js.map +1 -1
  266. package/dist/utils/markdown-parser.js +277 -310
  267. package/dist/utils/markdown-parser.js.map +1 -1
  268. package/dist/utils/rule-reference-resolver.js +54 -0
  269. package/dist/utils/rule-reference-resolver.js.map +1 -0
  270. package/dist/utils/shell.js +144 -156
  271. package/dist/utils/shell.js.map +1 -1
  272. package/dist/utils/state.js +23 -22
  273. package/dist/utils/state.js.map +1 -1
  274. package/dist/utils/syntax-checker.js +279 -327
  275. package/dist/utils/syntax-checker.js.map +1 -1
  276. package/dist/utils/terminal-output.js +199 -302
  277. package/dist/utils/terminal-output.js.map +1 -1
  278. package/dist/utils/text-clipboard.js +47 -70
  279. package/dist/utils/text-clipboard.js.map +1 -1
  280. package/dist/utils/unicode-sanitizer.js +134 -197
  281. package/dist/utils/unicode-sanitizer.js.map +1 -1
  282. package/dist/utils/version-checker.js +46 -56
  283. package/dist/utils/version-checker.js.map +1 -1
  284. package/package.json +6 -4
  285. package/dist/ai/types.d.ts +0 -20
  286. package/dist/ai/types.d.ts.map +0 -1
  287. package/dist/cli-adapter.d.ts +0 -511
  288. package/dist/cli-adapter.d.ts.map +0 -1
  289. package/dist/commands/CommandParser.d.ts +0 -27
  290. package/dist/commands/CommandParser.d.ts.map +0 -1
  291. package/dist/config/build-config.d.ts +0 -42
  292. package/dist/config/build-config.d.ts.map +0 -1
  293. package/dist/config/defaultConfig.d.ts +0 -79
  294. package/dist/config/defaultConfig.d.ts.map +0 -1
  295. package/dist/config/manager.d.ts +0 -62
  296. package/dist/config/manager.d.ts.map +0 -1
  297. package/dist/config/mcp-config-manager.d.ts +0 -79
  298. package/dist/config/mcp-config-manager.d.ts.map +0 -1
  299. package/dist/config/models.d.ts +0 -83
  300. package/dist/config/models.d.ts.map +0 -1
  301. package/dist/config/slash-commands.d.ts +0 -23
  302. package/dist/config/slash-commands.d.ts.map +0 -1
  303. package/dist/config/types.d.ts +0 -35
  304. package/dist/config/types.d.ts.map +0 -1
  305. package/dist/context/command-detector.d.ts +0 -50
  306. package/dist/context/command-detector.d.ts.map +0 -1
  307. package/dist/context/context-manager.d.ts +0 -157
  308. package/dist/context/context-manager.d.ts.map +0 -1
  309. package/dist/context/handlers/docker-handler.d.ts +0 -130
  310. package/dist/context/handlers/docker-handler.d.ts.map +0 -1
  311. package/dist/context/handlers/ssh-handler.d.ts +0 -201
  312. package/dist/context/handlers/ssh-handler.d.ts.map +0 -1
  313. package/dist/context/handlers/wsl-handler.d.ts +0 -146
  314. package/dist/context/handlers/wsl-handler.d.ts.map +0 -1
  315. package/dist/context/index.d.ts +0 -8
  316. package/dist/context/index.d.ts.map +0 -1
  317. package/dist/context/subshell-handler.d.ts +0 -165
  318. package/dist/context/subshell-handler.d.ts.map +0 -1
  319. package/dist/context/types.d.ts +0 -70
  320. package/dist/context/types.d.ts.map +0 -1
  321. package/dist/hooks/useConnectivity.d.ts +0 -2
  322. package/dist/hooks/useConnectivity.d.ts.map +0 -1
  323. package/dist/hooks/useTerminalDimensions.d.ts +0 -41
  324. package/dist/hooks/useTerminalDimensions.d.ts.map +0 -1
  325. package/dist/index.d.ts +0 -9
  326. package/dist/index.d.ts.map +0 -1
  327. package/dist/mcp/mcp-command-handler.d.ts +0 -47
  328. package/dist/mcp/mcp-command-handler.d.ts.map +0 -1
  329. package/dist/mcp/mcp-server-manager.d.ts +0 -30
  330. package/dist/mcp/mcp-server-manager.d.ts.map +0 -1
  331. package/dist/mcp/mcp-tool-wrapper.d.ts +0 -12
  332. package/dist/mcp/mcp-tool-wrapper.d.ts.map +0 -1
  333. package/dist/services/ai-autocomplete-agent.d.ts +0 -39
  334. package/dist/services/ai-autocomplete-agent.d.ts.map +0 -1
  335. package/dist/services/ai-context-injector.d.ts +0 -41
  336. package/dist/services/ai-context-injector.d.ts.map +0 -1
  337. package/dist/services/ai-service-client.d.ts +0 -128
  338. package/dist/services/ai-service-client.d.ts.map +0 -1
  339. package/dist/services/api-client.d.ts +0 -353
  340. package/dist/services/api-client.d.ts.map +0 -1
  341. package/dist/services/auth-handler.d.ts +0 -30
  342. package/dist/services/auth-handler.d.ts.map +0 -1
  343. package/dist/services/background-task-manager.d.ts +0 -114
  344. package/dist/services/background-task-manager.d.ts.map +0 -1
  345. package/dist/services/checkpoint-manager.d.ts +0 -167
  346. package/dist/services/checkpoint-manager.d.ts.map +0 -1
  347. package/dist/services/clipboard-service.d.ts +0 -37
  348. package/dist/services/clipboard-service.d.ts.map +0 -1
  349. package/dist/services/connectivity-manager.d.ts +0 -18
  350. package/dist/services/connectivity-manager.d.ts.map +0 -1
  351. package/dist/services/conversation-manager.d.ts +0 -73
  352. package/dist/services/conversation-manager.d.ts.map +0 -1
  353. package/dist/services/environment-context-injector.d.ts +0 -69
  354. package/dist/services/environment-context-injector.d.ts.map +0 -1
  355. package/dist/services/fast-context-agent.d.ts +0 -12
  356. package/dist/services/fast-context-agent.d.ts.map +0 -1
  357. package/dist/services/input-detection-agent.d.ts +0 -40
  358. package/dist/services/input-detection-agent.d.ts.map +0 -1
  359. package/dist/services/input-requirement-detector.d.ts +0 -28
  360. package/dist/services/input-requirement-detector.d.ts.map +0 -1
  361. package/dist/services/local-chat-storage.d.ts +0 -182
  362. package/dist/services/local-chat-storage.d.ts.map +0 -1
  363. package/dist/services/monitored-shell-manager.d.ts +0 -120
  364. package/dist/services/monitored-shell-manager.d.ts.map +0 -1
  365. package/dist/services/ollama-service.d.ts +0 -197
  366. package/dist/services/ollama-service.d.ts.map +0 -1
  367. package/dist/services/session-quota-manager.d.ts +0 -101
  368. package/dist/services/session-quota-manager.d.ts.map +0 -1
  369. package/dist/services/shell-input-agent.d.ts +0 -89
  370. package/dist/services/shell-input-agent.d.ts.map +0 -1
  371. package/dist/services/sub-agent-manager.d.ts +0 -140
  372. package/dist/services/sub-agent-manager.d.ts.map +0 -1
  373. package/dist/services/warpify-detector.d.ts +0 -43
  374. package/dist/services/warpify-detector.d.ts.map +0 -1
  375. package/dist/services/workflow-storage.d.ts +0 -72
  376. package/dist/services/workflow-storage.d.ts.map +0 -1
  377. package/dist/test-ssh-handler.d.ts +0 -8
  378. package/dist/test-ssh-handler.d.ts.map +0 -1
  379. package/dist/tools/background-command.d.ts +0 -11
  380. package/dist/tools/background-command.d.ts.map +0 -1
  381. package/dist/tools/command.d.ts +0 -3
  382. package/dist/tools/command.d.ts.map +0 -1
  383. package/dist/tools/create-image.d.ts +0 -10
  384. package/dist/tools/create-image.d.ts.map +0 -1
  385. package/dist/tools/enter-remote-session.d.ts +0 -48
  386. package/dist/tools/enter-remote-session.d.ts.map +0 -1
  387. package/dist/tools/fast-context.d.ts +0 -3
  388. package/dist/tools/fast-context.d.ts.map +0 -1
  389. package/dist/tools/file-ops.d.ts +0 -7
  390. package/dist/tools/file-ops.d.ts.map +0 -1
  391. package/dist/tools/find-files.d.ts +0 -49
  392. package/dist/tools/find-files.d.ts.map +0 -1
  393. package/dist/tools/get-diff.d.ts +0 -14
  394. package/dist/tools/get-diff.d.ts.map +0 -1
  395. package/dist/tools/grep-search.d.ts +0 -155
  396. package/dist/tools/grep-search.d.ts.map +0 -1
  397. package/dist/tools/inspect-symbol.d.ts +0 -32
  398. package/dist/tools/inspect-symbol.d.ts.map +0 -1
  399. package/dist/tools/plan-mode.d.ts +0 -140
  400. package/dist/tools/plan-mode.d.ts.map +0 -1
  401. package/dist/tools/read-binary-file.d.ts +0 -10
  402. package/dist/tools/read-binary-file.d.ts.map +0 -1
  403. package/dist/tools/registry.d.ts +0 -31
  404. package/dist/tools/registry.d.ts.map +0 -1
  405. package/dist/tools/reproduce_issue.d.ts +0 -2
  406. package/dist/tools/reproduce_issue.d.ts.map +0 -1
  407. package/dist/tools/sub-agent.d.ts +0 -9
  408. package/dist/tools/sub-agent.d.ts.map +0 -1
  409. package/dist/tools/task-complete.d.ts +0 -3
  410. package/dist/tools/task-complete.d.ts.map +0 -1
  411. package/dist/tools/types.d.ts +0 -40
  412. package/dist/tools/types.d.ts.map +0 -1
  413. package/dist/tools/validation.d.ts +0 -47
  414. package/dist/tools/validation.d.ts.map +0 -1
  415. package/dist/tools/web-search.d.ts +0 -24
  416. package/dist/tools/web-search.d.ts.map +0 -1
  417. package/dist/tools/workflow-tool.d.ts +0 -11
  418. package/dist/tools/workflow-tool.d.ts.map +0 -1
  419. package/dist/types/index.d.ts +0 -123
  420. package/dist/types/index.d.ts.map +0 -1
  421. package/dist/types/workflow.d.ts +0 -110
  422. package/dist/types/workflow.d.ts.map +0 -1
  423. package/dist/ui/components/AgentTimer.d.ts +0 -7
  424. package/dist/ui/components/AgentTimer.d.ts.map +0 -1
  425. package/dist/ui/components/App.d.ts +0 -197
  426. package/dist/ui/components/App.d.ts.map +0 -1
  427. package/dist/ui/components/AuthScreen.d.ts +0 -8
  428. package/dist/ui/components/AuthScreen.d.ts.map +0 -1
  429. package/dist/ui/components/AuthWelcomeScreen.d.ts +0 -8
  430. package/dist/ui/components/AuthWelcomeScreen.d.ts.map +0 -1
  431. package/dist/ui/components/Breadcrumbs.d.ts +0 -13
  432. package/dist/ui/components/Breadcrumbs.d.ts.map +0 -1
  433. package/dist/ui/components/CircularSelectInput.d.ts +0 -24
  434. package/dist/ui/components/CircularSelectInput.d.ts.map +0 -1
  435. package/dist/ui/components/ClipboardFileAutocomplete.d.ts +0 -10
  436. package/dist/ui/components/ClipboardFileAutocomplete.d.ts.map +0 -1
  437. package/dist/ui/components/CodeBlock.d.ts +0 -9
  438. package/dist/ui/components/CodeBlock.d.ts.map +0 -1
  439. package/dist/ui/components/ConfigViewer.d.ts +0 -11
  440. package/dist/ui/components/ConfigViewer.d.ts.map +0 -1
  441. package/dist/ui/components/ConfirmPrompt.d.ts +0 -13
  442. package/dist/ui/components/ConfirmPrompt.d.ts.map +0 -1
  443. package/dist/ui/components/ConnectionStatusMessage.d.ts +0 -17
  444. package/dist/ui/components/ConnectionStatusMessage.d.ts.map +0 -1
  445. package/dist/ui/components/ContextWindowIndicator.d.ts +0 -8
  446. package/dist/ui/components/ContextWindowIndicator.d.ts.map +0 -1
  447. package/dist/ui/components/DetailedPlanReviewScreen.d.ts +0 -17
  448. package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +0 -1
  449. package/dist/ui/components/DiffViewer.d.ts +0 -9
  450. package/dist/ui/components/DiffViewer.d.ts.map +0 -1
  451. package/dist/ui/components/ErrorBoundary.d.ts +0 -17
  452. package/dist/ui/components/ErrorBoundary.d.ts.map +0 -1
  453. package/dist/ui/components/FileCreationPreview.d.ts +0 -8
  454. package/dist/ui/components/FileCreationPreview.d.ts.map +0 -1
  455. package/dist/ui/components/FileOperation.d.ts +0 -10
  456. package/dist/ui/components/FileOperation.d.ts.map +0 -1
  457. package/dist/ui/components/FileTagAutocomplete.d.ts +0 -11
  458. package/dist/ui/components/FileTagAutocomplete.d.ts.map +0 -1
  459. package/dist/ui/components/FontRecommendation.d.ts +0 -1
  460. package/dist/ui/components/FontRecommendation.d.ts.map +0 -1
  461. package/dist/ui/components/InputBox.d.ts +0 -42
  462. package/dist/ui/components/InputBox.d.ts.map +0 -1
  463. package/dist/ui/components/InteractiveShell.d.ts +0 -30
  464. package/dist/ui/components/InteractiveShell.d.ts.map +0 -1
  465. package/dist/ui/components/KeyboardHelp.d.ts +0 -7
  466. package/dist/ui/components/KeyboardHelp.d.ts.map +0 -1
  467. package/dist/ui/components/LoadingIndicator.d.ts +0 -3
  468. package/dist/ui/components/LoadingIndicator.d.ts.map +0 -1
  469. package/dist/ui/components/MCPAddScreen.d.ts +0 -13
  470. package/dist/ui/components/MCPAddScreen.d.ts.map +0 -1
  471. package/dist/ui/components/MCPListScreen.d.ts +0 -17
  472. package/dist/ui/components/MCPListScreen.d.ts.map +0 -1
  473. package/dist/ui/components/MCPServerListScreen.d.ts +0 -16
  474. package/dist/ui/components/MCPServerListScreen.d.ts.map +0 -1
  475. package/dist/ui/components/MarkdownRenderer.d.ts +0 -8
  476. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  477. package/dist/ui/components/MessageBox.d.ts +0 -10
  478. package/dist/ui/components/MessageBox.d.ts.map +0 -1
  479. package/dist/ui/components/MessageDisplay.d.ts +0 -14
  480. package/dist/ui/components/MessageDisplay.d.ts.map +0 -1
  481. package/dist/ui/components/MonitorModeAIPanel.d.ts +0 -23
  482. package/dist/ui/components/MonitorModeAIPanel.d.ts.map +0 -1
  483. package/dist/ui/components/MultiLineInput.d.ts +0 -13
  484. package/dist/ui/components/MultiLineInput.d.ts.map +0 -1
  485. package/dist/ui/components/PasswordPrompt.d.ts +0 -9
  486. package/dist/ui/components/PasswordPrompt.d.ts.map +0 -1
  487. package/dist/ui/components/PlanAcceptedMessage.d.ts +0 -20
  488. package/dist/ui/components/PlanAcceptedMessage.d.ts.map +0 -1
  489. package/dist/ui/components/PlanReviewScreen.d.ts +0 -14
  490. package/dist/ui/components/PlanReviewScreen.d.ts.map +0 -1
  491. package/dist/ui/components/SelectPrompt.d.ts +0 -12
  492. package/dist/ui/components/SelectPrompt.d.ts.map +0 -1
  493. package/dist/ui/components/SlashCommandAutocomplete.d.ts +0 -13
  494. package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +0 -1
  495. package/dist/ui/components/StatusBar.d.ts +0 -14
  496. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  497. package/dist/ui/components/StreamingMessageDisplay.d.ts +0 -15
  498. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +0 -1
  499. package/dist/ui/components/TaskCompletedMessage.d.ts +0 -14
  500. package/dist/ui/components/TaskCompletedMessage.d.ts.map +0 -1
  501. package/dist/ui/components/TaskProgressIndicator.d.ts +0 -18
  502. package/dist/ui/components/TaskProgressIndicator.d.ts.map +0 -1
  503. package/dist/ui/components/ThinkingDisplay.d.ts +0 -15
  504. package/dist/ui/components/ThinkingDisplay.d.ts.map +0 -1
  505. package/dist/ui/components/ToolExecutionMessage.d.ts +0 -8
  506. package/dist/ui/components/ToolExecutionMessage.d.ts.map +0 -1
  507. package/dist/ui/components/ToolExecutionStatus.d.ts +0 -10
  508. package/dist/ui/components/ToolExecutionStatus.d.ts.map +0 -1
  509. package/dist/ui/components/ToolResult.d.ts +0 -10
  510. package/dist/ui/components/ToolResult.d.ts.map +0 -1
  511. package/dist/ui/components/VersionUpdatePrompt.d.ts +0 -9
  512. package/dist/ui/components/VersionUpdatePrompt.d.ts.map +0 -1
  513. package/dist/ui/components/WelcomeBanner.d.ts +0 -3
  514. package/dist/ui/components/WelcomeBanner.d.ts.map +0 -1
  515. package/dist/ui/components/WorkflowCreatorScreen.d.ts +0 -25
  516. package/dist/ui/components/WorkflowCreatorScreen.d.ts.map +0 -1
  517. package/dist/utils/ansi-encoder.d.ts +0 -7
  518. package/dist/utils/ansi-encoder.d.ts.map +0 -1
  519. package/dist/utils/chat-formatter.d.ts +0 -12
  520. package/dist/utils/chat-formatter.d.ts.map +0 -1
  521. package/dist/utils/command-history.d.ts +0 -24
  522. package/dist/utils/command-history.d.ts.map +0 -1
  523. package/dist/utils/context-sanitizer.d.ts +0 -50
  524. package/dist/utils/context-sanitizer.d.ts.map +0 -1
  525. package/dist/utils/conversation-logger.d.ts +0 -142
  526. package/dist/utils/conversation-logger.d.ts.map +0 -1
  527. package/dist/utils/custom-commands-manager.d.ts +0 -59
  528. package/dist/utils/custom-commands-manager.d.ts.map +0 -1
  529. package/dist/utils/editor-utils.d.ts +0 -101
  530. package/dist/utils/editor-utils.d.ts.map +0 -1
  531. package/dist/utils/file.d.ts +0 -61
  532. package/dist/utils/file.d.ts.map +0 -1
  533. package/dist/utils/input-classifier.d.ts +0 -25
  534. package/dist/utils/input-classifier.d.ts.map +0 -1
  535. package/dist/utils/logger.d.ts +0 -17
  536. package/dist/utils/logger.d.ts.map +0 -1
  537. package/dist/utils/markdown-parser.d.ts +0 -60
  538. package/dist/utils/markdown-parser.d.ts.map +0 -1
  539. package/dist/utils/shell.d.ts +0 -47
  540. package/dist/utils/shell.d.ts.map +0 -1
  541. package/dist/utils/state.d.ts +0 -13
  542. package/dist/utils/state.d.ts.map +0 -1
  543. package/dist/utils/syntax-checker.d.ts +0 -24
  544. package/dist/utils/syntax-checker.d.ts.map +0 -1
  545. package/dist/utils/terminal-output.d.ts +0 -25
  546. package/dist/utils/terminal-output.d.ts.map +0 -1
  547. package/dist/utils/text-clipboard.d.ts +0 -12
  548. package/dist/utils/text-clipboard.d.ts.map +0 -1
  549. package/dist/utils/unicode-sanitizer.d.ts +0 -44
  550. package/dist/utils/unicode-sanitizer.d.ts.map +0 -1
  551. package/dist/utils/version-checker.d.ts +0 -14
  552. package/dist/utils/version-checker.d.ts.map +0 -1
@@ -1,226 +1,180 @@
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
- export 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;
1
+ function parseSSHConnectionString(command) {
2
+ const match = command.match(/(\S+)@(\S+)/);
3
+ if (match) {
4
+ return match[0];
5
+ }
6
+ return void 0;
25
7
  }
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
- export 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;
8
+ function parseDockerContainer(command) {
9
+ const execMatch = command.match(/docker\s+exec\s+(?:-\w+\s+)*(\S+)/i);
10
+ if (execMatch) {
11
+ return execMatch[1];
12
+ }
13
+ const runMatch = command.match(/docker\s+run\s+(?:-\w+(?:\s+\S+)?\s+)*(\S+)/i);
14
+ if (runMatch) {
15
+ return runMatch[1];
16
+ }
17
+ return void 0;
44
18
  }
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
- export 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
19
+ function parseWSLDistro(command) {
20
+ const match = command.match(/wsl\s+(?:-d|--distribution)\s+(\S+)/i);
21
+ if (match) {
22
+ return match[1];
23
+ }
24
+ return "Ubuntu";
57
25
  }
58
- /**
59
- * Validate that the command matches the expected session type
60
- */
61
- export 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 };
26
+ function validateCommand(command, sessionType) {
27
+ const trimmedCommand = command.trim().toLowerCase();
28
+ switch (sessionType) {
29
+ case "ssh":
30
+ if (!trimmedCommand.startsWith("ssh ") && trimmedCommand !== "ssh") {
31
+ return { valid: false, error: 'SSH command must start with "ssh"' };
32
+ }
33
+ if (!command.match(/\S+@\S+/) && !command.match(/ssh\s+\S+/)) {
34
+ return { valid: false, error: 'SSH command must specify a host (e.g., "ssh user@host")' };
35
+ }
36
+ break;
37
+ case "docker":
38
+ if (!trimmedCommand.startsWith("docker ")) {
39
+ return { valid: false, error: 'Docker command must start with "docker"' };
40
+ }
41
+ if (!trimmedCommand.includes("exec") && !trimmedCommand.includes("run")) {
42
+ return { valid: false, error: 'Docker command must use "exec" or "run" (e.g., "docker exec -it container bash")' };
43
+ }
44
+ break;
45
+ case "wsl":
46
+ if (!trimmedCommand.startsWith("wsl") && trimmedCommand !== "bash") {
47
+ return { valid: false, error: 'WSL command must start with "wsl" or be "bash"' };
48
+ }
49
+ break;
50
+ }
51
+ return { valid: true };
88
52
  }
89
- /**
90
- * Get connection string based on session type and command
91
- */
92
- export 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
- }
53
+ function getConnectionString(command, sessionType) {
54
+ switch (sessionType) {
55
+ case "ssh":
56
+ return parseSSHConnectionString(command);
57
+ case "docker":
58
+ return parseDockerContainer(command);
59
+ case "wsl":
60
+ return parseWSLDistro(command);
61
+ default:
62
+ return void 0;
63
+ }
103
64
  }
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.
65
+ const enterRemoteSessionTool = {
66
+ schema: {
67
+ name: "enter_remote_session",
68
+ description: `Manage remote environment sessions (SSH, Docker, or WSL).
69
+
70
+ ACTIONS:
71
+ - enter: Switch context to a remote session. All subsequent commands will run in the remote environment.
72
+ - exit: Exit the current remote session and return to the parent environment.
73
+
74
+ **Enter action**:
75
+ After the tool executes successfully:
76
+ - All subsequent commands will run in the remote environment
77
+ - The working directory will change to the remote system's directory
78
+ - File operations will target remote files
79
+
80
+ Examples:
81
+ - SSH: action="enter", session_type="ssh", command="ssh rohan@192.168.1.100"
82
+ - Docker: action="enter", session_type="docker", command="docker exec -it mycontainer bash"
83
+ - WSL: action="enter", session_type="wsl", command="wsl -d Ubuntu"
84
+
85
+ **Exit action**:
86
+ Exits the current remote session and returns to the parent environment (local or outer remote session).
87
+ - Example: action="exit"
88
+
89
+ IMPORTANT:
90
+ - You CANNOT run raw ssh/docker/wsl commands via execute_command. Use this tool instead.
91
+ - To exit a remote session, use action="exit" instead of running the "exit" command.
131
92
  - 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}`;
93
+ parameters: {
94
+ type: "object",
95
+ properties: {
96
+ action: {
97
+ type: "string",
98
+ enum: ["enter", "exit"],
99
+ description: 'The action to perform: "enter" to connect to a remote session, "exit" to leave the current remote session.'
100
+ },
101
+ reason_text: {
102
+ type: "string",
103
+ description: "A short, user-facing explanation of why you are entering/exiting this remote session."
104
+ },
105
+ session_type: {
106
+ type: "string",
107
+ enum: ["ssh", "docker", "wsl"],
108
+ description: 'The type of remote session to enter. Required for "enter" action.'
109
+ },
110
+ command: {
111
+ type: "string",
112
+ 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".'
196
113
  }
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}`;
114
+ },
115
+ required: ["action", "reason_text"]
116
+ }
117
+ },
118
+ async execute(args, context) {
119
+ const { action, session_type, command } = args;
120
+ if (!context.cliAdapter) {
121
+ return "Error: CLI adapter not available. Cannot manage remote session.";
122
+ }
123
+ if (action === "exit") {
124
+ if (typeof context.cliAdapter.exitRemoteSession !== "function") {
125
+ return "Error: exitRemoteSession method not available on CLI adapter.";
126
+ }
127
+ try {
128
+ const success = await context.cliAdapter.exitRemoteSession();
129
+ if (success) {
130
+ return "Successfully exited remote session. Commands will now execute in the parent environment.";
131
+ } else {
132
+ return "No remote session to exit. Already in local environment.";
223
133
  }
134
+ } catch (error) {
135
+ const errorMessage = error?.message || String(error);
136
+ return `Error exiting remote session: ${errorMessage}`;
137
+ }
138
+ }
139
+ const validTypes = ["ssh", "docker", "wsl"];
140
+ if (!validTypes.includes(session_type)) {
141
+ return `Error: Invalid session_type "${session_type}". Must be one of: ssh, docker, wsl`;
224
142
  }
143
+ if (!command) {
144
+ return 'Error: command is required for the "enter" action.';
145
+ }
146
+ const validation = validateCommand(command, session_type);
147
+ if (!validation.valid) {
148
+ return `Error: ${validation.error}`;
149
+ }
150
+ if (typeof context.cliAdapter.warpifySession !== "function") {
151
+ return "Error: warpifySession method not available on CLI adapter.";
152
+ }
153
+ const connectionString = getConnectionString(command, session_type);
154
+ try {
155
+ const success = await context.cliAdapter.warpifySession(
156
+ command,
157
+ session_type,
158
+ connectionString
159
+ );
160
+ if (success) {
161
+ const sessionDesc = connectionString ? `${session_type.toUpperCase()}: ${connectionString}` : session_type.toUpperCase();
162
+ return `Successfully entered remote session: ${sessionDesc}. All subsequent commands will now execute in this remote environment.`;
163
+ } else {
164
+ return `Failed to enter remote session. Check the connection details and try again. The connection may have been rejected or timed out.`;
165
+ }
166
+ } catch (error) {
167
+ const errorMessage = error?.message || String(error);
168
+ return `Error entering remote session: ${errorMessage}`;
169
+ }
170
+ }
171
+ };
172
+ export {
173
+ enterRemoteSessionTool,
174
+ getConnectionString,
175
+ parseDockerContainer,
176
+ parseSSHConnectionString,
177
+ parseWSLDistro,
178
+ validateCommand
225
179
  };
226
180
  //# sourceMappingURL=enter-remote-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enter-remote-session.js","sourceRoot":"","sources":["../../src/tools/enter-remote-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tools/enter-remote-session.ts"],"sourcesContent":["/**\r\n * Enter Remote Session Tool\r\n * \r\n * Allows the AI agent to programmatically enter SSH, Docker, or WSL environments.\r\n * When executed, the session context automatically switches (\"auto-warpify\")\r\n * and subsequent commands run in the remote environment.\r\n * \r\n * Password prompts are handled by the existing password request callback,\r\n * which prompts the user for input when needed.\r\n */\r\n\r\nimport { Tool } from './types.js';\r\n\r\n// Valid session types\r\ntype SessionType = 'ssh' | 'docker' | 'wsl';\r\n\r\n/**\r\n * Parse connection string from SSH command\r\n * Examples:\r\n * \"ssh rohan@192.168.1.100\" -> \"rohan@192.168.1.100\"\r\n * \"ssh -p 22 rohan@localhost\" -> \"rohan@localhost\"\r\n * \"ssh -i ~/.ssh/id_rsa user@host\" -> \"user@host\"\r\n */\r\nexport function parseSSHConnectionString(command: string): string | undefined {\r\n // Match user@host pattern in the command\r\n const match = command.match(/(\\S+)@(\\S+)/);\r\n if (match) {\r\n return match[0];\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Parse container name from Docker command\r\n * Examples:\r\n * \"docker exec -it mycontainer bash\" -> \"mycontainer\"\r\n * \"docker exec mycontainer sh\" -> \"mycontainer\"\r\n */\r\nexport function parseDockerContainer(command: string): string | undefined {\r\n // docker exec pattern: look for container name after flags\r\n const execMatch = command.match(/docker\\s+exec\\s+(?:-\\w+\\s+)*(\\S+)/i);\r\n if (execMatch) {\r\n return execMatch[1];\r\n }\r\n // docker run pattern\r\n const runMatch = command.match(/docker\\s+run\\s+(?:-\\w+(?:\\s+\\S+)?\\s+)*(\\S+)/i);\r\n if (runMatch) {\r\n return runMatch[1];\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Parse WSL distro name from command\r\n * Examples:\r\n * \"wsl\" -> \"Ubuntu\" (default)\r\n * \"wsl -d Ubuntu-22.04\" -> \"Ubuntu-22.04\"\r\n */\r\nexport function parseWSLDistro(command: string): string {\r\n const match = command.match(/wsl\\s+(?:-d|--distribution)\\s+(\\S+)/i);\r\n if (match) {\r\n return match[1];\r\n }\r\n return 'Ubuntu'; // Default distro\r\n}\r\n\r\n/**\r\n * Validate that the command matches the expected session type\r\n */\r\nexport function validateCommand(command: string, sessionType: SessionType): { valid: boolean; error?: string } {\r\n const trimmedCommand = command.trim().toLowerCase();\r\n\r\n switch (sessionType) {\r\n case 'ssh':\r\n if (!trimmedCommand.startsWith('ssh ') && trimmedCommand !== 'ssh') {\r\n return { valid: false, error: 'SSH command must start with \"ssh\"' };\r\n }\r\n // Validate it has a target\r\n if (!command.match(/\\S+@\\S+/) && !command.match(/ssh\\s+\\S+/)) {\r\n return { valid: false, error: 'SSH command must specify a host (e.g., \"ssh user@host\")' };\r\n }\r\n break;\r\n\r\n case 'docker':\r\n if (!trimmedCommand.startsWith('docker ')) {\r\n return { valid: false, error: 'Docker command must start with \"docker\"' };\r\n }\r\n if (!trimmedCommand.includes('exec') && !trimmedCommand.includes('run')) {\r\n return { valid: false, error: 'Docker command must use \"exec\" or \"run\" (e.g., \"docker exec -it container bash\")' };\r\n }\r\n break;\r\n\r\n case 'wsl':\r\n if (!trimmedCommand.startsWith('wsl') && trimmedCommand !== 'bash') {\r\n return { valid: false, error: 'WSL command must start with \"wsl\" or be \"bash\"' };\r\n }\r\n break;\r\n }\r\n\r\n return { valid: true };\r\n}\r\n\r\n/**\r\n * Get connection string based on session type and command\r\n */\r\nexport function getConnectionString(command: string, sessionType: SessionType): string | undefined {\r\n switch (sessionType) {\r\n case 'ssh':\r\n return parseSSHConnectionString(command);\r\n case 'docker':\r\n return parseDockerContainer(command);\r\n case 'wsl':\r\n return parseWSLDistro(command);\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\nexport const enterRemoteSessionTool: Tool = {\r\n schema: {\r\n name: 'enter_remote_session',\r\n description: `Manage remote environment sessions (SSH, Docker, or WSL).\r\n\r\nACTIONS:\r\n- enter: Switch context to a remote session. All subsequent commands will run in the remote environment.\r\n- exit: Exit the current remote session and return to the parent environment.\r\n\r\n**Enter action**:\r\nAfter the tool executes successfully:\r\n- All subsequent commands will run in the remote environment\r\n- The working directory will change to the remote system's directory\r\n- File operations will target remote files\r\n\r\nExamples:\r\n- SSH: action=\"enter\", session_type=\"ssh\", command=\"ssh rohan@192.168.1.100\"\r\n- Docker: action=\"enter\", session_type=\"docker\", command=\"docker exec -it mycontainer bash\"\r\n- WSL: action=\"enter\", session_type=\"wsl\", command=\"wsl -d Ubuntu\"\r\n\r\n**Exit action**:\r\nExits the current remote session and returns to the parent environment (local or outer remote session).\r\n- Example: action=\"exit\"\r\n\r\nIMPORTANT: \r\n- You CANNOT run raw ssh/docker/wsl commands via execute_command. Use this tool instead.\r\n- To exit a remote session, use action=\"exit\" instead of running the \"exit\" command.\r\n- Password prompts go to the user; the tool will wait for user input.`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n action: {\r\n type: 'string',\r\n enum: ['enter', 'exit'],\r\n description: 'The action to perform: \"enter\" to connect to a remote session, \"exit\" to leave the current remote session.'\r\n },\r\n reason_text: {\r\n type: 'string',\r\n description: 'A short, user-facing explanation of why you are entering/exiting this remote session.'\r\n },\r\n session_type: {\r\n type: 'string',\r\n enum: ['ssh', 'docker', 'wsl'],\r\n description: 'The type of remote session to enter. Required for \"enter\" action.'\r\n },\r\n command: {\r\n type: 'string',\r\n 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\".'\r\n }\r\n },\r\n required: ['action', 'reason_text']\r\n }\r\n },\r\n\r\n async execute(args, context): Promise<string> {\r\n const { action, session_type, command } = args;\r\n\r\n // Check if cliAdapter is available\r\n if (!context.cliAdapter) {\r\n return 'Error: CLI adapter not available. Cannot manage remote session.';\r\n }\r\n\r\n // Handle exit action\r\n if (action === 'exit') {\r\n // Check if exitRemoteSession method exists\r\n if (typeof context.cliAdapter.exitRemoteSession !== 'function') {\r\n return 'Error: exitRemoteSession method not available on CLI adapter.';\r\n }\r\n\r\n try {\r\n const success = await context.cliAdapter.exitRemoteSession();\r\n if (success) {\r\n return 'Successfully exited remote session. Commands will now execute in the parent environment.';\r\n } else {\r\n return 'No remote session to exit. Already in local environment.';\r\n }\r\n } catch (error: any) {\r\n const errorMessage = error?.message || String(error);\r\n return `Error exiting remote session: ${errorMessage}`;\r\n }\r\n }\r\n\r\n // Handle enter action (default behavior)\r\n // Validate session type\r\n const validTypes: SessionType[] = ['ssh', 'docker', 'wsl'];\r\n if (!validTypes.includes(session_type)) {\r\n return `Error: Invalid session_type \"${session_type}\". Must be one of: ssh, docker, wsl`;\r\n }\r\n\r\n if (!command) {\r\n return 'Error: command is required for the \"enter\" action.';\r\n }\r\n\r\n // Validate command matches session type\r\n const validation = validateCommand(command, session_type as SessionType);\r\n if (!validation.valid) {\r\n return `Error: ${validation.error}`;\r\n }\r\n\r\n // Check if warpifySession method exists\r\n if (typeof context.cliAdapter.warpifySession !== 'function') {\r\n return 'Error: warpifySession method not available on CLI adapter.';\r\n }\r\n\r\n // Get connection string for display purposes\r\n const connectionString = getConnectionString(command, session_type as SessionType);\r\n\r\n try {\r\n // Call warpifySession - this handles:\r\n // 1. Password prompting via onPasswordRequest callback\r\n // 2. Connection establishment via the appropriate handler\r\n // 3. Context switching via contextManager\r\n // 4. CWD updates\r\n const success = await context.cliAdapter.warpifySession(\r\n command,\r\n session_type as SessionType,\r\n connectionString\r\n );\r\n\r\n if (success) {\r\n const sessionDesc = connectionString\r\n ? `${session_type.toUpperCase()}: ${connectionString}`\r\n : session_type.toUpperCase();\r\n return `Successfully entered remote session: ${sessionDesc}. All subsequent commands will now execute in this remote environment.`;\r\n } else {\r\n return `Failed to enter remote session. Check the connection details and try again. The connection may have been rejected or timed out.`;\r\n }\r\n } catch (error: any) {\r\n const errorMessage = error?.message || String(error);\r\n return `Error entering remote session: ${errorMessage}`;\r\n }\r\n }\r\n};\r\n"],"mappings":"AAuBO,SAAS,yBAAyB,SAAqC;AAE1E,QAAM,QAAQ,QAAQ,MAAM,aAAa;AACzC,MAAI,OAAO;AACP,WAAO,MAAM,CAAC;AAAA,EAClB;AACA,SAAO;AACX;AAQO,SAAS,qBAAqB,SAAqC;AAEtE,QAAM,YAAY,QAAQ,MAAM,oCAAoC;AACpE,MAAI,WAAW;AACX,WAAO,UAAU,CAAC;AAAA,EACtB;AAEA,QAAM,WAAW,QAAQ,MAAM,8CAA8C;AAC7E,MAAI,UAAU;AACV,WAAO,SAAS,CAAC;AAAA,EACrB;AACA,SAAO;AACX;AAQO,SAAS,eAAe,SAAyB;AACpD,QAAM,QAAQ,QAAQ,MAAM,sCAAsC;AAClE,MAAI,OAAO;AACP,WAAO,MAAM,CAAC;AAAA,EAClB;AACA,SAAO;AACX;AAKO,SAAS,gBAAgB,SAAiB,aAA8D;AAC3G,QAAM,iBAAiB,QAAQ,KAAK,EAAE,YAAY;AAElD,UAAQ,aAAa;AAAA,IACjB,KAAK;AACD,UAAI,CAAC,eAAe,WAAW,MAAM,KAAK,mBAAmB,OAAO;AAChE,eAAO,EAAE,OAAO,OAAO,OAAO,oCAAoC;AAAA,MACtE;AAEA,UAAI,CAAC,QAAQ,MAAM,SAAS,KAAK,CAAC,QAAQ,MAAM,WAAW,GAAG;AAC1D,eAAO,EAAE,OAAO,OAAO,OAAO,0DAA0D;AAAA,MAC5F;AACA;AAAA,IAEJ,KAAK;AACD,UAAI,CAAC,eAAe,WAAW,SAAS,GAAG;AACvC,eAAO,EAAE,OAAO,OAAO,OAAO,0CAA0C;AAAA,MAC5E;AACA,UAAI,CAAC,eAAe,SAAS,MAAM,KAAK,CAAC,eAAe,SAAS,KAAK,GAAG;AACrE,eAAO,EAAE,OAAO,OAAO,OAAO,mFAAmF;AAAA,MACrH;AACA;AAAA,IAEJ,KAAK;AACD,UAAI,CAAC,eAAe,WAAW,KAAK,KAAK,mBAAmB,QAAQ;AAChE,eAAO,EAAE,OAAO,OAAO,OAAO,iDAAiD;AAAA,MACnF;AACA;AAAA,EACR;AAEA,SAAO,EAAE,OAAO,KAAK;AACzB;AAKO,SAAS,oBAAoB,SAAiB,aAA8C;AAC/F,UAAQ,aAAa;AAAA,IACjB,KAAK;AACD,aAAO,yBAAyB,OAAO;AAAA,IAC3C,KAAK;AACD,aAAO,qBAAqB,OAAO;AAAA,IACvC,KAAK;AACD,aAAO,eAAe,OAAO;AAAA,IACjC;AACI,aAAO;AAAA,EACf;AACJ;AAEO,MAAM,yBAA+B;AAAA,EACxC,QAAQ;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAyBb,YAAY;AAAA,MACR,MAAM;AAAA,MACN,YAAY;AAAA,QACR,QAAQ;AAAA,UACJ,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,MAAM;AAAA,UACtB,aAAa;AAAA,QACjB;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,UACN,aAAa;AAAA,QACjB;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,UACN,MAAM,CAAC,OAAO,UAAU,KAAK;AAAA,UAC7B,aAAa;AAAA,QACjB;AAAA,QACA,SAAS;AAAA,UACL,MAAM;AAAA,UACN,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,MACA,UAAU,CAAC,UAAU,aAAa;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ,MAAM,SAA0B;AAC1C,UAAM,EAAE,QAAQ,cAAc,QAAQ,IAAI;AAG1C,QAAI,CAAC,QAAQ,YAAY;AACrB,aAAO;AAAA,IACX;AAGA,QAAI,WAAW,QAAQ;AAEnB,UAAI,OAAO,QAAQ,WAAW,sBAAsB,YAAY;AAC5D,eAAO;AAAA,MACX;AAEA,UAAI;AACA,cAAM,UAAU,MAAM,QAAQ,WAAW,kBAAkB;AAC3D,YAAI,SAAS;AACT,iBAAO;AAAA,QACX,OAAO;AACH,iBAAO;AAAA,QACX;AAAA,MACJ,SAAS,OAAY;AACjB,cAAM,eAAe,OAAO,WAAW,OAAO,KAAK;AACnD,eAAO,iCAAiC,YAAY;AAAA,MACxD;AAAA,IACJ;AAIA,UAAM,aAA4B,CAAC,OAAO,UAAU,KAAK;AACzD,QAAI,CAAC,WAAW,SAAS,YAAY,GAAG;AACpC,aAAO,gCAAgC,YAAY;AAAA,IACvD;AAEA,QAAI,CAAC,SAAS;AACV,aAAO;AAAA,IACX;AAGA,UAAM,aAAa,gBAAgB,SAAS,YAA2B;AACvE,QAAI,CAAC,WAAW,OAAO;AACnB,aAAO,UAAU,WAAW,KAAK;AAAA,IACrC;AAGA,QAAI,OAAO,QAAQ,WAAW,mBAAmB,YAAY;AACzD,aAAO;AAAA,IACX;AAGA,UAAM,mBAAmB,oBAAoB,SAAS,YAA2B;AAEjF,QAAI;AAMA,YAAM,UAAU,MAAM,QAAQ,WAAW;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAEA,UAAI,SAAS;AACT,cAAM,cAAc,mBACd,GAAG,aAAa,YAAY,CAAC,KAAK,gBAAgB,KAClD,aAAa,YAAY;AAC/B,eAAO,wCAAwC,WAAW;AAAA,MAC9D,OAAO;AACH,eAAO;AAAA,MACX;AAAA,IACJ,SAAS,OAAY;AACjB,YAAM,eAAe,OAAO,WAAW,OAAO,KAAK;AACnD,aAAO,kCAAkC,YAAY;AAAA,IACzD;AAAA,EACJ;AACJ;","names":[]}
@@ -1,72 +1,65 @@
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.
1
+ import { FastContextAgent } from "../services/fast-context-agent.js";
2
+ import { ToolRegistry } from "./registry.js";
3
+ import * as path from "path";
4
+ 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
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'],
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").'
40
29
  },
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}`;
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."
69
37
  }
70
- },
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
+ const registry = new ToolRegistry();
46
+ const { grepSearchTool } = await import("./grep-search.js");
47
+ const { findFilesTool } = await import("./find-files.js");
48
+ const { viewFileTool, listDirTool } = await import("./file-ops.js");
49
+ registry.register(grepSearchTool);
50
+ registry.register(findFilesTool);
51
+ registry.register(viewFileTool);
52
+ registry.register(listDirTool);
53
+ const agent = new FastContextAgent(registry);
54
+ try {
55
+ const result = await agent.search(query, cwd, context);
56
+ return result;
57
+ } catch (error) {
58
+ return `Fast Context Search Failed: ${error.message}`;
59
+ }
60
+ }
61
+ };
62
+ export {
63
+ fastContextTool
71
64
  };
72
65
  //# sourceMappingURL=fast-context.js.map
@@ -1 +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"}
1
+ {"version":3,"sources":["../../src/tools/fast-context.ts"],"sourcesContent":["import { Tool, ToolExecutionContext } from './types.js';\r\nimport { FastContextAgent } from '../services/fast-context-agent.js';\r\nimport { ToolRegistry } from './registry.js';\r\nimport * as path from 'path';\r\n\r\nexport const fastContextTool: Tool = {\r\n schema: {\r\n name: 'fast_context_search',\r\n description: `Rapidly retrieve code context using an intelligent multi-turn agent.\r\n \r\n USE THIS TOOL WHEN:\r\n - You need to understand how a feature is implemented across multiple files.\r\n - You are exploring a new codebase and need a high-level overview of a component.\r\n - Standard grep/find_files is too manual or you are unsure of exact terms.\r\n - You want to \"find where X is handled\" and get a summarized answer with file pointers.\r\n \r\n HOW IT WORKS:\r\n - It uses a specialized AI agent (FastContextAgent) to perform up to 8 turns of search.\r\n - It executes parallel grep/find/read operations.\r\n - It returns a synthesized markdown summary with relevant snippets and file paths.\r\n \r\n LIMITATIONS:\r\n - Read-only. It cannot modify files.\r\n - Optimized for speed (5s target), so it may miss deep/complex chains if not found quickly.`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n query: {\r\n type: 'string',\r\n 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\").',\r\n },\r\n path: {\r\n type: 'string',\r\n description: 'Optional. The target directory to search within. Defaults to current working directory.',\r\n },\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: Explanation of why you are using this tool.'\r\n }\r\n },\r\n required: ['query', 'reason_text'],\r\n },\r\n },\r\n async execute(args: Record<string, any>, context: ToolExecutionContext): Promise<string> {\r\n const { query, path: searchPath } = args;\r\n const cwd = searchPath ? (path.isAbsolute(searchPath) ? searchPath : path.resolve(context.cwd, searchPath)) : context.cwd;\r\n\r\n // We need a ToolRegistry instance.\r\n // In a real dependency injection system, we'd inject it.\r\n // Here, we can instantiate a new one, but it won't have tools registered unless we register them.\r\n // However, FastContextAgent needs a registry to *execute* tools.\r\n // If we create a new registry, it starts empty.\r\n // Solution: We need access to the MAIN registry or re-register tools.\r\n // Re-registering basic tools (grep, find, view, list) is safe and cheap.\r\n\r\n const registry = new ToolRegistry();\r\n\r\n // We lazily import standard tools to avoid circular dependencies if possible, \r\n // or just import them here.\r\n const { grepSearchTool } = await import('./grep-search.js');\r\n const { findFilesTool } = await import('./find-files.js');\r\n const { viewFileTool, listDirTool } = await import('./file-ops.js');\r\n\r\n registry.register(grepSearchTool);\r\n registry.register(findFilesTool);\r\n registry.register(viewFileTool);\r\n registry.register(listDirTool);\r\n\r\n const agent = new FastContextAgent(registry);\r\n\r\n try {\r\n const result = await agent.search(query, cwd, context);\r\n return result;\r\n } catch (error: any) {\r\n return `Fast Context Search Failed: ${error.message}`;\r\n }\r\n },\r\n};\r\n"],"mappings":"AACA,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAC7B,YAAY,UAAU;AAEf,MAAM,kBAAwB;AAAA,EACjC,QAAQ;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBb,YAAY;AAAA,MACR,MAAM;AAAA,MACN,YAAY;AAAA,QACR,OAAO;AAAA,UACH,MAAM;AAAA,UACN,aAAa;AAAA,QACjB;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,UACN,aAAa;AAAA,QACjB;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,UACN,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,MACA,UAAU,CAAC,SAAS,aAAa;AAAA,IACrC;AAAA,EACJ;AAAA,EACA,MAAM,QAAQ,MAA2B,SAAgD;AACrF,UAAM,EAAE,OAAO,MAAM,WAAW,IAAI;AACpC,UAAM,MAAM,aAAc,KAAK,WAAW,UAAU,IAAI,aAAa,KAAK,QAAQ,QAAQ,KAAK,UAAU,IAAK,QAAQ;AAUtH,UAAM,WAAW,IAAI,aAAa;AAIlC,UAAM,EAAE,eAAe,IAAI,MAAM,OAAO,kBAAkB;AAC1D,UAAM,EAAE,cAAc,IAAI,MAAM,OAAO,iBAAiB;AACxD,UAAM,EAAE,cAAc,YAAY,IAAI,MAAM,OAAO,eAAe;AAElE,aAAS,SAAS,cAAc;AAChC,aAAS,SAAS,aAAa;AAC/B,aAAS,SAAS,YAAY;AAC9B,aAAS,SAAS,WAAW;AAE7B,UAAM,QAAQ,IAAI,iBAAiB,QAAQ;AAE3C,QAAI;AACA,YAAM,SAAS,MAAM,MAAM,OAAO,OAAO,KAAK,OAAO;AACrD,aAAO;AAAA,IACX,SAAS,OAAY;AACjB,aAAO,+BAA+B,MAAM,OAAO;AAAA,IACvD;AAAA,EACJ;AACJ;","names":[]}