centaurus-cli 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/dist/ai/types.js +0 -1
  2. package/dist/ai/types.js.map +1 -1
  3. package/dist/cli-adapter.js +5047 -5037
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +372 -315
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/build-config.js +11 -42
  8. package/dist/config/build-config.js.map +1 -1
  9. package/dist/config/defaultConfig.js +94 -82
  10. package/dist/config/defaultConfig.js.map +1 -1
  11. package/dist/config/manager.js +144 -160
  12. package/dist/config/manager.js.map +1 -1
  13. package/dist/config/mcp-config-manager.js +411 -364
  14. package/dist/config/mcp-config-manager.js.map +1 -1
  15. package/dist/config/models.js +118 -185
  16. package/dist/config/models.js.map +1 -1
  17. package/dist/config/slash-commands.js +186 -184
  18. package/dist/config/slash-commands.js.map +1 -1
  19. package/dist/config/types.js +33 -26
  20. package/dist/config/types.js.map +1 -1
  21. package/dist/context/command-detector.js +63 -67
  22. package/dist/context/command-detector.js.map +1 -1
  23. package/dist/context/context-manager.js +533 -518
  24. package/dist/context/context-manager.js.map +1 -1
  25. package/dist/context/handlers/docker-handler.js +518 -576
  26. package/dist/context/handlers/docker-handler.js.map +1 -1
  27. package/dist/context/handlers/ssh-handler.js +1050 -1109
  28. package/dist/context/handlers/ssh-handler.js.map +1 -1
  29. package/dist/context/handlers/wsl-handler.js +558 -630
  30. package/dist/context/handlers/wsl-handler.js.map +1 -1
  31. package/dist/context/index.js +42 -6
  32. package/dist/context/index.js.map +1 -1
  33. package/dist/context/subshell-handler.js +0 -4
  34. package/dist/context/subshell-handler.js.map +1 -1
  35. package/dist/context/types.js +20 -31
  36. package/dist/context/types.js.map +1 -1
  37. package/dist/hooks/useConnectivity.js +13 -10
  38. package/dist/hooks/useConnectivity.js.map +1 -1
  39. package/dist/hooks/useTerminalDimensions.js +67 -79
  40. package/dist/hooks/useTerminalDimensions.js.map +1 -1
  41. package/dist/index.js +228 -251
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp/mcp-command-handler.js +297 -260
  44. package/dist/mcp/mcp-command-handler.js.map +1 -1
  45. package/dist/mcp/mcp-server-manager.js +139 -155
  46. package/dist/mcp/mcp-server-manager.js.map +1 -1
  47. package/dist/mcp/mcp-tool-wrapper.js +74 -94
  48. package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
  49. package/dist/services/ai-autocomplete-agent.js +169 -181
  50. package/dist/services/ai-autocomplete-agent.js.map +1 -1
  51. package/dist/services/ai-context-injector.js +180 -93
  52. package/dist/services/ai-context-injector.js.map +1 -1
  53. package/dist/services/ai-service-client.js +513 -456
  54. package/dist/services/ai-service-client.js.map +1 -1
  55. package/dist/services/api-client.js +443 -441
  56. package/dist/services/api-client.js.map +1 -1
  57. package/dist/services/auth-handler.js +162 -198
  58. package/dist/services/auth-handler.js.map +1 -1
  59. package/dist/services/background-task-manager.js +258 -282
  60. package/dist/services/background-task-manager.js.map +1 -1
  61. package/dist/services/checkpoint-manager.js +1513 -973
  62. package/dist/services/checkpoint-manager.js.map +1 -1
  63. package/dist/services/clipboard-service.js +151 -200
  64. package/dist/services/clipboard-service.js.map +1 -1
  65. package/dist/services/connectivity-manager.js +63 -65
  66. package/dist/services/connectivity-manager.js.map +1 -1
  67. package/dist/services/conversation-manager.js +118 -121
  68. package/dist/services/conversation-manager.js.map +1 -1
  69. package/dist/services/environment-context-injector.js +160 -187
  70. package/dist/services/environment-context-injector.js.map +1 -1
  71. package/dist/services/fast-context-agent.js +203 -243
  72. package/dist/services/fast-context-agent.js.map +1 -1
  73. package/dist/services/input-detection-agent.js +190 -202
  74. package/dist/services/input-detection-agent.js.map +1 -1
  75. package/dist/services/input-requirement-detector.js +155 -189
  76. package/dist/services/input-requirement-detector.js.map +1 -1
  77. package/dist/services/local-chat-storage.js +342 -365
  78. package/dist/services/local-chat-storage.js.map +1 -1
  79. package/dist/services/monitored-shell-manager.js +225 -233
  80. package/dist/services/monitored-shell-manager.js.map +1 -1
  81. package/dist/services/ollama-service.js +293 -310
  82. package/dist/services/ollama-service.js.map +1 -1
  83. package/dist/services/rules-storage.js +142 -0
  84. package/dist/services/rules-storage.js.map +1 -0
  85. package/dist/services/session-quota-manager.js +219 -235
  86. package/dist/services/session-quota-manager.js.map +1 -1
  87. package/dist/services/shell-input-agent.js +299 -334
  88. package/dist/services/shell-input-agent.js.map +1 -1
  89. package/dist/services/sub-agent-manager.js +459 -501
  90. package/dist/services/sub-agent-manager.js.map +1 -1
  91. package/dist/services/warpify-detector.js +133 -183
  92. package/dist/services/warpify-detector.js.map +1 -1
  93. package/dist/services/workflow-storage.js +202 -217
  94. package/dist/services/workflow-storage.js.map +1 -1
  95. package/dist/test-ssh-handler.js +148 -193
  96. package/dist/test-ssh-handler.js.map +1 -1
  97. package/dist/tools/add-mcp.js +161 -0
  98. package/dist/tools/add-mcp.js.map +1 -0
  99. package/dist/tools/background-command.js +240 -273
  100. package/dist/tools/background-command.js.map +1 -1
  101. package/dist/tools/command.js +447 -440
  102. package/dist/tools/command.js.map +1 -1
  103. package/dist/tools/create-image.js +172 -202
  104. package/dist/tools/create-image.js.map +1 -1
  105. package/dist/tools/enter-remote-session.js +169 -215
  106. package/dist/tools/enter-remote-session.js.map +1 -1
  107. package/dist/tools/fast-context.js +60 -67
  108. package/dist/tools/fast-context.js.map +1 -1
  109. package/dist/tools/file-ops.js +605 -537
  110. package/dist/tools/file-ops.js.map +1 -1
  111. package/dist/tools/find-files.js +262 -303
  112. package/dist/tools/find-files.js.map +1 -1
  113. package/dist/tools/get-diff.js +423 -400
  114. package/dist/tools/get-diff.js.map +1 -1
  115. package/dist/tools/grep-search.js +966 -948
  116. package/dist/tools/grep-search.js.map +1 -1
  117. package/dist/tools/inspect-symbol.js +308 -323
  118. package/dist/tools/inspect-symbol.js.map +1 -1
  119. package/dist/tools/plan-mode.js +459 -503
  120. package/dist/tools/plan-mode.js.map +1 -1
  121. package/dist/tools/read-binary-file.js +160 -190
  122. package/dist/tools/read-binary-file.js.map +1 -1
  123. package/dist/tools/registry.js +100 -84
  124. package/dist/tools/registry.js.map +1 -1
  125. package/dist/tools/reproduce_issue.js +170 -151
  126. package/dist/tools/reproduce_issue.js.map +1 -1
  127. package/dist/tools/sub-agent.js +223 -228
  128. package/dist/tools/sub-agent.js.map +1 -1
  129. package/dist/tools/task-complete.js +28 -27
  130. package/dist/tools/task-complete.js.map +1 -1
  131. package/dist/tools/types.js +0 -1
  132. package/dist/tools/types.js.map +1 -1
  133. package/dist/tools/validation.js +96 -118
  134. package/dist/tools/validation.js.map +1 -1
  135. package/dist/tools/web-search.js +194 -194
  136. package/dist/tools/web-search.js.map +1 -1
  137. package/dist/tools/workflow-tool.js +77 -82
  138. package/dist/tools/workflow-tool.js.map +1 -1
  139. package/dist/types/index.js +0 -1
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/rule.js +1 -0
  142. package/dist/types/rule.js.map +1 -0
  143. package/dist/types/workflow.js +0 -7
  144. package/dist/types/workflow.js.map +1 -1
  145. package/dist/ui/components/AgentTimer.js +24 -25
  146. package/dist/ui/components/AgentTimer.js.map +1 -1
  147. package/dist/ui/components/App.js +3266 -3249
  148. package/dist/ui/components/App.js.map +1 -1
  149. package/dist/ui/components/AuthScreen.js +22 -34
  150. package/dist/ui/components/AuthScreen.js.map +1 -1
  151. package/dist/ui/components/AuthWelcomeScreen.js +30 -24
  152. package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
  153. package/dist/ui/components/Breadcrumbs.js +53 -82
  154. package/dist/ui/components/Breadcrumbs.js.map +1 -1
  155. package/dist/ui/components/CircularSelectInput.js +59 -67
  156. package/dist/ui/components/CircularSelectInput.js.map +1 -1
  157. package/dist/ui/components/ClipboardFileAutocomplete.js +78 -39
  158. package/dist/ui/components/ClipboardFileAutocomplete.js.map +1 -1
  159. package/dist/ui/components/CodeBlock.js +24 -42
  160. package/dist/ui/components/CodeBlock.js.map +1 -1
  161. package/dist/ui/components/ConfigViewer.js +18 -25
  162. package/dist/ui/components/ConfigViewer.js.map +1 -1
  163. package/dist/ui/components/ConfirmPrompt.js +49 -71
  164. package/dist/ui/components/ConfirmPrompt.js.map +1 -1
  165. package/dist/ui/components/ConnectionStatusMessage.js +32 -83
  166. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  167. package/dist/ui/components/ContextWindowIndicator.js +34 -49
  168. package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
  169. package/dist/ui/components/DetailedPlanReviewScreen.js +104 -106
  170. package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -1
  171. package/dist/ui/components/DiffViewer.js +68 -121
  172. package/dist/ui/components/DiffViewer.js.map +1 -1
  173. package/dist/ui/components/ErrorBoundary.js +40 -48
  174. package/dist/ui/components/ErrorBoundary.js.map +1 -1
  175. package/dist/ui/components/FileCreationPreview.js +29 -60
  176. package/dist/ui/components/FileCreationPreview.js.map +1 -1
  177. package/dist/ui/components/FileOperation.js +34 -29
  178. package/dist/ui/components/FileOperation.js.map +1 -1
  179. package/dist/ui/components/FileTagAutocomplete.js +55 -25
  180. package/dist/ui/components/FileTagAutocomplete.js.map +1 -1
  181. package/dist/ui/components/FontRecommendation.js.map +1 -1
  182. package/dist/ui/components/GitDiffBreadcrumb.js +29 -0
  183. package/dist/ui/components/GitDiffBreadcrumb.js.map +1 -0
  184. package/dist/ui/components/InputBox.js +1620 -2150
  185. package/dist/ui/components/InputBox.js.map +1 -1
  186. package/dist/ui/components/InteractiveShell.js +234 -352
  187. package/dist/ui/components/InteractiveShell.js.map +1 -1
  188. package/dist/ui/components/KeyboardHelp.js +34 -35
  189. package/dist/ui/components/KeyboardHelp.js.map +1 -1
  190. package/dist/ui/components/LoadingIndicator.js +22 -25
  191. package/dist/ui/components/LoadingIndicator.js.map +1 -1
  192. package/dist/ui/components/MCPAddScreen.js +40 -51
  193. package/dist/ui/components/MCPAddScreen.js.map +1 -1
  194. package/dist/ui/components/MCPListScreen.js +40 -48
  195. package/dist/ui/components/MCPListScreen.js.map +1 -1
  196. package/dist/ui/components/MCPServerListScreen.js +49 -56
  197. package/dist/ui/components/MCPServerListScreen.js.map +1 -1
  198. package/dist/ui/components/MarkdownRenderer.js +69 -96
  199. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  200. package/dist/ui/components/MessageBox.js +66 -48
  201. package/dist/ui/components/MessageBox.js.map +1 -1
  202. package/dist/ui/components/MessageDisplay.js +150 -142
  203. package/dist/ui/components/MessageDisplay.js.map +1 -1
  204. package/dist/ui/components/MonitorModeAIPanel.js +46 -65
  205. package/dist/ui/components/MonitorModeAIPanel.js.map +1 -1
  206. package/dist/ui/components/MultiLineInput.js +243 -277
  207. package/dist/ui/components/MultiLineInput.js.map +1 -1
  208. package/dist/ui/components/PasswordPrompt.js +37 -18
  209. package/dist/ui/components/PasswordPrompt.js.map +1 -1
  210. package/dist/ui/components/PlanAcceptedMessage.js +27 -38
  211. package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
  212. package/dist/ui/components/PlanReviewScreen.js +46 -50
  213. package/dist/ui/components/PlanReviewScreen.js.map +1 -1
  214. package/dist/ui/components/RulesEditorScreen.js +81 -0
  215. package/dist/ui/components/RulesEditorScreen.js.map +1 -0
  216. package/dist/ui/components/SelectPrompt.js +19 -8
  217. package/dist/ui/components/SelectPrompt.js.map +1 -1
  218. package/dist/ui/components/ShimmerText.js +44 -0
  219. package/dist/ui/components/ShimmerText.js.map +1 -0
  220. package/dist/ui/components/SlashCommandAutocomplete.js +49 -22
  221. package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
  222. package/dist/ui/components/StatusBar.js +56 -87
  223. package/dist/ui/components/StatusBar.js.map +1 -1
  224. package/dist/ui/components/StreamingMessageDisplay.js +116 -99
  225. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  226. package/dist/ui/components/TaskCompletedMessage.js +28 -23
  227. package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
  228. package/dist/ui/components/TaskProgressIndicator.js +44 -70
  229. package/dist/ui/components/TaskProgressIndicator.js.map +1 -1
  230. package/dist/ui/components/ThinkingDisplay.js +44 -41
  231. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  232. package/dist/ui/components/ToolExecutionMessage.js +772 -1326
  233. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  234. package/dist/ui/components/ToolExecutionStatus.js +53 -84
  235. package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
  236. package/dist/ui/components/ToolResult.js +22 -15
  237. package/dist/ui/components/ToolResult.js.map +1 -1
  238. package/dist/ui/components/VersionUpdatePrompt.js +88 -120
  239. package/dist/ui/components/VersionUpdatePrompt.js.map +1 -1
  240. package/dist/ui/components/WelcomeBanner.js +176 -26
  241. package/dist/ui/components/WelcomeBanner.js.map +1 -1
  242. package/dist/ui/components/WorkflowCreatorScreen.js +94 -161
  243. package/dist/ui/components/WorkflowCreatorScreen.js.map +1 -1
  244. package/dist/utils/ansi-encoder.js +30 -61
  245. package/dist/utils/ansi-encoder.js.map +1 -1
  246. package/dist/utils/chat-formatter.js +327 -305
  247. package/dist/utils/chat-formatter.js.map +1 -1
  248. package/dist/utils/command-history.js +152 -174
  249. package/dist/utils/command-history.js.map +1 -1
  250. package/dist/utils/context-sanitizer.js +49 -112
  251. package/dist/utils/context-sanitizer.js.map +1 -1
  252. package/dist/utils/conversation-logger.js +292 -324
  253. package/dist/utils/conversation-logger.js.map +1 -1
  254. package/dist/utils/custom-commands-manager.js +126 -131
  255. package/dist/utils/custom-commands-manager.js.map +1 -1
  256. package/dist/utils/editor-utils.js +732 -837
  257. package/dist/utils/editor-utils.js.map +1 -1
  258. package/dist/utils/file.js +174 -213
  259. package/dist/utils/file.js.map +1 -1
  260. package/dist/utils/git-stats.js +169 -0
  261. package/dist/utils/git-stats.js.map +1 -0
  262. package/dist/utils/input-classifier.js +960 -482
  263. package/dist/utils/input-classifier.js.map +1 -1
  264. package/dist/utils/logger.js +48 -73
  265. package/dist/utils/logger.js.map +1 -1
  266. package/dist/utils/markdown-parser.js +277 -310
  267. package/dist/utils/markdown-parser.js.map +1 -1
  268. package/dist/utils/rule-reference-resolver.js +54 -0
  269. package/dist/utils/rule-reference-resolver.js.map +1 -0
  270. package/dist/utils/shell.js +144 -156
  271. package/dist/utils/shell.js.map +1 -1
  272. package/dist/utils/state.js +23 -22
  273. package/dist/utils/state.js.map +1 -1
  274. package/dist/utils/syntax-checker.js +279 -327
  275. package/dist/utils/syntax-checker.js.map +1 -1
  276. package/dist/utils/terminal-output.js +199 -302
  277. package/dist/utils/terminal-output.js.map +1 -1
  278. package/dist/utils/text-clipboard.js +47 -70
  279. package/dist/utils/text-clipboard.js.map +1 -1
  280. package/dist/utils/unicode-sanitizer.js +134 -197
  281. package/dist/utils/unicode-sanitizer.js.map +1 -1
  282. package/dist/utils/version-checker.js +46 -56
  283. package/dist/utils/version-checker.js.map +1 -1
  284. package/package.json +6 -4
  285. package/dist/ai/types.d.ts +0 -20
  286. package/dist/ai/types.d.ts.map +0 -1
  287. package/dist/cli-adapter.d.ts +0 -511
  288. package/dist/cli-adapter.d.ts.map +0 -1
  289. package/dist/commands/CommandParser.d.ts +0 -27
  290. package/dist/commands/CommandParser.d.ts.map +0 -1
  291. package/dist/config/build-config.d.ts +0 -42
  292. package/dist/config/build-config.d.ts.map +0 -1
  293. package/dist/config/defaultConfig.d.ts +0 -79
  294. package/dist/config/defaultConfig.d.ts.map +0 -1
  295. package/dist/config/manager.d.ts +0 -62
  296. package/dist/config/manager.d.ts.map +0 -1
  297. package/dist/config/mcp-config-manager.d.ts +0 -79
  298. package/dist/config/mcp-config-manager.d.ts.map +0 -1
  299. package/dist/config/models.d.ts +0 -83
  300. package/dist/config/models.d.ts.map +0 -1
  301. package/dist/config/slash-commands.d.ts +0 -23
  302. package/dist/config/slash-commands.d.ts.map +0 -1
  303. package/dist/config/types.d.ts +0 -35
  304. package/dist/config/types.d.ts.map +0 -1
  305. package/dist/context/command-detector.d.ts +0 -50
  306. package/dist/context/command-detector.d.ts.map +0 -1
  307. package/dist/context/context-manager.d.ts +0 -157
  308. package/dist/context/context-manager.d.ts.map +0 -1
  309. package/dist/context/handlers/docker-handler.d.ts +0 -130
  310. package/dist/context/handlers/docker-handler.d.ts.map +0 -1
  311. package/dist/context/handlers/ssh-handler.d.ts +0 -201
  312. package/dist/context/handlers/ssh-handler.d.ts.map +0 -1
  313. package/dist/context/handlers/wsl-handler.d.ts +0 -146
  314. package/dist/context/handlers/wsl-handler.d.ts.map +0 -1
  315. package/dist/context/index.d.ts +0 -8
  316. package/dist/context/index.d.ts.map +0 -1
  317. package/dist/context/subshell-handler.d.ts +0 -165
  318. package/dist/context/subshell-handler.d.ts.map +0 -1
  319. package/dist/context/types.d.ts +0 -70
  320. package/dist/context/types.d.ts.map +0 -1
  321. package/dist/hooks/useConnectivity.d.ts +0 -2
  322. package/dist/hooks/useConnectivity.d.ts.map +0 -1
  323. package/dist/hooks/useTerminalDimensions.d.ts +0 -41
  324. package/dist/hooks/useTerminalDimensions.d.ts.map +0 -1
  325. package/dist/index.d.ts +0 -9
  326. package/dist/index.d.ts.map +0 -1
  327. package/dist/mcp/mcp-command-handler.d.ts +0 -47
  328. package/dist/mcp/mcp-command-handler.d.ts.map +0 -1
  329. package/dist/mcp/mcp-server-manager.d.ts +0 -30
  330. package/dist/mcp/mcp-server-manager.d.ts.map +0 -1
  331. package/dist/mcp/mcp-tool-wrapper.d.ts +0 -12
  332. package/dist/mcp/mcp-tool-wrapper.d.ts.map +0 -1
  333. package/dist/services/ai-autocomplete-agent.d.ts +0 -39
  334. package/dist/services/ai-autocomplete-agent.d.ts.map +0 -1
  335. package/dist/services/ai-context-injector.d.ts +0 -41
  336. package/dist/services/ai-context-injector.d.ts.map +0 -1
  337. package/dist/services/ai-service-client.d.ts +0 -128
  338. package/dist/services/ai-service-client.d.ts.map +0 -1
  339. package/dist/services/api-client.d.ts +0 -353
  340. package/dist/services/api-client.d.ts.map +0 -1
  341. package/dist/services/auth-handler.d.ts +0 -30
  342. package/dist/services/auth-handler.d.ts.map +0 -1
  343. package/dist/services/background-task-manager.d.ts +0 -114
  344. package/dist/services/background-task-manager.d.ts.map +0 -1
  345. package/dist/services/checkpoint-manager.d.ts +0 -167
  346. package/dist/services/checkpoint-manager.d.ts.map +0 -1
  347. package/dist/services/clipboard-service.d.ts +0 -37
  348. package/dist/services/clipboard-service.d.ts.map +0 -1
  349. package/dist/services/connectivity-manager.d.ts +0 -18
  350. package/dist/services/connectivity-manager.d.ts.map +0 -1
  351. package/dist/services/conversation-manager.d.ts +0 -73
  352. package/dist/services/conversation-manager.d.ts.map +0 -1
  353. package/dist/services/environment-context-injector.d.ts +0 -69
  354. package/dist/services/environment-context-injector.d.ts.map +0 -1
  355. package/dist/services/fast-context-agent.d.ts +0 -12
  356. package/dist/services/fast-context-agent.d.ts.map +0 -1
  357. package/dist/services/input-detection-agent.d.ts +0 -40
  358. package/dist/services/input-detection-agent.d.ts.map +0 -1
  359. package/dist/services/input-requirement-detector.d.ts +0 -28
  360. package/dist/services/input-requirement-detector.d.ts.map +0 -1
  361. package/dist/services/local-chat-storage.d.ts +0 -182
  362. package/dist/services/local-chat-storage.d.ts.map +0 -1
  363. package/dist/services/monitored-shell-manager.d.ts +0 -120
  364. package/dist/services/monitored-shell-manager.d.ts.map +0 -1
  365. package/dist/services/ollama-service.d.ts +0 -197
  366. package/dist/services/ollama-service.d.ts.map +0 -1
  367. package/dist/services/session-quota-manager.d.ts +0 -101
  368. package/dist/services/session-quota-manager.d.ts.map +0 -1
  369. package/dist/services/shell-input-agent.d.ts +0 -89
  370. package/dist/services/shell-input-agent.d.ts.map +0 -1
  371. package/dist/services/sub-agent-manager.d.ts +0 -140
  372. package/dist/services/sub-agent-manager.d.ts.map +0 -1
  373. package/dist/services/warpify-detector.d.ts +0 -43
  374. package/dist/services/warpify-detector.d.ts.map +0 -1
  375. package/dist/services/workflow-storage.d.ts +0 -72
  376. package/dist/services/workflow-storage.d.ts.map +0 -1
  377. package/dist/test-ssh-handler.d.ts +0 -8
  378. package/dist/test-ssh-handler.d.ts.map +0 -1
  379. package/dist/tools/background-command.d.ts +0 -11
  380. package/dist/tools/background-command.d.ts.map +0 -1
  381. package/dist/tools/command.d.ts +0 -3
  382. package/dist/tools/command.d.ts.map +0 -1
  383. package/dist/tools/create-image.d.ts +0 -10
  384. package/dist/tools/create-image.d.ts.map +0 -1
  385. package/dist/tools/enter-remote-session.d.ts +0 -48
  386. package/dist/tools/enter-remote-session.d.ts.map +0 -1
  387. package/dist/tools/fast-context.d.ts +0 -3
  388. package/dist/tools/fast-context.d.ts.map +0 -1
  389. package/dist/tools/file-ops.d.ts +0 -7
  390. package/dist/tools/file-ops.d.ts.map +0 -1
  391. package/dist/tools/find-files.d.ts +0 -49
  392. package/dist/tools/find-files.d.ts.map +0 -1
  393. package/dist/tools/get-diff.d.ts +0 -14
  394. package/dist/tools/get-diff.d.ts.map +0 -1
  395. package/dist/tools/grep-search.d.ts +0 -155
  396. package/dist/tools/grep-search.d.ts.map +0 -1
  397. package/dist/tools/inspect-symbol.d.ts +0 -32
  398. package/dist/tools/inspect-symbol.d.ts.map +0 -1
  399. package/dist/tools/plan-mode.d.ts +0 -140
  400. package/dist/tools/plan-mode.d.ts.map +0 -1
  401. package/dist/tools/read-binary-file.d.ts +0 -10
  402. package/dist/tools/read-binary-file.d.ts.map +0 -1
  403. package/dist/tools/registry.d.ts +0 -31
  404. package/dist/tools/registry.d.ts.map +0 -1
  405. package/dist/tools/reproduce_issue.d.ts +0 -2
  406. package/dist/tools/reproduce_issue.d.ts.map +0 -1
  407. package/dist/tools/sub-agent.d.ts +0 -9
  408. package/dist/tools/sub-agent.d.ts.map +0 -1
  409. package/dist/tools/task-complete.d.ts +0 -3
  410. package/dist/tools/task-complete.d.ts.map +0 -1
  411. package/dist/tools/types.d.ts +0 -40
  412. package/dist/tools/types.d.ts.map +0 -1
  413. package/dist/tools/validation.d.ts +0 -47
  414. package/dist/tools/validation.d.ts.map +0 -1
  415. package/dist/tools/web-search.d.ts +0 -24
  416. package/dist/tools/web-search.d.ts.map +0 -1
  417. package/dist/tools/workflow-tool.d.ts +0 -11
  418. package/dist/tools/workflow-tool.d.ts.map +0 -1
  419. package/dist/types/index.d.ts +0 -123
  420. package/dist/types/index.d.ts.map +0 -1
  421. package/dist/types/workflow.d.ts +0 -110
  422. package/dist/types/workflow.d.ts.map +0 -1
  423. package/dist/ui/components/AgentTimer.d.ts +0 -7
  424. package/dist/ui/components/AgentTimer.d.ts.map +0 -1
  425. package/dist/ui/components/App.d.ts +0 -197
  426. package/dist/ui/components/App.d.ts.map +0 -1
  427. package/dist/ui/components/AuthScreen.d.ts +0 -8
  428. package/dist/ui/components/AuthScreen.d.ts.map +0 -1
  429. package/dist/ui/components/AuthWelcomeScreen.d.ts +0 -8
  430. package/dist/ui/components/AuthWelcomeScreen.d.ts.map +0 -1
  431. package/dist/ui/components/Breadcrumbs.d.ts +0 -13
  432. package/dist/ui/components/Breadcrumbs.d.ts.map +0 -1
  433. package/dist/ui/components/CircularSelectInput.d.ts +0 -24
  434. package/dist/ui/components/CircularSelectInput.d.ts.map +0 -1
  435. package/dist/ui/components/ClipboardFileAutocomplete.d.ts +0 -10
  436. package/dist/ui/components/ClipboardFileAutocomplete.d.ts.map +0 -1
  437. package/dist/ui/components/CodeBlock.d.ts +0 -9
  438. package/dist/ui/components/CodeBlock.d.ts.map +0 -1
  439. package/dist/ui/components/ConfigViewer.d.ts +0 -11
  440. package/dist/ui/components/ConfigViewer.d.ts.map +0 -1
  441. package/dist/ui/components/ConfirmPrompt.d.ts +0 -13
  442. package/dist/ui/components/ConfirmPrompt.d.ts.map +0 -1
  443. package/dist/ui/components/ConnectionStatusMessage.d.ts +0 -17
  444. package/dist/ui/components/ConnectionStatusMessage.d.ts.map +0 -1
  445. package/dist/ui/components/ContextWindowIndicator.d.ts +0 -8
  446. package/dist/ui/components/ContextWindowIndicator.d.ts.map +0 -1
  447. package/dist/ui/components/DetailedPlanReviewScreen.d.ts +0 -17
  448. package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +0 -1
  449. package/dist/ui/components/DiffViewer.d.ts +0 -9
  450. package/dist/ui/components/DiffViewer.d.ts.map +0 -1
  451. package/dist/ui/components/ErrorBoundary.d.ts +0 -17
  452. package/dist/ui/components/ErrorBoundary.d.ts.map +0 -1
  453. package/dist/ui/components/FileCreationPreview.d.ts +0 -8
  454. package/dist/ui/components/FileCreationPreview.d.ts.map +0 -1
  455. package/dist/ui/components/FileOperation.d.ts +0 -10
  456. package/dist/ui/components/FileOperation.d.ts.map +0 -1
  457. package/dist/ui/components/FileTagAutocomplete.d.ts +0 -11
  458. package/dist/ui/components/FileTagAutocomplete.d.ts.map +0 -1
  459. package/dist/ui/components/FontRecommendation.d.ts +0 -1
  460. package/dist/ui/components/FontRecommendation.d.ts.map +0 -1
  461. package/dist/ui/components/InputBox.d.ts +0 -42
  462. package/dist/ui/components/InputBox.d.ts.map +0 -1
  463. package/dist/ui/components/InteractiveShell.d.ts +0 -30
  464. package/dist/ui/components/InteractiveShell.d.ts.map +0 -1
  465. package/dist/ui/components/KeyboardHelp.d.ts +0 -7
  466. package/dist/ui/components/KeyboardHelp.d.ts.map +0 -1
  467. package/dist/ui/components/LoadingIndicator.d.ts +0 -3
  468. package/dist/ui/components/LoadingIndicator.d.ts.map +0 -1
  469. package/dist/ui/components/MCPAddScreen.d.ts +0 -13
  470. package/dist/ui/components/MCPAddScreen.d.ts.map +0 -1
  471. package/dist/ui/components/MCPListScreen.d.ts +0 -17
  472. package/dist/ui/components/MCPListScreen.d.ts.map +0 -1
  473. package/dist/ui/components/MCPServerListScreen.d.ts +0 -16
  474. package/dist/ui/components/MCPServerListScreen.d.ts.map +0 -1
  475. package/dist/ui/components/MarkdownRenderer.d.ts +0 -8
  476. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  477. package/dist/ui/components/MessageBox.d.ts +0 -10
  478. package/dist/ui/components/MessageBox.d.ts.map +0 -1
  479. package/dist/ui/components/MessageDisplay.d.ts +0 -14
  480. package/dist/ui/components/MessageDisplay.d.ts.map +0 -1
  481. package/dist/ui/components/MonitorModeAIPanel.d.ts +0 -23
  482. package/dist/ui/components/MonitorModeAIPanel.d.ts.map +0 -1
  483. package/dist/ui/components/MultiLineInput.d.ts +0 -13
  484. package/dist/ui/components/MultiLineInput.d.ts.map +0 -1
  485. package/dist/ui/components/PasswordPrompt.d.ts +0 -9
  486. package/dist/ui/components/PasswordPrompt.d.ts.map +0 -1
  487. package/dist/ui/components/PlanAcceptedMessage.d.ts +0 -20
  488. package/dist/ui/components/PlanAcceptedMessage.d.ts.map +0 -1
  489. package/dist/ui/components/PlanReviewScreen.d.ts +0 -14
  490. package/dist/ui/components/PlanReviewScreen.d.ts.map +0 -1
  491. package/dist/ui/components/SelectPrompt.d.ts +0 -12
  492. package/dist/ui/components/SelectPrompt.d.ts.map +0 -1
  493. package/dist/ui/components/SlashCommandAutocomplete.d.ts +0 -13
  494. package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +0 -1
  495. package/dist/ui/components/StatusBar.d.ts +0 -14
  496. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  497. package/dist/ui/components/StreamingMessageDisplay.d.ts +0 -15
  498. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +0 -1
  499. package/dist/ui/components/TaskCompletedMessage.d.ts +0 -14
  500. package/dist/ui/components/TaskCompletedMessage.d.ts.map +0 -1
  501. package/dist/ui/components/TaskProgressIndicator.d.ts +0 -18
  502. package/dist/ui/components/TaskProgressIndicator.d.ts.map +0 -1
  503. package/dist/ui/components/ThinkingDisplay.d.ts +0 -15
  504. package/dist/ui/components/ThinkingDisplay.d.ts.map +0 -1
  505. package/dist/ui/components/ToolExecutionMessage.d.ts +0 -8
  506. package/dist/ui/components/ToolExecutionMessage.d.ts.map +0 -1
  507. package/dist/ui/components/ToolExecutionStatus.d.ts +0 -10
  508. package/dist/ui/components/ToolExecutionStatus.d.ts.map +0 -1
  509. package/dist/ui/components/ToolResult.d.ts +0 -10
  510. package/dist/ui/components/ToolResult.d.ts.map +0 -1
  511. package/dist/ui/components/VersionUpdatePrompt.d.ts +0 -9
  512. package/dist/ui/components/VersionUpdatePrompt.d.ts.map +0 -1
  513. package/dist/ui/components/WelcomeBanner.d.ts +0 -3
  514. package/dist/ui/components/WelcomeBanner.d.ts.map +0 -1
  515. package/dist/ui/components/WorkflowCreatorScreen.d.ts +0 -25
  516. package/dist/ui/components/WorkflowCreatorScreen.d.ts.map +0 -1
  517. package/dist/utils/ansi-encoder.d.ts +0 -7
  518. package/dist/utils/ansi-encoder.d.ts.map +0 -1
  519. package/dist/utils/chat-formatter.d.ts +0 -12
  520. package/dist/utils/chat-formatter.d.ts.map +0 -1
  521. package/dist/utils/command-history.d.ts +0 -24
  522. package/dist/utils/command-history.d.ts.map +0 -1
  523. package/dist/utils/context-sanitizer.d.ts +0 -50
  524. package/dist/utils/context-sanitizer.d.ts.map +0 -1
  525. package/dist/utils/conversation-logger.d.ts +0 -142
  526. package/dist/utils/conversation-logger.d.ts.map +0 -1
  527. package/dist/utils/custom-commands-manager.d.ts +0 -59
  528. package/dist/utils/custom-commands-manager.d.ts.map +0 -1
  529. package/dist/utils/editor-utils.d.ts +0 -101
  530. package/dist/utils/editor-utils.d.ts.map +0 -1
  531. package/dist/utils/file.d.ts +0 -61
  532. package/dist/utils/file.d.ts.map +0 -1
  533. package/dist/utils/input-classifier.d.ts +0 -25
  534. package/dist/utils/input-classifier.d.ts.map +0 -1
  535. package/dist/utils/logger.d.ts +0 -17
  536. package/dist/utils/logger.d.ts.map +0 -1
  537. package/dist/utils/markdown-parser.d.ts +0 -60
  538. package/dist/utils/markdown-parser.d.ts.map +0 -1
  539. package/dist/utils/shell.d.ts +0 -47
  540. package/dist/utils/shell.d.ts.map +0 -1
  541. package/dist/utils/state.d.ts +0 -13
  542. package/dist/utils/state.d.ts.map +0 -1
  543. package/dist/utils/syntax-checker.d.ts +0 -24
  544. package/dist/utils/syntax-checker.d.ts.map +0 -1
  545. package/dist/utils/terminal-output.d.ts +0 -25
  546. package/dist/utils/terminal-output.d.ts.map +0 -1
  547. package/dist/utils/text-clipboard.d.ts +0 -12
  548. package/dist/utils/text-clipboard.d.ts.map +0 -1
  549. package/dist/utils/unicode-sanitizer.d.ts +0 -44
  550. package/dist/utils/unicode-sanitizer.d.ts.map +0 -1
  551. package/dist/utils/version-checker.d.ts +0 -14
  552. package/dist/utils/version-checker.d.ts.map +0 -1
