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,170 +1,154 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import * as os from 'os';
4
- import { DEFAULT_CONFIG } from './types.js';
5
- import { apiClient } from '../services/api-client.js';
6
- import { isValidModel, getInvalidModelError } from './models.js';
7
- import { logError } from '../utils/logger.js';
8
- export class ConfigManager {
9
- configPath;
10
- config = null;
11
- useBackendSync = false;
12
- migrationPerformed = false;
13
- constructor() {
14
- const homeDir = os.homedir();
15
- const configDir = path.join(homeDir, '.centaurus');
16
- this.configPath = path.join(configDir, 'config.json');
17
- // Ensure config directory exists
18
- if (!fs.existsSync(configDir)) {
19
- fs.mkdirSync(configDir, { recursive: true });
20
- }
21
- }
22
- /**
23
- * Enable backend synchronization
24
- */
25
- enableBackendSync() {
26
- this.useBackendSync = true;
27
- }
28
- /**
29
- * Disable backend synchronization
30
- */
31
- disableBackendSync() {
32
- this.useBackendSync = false;
33
- }
34
- /**
35
- * Sync settings to backend
36
- */
37
- async syncToBackend() {
38
- if (!this.useBackendSync || !apiClient.isAuthenticated()) {
39
- return;
40
- }
41
- try {
42
- const config = this.load();
43
- await apiClient.updateSettings({
44
- defaultModel: config.model,
45
- });
46
- }
47
- catch (error) {
48
- // If sync fails, continue with local save
49
- logError('Failed to sync settings to backend', error);
50
- }
51
- }
52
- /**
53
- * Load configuration from disk
54
- */
55
- load() {
56
- if (this.config) {
57
- return this.config;
58
- }
59
- if (fs.existsSync(this.configPath)) {
60
- try {
61
- const data = fs.readFileSync(this.configPath, 'utf-8');
62
- const loadedConfig = JSON.parse(data);
63
- // Detect if old config format exists (migration needed)
64
- const hasDeprecatedFields = 'googleApiKey' in loadedConfig ||
65
- 'openrouterApiKey' in loadedConfig ||
66
- 'openRouterApiKey' in loadedConfig ||
67
- 'anthropicApiKey' in loadedConfig ||
68
- 'provider' in loadedConfig;
69
- if (hasDeprecatedFields) {
70
- this.migrationPerformed = true;
71
- // Remove deprecated fields
72
- delete loadedConfig.googleApiKey;
73
- delete loadedConfig.openrouterApiKey;
74
- delete loadedConfig.openRouterApiKey;
75
- delete loadedConfig.anthropicApiKey;
76
- delete loadedConfig.provider;
77
- // Preserve model preference and other settings
78
- this.config = { ...DEFAULT_CONFIG, ...loadedConfig };
79
- // Save the migrated config immediately
80
- this.save(this.config);
81
- }
82
- else {
83
- this.config = { ...DEFAULT_CONFIG, ...loadedConfig };
84
- }
85
- }
86
- catch (error) {
87
- logError('Error loading config', error);
88
- this.config = { ...DEFAULT_CONFIG };
89
- }
90
- }
91
- else {
92
- this.config = { ...DEFAULT_CONFIG };
93
- }
94
- return this.config;
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ import { DEFAULT_CONFIG } from "./types.js";
5
+ import { apiClient } from "../services/api-client.js";
6
+ import { isValidModel, getInvalidModelError } from "./models.js";
7
+ import { logError } from "../utils/logger.js";
8
+ class ConfigManager {
9
+ configPath;
10
+ config = null;
11
+ useBackendSync = false;
12
+ migrationPerformed = false;
13
+ constructor() {
14
+ const homeDir = os.homedir();
15
+ const configDir = path.join(homeDir, ".centaurus");
16
+ this.configPath = path.join(configDir, "config.json");
17
+ if (!fs.existsSync(configDir)) {
18
+ fs.mkdirSync(configDir, { recursive: true });
95
19
  }
96
- /**
97
- * Save configuration to disk
98
- */
99
- save(config) {
100
- this.config = { ...this.load(), ...config };
101
- try {
102
- fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
103
- }
104
- catch (error) {
105
- throw new Error(`Failed to save config: ${error}`);
106
- }
20
+ }
21
+ /**
22
+ * Enable backend synchronization
23
+ */
24
+ enableBackendSync() {
25
+ this.useBackendSync = true;
26
+ }
27
+ /**
28
+ * Disable backend synchronization
29
+ */
30
+ disableBackendSync() {
31
+ this.useBackendSync = false;
32
+ }
33
+ /**
34
+ * Sync settings to backend
35
+ */
36
+ async syncToBackend() {
37
+ if (!this.useBackendSync || !apiClient.isAuthenticated()) {
38
+ return;
107
39
  }
108
- /**
109
- * Get a specific configuration value
110
- */
111
- get(key) {
112
- return this.load()[key];
40
+ try {
41
+ const config = this.load();
42
+ await apiClient.updateSettings({
43
+ defaultModel: config.model
44
+ });
45
+ } catch (error) {
46
+ logError("Failed to sync settings to backend", error);
113
47
  }
114
- /**
115
- * Set a specific configuration value
116
- */
117
- set(key, value) {
118
- // Note: Model validation should be done by caller using async isValidModel()
119
- // This method is sync for backward compatibility
120
- const config = this.load();
121
- config[key] = value;
122
- this.save(config);
123
- // Sync to backend asynchronously (don't wait)
124
- this.syncToBackend().catch(() => {
125
- // Ignore sync errors
126
- });
48
+ }
49
+ /**
50
+ * Load configuration from disk
51
+ */
52
+ load() {
53
+ if (this.config) {
54
+ return this.config;
127
55
  }
128
- /**
129
- * Set model with validation (async)
130
- */
131
- async setModel(model) {
132
- if (!(await isValidModel(model))) {
133
- throw new Error(await getInvalidModelError(model));
56
+ if (fs.existsSync(this.configPath)) {
57
+ try {
58
+ const data = fs.readFileSync(this.configPath, "utf-8");
59
+ const loadedConfig = JSON.parse(data);
60
+ const hasDeprecatedFields = "googleApiKey" in loadedConfig || "openrouterApiKey" in loadedConfig || "openRouterApiKey" in loadedConfig || "anthropicApiKey" in loadedConfig || "provider" in loadedConfig;
61
+ if (hasDeprecatedFields) {
62
+ this.migrationPerformed = true;
63
+ delete loadedConfig.googleApiKey;
64
+ delete loadedConfig.openrouterApiKey;
65
+ delete loadedConfig.openRouterApiKey;
66
+ delete loadedConfig.anthropicApiKey;
67
+ delete loadedConfig.provider;
68
+ this.config = { ...DEFAULT_CONFIG, ...loadedConfig };
69
+ this.save(this.config);
70
+ } else {
71
+ this.config = { ...DEFAULT_CONFIG, ...loadedConfig };
134
72
  }
135
- this.set('model', model);
136
- }
137
- /**
138
- * Get all configuration
139
- */
140
- getAll() {
141
- return this.load();
142
- }
143
- /**
144
- * Check if configuration is complete
145
- */
146
- isComplete() {
147
- const config = this.load();
148
- return !!config.model;
149
- }
150
- /**
151
- * Get the config file path
152
- */
153
- getConfigPath() {
154
- return this.configPath;
73
+ } catch (error) {
74
+ logError("Error loading config", error);
75
+ this.config = { ...DEFAULT_CONFIG };
76
+ }
77
+ } else {
78
+ this.config = { ...DEFAULT_CONFIG };
155
79
  }
156
- /**
157
- * Check if configuration migration was performed
158
- * This is used to show a one-time migration message to users
159
- */
160
- wasMigrationPerformed() {
161
- return this.migrationPerformed;
80
+ return this.config;
81
+ }
82
+ /**
83
+ * Save configuration to disk
84
+ */
85
+ save(config) {
86
+ this.config = { ...this.load(), ...config };
87
+ try {
88
+ fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
89
+ } catch (error) {
90
+ throw new Error(`Failed to save config: ${error}`);
162
91
  }
163
- /**
164
- * Reset migration flag (after showing migration message)
165
- */
166
- resetMigrationFlag() {
167
- this.migrationPerformed = false;
92
+ }
93
+ /**
94
+ * Get a specific configuration value
95
+ */
96
+ get(key) {
97
+ return this.load()[key];
98
+ }
99
+ /**
100
+ * Set a specific configuration value
101
+ */
102
+ set(key, value) {
103
+ const config = this.load();
104
+ config[key] = value;
105
+ this.save(config);
106
+ this.syncToBackend().catch(() => {
107
+ });
108
+ }
109
+ /**
110
+ * Set model with validation (async)
111
+ */
112
+ async setModel(model) {
113
+ if (!await isValidModel(model)) {
114
+ throw new Error(await getInvalidModelError(model));
168
115
  }
116
+ this.set("model", model);
117
+ }
118
+ /**
119
+ * Get all configuration
120
+ */
121
+ getAll() {
122
+ return this.load();
123
+ }
124
+ /**
125
+ * Check if configuration is complete
126
+ */
127
+ isComplete() {
128
+ const config = this.load();
129
+ return !!config.model;
130
+ }
131
+ /**
132
+ * Get the config file path
133
+ */
134
+ getConfigPath() {
135
+ return this.configPath;
136
+ }
137
+ /**
138
+ * Check if configuration migration was performed
139
+ * This is used to show a one-time migration message to users
140
+ */
141
+ wasMigrationPerformed() {
142
+ return this.migrationPerformed;
143
+ }
144
+ /**
145
+ * Reset migration flag (after showing migration message)
146
+ */
147
+ resetMigrationFlag() {
148
+ this.migrationPerformed = false;
149
+ }
169
150
  }
151
+ export {
152
+ ConfigManager
153
+ };
170
154
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/config/manager.ts"],"sourcesContent":["import * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport * as os from 'os';\r\nimport { Config, DEFAULT_CONFIG } from './types.js';\r\nimport { apiClient } from '../services/api-client.js';\r\nimport { isValidModel, getInvalidModelError } from './models.js';\r\nimport { logError } from '../utils/logger.js';\r\n\r\nexport class ConfigManager {\r\n private configPath: string;\r\n private config: Config | null = null;\r\n private useBackendSync: boolean = false;\r\n private migrationPerformed: boolean = false;\r\n\r\n constructor() {\r\n const homeDir = os.homedir();\r\n const configDir = path.join(homeDir, '.centaurus');\r\n this.configPath = path.join(configDir, 'config.json');\r\n\r\n // Ensure config directory exists\r\n if (!fs.existsSync(configDir)) {\r\n fs.mkdirSync(configDir, { recursive: true });\r\n }\r\n }\r\n\r\n /**\r\n * Enable backend synchronization\r\n */\r\n enableBackendSync(): void {\r\n this.useBackendSync = true;\r\n }\r\n\r\n /**\r\n * Disable backend synchronization\r\n */\r\n disableBackendSync(): void {\r\n this.useBackendSync = false;\r\n }\r\n\r\n /**\r\n * Sync settings to backend\r\n */\r\n private async syncToBackend(): Promise<void> {\r\n if (!this.useBackendSync || !apiClient.isAuthenticated()) {\r\n return;\r\n }\r\n\r\n try {\r\n const config = this.load();\r\n await apiClient.updateSettings({\r\n defaultModel: config.model,\r\n });\r\n } catch (error) {\r\n // If sync fails, continue with local save\r\n logError('Failed to sync settings to backend', error as Error);\r\n }\r\n }\r\n\r\n /**\r\n * Load configuration from disk\r\n */\r\n load(): Config {\r\n if (this.config) {\r\n return this.config;\r\n }\r\n\r\n if (fs.existsSync(this.configPath)) {\r\n try {\r\n const data = fs.readFileSync(this.configPath, 'utf-8');\r\n const loadedConfig = JSON.parse(data);\r\n\r\n // Detect if old config format exists (migration needed)\r\n const hasDeprecatedFields =\r\n 'googleApiKey' in loadedConfig ||\r\n 'openrouterApiKey' in loadedConfig ||\r\n 'openRouterApiKey' in loadedConfig ||\r\n 'anthropicApiKey' in loadedConfig ||\r\n 'provider' in loadedConfig;\r\n\r\n if (hasDeprecatedFields) {\r\n this.migrationPerformed = true;\r\n\r\n // Remove deprecated fields\r\n delete loadedConfig.googleApiKey;\r\n delete loadedConfig.openrouterApiKey;\r\n delete loadedConfig.openRouterApiKey;\r\n delete loadedConfig.anthropicApiKey;\r\n delete loadedConfig.provider;\r\n\r\n // Preserve model preference and other settings\r\n this.config = { ...DEFAULT_CONFIG, ...loadedConfig } as Config;\r\n\r\n // Save the migrated config immediately\r\n this.save(this.config);\r\n } else {\r\n this.config = { ...DEFAULT_CONFIG, ...loadedConfig } as Config;\r\n }\r\n } catch (error) {\r\n logError('Error loading config', error as Error);\r\n this.config = { ...DEFAULT_CONFIG } as Config;\r\n }\r\n } else {\r\n this.config = { ...DEFAULT_CONFIG } as Config;\r\n }\r\n\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Save configuration to disk\r\n */\r\n save(config: Partial<Config>): void {\r\n this.config = { ...this.load(), ...config };\r\n try {\r\n fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));\r\n } catch (error) {\r\n throw new Error(`Failed to save config: ${error}`);\r\n }\r\n }\r\n\r\n /**\r\n * Get a specific configuration value\r\n */\r\n get<K extends keyof Config>(key: K): Config[K] | undefined {\r\n return this.load()[key];\r\n }\r\n\r\n /**\r\n * Set a specific configuration value\r\n */\r\n set<K extends keyof Config>(key: K, value: Config[K]): void {\r\n // Note: Model validation should be done by caller using async isValidModel()\r\n // This method is sync for backward compatibility\r\n const config = this.load();\r\n config[key] = value;\r\n this.save(config);\r\n\r\n // Sync to backend asynchronously (don't wait)\r\n this.syncToBackend().catch(() => {\r\n // Ignore sync errors\r\n });\r\n }\r\n\r\n /**\r\n * Set model with validation (async)\r\n */\r\n async setModel(model: string): Promise<void> {\r\n if (!(await isValidModel(model))) {\r\n throw new Error(await getInvalidModelError(model));\r\n }\r\n this.set('model', model);\r\n }\r\n\r\n /**\r\n * Get all configuration\r\n */\r\n getAll(): Config {\r\n return this.load();\r\n }\r\n\r\n /**\r\n * Check if configuration is complete\r\n */\r\n isComplete(): boolean {\r\n const config = this.load();\r\n return !!config.model;\r\n }\r\n\r\n /**\r\n * Get the config file path\r\n */\r\n getConfigPath(): string {\r\n return this.configPath;\r\n }\r\n\r\n /**\r\n * Check if configuration migration was performed\r\n * This is used to show a one-time migration message to users\r\n */\r\n wasMigrationPerformed(): boolean {\r\n return this.migrationPerformed;\r\n }\r\n\r\n /**\r\n * Reset migration flag (after showing migration message)\r\n */\r\n resetMigrationFlag(): void {\r\n this.migrationPerformed = false;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}