orquesta-cli 0.1.13 → 0.1.14

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 (539) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +373 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts.map +0 -1
  60. package/dist/core/git-auto-updater.js.map +0 -1
  61. package/dist/core/llm/index.d.ts.map +0 -1
  62. package/dist/core/llm/index.js.map +0 -1
  63. package/dist/core/llm/llm-client.d.ts.map +0 -1
  64. package/dist/core/llm/llm-client.js.map +0 -1
  65. package/dist/core/session/index.d.ts.map +0 -1
  66. package/dist/core/session/index.js.map +0 -1
  67. package/dist/core/session/session-manager.d.ts.map +0 -1
  68. package/dist/core/session/session-manager.js.map +0 -1
  69. package/dist/core/slash-command-handler.d.ts.map +0 -1
  70. package/dist/core/slash-command-handler.js.map +0 -1
  71. package/dist/core/usage-tracker.d.ts.map +0 -1
  72. package/dist/core/usage-tracker.js.map +0 -1
  73. package/dist/errors/base.d.ts.map +0 -1
  74. package/dist/errors/base.js.map +0 -1
  75. package/dist/errors/file.d.ts.map +0 -1
  76. package/dist/errors/file.js.map +0 -1
  77. package/dist/errors/index.d.ts.map +0 -1
  78. package/dist/errors/index.js.map +0 -1
  79. package/dist/errors/llm.d.ts.map +0 -1
  80. package/dist/errors/llm.js.map +0 -1
  81. package/dist/errors/network.d.ts.map +0 -1
  82. package/dist/errors/network.js.map +0 -1
  83. package/dist/errors/validation.d.ts.map +0 -1
  84. package/dist/errors/validation.js.map +0 -1
  85. package/dist/eval/eval-runner.d.ts.map +0 -1
  86. package/dist/eval/eval-runner.js.map +0 -1
  87. package/dist/eval/index.d.ts.map +0 -1
  88. package/dist/eval/index.js.map +0 -1
  89. package/dist/eval/types.d.ts.map +0 -1
  90. package/dist/eval/types.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/orchestration/index.d.ts.map +0 -1
  94. package/dist/orchestration/index.js.map +0 -1
  95. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  96. package/dist/orchestration/plan-executor.js.map +0 -1
  97. package/dist/orchestration/types.d.ts.map +0 -1
  98. package/dist/orchestration/types.js.map +0 -1
  99. package/dist/orchestration/utils.d.ts.map +0 -1
  100. package/dist/orchestration/utils.js.map +0 -1
  101. package/dist/orquesta/connection.d.ts.map +0 -1
  102. package/dist/orquesta/connection.js.map +0 -1
  103. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  105. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search.js.map +0 -1
  107. package/dist/prompts/agents/planning.d.ts.map +0 -1
  108. package/dist/prompts/agents/planning.js.map +0 -1
  109. package/dist/prompts/index.d.ts.map +0 -1
  110. package/dist/prompts/index.js.map +0 -1
  111. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  113. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/git-rules.js.map +0 -1
  115. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/language-rules.js.map +0 -1
  117. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  118. package/dist/prompts/shared/tool-usage.js.map +0 -1
  119. package/dist/prompts/system/compact.d.ts.map +0 -1
  120. package/dist/prompts/system/compact.js.map +0 -1
  121. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  122. package/dist/prompts/system/plan-execute.js.map +0 -1
  123. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  124. package/dist/tools/browser/browser-client.js.map +0 -1
  125. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-tools.js.map +0 -1
  127. package/dist/tools/browser/index.d.ts.map +0 -1
  128. package/dist/tools/browser/index.js.map +0 -1
  129. package/dist/tools/index.d.ts.map +0 -1
  130. package/dist/tools/index.js.map +0 -1
  131. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  133. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/index.js.map +0 -1
  135. package/dist/tools/llm/index.d.ts.map +0 -1
  136. package/dist/tools/llm/index.js.map +0 -1
  137. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  139. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  149. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  151. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/index.js.map +0 -1
  153. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  155. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  157. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  159. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  161. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  163. package/dist/tools/office/common/constants.d.ts.map +0 -1
  164. package/dist/tools/office/common/constants.js.map +0 -1
  165. package/dist/tools/office/common/index.d.ts.map +0 -1
  166. package/dist/tools/office/common/index.js.map +0 -1
  167. package/dist/tools/office/common/types.d.ts.map +0 -1
  168. package/dist/tools/office/common/types.js.map +0 -1
  169. package/dist/tools/office/common/utils.d.ts.map +0 -1
  170. package/dist/tools/office/common/utils.js.map +0 -1
  171. package/dist/tools/office/excel-client.d.ts.map +0 -1
  172. package/dist/tools/office/excel-client.js.map +0 -1
  173. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  175. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  177. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  179. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  181. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/export.js.map +0 -1
  183. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  185. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/index.js.map +0 -1
  187. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  189. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/media.js.map +0 -1
  191. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  193. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  195. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  197. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  199. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  201. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools.js.map +0 -1
  203. package/dist/tools/office/index.d.ts.map +0 -1
  204. package/dist/tools/office/index.js.map +0 -1
  205. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  206. package/dist/tools/office/office-client-base.js.map +0 -1
  207. package/dist/tools/office/office-client.d.ts.map +0 -1
  208. package/dist/tools/office/office-client.js.map +0 -1
  209. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  210. package/dist/tools/office/powerpoint-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  235. package/dist/tools/office/word-client.d.ts.map +0 -1
  236. package/dist/tools/office/word-client.js.map +0 -1
  237. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  239. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/comments.js.map +0 -1
  241. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/content.js.map +0 -1
  243. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/export.js.map +0 -1
  245. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  247. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  249. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/index.js.map +0 -1
  251. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/launch.js.map +0 -1
  253. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/lists.js.map +0 -1
  255. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  257. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  259. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/tables.js.map +0 -1
  261. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/text.js.map +0 -1
  263. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  265. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  267. package/dist/tools/office/word-tools.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools.js.map +0 -1
  269. package/dist/tools/registry.d.ts.map +0 -1
  270. package/dist/tools/registry.js.map +0 -1
  271. package/dist/tools/types.d.ts.map +0 -1
  272. package/dist/tools/types.js.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/index.js.map +0 -1
  275. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  276. package/dist/ui/PlanExecuteView.js.map +0 -1
  277. package/dist/ui/TodoPanel.d.ts.map +0 -1
  278. package/dist/ui/TodoPanel.js.map +0 -1
  279. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  280. package/dist/ui/UpdateNotification.js.map +0 -1
  281. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  283. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  284. package/dist/ui/components/CommandBrowser.js.map +0 -1
  285. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  286. package/dist/ui/components/CustomTextInput.js.map +0 -1
  287. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  289. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  290. package/dist/ui/components/FileBrowser.js.map +0 -1
  291. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  293. package/dist/ui/components/Logo.d.ts.map +0 -1
  294. package/dist/ui/components/Logo.js.map +0 -1
  295. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  297. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  298. package/dist/ui/components/ModelSelector.js.map +0 -1
  299. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  301. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  302. package/dist/ui/components/ProgressBar.js.map +0 -1
  303. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  304. package/dist/ui/components/StatusBar.js.map +0 -1
  305. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  307. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  308. package/dist/ui/components/TodoListView.js.map +0 -1
  309. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  310. package/dist/ui/components/ToolSelector.js.map +0 -1
  311. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  313. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  317. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  319. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/index.js.map +0 -1
  321. package/dist/ui/components/index.d.ts.map +0 -1
  322. package/dist/ui/components/index.js.map +0 -1
  323. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  325. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  327. package/dist/ui/components/panels/index.d.ts.map +0 -1
  328. package/dist/ui/components/panels/index.js.map +0 -1
  329. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  330. package/dist/ui/components/views/ChatView.js.map +0 -1
  331. package/dist/ui/components/views/index.d.ts.map +0 -1
  332. package/dist/ui/components/views/index.js.map +0 -1
  333. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  334. package/dist/ui/contexts/TokenContext.js.map +0 -1
  335. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  337. package/dist/ui/hooks/index.d.ts.map +0 -1
  338. package/dist/ui/hooks/index.js.map +0 -1
  339. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  341. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  343. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileList.js.map +0 -1
  347. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  349. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js.map +0 -1
  353. package/dist/ui/ink-entry.d.ts.map +0 -1
  354. package/dist/ui/ink-entry.js.map +0 -1
  355. package/dist/utils/env-filter.d.ts.map +0 -1
  356. package/dist/utils/env-filter.js.map +0 -1
  357. package/dist/utils/file-system.d.ts.map +0 -1
  358. package/dist/utils/file-system.js.map +0 -1
  359. package/dist/utils/git-utils.d.ts.map +0 -1
  360. package/dist/utils/git-utils.js.map +0 -1
  361. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  362. package/dist/utils/json-stream-logger.js.map +0 -1
  363. package/dist/utils/logger.d.ts.map +0 -1
  364. package/dist/utils/logger.js.map +0 -1
  365. package/dist/utils/platform-utils.d.ts.map +0 -1
  366. package/dist/utils/platform-utils.js.map +0 -1
  367. package/dist/utils/wsl-utils.d.ts.map +0 -1
  368. package/dist/utils/wsl-utils.js.map +0 -1
  369. package/electron.vite.config.ts +0 -63
  370. package/google374b9eba0c52b043.html +0 -1
  371. package/src/agents/base/base-agent.ts +0 -159
  372. package/src/agents/docs-search/index.ts +0 -365
  373. package/src/agents/index.ts +0 -34
  374. package/src/agents/planner/index.ts +0 -544
  375. package/src/cli.ts +0 -201
  376. package/src/constants.ts +0 -47
  377. package/src/core/compact/compact-manager.ts +0 -160
  378. package/src/core/compact/compact-prompts.ts +0 -150
  379. package/src/core/compact/context-tracker.ts +0 -164
  380. package/src/core/compact/index.ts +0 -25
  381. package/src/core/config/config-manager.ts +0 -460
  382. package/src/core/config/index.ts +0 -5
  383. package/src/core/docs-manager.ts +0 -678
  384. package/src/core/llm/index.ts +0 -7
  385. package/src/core/llm/llm-client.ts +0 -1550
  386. package/src/core/session/index.ts +0 -5
  387. package/src/core/session/session-manager.ts +0 -464
  388. package/src/core/slash-command-handler.ts +0 -410
  389. package/src/core/usage-tracker.ts +0 -438
  390. package/src/errors/base.ts +0 -81
  391. package/src/errors/file.ts +0 -183
  392. package/src/errors/index.ts +0 -95
  393. package/src/errors/llm.ts +0 -151
  394. package/src/errors/network.ts +0 -124
  395. package/src/errors/validation.ts +0 -111
  396. package/src/eval/eval-runner.ts +0 -456
  397. package/src/eval/index.ts +0 -8
  398. package/src/eval/types.ts +0 -139
  399. package/src/index.ts +0 -22
  400. package/src/orchestration/index.ts +0 -30
  401. package/src/orchestration/plan-executor.ts +0 -652
  402. package/src/orchestration/types.ts +0 -127
  403. package/src/orchestration/utils.ts +0 -119
  404. package/src/orquesta/connection.ts +0 -291
  405. package/src/prompts/agents/docs-search-decision.ts +0 -74
  406. package/src/prompts/agents/docs-search.ts +0 -84
  407. package/src/prompts/agents/planning.ts +0 -143
  408. package/src/prompts/index.ts +0 -31
  409. package/src/prompts/shared/codebase-rules.ts +0 -29
  410. package/src/prompts/shared/git-rules.ts +0 -94
  411. package/src/prompts/shared/language-rules.ts +0 -36
  412. package/src/prompts/shared/tool-usage.ts +0 -72
  413. package/src/prompts/system/compact.ts +0 -80
  414. package/src/prompts/system/plan-execute.ts +0 -89
  415. package/src/tools/browser/browser-client.ts +0 -1363
  416. package/src/tools/browser/browser-tools.ts +0 -1139
  417. package/src/tools/browser/index.ts +0 -65
  418. package/src/tools/index.ts +0 -23
  419. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  420. package/src/tools/llm/agents/index.ts +0 -22
  421. package/src/tools/llm/index.ts +0 -11
  422. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  423. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  424. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  425. package/src/tools/llm/simple/bash-tool.ts +0 -238
  426. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  427. package/src/tools/llm/simple/file-tools.ts +0 -1051
  428. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  429. package/src/tools/llm/simple/index.ts +0 -42
  430. package/src/tools/llm/simple/planning-tools.ts +0 -143
  431. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  432. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  433. package/src/tools/llm/simple/todo-tools.ts +0 -207
  434. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  435. package/src/tools/office/common/constants.ts +0 -335
  436. package/src/tools/office/common/index.ts +0 -133
  437. package/src/tools/office/common/types.ts +0 -286
  438. package/src/tools/office/common/utils.ts +0 -116
  439. package/src/tools/office/excel-client.ts +0 -1336
  440. package/src/tools/office/excel-tools/cells.ts +0 -359
  441. package/src/tools/office/excel-tools/charts.ts +0 -166
  442. package/src/tools/office/excel-tools/comments.ts +0 -155
  443. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  444. package/src/tools/office/excel-tools/export.ts +0 -105
  445. package/src/tools/office/excel-tools/formatting.ts +0 -357
  446. package/src/tools/office/excel-tools/index.ts +0 -55
  447. package/src/tools/office/excel-tools/launch.ts +0 -303
  448. package/src/tools/office/excel-tools/media.ts +0 -117
  449. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  450. package/src/tools/office/excel-tools/protection.ts +0 -105
  451. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  452. package/src/tools/office/excel-tools/sheets.ts +0 -228
  453. package/src/tools/office/excel-tools/validation.ts +0 -226
  454. package/src/tools/office/excel-tools.ts +0 -9
  455. package/src/tools/office/index.ts +0 -259
  456. package/src/tools/office/office-client-base.ts +0 -242
  457. package/src/tools/office/office-client.ts +0 -377
  458. package/src/tools/office/powerpoint-client.ts +0 -1498
  459. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  460. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  461. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  462. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  463. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  464. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  465. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  466. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  467. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  468. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  469. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  470. package/src/tools/office/powerpoint-tools.ts +0 -9
  471. package/src/tools/office/word-client.ts +0 -1697
  472. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  473. package/src/tools/office/word-tools/comments.ts +0 -185
  474. package/src/tools/office/word-tools/content.ts +0 -229
  475. package/src/tools/office/word-tools/export.ts +0 -97
  476. package/src/tools/office/word-tools/formatting.ts +0 -161
  477. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  478. package/src/tools/office/word-tools/index.ts +0 -57
  479. package/src/tools/office/word-tools/launch.ts +0 -312
  480. package/src/tools/office/word-tools/lists.ts +0 -97
  481. package/src/tools/office/word-tools/navigation.ts +0 -114
  482. package/src/tools/office/word-tools/page-setup.ts +0 -195
  483. package/src/tools/office/word-tools/tables.ts +0 -262
  484. package/src/tools/office/word-tools/text.ts +0 -294
  485. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  486. package/src/tools/office/word-tools/watermarks.ts +0 -105
  487. package/src/tools/office/word-tools.ts +0 -9
  488. package/src/tools/registry.ts +0 -527
  489. package/src/tools/types.ts +0 -231
  490. package/src/types/index.ts +0 -181
  491. package/src/ui/PlanExecuteView.tsx +0 -119
  492. package/src/ui/TodoPanel.tsx +0 -240
  493. package/src/ui/UpdateNotification.tsx +0 -105
  494. package/src/ui/components/ActivityIndicator.tsx +0 -234
  495. package/src/ui/components/CommandBrowser.tsx +0 -114
  496. package/src/ui/components/CustomTextInput.tsx +0 -389
  497. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  498. package/src/ui/components/FileBrowser.tsx +0 -93
  499. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  500. package/src/ui/components/Logo.tsx +0 -125
  501. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  502. package/src/ui/components/ModelSelector.tsx +0 -203
  503. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  504. package/src/ui/components/ProgressBar.tsx +0 -51
  505. package/src/ui/components/StatusBar.tsx +0 -302
  506. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  507. package/src/ui/components/TodoListView.tsx +0 -140
  508. package/src/ui/components/ToolSelector.tsx +0 -215
  509. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  510. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  511. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  512. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  513. package/src/ui/components/dialogs/index.ts +0 -13
  514. package/src/ui/components/index.ts +0 -27
  515. package/src/ui/components/panels/LogPanel.tsx +0 -385
  516. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  517. package/src/ui/components/panels/index.ts +0 -13
  518. package/src/ui/components/views/ChatView.tsx +0 -447
  519. package/src/ui/components/views/index.ts +0 -5
  520. package/src/ui/contexts/TokenContext.tsx +0 -139
  521. package/src/ui/hooks/atFileProcessor.ts +0 -167
  522. package/src/ui/hooks/index.ts +0 -11
  523. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  524. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  525. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  526. package/src/ui/hooks/useFileList.ts +0 -132
  527. package/src/ui/hooks/useInputHistory.ts +0 -89
  528. package/src/ui/hooks/usePlanExecution.ts +0 -339
  529. package/src/ui/index.ts +0 -10
  530. package/src/ui/ink-entry.tsx +0 -36
  531. package/src/utils/env-filter.ts +0 -164
  532. package/src/utils/file-system.ts +0 -133
  533. package/src/utils/git-utils.ts +0 -30
  534. package/src/utils/json-stream-logger.ts +0 -1259
  535. package/src/utils/logger.ts +0 -2767
  536. package/src/utils/platform-utils.ts +0 -256
  537. package/src/utils/wsl-utils.ts +0 -113
  538. package/tsconfig.electron.json +0 -39
  539. package/tsconfig.json +0 -64
