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,215 +0,0 @@
1
- /**
2
- * Tool Selector Component
3
- *
4
- * Allows enabling/disabling optional tool groups via /tool command
5
- * UI style matches ModelSelector for consistency
6
- */
7
-
8
- import React, { useState, useCallback } from 'react';
9
- import { Box, Text, useInput } from 'ink';
10
- import SelectInput from 'ink-select-input';
11
- import { execSync } from 'child_process';
12
- import Spinner from 'ink-spinner';
13
- import { toolRegistry, OptionalToolGroup } from '../../tools/registry.js';
14
- import { getPlatform } from '../../utils/platform-utils.js';
15
-
16
- /**
17
- * Check if browser is available for CDP connection
18
- * CDP approach uses PowerShell to launch Chrome/Edge directly (no browser-server.exe needed)
19
- */
20
- function isBrowserAvailable(): boolean {
21
- const platform = getPlatform();
22
-
23
- // Native Windows: browser-client.ts launches Chrome/Edge directly
24
- // Actual browser detection happens at launch time
25
- if (platform === 'native-windows') {
26
- return true;
27
- }
28
-
29
- // WSL: browser-client.ts uses PowerShell to launch Windows Chrome/Edge
30
- // Actual browser detection happens at launch time
31
- if (platform === 'wsl') {
32
- return true;
33
- }
34
-
35
- // Native Linux: check if Chrome/Chromium is installed
36
- try {
37
- execSync('which google-chrome || which chromium-browser || which chromium', { stdio: 'ignore' });
38
- return true;
39
- } catch {
40
- return false;
41
- }
42
- }
43
-
44
- interface ToolSelectorProps {
45
- onClose: () => void;
46
- }
47
-
48
- interface SelectItem {
49
- label: string;
50
- value: string;
51
- }
52
-
53
- export const ToolSelector: React.FC<ToolSelectorProps> = ({ onClose }) => {
54
- const [toolGroups, setToolGroups] = useState<OptionalToolGroup[]>(() =>
55
- toolRegistry.getOptionalToolGroups()
56
- );
57
- const [isToggling, setIsToggling] = useState(false);
58
- const [togglingGroup, setTogglingGroup] = useState<{ name: string; enabling: boolean } | null>(null);
59
- const [errorMessage, setErrorMessage] = useState<string | null>(null);
60
-
61
- // Handle keyboard input
62
- useInput((_input, key) => {
63
- if (key.escape && !isToggling) {
64
- onClose();
65
- }
66
- // Clear error message on any key press
67
- if (errorMessage) {
68
- setErrorMessage(null);
69
- }
70
- });
71
-
72
- // Handle tool group selection (toggle)
73
- const handleSelect = useCallback(
74
- async (item: SelectItem) => {
75
- if (isToggling) return;
76
-
77
- const groupId = item.value;
78
- const group = toolGroups.find(g => g.id === groupId);
79
- const groupName = group?.name || groupId;
80
- const isEnabling = !group?.enabled;
81
-
82
- // Check browser availability when enabling browser tools (Linux only)
83
- if (groupId === 'browser' && isEnabling && !isBrowserAvailable()) {
84
- setErrorMessage('Chrome/Chromium not found. Please install Chrome or Chromium.');
85
- return;
86
- }
87
-
88
- setIsToggling(true);
89
- setTogglingGroup({ name: groupName, enabling: isEnabling });
90
- setErrorMessage(null);
91
-
92
- try {
93
- const result = await toolRegistry.toggleToolGroup(groupId);
94
- setToolGroups(toolRegistry.getOptionalToolGroups());
95
-
96
- // Show error if validation failed
97
- if (!result.success && result.error) {
98
- setErrorMessage(result.error);
99
- }
100
- } finally {
101
- setIsToggling(false);
102
- setTogglingGroup(null);
103
- }
104
- },
105
- [isToggling, toolGroups]
106
- );
107
-
108
- // Build menu items
109
- const menuItems: SelectItem[] = toolGroups.map((group) => {
110
- const statusIcon = group.enabled ? '●' : '○';
111
- const statusText = group.enabled ? ' (enabled)' : '';
112
- const toolCount = group.tools.length;
113
-
114
- return {
115
- label: `${statusIcon} ${group.name} (${toolCount} tools)${statusText}`,
116
- value: group.id,
117
- };
118
- });
119
-
120
- if (toolGroups.length === 0) {
121
- return (
122
- <Box flexDirection="column">
123
- <Box borderStyle="single" borderColor="cyan" paddingX={1}>
124
- <Text color="cyan" bold>
125
- Optional Tools
126
- </Text>
127
- </Box>
128
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
129
- <Text color="gray">No optional tools available.</Text>
130
- </Box>
131
- <Box marginTop={1}>
132
- <Text dimColor>ESC: close</Text>
133
- </Box>
134
- </Box>
135
- );
136
- }
137
-
138
- return (
139
- <Box flexDirection="column">
140
- {/* Header */}
141
- <Box borderStyle="single" borderColor="cyan" paddingX={1}>
142
- <Text color="cyan" bold>
143
- Optional Tools
144
- </Text>
145
- </Box>
146
-
147
- {/* Performance Notice */}
148
- <Box paddingX={1} marginBottom={1} flexDirection="column">
149
- <Text color="yellow" dimColor>
150
- ⚠ Too many tools can slow down performance. Enable only what you need.
151
- </Text>
152
- </Box>
153
-
154
- {/* Tool Groups List */}
155
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
156
- <SelectInput items={menuItems} onSelect={handleSelect} />
157
- </Box>
158
-
159
- {/* Legend */}
160
- <Box marginTop={1} paddingX={1}>
161
- <Text color="green">● enabled </Text>
162
- <Text color="gray">○ disabled</Text>
163
- </Box>
164
-
165
- {/* Description of selected tools */}
166
- {toolGroups.some((g) => g.enabled) && (
167
- <Box paddingX={1}>
168
- <Text color="yellow">Active: </Text>
169
- <Text color="white">
170
- {toolGroups
171
- .filter((g) => g.enabled)
172
- .map((g) => g.name)
173
- .join(', ')}
174
- </Text>
175
- </Box>
176
- )}
177
-
178
- {/* Error Message */}
179
- {errorMessage && (
180
- <Box
181
- marginTop={1}
182
- borderStyle="single"
183
- borderColor="red"
184
- paddingX={1}
185
- flexDirection="column"
186
- >
187
- <Text color="red" bold>
188
- ✗ Enable Failed
189
- </Text>
190
- <Text color="white">{errorMessage}</Text>
191
- </Box>
192
- )}
193
-
194
- {/* Loading indicator with spinner */}
195
- {isToggling && togglingGroup && (
196
- <Box marginTop={1} paddingX={1}>
197
- <Text color="cyan">
198
- <Spinner type="dots" />
199
- </Text>
200
- <Text color="yellow">
201
- {' '}
202
- {togglingGroup.enabling
203
- ? `Starting ${togglingGroup.name}...`
204
- : `Stopping ${togglingGroup.name}...`}
205
- </Text>
206
- </Box>
207
- )}
208
-
209
- {/* Footer */}
210
- <Box marginTop={1}>
211
- <Text dimColor>↑↓: move | Enter: toggle | ESC: close</Text>
212
- </Box>
213
- </Box>
214
- );
215
- };
@@ -1,259 +0,0 @@
1
- /**
2
- * Approval Dialog Component
3
- *
4
- * UI for requesting user approval before Tool execution in Supervised Mode
5
- * - Approve: Approve this time only
6
- * - Always Approve: Always approve this Tool in this session
7
- * - Reject: Reject + Enter comment to send to AI
8
- */
9
-
10
- import React, { useState, useCallback } from 'react';
11
- import { Box, Text, useInput } from 'ink';
12
- import { CustomTextInput } from '../CustomTextInput.js';
13
- import { logger } from '../../../utils/logger.js';
14
-
15
- export interface ApprovalDialogProps {
16
- toolName: string;
17
- args: Record<string, unknown>;
18
- reason?: string;
19
- onResponse: (result: 'approve' | 'always' | { reject: true; comment: string }) => void;
20
- }
21
-
22
- /**
23
- * Format tool arguments for display
24
- */
25
- function formatArgs(args: Record<string, unknown>): { key: string; value: string; isLong: boolean }[] {
26
- const result: { key: string; value: string; isLong: boolean }[] = [];
27
-
28
- for (const [key, value] of Object.entries(args)) {
29
- if (value === undefined || value === null) continue;
30
-
31
- let displayValue: string;
32
- let isLong = false;
33
-
34
- if (typeof value === 'string') {
35
- // Truncate long strings
36
- if (value.length > 200) {
37
- displayValue = value.substring(0, 200) + '...';
38
- isLong = true;
39
- } else if (value.includes('\n')) {
40
- // Multi-line content
41
- const lines = value.split('\n');
42
- if (lines.length > 10) {
43
- displayValue = lines.slice(0, 10).join('\n') + '\n...';
44
- isLong = true;
45
- } else {
46
- displayValue = value;
47
- isLong = lines.length > 3;
48
- }
49
- } else {
50
- displayValue = value;
51
- }
52
- } else if (typeof value === 'object') {
53
- displayValue = JSON.stringify(value, null, 2);
54
- isLong = displayValue.length > 100;
55
- } else {
56
- displayValue = String(value);
57
- }
58
-
59
- result.push({ key, value: displayValue, isLong });
60
- }
61
-
62
- return result;
63
- }
64
-
65
- /**
66
- * Get icon for parameter key
67
- */
68
- function getParamIcon(key: string): string {
69
- const icons: Record<string, string> = {
70
- file_path: '📁',
71
- path: '📁',
72
- content: '📝',
73
- old_string: '➖',
74
- new_string: '➕',
75
- pattern: '🔍',
76
- message: '💬',
77
- reason: '💡',
78
- };
79
- return icons[key] || '•';
80
- }
81
-
82
- /**
83
- * Approval Dialog - Tool execution approval dialog
84
- */
85
- export const ApprovalDialog: React.FC<ApprovalDialogProps> = ({
86
- toolName,
87
- args,
88
- reason,
89
- onResponse,
90
- }) => {
91
- const [selectedIndex, setSelectedIndex] = useState(0);
92
- const [isRejectMode, setIsRejectMode] = useState(false);
93
- const [rejectComment, setRejectComment] = useState('');
94
-
95
- logger.enter('ApprovalDialog', { toolName, argsKeys: Object.keys(args) });
96
-
97
- const options = [
98
- { label: 'Approve', description: 'Approve this tool execution', icon: '✅' },
99
- { label: `Always Approve (${toolName})`, description: 'Always approve in this session', icon: '✅' },
100
- { label: 'Reject', description: 'Reject + add comment', icon: '❌' },
101
- ];
102
-
103
- const handleSelect = useCallback(() => {
104
- logger.flow('User selected option', { selectedIndex });
105
-
106
- if (selectedIndex === 0) {
107
- onResponse('approve');
108
- } else if (selectedIndex === 1) {
109
- onResponse('always');
110
- } else if (selectedIndex === 2) {
111
- setIsRejectMode(true);
112
- }
113
- }, [selectedIndex, onResponse]);
114
-
115
- const handleRejectSubmit = useCallback((text: string) => {
116
- if (!text.trim()) {
117
- // Empty comment - just reject without comment
118
- onResponse({ reject: true, comment: '' });
119
- return;
120
- }
121
-
122
- logger.flow('User submitted reject comment', { commentLength: text.length });
123
- onResponse({ reject: true, comment: text.trim() });
124
- }, [onResponse]);
125
-
126
- const handleRejectCancel = useCallback(() => {
127
- logger.flow('User cancelled reject mode');
128
- setIsRejectMode(false);
129
- setRejectComment('');
130
- }, []);
131
-
132
- // Keyboard navigation
133
- useInput((input, key) => {
134
- if (isRejectMode) {
135
- if (key.escape) {
136
- handleRejectCancel();
137
- }
138
- return;
139
- }
140
-
141
- if (key.upArrow) {
142
- setSelectedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1));
143
- } else if (key.downArrow) {
144
- setSelectedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0));
145
- } else if (key.return) {
146
- handleSelect();
147
- } else if (input >= '1' && input <= '3') {
148
- const numIndex = parseInt(input, 10) - 1;
149
- if (numIndex >= 0 && numIndex < options.length) {
150
- setSelectedIndex(numIndex);
151
- // Auto-select after number key
152
- setTimeout(() => {
153
- if (numIndex === 2) {
154
- setIsRejectMode(true);
155
- } else {
156
- onResponse(numIndex === 0 ? 'approve' : 'always');
157
- }
158
- }, 100);
159
- }
160
- }
161
- }, { isActive: !isRejectMode });
162
-
163
- const formattedArgs = formatArgs(args);
164
-
165
- // Reject mode: comment input
166
- if (isRejectMode) {
167
- return (
168
- <Box flexDirection="column" borderStyle="round" borderColor="red" paddingX={1} paddingY={0}>
169
- <Box marginBottom={1}>
170
- <Text color="red" bold>❌ Reject Tool: {toolName}</Text>
171
- </Box>
172
- <Box>
173
- <Text color="gray">Comment for AI (ESC: cancel, Enter: send): </Text>
174
- </Box>
175
- <Box>
176
- <Text color="yellow">&gt; </Text>
177
- <CustomTextInput
178
- value={rejectComment}
179
- onChange={setRejectComment}
180
- onSubmit={handleRejectSubmit}
181
- placeholder="Enter reason or alternative..."
182
- focus={true}
183
- />
184
- </Box>
185
- </Box>
186
- );
187
- }
188
-
189
- // Normal mode: approval selection
190
- return (
191
- <Box flexDirection="column" borderStyle="round" borderColor="yellow" paddingX={1} paddingY={0}>
192
- {/* Header */}
193
- <Box marginBottom={1}>
194
- <Text color="yellow" bold>🔧 Tool Execution Approval</Text>
195
- </Box>
196
-
197
- {/* Tool name */}
198
- <Box>
199
- <Text color="cyan" bold>{toolName}</Text>
200
- {reason && (
201
- <Text color="gray"> - {reason}</Text>
202
- )}
203
- </Box>
204
-
205
- {/* Separator */}
206
- <Box marginY={0}>
207
- <Text color="gray">{'─'.repeat(50)}</Text>
208
- </Box>
209
-
210
- {/* Arguments */}
211
- <Box flexDirection="column" marginBottom={1}>
212
- {formattedArgs.map(({ key, value, isLong }, idx) => (
213
- <Box key={idx} flexDirection={isLong ? 'column' : 'row'}>
214
- <Text color="magenta">{getParamIcon(key)} {key}: </Text>
215
- {isLong ? (
216
- <Box marginLeft={2} flexDirection="column">
217
- {value.split('\n').map((line, lineIdx) => (
218
- <Text key={lineIdx} color="white" dimColor>{line}</Text>
219
- ))}
220
- </Box>
221
- ) : (
222
- <Text color="white">{value}</Text>
223
- )}
224
- </Box>
225
- ))}
226
- </Box>
227
-
228
- {/* Separator */}
229
- <Box marginY={0}>
230
- <Text color="gray">{'─'.repeat(50)}</Text>
231
- </Box>
232
-
233
- {/* Options */}
234
- {options.map((option, index) => {
235
- const isSelected = index === selectedIndex;
236
- return (
237
- <Box key={index}>
238
- <Text color={isSelected ? 'cyan' : 'gray'}>
239
- {isSelected ? '▸ ' : ' '}
240
- [{index + 1}] {option.icon} {option.label}
241
- </Text>
242
- {isSelected && (
243
- <Text color="gray" dimColor> - {option.description}</Text>
244
- )}
245
- </Box>
246
- );
247
- })}
248
-
249
- {/* Help */}
250
- <Box marginTop={1}>
251
- <Text color="gray" dimColor>
252
- ↑↓ Move | Enter Select | 1-3 Number Select
253
- </Text>
254
- </Box>
255
- </Box>
256
- );
257
- };
258
-
259
- export default ApprovalDialog;
@@ -1,159 +0,0 @@
1
- /**
2
- * Ask User Dialog Component
3
- *
4
- * Multiple choice UI displayed when LLM asks user a question
5
- * Phase 2: Approval mode / Autonomous mode
6
- */
7
-
8
- import React, { useState, useCallback } from 'react';
9
- import { Box, Text, useInput } from 'ink';
10
- import { CustomTextInput } from '../CustomTextInput.js';
11
- import { logger } from '../../../utils/logger.js';
12
- import type { AskUserRequest, AskUserResponse } from '../../../tools/llm/simple/ask-user-tool.js';
13
-
14
- export interface AskUserDialogProps {
15
- request: AskUserRequest;
16
- onResponse: (response: AskUserResponse) => void;
17
- }
18
-
19
- /**
20
- * Ask User Dialog - Dialog providing choices to user
21
- * - Choices provided by LLM (2-4 options)
22
- * - + "Other (direct input)" option (always shown)
23
- */
24
- export const AskUserDialog: React.FC<AskUserDialogProps> = ({ request, onResponse }) => {
25
- const [selectedIndex, setSelectedIndex] = useState(0);
26
- const [isOtherMode, setIsOtherMode] = useState(false);
27
- const [customText, setCustomText] = useState('');
28
-
29
- logger.enter('AskUserDialog', { question: request.question, optionCount: request.options.length });
30
-
31
- // Options provided by LLM + "Other (direct input)" option (always added)
32
- const allOptions = [...request.options, 'Other (direct input)'];
33
-
34
- const handleSelect = useCallback(() => {
35
- logger.flow('User selected option', { selectedIndex });
36
-
37
- // Check if "Other" was selected (always last option)
38
- if (selectedIndex === request.options.length) {
39
- setIsOtherMode(true);
40
- return;
41
- }
42
-
43
- const selectedOption = request.options[selectedIndex];
44
- if (selectedOption) {
45
- onResponse({
46
- selectedOption,
47
- isOther: false,
48
- });
49
- }
50
- }, [selectedIndex, request.options, onResponse]);
51
-
52
- const handleOtherSubmit = useCallback((text: string) => {
53
- if (!text.trim()) return;
54
-
55
- logger.flow('User submitted custom text', { textLength: text.length });
56
- onResponse({
57
- selectedOption: 'Other',
58
- isOther: true,
59
- customText: text.trim(),
60
- });
61
- }, [onResponse]);
62
-
63
- const handleOtherCancel = useCallback(() => {
64
- logger.flow('User cancelled other mode');
65
- setIsOtherMode(false);
66
- setCustomText('');
67
- }, []);
68
-
69
- // Keyboard navigation
70
- useInput((input, key) => {
71
- if (isOtherMode) {
72
- if (key.escape) {
73
- handleOtherCancel();
74
- }
75
- return;
76
- }
77
-
78
- if (key.upArrow) {
79
- setSelectedIndex(prev => (prev > 0 ? prev - 1 : allOptions.length - 1));
80
- } else if (key.downArrow) {
81
- setSelectedIndex(prev => (prev < allOptions.length - 1 ? prev + 1 : 0));
82
- } else if (key.return) {
83
- handleSelect();
84
- } else if (input >= '1' && input <= '9') {
85
- const numIndex = parseInt(input, 10) - 1;
86
- if (numIndex >= 0 && numIndex < allOptions.length) {
87
- setSelectedIndex(numIndex);
88
- // Auto-select after number key
89
- setTimeout(() => {
90
- // Last option is always "Other"
91
- if (numIndex === request.options.length) {
92
- setIsOtherMode(true);
93
- } else {
94
- const option = request.options[numIndex];
95
- if (option) {
96
- onResponse({
97
- selectedOption: option,
98
- isOther: false,
99
- });
100
- }
101
- }
102
- }, 100);
103
- }
104
- }
105
- }, { isActive: !isOtherMode });
106
-
107
- // Other mode: text input
108
- if (isOtherMode) {
109
- return (
110
- <Box flexDirection="column" borderStyle="round" borderColor="yellow" paddingX={1} paddingY={0}>
111
- <Box marginBottom={1}>
112
- <Text color="yellow" bold>💬 {request.question}</Text>
113
- </Box>
114
- <Box>
115
- <Text color="gray">Custom input (ESC: cancel): </Text>
116
- <CustomTextInput
117
- value={customText}
118
- onChange={setCustomText}
119
- onSubmit={handleOtherSubmit}
120
- placeholder="Enter your response..."
121
- focus={true}
122
- />
123
- </Box>
124
- </Box>
125
- );
126
- }
127
-
128
- // Normal mode: option selection
129
- return (
130
- <Box flexDirection="column" borderStyle="round" borderColor="yellow" paddingX={1} paddingY={0}>
131
- <Box marginBottom={1}>
132
- <Text color="yellow" bold>💬 {request.question}</Text>
133
- </Box>
134
-
135
- {allOptions.map((option, index) => {
136
- const isSelected = index === selectedIndex;
137
- const isOtherOption = index === request.options.length; // Last option is always "Other"
138
-
139
- return (
140
- <Box key={index}>
141
- <Text color={isSelected ? 'cyan' : 'gray'}>
142
- {isSelected ? '▸ ' : ' '}
143
- [{index + 1}] {option}
144
- {isOtherOption && <Text color="gray" dimColor> (free response)</Text>}
145
- </Text>
146
- </Box>
147
- );
148
- })}
149
-
150
- <Box marginTop={1}>
151
- <Text color="gray" dimColor>
152
- ↑↓ Move | Enter Select | 1-{allOptions.length} Number Select
153
- </Text>
154
- </Box>
155
- </Box>
156
- );
157
- };
158
-
159
- export default AskUserDialog;