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 +1 @@
1
- {"version":3,"file":"ai-service-client.js","sourceRoot":"","sources":["../../src/services/ai-service-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/services/ai-service-client.ts"],"sourcesContent":["/**\r\n * AI Service Client\r\n * \r\n * Handles communication with the backend AI proxy service for streaming\r\n * AI chat requests. Replaces direct Gemini SDK usage in the CLI.\r\n */\r\n\r\nimport { apiClient } from './api-client.js';\r\nimport type { ToolSchema } from '../tools/types.js';\r\nimport type { EnvironmentContext } from '../types/index.js';\r\nimport { readFileSync, existsSync } from 'fs';\r\nimport { join } from 'path';\r\nimport { homedir } from 'os';\r\nimport { IS_DEV_BUILD, DEV_BACKEND_URL, PRODUCTION_BACKEND_URL } from '../config/build-config.js';\r\nimport { logWarning } from '../utils/logger.js';\r\nimport { ollamaService, OllamaChatMessage, OllamaTool, OllamaService, OllamaToolCall } from './ollama-service.js';\r\nimport { quickLog } from '../utils/conversation-logger.js';\r\n\r\n/**\r\n * Message format for AI chat requests\r\n */\r\nexport interface Message {\r\n role: 'system' | 'user' | 'assistant' | 'tool';\r\n content: string;\r\n tool_call_id?: string; // For tool messages - references the tool call being responded to\r\n tool_calls?: ToolCall[]; // For assistant messages - tool calls made by the assistant\r\n thinking?: string; // For assistant messages - thinking/reasoning content from the AI (kept only for most recent turn)\r\n thinkingSignature?: string; // For assistant messages - signature for Claude thinking blocks (must be passed back)\r\n}\r\n\r\n/**\r\n * Tool call from AI model\r\n */\r\nexport interface ToolCall {\r\n id: string;\r\n name: string;\r\n arguments: Record<string, any>;\r\n thoughtSignature?: string; // For Gemini thinking models - must be passed back\r\n}\r\n\r\n/**\r\n * Stream chunk types from backend\r\n */\r\nexport interface TextChunk {\r\n type: 'text';\r\n content: string;\r\n}\r\n\r\nexport interface ToolCallChunk {\r\n type: 'tool_call';\r\n toolCall: ToolCall;\r\n}\r\n\r\nexport interface DoneChunk {\r\n type: 'done';\r\n}\r\n\r\nexport interface ErrorChunk {\r\n type: 'error';\r\n message: string;\r\n code: string;\r\n}\r\n\r\nexport interface ThoughtChunk {\r\n type: 'thought';\r\n content: string;\r\n}\r\n\r\nexport interface ThinkingSignatureChunk {\r\n type: 'thinking_signature';\r\n signature: string;\r\n}\r\n\r\nexport interface FileDescriptionsChunk {\r\n type: 'file_descriptions';\r\n descriptions: Record<string, { description: string; filename: string; mimeType: string }>;\r\n}\r\n\r\nexport type StreamChunk = TextChunk | ToolCallChunk | DoneChunk | ErrorChunk | ThoughtChunk | ThinkingSignatureChunk | FileDescriptionsChunk;\r\n\r\n/**\r\n * Chat request payload\r\n */\r\ninterface ChatRequest {\r\n model: string;\r\n messages: Message[];\r\n tools: ToolSchema[];\r\n stream: boolean;\r\n clientType?: string; // Client type (cli, desktop, etc.)\r\n environmentContext?: EnvironmentContext;\r\n mode?: string;\r\n thinkingConfig?: Record<string, any>;\r\n}\r\n\r\n/**\r\n * AI Service Client for streaming chat requests to backend\r\n */\r\nexport class AIServiceClient {\r\n private baseURL: string;\r\n private maxRetries: number = 5;\r\n private retryDelay: number = 1000; // Start with 1 second\r\n private maxRetryDelay: number = 30000;\r\n private maxRetryAfterDelay: number = 60000;\r\n private highDemandMessage: string = 'Very high demand right now. Please wait and retry after some time.';\r\n\r\n constructor() {\r\n // Don't set baseURL yet - lazy load it when first used\r\n // This allows environment variables to be loaded first\r\n this.baseURL = '';\r\n }\r\n\r\n /**\r\n * Get the base URL for API requests\r\n * Lazy-loaded to ensure environment variables are loaded first\r\n */\r\n private getBaseURL(): string {\r\n if (!this.baseURL) {\r\n // Import build config - values frozen at compile time for security\r\n // SECURITY: This prevents malicious .env files from overriding production URLs\r\n\r\n // Use production URL in production builds, localhost only in dev builds\r\n this.baseURL = IS_DEV_BUILD ? DEV_BACKEND_URL : PRODUCTION_BACKEND_URL;\r\n }\r\n return this.baseURL;\r\n }\r\n\r\n /**\r\n * Stream chat request to backend AI proxy\r\n * \r\n * @param model - The AI model to use (e.g., 'gemini-2.5-flash')\r\n * @param messages - Conversation history including system, user, assistant, and tool messages\r\n * @param tools - Available tool schemas for the AI to use\r\n * @param environmentContext - Optional environment context (OS, shell, cwd, etc.)\r\n * @param mode - Optional mode (default, plan, command)\r\n * @yields Stream chunks (text, tool calls, done, or error events)\r\n */\r\n async *streamChat(\r\n model: string,\r\n messages: Message[],\r\n tools: ToolSchema[],\r\n environmentContext?: EnvironmentContext,\r\n mode?: string,\r\n thinkingConfig?: Record<string, any>,\r\n abortSignal?: AbortSignal\r\n ): AsyncGenerator<StreamChunk, void, unknown> {\r\n // Check if using a local Ollama model\r\n if (this.isUsingLocalModel()) {\r\n const localModel = this.getCurrentModel();\r\n const supportsTools = OllamaService.modelSupportsTools(localModel);\r\n\r\n quickLog(`[${new Date().toISOString()}] [AIServiceClient] Routing to local Ollama model: ${localModel}, supportsTools: ${supportsTools}\\n`);\r\n\r\n // Show warning only if tools are provided but model doesn't support them\r\n if (tools.length > 0 && !supportsTools) {\r\n yield {\r\n type: 'text',\r\n content: `⚠️ Note: Model \"${localModel}\" does not support tool calling. Running in text-only mode.\\n\\n`,\r\n };\r\n }\r\n\r\n // Route to local Ollama with tools\r\n yield* this.streamLocalChat(localModel, messages, tools);\r\n return;\r\n }\r\n\r\n // Build request payload for cloud backend\r\n const payload: ChatRequest = {\r\n model,\r\n messages,\r\n tools,\r\n stream: true,\r\n clientType: 'cli', // Tell backend this is a CLI request\r\n environmentContext,\r\n mode,\r\n thinkingConfig,\r\n };\r\n\r\n // Get authentication token from api client\r\n if (!apiClient.isAuthenticated()) {\r\n yield {\r\n type: 'error',\r\n message: 'Authentication required. Please sign in.',\r\n code: 'AUTH_REQUIRED',\r\n };\r\n return;\r\n }\r\n\r\n // Retry logic for transient errors\r\n let lastError: ErrorChunk | null = null;\r\n\r\n for (let attempt = 0; attempt < this.maxRetries; attempt++) {\r\n try {\r\n // Make fetch request to backend AI endpoint\r\n // NOTE: We intentionally do NOT set a timeout here because:\r\n // 1. Tool execution happens during streaming (in-stream execution)\r\n // 2. Interactive commands may require user input for arbitrary duration\r\n // 3. The only timeout should be explicit user cancellation via abortSignal\r\n // Connection issues will manifest as network errors, not timeouts\r\n\r\n const response = await fetch(`${this.getBaseURL()}/chat/completions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this.getSessionToken()}`,\r\n },\r\n body: JSON.stringify(payload),\r\n signal: abortSignal, // Only abort when user explicitly cancels\r\n });\r\n\r\n\r\n\r\n // Check for HTTP errors\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n const parsedHttpError = this.parseHttpError(response.status, response.statusText, errorText);\r\n\r\n // Handle specific error codes\r\n if (response.status === 401) {\r\n yield {\r\n type: 'error',\r\n message: 'Session expired. Please sign in again.',\r\n code: 'AUTH_REQUIRED',\r\n };\r\n return;\r\n }\r\n\r\n lastError = parsedHttpError;\r\n\r\n if (this.isRetryableError(parsedHttpError.code, parsedHttpError.message, response.status) && attempt < this.maxRetries - 1) {\r\n const retryAfterMs = this.getRetryAfterMs(response.headers);\r\n await this.sleep(this.getRetryDelayMs(attempt, retryAfterMs));\r\n continue;\r\n }\r\n\r\n if (this.isRateLimitError(parsedHttpError.code, parsedHttpError.message, response.status)) {\r\n yield this.createHighDemandError();\r\n return;\r\n }\r\n\r\n yield parsedHttpError;\r\n return;\r\n }\r\n\r\n // Parse SSE stream\r\n // We iterate manually to catch retryable errors from the stream\r\n let contentReceived = false;\r\n let shouldRetry = false;\r\n\r\n for await (const chunk of this.parseSSEStream(response.body)) {\r\n if (chunk.type === 'error') {\r\n const normalizedChunk = this.normalizeErrorChunk(chunk);\r\n\r\n // Check if this is a retryable error (like rate limit) AND we haven't sent partial content yet\r\n if (this.isRetryableError(normalizedChunk.code, normalizedChunk.message) && !contentReceived) {\r\n lastError = normalizedChunk;\r\n shouldRetry = true;\r\n break; // Break the stream loop to trigger retry\r\n }\r\n\r\n // Not retryable or content already sent - yield error and stop\r\n yield normalizedChunk;\r\n return;\r\n }\r\n\r\n // Mark that we've received content\r\n if (chunk.type !== 'done' && chunk.type !== 'thought' && chunk.type !== 'thinking_signature' && chunk.type !== 'file_descriptions') {\r\n contentReceived = true;\r\n }\r\n\r\n yield chunk;\r\n }\r\n\r\n // If stream finished cleanly (without error chunk), we are done\r\n if (!shouldRetry) {\r\n return;\r\n }\r\n\r\n // If we need to retry, check attempts and wait\r\n if (attempt < this.maxRetries - 1) {\r\n // We're going to retry, so we need to wait for the backoff period\r\n await this.sleep(this.getRetryDelayMs(attempt));\r\n continue;\r\n }\r\n\r\n // If we've exhausted retries, we'll fall through to the end of the loop \r\n // and yield the lastError below\r\n\r\n } catch (error: any) {\r\n lastError = this.normalizeThrownError(error);\r\n const wasIntentionalAbort = (error?.name === 'AbortError' || error?.name === 'TimeoutError') && !!abortSignal?.aborted;\r\n\r\n if (wasIntentionalAbort) {\r\n break;\r\n }\r\n\r\n // Retry for transient errors\r\n if (this.isRetryableError(lastError.code, lastError.message) && attempt < this.maxRetries - 1) {\r\n await this.sleep(this.getRetryDelayMs(attempt));\r\n continue;\r\n }\r\n\r\n // If not retryable or max retries reached, yield error and return\r\n break;\r\n }\r\n }\r\n\r\n // If we get here, we've exhausted retries\r\n if (lastError) {\r\n if (this.isRateLimitError(lastError.code, lastError.message)) {\r\n yield this.createHighDemandError();\r\n return;\r\n }\r\n yield lastError;\r\n }\r\n }\r\n\r\n /**\r\n * Create a normalized high-demand error response.\r\n */\r\n private createHighDemandError(): ErrorChunk {\r\n return {\r\n type: 'error',\r\n message: this.highDemandMessage,\r\n code: 'RATE_LIMIT',\r\n };\r\n }\r\n\r\n /**\r\n * Parse backend HTTP error body into a normalized error chunk.\r\n */\r\n private parseHttpError(status: number, statusText: string, errorText: string): ErrorChunk {\r\n let errorMessage = `HTTP ${status}: ${statusText}`;\r\n let errorCode = 'HTTP_ERROR';\r\n\r\n if (errorText) {\r\n try {\r\n const parsed = JSON.parse(errorText);\r\n const rootError = Array.isArray(parsed) ? parsed[0]?.error ?? parsed[0] : parsed?.error ?? parsed;\r\n\r\n if (rootError) {\r\n if (typeof rootError.message === 'string' && rootError.message.trim()) {\r\n errorMessage = rootError.message;\r\n }\r\n if (typeof rootError.code === 'string' || typeof rootError.code === 'number') {\r\n errorCode = String(rootError.code);\r\n } else if (typeof rootError.status === 'string') {\r\n errorCode = rootError.status;\r\n }\r\n }\r\n } catch {\r\n errorMessage = errorText;\r\n }\r\n }\r\n\r\n if (status === 504) {\r\n return {\r\n type: 'error',\r\n message: 'Request timed out. Please try again.',\r\n code: 'TIMEOUT',\r\n };\r\n }\r\n\r\n if (this.isRateLimitError(errorCode, errorMessage, status)) {\r\n return this.createHighDemandError();\r\n }\r\n\r\n return {\r\n type: 'error',\r\n message: errorMessage,\r\n code: errorCode,\r\n };\r\n }\r\n\r\n /**\r\n * Normalize streamed error chunks to stable internal codes/messages.\r\n */\r\n private normalizeErrorChunk(chunk: ErrorChunk): ErrorChunk {\r\n const normalizedCode = chunk.code ? String(chunk.code) : 'UNKNOWN_ERROR';\r\n const normalizedMessage = chunk.message || 'Unknown error occurred';\r\n\r\n if (this.isRateLimitError(normalizedCode, normalizedMessage)) {\r\n return this.createHighDemandError();\r\n }\r\n\r\n if (normalizedCode === '504') {\r\n return {\r\n type: 'error',\r\n message: 'Request timed out. Please try again.',\r\n code: 'TIMEOUT',\r\n };\r\n }\r\n\r\n return {\r\n type: 'error',\r\n message: normalizedMessage,\r\n code: normalizedCode,\r\n };\r\n }\r\n\r\n /**\r\n * Normalize thrown errors from fetch/network/runtime paths.\r\n */\r\n private normalizeThrownError(error: any): ErrorChunk {\r\n const rawMessage = error?.message || 'Unknown error occurred';\r\n const rawCode = error?.code ? String(error.code) : 'UNKNOWN_ERROR';\r\n\r\n if (this.isRateLimitError(rawCode, rawMessage, error?.status)) {\r\n return this.createHighDemandError();\r\n }\r\n\r\n if (error?.name === 'TypeError' && rawMessage.includes('fetch')) {\r\n return {\r\n type: 'error',\r\n message: 'Backend service is unreachable. Please check your connection.',\r\n code: 'NETWORK_ERROR',\r\n };\r\n }\r\n\r\n if (error?.name === 'AbortError' || error?.name === 'TimeoutError') {\r\n return {\r\n type: 'error',\r\n message: 'Request timed out. Please try again.',\r\n code: 'TIMEOUT',\r\n };\r\n }\r\n\r\n return {\r\n type: 'error',\r\n message: rawMessage,\r\n code: rawCode,\r\n };\r\n }\r\n\r\n /**\r\n * Check if an error is a rate-limit/resource-exhausted signal.\r\n */\r\n private isRateLimitError(code?: string, message: string = '', status?: number): boolean {\r\n const normalizedCode = (code || '').toString().toLowerCase();\r\n const normalizedMessage = message.toLowerCase();\r\n\r\n return status === 429 ||\r\n normalizedCode === '429' ||\r\n normalizedCode === '8' ||\r\n normalizedCode === 'rate_limit' ||\r\n normalizedCode === 'resource_exhausted' ||\r\n normalizedMessage.includes('rate limit') ||\r\n normalizedMessage.includes('too many requests') ||\r\n normalizedMessage.includes('quota') ||\r\n normalizedMessage.includes('resource exhausted') ||\r\n normalizedMessage.includes('resource_exhausted') ||\r\n normalizedMessage.includes('maas api returned 429');\r\n }\r\n\r\n /**\r\n * Check if HTTP status is retryable.\r\n */\r\n private isRetryableStatus(status?: number): boolean {\r\n if (typeof status !== 'number') {\r\n return false;\r\n }\r\n return [408, 425, 429, 500, 502, 503, 504].includes(status);\r\n }\r\n\r\n /**\r\n * Check if an error should be retried.\r\n */\r\n private isRetryableError(code: string, message: string = '', status?: number): boolean {\r\n if (this.isRateLimitError(code, message, status)) {\r\n return true;\r\n }\r\n\r\n if (this.isRetryableStatus(status)) {\r\n return true;\r\n }\r\n\r\n const retryableCodes = ['NETWORK_ERROR', 'TIMEOUT', 'UNKNOWN_ERROR', 'RATE_LIMIT'];\r\n if (retryableCodes.includes(code)) {\r\n return true;\r\n }\r\n\r\n const normalizedMessage = message.toLowerCase();\r\n return normalizedMessage.includes('timeout') ||\r\n normalizedMessage.includes('timed out') ||\r\n normalizedMessage.includes('temporarily unavailable') ||\r\n normalizedMessage.includes('network error');\r\n }\r\n\r\n /**\r\n * Parse Retry-After from response headers.\r\n */\r\n private getRetryAfterMs(headers: Headers): number | undefined {\r\n const retryAfterValue = headers.get('retry-after');\r\n if (!retryAfterValue) {\r\n return undefined;\r\n }\r\n\r\n const seconds = Number(retryAfterValue);\r\n if (Number.isFinite(seconds) && seconds >= 0) {\r\n return seconds * 1000;\r\n }\r\n\r\n const retryAfterDate = Date.parse(retryAfterValue);\r\n if (!Number.isNaN(retryAfterDate)) {\r\n return Math.max(0, retryAfterDate - Date.now());\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Compute retry delay with exponential backoff + jitter.\r\n */\r\n private getRetryDelayMs(attempt: number, retryAfterMs?: number): number {\r\n const exponentialDelay = this.retryDelay * Math.pow(2, attempt);\r\n const cappedDelay = Math.min(exponentialDelay, this.maxRetryDelay);\r\n const jitteredDelay = Math.round(Math.min(cappedDelay * (0.5 + Math.random()), this.maxRetryDelay));\r\n\r\n if (retryAfterMs === undefined) {\r\n return jitteredDelay;\r\n }\r\n\r\n const cappedRetryAfter = Math.min(Math.max(0, retryAfterMs), this.maxRetryAfterDelay);\r\n return Math.max(jitteredDelay, cappedRetryAfter);\r\n }\r\n\r\n /**\r\n * Sleep for specified milliseconds\r\n */\r\n private sleep(ms: number): Promise<void> {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n /**\r\n * Get session token from apiClient\r\n * This is a workaround since sessionToken is private\r\n */\r\n private getSessionToken(): string {\r\n // Read session token from the same location apiClient uses\r\n const configPath = join(homedir(), '.centaurus', 'session.json');\r\n\r\n try {\r\n if (existsSync(configPath)) {\r\n const data = readFileSync(configPath, 'utf-8');\r\n const session = JSON.parse(data);\r\n return session.sessionToken || '';\r\n }\r\n } catch (error) {\r\n // Return empty string if unable to read\r\n }\r\n\r\n return '';\r\n }\r\n\r\n /**\r\n * Check if the current configuration is using a local Ollama model\r\n */\r\n isUsingLocalModel(): boolean {\r\n const configPath = join(homedir(), '.centaurus', 'config.json');\r\n try {\r\n if (existsSync(configPath)) {\r\n const data = readFileSync(configPath, 'utf-8');\r\n const config = JSON.parse(data);\r\n return config.isLocalModel === true;\r\n }\r\n } catch (error) {\r\n // Return false if unable to read\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Get the current model name from config\r\n */\r\n private getCurrentModel(): string {\r\n const configPath = join(homedir(), '.centaurus', 'config.json');\r\n try {\r\n if (existsSync(configPath)) {\r\n const data = readFileSync(configPath, 'utf-8');\r\n const config = JSON.parse(data);\r\n return config.model || 'gemini-2.5-flash';\r\n }\r\n } catch (error) {\r\n // Return default if unable to read\r\n }\r\n return 'gemini-2.5-flash';\r\n }\r\n\r\n /**\r\n * Convert internal message format to Ollama format (with tool support)\r\n */\r\n private convertToOllamaMessages(messages: Message[]): OllamaChatMessage[] {\r\n return messages.map(msg => {\r\n if (msg.role === 'tool') {\r\n // Tool results - convert to Ollama's tool message format\r\n return {\r\n role: 'tool' as const,\r\n content: msg.content,\r\n tool_name: msg.tool_call_id || 'unknown', // Use tool_call_id as tool_name\r\n };\r\n }\r\n\r\n if (msg.role === 'assistant' && msg.tool_calls?.length) {\r\n // Assistant message with tool calls\r\n return {\r\n role: 'assistant' as const,\r\n content: msg.content || '',\r\n tool_calls: msg.tool_calls.map(tc => ({\r\n function: {\r\n name: tc.name,\r\n arguments: tc.arguments,\r\n }\r\n })),\r\n };\r\n }\r\n\r\n // Regular message\r\n return {\r\n role: msg.role as 'system' | 'user' | 'assistant',\r\n content: msg.content,\r\n };\r\n });\r\n }\r\n\r\n /**\r\n * Convert ToolSchema array to Ollama tool format\r\n */\r\n private convertToolsToOllamaFormat(tools: ToolSchema[]): OllamaTool[] {\r\n return tools.map(tool => ({\r\n type: 'function' as const,\r\n function: {\r\n name: tool.name,\r\n description: tool.description,\r\n parameters: {\r\n type: 'object' as const,\r\n properties: tool.parameters.properties,\r\n required: tool.parameters.required,\r\n },\r\n },\r\n }));\r\n }\r\n\r\n /**\r\n * Stream chat request to local Ollama instance with tool calling support\r\n * \r\n * @param model - The local Ollama model to use (e.g., 'llama3.2:latest')\r\n * @param messages - Conversation history\r\n * @param tools - Available tools (will be converted to Ollama format)\r\n * @yields Stream chunks (text, tool_call, or done events)\r\n */\r\n async *streamLocalChat(\r\n model: string,\r\n messages: Message[],\r\n tools: ToolSchema[] = []\r\n ): AsyncGenerator<StreamChunk, void, unknown> {\r\n try {\r\n const supportsTools = OllamaService.modelSupportsTools(model);\r\n const effectiveTools = supportsTools ? tools : [];\r\n\r\n quickLog(`[${new Date().toISOString()}] [AIServiceClient] Starting local chat with model: ${model}, tools: ${effectiveTools.length}, supportsTools: ${supportsTools}\\n`);\r\n\r\n // Convert messages to Ollama format\r\n const ollamaMessages = this.convertToOllamaMessages(messages);\r\n\r\n // Convert tools to Ollama format if model supports them\r\n const ollamaTools = effectiveTools.length > 0\r\n ? this.convertToolsToOllamaFormat(effectiveTools)\r\n : undefined;\r\n\r\n // Send request to Ollama with tools\r\n const response = await ollamaService.sendChatMessage(model, ollamaMessages, ollamaTools);\r\n\r\n // Check for tool calls in response\r\n if (response.message?.tool_calls?.length) {\r\n quickLog(`[${new Date().toISOString()}] [AIServiceClient] Received ${response.message.tool_calls.length} tool calls from Ollama\\n`);\r\n\r\n // Yield each tool call\r\n for (const toolCall of response.message.tool_calls) {\r\n yield {\r\n type: 'tool_call',\r\n toolCall: {\r\n id: `ollama-${Date.now()}-${toolCall.function.name}`, // Generate unique ID\r\n name: toolCall.function.name,\r\n arguments: toolCall.function.arguments,\r\n },\r\n };\r\n }\r\n\r\n // Signal completion (tool execution will happen in cli-adapter)\r\n yield { type: 'done' };\r\n return;\r\n }\r\n\r\n // No tool calls - yield text response\r\n if (response.message.content) {\r\n yield {\r\n type: 'text',\r\n content: response.message.content,\r\n };\r\n }\r\n\r\n // Signal completion\r\n yield { type: 'done' };\r\n\r\n quickLog(`[${new Date().toISOString()}] [AIServiceClient] Local chat completed\\n`);\r\n } catch (error: any) {\r\n quickLog(`[${new Date().toISOString()}] [AIServiceClient] Local chat error: ${error.message}\\n`);\r\n yield {\r\n type: 'error',\r\n message: error.message || 'Failed to communicate with Ollama',\r\n code: 'OLLAMA_ERROR',\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Parse Server-Sent Events stream from response body\r\n * \r\n * @param body - ReadableStream from fetch response\r\n * @yields Parsed stream chunks\r\n */\r\n private async *parseSSEStream(\r\n body: ReadableStream<Uint8Array>\r\n ): AsyncGenerator<StreamChunk, void, unknown> {\r\n const reader = body.getReader();\r\n const decoder = new TextDecoder();\r\n let buffer = '';\r\n\r\n try {\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n\r\n if (done) {\r\n // Process any remaining data in buffer before exiting\r\n if (buffer.trim()) {\r\n // Split remaining buffer and process\r\n const remainingLines = buffer.split('\\n');\r\n for (const line of remainingLines) {\r\n if (line.startsWith('data: ')) {\r\n const dataStr = line.slice(6);\r\n if (dataStr.trim()) {\r\n try {\r\n const chunk = JSON.parse(dataStr) as StreamChunk;\r\n yield chunk;\r\n } catch (error) {\r\n // Skip malformed JSON\r\n logWarning(`Failed to parse SSE data (in buffer): ${dataStr}`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n\r\n // Decode chunk and add to buffer\r\n buffer += decoder.decode(value, { stream: true });\r\n\r\n // Process complete lines in buffer\r\n const lines = buffer.split('\\n');\r\n\r\n // Keep the last incomplete line in buffer\r\n buffer = lines.pop() || '';\r\n\r\n for (const line of lines) {\r\n // SSE format: \"data: {json}\"\r\n if (line.startsWith('data: ')) {\r\n const dataStr = line.slice(6); // Remove \"data: \" prefix\r\n\r\n // Skip empty data lines\r\n if (!dataStr.trim()) {\r\n continue;\r\n }\r\n\r\n try {\r\n const chunk = JSON.parse(dataStr) as StreamChunk;\r\n yield chunk;\r\n\r\n // Stop if we receive a done or error event\r\n if (chunk.type === 'done' || chunk.type === 'error') {\r\n return;\r\n }\r\n } catch (error) {\r\n // Skip malformed JSON\r\n logWarning(`Failed to parse SSE data: ${dataStr}`);\r\n }\r\n }\r\n // SSE event type line: \"event: chunk\"\r\n // We don't need to process these separately since the data contains the type\r\n }\r\n }\r\n } finally {\r\n reader.releaseLock();\r\n }\r\n }\r\n}\r\n\r\n// Export singleton instance\r\nexport const aiServiceClient = new AIServiceClient();\r\n"],"mappings":"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","names":[]}