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
@@ -0,0 +1,221 @@
1
+ import React, { useState, useEffect, useMemo } from 'react';
2
+ import { Box, Text, useInput } from 'ink';
3
+ import TextInput from 'ink-text-input';
4
+ import Spinner from 'ink-spinner';
5
+ export const OpenRouterModelBrowser = ({ onSelect, onCancel, }) => {
6
+ const [mode, setMode] = useState('list');
7
+ const [models, setModels] = useState([]);
8
+ const [isLoading, setIsLoading] = useState(true);
9
+ const [error, setError] = useState(null);
10
+ const [searchQuery, setSearchQuery] = useState('');
11
+ const [manualModelId, setManualModelId] = useState('');
12
+ const [selectedIndex, setSelectedIndex] = useState(0);
13
+ const [scrollOffset, setScrollOffset] = useState(0);
14
+ const MAX_VISIBLE = 10;
15
+ useEffect(() => {
16
+ const fetchModels = async () => {
17
+ try {
18
+ const response = await fetch('https://openrouter.ai/api/v1/models');
19
+ if (!response.ok) {
20
+ throw new Error(`Failed to fetch models: ${response.status}`);
21
+ }
22
+ const data = await response.json();
23
+ const sortedModels = (data.data || []).sort((a, b) => {
24
+ const aFree = parseFloat(a.pricing.prompt) === 0 && parseFloat(a.pricing.completion) === 0;
25
+ const bFree = parseFloat(b.pricing.prompt) === 0 && parseFloat(b.pricing.completion) === 0;
26
+ if (aFree && !bFree)
27
+ return -1;
28
+ if (!aFree && bFree)
29
+ return 1;
30
+ return a.name.localeCompare(b.name);
31
+ });
32
+ setModels(sortedModels);
33
+ setIsLoading(false);
34
+ }
35
+ catch (err) {
36
+ setError(err instanceof Error ? err.message : 'Failed to fetch models');
37
+ setIsLoading(false);
38
+ }
39
+ };
40
+ fetchModels();
41
+ }, []);
42
+ const filteredModels = useMemo(() => {
43
+ if (!searchQuery.trim())
44
+ return models;
45
+ const query = searchQuery.toLowerCase();
46
+ return models.filter(model => model.id.toLowerCase().includes(query) ||
47
+ model.name.toLowerCase().includes(query) ||
48
+ model.description?.toLowerCase().includes(query));
49
+ }, [models, searchQuery]);
50
+ const isFreeModel = (model) => {
51
+ return parseFloat(model.pricing.prompt) === 0 && parseFloat(model.pricing.completion) === 0;
52
+ };
53
+ const formatPricing = (model) => {
54
+ const promptPrice = parseFloat(model.pricing.prompt);
55
+ const completionPrice = parseFloat(model.pricing.completion);
56
+ if (promptPrice === 0 && completionPrice === 0) {
57
+ return 'Free';
58
+ }
59
+ const promptPer1M = (promptPrice * 1000000).toFixed(2);
60
+ return `$${promptPer1M}/1M`;
61
+ };
62
+ const handleSelect = () => {
63
+ if (mode === 'manual') {
64
+ if (manualModelId.trim()) {
65
+ onSelect({
66
+ id: manualModelId.trim(),
67
+ name: manualModelId.trim(),
68
+ contextLength: 128000,
69
+ isFree: false,
70
+ });
71
+ }
72
+ }
73
+ else {
74
+ const model = filteredModels[selectedIndex];
75
+ if (model) {
76
+ onSelect({
77
+ id: model.id,
78
+ name: model.name,
79
+ contextLength: model.context_length,
80
+ isFree: isFreeModel(model),
81
+ });
82
+ }
83
+ }
84
+ };
85
+ useInput((_input, key) => {
86
+ if (key.escape) {
87
+ if (mode === 'search' || mode === 'manual') {
88
+ setMode('list');
89
+ setSearchQuery('');
90
+ setManualModelId('');
91
+ }
92
+ else {
93
+ onCancel();
94
+ }
95
+ return;
96
+ }
97
+ if (mode === 'list') {
98
+ if (key.upArrow) {
99
+ setSelectedIndex((prev) => {
100
+ const newIndex = prev > 0 ? prev - 1 : filteredModels.length - 1;
101
+ if (newIndex < scrollOffset) {
102
+ setScrollOffset(newIndex);
103
+ }
104
+ return newIndex;
105
+ });
106
+ }
107
+ else if (key.downArrow) {
108
+ setSelectedIndex((prev) => {
109
+ const newIndex = prev < filteredModels.length - 1 ? prev + 1 : 0;
110
+ if (newIndex >= scrollOffset + MAX_VISIBLE) {
111
+ setScrollOffset(newIndex - MAX_VISIBLE + 1);
112
+ }
113
+ else if (newIndex < scrollOffset) {
114
+ setScrollOffset(0);
115
+ }
116
+ return newIndex;
117
+ });
118
+ }
119
+ else if (key.return) {
120
+ handleSelect();
121
+ }
122
+ else if (_input === '/' || _input === 's') {
123
+ setMode('search');
124
+ setSelectedIndex(0);
125
+ setScrollOffset(0);
126
+ }
127
+ else if (_input === 'm') {
128
+ setMode('manual');
129
+ }
130
+ }
131
+ else if (mode === 'search') {
132
+ if (key.return) {
133
+ setMode('list');
134
+ setSelectedIndex(0);
135
+ setScrollOffset(0);
136
+ }
137
+ }
138
+ else if (mode === 'manual') {
139
+ if (key.return) {
140
+ handleSelect();
141
+ }
142
+ }
143
+ });
144
+ useEffect(() => {
145
+ if (selectedIndex >= filteredModels.length) {
146
+ setSelectedIndex(Math.max(0, filteredModels.length - 1));
147
+ }
148
+ }, [filteredModels.length, selectedIndex]);
149
+ if (isLoading) {
150
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1 },
151
+ React.createElement(Text, { color: "cyan" },
152
+ React.createElement(Spinner, { type: "dots" }),
153
+ " Loading OpenRouter models...")));
154
+ }
155
+ if (error) {
156
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1 },
157
+ React.createElement(Text, { color: "red" },
158
+ "Error: ",
159
+ error),
160
+ React.createElement(Text, { color: "gray" }, "Press 'm' to enter model ID manually, or Esc to go back")));
161
+ }
162
+ const visibleModels = filteredModels.slice(scrollOffset, scrollOffset + MAX_VISIBLE);
163
+ return (React.createElement(Box, { flexDirection: "column" },
164
+ React.createElement(Box, { borderStyle: "round", borderColor: "magenta", paddingX: 2, marginBottom: 1 },
165
+ React.createElement(Text, { color: "magenta", bold: true },
166
+ "OpenRouter Models (",
167
+ filteredModels.length,
168
+ " available)")),
169
+ mode === 'search' && (React.createElement(Box, { paddingX: 1, marginBottom: 1 },
170
+ React.createElement(Text, { color: "yellow" }, "Search: "),
171
+ React.createElement(TextInput, { value: searchQuery, onChange: setSearchQuery, placeholder: "Type to filter models..." }))),
172
+ mode === 'manual' && (React.createElement(Box, { flexDirection: "column", paddingX: 1 },
173
+ React.createElement(Text, { color: "yellow", bold: true }, "Enter Model ID:"),
174
+ React.createElement(Box, { marginY: 1 },
175
+ React.createElement(Text, { color: "gray" }, "ID: "),
176
+ React.createElement(TextInput, { value: manualModelId, onChange: setManualModelId, placeholder: "provider/model-name" })),
177
+ React.createElement(Text, { color: "gray", dimColor: true }, "Example: anthropic/claude-3.5-sonnet, openai/gpt-4-turbo"),
178
+ React.createElement(Box, { marginTop: 1 },
179
+ React.createElement(Text, { dimColor: true }, "Enter: confirm | Esc: back to list")))),
180
+ mode !== 'manual' && (React.createElement(React.Fragment, null,
181
+ searchQuery && mode === 'list' && (React.createElement(Box, { paddingX: 1, marginBottom: 1 },
182
+ React.createElement(Text, { color: "gray" },
183
+ "Filtered by: \"",
184
+ searchQuery,
185
+ "\" "),
186
+ React.createElement(Text, { color: "cyan" }, "(press / to search again)"))),
187
+ scrollOffset > 0 && (React.createElement(Box, { paddingX: 1 },
188
+ React.createElement(Text, { color: "gray" },
189
+ "\u2191 ",
190
+ scrollOffset,
191
+ " more above"))),
192
+ React.createElement(Box, { flexDirection: "column", paddingX: 1 }, visibleModels.map((model, index) => {
193
+ const actualIndex = scrollOffset + index;
194
+ const isSelected = actualIndex === selectedIndex;
195
+ const isFree = isFreeModel(model);
196
+ return (React.createElement(Box, { key: model.id, flexDirection: "row" },
197
+ React.createElement(Text, { color: isSelected ? 'cyan' : undefined }, isSelected ? '> ' : ' '),
198
+ React.createElement(Text, { color: isFree ? 'green' : 'yellow', bold: true }, isFree ? '[FREE] ' : '[PAID] '),
199
+ React.createElement(Text, { color: isSelected ? 'cyan' : 'white', bold: isSelected }, model.id),
200
+ React.createElement(Text, { color: "gray" },
201
+ ' ',
202
+ "(",
203
+ Math.round(model.context_length / 1000),
204
+ "k ctx)"),
205
+ !isFree && (React.createElement(Text, { color: "gray", dimColor: true },
206
+ ' ',
207
+ formatPricing(model)))));
208
+ })),
209
+ scrollOffset + MAX_VISIBLE < filteredModels.length && (React.createElement(Box, { paddingX: 1 },
210
+ React.createElement(Text, { color: "gray" },
211
+ "\u2193 ",
212
+ filteredModels.length - scrollOffset - MAX_VISIBLE,
213
+ " more below"))),
214
+ filteredModels.length === 0 && (React.createElement(Box, { paddingX: 1 },
215
+ React.createElement(Text, { color: "yellow" }, "No models match your search."))))),
216
+ mode === 'list' && (React.createElement(Box, { marginTop: 1, flexDirection: "column" },
217
+ React.createElement(Text, { dimColor: true }, "\u2191\u2193: navigate | Enter: select | /: search | m: manual entry | Esc: cancel"))),
218
+ mode === 'search' && (React.createElement(Box, { marginTop: 1 },
219
+ React.createElement(Text, { dimColor: true }, "Type to filter | Enter: apply | Esc: clear search")))));
220
+ };
221
+ //# sourceMappingURL=OpenRouterModelBrowser.js.map
@@ -16,6 +16,7 @@ import { SessionBrowser, LogBrowser } from './panels/index.js';
16
16
  import { SettingsBrowser } from './dialogs/SettingsDialog.js';
