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
@@ -0,0 +1,54 @@
1
+ import { rulesStorage } from "../services/rules-storage.js";
2
+ const RULE_REFERENCE_REGEX = /(^|[\s\n])@rules:([a-zA-Z0-9_-]+)/g;
3
+ function resolveRuleReferences(prompt) {
4
+ const referencedRuleNames = [];
5
+ let match;
6
+ while ((match = RULE_REFERENCE_REGEX.exec(prompt)) !== null) {
7
+ const ruleName = match[2];
8
+ if (!referencedRuleNames.includes(ruleName)) {
9
+ referencedRuleNames.push(ruleName);
10
+ }
11
+ }
12
+ if (referencedRuleNames.length === 0) {
13
+ return {
14
+ augmentedPrompt: prompt,
15
+ referencedRules: [],
16
+ missingRuleNames: []
17
+ };
18
+ }
19
+ const referencedRules = [];
20
+ const missingRuleNames = [];
21
+ for (const ruleName of referencedRuleNames) {
22
+ const rule = rulesStorage.load(ruleName);
23
+ if (!rule) {
24
+ missingRuleNames.push(ruleName);
25
+ continue;
26
+ }
27
+ referencedRules.push({
28
+ name: rule.name,
29
+ content: rule.content
30
+ });
31
+ }
32
+ if (referencedRules.length === 0) {
33
+ return {
34
+ augmentedPrompt: prompt,
35
+ referencedRules,
36
+ missingRuleNames
37
+ };
38
+ }
39
+ const injectedRulesBlock = referencedRules.map((rule) => `Rule: ${rule.name}
40
+ ${rule.content}`).join("\n\n");
41
+ return {
42
+ augmentedPrompt: `${prompt}
43
+
44
+ The following saved rules were referenced in this prompt. Apply them as additional user instructions for this message:
45
+
46
+ ${injectedRulesBlock}`,
47
+ referencedRules,
48
+ missingRuleNames
49
+ };
50
+ }
51
+ export {
52
+ resolveRuleReferences
53
+ };
54
+ //# sourceMappingURL=rule-reference-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/rule-reference-resolver.ts"],"sourcesContent":["import { rulesStorage } from '../services/rules-storage.js';\r\n\r\nexport interface ResolvedRuleReference {\r\n name: string;\r\n content: string;\r\n}\r\n\r\nexport interface ResolveRuleReferencesResult {\r\n augmentedPrompt: string;\r\n referencedRules: ResolvedRuleReference[];\r\n missingRuleNames: string[];\r\n}\r\n\r\nconst RULE_REFERENCE_REGEX = /(^|[\\s\\n])@rules:([a-zA-Z0-9_-]+)/g;\r\n\r\nexport function resolveRuleReferences(prompt: string): ResolveRuleReferencesResult {\r\n const referencedRuleNames: string[] = [];\r\n let match: RegExpExecArray | null;\r\n\r\n while ((match = RULE_REFERENCE_REGEX.exec(prompt)) !== null) {\r\n const ruleName = match[2];\r\n if (!referencedRuleNames.includes(ruleName)) {\r\n referencedRuleNames.push(ruleName);\r\n }\r\n }\r\n\r\n if (referencedRuleNames.length === 0) {\r\n return {\r\n augmentedPrompt: prompt,\r\n referencedRules: [],\r\n missingRuleNames: []\r\n };\r\n }\r\n\r\n const referencedRules: ResolvedRuleReference[] = [];\r\n const missingRuleNames: string[] = [];\r\n\r\n for (const ruleName of referencedRuleNames) {\r\n const rule = rulesStorage.load(ruleName);\r\n if (!rule) {\r\n missingRuleNames.push(ruleName);\r\n continue;\r\n }\r\n\r\n referencedRules.push({\r\n name: rule.name,\r\n content: rule.content\r\n });\r\n }\r\n\r\n if (referencedRules.length === 0) {\r\n return {\r\n augmentedPrompt: prompt,\r\n referencedRules,\r\n missingRuleNames\r\n };\r\n }\r\n\r\n const injectedRulesBlock = referencedRules\r\n .map(rule => `Rule: ${rule.name}\\n${rule.content}`)\r\n .join('\\n\\n');\r\n\r\n return {\r\n augmentedPrompt: `${prompt}\\n\\nThe following saved rules were referenced in this prompt. Apply them as additional user instructions for this message:\\n\\n${injectedRulesBlock}`,\r\n referencedRules,\r\n missingRuleNames\r\n };\r\n}\r\n"],"mappings":"AAAA,SAAS,oBAAoB;AAa7B,MAAM,uBAAuB;AAEtB,SAAS,sBAAsB,QAA6C;AAC/E,QAAM,sBAAgC,CAAC;AACvC,MAAI;AAEJ,UAAQ,QAAQ,qBAAqB,KAAK,MAAM,OAAO,MAAM;AACzD,UAAM,WAAW,MAAM,CAAC;AACxB,QAAI,CAAC,oBAAoB,SAAS,QAAQ,GAAG;AACzC,0BAAoB,KAAK,QAAQ;AAAA,IACrC;AAAA,EACJ;AAEA,MAAI,oBAAoB,WAAW,GAAG;AAClC,WAAO;AAAA,MACH,iBAAiB;AAAA,MACjB,iBAAiB,CAAC;AAAA,MAClB,kBAAkB,CAAC;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,kBAA2C,CAAC;AAClD,QAAM,mBAA6B,CAAC;AAEpC,aAAW,YAAY,qBAAqB;AACxC,UAAM,OAAO,aAAa,KAAK,QAAQ;AACvC,QAAI,CAAC,MAAM;AACP,uBAAiB,KAAK,QAAQ;AAC9B;AAAA,IACJ;AAEA,oBAAgB,KAAK;AAAA,MACjB,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,IAClB,CAAC;AAAA,EACL;AAEA,MAAI,gBAAgB,WAAW,GAAG;AAC9B,WAAO;AAAA,MACH,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,qBAAqB,gBACtB,IAAI,UAAQ,SAAS,KAAK,IAAI;AAAA,EAAK,KAAK,OAAO,EAAE,EACjD,KAAK,MAAM;AAEhB,SAAO;AAAA,IACH,iBAAiB,GAAG,MAAM;AAAA;AAAA;AAAA;AAAA,EAAiI,kBAAkB;AAAA,IAC7K;AAAA,IACA;AAAA,EACJ;AACJ;","names":[]}
@@ -1,168 +1,156 @@
1
- import * as os from 'os';
2
- import { exec } from 'child_process';
3
- import { createRequire } from 'module';
4
- // Use createRequire for ESM compatibility with native modules
5
- const require = createRequire(import.meta.url);
6
- const nodePty = require('@homebridge/node-pty-prebuilt-multiarch');
7
- /**
8
- * Check if PTY is available on this system
9
- */
10
- export function isPtyAvailable() {
11
- return nodePty !== null;
1
+ import * as os from "os";
2
+ import { exec } from "child_process";
3
+ import { createRequire } from "module";
4
+ const require2 = createRequire(import.meta.url);
5
+ const nodePty = require2("@homebridge/node-pty-prebuilt-multiarch");
6
+ function isPtyAvailable() {
7
+ return nodePty !== null;
12
8
  }
13
- export function killProcessTree(pid, signal) {
14
- if (os.platform() === 'win32') {
15
- exec(`taskkill /pid ${pid} /T /F`, (error, stdout, stderr) => {
16
- if (error) {
17
- // Fallback to normal kill if taskkill fails
18
- try {
19
- process.kill(pid, signal);
20
- }
21
- catch (e) {
22
- // Ignore if process already gone
23
- }
24
- }
25
- });
26
- }
27
- else {
28
- // POSIX: Kill process group
9
+ function killProcessTree(pid, signal) {
10
+ if (os.platform() === "win32") {
11
+ exec(`taskkill /pid ${pid} /T /F`, (error, stdout, stderr) => {
12
+ if (error) {
29
13
  try {
30
- process.kill(-pid, signal);
31
- }
32
- catch (e) {
33
- // Fallback to normal kill
34
- try {
35
- process.kill(pid, signal);
36
- }
37
- catch (e2) {
38
- // Ignore
39
- }
14
+ process.kill(pid, signal);
15
+ } catch (e) {
40
16
  }
17
+ }
18
+ });
19
+ } else {
20
+ try {
21
+ process.kill(-pid, signal);
22
+ } catch (e) {
23
+ try {
24
+ process.kill(pid, signal);
25
+ } catch (e2) {
26
+ }
41
27
  }
28
+ }
42
29
  }
43
- export function getShellCommand() {
44
- return os.platform() === 'win32' ? 'powershell.exe' : (process.env.SHELL || '/bin/bash');
30
+ function getShellCommand() {
31
+ return os.platform() === "win32" ? "powershell.exe" : process.env.SHELL || "/bin/bash";
45
32
  }
46
- /**
47
- * Execute a command using node-pty for full terminal emulation.
48
- * This provides true PTY support with colors, cursor positioning, and interactive programs.
49
- */
50
- export function executePtyCommand(command, cwd, onData, onExit) {
51
- const shell = getShellCommand();
52
- const isWindows = os.platform() === 'win32';
53
- const args = isWindows ? ['-Command', command] : ['-c', command];
54
- // Get initial terminal dimensions
55
- const cols = process.stdout.columns || 80;
56
- const rows = process.stdout.rows || 24;
57
- // Sanitize environment variables to prevent injection
58
- const sanitizedEnv = { ...process.env };
59
- const dangerousVars = [
60
- 'LD_PRELOAD',
61
- 'DYLD_INSERT_LIBRARIES',
62
- 'NODE_OPTIONS',
63
- 'BASH_ENV',
64
- 'ENV',
65
- 'PROMPT_COMMAND'
66
- ];
67
- dangerousVars.forEach(v => delete sanitizedEnv[v]);
68
- // Spawn PTY process
69
- const ptyProcess = nodePty.spawn(shell, args, {
70
- name: 'xterm-256color',
71
- cols,
72
- rows,
73
- cwd,
74
- env: {
75
- ...sanitizedEnv,
76
- TERM: 'xterm-256color',
77
- COLORTERM: 'truecolor',
78
- FORCE_COLOR: '1',
79
- CLICOLOR: '1',
80
- PYTHONUNBUFFERED: '1',
81
- },
82
- });
83
- let isRunning = true;
84
- // Stream data as it comes
85
- ptyProcess.onData((data) => {
86
- onData(data);
87
- });
88
- // Handle exit
89
- ptyProcess.onExit(({ exitCode }) => {
33
+ function executePtyCommand(command, cwd, onData, onExit) {
34
+ const shell = getShellCommand();
35
+ const isWindows = os.platform() === "win32";
36
+ const args = isWindows ? ["-Command", command] : ["-c", command];
37
+ const cols = process.stdout.columns || 80;
38
+ const rows = process.stdout.rows || 24;
39
+ const sanitizedEnv = { ...process.env };
40
+ const dangerousVars = [
41
+ "LD_PRELOAD",
42
+ "DYLD_INSERT_LIBRARIES",
43
+ "NODE_OPTIONS",
44
+ "BASH_ENV",
45
+ "ENV",
46
+ "PROMPT_COMMAND"
47
+ ];
48
+ dangerousVars.forEach((v) => delete sanitizedEnv[v]);
49
+ const ptyProcess = nodePty.spawn(shell, args, {
50
+ name: "xterm-256color",
51
+ cols,
52
+ rows,
53
+ cwd,
54
+ env: {
55
+ ...sanitizedEnv,
56
+ TERM: "xterm-256color",
57
+ COLORTERM: "truecolor",
58
+ FORCE_COLOR: "1",
59
+ CLICOLOR: "1",
60
+ PYTHONUNBUFFERED: "1"
61
+ }
62
+ });
63
+ let isRunning = true;
64
+ ptyProcess.onData((data) => {
65
+ onData(data);
66
+ });
67
+ ptyProcess.onExit(({ exitCode }) => {
68
+ isRunning = false;
69
+ if (onExit) {
70
+ onExit(exitCode);
71
+ }
72
+ });
73
+ return {
74
+ write: (data) => {
75
+ if (isRunning) {
76
+ ptyProcess.write(data);
77
+ }
78
+ },
79
+ resize: (cols2, rows2) => {
80
+ if (isRunning) {
81
+ ptyProcess.resize(cols2, rows2);
82
+ }
83
+ },
84
+ kill: () => {
85
+ if (isRunning) {
86
+ ptyProcess.kill();
90
87
  isRunning = false;
91
- if (onExit) {
92
- onExit(exitCode);
93
- }
94
- });
95
- return {
96
- write: (data) => {
97
- if (isRunning) {
98
- ptyProcess.write(data);
99
- }
100
- },
101
- resize: (cols, rows) => {
102
- if (isRunning) {
103
- ptyProcess.resize(cols, rows);
104
- }
105
- },
106
- kill: () => {
107
- if (isRunning) {
108
- ptyProcess.kill();
109
- isRunning = false;
110
- }
111
- },
112
- isRunning: () => isRunning,
113
- pid: ptyProcess.pid,
114
- };
88
+ }
89
+ },
90
+ isRunning: () => isRunning,
91
+ pid: ptyProcess.pid
92
+ };
115
93
  }
116
- /**
117
- * Execute a command interactively using PTY.
118
- * Now exclusively uses node-pty for production-grade terminal experience.
119
- */
120
- export function executeCommandInteractive(command, cwd, onData, onExit) {
121
- const ptyProc = executePtyCommand(command, cwd, (chunk) => onData(chunk, 'stdout'), onExit);
122
- return {
123
- process: null,
124
- ptyProcess: ptyProc,
125
- write: (input) => {
126
- ptyProc.write(input);
127
- },
128
- kill: () => ptyProc.kill(),
129
- signal: (signal) => {
130
- // For PTY, send control characters for signals
131
- if (signal === 'SIGINT') {
132
- ptyProc.write('\x03'); // Ctrl+C
133
- // Also try to kill after a short delay if it doesn't respond
134
- setTimeout(() => {
135
- if (ptyProc.isRunning()) {
136
- ptyProc.kill();
137
- }
138
- }, 500);
139
- }
140
- else if (signal === 'SIGTERM') {
141
- ptyProc.kill();
142
- }
143
- else {
144
- ptyProc.kill();
145
- }
146
- },
147
- resize: (cols, rows) => ptyProc.resize(cols, rows),
148
- isPty: true,
149
- };
94
+ function executeCommandInteractive(command, cwd, onData, onExit) {
95
+ const ptyProc = executePtyCommand(
96
+ command,
97
+ cwd,
98
+ (chunk) => onData(chunk, "stdout"),
99
+ onExit
100
+ );
101
+ return {
102
+ process: null,
103
+ ptyProcess: ptyProc,
104
+ write: (input) => {
105
+ ptyProc.write(input);
106
+ },
107
+ kill: () => ptyProc.kill(),
108
+ signal: (signal) => {
109
+ if (signal === "SIGINT") {
110
+ ptyProc.write("");
111
+ setTimeout(() => {
112
+ if (ptyProc.isRunning()) {
113
+ ptyProc.kill();
114
+ }
115
+ }, 500);
116
+ } else if (signal === "SIGTERM") {
117
+ ptyProc.kill();
118
+ } else {
119
+ ptyProc.kill();
120
+ }
121
+ },
122
+ resize: (cols, rows) => ptyProc.resize(cols, rows),
123
+ isPty: true
124
+ };
150
125
  }
151
- export async function executeCommand(command, cwd, onData) {
152
- return new Promise((resolve) => {
153
- let output = '';
154
- const proc = executeCommandInteractive(command, cwd, (chunk) => {
155
- output += chunk;
156
- if (onData) {
157
- onData(chunk, 'stdout');
158
- }
159
- }, (exitCode) => {
160
- resolve({
161
- stdout: output,
162
- stderr: '',
163
- exitCode,
164
- });
126
+ async function executeCommand(command, cwd, onData) {
127
+ return new Promise((resolve) => {
128
+ let output = "";
129
+ const proc = executeCommandInteractive(
130
+ command,
131
+ cwd,
132
+ (chunk) => {
133
+ output += chunk;
134
+ if (onData) {
135
+ onData(chunk, "stdout");
136
+ }
137
+ },
138
+ (exitCode) => {
139
+ resolve({
140
+ stdout: output,
141
+ stderr: "",
142
+ exitCode
165
143
  });
166
- });
144
+ }
145
+ );
146
+ });
167
147
  }
148
+ export {
149
+ executeCommand,
150
+ executeCommandInteractive,
151
+ executePtyCommand,
152
+ getShellCommand,
153
+ isPtyAvailable,
154
+ killProcessTree
155
+ };
168
156
  //# sourceMappingURL=shell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/shell.ts"],"sourcesContent":["import * as os from 'os';\r\nimport { ChildProcess, exec } from 'child_process';\r\nimport { createRequire } from 'module';\r\n\r\n// Use createRequire for ESM compatibility with native modules\r\nconst require = createRequire(import.meta.url);\r\nconst nodePty = require('@homebridge/node-pty-prebuilt-multiarch');\r\n\r\n/**\r\n * Check if PTY is available on this system\r\n */\r\nexport function isPtyAvailable(): boolean {\r\n return nodePty !== null;\r\n}\r\n\r\n/**\r\n * PTY-based process interface for true terminal emulation\r\n */\r\nexport interface PtyProcess {\r\n /** Write data to the terminal */\r\n write: (data: string) => void;\r\n /** Resize the terminal */\r\n resize: (cols: number, rows: number) => void;\r\n /** Kill the process */\r\n kill: () => void;\r\n /** Check if process is still running */\r\n isRunning: () => boolean;\r\n /** Get the process ID */\r\n pid: number;\r\n}\r\n\r\nexport function killProcessTree(pid: number, signal: string | number) {\r\n if (os.platform() === 'win32') {\r\n exec(`taskkill /pid ${pid} /T /F`, (error, stdout, stderr) => {\r\n if (error) {\r\n // Fallback to normal kill if taskkill fails\r\n try {\r\n process.kill(pid, signal);\r\n } catch (e) {\r\n // Ignore if process already gone\r\n }\r\n }\r\n });\r\n } else {\r\n // POSIX: Kill process group\r\n try {\r\n process.kill(-pid, signal);\r\n } catch (e) {\r\n // Fallback to normal kill\r\n try {\r\n process.kill(pid, signal);\r\n } catch (e2) {\r\n // Ignore\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function getShellCommand(): string {\r\n return os.platform() === 'win32' ? 'powershell.exe' : (process.env.SHELL || '/bin/bash');\r\n}\r\n\r\nexport interface InteractiveProcess {\r\n process: ChildProcess | null;\r\n ptyProcess?: PtyProcess;\r\n write: (input: string) => void;\r\n kill: () => void;\r\n signal: (signal: NodeJS.Signals) => void;\r\n resize?: (cols: number, rows: number) => void;\r\n isPty: boolean;\r\n}\r\n\r\n/**\r\n * Execute a command using node-pty for full terminal emulation.\r\n * This provides true PTY support with colors, cursor positioning, and interactive programs.\r\n */\r\nexport function executePtyCommand(\r\n command: string,\r\n cwd: string,\r\n onData: (chunk: string) => void,\r\n onExit?: (exitCode: number) => void\r\n): PtyProcess {\r\n const shell = getShellCommand();\r\n const isWindows = os.platform() === 'win32';\r\n const args = isWindows ? ['-Command', command] : ['-c', command];\r\n\r\n // Get initial terminal dimensions\r\n const cols = process.stdout.columns || 80;\r\n const rows = process.stdout.rows || 24;\r\n\r\n // Sanitize environment variables to prevent injection\r\n const sanitizedEnv = { ...process.env };\r\n const dangerousVars = [\r\n 'LD_PRELOAD',\r\n 'DYLD_INSERT_LIBRARIES',\r\n 'NODE_OPTIONS',\r\n 'BASH_ENV',\r\n 'ENV',\r\n 'PROMPT_COMMAND'\r\n ];\r\n dangerousVars.forEach(v => delete sanitizedEnv[v]);\r\n\r\n // Spawn PTY process\r\n const ptyProcess = nodePty.spawn(shell, args, {\r\n name: 'xterm-256color',\r\n cols,\r\n rows,\r\n cwd,\r\n env: {\r\n ...sanitizedEnv,\r\n TERM: 'xterm-256color',\r\n COLORTERM: 'truecolor',\r\n FORCE_COLOR: '1',\r\n CLICOLOR: '1',\r\n PYTHONUNBUFFERED: '1',\r\n } as { [key: string]: string },\r\n });\r\n\r\n let isRunning = true;\r\n\r\n // Stream data as it comes\r\n ptyProcess.onData((data: string) => {\r\n onData(data);\r\n });\r\n\r\n // Handle exit\r\n ptyProcess.onExit(({ exitCode }: { exitCode: number }) => {\r\n isRunning = false;\r\n if (onExit) {\r\n onExit(exitCode);\r\n }\r\n });\r\n\r\n return {\r\n write: (data: string) => {\r\n if (isRunning) {\r\n ptyProcess.write(data);\r\n }\r\n },\r\n resize: (cols: number, rows: number) => {\r\n if (isRunning) {\r\n ptyProcess.resize(cols, rows);\r\n }\r\n },\r\n kill: () => {\r\n if (isRunning) {\r\n ptyProcess.kill();\r\n isRunning = false;\r\n }\r\n },\r\n isRunning: () => isRunning,\r\n pid: ptyProcess.pid,\r\n };\r\n}\r\n\r\n/**\r\n * Execute a command interactively using PTY.\r\n * Now exclusively uses node-pty for production-grade terminal experience.\r\n */\r\nexport function executeCommandInteractive(\r\n command: string,\r\n cwd: string,\r\n onData: (chunk: string, type: 'stdout' | 'stderr') => void,\r\n onExit?: (exitCode: number) => void\r\n): InteractiveProcess {\r\n const ptyProc = executePtyCommand(\r\n command,\r\n cwd,\r\n (chunk) => onData(chunk, 'stdout'),\r\n onExit\r\n );\r\n\r\n return {\r\n process: null,\r\n ptyProcess: ptyProc,\r\n write: (input: string) => {\r\n ptyProc.write(input);\r\n },\r\n kill: () => ptyProc.kill(),\r\n signal: (signal: NodeJS.Signals) => {\r\n // For PTY, send control characters for signals\r\n if (signal === 'SIGINT') {\r\n ptyProc.write('\\x03'); // Ctrl+C\r\n // Also try to kill after a short delay if it doesn't respond\r\n setTimeout(() => {\r\n if (ptyProc.isRunning()) {\r\n ptyProc.kill();\r\n }\r\n }, 500);\r\n } else if (signal === 'SIGTERM') {\r\n ptyProc.kill();\r\n } else {\r\n ptyProc.kill();\r\n }\r\n },\r\n resize: (cols: number, rows: number) => ptyProc.resize(cols, rows),\r\n isPty: true,\r\n };\r\n}\r\n\r\nexport async function executeCommand(\r\n command: string,\r\n cwd: string,\r\n onData?: (chunk: string, type: 'stdout' | 'stderr') => void\r\n): Promise<{ stdout: string; stderr: string; exitCode: number }> {\r\n return new Promise((resolve) => {\r\n let output = '';\r\n\r\n const proc = executeCommandInteractive(\r\n command,\r\n cwd,\r\n (chunk) => {\r\n output += chunk;\r\n if (onData) {\r\n onData(chunk, 'stdout');\r\n }\r\n },\r\n (exitCode) => {\r\n resolve({\r\n stdout: output,\r\n stderr: '',\r\n exitCode,\r\n });\r\n }\r\n );\r\n });\r\n}\r\n"],"mappings":"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","names":["require","cols","rows"]}
@@ -1,25 +1,26 @@
1
- /**
2
- * Global state manager for CLI modes and settings
3
- */
4
- export class StateManager {
5
- static instance;
6
- autoAcceptMode = false;
7
- constructor() { }
8
- static getInstance() {
9
- if (!StateManager.instance) {
10
- StateManager.instance = new StateManager();
11
- }
12
- return StateManager.instance;
13
- }
14
- isAutoAcceptMode() {
15
- return this.autoAcceptMode;
16
- }
17
- setAutoAcceptMode(enabled) {
18
- this.autoAcceptMode = enabled;
19
- }
20
- toggleAutoAcceptMode() {
21
- this.autoAcceptMode = !this.autoAcceptMode;
22
- return this.autoAcceptMode;
1
+ class StateManager {
2
+ static instance;
3
+ autoAcceptMode = false;
4
+ constructor() {
5
+ }
6
+ static getInstance() {
7
+ if (!StateManager.instance) {
8
+ StateManager.instance = new StateManager();
23
9
  }
10
+ return StateManager.instance;
11
+ }
12
+ isAutoAcceptMode() {
13
+ return this.autoAcceptMode;
14
+ }
15
+ setAutoAcceptMode(enabled) {
16
+ this.autoAcceptMode = enabled;
17
+ }
18
+ toggleAutoAcceptMode() {
19
+ this.autoAcceptMode = !this.autoAcceptMode;
20
+ return this.autoAcceptMode;
21
+ }
24
22
  }
23
+ export {
24
+ StateManager
25
+ };
25
26
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,CAAe;IAC9B,cAAc,GAAY,KAAK,CAAC;IAExC,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iBAAiB,CAAC,OAAgB;QAChC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"sources":["../../src/utils/state.ts"],"sourcesContent":["/**\r\n * Global state manager for CLI modes and settings\r\n */\r\n\r\nexport class StateManager {\r\n private static instance: StateManager;\r\n private autoAcceptMode: boolean = false;\r\n\r\n private constructor() {}\r\n\r\n static getInstance(): StateManager {\r\n if (!StateManager.instance) {\r\n StateManager.instance = new StateManager();\r\n }\r\n return StateManager.instance;\r\n }\r\n\r\n isAutoAcceptMode(): boolean {\r\n return this.autoAcceptMode;\r\n }\r\n\r\n setAutoAcceptMode(enabled: boolean): void {\r\n this.autoAcceptMode = enabled;\r\n }\r\n\r\n toggleAutoAcceptMode(): boolean {\r\n this.autoAcceptMode = !this.autoAcceptMode;\r\n return this.autoAcceptMode;\r\n }\r\n}\r\n"],"mappings":"AAIO,MAAM,aAAa;AAAA,EACxB,OAAe;AAAA,EACP,iBAA0B;AAAA,EAE1B,cAAc;AAAA,EAAC;AAAA,EAEvB,OAAO,cAA4B;AACjC,QAAI,CAAC,aAAa,UAAU;AAC1B,mBAAa,WAAW,IAAI,aAAa;AAAA,IAC3C;AACA,WAAO,aAAa;AAAA,EACtB;AAAA,EAEA,mBAA4B;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,kBAAkB,SAAwB;AACxC,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,uBAAgC;AAC9B,SAAK,iBAAiB,CAAC,KAAK;AAC5B,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}