centaurus-cli 3.0.1 → 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 -5158
  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 +1526 -1512
  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 +601 -572
  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 -406
  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 -3263
  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 -514
  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 -204
  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 +1 @@
1
- {"version":3,"file":"docker-handler.js","sourceRoot":"","sources":["../../../src/context/handlers/docker-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/context/handlers/docker-handler.ts"],"sourcesContent":["/**\r\n * Docker Handler for container execution\r\n */\r\n\r\nimport { exec } from 'child_process';\r\nimport { promisify } from 'util';\r\nimport { writeFile, unlink } from 'fs/promises';\r\nimport { tmpdir } from 'os';\r\nimport { join } from 'path';\r\nimport { SubshellHandler, BreadcrumbInfo, CommandResult, DirectoryEntry, SearchResult } from '../subshell-handler.js';\r\nimport { SubshellContext, SubshellConnectionError, SubshellExecutionError, OSType } from '../types.js';\r\nimport { randomBytes } from 'crypto';\r\nimport { quickLog } from '../../utils/conversation-logger.js';\r\n\r\nconst execAsync = promisify(exec);\r\n\r\n/**\r\n * Docker-specific configuration\r\n */\r\nexport interface DockerConfig {\r\n /** Container ID or name */\r\n containerId: string;\r\n\r\n /** Container name (if available) */\r\n containerName?: string;\r\n}\r\n\r\n/**\r\n * Docker Handler implementation\r\n */\r\nexport class DockerHandler implements SubshellHandler {\r\n readonly type = 'docker';\r\n readonly detectionPatterns = [\r\n /^docker\\s+exec\\s+/,\r\n /^docker\\s+exec\\s+-it\\s+/,\r\n ];\r\n\r\n private config: DockerConfig | null = null;\r\n private currentWorkingDirectory: string = '/';\r\n private shellType: string = 'sh';\r\n private osType: OSType = 'linux';\r\n private sessionId: string = '';\r\n private parentContext?: SubshellContext; // For nested connections\r\n\r\n /**\r\n * Detect if a command should trigger this handler\r\n */\r\n detect(command: string): boolean {\r\n return this.detectionPatterns.some(pattern => pattern.test(command));\r\n }\r\n\r\n /**\r\n * Connect to the Docker container\r\n */\r\n async connect(command: string, cwd: string): Promise<SubshellContext> {\r\n this.sessionId = randomBytes(16).toString('hex');\r\n\r\n try {\r\n // Parse Docker command to extract container ID\r\n this.config = this.parseDockerCommand(command);\r\n\r\n // Verify container exists and is running\r\n await this.verifyContainer();\r\n\r\n // Detect shell type and OS\r\n this.shellType = await this.detectShellType();\r\n this.osType = await this.detectOSType();\r\n\r\n // Get initial working directory\r\n this.currentWorkingDirectory = await this.getCurrentWorkingDirectory();\r\n\r\n return {\r\n type: 'docker',\r\n handler: this,\r\n metadata: {\r\n workingDirectory: this.currentWorkingDirectory,\r\n shell: this.shellType,\r\n os: this.osType,\r\n containerId: this.config.containerId,\r\n },\r\n connectionState: 'connected',\r\n sessionId: this.sessionId,\r\n };\r\n } catch (error) {\r\n throw new SubshellConnectionError(\r\n 'docker',\r\n error instanceof Error ? error.message : 'Unknown error',\r\n false\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Connect from an existing remote context (nested session)\r\n */\r\n async connectFromRemote(command: string, cwd: string, parentContext: SubshellContext): Promise<SubshellContext> {\r\n this.sessionId = randomBytes(16).toString('hex');\r\n this.parentContext = parentContext;\r\n\r\n try {\r\n // Parse Docker command to extract container ID\r\n this.config = this.parseDockerCommand(command);\r\n\r\n // Verify container exists AND we can execute commands\r\n // A simple 'docker inspect' might succeed remotely via SSH metadata service,\r\n // but 'docker exec' might fail due to stream/pipe issues (the npipe error).\r\n // We must verify actual execution capability.\r\n try {\r\n await this.verifyContainer();\r\n // Also verify we can actually run a command\r\n const result = await this.executeCommand('echo verification');\r\n // Check if the result indicates Docker pipe errors (exitCode != 0 or stderr contains pipe errors)\r\n if (result.exitCode !== 0 || (result.stderr && (result.stderr.includes('npipe:') || result.stderr.includes('pipe/docker')))) {\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Remote Docker execution failed, attempting local fallback. Error: ${result.stderr || 'exit code ' + result.exitCode}\\n`);\r\n throw new Error(`Docker execution failed remotely: ${result.stderr || 'exit code ' + result.exitCode}`);\r\n }\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Successfully verified Docker execution via remote context\\n`);\r\n } catch (remoteError: any) {\r\n // Fallback: If remote execution fails, try local execution\r\n // This handles scenarios like SSH-ing to localhost where Docker pipes aren't accessible remotely\r\n // but are accessible locally.\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Attempting local fallback for Docker execution\\n`);\r\n const originalParent = this.parentContext;\r\n this.parentContext = undefined; // Temporarily switch to local\r\n\r\n try {\r\n await this.verifyContainer();\r\n // Also verify we can execute commands locally\r\n const localResult = await this.executeCommand('echo verification');\r\n if (localResult.exitCode !== 0 || (localResult.stderr && (localResult.stderr.includes('npipe:') || localResult.stderr.includes('pipe/docker')))) {\r\n throw new Error(`Local Docker execution also failed: ${localResult.stderr || 'exit code ' + localResult.exitCode}`);\r\n }\r\n // If successful, keep parentContext as undefined (permanent fallback to local)\r\n // Note: We'll get the proper CWD later via getCurrentWorkingDirectory()\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Successfully fell back to local Docker execution (parentContext cleared)\\n`);\r\n } catch (localError) {\r\n // If local also fails, restore parent context and throw original remote error\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Local fallback also failed, restoring remote context\\n`);\r\n this.parentContext = originalParent;\r\n throw remoteError;\r\n }\r\n }\r\n\r\n // Detect shell type and OS\r\n this.shellType = await this.detectShellType();\r\n this.osType = await this.detectOSType();\r\n\r\n // Get initial working directory - reset first to force fresh detection\r\n // The verification command may have polluted currentWorkingDirectory via __CENTAURUS_PWD__ extraction\r\n // which can have incorrect values due to SSH shell evaluation\r\n this.currentWorkingDirectory = '';\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] Reset currentWorkingDirectory, calling getCurrentWorkingDirectory()\\n`);\r\n this.currentWorkingDirectory = await this.getCurrentWorkingDirectory();\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] After getCurrentWorkingDirectory, currentWorkingDirectory=${this.currentWorkingDirectory}\\n`);\r\n\r\n return {\r\n type: 'docker',\r\n handler: this,\r\n metadata: {\r\n workingDirectory: this.currentWorkingDirectory,\r\n shell: this.shellType,\r\n os: this.osType,\r\n containerId: this.config.containerId,\r\n },\r\n connectionState: 'connected',\r\n sessionId: this.sessionId,\r\n };\r\n } catch (error) {\r\n this.parentContext = undefined; // Reset on failure\r\n throw new SubshellConnectionError(\r\n 'docker',\r\n error instanceof Error ? error.message : 'Unknown error',\r\n false\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Disconnect from the Docker container\r\n */\r\n async disconnect(): Promise<void> {\r\n this.config = null;\r\n }\r\n\r\n /**\r\n * Check if this handler is currently connected to a Docker container\r\n */\r\n isConnected(): boolean {\r\n return this.config !== null;\r\n }\r\n\r\n /**\r\n * Execute a command in the Docker container\r\n */\r\n async executeCommand(command: string): Promise<CommandResult> {\r\n if (!this.config) {\r\n throw new SubshellExecutionError(command, 'Not connected to Docker container');\r\n }\r\n\r\n // Check if this is a cd command - we'll need special CWD handling\r\n const isCdCommand = /^\\s*cd\\s+/.test(command) || command.trim() === 'cd';\r\n\r\n // Use unique PWD tag\r\n const pwdTag = `__CENTAURUS_PWD_${this.sessionId}__`;\r\n\r\n try {\r\n // Store old CWD before execution for cd verification\r\n const oldCwd = this.currentWorkingDirectory || '/';\r\n const dockerCommand = this.buildDockerCommand(command, pwdTag);\r\n\r\n const { stdout, stderr } = await this.executeWithTimeout(\r\n () => this.executeHostCommand(dockerCommand),\r\n 30000,\r\n 'Command execution'\r\n );\r\n\r\n // Extract working directory from output using unique tag\r\n // We use a constructed regex to match the specific tag for this session\r\n const pwdRegex = new RegExp(`${pwdTag}:(.+)$`, 'm');\r\n const pwdMatch = stdout.match(pwdRegex);\r\n let cleanStdout = stdout;\r\n\r\n if (pwdMatch) {\r\n const extractedPwd = pwdMatch[1].trim();\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] executeCommand extracted CWD from output: \"${extractedPwd}\"\\n`);\r\n this.currentWorkingDirectory = extractedPwd;\r\n // Remove the tag line from stdout\r\n const removeRegex = new RegExp(`${pwdTag}:.+$`, 'm');\r\n cleanStdout = stdout.replace(removeRegex, '').trim();\r\n }\r\n\r\n // For cd commands, the $(pwd) extraction through SSH can be unreliable\r\n // due to shell evaluation issues. Run the cd command again with pwd to verify.\r\n if (isCdCommand) {\r\n try {\r\n // Run: cd <old_dir> && <user_cd_command> && pwd to get the actual new directory\r\n const escapedOldCwd = oldCwd.replace(/\"/g, '\\\\\"');\r\n const escapedCommand = command.replace(/\"/g, '\\\\\"');\r\n // For verification, we don't need the tag since we just want the output\r\n const pwdCommand = `docker exec ${this.config.containerId} sh -c \"cd \\\\\"${escapedOldCwd}\\\\\" && ${escapedCommand} && pwd\"`;\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] cd verification command: ${pwdCommand}\\n`);\r\n const { stdout: pwdOutput } = await this.executeHostCommand(pwdCommand);\r\n const actualCwd = pwdOutput.trim();\r\n if (actualCwd && actualCwd.startsWith('/')) {\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] cd command: verified CWD is \"${actualCwd}\"\\n`);\r\n this.currentWorkingDirectory = actualCwd;\r\n }\r\n } catch (pwdError) {\r\n // If pwd verification fails, keep the extracted value\r\n quickLog(`[${new Date().toISOString()}] [DockerHandler] cd command: pwd verification failed, keeping extracted value\\n`);\r\n }\r\n }\r\n\r\n return {\r\n stdout: cleanStdout,\r\n stderr,\r\n exitCode: 0,\r\n };\r\n } catch (error: any) {\r\n return {\r\n stdout: '',\r\n stderr: error.stderr || error.message,\r\n exitCode: error.code || 1,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Read a file from the Docker container filesystem\r\n */\r\n async readFile(path: string): Promise<string> {\r\n if (!this.config) {\r\n throw new Error('Not connected to Docker container');\r\n }\r\n\r\n const absolutePath = this.resolveAbsolutePath(path);\r\n // Use base64 to avoid encoding issues and be binary-safe\r\n const command = `docker exec ${this.config.containerId} sh -lc \"base64 '${absolutePath}' 2>/dev/null || cat '${absolutePath}' | base64\"`;\r\n\r\n try {\r\n const { stdout } = await this.executeHostCommand(command);\r\n const b64 = stdout.replace(/\\s+/g, '');\r\n return Buffer.from(b64, 'base64').toString('utf-8');\r\n } catch (error: any) {\r\n throw new Error(`Failed to read file ${path}: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Write a file to the Docker container filesystem\r\n */\r\n async writeFile(path: string, content: string | Buffer): Promise<void> {\r\n if (!this.config) {\r\n throw new Error('Not connected to Docker container');\r\n }\r\n\r\n const absolutePath = this.resolveAbsolutePath(path);\r\n\r\n // Create a temporary file on the host\r\n const tempFile = join(tmpdir(), `centaurus-${randomBytes(8).toString('hex')}.tmp`);\r\n\r\n try {\r\n // If remote, skip direct file copy and force fallback\r\n if (this.parentContext) {\r\n throw new Error('Remote parent: forcing fallback');\r\n }\r\n\r\n // Write content to temp file\r\n if (Buffer.isBuffer(content)) {\r\n await writeFile(tempFile, content);\r\n } else {\r\n await writeFile(tempFile, content, 'utf8');\r\n }\r\n\r\n // Copy temp file to container\r\n const copyCommand = `docker cp \\\"${tempFile}\\\" ${this.config.containerId}:\\\"${absolutePath}\\\"`;\r\n await execAsync(copyCommand);\r\n\r\n // Clean up temp file\r\n await unlink(tempFile);\r\n } catch (error: any) {\r\n // Try base64-over-exec fallback if docker cp fails\r\n try {\r\n // Ensure file is empty first\r\n await this.executeHostCommand(`docker exec ${this.config.containerId} sh -lc \": > \\\"${absolutePath}\\\"\"`);\r\n const inputBuffer = Buffer.isBuffer(content) ? content : Buffer.from(content, 'utf8');\r\n const base64Content = inputBuffer.toString('base64');\r\n const CHUNK_SIZE = 32000;\r\n for (let i = 0; i < base64Content.length; i += CHUNK_SIZE) {\r\n const chunk = base64Content.slice(i, i + CHUNK_SIZE);\r\n const writeCmd = `docker exec ${this.config.containerId} sh -lc 'echo \"${chunk}\" | base64 -d >> \\\"${absolutePath}\\\"'`;\r\n await this.executeHostCommand(writeCmd);\r\n }\r\n } catch (fbErr: any) {\r\n // Try to clean up temp file even if fallback also failed\r\n try { await unlink(tempFile); } catch { }\r\n throw new Error(`Failed to write file ${path}: ${error.message}; fallback failed: ${fbErr.message}`);\r\n }\r\n\r\n // Try to clean up temp file even if copy failed originally\r\n try {\r\n await unlink(tempFile);\r\n } catch { }\r\n }\r\n }\r\n\r\n /**\r\n * List directory contents in Docker container\r\n */\r\n async listDirectory(path: string): Promise<DirectoryEntry[]> {\r\n if (!this.config) {\r\n throw new Error('Not connected to Docker container');\r\n }\r\n\r\n const absolutePath = this.resolveAbsolutePath(path);\r\n const command = `docker exec ${this.config.containerId} ls -la \"${absolutePath}\"`;\r\n\r\n try {\r\n const { stdout } = await this.executeHostCommand(command);\r\n return this.parseDirectoryListing(stdout);\r\n } catch (error: any) {\r\n throw new Error(`Failed to list directory ${path}: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Search for files matching a pattern in Docker container\r\n */\r\n async searchFiles(pattern: string, directory: string): Promise<SearchResult[]> {\r\n if (!this.config) {\r\n throw new Error('Not connected to Docker container');\r\n }\r\n\r\n const absolutePath = this.resolveAbsolutePath(directory);\r\n const escapedPattern = pattern.replace(/'/g, \"'\\\\''\");\r\n const command = `docker exec ${this.config.containerId} sh -c \"grep -rn '${escapedPattern}' '${absolutePath}' 2>/dev/null || true\"`;\r\n\r\n try {\r\n const { stdout } = await this.executeHostCommand(command);\r\n return this.parseSearchResults(stdout);\r\n } catch (error: any) {\r\n // grep returns non-zero if no matches, which is not an error\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Get the current working directory in the Docker container\r\n * For initial detection: runs pwd in the container\r\n * For subsequent calls: returns the tracked CWD (since each docker exec is a new shell)\r\n */\r\n async getCurrentWorkingDirectory(): Promise<string> {\r\n // If we already have a tracked CWD, return it\r\n // This handles the case where cd was used to change directories\r\n if (this.currentWorkingDirectory) {\r\n return this.currentWorkingDirectory;\r\n }\r\n\r\n // Initial detection: run pwd to get the container's default working directory\r\n if (!this.config) {\r\n return '/';\r\n }\r\n\r\n const command = `docker exec ${this.config.containerId} pwd`;\r\n\r\n try {\r\n const { stdout } = await this.executeHostCommand(command);\r\n this.currentWorkingDirectory = stdout.trim() || '/';\r\n return this.currentWorkingDirectory;\r\n } catch {\r\n return '/';\r\n }\r\n }\r\n\r\n /**\r\n * Get the shell type\r\n */\r\n async getShellType(): Promise<string> {\r\n return this.shellType;\r\n }\r\n\r\n /**\r\n * Get the operating system type\r\n */\r\n async getOSType(): Promise<OSType> {\r\n return this.osType;\r\n }\r\n\r\n /**\r\n * Get breadcrumb information for the UI\r\n */\r\n getBreadcrumbs(): BreadcrumbInfo[] {\r\n if (!this.config) {\r\n return [];\r\n }\r\n\r\n const displayName = this.config.containerName || this.config.containerId.substring(0, 12);\r\n\r\n return [\r\n {\r\n label: 'docker',\r\n color: 'blue',\r\n },\r\n {\r\n label: displayName,\r\n color: 'blue',\r\n },\r\n ];\r\n }\r\n\r\n // Private helper methods\r\n\r\n /**\r\n * Parse Docker exec command to extract container ID\r\n */\r\n private parseDockerCommand(command: string): DockerConfig {\r\n const parts = command.trim().split(/\\s+/);\r\n let containerId = '';\r\n\r\n // Find the container ID (first non-flag argument after 'exec')\r\n let foundExec = false;\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n\r\n if (part === 'exec') {\r\n foundExec = true;\r\n continue;\r\n }\r\n\r\n if (foundExec) {\r\n // Skip flags\r\n if (part.startsWith('-')) {\r\n // Check if it's a flag with a value\r\n if (part === '-e' || part === '-w' || part === '-u') {\r\n i++; // Skip the next part (flag value)\r\n }\r\n continue;\r\n }\r\n\r\n // This should be the container ID\r\n containerId = part;\r\n break;\r\n }\r\n }\r\n\r\n if (!containerId) {\r\n throw new Error('Could not parse container ID from Docker command');\r\n }\r\n\r\n return {\r\n containerId,\r\n };\r\n }\r\n\r\n /**\r\n * Verify that the container exists and is running\r\n */\r\n private async verifyContainer(): Promise<void> {\r\n if (!this.config) {\r\n throw new Error('No container configuration');\r\n }\r\n\r\n try {\r\n // Use docker inspect to check container status\r\n const command = `docker inspect --format=\"{{.State.Running}},{{.Name}}\" ${this.config.containerId}`;\r\n const { stdout } = await this.executeHostCommand(command);\r\n\r\n const [running, name] = stdout.trim().split(',');\r\n\r\n if (running !== 'true') {\r\n throw new Error(`Container ${this.config.containerId} is not running`);\r\n }\r\n\r\n // Store container name (remove leading /)\r\n if (name) {\r\n this.config.containerName = name.replace(/^\\//, '');\r\n }\r\n } catch (error: any) {\r\n if (error.message.includes('No such object')) {\r\n throw new Error(`Container ${this.config.containerId} does not exist`);\r\n }\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Detect the shell type in the Docker container\r\n */\r\n private async detectShellType(): Promise<string> {\r\n if (!this.config) {\r\n return 'sh';\r\n }\r\n\r\n try {\r\n // Try to detect shell\r\n const command = `docker exec ${this.config.containerId} sh -c \"echo \\\\$SHELL\"`;\r\n const { stdout } = await this.executeHostCommand(command);\r\n const shellPath = stdout.trim();\r\n\r\n if (shellPath.includes('bash')) return 'bash';\r\n if (shellPath.includes('zsh')) return 'zsh';\r\n if (shellPath.includes('fish')) return 'fish';\r\n\r\n // Default to sh for containers\r\n return 'sh';\r\n } catch {\r\n return 'sh';\r\n }\r\n }\r\n\r\n /**\r\n * Detect the operating system type in the Docker container\r\n */\r\n private async detectOSType(): Promise<OSType> {\r\n if (!this.config) {\r\n return 'linux';\r\n }\r\n\r\n try {\r\n const command = `docker exec ${this.config.containerId} uname -s`;\r\n const { stdout } = await this.executeHostCommand(command);\r\n const osName = stdout.trim().toLowerCase();\r\n\r\n if (osName.includes('darwin')) return 'macos';\r\n if (osName.includes('linux')) return 'linux';\r\n\r\n // Most containers are Linux\r\n return 'linux';\r\n } catch {\r\n return 'linux';\r\n }\r\n }\r\n\r\n /**\r\n * Build a Docker exec command with working directory context\r\n */\r\n private buildDockerCommand(command: string, pwdTag: string = '__CENTAURUS_PWD__'): string {\r\n if (!this.config) {\r\n throw new Error('Not connected to Docker container');\r\n }\r\n\r\n // Add pwd tracking to command - escape $ so it's evaluated inside Docker, not by SSH shell\r\n const commandWithPwd = `${command}; echo \"${pwdTag}:\\\\$(pwd)\"`;\r\n\r\n // Use -w flag to set working directory\r\n return `docker exec -w \"${this.currentWorkingDirectory}\" ${this.config.containerId} sh -c \"${commandWithPwd.replace(/\"/g, '\\\\\"')}\"`;\r\n }\r\n\r\n /**\r\n * Resolve a path to an absolute path\r\n */\r\n private resolveAbsolutePath(path: string): string {\r\n if (path.startsWith('/')) {\r\n return path;\r\n }\r\n\r\n if (path.startsWith('~')) {\r\n return path;\r\n }\r\n\r\n return `${this.currentWorkingDirectory}/${path}`;\r\n }\r\n\r\n /**\r\n * Parse directory listing output\r\n */\r\n private parseDirectoryListing(output: string): DirectoryEntry[] {\r\n const entries: DirectoryEntry[] = [];\r\n const lines = output.split('\\n').filter(line => line.trim());\r\n\r\n for (const line of lines) {\r\n // Skip total line and current/parent directory\r\n if (line.startsWith('total') || line.endsWith(' .') || line.endsWith(' ..')) {\r\n continue;\r\n }\r\n\r\n // Parse ls -la output: permissions links owner group size date time name\r\n const match = line.match(/^([drwx-]+)\\s+\\d+\\s+\\S+\\s+\\S+\\s+(\\d+)\\s+\\S+\\s+\\S+\\s+\\S+\\s+(.+)$/);\r\n if (match) {\r\n const permissions = match[1];\r\n const size = parseInt(match[2], 10);\r\n const name = match[3];\r\n\r\n entries.push({\r\n name,\r\n type: permissions.startsWith('d') ? 'directory' : 'file',\r\n size,\r\n permissions,\r\n });\r\n }\r\n }\r\n\r\n return entries;\r\n }\r\n\r\n /**\r\n * Parse search results from grep output\r\n */\r\n private parseSearchResults(output: string): SearchResult[] {\r\n const results: SearchResult[] = [];\r\n const lines = output.split('\\n').filter(line => line.trim());\r\n\r\n for (const line of lines) {\r\n const match = line.match(/^(.+?):(\\d+):(.+)$/);\r\n if (match) {\r\n results.push({\r\n file: match[1],\r\n line: parseInt(match[2], 10),\r\n content: match[3],\r\n });\r\n }\r\n }\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Execute a promise with a timeout\r\n */\r\n private async executeWithTimeout<T>(\r\n operation: () => Promise<T>,\r\n timeoutMs: number,\r\n operationName: string\r\n ): Promise<T> {\r\n return Promise.race([\r\n operation(),\r\n new Promise<T>((_, reject) =>\r\n setTimeout(\r\n () => reject(new Error(`${operationName} timed out after ${timeoutMs}ms`)),\r\n timeoutMs\r\n )\r\n ),\r\n ]);\r\n }\r\n\r\n /**\r\n * Execute a command on the host (local or remote)\r\n */\r\n private async executeHostCommand(command: string): Promise<{ stdout: string; stderr: string }> {\r\n if (this.parentContext) {\r\n // Remote execution via parent context\r\n try {\r\n const result = await this.parentContext.handler.executeCommand(command);\r\n return {\r\n stdout: result.stdout,\r\n stderr: result.stderr,\r\n };\r\n } catch (error: any) {\r\n throw {\r\n message: error.message,\r\n code: error.exitCode || 1,\r\n stderr: error.stderr || error.message\r\n };\r\n }\r\n }\r\n\r\n // Local execution via child_process\r\n return execAsync(command);\r\n }\r\n\r\n /**\r\n * Create a new instance of this handler\r\n */\r\n createNew(): SubshellHandler {\r\n return new DockerHandler();\r\n }\r\n}\r\n"],"mappings":"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","names":[]}