orquesta-cli 0.1.13 → 0.1.14

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