orquesta-cli 0.1.12 → 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 (540) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/constants.js +1 -1
  4. package/dist/core/config/config-manager.d.ts +13 -1
  5. package/dist/core/config/config-manager.js +83 -0
  6. package/dist/core/slash-command-handler.d.ts +1 -0
  7. package/dist/core/slash-command-handler.js +129 -0
  8. package/dist/orquesta/config-sync.d.ts +73 -0
  9. package/dist/orquesta/config-sync.js +230 -0
  10. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  11. package/dist/orquesta/prompt-reporter.js +85 -0
  12. package/dist/setup/first-run-setup.d.ts +15 -0
  13. package/dist/setup/first-run-setup.js +238 -0
  14. package/dist/types/index.d.ts +11 -2
  15. package/dist/ui/TodoPanel.d.ts +1 -0
  16. package/dist/ui/TodoPanel.js +6 -1
  17. package/dist/ui/components/LLMSetupWizard.js +373 -7
  18. package/dist/ui/components/Logo.d.ts +2 -0
  19. package/dist/ui/components/Logo.js +10 -3
  20. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  21. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  22. package/dist/ui/components/PlanExecuteApp.js +30 -4
  23. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  24. package/dist/ui/components/ProjectSelector.js +119 -0
  25. package/dist/ui/components/StatusBar.d.ts +2 -0
  26. package/dist/ui/components/StatusBar.js +6 -1
  27. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  28. package/package.json +11 -5
  29. package/.eslintrc.json +0 -26
  30. package/.prettierrc.json +0 -10
  31. package/CLAUDE.md +0 -199
  32. package/SECURITY.md +0 -290
  33. package/TEST_LOCAL.md +0 -245
  34. package/dist/agents/base/base-agent.d.ts.map +0 -1
  35. package/dist/agents/base/base-agent.js.map +0 -1
  36. package/dist/agents/docs-search/index.d.ts.map +0 -1
  37. package/dist/agents/docs-search/index.js.map +0 -1
  38. package/dist/agents/index.d.ts.map +0 -1
  39. package/dist/agents/index.js.map +0 -1
  40. package/dist/agents/planner/index.d.ts.map +0 -1
  41. package/dist/agents/planner/index.js.map +0 -1
  42. package/dist/cli.d.ts.map +0 -1
  43. package/dist/cli.js.map +0 -1
  44. package/dist/constants.d.ts.map +0 -1
  45. package/dist/constants.js.map +0 -1
  46. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  47. package/dist/core/compact/compact-manager.js.map +0 -1
  48. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  49. package/dist/core/compact/compact-prompts.js.map +0 -1
  50. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  51. package/dist/core/compact/context-tracker.js.map +0 -1
  52. package/dist/core/compact/index.d.ts.map +0 -1
  53. package/dist/core/compact/index.js.map +0 -1
  54. package/dist/core/config/config-manager.d.ts.map +0 -1
  55. package/dist/core/config/config-manager.js.map +0 -1
  56. package/dist/core/config/index.d.ts.map +0 -1
  57. package/dist/core/config/index.js.map +0 -1
  58. package/dist/core/docs-manager.d.ts.map +0 -1
  59. package/dist/core/docs-manager.js.map +0 -1
  60. package/dist/core/git-auto-updater.d.ts.map +0 -1
  61. package/dist/core/git-auto-updater.js.map +0 -1
  62. package/dist/core/llm/index.d.ts.map +0 -1
  63. package/dist/core/llm/index.js.map +0 -1
  64. package/dist/core/llm/llm-client.d.ts.map +0 -1
  65. package/dist/core/llm/llm-client.js.map +0 -1
  66. package/dist/core/session/index.d.ts.map +0 -1
  67. package/dist/core/session/index.js.map +0 -1
  68. package/dist/core/session/session-manager.d.ts.map +0 -1
  69. package/dist/core/session/session-manager.js.map +0 -1
  70. package/dist/core/slash-command-handler.d.ts.map +0 -1
  71. package/dist/core/slash-command-handler.js.map +0 -1
  72. package/dist/core/usage-tracker.d.ts.map +0 -1
  73. package/dist/core/usage-tracker.js.map +0 -1
  74. package/dist/errors/base.d.ts.map +0 -1
  75. package/dist/errors/base.js.map +0 -1
  76. package/dist/errors/file.d.ts.map +0 -1
  77. package/dist/errors/file.js.map +0 -1
  78. package/dist/errors/index.d.ts.map +0 -1
  79. package/dist/errors/index.js.map +0 -1
  80. package/dist/errors/llm.d.ts.map +0 -1
  81. package/dist/errors/llm.js.map +0 -1
  82. package/dist/errors/network.d.ts.map +0 -1
  83. package/dist/errors/network.js.map +0 -1
  84. package/dist/errors/validation.d.ts.map +0 -1
  85. package/dist/errors/validation.js.map +0 -1
  86. package/dist/eval/eval-runner.d.ts.map +0 -1
  87. package/dist/eval/eval-runner.js.map +0 -1
  88. package/dist/eval/index.d.ts.map +0 -1
  89. package/dist/eval/index.js.map +0 -1
  90. package/dist/eval/types.d.ts.map +0 -1
  91. package/dist/eval/types.js.map +0 -1
  92. package/dist/index.d.ts.map +0 -1
  93. package/dist/index.js.map +0 -1
  94. package/dist/orchestration/index.d.ts.map +0 -1
  95. package/dist/orchestration/index.js.map +0 -1
  96. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  97. package/dist/orchestration/plan-executor.js.map +0 -1
  98. package/dist/orchestration/types.d.ts.map +0 -1
  99. package/dist/orchestration/types.js.map +0 -1
  100. package/dist/orchestration/utils.d.ts.map +0 -1
  101. package/dist/orchestration/utils.js.map +0 -1
  102. package/dist/orquesta/connection.d.ts.map +0 -1
  103. package/dist/orquesta/connection.js.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  105. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  106. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  107. package/dist/prompts/agents/docs-search.js.map +0 -1
  108. package/dist/prompts/agents/planning.d.ts.map +0 -1
  109. package/dist/prompts/agents/planning.js.map +0 -1
  110. package/dist/prompts/index.d.ts.map +0 -1
  111. package/dist/prompts/index.js.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  113. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  114. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  115. package/dist/prompts/shared/git-rules.js.map +0 -1
  116. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  117. package/dist/prompts/shared/language-rules.js.map +0 -1
  118. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  119. package/dist/prompts/shared/tool-usage.js.map +0 -1
  120. package/dist/prompts/system/compact.d.ts.map +0 -1
  121. package/dist/prompts/system/compact.js.map +0 -1
  122. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  123. package/dist/prompts/system/plan-execute.js.map +0 -1
  124. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  125. package/dist/tools/browser/browser-client.js.map +0 -1
  126. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  127. package/dist/tools/browser/browser-tools.js.map +0 -1
  128. package/dist/tools/browser/index.d.ts.map +0 -1
  129. package/dist/tools/browser/index.js.map +0 -1
  130. package/dist/tools/index.d.ts.map +0 -1
  131. package/dist/tools/index.js.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  133. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  134. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  135. package/dist/tools/llm/agents/index.js.map +0 -1
  136. package/dist/tools/llm/index.d.ts.map +0 -1
  137. package/dist/tools/llm/index.js.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  139. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  141. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  143. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  145. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  147. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  149. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  151. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  152. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  153. package/dist/tools/llm/simple/index.js.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  155. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  157. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  159. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  161. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  163. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  164. package/dist/tools/office/common/constants.d.ts.map +0 -1
  165. package/dist/tools/office/common/constants.js.map +0 -1
  166. package/dist/tools/office/common/index.d.ts.map +0 -1
  167. package/dist/tools/office/common/index.js.map +0 -1
  168. package/dist/tools/office/common/types.d.ts.map +0 -1
  169. package/dist/tools/office/common/types.js.map +0 -1
  170. package/dist/tools/office/common/utils.d.ts.map +0 -1
  171. package/dist/tools/office/common/utils.js.map +0 -1
  172. package/dist/tools/office/excel-client.d.ts.map +0 -1
  173. package/dist/tools/office/excel-client.js.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  175. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  177. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  179. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  181. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  182. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  183. package/dist/tools/office/excel-tools/export.js.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  185. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  186. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  187. package/dist/tools/office/excel-tools/index.js.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  189. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  190. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  191. package/dist/tools/office/excel-tools/media.js.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  193. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  195. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  197. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  199. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  201. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  202. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  203. package/dist/tools/office/excel-tools.js.map +0 -1
  204. package/dist/tools/office/index.d.ts.map +0 -1
  205. package/dist/tools/office/index.js.map +0 -1
  206. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  207. package/dist/tools/office/office-client-base.js.map +0 -1
  208. package/dist/tools/office/office-client.d.ts.map +0 -1
  209. package/dist/tools/office/office-client.js.map +0 -1
  210. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  211. package/dist/tools/office/powerpoint-client.js.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  233. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  235. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  236. package/dist/tools/office/word-client.d.ts.map +0 -1
  237. package/dist/tools/office/word-client.js.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  239. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  240. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  241. package/dist/tools/office/word-tools/comments.js.map +0 -1
  242. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  243. package/dist/tools/office/word-tools/content.js.map +0 -1
  244. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  245. package/dist/tools/office/word-tools/export.js.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  247. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  249. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  250. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  251. package/dist/tools/office/word-tools/index.js.map +0 -1
  252. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  253. package/dist/tools/office/word-tools/launch.js.map +0 -1
  254. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  255. package/dist/tools/office/word-tools/lists.js.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  257. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  259. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  260. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  261. package/dist/tools/office/word-tools/tables.js.map +0 -1
  262. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  263. package/dist/tools/office/word-tools/text.js.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  265. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  267. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  268. package/dist/tools/office/word-tools.d.ts.map +0 -1
  269. package/dist/tools/office/word-tools.js.map +0 -1
  270. package/dist/tools/registry.d.ts.map +0 -1
  271. package/dist/tools/registry.js.map +0 -1
  272. package/dist/tools/types.d.ts.map +0 -1
  273. package/dist/tools/types.js.map +0 -1
  274. package/dist/types/index.d.ts.map +0 -1
  275. package/dist/types/index.js.map +0 -1
  276. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  277. package/dist/ui/PlanExecuteView.js.map +0 -1
  278. package/dist/ui/TodoPanel.d.ts.map +0 -1
  279. package/dist/ui/TodoPanel.js.map +0 -1
  280. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  281. package/dist/ui/UpdateNotification.js.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  283. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  284. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  285. package/dist/ui/components/CommandBrowser.js.map +0 -1
  286. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  287. package/dist/ui/components/CustomTextInput.js.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  289. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  290. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  291. package/dist/ui/components/FileBrowser.js.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  293. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  294. package/dist/ui/components/Logo.d.ts.map +0 -1
  295. package/dist/ui/components/Logo.js.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  297. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  298. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  299. package/dist/ui/components/ModelSelector.js.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  301. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  302. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  303. package/dist/ui/components/ProgressBar.js.map +0 -1
  304. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  305. package/dist/ui/components/StatusBar.js.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  307. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  308. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  309. package/dist/ui/components/TodoListView.js.map +0 -1
  310. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  311. package/dist/ui/components/ToolSelector.js.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  313. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  315. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  317. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  319. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  320. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  321. package/dist/ui/components/dialogs/index.js.map +0 -1
  322. package/dist/ui/components/index.d.ts.map +0 -1
  323. package/dist/ui/components/index.js.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  325. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  327. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  328. package/dist/ui/components/panels/index.d.ts.map +0 -1
  329. package/dist/ui/components/panels/index.js.map +0 -1
  330. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  331. package/dist/ui/components/views/ChatView.js.map +0 -1
  332. package/dist/ui/components/views/index.d.ts.map +0 -1
  333. package/dist/ui/components/views/index.js.map +0 -1
  334. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  335. package/dist/ui/contexts/TokenContext.js.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  337. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  338. package/dist/ui/hooks/index.d.ts.map +0 -1
  339. package/dist/ui/hooks/index.js.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  341. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  343. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  345. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  346. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  347. package/dist/ui/hooks/useFileList.js.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  349. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  351. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  352. package/dist/ui/index.d.ts.map +0 -1
  353. package/dist/ui/index.js.map +0 -1
  354. package/dist/ui/ink-entry.d.ts.map +0 -1
  355. package/dist/ui/ink-entry.js.map +0 -1
  356. package/dist/utils/env-filter.d.ts.map +0 -1
  357. package/dist/utils/env-filter.js.map +0 -1
  358. package/dist/utils/file-system.d.ts.map +0 -1
  359. package/dist/utils/file-system.js.map +0 -1
  360. package/dist/utils/git-utils.d.ts.map +0 -1
  361. package/dist/utils/git-utils.js.map +0 -1
  362. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  363. package/dist/utils/json-stream-logger.js.map +0 -1
  364. package/dist/utils/logger.d.ts.map +0 -1
  365. package/dist/utils/logger.js.map +0 -1
  366. package/dist/utils/platform-utils.d.ts.map +0 -1
  367. package/dist/utils/platform-utils.js.map +0 -1
  368. package/dist/utils/wsl-utils.d.ts.map +0 -1
  369. package/dist/utils/wsl-utils.js.map +0 -1
  370. package/electron.vite.config.ts +0 -63
  371. package/google374b9eba0c52b043.html +0 -1
  372. package/src/agents/base/base-agent.ts +0 -159
  373. package/src/agents/docs-search/index.ts +0 -365
  374. package/src/agents/index.ts +0 -34
  375. package/src/agents/planner/index.ts +0 -544
  376. package/src/cli.ts +0 -201
  377. package/src/constants.ts +0 -47
  378. package/src/core/compact/compact-manager.ts +0 -160
  379. package/src/core/compact/compact-prompts.ts +0 -150
  380. package/src/core/compact/context-tracker.ts +0 -164
  381. package/src/core/compact/index.ts +0 -25
  382. package/src/core/config/config-manager.ts +0 -460
  383. package/src/core/config/index.ts +0 -5
  384. package/src/core/docs-manager.ts +0 -678
  385. package/src/core/llm/index.ts +0 -7
  386. package/src/core/llm/llm-client.ts +0 -1550
  387. package/src/core/session/index.ts +0 -5
  388. package/src/core/session/session-manager.ts +0 -464
  389. package/src/core/slash-command-handler.ts +0 -410
  390. package/src/core/usage-tracker.ts +0 -438
  391. package/src/errors/base.ts +0 -81
  392. package/src/errors/file.ts +0 -183
  393. package/src/errors/index.ts +0 -95
  394. package/src/errors/llm.ts +0 -151
  395. package/src/errors/network.ts +0 -124
  396. package/src/errors/validation.ts +0 -111
  397. package/src/eval/eval-runner.ts +0 -456
  398. package/src/eval/index.ts +0 -8
  399. package/src/eval/types.ts +0 -139
  400. package/src/index.ts +0 -22
  401. package/src/orchestration/index.ts +0 -30
  402. package/src/orchestration/plan-executor.ts +0 -652
  403. package/src/orchestration/types.ts +0 -127
  404. package/src/orchestration/utils.ts +0 -119
  405. package/src/orquesta/connection.ts +0 -291
  406. package/src/prompts/agents/docs-search-decision.ts +0 -74
  407. package/src/prompts/agents/docs-search.ts +0 -84
  408. package/src/prompts/agents/planning.ts +0 -143
  409. package/src/prompts/index.ts +0 -31
  410. package/src/prompts/shared/codebase-rules.ts +0 -29
  411. package/src/prompts/shared/git-rules.ts +0 -94
  412. package/src/prompts/shared/language-rules.ts +0 -36
  413. package/src/prompts/shared/tool-usage.ts +0 -72
  414. package/src/prompts/system/compact.ts +0 -80
  415. package/src/prompts/system/plan-execute.ts +0 -89
  416. package/src/tools/browser/browser-client.ts +0 -1363
  417. package/src/tools/browser/browser-tools.ts +0 -1139
  418. package/src/tools/browser/index.ts +0 -65
  419. package/src/tools/index.ts +0 -23
  420. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  421. package/src/tools/llm/agents/index.ts +0 -22
  422. package/src/tools/llm/index.ts +0 -11
  423. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  424. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  425. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  426. package/src/tools/llm/simple/bash-tool.ts +0 -238
  427. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  428. package/src/tools/llm/simple/file-tools.ts +0 -1051
  429. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  430. package/src/tools/llm/simple/index.ts +0 -42
  431. package/src/tools/llm/simple/planning-tools.ts +0 -143
  432. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  433. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  434. package/src/tools/llm/simple/todo-tools.ts +0 -207
  435. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  436. package/src/tools/office/common/constants.ts +0 -335
  437. package/src/tools/office/common/index.ts +0 -133
  438. package/src/tools/office/common/types.ts +0 -286
  439. package/src/tools/office/common/utils.ts +0 -116
  440. package/src/tools/office/excel-client.ts +0 -1336
  441. package/src/tools/office/excel-tools/cells.ts +0 -359
  442. package/src/tools/office/excel-tools/charts.ts +0 -166
  443. package/src/tools/office/excel-tools/comments.ts +0 -155
  444. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  445. package/src/tools/office/excel-tools/export.ts +0 -105
  446. package/src/tools/office/excel-tools/formatting.ts +0 -357
  447. package/src/tools/office/excel-tools/index.ts +0 -55
  448. package/src/tools/office/excel-tools/launch.ts +0 -303
  449. package/src/tools/office/excel-tools/media.ts +0 -117
  450. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  451. package/src/tools/office/excel-tools/protection.ts +0 -105
  452. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  453. package/src/tools/office/excel-tools/sheets.ts +0 -228
  454. package/src/tools/office/excel-tools/validation.ts +0 -226
  455. package/src/tools/office/excel-tools.ts +0 -9
  456. package/src/tools/office/index.ts +0 -259
  457. package/src/tools/office/office-client-base.ts +0 -242
  458. package/src/tools/office/office-client.ts +0 -377
  459. package/src/tools/office/powerpoint-client.ts +0 -1498
  460. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  461. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  462. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  463. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  464. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  465. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  466. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  467. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  468. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  469. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  470. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  471. package/src/tools/office/powerpoint-tools.ts +0 -9
  472. package/src/tools/office/word-client.ts +0 -1697
  473. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  474. package/src/tools/office/word-tools/comments.ts +0 -185
  475. package/src/tools/office/word-tools/content.ts +0 -229
  476. package/src/tools/office/word-tools/export.ts +0 -97
  477. package/src/tools/office/word-tools/formatting.ts +0 -161
  478. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  479. package/src/tools/office/word-tools/index.ts +0 -57
  480. package/src/tools/office/word-tools/launch.ts +0 -312
  481. package/src/tools/office/word-tools/lists.ts +0 -97
  482. package/src/tools/office/word-tools/navigation.ts +0 -114
  483. package/src/tools/office/word-tools/page-setup.ts +0 -195
  484. package/src/tools/office/word-tools/tables.ts +0 -262
  485. package/src/tools/office/word-tools/text.ts +0 -294
  486. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  487. package/src/tools/office/word-tools/watermarks.ts +0 -105
  488. package/src/tools/office/word-tools.ts +0 -9
  489. package/src/tools/registry.ts +0 -527
  490. package/src/tools/types.ts +0 -231
  491. package/src/types/index.ts +0 -181
  492. package/src/ui/PlanExecuteView.tsx +0 -119
  493. package/src/ui/TodoPanel.tsx +0 -240
  494. package/src/ui/UpdateNotification.tsx +0 -105
  495. package/src/ui/components/ActivityIndicator.tsx +0 -234
  496. package/src/ui/components/CommandBrowser.tsx +0 -114
  497. package/src/ui/components/CustomTextInput.tsx +0 -389
  498. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  499. package/src/ui/components/FileBrowser.tsx +0 -93
  500. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  501. package/src/ui/components/Logo.tsx +0 -125
  502. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  503. package/src/ui/components/ModelSelector.tsx +0 -203
  504. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  505. package/src/ui/components/ProgressBar.tsx +0 -51
  506. package/src/ui/components/StatusBar.tsx +0 -302
  507. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  508. package/src/ui/components/TodoListView.tsx +0 -140
  509. package/src/ui/components/ToolSelector.tsx +0 -215
  510. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  511. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  512. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  513. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  514. package/src/ui/components/dialogs/index.ts +0 -13
  515. package/src/ui/components/index.ts +0 -27
  516. package/src/ui/components/panels/LogPanel.tsx +0 -385
  517. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  518. package/src/ui/components/panels/index.ts +0 -13
  519. package/src/ui/components/views/ChatView.tsx +0 -447
  520. package/src/ui/components/views/index.ts +0 -5
  521. package/src/ui/contexts/TokenContext.tsx +0 -139
  522. package/src/ui/hooks/atFileProcessor.ts +0 -167
  523. package/src/ui/hooks/index.ts +0 -11
  524. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  525. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  526. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  527. package/src/ui/hooks/useFileList.ts +0 -132
  528. package/src/ui/hooks/useInputHistory.ts +0 -89
  529. package/src/ui/hooks/usePlanExecution.ts +0 -339
  530. package/src/ui/index.ts +0 -10
  531. package/src/ui/ink-entry.tsx +0 -36
  532. package/src/utils/env-filter.ts +0 -164
  533. package/src/utils/file-system.ts +0 -133
  534. package/src/utils/git-utils.ts +0 -30
  535. package/src/utils/json-stream-logger.ts +0 -1259
  536. package/src/utils/logger.ts +0 -2767
  537. package/src/utils/platform-utils.ts +0 -256
  538. package/src/utils/wsl-utils.ts +0 -113
  539. package/tsconfig.electron.json +0 -39
  540. 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
- };