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,283 +1,320 @@
1
- import { createMCPToolWrappers } from './mcp-tool-wrapper.js';
2
- import { logError, logWarning } from '../utils/logger.js';
3
- export class MCPCommandHandler {
4
- mcpConfigManager;
5
- mcpServerManager;
6
- toolRegistry;
7
- onShowMCPAddScreen;
8
- onShowMCPRemoveScreen;
9
- onShowMCPEnableScreen;
10
- onShowMCPDisableScreen;
11
- onShowMCPListScreen;
12
- constructor(mcpConfigManager, mcpServerManager, toolRegistry) {
13
- this.mcpConfigManager = mcpConfigManager;
14
- this.mcpServerManager = mcpServerManager;
15
- this.toolRegistry = toolRegistry;
16
- }
17
- // Callback setters for UI screens
18
- setOnShowMCPAddScreen(callback) {
19
- this.onShowMCPAddScreen = callback;
1
+ import { createMCPToolWrappers } from "./mcp-tool-wrapper.js";
2
+ import { logError, logWarning } from "../utils/logger.js";
3
+ class MCPCommandHandler {
4
+ constructor(mcpConfigManager, mcpServerManager, toolRegistry) {
5
+ this.mcpConfigManager = mcpConfigManager;
6
+ this.mcpServerManager = mcpServerManager;
7
+ this.toolRegistry = toolRegistry;
8
+ }
9
+ onShowMCPAddScreen;
10
+ onShowMCPRemoveScreen;
11
+ onShowMCPEnableScreen;
12
+ onShowMCPDisableScreen;
13
+ onShowMCPListScreen;
14
+ // Callback setters for UI screens
15
+ setOnShowMCPAddScreen(callback) {
16
+ this.onShowMCPAddScreen = callback;
17
+ }
18
+ setOnShowMCPRemoveScreen(callback) {
19
+ this.onShowMCPRemoveScreen = callback;
20
+ }
21
+ setOnShowMCPEnableScreen(callback) {
22
+ this.onShowMCPEnableScreen = callback;
23
+ }
24
+ setOnShowMCPDisableScreen(callback) {
25
+ this.onShowMCPDisableScreen = callback;
26
+ }
27
+ setOnShowMCPListScreen(callback) {
28
+ this.onShowMCPListScreen = callback;
29
+ }
30
+ async initializeMCP() {
31
+ try {
32
+ const servers = this.mcpConfigManager.getServers();
33
+ for (const serverConfig of servers) {
34
+ try {
35
+ await this.mcpServerManager.connect(serverConfig);
36
+ const tools = await this.mcpServerManager.listTools(serverConfig.name);
37
+ const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
38
+ for (const tool of wrappedTools) {
39
+ this.toolRegistry.register(tool);
40
+ }
41
+ } catch (error) {
42
+ logWarning(`MCP server ${serverConfig.name} failed to connect during init`);
43
+ }
44
+ }
45
+ } catch (error) {
46
+ logError("Failed to initialize MCP", error instanceof Error ? error : new Error(error?.message || "Unknown error"));
20
47
  }
21
- setOnShowMCPRemoveScreen(callback) {
22
- this.onShowMCPRemoveScreen = callback;
48
+ }
49
+ async handleCommand(args) {
50
+ const subcommand = args[0]?.toLowerCase();
51
+ if (!subcommand) {
52
+ return "## MCP (Model Context Protocol) Server Management\n\nAvailable subcommands:\n\n/mcp list - List configured MCP servers and tools\n/mcp refresh - Restart all MCP servers\n/mcp add - Add a new MCP server\n/mcp remove - Remove an MCP server\n/mcp enable - Enable a disabled server\n/mcp disable - Disable an enabled server\n\nType any subcommand for more details.";
23
53
  }
24
- setOnShowMCPEnableScreen(callback) {
25
- this.onShowMCPEnableScreen = callback;
54
+ switch (subcommand) {
55
+ case "list":
56
+ return this.handleList();
57
+ case "refresh":
58
+ return await this.handleRefresh();
59
+ case "add":
60
+ if (this.onShowMCPAddScreen) {
61
+ this.onShowMCPAddScreen();
62
+ return "";
63
+ }
64
+ return "\u274C MCP add screen not available. Please restart the CLI.";
65
+ case "remove":
66
+ return this.handleRemove();
67
+ case "enable":
68
+ return this.handleEnable();
69
+ case "disable":
70
+ return this.handleDisable();
71
+ default:
72
+ return `\u274C Unknown MCP subcommand: ${subcommand}
73
+ Type /mcp for help.`;
26
74
  }
27
- setOnShowMCPDisableScreen(callback) {
28
- this.onShowMCPDisableScreen = callback;
75
+ }
76
+ handleList() {
77
+ const servers = this.mcpConfigManager.getAllServers();
78
+ if (servers.length === 0) {
79
+ return `## No MCP Servers Configured
80
+
81
+ Configuration file: \`${this.mcpConfigManager.getConfigPath()}\`
82
+
83
+ Use \`/mcp add\` to add your first MCP server.`;
29
84
  }
30
- setOnShowMCPListScreen(callback) {
31
- this.onShowMCPListScreen = callback;
85
+ const listData = servers.map((serverConfig) => {
86
+ const statuses = this.mcpServerManager.getStatus(serverConfig.name);
87
+ const status = statuses[0];
88
+ const tools = status?.tools || [];
89
+ return {
90
+ name: serverConfig.name,
91
+ enabled: serverConfig.enabled !== false,
92
+ status: serverConfig.enabled === false ? "disconnected" : status?.status || "disconnected",
93
+ tools: tools.map((t) => ({ name: t.name }))
94
+ };
95
+ });
96
+ if (this.onShowMCPListScreen) {
97
+ this.onShowMCPListScreen(listData);
98
+ return "";
32
99
  }
33
- async initializeMCP() {
34
- try {
35
- // Auto-connect to configured servers
36
- const servers = this.mcpConfigManager.getServers();
37
- for (const serverConfig of servers) {
38
- try {
39
- await this.mcpServerManager.connect(serverConfig);
40
- // Register MCP tools to tool registry
41
- const tools = await this.mcpServerManager.listTools(serverConfig.name);
42
- const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
43
- for (const tool of wrappedTools) {
44
- this.toolRegistry.register(tool);
45
- }
46
- }
47
- catch (error) {
48
- // Silent fail - user can check status with /mcp status
49
- logWarning(`MCP server ${serverConfig.name} failed to connect during init`);
50
- }
51
- }
52
- }
53
- catch (error) {
54
- logError('Failed to initialize MCP', error instanceof Error ? error : new Error(error?.message || 'Unknown error'));
100
+ let output = "## MCP Servers and Tools\n\n";
101
+ for (const serverConfig of servers) {
102
+ const statuses = this.mcpServerManager.getStatus(serverConfig.name);
103
+ const status = statuses[0];
104
+ const tools = status?.tools || [];
105
+ const statusIcon = serverConfig.enabled === false ? "\u23F8\uFE0F" : status?.status === "connected" ? "\u2705" : status?.status === "error" ? "\u274C" : "\u26A0\uFE0F";
106
+ const enabledLabel = serverConfig.enabled === false ? " (disabled)" : "";
107
+ output += `### ${statusIcon} ${serverConfig.name}${enabledLabel}
108
+
109
+ `;
110
+ output += `- **Command**: \`${serverConfig.command}\`
111
+ `;
112
+ if (serverConfig.args && serverConfig.args.length > 0) {
113
+ output += `- **Args**: \`${serverConfig.args.join(" ")}\`
114
+ `;
115
+ }
116
+ output += `- **Status**: ${serverConfig.enabled === false ? "disabled" : status?.status || "unknown"}
117
+ `;
118
+ output += `- **Tools**: ${tools.length}
119
+
120
+ `;
121
+ if (tools.length > 0) {
122
+ for (const tool of tools) {
123
+ output += ` - **${tool.name}**`;
124
+ if (tool.description) {
125
+ output += `: ${tool.description}`;
126
+ }
127
+ output += "\n";
55
128
  }
129
+ output += "\n";
130
+ }
56
131
  }
57
- async handleCommand(args) {
58
- const subcommand = args[0]?.toLowerCase();
59
- if (!subcommand) {
60
- return '## MCP (Model Context Protocol) Server Management\n\n' +
61
- 'Available subcommands:\n\n' +
62
- '/mcp list - List configured MCP servers and tools\n' +
63
- '/mcp refresh - Restart all MCP servers\n' +
64
- '/mcp add - Add a new MCP server\n' +
65
- '/mcp remove - Remove an MCP server\n' +
66
- '/mcp enable - Enable a disabled server\n' +
67
- '/mcp disable - Disable an enabled server\n\n' +
68
- 'Type any subcommand for more details.';
69
- }
70
- switch (subcommand) {
71
- case 'list':
72
- return this.handleList();
73
- case 'refresh':
74
- return await this.handleRefresh();
75
- case 'add':
76
- if (this.onShowMCPAddScreen) {
77
- this.onShowMCPAddScreen();
78
- return ''; // UI will handle display
79
- }
80
- return '❌ MCP add screen not available. Please restart the CLI.';
81
- case 'remove':
82
- return this.handleRemove();
83
- case 'enable':
84
- return this.handleEnable();
85
- case 'disable':
86
- return this.handleDisable();
87
- default:
88
- return `❌ Unknown MCP subcommand: ${subcommand}\nType /mcp for help.`;
89
- }
132
+ return output;
133
+ }
134
+ handleRemove() {
135
+ const servers = this.mcpConfigManager.getAllServers();
136
+ if (servers.length === 0) {
137
+ return "\u274C No MCP servers to remove.\n\nUse `/mcp add` to add servers first.";
90
138
  }
91
- handleList() {
92
- const servers = this.mcpConfigManager.getAllServers();
93
- if (servers.length === 0) {
94
- return '## No MCP Servers Configured\n\n' +
95
- `Configuration file: \`${this.mcpConfigManager.getConfigPath()}\`\n\n` +
96
- 'Use `/mcp add` to add your first MCP server.';
97
- }
98
- // Prepare data for the list screen
99
- const listData = servers.map(serverConfig => {
100
- const statuses = this.mcpServerManager.getStatus(serverConfig.name);
101
- const status = statuses[0];
102
- const tools = status?.tools || [];
103
- return {
104
- name: serverConfig.name,
105
- enabled: serverConfig.enabled !== false,
106
- status: serverConfig.enabled === false ? 'disconnected' : (status?.status || 'disconnected'),
107
- tools: tools.map(t => ({ name: t.name }))
108
- };
109
- });
110
- if (this.onShowMCPListScreen) {
111
- this.onShowMCPListScreen(listData);
112
- return ''; // UI will handle display
113
- }
114
- // Fallback to text output if screen not available
115
- let output = '## MCP Servers and Tools\n\n';
116
- for (const serverConfig of servers) {
117
- const statuses = this.mcpServerManager.getStatus(serverConfig.name);
118
- const status = statuses[0];
119
- const tools = status?.tools || [];
120
- const statusIcon = serverConfig.enabled === false ? '⏸️' :
121
- status?.status === 'connected' ? '✅' :
122
- status?.status === 'error' ? '❌' : '⚠️';
123
- const enabledLabel = serverConfig.enabled === false ? ' (disabled)' : '';
124
- output += `### ${statusIcon} ${serverConfig.name}${enabledLabel}\n\n`;
125
- output += `- **Command**: \`${serverConfig.command}\`\n`;
126
- if (serverConfig.args && serverConfig.args.length > 0) {
127
- output += `- **Args**: \`${serverConfig.args.join(' ')}\`\n`;
128
- }
129
- output += `- **Status**: ${serverConfig.enabled === false ? 'disabled' : (status?.status || 'unknown')}\n`;
130
- output += `- **Tools**: ${tools.length}\n\n`;
131
- if (tools.length > 0) {
132
- for (const tool of tools) {
133
- output += ` - **${tool.name}**`;
134
- if (tool.description) {
135
- output += `: ${tool.description}`;
136
- }
137
- output += '\n';
138
- }
139
- output += '\n';
140
- }
141
- }
142
- return output;
139
+ if (this.onShowMCPRemoveScreen) {
140
+ this.onShowMCPRemoveScreen(servers);
141
+ return "";
143
142
  }
144
- handleRemove() {
145
- const servers = this.mcpConfigManager.getAllServers();
146
- if (servers.length === 0) {
147
- return '❌ No MCP servers to remove.\n\nUse `/mcp add` to add servers first.';
148
- }
149
- if (this.onShowMCPRemoveScreen) {
150
- this.onShowMCPRemoveScreen(servers);
151
- return ''; // UI will handle display
152
- }
153
- return '❌ MCP remove screen not available. Please restart the CLI.';
143
+ return "\u274C MCP remove screen not available. Please restart the CLI.";
144
+ }
145
+ handleEnable() {
146
+ const disabledServers = this.mcpConfigManager.getAllServers().filter((s) => s.enabled === false);
147
+ if (disabledServers.length === 0) {
148
+ return "\u2705 All MCP servers are already enabled.\n\nUse `/mcp list` to see all servers.";
154
149
  }
155
- handleEnable() {
156
- const disabledServers = this.mcpConfigManager.getAllServers().filter(s => s.enabled === false);
157
- if (disabledServers.length === 0) {
158
- return '✅ All MCP servers are already enabled.\n\nUse `/mcp list` to see all servers.';
159
- }
160
- if (this.onShowMCPEnableScreen) {
161
- this.onShowMCPEnableScreen(disabledServers);
162
- return ''; // UI will handle display
163
- }
164
- return '❌ MCP enable screen not available. Please restart the CLI.';
150
+ if (this.onShowMCPEnableScreen) {
151
+ this.onShowMCPEnableScreen(disabledServers);
152
+ return "";
165
153
  }
166
- handleDisable() {
167
- const enabledServers = this.mcpConfigManager.getAllServers().filter(s => s.enabled !== false);
168
- if (enabledServers.length === 0) {
169
- return '⚠️ All MCP servers are already disabled.\n\nUse `/mcp list` to see all servers.';
170
- }
171
- if (this.onShowMCPDisableScreen) {
172
- this.onShowMCPDisableScreen(enabledServers);
173
- return ''; // UI will handle display
174
- }
175
- return '❌ MCP disable screen not available. Please restart the CLI.';
154
+ return "\u274C MCP enable screen not available. Please restart the CLI.";
155
+ }
156
+ handleDisable() {
157
+ const enabledServers = this.mcpConfigManager.getAllServers().filter((s) => s.enabled !== false);
158
+ if (enabledServers.length === 0) {
159
+ return "\u26A0\uFE0F All MCP servers are already disabled.\n\nUse `/mcp list` to see all servers.";
176
160
  }
177
- async handleRefresh() {
161
+ if (this.onShowMCPDisableScreen) {
162
+ this.onShowMCPDisableScreen(enabledServers);
163
+ return "";
164
+ }
165
+ return "\u274C MCP disable screen not available. Please restart the CLI.";
166
+ }
167
+ async handleRefresh() {
168
+ try {
169
+ const config = this.mcpConfigManager.reload();
170
+ const servers = config.servers.filter((s) => s.enabled !== false);
171
+ if (servers.length === 0) {
172
+ return "\u26A0\uFE0F No enabled MCP servers in configuration.";
173
+ }
174
+ await this.mcpServerManager.refresh(servers);
175
+ for (const serverConfig of servers) {
178
176
  try {
179
- // Reload config from disk (updates cache)
180
- const config = this.mcpConfigManager.reload();
181
- const servers = config.servers.filter(s => s.enabled !== false);
182
- if (servers.length === 0) {
183
- return '⚠️ No enabled MCP servers in configuration.';
184
- }
185
- // Refresh servers
186
- await this.mcpServerManager.refresh(servers);
187
- // Re-register tools
188
- for (const serverConfig of servers) {
189
- try {
190
- if (this.mcpServerManager.isConnected(serverConfig.name)) {
191
- const tools = await this.mcpServerManager.listTools(serverConfig.name);
192
- const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
193
- for (const tool of wrappedTools) {
194
- this.toolRegistry.register(tool);
195
- }
196
- }
197
- }
198
- catch (error) {
199
- // Continue with other servers
200
- }
201
- }
202
- // Get all servers (including disabled ones) for comprehensive status
203
- const allServers = this.mcpConfigManager.getAllServers();
204
- const statuses = this.mcpServerManager.getStatus();
205
- // Create a map for quick status lookup
206
- const statusMap = new Map(statuses.map(s => [s.name, s]));
207
- // Categorize servers
208
- const connectedServers = [];
209
- const disabledServers = [];
210
- const errorServers = [];
211
- for (const server of allServers) {
212
- if (server.enabled === false) {
213
- disabledServers.push(server.name);
214
- }
215
- else {
216
- const status = statusMap.get(server.name);
217
- if (status?.status === 'connected') {
218
- connectedServers.push(server.name);
219
- }
220
- else if (status?.status === 'error') {
221
- errorServers.push(server.name);
222
- }
223
- }
224
- }
225
- let output = '✓ MCP servers refreshed!\n\n';
226
- // Connected & Enabled section
227
- if (connectedServers.length > 0) {
228
- output += `**Connected & Enabled** (${connectedServers.length}):\n`;
229
- for (const name of connectedServers) {
230
- output += ` - ${name}\n`;
231
- }
232
- output += '\n';
177
+ if (this.mcpServerManager.isConnected(serverConfig.name)) {
178
+ const tools = await this.mcpServerManager.listTools(serverConfig.name);
179
+ const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
180
+ for (const tool of wrappedTools) {
181
+ this.toolRegistry.register(tool);
233
182
  }
234
- // Disabled section
235
- if (disabledServers.length > 0) {
236
- output += `**Disabled** (${disabledServers.length}):\n`;
237
- for (const name of disabledServers) {
238
- output += ` - ${name}\n`;
239
- }
240
- output += '\n';
241
- }
242
- // Errors section
243
- if (errorServers.length > 0) {
244
- output += `**Errors** (${errorServers.length}):\n`;
245
- for (const name of errorServers) {
246
- output += ` - ${name}\n`;
247
- }
248
- output += '\n';
249
- }
250
- output += `Use \`/mcp list\` for details.`;
251
- return output;
183
+ }
184
+ } catch (error) {
252
185
  }
253
- catch (error) {
254
- return `❌ Failed to refresh MCP servers: ${error.message}`;
186
+ }
187
+ const allServers = this.mcpConfigManager.getAllServers();
188
+ const statuses = this.mcpServerManager.getStatus();
189
+ const statusMap = new Map(statuses.map((s) => [s.name, s]));
190
+ const connectedServers = [];
191
+ const disabledServers = [];
192
+ const errorServers = [];
193
+ for (const server of allServers) {
194
+ if (server.enabled === false) {
195
+ disabledServers.push(server.name);
196
+ } else {
197
+ const status = statusMap.get(server.name);
198
+ if (status?.status === "connected") {
199
+ connectedServers.push(server.name);
200
+ } else if (status?.status === "error") {
201
+ errorServers.push(server.name);
202
+ }
255
203
  }
256
- }
257
- // Server management methods (called by CLI adapter after UI interaction)
258
- addServer(config) {
259
- try {
260
- this.mcpConfigManager.addServer(config);
261
- return { success: true };
204
+ }
205
+ let output = "\u2713 MCP servers refreshed!\n\n";
206
+ if (connectedServers.length > 0) {
207
+ output += `**Connected & Enabled** (${connectedServers.length}):
208
+ `;
209
+ for (const name of connectedServers) {
210
+ output += ` - ${name}
211
+ `;
262
212
  }
263
- catch (error) {
264
- return { success: false, error: error.message };
213
+ output += "\n";
214
+ }
215
+ if (disabledServers.length > 0) {
216
+ output += `**Disabled** (${disabledServers.length}):
217
+ `;
218
+ for (const name of disabledServers) {
219
+ output += ` - ${name}
220
+ `;
265
221
  }
222
+ output += "\n";
223
+ }
224
+ if (errorServers.length > 0) {
225
+ output += `**Errors** (${errorServers.length}):
226
+ `;
227
+ for (const name of errorServers) {
228
+ output += ` - ${name}
229
+ `;
230
+ }
231
+ output += "\n";
232
+ }
233
+ output += `Use \`/mcp list\` for details.`;
234
+ return output;
235
+ } catch (error) {
236
+ return `\u274C Failed to refresh MCP servers: ${error.message}`;
266
237
  }
267
- removeServer(name) {
268
- this.mcpConfigManager.removeServer(name);
269
- }
270
- enableServer(name) {
271
- this.mcpConfigManager.enableServer(name);
272
- }
273
- disableServer(name) {
274
- this.mcpConfigManager.disableServer(name);
275
- }
276
- validateServerConfig(jsonString) {
277
- return this.mcpConfigManager.validateServerConfigJSON(jsonString);
238
+ }
239
+ /**
240
+ * Programmatically add an MCP server, connect to it, register its tools, and return status.
241
+ * Used by the add_mcp AI tool for automatic MCP provisioning.
242
+ */
243
+ async addAndConnect(config, timeoutMs = 6e4) {
244
+ const logs = [];
245
+ try {
246
+ logs.push(`[add_mcp] Saving config for server "${config.name}"...`);
247
+ this.mcpConfigManager.addServer(config);
248
+ logs.push(`[add_mcp] Config saved to ${this.mcpConfigManager.getConfigPath()}`);
249
+ logs.push(`[add_mcp] Connecting to MCP server "${config.name}" (command: ${config.command} ${(config.args || []).join(" ")})...`);
250
+ await this.mcpServerManager.connect(config, timeoutMs);
251
+ logs.push(`[add_mcp] Connected successfully.`);
252
+ const mcpTools = await this.mcpServerManager.listTools(config.name);
253
+ logs.push(`[add_mcp] Server "${config.name}" provides ${mcpTools.length} tool(s).`);
254
+ this.toolRegistry.unregisterByPrefix(`mcp_${config.name}_`);
255
+ const wrappedTools = createMCPToolWrappers(config.name, mcpTools, this.mcpServerManager);
256
+ for (const tool of wrappedTools) {
257
+ this.toolRegistry.register(tool);
258
+ logs.push(`[add_mcp] Registered tool: ${tool.schema.name}`);
259
+ }
260
+ const toolNames = mcpTools.map((t) => t.name);
261
+ logs.push(`[add_mcp] All tools registered. Server "${config.name}" is ready.`);
262
+ return {
263
+ success: true,
264
+ serverName: config.name,
265
+ tools: toolNames,
266
+ logs: logs.join("\n")
267
+ };
268
+ } catch (error) {
269
+ logs.push(`[add_mcp] ERROR: ${error.message}`);
270
+ try {
271
+ this.mcpConfigManager.removeServer(config.name);
272
+ logs.push(`[add_mcp] Rolled back config for "${config.name}" due to connection failure.`);
273
+ } catch (rollbackError) {
274
+ logs.push(`[add_mcp] Warning: Could not rollback config: ${rollbackError.message}`);
275
+ }
276
+ return {
277
+ success: false,
278
+ serverName: config.name,
279
+ tools: [],
280
+ error: error.message,
281
+ logs: logs.join("\n")
282
+ };
278
283
  }
279
- getConfigManager() {
280
- return this.mcpConfigManager;
284
+ }
285
+ // Server management methods (called by CLI adapter after UI interaction)
286
+ addServer(config) {
287
+ try {
288
+ this.mcpConfigManager.addServer(config);
289
+ return { success: true };
290
+ } catch (error) {
291
+ return { success: false, error: error.message };
281
292
  }
293
+ }
294
+ removeServer(name) {
295
+ this.mcpConfigManager.removeServer(name);
296
+ }
297
+ enableServer(name) {
298
+ this.mcpConfigManager.enableServer(name);
299
+ }
300
+ disableServer(name) {
301
+ this.mcpConfigManager.disableServer(name);
302
+ }
303
+ validateServerConfig(jsonString) {
304
+ return this.mcpConfigManager.validateServerConfigJSON(jsonString);
305
+ }
306
+ getConfigManager() {
307
+ return this.mcpConfigManager;
308
+ }
309
+ /**
310
+ * Get the names of all currently connected MCP servers.
311
+ */
312
+ getConnectedServerNames() {
313
+ const statuses = this.mcpServerManager.getStatus();
314
+ return statuses.filter((s) => s.status === "connected").map((s) => s.name);
315
+ }
282
316
  }
317
+ export {
318
+ MCPCommandHandler
319
+ };
283
320
  //# sourceMappingURL=mcp-command-handler.js.map