orquesta-cli 0.1.13 → 0.1.15

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