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,346 +1,298 @@
1
- import * as vm from 'vm';
2
- import * as path from 'path';
3
- import * as fs from 'fs';
4
- import { spawn } from 'child_process';
5
- import * as ts from 'typescript';
6
- /**
7
- * File extension to language mapping
8
- */
1
+ import * as vm from "vm";
2
+ import * as path from "path";
3
+ import * as fs from "fs";
4
+ import { spawn } from "child_process";
5
+ import * as ts from "typescript";
9
6
  const LANGUAGE_MAP = {
10
- // JavaScript
11
- '.js': 'javascript',
12
- '.mjs': 'javascript',
13
- '.cjs': 'javascript',
14
- '.jsx': 'javascript',
15
- // TypeScript
16
- '.ts': 'typescript',
17
- '.tsx': 'typescript',
18
- '.mts': 'typescript',
19
- '.cts': 'typescript',
20
- // Python
21
- '.py': 'python',
22
- '.pyw': 'python',
23
- // JSON
24
- '.json': 'json',
25
- '.jsonc': 'json',
26
- // Skip syntax checking for these (text/markup/config)
27
- '.txt': 'text',
28
- '.md': 'markdown',
29
- '.markdown': 'markdown',
30
- '.log': 'log',
31
- '.csv': 'csv',
32
- '.html': 'html',
33
- '.htm': 'html',
34
- '.css': 'css',
35
- '.scss': 'scss',
36
- '.sass': 'sass',
37
- '.less': 'less',
38
- '.xml': 'xml',
39
- '.yaml': 'yaml',
40
- '.yml': 'yaml',
41
- '.toml': 'toml',
42
- '.ini': 'ini',
43
- '.cfg': 'config',
44
- '.conf': 'config',
45
- '.env': 'env',
46
- '.gitignore': 'gitignore',
47
- '.dockerignore': 'dockerignore',
48
- '.editorconfig': 'config',
49
- '.prettierrc': 'config',
50
- '.eslintrc': 'config',
51
- '.babelrc': 'config',
7
+ // JavaScript
8
+ ".js": "javascript",
9
+ ".mjs": "javascript",
10
+ ".cjs": "javascript",
11
+ ".jsx": "javascript",
12
+ // TypeScript
13
+ ".ts": "typescript",
14
+ ".tsx": "typescript",
15
+ ".mts": "typescript",
16
+ ".cts": "typescript",
17
+ // Python
18
+ ".py": "python",
19
+ ".pyw": "python",
20
+ // JSON
21
+ ".json": "json",
22
+ ".jsonc": "json",
23
+ // Skip syntax checking for these (text/markup/config)
24
+ ".txt": "text",
25
+ ".md": "markdown",
26
+ ".markdown": "markdown",
27
+ ".log": "log",
28
+ ".csv": "csv",
29
+ ".html": "html",
30
+ ".htm": "html",
31
+ ".css": "css",
32
+ ".scss": "scss",
33
+ ".sass": "sass",
34
+ ".less": "less",
35
+ ".xml": "xml",
36
+ ".yaml": "yaml",
37
+ ".yml": "yaml",
38
+ ".toml": "toml",
39
+ ".ini": "ini",
40
+ ".cfg": "config",
41
+ ".conf": "config",
42
+ ".env": "env",
43
+ ".gitignore": "gitignore",
44
+ ".dockerignore": "dockerignore",
45
+ ".editorconfig": "config",
46
+ ".prettierrc": "config",
47
+ ".eslintrc": "config",
48
+ ".babelrc": "config"
52
49
  };