@@ -1,203 +1,169 @@
1
- import stripAnsi from 'strip-ansi';
2
- /**
3
- * Input Requirement Detector Service
4
- *
5
- * Monitors shell output and detects when user input is required.
6
- * Used by the agent control mode to know when to prompt the AI for input.
7
- */
8
- // Common patterns that indicate input is required
1
+ import stripAnsi from "strip-ansi";
9
2
  const INPUT_PATTERNS = [
10
- // Password prompts
11
- /password\s*[:\>]/i,
12
- /enter\s+password/i,
13
- /\[sudo\]\s+password/i,
14
- /passphrase/i,
15
- // Y/N confirmations
16
- /\[y\/n\]/i,
17
- /\[yes\/no\]/i,
18
- /\(y\/n\)/i,
19
- /\(yes\/no\)/i,
20
- /continue\s*\?/i,
21
- /proceed\s*\?/i,
22
- /are\s+you\s+sure\s*\?/i,
23
- /overwrite\s*\?/i,
24
- /replace\s*\?/i,
25
- /delete\s*\?/i,
26
- /confirm\s*[:\?]/i,
27
- // Generic input prompts (ending with : or ? followed by whitespace or end)
28
- /:\s*$/,
29
- /\?\s*$/,
30
- // npm init and similar prompts
31
- /^\s*name:\s*\(/i,
32
- /^\s*version:\s*\(/i,
33
- /^\s*description:\s*$/i,
34
- /^\s*entry\s+point:\s*\(/i,
35
- /^\s*test\s+command:\s*$/i,
36
- /^\s*git\s+repository:\s*$/i,
37
- /^\s*keywords:\s*$/i,
38
- /^\s*author:\s*$/i,
39
- /^\s*license:\s*\(/i,
40
- /is\s+this\s+ok\s*\?/i,
41
- // Read-Host in PowerShell
42
- /Read-Host/i,
43
- // Git prompts
44
- /username\s+for/i,
45
- /password\s+for/i,
46
- // SSH prompts
47
- /are\s+you\s+sure\s+you\s+want\s+to\s+continue\s+connecting/i,
48
- /\(yes\/no\/\[fingerprint\]\)/i,
49
- // Press any key / press enter
50
- /press\s+(any\s+key|enter|return)/i,
51
- // Choice prompts
52
- /choice\s*[:\>]/i,
53
- /select\s+(option|choice)\s*[:\>]/i,
54
- /\[\d+\]\s+.*:\s*$/i, // Numbered menu items ending with :
3
+ // Password prompts
4
+ /password\s*[:\>]/i,
5
+ /enter\s+password/i,
6
+ /\[sudo\]\s+password/i,
7
+ /passphrase/i,
8
+ // Y/N confirmations
9
+ /\[y\/n\]/i,
10
+ /\[yes\/no\]/i,
11
+ /\(y\/n\)/i,
12
+ /\(yes\/no\)/i,
13
+ /continue\s*\?/i,
14
+ /proceed\s*\?/i,
15
+ /are\s+you\s+sure\s*\?/i,
16
+ /overwrite\s*\?/i,
17
+ /replace\s*\?/i,
18
+ /delete\s*\?/i,
19
+ /confirm\s*[:\?]/i,
20
+ // Generic input prompts (ending with : or ? followed by whitespace or end)
21
+ /:\s*$/,
22
+ /\?\s*$/,
23
+ // npm init and similar prompts
24
+ /^\s*name:\s*\(/i,
25
+ /^\s*version:\s*\(/i,
26
+ /^\s*description:\s*$/i,
27
+ /^\s*entry\s+point:\s*\(/i,
28
+ /^\s*test\s+command:\s*$/i,
29
+ /^\s*git\s+repository:\s*$/i,
30
+ /^\s*keywords:\s*$/i,
31
+ /^\s*author:\s*$/i,
32
+ /^\s*license:\s*\(/i,
33
+ /is\s+this\s+ok\s*\?/i,
34
+ // Read-Host in PowerShell
35
+ /Read-Host/i,
36
+ // Git prompts
37
+ /username\s+for/i,
38
+ /password\s+for/i,
39
+ // SSH prompts
40
+ /are\s+you\s+sure\s+you\s+want\s+to\s+continue\s+connecting/i,
41
+ /\(yes\/no\/\[fingerprint\]\)/i,
42
+ // Press any key / press enter
43
+ /press\s+(any\s+key|enter|return)/i,
44
+ // Choice prompts
45
+ /choice\s*[:\>]/i,
46
+ /select\s+(option|choice)\s*[:\>]/i,
47
+ /\[\d+\]\s+.*:\s*$/i
48
+ // Numbered menu items ending with :
55
49
  ];
56
- // Patterns that indicate the command is still producing output (not waiting)
57
50
  const ACTIVE_OUTPUT_PATTERNS = [
58
- /\.\.\./, // Progress indicator
59
- /downloading/i,
60
- /installing/i,
61
- /compiling/i,
62
- /building/i,
63
- /running/i,
64
- /starting/i,
65
- /processing/i,
66
- /%/, // Percentage progress
67
- /\[\s*=+\s*\]/, // Progress bar
51
+ /\.\.\./,
52
+ // Progress indicator
53
+ /downloading/i,
54
+ /installing/i,
55
+ /compiling/i,
56
+ /building/i,
57
+ /running/i,
58
+ /starting/i,
59
+ /processing/i,
60
+ /%/,
61
+ // Percentage progress
62
+ /\[\s*=+\s*\]/
63
+ // Progress bar
68
64
  ];
69
- /**
70
- * Default timeout in ms to consider output as "stalled" (waiting for input)
71
- */
72
- export const DEFAULT_STALL_TIMEOUT_MS = 2000;
73
- /**
74
- * Detects if the shell output indicates that user input is required.
75
- *
76
- * @param output - The complete shell output so far
77
- * @param timeSinceLastOutput - Time in ms since last output was received (optional)
78
- * @param stallTimeoutMs - Timeout in ms to consider output stalled (default: 2000)
79
- * @returns Detection result with confidence level
80
- */
81
- // Patterns that should be IGNORED even if they look like prompts (e.g. system shell prompts)
65
+ const DEFAULT_STALL_TIMEOUT_MS = 2e3;
82
66
  const IGNORED_PATTERNS = [
83
- /PS\s+[A-Z]:\\.*>\s*$/i, // PowerShell prompt: PS C:\path>
84
- /^[A-Z]:\\.*>\s*$/i, // CMD prompt: C:\path>
85
- /^\s*>\s*$/, // Single chevron prompt often seen in transitions
86
- /user@.*[:\$]\s*$/i, // Bash style: user@host:$
87
- /bash-[\d\.]+\$\s*$/i, // Bash prompt
67
+ /PS\s+[A-Z]:\\.*>\s*$/i,
68
+ // PowerShell prompt: PS C:\path>
69
+ /^[A-Z]:\\.*>\s*$/i,
70
+ // CMD prompt: C:\path>
71
+ /^\s*>\s*$/,
72
+ // Single chevron prompt often seen in transitions
73
+ /user@.*[:\$]\s*$/i,
74
+ // Bash style: user@host:$
75
+ /bash-[\d\.]+\$\s*$/i
76
+ // Bash prompt
88
77
  ];
89
- export function detectInputRequirement(output, timeSinceLastOutput, stallTimeoutMs = DEFAULT_STALL_TIMEOUT_MS) {
90
- // Get the last few lines of output for analysis
91
- const lines = output.split('\n').filter(line => line.trim());
92
- // Safety check for empty lines
93
- if (lines.length === 0) {
94
- return { requiresInput: false, confidence: 'low', lastLine: '' };
95
- }
96
- // Get raw last line
97
- const rawLastLine = lines[lines.length - 1];
98
- // Sanitize: strip ANSI codes and trim whitespace
99
- const cleanLastLine = stripAnsi(rawLastLine).trim();
100
- // Check against IGNORED patterns first
101
- if (IGNORED_PATTERNS.some(pattern => pattern.test(cleanLastLine))) {
102
- return { requiresInput: false, confidence: 'low', lastLine: cleanLastLine };
103
- }
104
- // Get last 3 lines, stripped of ANSI
105
- const last3LinesRaw = lines.slice(-3).join('\n');
106
- const cleanLast3Lines = stripAnsi(last3LinesRaw);
107
- const lastLine = cleanLastLine; // Use cleaned version for matching
108
- const last3Lines = cleanLast3Lines;
109
- // Check if output appears to be actively producing content
110
- const isActiveOutput = ACTIVE_OUTPUT_PATTERNS.some(pattern => pattern.test(last3Lines));
111
- // Check for explicit input patterns with high confidence in last line
112
- for (const pattern of INPUT_PATTERNS) {
113
- if (pattern.test(lastLine)) {
114
- return {
115
- requiresInput: true,
116
- confidence: 'high',
117
- matchedPattern: pattern.toString(),
118
- lastLine
119
- };
120
- }
121
- }
122
- // Check the last 3 lines for patterns (slightly lower confidence)
123
- for (const pattern of INPUT_PATTERNS) {
124
- if (pattern.test(last3Lines)) {
125
- return {
126
- requiresInput: true,
127
- confidence: 'medium',
128
- matchedPattern: pattern.toString(),
129
- lastLine
130
- };
131
- }
132
- }
133
- // If output has stalled and no active patterns, might be waiting for input
134
- if (timeSinceLastOutput !== undefined && timeSinceLastOutput > stallTimeoutMs && !isActiveOutput) {
135
- // Check if last line looks like a prompt (ends with common prompt characters)
136
- if (/[:\>\?\$\#]\s*$/.test(lastLine)) {
137
- return {
138
- requiresInput: true,
139
- confidence: 'low',
140
- matchedPattern: 'stall_with_prompt_ending',
141
- lastLine
142
- };
143
- }
144
- }
145
- return {
146
- requiresInput: false,
147
- confidence: 'high',
78
+ function detectInputRequirement(output, timeSinceLastOutput, stallTimeoutMs = DEFAULT_STALL_TIMEOUT_MS) {
79
+ const lines = output.split("\n").filter((line) => line.trim());
80
+ if (lines.length === 0) {
81
+ return { requiresInput: false, confidence: "low", lastLine: "" };
82
+ }
83
+ const rawLastLine = lines[lines.length - 1];
84
+ const cleanLastLine = stripAnsi(rawLastLine).trim();
85
+ if (IGNORED_PATTERNS.some((pattern) => pattern.test(cleanLastLine))) {
86
+ return { requiresInput: false, confidence: "low", lastLine: cleanLastLine };
87
+ }
88
+ const last3LinesRaw = lines.slice(-3).join("\n");
89
+ const cleanLast3Lines = stripAnsi(last3LinesRaw);
90
+ const lastLine = cleanLastLine;
91
+ const last3Lines = cleanLast3Lines;
92
+ const isActiveOutput = ACTIVE_OUTPUT_PATTERNS.some((pattern) => pattern.test(last3Lines));
93
+ for (const pattern of INPUT_PATTERNS) {
94
+ if (pattern.test(lastLine)) {
95
+ return {
96
+ requiresInput: true,
97
+ confidence: "high",
98
+ matchedPattern: pattern.toString(),
148
99
  lastLine
149
- };
150
- }
151
- /**
152
- * Get a human-readable description of what type of input is likely required.
153
- * This is useful for constructing the AI prompt.
154
- *
155
- * @param result - The detection result
156
- * @returns Description of the expected input type
157
- */
158
- export function getInputTypeDescription(result) {
159
- if (!result.requiresInput || !result.matchedPattern) {
160
- return 'unknown input';
100
+ };
161
101
  }
162
- const pattern = result.matchedPattern.toLowerCase();
163
- if (pattern.includes('password') || pattern.includes('passphrase')) {
164
- return 'password or passphrase';
165
- }
166
- if (pattern.includes('y/n') || pattern.includes('yes/no') || pattern.includes('sure')) {
167
- return 'yes/no confirmation';
168
- }
169
- if (pattern.includes('continue') || pattern.includes('proceed') || pattern.includes('confirm')) {
170
- return 'confirmation to proceed';
171
- }
172
- if (pattern.includes('press')) {
173
- return 'key press (enter or any key)';
102
+ }
103
+ for (const pattern of INPUT_PATTERNS) {
104
+ if (pattern.test(last3Lines)) {
105
+ return {
106
+ requiresInput: true,
107
+ confidence: "medium",
108
+ matchedPattern: pattern.toString(),
109
+ lastLine
110
+ };
174
111
  }
175
- if (pattern.includes('choice') || pattern.includes('select')) {
176
- return 'selection from options';
112
+ }
113
+ if (timeSinceLastOutput !== void 0 && timeSinceLastOutput > stallTimeoutMs && !isActiveOutput) {
114
+ if (/[:\>\?\$\#]\s*$/.test(lastLine)) {
115
+ return {
116
+ requiresInput: true,
117
+ confidence: "low",
118
+ matchedPattern: "stall_with_prompt_ending",
119
+ lastLine
120
+ };
177
121
  }
178
- return 'text input';
122
+ }
123
+ return {
124
+ requiresInput: false,
125
+ confidence: "high",
126
+ lastLine
127
+ };
128
+ }
129
+ function getInputTypeDescription(result) {
130
+ if (!result.requiresInput || !result.matchedPattern) {
131
+ return "unknown input";
132
+ }
133
+ const pattern = result.matchedPattern.toLowerCase();
134
+ if (pattern.includes("password") || pattern.includes("passphrase")) {
135
+ return "password or passphrase";
136
+ }
137
+ if (pattern.includes("y/n") || pattern.includes("yes/no") || pattern.includes("sure")) {
138
+ return "yes/no confirmation";
139
+ }
140
+ if (pattern.includes("continue") || pattern.includes("proceed") || pattern.includes("confirm")) {
141
+ return "confirmation to proceed";
142
+ }
143
+ if (pattern.includes("press")) {
144
+ return "key press (enter or any key)";
145
+ }
146
+ if (pattern.includes("choice") || pattern.includes("select")) {
147
+ return "selection from options";
148
+ }
149
+ return "text input";
179
150
  }
180
- /**
181
- * Extract the prompt question from the output for context.
182
- * This helps the AI understand what is being asked.
183
- *
184
- * @param output - The complete shell output
185
- * @returns The prompt/question being asked
186
- */
187
- export function extractPromptContext(output) {
188
- const lines = output.split('\n').filter(line => line.trim());
189
- // Get last 5 lines for context
190
- const contextLines = lines.slice(-5);
191
- // Find the line that looks most like a prompt
192
- for (let i = contextLines.length - 1; i >= 0; i--) {
193
- const line = stripAnsi(contextLines[i]).trim();
194
- // If line ends with a prompt character and isn't empty
195
- if (line && /[:\>\?\$\#]\s*$/.test(line)) {
196
- return line;
197
- }
151
+ function extractPromptContext(output) {
152
+ const lines = output.split("\n").filter((line) => line.trim());
153
+ const contextLines = lines.slice(-5);
154
+ for (let i = contextLines.length - 1; i >= 0; i--) {
155
+ const line = stripAnsi(contextLines[i]).trim();
156
+ if (line && /[:\>\?\$\#]\s*$/.test(line)) {
157
+ return line;
198
158
  }
199
- // Just return the last non-empty line
200
- const lastLine = contextLines[contextLines.length - 1] || '';
201
- return stripAnsi(lastLine).trim();
159
+ }
160
+ const lastLine = contextLines[contextLines.length - 1] || "";
161
+ return stripAnsi(lastLine).trim();
202
162
  }
163
+ export {
164
+ DEFAULT_STALL_TIMEOUT_MS,
165
+ detectInputRequirement,
166
+ extractPromptContext,
167
+ getInputTypeDescription
168
+ };
203
169
  //# sourceMappingURL=input-requirement-detector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-requirement-detector.js","sourceRoot":"","sources":["../../src/services/input-requirement-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/services/input-requirement-detector.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\r\n\r\n/**\r\n * Input Requirement Detector Service\r\n * \r\n * Monitors shell output and detects when user input is required.\r\n * Used by the agent control mode to know when to prompt the AI for input.\r\n */\r\n\r\n// Common patterns that indicate input is required\r\nconst INPUT_PATTERNS = [\r\n // Password prompts\r\n /password\\s*[:\\>]/i,\r\n /enter\\s+password/i,\r\n /\\[sudo\\]\\s+password/i,\r\n /passphrase/i,\r\n\r\n // Y/N confirmations\r\n /\\[y\\/n\\]/i,\r\n /\\[yes\\/no\\]/i,\r\n /\\(y\\/n\\)/i,\r\n /\\(yes\\/no\\)/i,\r\n /continue\\s*\\?/i,\r\n /proceed\\s*\\?/i,\r\n /are\\s+you\\s+sure\\s*\\?/i,\r\n /overwrite\\s*\\?/i,\r\n /replace\\s*\\?/i,\r\n /delete\\s*\\?/i,\r\n /confirm\\s*[:\\?]/i,\r\n\r\n // Generic input prompts (ending with : or ? followed by whitespace or end)\r\n /:\\s*$/,\r\n /\\?\\s*$/,\r\n\r\n // npm init and similar prompts\r\n /^\\s*name:\\s*\\(/i,\r\n /^\\s*version:\\s*\\(/i,\r\n /^\\s*description:\\s*$/i,\r\n /^\\s*entry\\s+point:\\s*\\(/i,\r\n /^\\s*test\\s+command:\\s*$/i,\r\n /^\\s*git\\s+repository:\\s*$/i,\r\n /^\\s*keywords:\\s*$/i,\r\n /^\\s*author:\\s*$/i,\r\n /^\\s*license:\\s*\\(/i,\r\n /is\\s+this\\s+ok\\s*\\?/i,\r\n\r\n // Read-Host in PowerShell\r\n /Read-Host/i,\r\n\r\n // Git prompts\r\n /username\\s+for/i,\r\n /password\\s+for/i,\r\n\r\n // SSH prompts\r\n /are\\s+you\\s+sure\\s+you\\s+want\\s+to\\s+continue\\s+connecting/i,\r\n /\\(yes\\/no\\/\\[fingerprint\\]\\)/i,\r\n\r\n // Press any key / press enter\r\n /press\\s+(any\\s+key|enter|return)/i,\r\n\r\n // Choice prompts\r\n /choice\\s*[:\\>]/i,\r\n /select\\s+(option|choice)\\s*[:\\>]/i,\r\n /\\[\\d+\\]\\s+.*:\\s*$/i, // Numbered menu items ending with :\r\n];\r\n\r\n// Patterns that indicate the command is still producing output (not waiting)\r\nconst ACTIVE_OUTPUT_PATTERNS = [\r\n /\\.\\.\\./, // Progress indicator\r\n /downloading/i,\r\n /installing/i,\r\n /compiling/i,\r\n /building/i,\r\n /running/i,\r\n /starting/i,\r\n /processing/i,\r\n /%/, // Percentage progress\r\n /\\[\\s*=+\\s*\\]/, // Progress bar\r\n];\r\n\r\nexport interface InputDetectionResult {\r\n requiresInput: boolean;\r\n confidence: 'high' | 'medium' | 'low';\r\n matchedPattern?: string;\r\n lastLine: string;\r\n}\r\n\r\n/**\r\n * Default timeout in ms to consider output as \"stalled\" (waiting for input)\r\n */\r\nexport const DEFAULT_STALL_TIMEOUT_MS = 2000;\r\n\r\n/**\r\n * Detects if the shell output indicates that user input is required.\r\n * \r\n * @param output - The complete shell output so far\r\n * @param timeSinceLastOutput - Time in ms since last output was received (optional)\r\n * @param stallTimeoutMs - Timeout in ms to consider output stalled (default: 2000)\r\n * @returns Detection result with confidence level\r\n */\r\n// Patterns that should be IGNORED even if they look like prompts (e.g. system shell prompts)\r\nconst IGNORED_PATTERNS = [\r\n /PS\\s+[A-Z]:\\\\.*>\\s*$/i, // PowerShell prompt: PS C:\\path>\r\n /^[A-Z]:\\\\.*>\\s*$/i, // CMD prompt: C:\\path>\r\n /^\\s*>\\s*$/, // Single chevron prompt often seen in transitions\r\n /user@.*[:\\$]\\s*$/i, // Bash style: user@host:$\r\n /bash-[\\d\\.]+\\$\\s*$/i, // Bash prompt\r\n];\r\n\r\nexport function detectInputRequirement(\r\n output: string,\r\n timeSinceLastOutput?: number,\r\n stallTimeoutMs: number = DEFAULT_STALL_TIMEOUT_MS\r\n): InputDetectionResult {\r\n // Get the last few lines of output for analysis\r\n const lines = output.split('\\n').filter(line => line.trim());\r\n\r\n // Safety check for empty lines\r\n if (lines.length === 0) {\r\n return { requiresInput: false, confidence: 'low', lastLine: '' };\r\n }\r\n\r\n // Get raw last line\r\n const rawLastLine = lines[lines.length - 1];\r\n\r\n // Sanitize: strip ANSI codes and trim whitespace\r\n const cleanLastLine = stripAnsi(rawLastLine).trim();\r\n\r\n // Check against IGNORED patterns first\r\n if (IGNORED_PATTERNS.some(pattern => pattern.test(cleanLastLine))) {\r\n return { requiresInput: false, confidence: 'low', lastLine: cleanLastLine };\r\n }\r\n\r\n // Get last 3 lines, stripped of ANSI\r\n const last3LinesRaw = lines.slice(-3).join('\\n');\r\n const cleanLast3Lines = stripAnsi(last3LinesRaw);\r\n\r\n const lastLine = cleanLastLine; // Use cleaned version for matching\r\n const last3Lines = cleanLast3Lines;\r\n\r\n // Check if output appears to be actively producing content\r\n const isActiveOutput = ACTIVE_OUTPUT_PATTERNS.some(pattern => pattern.test(last3Lines));\r\n\r\n // Check for explicit input patterns with high confidence in last line\r\n for (const pattern of INPUT_PATTERNS) {\r\n if (pattern.test(lastLine)) {\r\n return {\r\n requiresInput: true,\r\n confidence: 'high',\r\n matchedPattern: pattern.toString(),\r\n lastLine\r\n };\r\n }\r\n }\r\n\r\n // Check the last 3 lines for patterns (slightly lower confidence)\r\n for (const pattern of INPUT_PATTERNS) {\r\n if (pattern.test(last3Lines)) {\r\n return {\r\n requiresInput: true,\r\n confidence: 'medium',\r\n matchedPattern: pattern.toString(),\r\n lastLine\r\n };\r\n }\r\n }\r\n\r\n // If output has stalled and no active patterns, might be waiting for input\r\n if (timeSinceLastOutput !== undefined && timeSinceLastOutput > stallTimeoutMs && !isActiveOutput) {\r\n // Check if last line looks like a prompt (ends with common prompt characters)\r\n if (/[:\\>\\?\\$\\#]\\s*$/.test(lastLine)) {\r\n return {\r\n requiresInput: true,\r\n confidence: 'low',\r\n matchedPattern: 'stall_with_prompt_ending',\r\n lastLine\r\n };\r\n }\r\n }\r\n\r\n return {\r\n requiresInput: false,\r\n confidence: 'high',\r\n lastLine\r\n };\r\n}\r\n\r\n/**\r\n * Get a human-readable description of what type of input is likely required.\r\n * This is useful for constructing the AI prompt.\r\n * \r\n * @param result - The detection result\r\n * @returns Description of the expected input type\r\n */\r\nexport function getInputTypeDescription(result: InputDetectionResult): string {\r\n if (!result.requiresInput || !result.matchedPattern) {\r\n return 'unknown input';\r\n }\r\n\r\n const pattern = result.matchedPattern.toLowerCase();\r\n\r\n if (pattern.includes('password') || pattern.includes('passphrase')) {\r\n return 'password or passphrase';\r\n }\r\n if (pattern.includes('y/n') || pattern.includes('yes/no') || pattern.includes('sure')) {\r\n return 'yes/no confirmation';\r\n }\r\n if (pattern.includes('continue') || pattern.includes('proceed') || pattern.includes('confirm')) {\r\n return 'confirmation to proceed';\r\n }\r\n if (pattern.includes('press')) {\r\n return 'key press (enter or any key)';\r\n }\r\n if (pattern.includes('choice') || pattern.includes('select')) {\r\n return 'selection from options';\r\n }\r\n\r\n return 'text input';\r\n}\r\n\r\n/**\r\n * Extract the prompt question from the output for context.\r\n * This helps the AI understand what is being asked.\r\n * \r\n * @param output - The complete shell output\r\n * @returns The prompt/question being asked\r\n */\r\nexport function extractPromptContext(output: string): string {\r\n const lines = output.split('\\n').filter(line => line.trim());\r\n\r\n // Get last 5 lines for context\r\n const contextLines = lines.slice(-5);\r\n\r\n // Find the line that looks most like a prompt\r\n for (let i = contextLines.length - 1; i >= 0; i--) {\r\n const line = stripAnsi(contextLines[i]).trim();\r\n // If line ends with a prompt character and isn't empty\r\n if (line && /[:\\>\\?\\$\\#]\\s*$/.test(line)) {\r\n return line;\r\n }\r\n }\r\n\r\n // Just return the last non-empty line\r\n const lastLine = contextLines[contextLines.length - 1] || '';\r\n return stripAnsi(lastLine).trim();\r\n}\r\n"],"mappings":"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","names":[]}