17
17
  import { LLMSetupWizard } from './LLMSetupWizard.js';
18
18
  import { ModelSelector } from './ModelSelector.js';
19
+ import { ProjectSelector } from './ProjectSelector.js';
19
20
  import { ToolSelector } from './ToolSelector.js';
20
21
  import { AskUserDialog } from './dialogs/AskUserDialog.js';
21
22
  import { ApprovalDialog } from './dialogs/ApprovalDialog.js';
@@ -104,6 +105,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
104
105
  const [healthStatus, setHealthStatus] = useState('checking');
105
106
  const [showModelSelector, setShowModelSelector] = useState(false);
106
107
  const [currentModelInfo, setCurrentModelInfo] = useState(modelInfo);
108
+ const [showProjectSelector, setShowProjectSelector] = useState(false);
107
109
  const showDocsBrowser = false;
108
110
  const [showToolSelector, setShowToolSelector] = useState(false);
109
111
  const [showLogFiles, setShowLogFiles] = useState(false);
@@ -677,6 +679,26 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
677
679
  logger.debug('Model selector cancelled');
678
680
  setShowModelSelector(false);
679
681
  }, []);
682
+ const handleProjectSelect = useCallback((projectId, projectName) => {
683
+ logger.enter('handleProjectSelect', { projectId, projectName });
684
+ setShowProjectSelector(false);
685
+ setMessages((prev) => [
686
+ ...prev,
687
+ {
688
+ role: 'assistant',
689
+ content: `📁 Switched to project: ${projectName}`,
690
+ },
691
+ ]);
692
+ addLog({
693
+ type: 'assistant_message',
694
+ content: `📁 Switched to project: ${projectName}`,
695
+ });
696
+ logger.exit('handleProjectSelect', { projectName });
697
+ }, [addLog]);
698
+ const handleProjectSelectorCancel = useCallback(() => {
699
+ logger.debug('Project selector cancelled');
700
+ setShowProjectSelector(false);
701
+ }, []);
680
702
  const handleToolSelectorClose = useCallback(() => {
681
703
  logger.debug('Tool selector closed');
682
704
  setShowToolSelector(false);
@@ -791,6 +813,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
791
813
  onShowSessionBrowser: () => setShowSessionBrowser(true),
792
814
  onShowSettings: () => setShowSettings(true),
793
815
  onShowModelSelector: () => setShowModelSelector(true),
816
+ onShowProjectSelector: () => setShowProjectSelector(true),
794
817
  onShowToolSelector: () => setShowToolSelector(true),
795
818
  onCompact: llmClient
796
819
  ? () => planExecutionState.performCompact(llmClient, messages, setMessages)
@@ -941,7 +964,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
941
964
  }
942
965
  };