@@ -1,358 +0,0 @@
1
- /**
2
- * Markdown Renderer Component
3
- *
4
- * Renders markdown content with syntax highlighting for code blocks
5
- * Supports: headers, bold, italic, code blocks, inline code, lists
6
- */
7
-
8
- import React from 'react';
9
- import { Box, Text } from 'ink';
10
-
11
- // Simple syntax highlighting colors
12
- const SYNTAX_COLORS: Record<string, string> = {
13
- keyword: 'magenta',
14
- string: 'green',
15
- number: 'yellow',
16
- comment: 'gray',
17
- function: 'cyan',
18
- operator: 'white',
19
- punctuation: 'gray',
20
- variable: 'blue',
21
- type: 'yellow',
22
- };
23
-
24
- // Language keywords for highlighting
25
- const KEYWORDS: Record<string, string[]> = {
26
- typescript: ['const', 'let', 'var', 'function', 'class', 'interface', 'type', 'import', 'export', 'from', 'return', 'if', 'else', 'for', 'while', 'async', 'await', 'try', 'catch', 'throw', 'new', 'this', 'extends', 'implements', 'public', 'private', 'protected', 'static', 'readonly', 'enum', 'namespace', 'module', 'declare', 'as', 'in', 'of', 'typeof', 'instanceof', 'null', 'undefined', 'true', 'false'],
27
- javascript: ['const', 'let', 'var', 'function', 'class', 'import', 'export', 'from', 'return', 'if', 'else', 'for', 'while', 'async', 'await', 'try', 'catch', 'throw', 'new', 'this', 'extends', 'null', 'undefined', 'true', 'false'],
28
- python: ['def', 'class', 'import', 'from', 'return', 'if', 'elif', 'else', 'for', 'while', 'try', 'except', 'raise', 'with', 'as', 'lambda', 'yield', 'async', 'await', 'None', 'True', 'False', 'and', 'or', 'not', 'in', 'is', 'pass', 'break', 'continue', 'global', 'nonlocal', 'assert', 'del'],
29
- bash: ['if', 'then', 'else', 'elif', 'fi', 'for', 'while', 'do', 'done', 'case', 'esac', 'function', 'return', 'exit', 'export', 'source', 'alias', 'echo', 'cd', 'ls', 'rm', 'cp', 'mv', 'mkdir', 'chmod', 'chown', 'grep', 'sed', 'awk', 'cat', 'head', 'tail', 'find', 'xargs'],
30
- };
31
-
32
- interface MarkdownRendererProps {
33
- content: string;
34
- showTimestamp?: boolean;
35
- timestamp?: Date;
36
- }
37
-
38
- /**
39
- * Simple syntax highlighter for code
40
- */
41
- function highlightCode(code: string, language: string): React.ReactNode[] {
42
- const keywords = KEYWORDS[language] || KEYWORDS['javascript'] || [];
43
- const lines = code.split('\n');
44
-
45
- return lines.map((line, lineIdx) => {
46
- const tokens: React.ReactNode[] = [];
47
- let remaining = line;
48
- let keyIndex = 0;
49
-
50
- // Process the line character by character for highlighting
51
- while (remaining.length > 0) {
52
- let matched = false;
53
-
54
- // Check for comments
55
- if (remaining.startsWith('//') || remaining.startsWith('#')) {
56
- tokens.push(
57
- <Text key={`${lineIdx}-${keyIndex++}`} color={SYNTAX_COLORS['comment']}>
58
- {remaining}
59
- </Text>
60
- );
61
- break;
62
- }
63
-
64
- // Check for strings
65
- const stringMatch = remaining.match(/^(['"`])(?:[^\\]|\\.)*?\1/);
66
- if (stringMatch) {
67
- tokens.push(
68
- <Text key={`${lineIdx}-${keyIndex++}`} color={SYNTAX_COLORS['string']}>
69
- {stringMatch[0]}
70
- </Text>
71
- );
72
- remaining = remaining.slice(stringMatch[0].length);
73
- matched = true;
74
- continue;
75
- }
76
-
77
- // Check for numbers
78
- const numberMatch = remaining.match(/^\d+\.?\d*/);
79
- if (numberMatch) {
80
- tokens.push(
81
- <Text key={`${lineIdx}-${keyIndex++}`} color={SYNTAX_COLORS['number']}>
82
- {numberMatch[0]}
83
- </Text>
84
- );
85
- remaining = remaining.slice(numberMatch[0].length);
86
- matched = true;
87
- continue;
88
- }
89
-
90
- // Check for keywords
91
- for (const kw of keywords) {
92
- if (remaining.startsWith(kw) && !/[a-zA-Z0-9_]/.test(remaining[kw.length] || '')) {
93
- tokens.push(
94
- <Text key={`${lineIdx}-${keyIndex++}`} color={SYNTAX_COLORS['keyword']} bold>
95
- {kw}
96
- </Text>
97
- );
98
- remaining = remaining.slice(kw.length);
99
- matched = true;
100
- break;
101
- }
102
- }
103
-
104
- if (!matched) {
105
- // Check for function calls
106
- const funcMatch = remaining.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*\(/);
107
- if (funcMatch && funcMatch[1]) {
108
- tokens.push(
109
- <Text key={`${lineIdx}-${keyIndex++}`} color={SYNTAX_COLORS['function']}>
110
- {funcMatch[1]}
111
- </Text>
112
- );
113
- remaining = remaining.slice(funcMatch[1].length);
114
- continue;
115
- }
116
-
117
- // Default: add single character
118
- tokens.push(
119
- <Text key={`${lineIdx}-${keyIndex++}`}>
120
- {remaining[0]}
121
- </Text>
122
- );
123
- remaining = remaining.slice(1);
124
- }
125
- }
126
-
127
- return (
128
- <Box key={lineIdx}>
129
- <Text color="gray" dimColor>
130
- {String(lineIdx + 1).padStart(3, ' ')} │
131
- </Text>
132
- {tokens}
133
- </Box>
134
- );
135
- });
136
- }
137
-
138
- /**
139
- * Parse and render markdown content
140
- */
141
- export const MarkdownRenderer: React.FC<MarkdownRendererProps> = ({
142
- content,
143
- showTimestamp = false,
144
- timestamp,
145
- }) => {
146
- const elements: React.ReactNode[] = [];
147
- const lines = content.split('\n');
148
- let i = 0;
149
- let elementKey = 0;
150
-
151
- while (i < lines.length) {
152
- const line = lines[i] ?? '';
153
-
154
- // Code block
155
- const codeBlockMatch = line.match(/^```(\w*)/);
156
- if (codeBlockMatch) {
157
- const language = codeBlockMatch[1] || 'text';
158
- const codeLines: string[] = [];
159
- i++;
160
-
161
- while (i < lines.length && !(lines[i] ?? '').startsWith('```')) {
162
- codeLines.push(lines[i] ?? '');
163
- i++;
164
- }
165
- i++; // Skip closing ```
166
-
167
- const code = codeLines.join('\n');
168
-
169
- elements.push(
170
- <Box
171
- key={elementKey++}
172
- flexDirection="column"
173
- borderStyle="round"
174
- borderColor="gray"
175
- paddingX={1}
176
- marginY={0}
177
- >
178
- <Box marginBottom={0}>
179
- <Text color="gray" dimColor>
180
- {language || 'code'}
181
- </Text>
182
- </Box>
183
- <Box flexDirection="column">
184
- {highlightCode(code, language)}
185
- </Box>
186
- </Box>
187
- );
188
- continue;
189
- }
190
-
191
- // Headers
192
- if (line.startsWith('### ')) {
193
- elements.push(
194
- <Text key={elementKey++} color="cyan">
195
- {line.slice(4)}
196
- </Text>
197
- );
198
- i++;
199
- continue;
200
- }
201
- if (line.startsWith('## ')) {
202
- elements.push(
203
- <Text key={elementKey++} color="cyan" bold>
204
- {line.slice(3)}
205
- </Text>
206
- );
207
- i++;
208
- continue;
209
- }
210
- if (line.startsWith('# ')) {
211
- elements.push(
212
- <Text key={elementKey++} color="cyan" bold underline>
213
- {line.slice(2)}
214
- </Text>
215
- );
216
- i++;
217
- continue;
218
- }
219
-
220
- // Bullet lists
221
- if (line.match(/^[\s]*[-*]\s/)) {
222
- const indentMatch = line.match(/^(\s*)/);
223
- const indent = indentMatch?.[1]?.length ?? 0;
224
- const text = line.replace(/^[\s]*[-*]\s/, '');
225
- elements.push(
226
- <Box key={elementKey++} paddingLeft={indent}>
227
- <Text color="cyan">• </Text>
228
- <Text>{renderInlineMarkdown(text)}</Text>
229
- </Box>
230
- );
231
- i++;
232
- continue;
233
- }
234
-
235
- // Numbered lists
236
- if (line.match(/^[\s]*\d+\.\s/)) {
237
- const match = line.match(/^(\s*)(\d+)\.\s(.*)$/);
238
- if (match) {
239
- const indent = match[1] ?? '';
240
- const num = match[2] ?? '';
241
- const text = match[3] ?? '';
242
- elements.push(
243
- <Box key={elementKey++} paddingLeft={indent.length}>
244
- <Text color="yellow">{num}. </Text>
245
- <Text>{renderInlineMarkdown(text)}</Text>
246
- </Box>
247
- );
248
- }
249
- i++;
250
- continue;
251
- }
252
-
253
- // Empty line - collapse consecutive empty lines into one
254
- if (line.trim() === '') {
255
- // Skip consecutive empty lines
256
- while (i + 1 < lines.length && (lines[i + 1] ?? '').trim() === '') {
257
- i++;
258
- }
259
- elements.push(<Box key={elementKey++} height={1} />);
260
- i++;
261
- continue;
262
- }
263
-
264
- // Regular text with inline markdown
265
- elements.push(
266
- <Text key={elementKey++}>{renderInlineMarkdown(line)}</Text>
267
- );
268
- i++;
269
- }
270
-
271
- return (
272
- <Box flexDirection="column">
273
- {showTimestamp && timestamp && (
274
- <Text color="gray" dimColor>
275
- {timestamp.toLocaleTimeString('ko-KR')}
276
- </Text>
277
- )}
278
- {elements}
279
- </Box>
280
- );
281
- };
282
-
283
- /**
284
- * Render inline markdown (bold, italic, code, links)
285
- */
286
- function renderInlineMarkdown(text: string): React.ReactNode[] {
287
- const elements: React.ReactNode[] = [];
288
- let remaining = text;
289
- let key = 0;
290
-
291
- while (remaining.length > 0) {
292
- // Inline code
293
- const codeMatch = remaining.match(/^`([^`]+)`/);
294
- if (codeMatch) {
295
- elements.push(
296
- <Text key={key++} color="yellow" backgroundColor="gray">
297
- {codeMatch[1]}
298
- </Text>
299
- );
300
- remaining = remaining.slice(codeMatch[0].length);
301
- continue;
302
- }
303
-
304
- // Bold
305
- const boldMatch = remaining.match(/^\*\*([^*]+)\*\*/);
306
- if (boldMatch) {
307
- elements.push(
308
- <Text key={key++} bold>
309
- {boldMatch[1]}
310
- </Text>
311
- );
312
- remaining = remaining.slice(boldMatch[0].length);
313
- continue;
314
- }
315
-
316
- // Italic
317
- const italicMatch = remaining.match(/^\*([^*]+)\*/);
318
- if (italicMatch) {
319
- elements.push(
320
- <Text key={key++} italic dimColor>
321
- {italicMatch[1]}
322
- </Text>
323
- );
324
- remaining = remaining.slice(italicMatch[0].length);
325
- continue;
326
- }
327
-
328
- // Link (just show text, not URL in terminal)
329
- const linkMatch = remaining.match(/^\[([^\]]+)\]\([^)]+\)/);
330
- if (linkMatch) {
331
- elements.push(
332
- <Text key={key++} color="blue" underline>
333
- {linkMatch[1]}
334
- </Text>
335
- );
336
- remaining = remaining.slice(linkMatch[0].length);
337
- continue;
338
- }
339
-
340
- // Find next special character
341
- const nextSpecial = remaining.search(/[`*\[]/);
342
- if (nextSpecial === -1) {
343
- elements.push(<Text key={key++}>{remaining}</Text>);
344
- break;
345
- } else if (nextSpecial === 0) {
346
- // Special char at start but no match, treat as regular
347
- elements.push(<Text key={key++}>{remaining[0]}</Text>);
348
- remaining = remaining.slice(1);
349
- } else {
350
- elements.push(<Text key={key++}>{remaining.slice(0, nextSpecial)}</Text>);
351
- remaining = remaining.slice(nextSpecial);
352
- }
353
- }
354
-
355
- return elements;
356
- }
357
-
358
- export default MarkdownRenderer;
@@ -1,203 +0,0 @@
1
- /**
2
- * Model Selector Component
3
- *
4
- * Allows switching between healthy LLM models via /model command
5
- */
6
-
7
- import React, { useState, useEffect, useCallback } from 'react';
8
- import { Box, Text, useInput } from 'ink';
9
- import SelectInput from 'ink-select-input';
10
- import { configManager } from '../../core/config/config-manager.js';
11
- import { LLMClient } from '../../core/llm/llm-client.js';
12
- import { EndpointConfig, ModelInfo } from '../../types/index.js';
13
-
14
- interface ModelSelectorProps {
15
- onSelect: (endpointId: string, modelId: string) => void;
16
- onCancel: () => void;
17
- }
18
-
19
- interface SelectItem {
20
- label: string;
21
- value: string;
22
- }
23
-
24
- interface ModelWithEndpoint {
25
- endpoint: EndpointConfig;
26
- model: ModelInfo;
27
- isCurrent: boolean;
28
- isHealthy: boolean;
29
- }
30
-
31
- export const ModelSelector: React.FC<ModelSelectorProps> = ({ onSelect, onCancel }) => {
32
- const [models, setModels] = useState<ModelWithEndpoint[]>([]);
33
- const [isLoading, setIsLoading] = useState(true);
34
-
35
- // Load models and health status
36
- useEffect(() => {
37
- const loadModels = async () => {
38
- setIsLoading(true);
39
-
40
- try {
41
- // Get all models
42
- const allModels = configManager.getAllModels();
43
-
44
- // Run health check
45
- const healthResults = await LLMClient.healthCheckAll();
46
-
47
- // Build model list with health status
48
- const modelsWithHealth: ModelWithEndpoint[] = allModels.map((m) => {
49
- const endpointHealth = healthResults.get(m.endpoint.id);
50
- const modelHealth = endpointHealth?.find((h) => h.modelId === m.model.id);
51
-
52
- return {
53
- endpoint: m.endpoint,
54
- model: m.model,
55
- isCurrent: m.isCurrent,
56
- isHealthy: modelHealth?.healthy ?? m.model.healthStatus === 'healthy',
57
- };
58
- });
59
-
60
- setModels(modelsWithHealth);
61
- } catch {
62
- // Load without health check if it fails
63
- const allModels = configManager.getAllModels();
64
- setModels(
65
- allModels.map((m) => ({
66
- endpoint: m.endpoint,
67
- model: m.model,
68
- isCurrent: m.isCurrent,
69
- isHealthy: m.model.healthStatus === 'healthy',
70
- }))
71
- );
72
- } finally {
73
- setIsLoading(false);
74
- }
75
- };
76
-
77
- loadModels();
78
- }, []);
79
-
80
- // Handle keyboard input
81
- useInput((_inputChar, key) => {
82
- if (key.escape) {
83
- onCancel();
84
- }
85
- });
86
-
87
- // Handle model selection
88
- const handleSelect = useCallback(
89
- async (item: SelectItem) => {
90
- const [endpointId, modelId] = item.value.split(':');
91
- if (!endpointId || !modelId) return;
92
-
93
- // Find the model
94
- const model = models.find(
95
- (m) => m.endpoint.id === endpointId && m.model.id === modelId
96
- );
97
-
98
- if (!model) return;
99
-
100
- // Don't select unhealthy models
101
- if (!model.isHealthy) {
102
- return;
103
- }
104
-
105
- // Don't select if already current
106
- if (model.isCurrent) {
107
- onCancel();
108
- return;
109
- }
110
-
111
- // Switch endpoint and model
112
- try {
113
- await configManager.setCurrentEndpoint(endpointId);
114
- await configManager.setCurrentModel(modelId);
115
- onSelect(endpointId, modelId);
116
- } catch {
117
- // Ignore errors
118
- onCancel();
119
- }
120
- },
121
- [models, onSelect, onCancel]
122
- );
123
-
124
- // Build menu items
125
- const menuItems: SelectItem[] = models.map((m) => {
126
- const healthIcon = m.isHealthy ? '✓' : '✗';
127
- const currentLabel = m.isCurrent ? ' (current)' : '';
128
- const endpointName = m.endpoint.name;
129
-
130
- return {
131
- label: `${m.model.name} (${endpointName})${currentLabel} ${healthIcon}`,
132
- value: `${m.endpoint.id}:${m.model.id}`,
133
- };
134
- });
135
-
136
- if (isLoading) {
137
- return (
138
- <Box flexDirection="column">
139
- <Box borderStyle="single" borderColor="cyan" paddingX={1}>
140
- <Text color="cyan" bold>
141
- Select Model
142
- </Text>
143
- </Box>
144
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
145
- <Text color="gray">Loading models...</Text>
146
- </Box>
147
- </Box>
148
- );
149
- }
150
-
151
- if (models.length === 0) {
152
- return (
153
- <Box flexDirection="column">
154
- <Box borderStyle="single" borderColor="cyan" paddingX={1}>
155
- <Text color="cyan" bold>
156
- Select Model
157
- </Text>
158
- </Box>
159
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
160
- <Text color="gray">No models configured. Use /settings → LLMs to add endpoints.</Text>
161
- </Box>
162
- <Box marginTop={1}>
163
- <Text dimColor>ESC: close</Text>
164
- </Box>
165
- </Box>
166
- );
167
- }
168
-
169
- return (
170
- <Box flexDirection="column">
171
- {/* Header */}
172
- <Box borderStyle="single" borderColor="cyan" paddingX={1}>
173
- <Text color="cyan" bold>
174
- Select Model
175
- </Text>
176
- </Box>
177
-
178
- {/* Models List */}
179
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
180
- <SelectInput items={menuItems} onSelect={handleSelect} />
181
- </Box>
182
-
183
- {/* Legend */}
184
- <Box marginTop={1} paddingX={1}>
185
- <Text color="green">✓ healthy </Text>
186
- <Text color="red">✗ offline (cannot select)</Text>
187
- </Box>
188
-
189
- {/* Hint for adding new models */}
190
- <Box paddingX={1}>
191
- <Text color="gray" dimColor>💡 Add new model: </Text>
192
- <Text color="yellow">/settings</Text>
193
- <Text color="gray" dimColor> → </Text>
194
- <Text color="yellow">LLMs</Text>
195
- </Box>
196
-
197
- {/* Footer */}
198
- <Box marginTop={1}>
199
- <Text dimColor>↑↓: move | Enter: select | ESC: cancel</Text>
200
- </Box>
201
- </Box>
202
- );
203
- };