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,240 +0,0 @@
1
- /**
2
- * TODO Panel Component
3
- *
4
- * Displays TODO list at the bottom of the screen for Plan-and-Execute mode
5
- * Features:
6
- * - Visual progress bar
7
- * - Mini-map style progress
8
- * - Time tracking per task
9
- * - Token usage per task
10
- */
11
-
12
- import React, { useEffect, useState } from 'react';
13
- import { Box, Text } from 'ink';
14
- import Spinner from 'ink-spinner';
15
- import { TodoItem } from '../types/index.js';
16
- import { logger } from '../utils/logger.js';
17
-
18
- interface TodoPanelProps {
19
- todos: TodoItem[];
20
- currentTodoId?: string;
21
- isProcessing?: boolean;
22
- }
23
-
24
- // Notion-style checkbox icons
25
- const STATUS_CONFIG = {
26
- pending: { icon: '☐', color: 'gray' as const },
27
- in_progress: { icon: '☐', color: 'white' as const },
28
- completed: { icon: '☑', color: 'gray' as const },
29
- failed: { icon: '☒', color: 'red' as const },
30
- };
31
-
32
- /**
33
- * Notion-style slim progress bar
34
- */
35
- const ProgressBar: React.FC<{ completed: number; total: number; width?: number }> = ({
36
- completed,
37
- total,
38
- width = 20,
39
- }) => {
40
- const filled = total > 0 ? Math.round((completed / total) * width) : 0;
41
- const empty = width - filled;
42
-
43
- return (
44
- <Box>
45
- <Text color="greenBright">{'▓'.repeat(filled)}</Text>
46
- <Text color="white">{'░'.repeat(empty)}</Text>
47
- <Text color="cyan"> {completed} of {total}</Text>
48
- </Box>
49
- );
50
- };
51
-
52
-
53
-
54
- /**
55
- * TODO Panel Component
56
- * Memoized to prevent unnecessary re-renders that cause duplicate terminal output
57
- */
58
- export const TodoPanel: React.FC<TodoPanelProps> = React.memo(({
59
- todos,
60
- currentTodoId,
61
- isProcessing = false,
62
- }) => {
63
- const [elapsedTime, setElapsedTime] = useState(0);
64
- const [startTime] = useState(Date.now());
65
-
66
- // Log component lifecycle
67
- useEffect(() => {
68
- logger.enter('TodoPanel', {
69
- todoCount: todos.length,
70
- currentTodoId,
71
- });
72
- return () => {
73
- logger.exit('TodoPanel', { todoCount: todos.length });
74
- };
75
- }, []);
76
-
77
- // Update elapsed time
78
- useEffect(() => {
79
- if (!isProcessing) return;
80
- const interval = setInterval(() => {
81
- setElapsedTime(Math.floor((Date.now() - startTime) / 1000));
82
- }, 1000);
83
- return () => clearInterval(interval);
84
- }, [isProcessing, startTime]);
85
-
86
- // Log when todos change
87
- useEffect(() => {
88
- const completed = todos.filter(t => t.status === 'completed').length;
89
- const inProgress = todos.filter(t => t.status === 'in_progress').length;
90
-
91
- logger.debug('TodoPanel todos updated', {
92
- total: todos.length,
93
- completed,
94
- inProgress,
95
- currentTodoId,
96
- });
97
- }, [todos, currentTodoId]);
98
-
99
- if (todos.length === 0) {
100
- return null;
101
- }
102
-
103
- // Calculate stats
104
- const completedCount = todos.filter(t => t.status === 'completed').length;
105
-
106
- // Format elapsed time as mm:ss or hh:mm:ss
107
- const formatElapsedTime = (seconds: number): string => {
108
- const hrs = Math.floor(seconds / 3600);
109
- const mins = Math.floor((seconds % 3600) / 60);
110
- const secs = seconds % 60;
111
- if (hrs > 0) {
112
- return `${hrs}:${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
113
- }
114
- return `${mins}:${secs.toString().padStart(2, '0')}`;
115
- };
116
-
117
- return (
118
- <Box flexDirection="column" paddingX={1}>
119
- {/* TODO Items - Notion style */}
120
- <Box flexDirection="column">
121
- {todos.map((todo) => {
122
- const config = STATUS_CONFIG[todo.status] || STATUS_CONFIG.pending;
123
- const isInProgress = todo.status === 'in_progress';
124
- const isCompleted = todo.status === 'completed';
125
-
126
- return (
127
- <Box key={todo.id} flexDirection="column">
128
- <Box>
129
- {/* Checkbox icon */}
130
- <Box width={2}>
131
- {isInProgress ? (
132
- <Text color="blueBright">
133
- <Spinner type="dots2" />
134
- </Text>
135
- ) : (
136
- <Text color={config.color}>{config.icon}</Text>
137
- )}
138
- </Box>
139
-
140
- {/* Task title */}
141
- <Text
142
- color={isCompleted ? 'gray' : isInProgress ? 'white' : 'gray'}
143
- bold={isInProgress}
144
- dimColor={isCompleted}
145
- strikethrough={isCompleted}
146
- >
147
- {todo.title}
148
- </Text>
149
-
150
- {/* Current indicator */}
151
- {isInProgress && (
152
- <Text color="blueBright"> ←</Text>
153
- )}
154
- </Box>
155
-
156
- {/* Error message */}
157
- {todo.error && (
158
- <Box marginLeft={2}>
159
- <Text color="red" dimColor>⚠ {todo.error}</Text>
160
- </Box>
161
- )}
162
- </Box>
163
- );
164
- })}
165
- </Box>
166
-
167
- {/* Progress bar and time */}
168
- <Box marginTop={1} justifyContent="space-between">
169
- <ProgressBar completed={completedCount} total={todos.length} width={20} />
170
- {isProcessing && (
171
- <Text color="yellow">{formatElapsedTime(elapsedTime)}</Text>
172
- )}
173
- </Box>
174
- </Box>
175
- );
176
- }, (prevProps, nextProps) => {
177
- // Custom comparison: only re-render when todos or processing state actually changes
178
- if (prevProps.isProcessing !== nextProps.isProcessing) return false;
179
- if (prevProps.currentTodoId !== nextProps.currentTodoId) return false;
180
- if (prevProps.todos.length !== nextProps.todos.length) return false;
181
- // Deep compare todos by status and title
182
- for (let i = 0; i < prevProps.todos.length; i++) {
183
- const prev = prevProps.todos[i];
184
- const next = nextProps.todos[i];
185
- if (!prev || !next) return false;
186
- if (prev.status !== next.status || prev.title !== next.title || prev.error !== next.error) {
187
- return false;
188
- }
189
- }
190
- return true; // Props are equal, skip re-render
191
- });
192
-
193
- /**
194
- * Compact TODO Status Bar
195
- * Shows inline status for space-constrained layouts
196
- * Memoized to prevent unnecessary re-renders
197
- */
198
- export const TodoStatusBar: React.FC<{ todos: TodoItem[] }> = React.memo(({ todos }) => {
199
- // Log component render
200
- useEffect(() => {
201
- logger.debug('TodoStatusBar rendered', { todoCount: todos.length });
202
- }, [todos.length]);
203
-
204
- if (todos.length === 0) {
205
- return null;
206
- }
207
-
208
- const completedCount = todos.filter(t => t.status === 'completed').length;
209
- const inProgressCount = todos.filter(t => t.status === 'in_progress').length;
210
- const currentTodo = todos.find(t => t.status === 'in_progress');
211
- const percentage = Math.round((completedCount / todos.length) * 100);
212
-
213
- return (
214
- <Box>
215
- {/* Notion-style inline progress */}
216
- <Text color="greenBright">{'▓'.repeat(Math.round(percentage / 10))}</Text>
217
- <Text color="white">{'░'.repeat(10 - Math.round(percentage / 10))}</Text>
218
- <Text color="cyan"> {completedCount}/{todos.length}</Text>
219
-
220
- {currentTodo && (
221
- <>
222
- <Text color="white"> │ </Text>
223
- <Text color="blueBright">
224
- <Spinner type="dots" />
225
- </Text>
226
- <Text color="white"> {currentTodo.title.slice(0, 30)}{currentTodo.title.length > 30 ? '...' : ''}</Text>
227
- </>
228
- )}
229
-
230
- {inProgressCount === 0 && completedCount === todos.length && (
231
- <>
232
- <Text color="white"> │ </Text>
233
- <Text color="greenBright">Done</Text>
234
- </>
235
- )}
236
- </Box>
237
- );
238
- });
239
-
240
- export default TodoPanel;
@@ -1,105 +0,0 @@
1
- /**
2
- * Update Notification UI Component
3
- *
4
- * React component for displaying update notifications in Ink
5
- */
6
-
7
- import React from 'react';
8
- import { Box, Text } from 'ink';
9
- import Spinner from 'ink-spinner';
10
-
11
- interface UpdateNotificationProps {
12
- currentVersion: string;
13
- latestVersion: string;
14
- changelog?: string;
15
- releaseDate?: string;
16
- isUpdating?: boolean;
17
- updateProgress?: string;
18
- error?: string;
19
- }
20
-
21
- /**
22
- * Update Notification Component
23
- * Shows update availability and progress
24
- */
25
- export const UpdateNotification: React.FC<UpdateNotificationProps> = ({
26
- currentVersion,
27
- latestVersion,
28
- changelog,
29
- releaseDate,
30
- isUpdating = false,
31
- updateProgress,
32
- error
33
- }) => {
34
- if (error) {
35
- return (
36
- <Box borderStyle="round" borderColor="red" padding={1} marginY={1}>
37
- <Box flexDirection="column">
38
- <Text color="red" bold>❌ Update Failed</Text>
39
- <Text color="dim">{error}</Text>
40
- </Box>
41
- </Box>
42
- );
43
- }
44
-
45
- if (isUpdating) {
46
- return (
47
- <Box borderStyle="round" borderColor="cyan" padding={1} marginY={1}>
48
- <Box flexDirection="column">
49
- <Box>
50
- <Text color="cyan">
51
- <Spinner type="dots" /> Updating...
52
- </Text>
53
- </Box>
54
- {updateProgress && (
55
- <Text color="dim"> {updateProgress}</Text>
56
- )}
57
- </Box>
58
- </Box>
59
- );
60
- }
61
-
62
- return (
63
- <Box borderStyle="round" borderColor="yellow" padding={1} marginY={1}>
64
- <Box flexDirection="column">
65
- <Text color="yellow" bold>
66
- 🚀 New Version Available!
67
- </Text>
68
-
69
- <Box marginTop={1}>
70
- <Text>Current Version: </Text>
71
- <Text color="red">{currentVersion}</Text>
72
- </Box>
73
-
74
- <Box>
75
- <Text>Latest Version: </Text>
76
- <Text color="green">{latestVersion}</Text>
77
- </Box>
78
-
79
- {releaseDate && (
80
- <Box>
81
- <Text>Released: </Text>
82
- <Text color="dim">{new Date(releaseDate).toLocaleDateString()}</Text>
83
- </Box>
84
- )}
85
-
86
- {changelog && (
87
- <Box flexDirection="column" marginTop={1}>
88
- <Text color="cyan" bold>📝 Changelog:</Text>
89
- <Box paddingLeft={2}>
90
- <Text color="dim">{changelog.split('\n').slice(0, 3).join('\n')}</Text>
91
- </Box>
92
- </Box>
93
- )}
94
-
95
- <Box marginTop={1}>
96
- <Text color="dim" italic>
97
- Press Y to update, N to skip, or S to skip this version
98
- </Text>
99
- </Box>
100
- </Box>
101
- </Box>
102
- );
103
- };
104
-
105
- export default UpdateNotification;
@@ -1,234 +0,0 @@
1
- /**
2
- * ActivityIndicator Component
3
- *
4
- * Unified component for displaying various AI activities:
5
- * - Thinking/Generating
6
- * - Local RAG (docs search)
7
- * - Tool execution (file read/write, etc.)
8
- * - Planning/Executing
9
- * - Token usage and performance metrics
10
- */
11
-
12
- import React, { useState, useEffect } from 'react';
13
- import { Box, Text } from 'ink';
14
- import Spinner from 'ink-spinner';
15
- import { logger } from '../../utils/logger.js';
16
-
17
- // Activity types
18
- export type ActivityType =
19
- | 'thinking'
20
- | 'planning'
21
- | 'executing'
22
- | 'docs_search'
23
- | 'file_read'
24
- | 'file_write'
25
- | 'file_search'
26
- | 'tool_call'
27
- | 'validating'
28
- | 'waiting';
29
-
30
- // Activity details for display
31
- interface ActivityInfo {
32
- icon: string;
33
- label: string;
34
- color: string;
35
- spinnerType: 'dots' | 'line' | 'pipe' | 'star';
36
- }
37
-
38
- const ACTIVITY_INFO: Record<ActivityType, ActivityInfo> = {
39
- thinking: { icon: '💭', label: 'Thinking', color: 'magenta', spinnerType: 'dots' },
40
- planning: { icon: '💭', label: 'Thinking', color: 'blue', spinnerType: 'dots' },
41
- executing: { icon: '⚡', label: 'Executing', color: 'green', spinnerType: 'line' },
42
- docs_search: { icon: '📚', label: 'Searching docs', color: 'yellow', spinnerType: 'dots' },
43
- file_read: { icon: '📖', label: 'Reading file', color: 'cyan', spinnerType: 'pipe' },
44
- file_write: { icon: '✏️', label: 'Writing file', color: 'green', spinnerType: 'pipe' },
45
- file_search: { icon: '🔍', label: 'Searching files', color: 'yellow', spinnerType: 'dots' },
46
- tool_call: { icon: '🔧', label: 'Tool call', color: 'yellow', spinnerType: 'star' },
47
- validating: { icon: '✓', label: 'Validating', color: 'cyan', spinnerType: 'dots' },
48
- waiting: { icon: '⏳', label: 'Waiting', color: 'gray', spinnerType: 'dots' },
49
- };
50
-
51
- // Sub-activity for nested display
52
- export interface SubActivity {
53
- type: ActivityType;
54
- detail?: string;
55
- status: 'pending' | 'running' | 'done' | 'error';
56
- }
57
-
58
- interface ActivityIndicatorProps {
59
- activity: ActivityType;
60
- startTime: number;
61
- detail?: string;
62
- subActivities?: SubActivity[];
63
- // Token metrics
64
- tokenCount?: number;
65
- tokensPerSecond?: number;
66
- promptTokens?: number;
67
- completionTokens?: number;
68
- // Model info
69
- modelName?: string;
70
- // For planning/executing
71
- currentStep?: number;
72
- totalSteps?: number;
73
- stepName?: string;
74
- // Latency
75
- latencyMs?: number;
76
- }
77
-
78
- /**
79
- * Format token count for display
80
- */
81
- function formatTokens(count: number): string {
82
- if (count < 1000) return count.toString();
83
- if (count < 1000000) return `${(count / 1000).toFixed(1)}k`;
84
- return `${(count / 1000000).toFixed(2)}M`;
85
- }
86
-
87
- /**
88
- * Mini progress bar component
89
- */
90
- const MiniProgressBar: React.FC<{ value: number; max: number; width?: number; color?: string }> = ({
91
- value,
92
- max,
93
- width = 10,
94
- color = 'green',
95
- }) => {
96
- const filled = Math.min(Math.round((value / max) * width), width);
97
- const empty = width - filled;
98
-
99
- return (
100
- <Text>
101
- <Text color={color}>{'█'.repeat(filled)}</Text>
102
- <Text color="gray">{'░'.repeat(empty)}</Text>
103
- </Text>
104
- );
105
- };
106
-
107
- export const ActivityIndicator: React.FC<ActivityIndicatorProps> = ({
108
- activity,
109
- startTime,
110
- detail,
111
- subActivities = [],
112
- tokenCount,
113
- tokensPerSecond,
114
- currentStep,
115
- totalSteps,
116
- stepName,
117
- }) => {
118
- const [elapsedSeconds, setElapsedSeconds] = useState(0);
119
-
120
- // Log component lifecycle
121
- useEffect(() => {
122
- logger.enter('ActivityIndicator', { activity, startTime });
123
- return () => {
124
- logger.exit('ActivityIndicator', { activity, elapsedSeconds });
125
- };
126
- }, []);
127
-
128
- // Log activity changes
129
- useEffect(() => {
130
- logger.flow(`Activity changed: ${activity}`);
131
- logger.vars(
132
- { name: 'activity', value: activity },
133
- { name: 'detail', value: detail },
134
- { name: 'subActivitiesCount', value: subActivities.length }
135
- );
136
- }, [activity, detail, subActivities.length]);
137
-
138
- // Update elapsed time
139
- useEffect(() => {
140
- const interval = setInterval(() => {
141
- setElapsedSeconds(Math.floor((Date.now() - startTime) / 1000));
142
- }, 1000);
143
- return () => clearInterval(interval);
144
- }, [startTime]);
145
-
146
- const activityInfo = ACTIVITY_INFO[activity];
147
-
148
- // Format time display
149
- const formatTime = (seconds: number): string => {
150
- if (seconds < 60) return `${seconds}s`;
151
- const mins = Math.floor(seconds / 60);
152
- const secs = seconds % 60;
153
- return `${mins}m ${secs}s`;
154
- };
155
-
156
- // Render progress bar for planning/executing
157
- const renderProgressBar = () => {
158
- if (!totalSteps || currentStep === undefined) return null;
159
- const percent = Math.round((currentStep / totalSteps) * 100);
160
-
161
- return (
162
- <Box marginLeft={1}>
163
- <MiniProgressBar value={currentStep} max={totalSteps} width={15} color="green" />
164
- <Text color="gray"> {percent}%</Text>
165
- </Box>
166
- );
167
- };
168
-
169
- // Render sub-activity status icon
170
- const getStatusIcon = (status: SubActivity['status']) => {
171
- switch (status) {
172
- case 'pending': return <Text color="gray">○</Text>;
173
- case 'running': return <Text color="yellow"><Spinner type="dots" /></Text>;
174
- case 'done': return <Text color="green">✓</Text>;
175
- case 'error': return <Text color="red">✗</Text>;
176
- }
177
- };
178
-
179
- return (
180
- <Box flexDirection="column" paddingX={1}>
181
- {/* Main activity header - minimal Notion style */}
182
- <Box>
183
- <Text color="blueBright">
184
- <Spinner type={activityInfo.spinnerType} />
185
- </Text>
186
- <Text color="white" bold> {activityInfo.label}</Text>
187
- <Text color="gray" dimColor> {formatTime(elapsedSeconds)}</Text>
188
- {renderProgressBar()}
189
- </Box>
190
-
191
- {/* Detail line */}
192
- {detail && (
193
- <Box marginLeft={2}>
194
- <Text color="gray" dimColor>{detail}</Text>
195
- </Box>
196
- )}
197
-
198
- {/* Step info for planning/executing */}
199
- {stepName && (
200
- <Box marginLeft={2}>
201
- <Text color="gray" dimColor>{currentStep}/{totalSteps}: {stepName}</Text>
202
- </Box>
203
- )}
204
-
205
- {/* Sub-activities (e.g., tool calls during thinking) */}
206
- {subActivities.length > 0 && (
207
- <Box flexDirection="column" marginLeft={2}>
208
- {subActivities.map((sub, idx) => {
209
- const subInfo = ACTIVITY_INFO[sub.type];
210
- return (
211
- <Box key={idx}>
212
- {getStatusIcon(sub.status)}
213
- <Text color="gray" dimColor> {subInfo.label}</Text>
214
- {sub.detail && <Text color="gray" dimColor>: {sub.detail}</Text>}
215
- </Box>
216
- );
217
- })}
218
- </Box>
219
- )}
220
-
221
- {/* Token metrics - simplified */}
222
- {tokenCount !== undefined && (
223
- <Box marginLeft={2}>
224
- <Text color="gray" dimColor>
225
- {formatTokens(tokenCount)} tokens
226
- {tokensPerSecond !== undefined && tokensPerSecond > 0 && ` · ${tokensPerSecond.toFixed(0)} tok/s`}
227
- </Text>
228
- </Box>
229
- )}
230
- </Box>
231
- );
232
- };
233
-
234
- export default ActivityIndicator;
@@ -1,114 +0,0 @@
1
- /**
2
- * Command Browser Component
3
- *
4
- * Displays available slash commands with descriptions and argument hints
5
- */
6
-
7
- import React from 'react';
8
- import { Box, Text, useInput } from 'ink';
9
- import SelectInput from 'ink-select-input';
10
- import {
11
- filterCommands,
12
- } from '../hooks/slashCommandProcessor.js';
13
-
14
- interface CommandBrowserProps {
15
- partialCommand: string;
16
- args: string; // Used to detect if command has arguments for hint display
17
- onSelect: (command: string, shouldSubmit: boolean) => void;
18
- onCancel: () => void;
19
- }
20
-
21
- interface SelectItem {
22
- label: string;
23
- value: string;
24
- }
25
-
26
- const COMMAND_COLUMN_WIDTH = 25;
27
- const MAX_VISIBLE_COMMANDS = 10;
28
-
29
- export const CommandBrowser: React.FC<CommandBrowserProps> = ({
30
- partialCommand,
31
- args: _args,
32
- onSelect,
33
- onCancel,
34
- }) => {
35
- const commands = filterCommands(partialCommand, MAX_VISIBLE_COMMANDS);
36
-
37
- // Convert CommandMetadata to SelectItem format
38
- const items: SelectItem[] = commands.map((cmd) => {
39
- const aliasText = cmd.aliases && cmd.aliases.length > 0
40
- ? ` (${cmd.aliases.join(', ')})`
41
- : '';
42
- const commandPart = `${cmd.name}${aliasText}`;
43
- // Pad to COMMAND_COLUMN_WIDTH characters for alignment
44
- const paddedCommand = commandPart.padEnd(COMMAND_COLUMN_WIDTH);
45
- return {
46
- label: `${paddedCommand} ${cmd.description}`,
47
- value: cmd.name,
48
- };
49
- });
50
-
51
- // Custom keyboard handling
52
- useInput((_inputChar, key) => {
53
- if (key.escape) {
54
- onCancel();
55
- return;
56
- }
57
-
58
- // Tab key for autocomplete (select first command, don't submit)
59
- if (key.tab && items.length > 0) {
60
- const firstCommand = items[0];
61
- if (firstCommand) {
62
- onSelect(firstCommand.value, false);
63
- }
64
- return;
65
- }
66
- });
67
-
68
- // Handle Enter key from SelectInput (submit command)
69
- const handleSelect = (item: SelectItem) => {
70
- onSelect(item.value, true);
71
- };
72
-
73
- // Show argument hint if command is complete and has args hint
74
- const currentCommand = commands.find((cmd) => cmd.name === `/${partialCommand}`);
75
- const argsHint = currentCommand?.argsHint;
76
-
77
- if (items.length === 0) {
78
- return (
79
- <Box borderStyle="single" borderColor="yellow" paddingX={1} flexDirection="column">
80
- <Text color="yellow">
81
- No commands found matching: /{partialCommand}
82
- </Text>
83
- <Text dimColor>Press ESC to cancel</Text>
84
- </Box>
85
- );
86
- }
87
-
88
- return (
89
- <Box flexDirection="column">
90
- {/* Command List */}
91
- <Box borderStyle="single" borderColor="cyan" paddingX={1} flexDirection="column">
92
- <Box>
93
- <SelectInput items={items} onSelect={handleSelect} limit={MAX_VISIBLE_COMMANDS} />
94
- </Box>
95
- </Box>
96
-
97
- {/* Argument Hint (shown when command is complete and has args) */}
98
- {argsHint && (
99
- <Box
100
- borderStyle="single"
101
- borderColor="yellow"
102
- paddingX={1}
103
- marginTop={1}
104
- flexDirection="column"
105
- >
106
- <Text color="yellow" bold>
107
- Expected Arguments:
108
- </Text>
109
- <Text color="white">{argsHint}</Text>
110
- </Box>
111
- )}
112
- </Box>
113
- );
114
- };