53
- /**
54
- * Languages that should skip syntax checking
55
- */
56
- const SKIP_SYNTAX_CHECK = new Set([
57
- 'text',
58
- 'markdown',
59
- 'log',
60
- 'csv',
61
- 'html',
62
- 'css',
63
- 'scss',
64
- 'sass',
65
- 'less',
66
- 'xml',
67
- 'yaml',
68
- 'toml',
69
- 'ini',
70
- 'config',
71
- 'env',
72
- 'gitignore',
73
- 'dockerignore',
50
+ const SKIP_SYNTAX_CHECK = /* @__PURE__ */ new Set([
51
+ "text",
52
+ "markdown",
53
+ "log",
54
+ "csv",
55
+ "html",
56
+ "css",
57
+ "scss",
58
+ "sass",
59
+ "less",
60
+ "xml",
61
+ "yaml",
62
+ "toml",
63
+ "ini",
64
+ "config",
65
+ "env",
66
+ "gitignore",
67
+ "dockerignore"
74
68
  ]);
75
- /**
76
- * Detect language from file path
77
- */
78
- export function detectLanguage(filePath) {
79
- const ext = path.extname(filePath).toLowerCase();
80
- const basename = path.basename(filePath).toLowerCase();
81
- // Check for special filenames without extensions
82
- if (!ext) {
83
- // Common config files without extensions
84
- if (basename === 'dockerfile')
85
- return 'dockerfile';
86
- if (basename === 'makefile')
87
- return 'makefile';
88
- if (basename === '.gitignore')
89
- return 'gitignore';
90
- if (basename === '.dockerignore')
91
- return 'dockerignore';
92
- if (basename === '.env')
93
- return 'env';
94
- return 'unknown';
95
- }
96
- return LANGUAGE_MAP[ext] || 'unknown';
69
+ function detectLanguage(filePath) {
70
+ const ext = path.extname(filePath).toLowerCase();
71
+ const basename = path.basename(filePath).toLowerCase();
72
+ if (!ext) {
73
+ if (basename === "dockerfile") return "dockerfile";
74
+ if (basename === "makefile") return "makefile";
75
+ if (basename === ".gitignore") return "gitignore";
76
+ if (basename === ".dockerignore") return "dockerignore";
77
+ if (basename === ".env") return "env";
78
+ return "unknown";
79
+ }
80
+ return LANGUAGE_MAP[ext] || "unknown";
97
81
  }
98
- /**
99
- * Check JavaScript syntax using vm.Script
100
- */
101
82
  function checkJavaScriptSyntax(content) {
102
- try {
103
- // Use vm.Script to parse and check syntax without execution
104
- new vm.Script(content, { filename: 'syntax-check.js' });
105
- return {
106
- success: true,
107
- language: 'JavaScript',
108
- };
109
- }
110
- catch (error) {
111
- const err = error;
112
- return {
113
- success: false,
114
- language: 'JavaScript',
115
- error: err.message,
116
- };
117
- }
83
+ try {
84
+ new vm.Script(content, { filename: "syntax-check.js" });
85
+ return {
86
+ success: true,
87
+ language: "JavaScript"
88
+ };
89
+ } catch (error) {
90
+ const err = error;
91
+ return {
92
+ success: false,
93
+ language: "JavaScript",
94
+ error: err.message
95
+ };
96
+ }
118
97
  }
119
- /**
120
- * Check TypeScript syntax using the TypeScript compiler API
121
- */
122
98
  function checkTypeScriptSyntax(content, filePath) {
123
- try {
124
- const isTsx = filePath.endsWith('.tsx');
125
- const compilerOptions = {
126
- noEmit: true,
127
- target: ts.ScriptTarget.ESNext,
128
- module: ts.ModuleKind.ESNext,
129
- jsx: isTsx ? ts.JsxEmit.React : undefined,
130
- strict: false, // Don't enforce strict mode for syntax checking
131
- skipLibCheck: true,
132
- allowJs: true,
133
- };
134
- // Create a simple in-memory source file
135
- const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.ESNext, true, isTsx ? ts.ScriptKind.TSX : ts.ScriptKind.TS);
136
- // Check for parse errors (syntax errors)
137
- const parseErrors = [];
138
- // Walk through the source file to find syntax errors
139
- // TypeScript's createSourceFile doesn't throw on syntax errors,
140
- // but we can check for diagnostic messages
141
- const parseDiagnostics = sourceFile.parseDiagnostics;
142
- if (parseDiagnostics && parseDiagnostics.length > 0) {
143
- for (const diag of parseDiagnostics) {
144
- const message = ts.flattenDiagnosticMessageText(diag.messageText, '\n');
145
- const lineAndChar = sourceFile.getLineAndCharacterOfPosition(diag.start || 0);
146
- parseErrors.push(`Line ${lineAndChar.line + 1}: ${message}`);
147
- }
148
- }
149
- if (parseErrors.length > 0) {
150
- return {
151
- success: false,
152
- language: 'TypeScript',
153
- error: parseErrors.join('\n'),
154
- };
155
- }
156
- return {
157
- success: true,
158
- language: 'TypeScript',
159
- };
99
+ try {
100
+ const isTsx = filePath.endsWith(".tsx");
101
+ const compilerOptions = {
102
+ noEmit: true,
103
+ target: ts.ScriptTarget.ESNext,
104
+ module: ts.ModuleKind.ESNext,
105
+ jsx: isTsx ? ts.JsxEmit.React : void 0,
106
+ strict: false,
107
+ // Don't enforce strict mode for syntax checking
108
+ skipLibCheck: true,
109
+ allowJs: true
110
+ };
111
+ const sourceFile = ts.createSourceFile(
112
+ filePath,
113
+ content,
114
+ ts.ScriptTarget.ESNext,
115
+ true,
116
+ isTsx ? ts.ScriptKind.TSX : ts.ScriptKind.TS
117
+ );
118
+ const parseErrors = [];
119
+ const parseDiagnostics = sourceFile.parseDiagnostics;
120
+ if (parseDiagnostics && parseDiagnostics.length > 0) {
121
+ for (const diag of parseDiagnostics) {
122
+ const message = ts.flattenDiagnosticMessageText(diag.messageText, "\n");
123
+ const lineAndChar = sourceFile.getLineAndCharacterOfPosition(diag.start || 0);
124
+ parseErrors.push(`Line ${lineAndChar.line + 1}: ${message}`);
125
+ }
160
126
  }
161
- catch (error) {
162
- const err = error;
163
- return {
164
- success: false,
165
- language: 'TypeScript',
166
- error: err.message,
167
- };
127
+ if (parseErrors.length > 0) {
128
+ return {
129
+ success: false,
130
+ language: "TypeScript",
131
+ error: parseErrors.join("\n")
132
+ };
168
133
  }
134
+ return {
135
+ success: true,
136
+ language: "TypeScript"
137
+ };
138
+ } catch (error) {
139
+ const err = error;
140
+ return {
141
+ success: false,
142
+ language: "TypeScript",
143
+ error: err.message
144
+ };
145
+ }
169
146
  }
170
- /**
171
- * Check Python syntax using the py_compile module
172
- */
173
147
  async function checkPythonSyntax(filePath) {
174
- return new Promise((resolve) => {
175
- // Use python -m py_compile to check syntax
176
- const pythonCommands = process.platform === 'win32'
177
- ? ['python', 'python3', 'py']
178
- : ['python3', 'python'];
179
- let attemptIndex = 0;
180
- const tryNextCommand = () => {
181
- if (attemptIndex >= pythonCommands.length) {
182
- // No Python found
183
- resolve({
184
- success: true,
185
- language: 'Python',
186
- skipped: true,
187
- skipReason: 'Python interpreter not found. Syntax check skipped.',
188
- });
189
- return;
190
- }
191
- const pythonCmd = pythonCommands[attemptIndex];
192
- attemptIndex++;
193
- const proc = spawn(pythonCmd, ['-m', 'py_compile', filePath], {
194
- stdio: ['pipe', 'pipe', 'pipe'],
195
- timeout: 5000, // 5 second timeout
196
- });
197
- // Close stdin to prevent hanging if python expects input
198
- proc.stdin.end();
199
- let stderr = '';
200
- let timeoutTriggered = false;
201
- // Enforce hard timeout and SIGKILL if it hangs
202
- const timeoutTimer = setTimeout(() => {
203
- timeoutTriggered = true;
204
- proc.kill('SIGKILL');
205
- }, 5000);
206
- proc.stderr.on('data', (data) => {
207
- stderr += data.toString();
208
- });
209
- proc.on('error', () => {
210
- clearTimeout(timeoutTimer);
211
- if (timeoutTriggered) {
212
- resolve({
213
- success: false,
214
- language: 'Python',
215
- error: 'Syntax check timed out after 5 seconds',
216
- });
217
- return;
218
- }
219
- // This python command failed, try next
220
- tryNextCommand();
221
- });
222
- proc.on('close', (code) => {
223
- clearTimeout(timeoutTimer);
224
- if (timeoutTriggered) {
225
- resolve({
226
- success: false,
227
- language: 'Python',
228
- error: 'Syntax check timed out after 5 seconds',
229
- });
230
- return;
231
- }
232
- if (code === 0) {
233
- resolve({
234
- success: true,
235
- language: 'Python',
236
- });
237
- }
238
- else {
239
- // Parse the error message
240
- const errorLines = stderr.trim().split('\n');
241
- const relevantError = errorLines.length > 0
242
- ? errorLines[errorLines.length - 1]
243
- : 'Syntax error detected';
244
- resolve({
245
- success: false,
246
- language: 'Python',
247
- error: relevantError,
248
- });
249
- }
250
- });
251
- };
148
+ return new Promise((resolve) => {
149
+ const pythonCommands = process.platform === "win32" ? ["python", "python3", "py"] : ["python3", "python"];
150
+ let attemptIndex = 0;
151
+ const tryNextCommand = () => {
152
+ if (attemptIndex >= pythonCommands.length) {
153
+ resolve({
154
+ success: true,
155
+ language: "Python",
156
+ skipped: true,
157
+ skipReason: "Python interpreter not found. Syntax check skipped."
158
+ });
159
+ return;
160
+ }
161
+ const pythonCmd = pythonCommands[attemptIndex];
162
+ attemptIndex++;
163
+ const proc = spawn(pythonCmd, ["-m", "py_compile", filePath], {
164
+ stdio: ["pipe", "pipe", "pipe"],
165
+ timeout: 5e3
166
+ // 5 second timeout
167
+ });
168
+ proc.stdin.end();
169
+ let stderr = "";
170
+ let timeoutTriggered = false;
171
+ const timeoutTimer = setTimeout(() => {
172
+ timeoutTriggered = true;
173
+ proc.kill("SIGKILL");
174
+ }, 5e3);
175
+ proc.stderr.on("data", (data) => {
176
+ stderr += data.toString();
177
+ });
178
+ proc.on("error", () => {
179
+ clearTimeout(timeoutTimer);
180
+ if (timeoutTriggered) {
181
+ resolve({
182
+ success: false,
183
+ language: "Python",
184
+ error: "Syntax check timed out after 5 seconds"
185
+ });
186
+ return;
187
+ }
252
188
  tryNextCommand();
253
- });
254
- }
255
- /**
256
- * Check JSON syntax using JSON.parse
257
- */
258
- function checkJsonSyntax(content) {
259
- try {
260
- JSON.parse(content);
261
- return {
262
- success: true,
263
- language: 'JSON',
264
- };
265
- }
266
- catch (error) {
267
- const err = error;
268
- return {
189
+ });
190
+ proc.on("close", (code) => {
191
+ clearTimeout(timeoutTimer);
192
+ if (timeoutTriggered) {
193
+ resolve({
269
194
  success: false,
270
- language: 'JSON',
271
- error: err.message,
272
- };
273
- }
274
- }
275
- /**
276
- * Main syntax check function
277
- * Checks the syntax of a file based on its extension
278
- */
279
- export async function checkSyntax(filePath, content) {
280
- const language = detectLanguage(filePath);
281
- // Skip syntax checking for text/config files
282
- if (SKIP_SYNTAX_CHECK.has(language)) {
283
- return {
284
- success: true,
285
- language: language.charAt(0).toUpperCase() + language.slice(1),
286
- skipped: true,
287
- skipReason: `Syntax check skipped for ${language} files`,
288
- };
289
- }
290
- // Skip unknown file types
291
- if (language === 'unknown') {
292
- return {
293
- success: true,
294
- language: 'Unknown',
295
- skipped: true,
296
- skipReason: 'Syntax check skipped for unknown file type',
297
- };
298
- }
299
- // Read content from file if not provided
300
- let fileContent = content;
301
- if (!fileContent) {
302
- try {
303
- fileContent = fs.readFileSync(filePath, 'utf-8');
195
+ language: "Python",
196
+ error: "Syntax check timed out after 5 seconds"
197
+ });
198
+ return;
304
199
  }
305
- catch (error) {
306
- return {
307
- success: true,
308
- language: language.charAt(0).toUpperCase() + language.slice(1),
309
- skipped: true,
310
- skipReason: 'Could not read file for syntax check',
311
- };
200
+ if (code === 0) {
201
+ resolve({
202
+ success: true,
203
+ language: "Python"
204
+ });
205
+ } else {
206
+ const errorLines = stderr.trim().split("\n");
207
+ const relevantError = errorLines.length > 0 ? errorLines[errorLines.length - 1] : "Syntax error detected";
208
+ resolve({
209
+ success: false,
210
+ language: "Python",
211
+ error: relevantError
212
+ });
312
213
  }
313
- }
314
- // Perform language-specific syntax check
315
- switch (language) {
316
- case 'javascript':
317
- return checkJavaScriptSyntax(fileContent);
318
- case 'typescript':
319
- return checkTypeScriptSyntax(fileContent, filePath);
320
- case 'python':
321
- // Python requires the file to be on disk for py_compile
322
- return await checkPythonSyntax(filePath);
323
- case 'json':
324
- return checkJsonSyntax(fileContent);
325
- default:
326
- return {
327
- success: true,
328
- language: language.charAt(0).toUpperCase() + language.slice(1),
329
- skipped: true,
330
- skipReason: `Syntax check not implemented for ${language}`,
331
- };
332
- }
214
+ });
215
+ };
216
+ tryNextCommand();
217
+ });
333
218
  }
334
- /**
335
- * Format syntax check result as a human-readable string
336
- */
337
- export function formatSyntaxCheckResult(result) {
338
- if (result.skipped) {
339
- return `(${result.skipReason})`;
340
- }
341
- if (result.success) {
342
- return `✓ Syntax check passed (${result.language})`;
219
+ function checkJsonSyntax(content) {
220
+ try {
221
+ JSON.parse(content);
222
+ return {
223
+ success: true,
224
+ language: "JSON"
225
+ };
226
+ } catch (error) {
227
+ const err = error;
228
+ return {
229
+ success: false,
230
+ language: "JSON",
231
+ error: err.message
232
+ };
233
+ }
234
+ }
235
+ async function checkSyntax(filePath, content) {
236
+ const language = detectLanguage(filePath);
237
+ if (SKIP_SYNTAX_CHECK.has(language)) {
238
+ return {
239
+ success: true,
240
+ language: language.charAt(0).toUpperCase() + language.slice(1),
241
+ skipped: true,
242
+ skipReason: `Syntax check skipped for ${language} files`
243
+ };
244
+ }
245
+ if (language === "unknown") {
246
+ return {
247
+ success: true,
248
+ language: "Unknown",
249
+ skipped: true,
250
+ skipReason: "Syntax check skipped for unknown file type"
251
+ };
252
+ }
253
+ let fileContent = content;
254
+ if (!fileContent) {
255
+ try {
256
+ fileContent = fs.readFileSync(filePath, "utf-8");
257
+ } catch (error) {
258
+ return {
259
+ success: true,
260
+ language: language.charAt(0).toUpperCase() + language.slice(1),
261
+ skipped: true,
262
+ skipReason: "Could not read file for syntax check"
263
+ };
343
264
  }
344
- return `✗ Syntax error (${result.language}): ${result.error}`;
265
+ }
266
+ switch (language) {
267
+ case "javascript":
268
+ return checkJavaScriptSyntax(fileContent);
269
+ case "typescript":
270
+ return checkTypeScriptSyntax(fileContent, filePath);
271
+ case "python":
272
+ return await checkPythonSyntax(filePath);
273
+ case "json":
274
+ return checkJsonSyntax(fileContent);
275
+ default:
276
+ return {
277
+ success: true,
278
+ language: language.charAt(0).toUpperCase() + language.slice(1),
279
+ skipped: true,
280
+ skipReason: `Syntax check not implemented for ${language}`
281
+ };
282
+ }
345
283
  }
284
+ function formatSyntaxCheckResult(result) {
285
+ if (result.skipped) {
286
+ return `(${result.skipReason})`;
287
+ }
288
+ if (result.success) {
289
+ return `\u2713 Syntax check passed (${result.language})`;
290
+ }
291
+ return `\u2717 Syntax error (${result.language}): ${result.error}`;
292
+ }
293
+ export {
294
+ checkSyntax,
295
+ detectLanguage,
296
+ formatSyntaxCheckResult
297
+ };
346
298
  //# sourceMappingURL=syntax-checker.js.map