943
966
  return (React.createElement(Box, { flexDirection: "column", paddingX: 2, paddingY: 1 },
944
- React.createElement(Logo, { showVersion: true, showTagline: true }),
967
+ React.createElement(Logo, { showVersion: true, showTagline: true, projectName: configManager.getOrquestaConfig()?.projectName, organizationName: configManager.getOrquestaConfig()?.organizationName }),
945
968
  React.createElement(Box, { marginTop: 1 },
946
969
  React.createElement(Text, { color: "gray" },
947
970
  getInitStepText(),
@@ -975,6 +998,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
975
998
  showToolSelector ||
976
999
  showSettings ||
977
1000
  showModelSelector ||
1001
+ showProjectSelector ||
978
1002
  showSessionBrowser ||
979
1003
  showDocsBrowser ||
980
1004
  showLogFiles;
@@ -982,7 +1006,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
982
1006
  switch (entry.type) {
983
1007
  case 'logo': {
984
1008
  return (React.createElement(Box, { key: entry.id, flexDirection: "column", marginBottom: 1 },
985
- React.createElement(Logo, { showVersion: true, showTagline: false, animate: false, modelName: currentModelInfo.model, workingDirectory: shortenPath(process.cwd()) }),
1009
+ React.createElement(Logo, { showVersion: true, showTagline: false, animate: false, projectName: configManager.getOrquestaConfig()?.projectName, organizationName: configManager.getOrquestaConfig()?.organizationName, modelName: currentModelInfo.model, workingDirectory: shortenPath(process.cwd()) }),
986
1010
  React.createElement(Text, null, ' '),
987
1011
  React.createElement(Box, null,
988
1012
  React.createElement(Text, { color: "gray" }, STARTUP_TIP))));
@@ -1163,7 +1187,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
1163
1187
  React.createElement(Text, { color: "red" }, "\u2717 Failed")));
1164
1188
  case 'compact':
1165
1189
  return (React.createElement(Box, { key: entry.id, flexDirection: "column", marginTop: 1 },
1166
- React.createElement(Logo, { showVersion: true, showTagline: false, animate: false, modelName: currentModelInfo.model, workingDirectory: shortenPath(process.cwd()) }),
1190
+ React.createElement(Logo, { showVersion: true, showTagline: false, animate: false, projectName: configManager.getOrquestaConfig()?.projectName, organizationName: configManager.getOrquestaConfig()?.organizationName, modelName: currentModelInfo.model, workingDirectory: shortenPath(process.cwd()) }),
1167
1191
  React.createElement(Text, { color: "gray" },
1168
1192
  "\u2500\u2500 ",
1169
1193
  entry.content,
@@ -1249,6 +1273,8 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
1249
1273
  React.createElement(SettingsBrowser, { currentPlanningMode: planningMode, onPlanningModeChange: handleSettingsPlanningModeChange, onClose: handleSettingsClose }))),
1250
1274
  showModelSelector && !isProcessing && (React.createElement(Box, { marginTop: 0 },
1251
1275
  React.createElement(ModelSelector, { onSelect: handleModelSelect, onCancel: handleModelSelectorCancel }))),
1276
+ showProjectSelector && !isProcessing && (React.createElement(Box, { marginTop: 0 },
1277
+ React.createElement(ProjectSelector, { onSelect: handleProjectSelect, onCancel: handleProjectSelectorCancel }))),
1252
1278
  showToolSelector && !isProcessing && (React.createElement(Box, { marginTop: 0 },
1253
1279
  React.createElement(ToolSelector, { onClose: handleToolSelectorClose }))),
1254
1280
  planExecutionState.askUserRequest && (React.createElement(Box, { marginTop: 1 },
@@ -1315,7 +1341,7 @@ export const PlanExecuteApp = ({ llmClient: initialLlmClient, modelInfo }) => {
1315
1341
  React.createElement(Text, { color: "gray" }, shortenPath(process.cwd())),
1316
1342
  planExecutionState.todos.length > 0 && (React.createElement(React.Fragment, null,
1317
1343
  React.createElement(Text, { color: "gray" }, " \u2502 "),
1318
- React.createElement(TodoStatusBar, { todos: planExecutionState.todos })))),
1344
+ React.createElement(TodoStatusBar, { todos: planExecutionState.todos, projectName: configManager.getOrquestaConfig()?.projectName })))),
1319
1345
  React.createElement(Text, { color: "gray", dimColor: true }, "Tab: mode \u2502 /help")))),
1320
1346
  showLogFiles && (React.createElement(Box, { marginTop: 0 },
1321
1347
  React.createElement(LogBrowser, { onClose: () => setShowLogFiles(false) })))));
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface ProjectSelectorProps {
3
+ onSelect: (projectId: string, projectName: string) => void;
4
+ onCancel: () => void;
5
+ }
6
+ export declare const ProjectSelector: React.FC<ProjectSelectorProps>;
7
+ export {};
8
+ //# sourceMappingURL=ProjectSelector.d.ts.map
@@ -0,0 +1,119 @@
1
+ import React, { useState, useEffect, useCallback } from 'react';
2
+ import { Box, Text, useInput } from 'ink';
3
+ import SelectInput from 'ink-select-input';
4
+ import { configManager } from '../../core/config/config-manager.js';
5
+ import { fetchOrquestaProjects } from '../../orquesta/config-sync.js';
6
+ export const ProjectSelector = ({ onSelect, onCancel }) => {
7
+ const [projects, setProjects] = useState([]);
8
+ const [currentProjectId, setCurrentProjectId] = useState();
9
+ const [organizationName, setOrganizationName] = useState('');
10
+ const [isLoading, setIsLoading] = useState(true);
11
+ const [error, setError] = useState(null);
12
+ useEffect(() => {
13
+ const loadProjects = async () => {
14
+ setIsLoading(true);
15
+ setError(null);
16
+ try {
17
+ const orquestaConfig = configManager.getOrquestaConfig();
18
+ if (!orquestaConfig?.token) {
19
+ setError('Not connected to Orquesta');
20
+ setIsLoading(false);
21
+ return;
22
+ }
23
+ setCurrentProjectId(orquestaConfig.projectId);
24
+ const projectsData = await fetchOrquestaProjects(orquestaConfig.token);
25
+ if (!projectsData) {
26
+ setError('Failed to fetch projects');
27
+ setIsLoading(false);
28
+ return;
29
+ }
30
+ const { organization, projects: fetchedProjects } = projectsData;
31
+ setOrganizationName(organization.name);
32
+ setProjects(fetchedProjects);
33
+ }
34
+ catch (err) {
35
+ setError(err instanceof Error ? err.message : 'Unknown error');
36
+ }
37
+ finally {
38
+ setIsLoading(false);
39
+ }
40
+ };
41
+ loadProjects();
42
+ }, []);
43
+ useInput((_inputChar, key) => {
44
+ if (key.escape) {
45
+ onCancel();
46
+ }
47
+ });
48
+ const handleSelect = useCallback(async (item) => {
49
+ const projectId = item.value;
50
+ if (!projectId)
51
+ return;
52
+ const project = projects.find((p) => p.id === projectId);
53
+ if (!project)
54
+ return;
55
+ if (project.id === currentProjectId) {
56
+ onCancel();
57
+ return;
58
+ }
59
+ try {
60
+ const orquestaConfig = configManager.getOrquestaConfig();
61
+ if (!orquestaConfig)
62
+ return;
63
+ await configManager.setOrquestaConfig({
64
+ ...orquestaConfig,
65
+ projectId: project.id,
66
+ projectName: project.name,
67
+ });
68
+ onSelect(project.id, project.name);
69
+ }
70
+ catch {
71
+ onCancel();
72
+ }
73
+ }, [projects, currentProjectId, onSelect, onCancel]);
74
+ const menuItems = projects.map((p) => {
75
+ const currentLabel = p.id === currentProjectId ? ' (current)' : '';
76
+ return {
77
+ label: `${p.name}${currentLabel}`,
78
+ value: p.id,
79
+ };
80
+ });
81
+ if (isLoading) {
82
+ return (React.createElement(Box, { flexDirection: "column" },
83
+ React.createElement(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1 },
84
+ React.createElement(Text, { color: "cyan", bold: true }, "Select Project")),
85
+ React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1 },
86
+ React.createElement(Text, { color: "gray" }, "Loading projects..."))));
87
+ }
88
+ if (error) {
89
+ return (React.createElement(Box, { flexDirection: "column" },
90
+ React.createElement(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1 },
91
+ React.createElement(Text, { color: "cyan", bold: true }, "Select Project")),
92
+ React.createElement(Box, { borderStyle: "single", borderColor: "red", paddingX: 1 },
93
+ React.createElement(Text, { color: "red" },
94
+ "Error: ",
95
+ error)),
96
+ React.createElement(Box, { marginTop: 1 },
97
+ React.createElement(Text, { dimColor: true }, "ESC: close"))));
98
+ }
99
+ if (projects.length === 0) {
100
+ return (React.createElement(Box, { flexDirection: "column" },
101
+ React.createElement(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1 },
102
+ React.createElement(Text, { color: "cyan", bold: true }, "Select Project")),
103
+ React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1 },
104
+ React.createElement(Text, { color: "gray" }, "No projects found in organization.")),
105
+ React.createElement(Box, { marginTop: 1 },
106
+ React.createElement(Text, { dimColor: true }, "ESC: close"))));
107
+ }
108
+ return (React.createElement(Box, { flexDirection: "column" },
109
+ React.createElement(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1 },
110
+ React.createElement(Text, { color: "cyan", bold: true }, "Select Project")),
111
+ React.createElement(Box, { paddingX: 1, marginTop: 1 },
112
+ React.createElement(Text, { color: "gray" }, "Organization: "),
113
+ React.createElement(Text, { color: "magenta" }, organizationName)),
114
+ React.createElement(Box, { borderStyle: "single", borderColor: "gray", paddingX: 1, marginTop: 1 },
115
+ React.createElement(SelectInput, { items: menuItems, onSelect: handleSelect })),
116
+ React.createElement(Box, { marginTop: 1 },
117
+ React.createElement(Text, { dimColor: true }, "\u2191\u2193: move | Enter: select | ESC: cancel"))));
118
+ };
119
+ //# sourceMappingURL=ProjectSelector.js.map
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  export interface StatusBarProps {
3
3
  model?: string;
4
4
  endpoint?: string;
5
+ projectName?: string;
6
+ organizationName?: string;
5
7
  workingDirectory?: string;
6
8
  status?: 'idle' | 'thinking' | 'executing' | 'error';
7
9
  message?: string;
@@ -62,7 +62,7 @@ function formatElapsedTime(seconds) {
62
62
  const secs = seconds % 60;
63
63
  return `${mins}m ${secs}s`;
64
64
  }
65
- export const StatusBar = ({ model, endpoint: _endpoint, workingDirectory, status = 'idle', message: _message, messageCount = 0, sessionTokens = 0, contextUsage, contextRemainingPercent, todoCount, todoCompleted, healthStatus, currentActivity, sessionElapsedSeconds, }) => {
65
+ export const StatusBar = ({ model, endpoint: _endpoint, projectName, organizationName: _organizationName, workingDirectory, status = 'idle', message: _message, messageCount = 0, sessionTokens = 0, contextUsage, contextRemainingPercent, todoCount, todoCompleted, healthStatus, currentActivity, sessionElapsedSeconds, }) => {
66
66
  void _endpoint;
67
67
  void _message;
68
68
  useEffect(() => {
@@ -132,6 +132,11 @@ export const StatusBar = ({ model, endpoint: _endpoint, workingDirectory, status
132
132
  model && (React.createElement(React.Fragment, null,
133
133
  React.createElement(Text, { color: "gray" }, " | "),
134
134
  React.createElement(Text, { color: "cyan" }, model.slice(0, 15)))),
135
+ projectName && (React.createElement(React.Fragment, null,
136
+ React.createElement(Text, { color: "gray" }, " | "),
137
+ React.createElement(Text, { color: "magenta" },
138
+ "\uD83D\uDCC1 ",
139
+ projectName))),
135
140
  workingDirectory && (React.createElement(React.Fragment, null,
136
141
  React.createElement(Text, { color: "gray" }, " | "),
137
142
  React.createElement(Text, { color: "gray" }, workingDirectory)))),
@@ -21,12 +21,16 @@ export const SLASH_COMMANDS = [
21
21
  description: 'Switch between LLM models',
22
22
  },
23
23
  {
24
- name: '/load',
25
- description: 'Load a saved session',
24
+ name: '/sync',
25
+ description: 'Sync LLM configs with Orquesta dashboard',
26
+ },
27
+ {
28
+ name: '/project',
29
+ description: 'Switch between Orquesta projects',
26
30
  },
27
31
  {
28
- name: '/docs',
29
- description: 'Download framework documentation (agno, adk)',
32
+ name: '/load',
33
+ description: 'Load a saved session',
30
34
  },
31
35
  {
32
36
  name: '/tool',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orquesta-cli",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Orquesta CLI - AI-powered coding assistant with team collaboration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -58,6 +58,12 @@
58
58
  "artifactName": "${productName} ${version}.${ext}"
59
59
  }
60
60
  },
61
+ "files": [
62
+ "dist/**/*.js",
63
+ "dist/**/*.d.ts",
64
+ "README.md",
65
+ "LICENSE"
66
+ ],
61
67
  "keywords": [
62
68
  "orquesta",
63
69
  "cli",
@@ -86,16 +92,12 @@
86
92
  "axios": "^1.6.2",
87
93
  "chalk": "^4.1.2",
88
94
  "commander": "^11.1.0",
89
- "electron-updater": "^6.7.3",
90
95
  "ink": "^4.4.1",
91
96
  "ink-select-input": "^5.0.0",
92
97
  "ink-spinner": "^5.0.0",
93
98
  "ink-text-input": "^5.0.1",
94
99
  "inquirer": "^8.2.6",
95
- "lucide-react": "^0.562.0",
96
100
  "ora": "^5.4.1",
97
- "react": "^18.3.1",
98
- "react-dom": "^18.3.1",
99
101
  "semver": "^7.7.3",
100
102
  "ws": "^8.18.3"
101
103
  },
@@ -110,11 +112,15 @@
110
112
  "@vitejs/plugin-react": "^4.5.2",
111
113
  "electron": "^40.0.0",
112
114
  "electron-builder": "^26.4.0",
115
+ "electron-updater": "^6.7.3",
113
116
  "electron-vite": "^5.0.0",
114
117
  "esbuild": "^0.25.12",
115
118
  "eslint": "^8.56.0",
119
+ "lucide-react": "^0.562.0",
116
120
  "prettier": "^3.1.1",
121
+ "react": "^18.3.1",
117
122
  "react-devtools-core": "^4.28.5",
123
+ "react-dom": "^18.3.1",
118
124
  "ts-node": "^10.9.2",
119
125
  "typescript": "^5.3.3",
120
126
  "vite": "^7.3.1"
package/.eslintrc.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "parser": "@typescript-eslint/parser",
3
- "parserOptions": {
4
- "ecmaVersion": 2022,
5
- "sourceType": "module",
6
- "project": "./tsconfig.json"
7
- },
8
- "plugins": ["@typescript-eslint"],
9
- "extends": [
10
- "eslint:recommended",
11
- "plugin:@typescript-eslint/recommended",
12
- "plugin:@typescript-eslint/recommended-requiring-type-checking"
13
- ],
14
- "rules": {
15
- "@typescript-eslint/explicit-function-return-type": "warn",
16
- "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
17
- "@typescript-eslint/no-explicit-any": "warn",
18
- "@typescript-eslint/no-floating-promises": "error",
19
- "no-console": "off"
20
- },
21
- "env": {
22
- "node": true,
23
- "es2022": true
24
- },
25
- "ignorePatterns": ["dist/", "node_modules/", "*.js"]
26
- }
package/.prettierrc.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "semi": true,
3
- "trailingComma": "es5",
4
- "singleQuote": true,
5
- "printWidth": 100,
6
- "tabWidth": 2,
7
- "useTabs": false,
8
- "arrowParens": "always",
9
- "endOfLine": "lf"
10
- }