orquesta-cli 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +373 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts.map +0 -1
  60. package/dist/core/git-auto-updater.js.map +0 -1
  61. package/dist/core/llm/index.d.ts.map +0 -1
  62. package/dist/core/llm/index.js.map +0 -1
  63. package/dist/core/llm/llm-client.d.ts.map +0 -1
  64. package/dist/core/llm/llm-client.js.map +0 -1
  65. package/dist/core/session/index.d.ts.map +0 -1
  66. package/dist/core/session/index.js.map +0 -1
  67. package/dist/core/session/session-manager.d.ts.map +0 -1
  68. package/dist/core/session/session-manager.js.map +0 -1
  69. package/dist/core/slash-command-handler.d.ts.map +0 -1
  70. package/dist/core/slash-command-handler.js.map +0 -1
  71. package/dist/core/usage-tracker.d.ts.map +0 -1
  72. package/dist/core/usage-tracker.js.map +0 -1
  73. package/dist/errors/base.d.ts.map +0 -1
  74. package/dist/errors/base.js.map +0 -1
  75. package/dist/errors/file.d.ts.map +0 -1
  76. package/dist/errors/file.js.map +0 -1
  77. package/dist/errors/index.d.ts.map +0 -1
  78. package/dist/errors/index.js.map +0 -1
  79. package/dist/errors/llm.d.ts.map +0 -1
  80. package/dist/errors/llm.js.map +0 -1
  81. package/dist/errors/network.d.ts.map +0 -1
  82. package/dist/errors/network.js.map +0 -1
  83. package/dist/errors/validation.d.ts.map +0 -1
  84. package/dist/errors/validation.js.map +0 -1
  85. package/dist/eval/eval-runner.d.ts.map +0 -1
  86. package/dist/eval/eval-runner.js.map +0 -1
  87. package/dist/eval/index.d.ts.map +0 -1
  88. package/dist/eval/index.js.map +0 -1
  89. package/dist/eval/types.d.ts.map +0 -1
  90. package/dist/eval/types.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/orchestration/index.d.ts.map +0 -1
  94. package/dist/orchestration/index.js.map +0 -1
  95. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  96. package/dist/orchestration/plan-executor.js.map +0 -1
  97. package/dist/orchestration/types.d.ts.map +0 -1
  98. package/dist/orchestration/types.js.map +0 -1
  99. package/dist/orchestration/utils.d.ts.map +0 -1
  100. package/dist/orchestration/utils.js.map +0 -1
  101. package/dist/orquesta/connection.d.ts.map +0 -1
  102. package/dist/orquesta/connection.js.map +0 -1
  103. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  105. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search.js.map +0 -1
  107. package/dist/prompts/agents/planning.d.ts.map +0 -1
  108. package/dist/prompts/agents/planning.js.map +0 -1
  109. package/dist/prompts/index.d.ts.map +0 -1
  110. package/dist/prompts/index.js.map +0 -1
  111. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  113. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/git-rules.js.map +0 -1
  115. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/language-rules.js.map +0 -1
  117. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  118. package/dist/prompts/shared/tool-usage.js.map +0 -1
  119. package/dist/prompts/system/compact.d.ts.map +0 -1
  120. package/dist/prompts/system/compact.js.map +0 -1
  121. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  122. package/dist/prompts/system/plan-execute.js.map +0 -1
  123. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  124. package/dist/tools/browser/browser-client.js.map +0 -1
  125. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-tools.js.map +0 -1
  127. package/dist/tools/browser/index.d.ts.map +0 -1
  128. package/dist/tools/browser/index.js.map +0 -1
  129. package/dist/tools/index.d.ts.map +0 -1
  130. package/dist/tools/index.js.map +0 -1
  131. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  133. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/index.js.map +0 -1
  135. package/dist/tools/llm/index.d.ts.map +0 -1
  136. package/dist/tools/llm/index.js.map +0 -1
  137. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  139. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  149. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  151. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/index.js.map +0 -1
  153. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  155. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  157. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  159. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  161. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  163. package/dist/tools/office/common/constants.d.ts.map +0 -1
  164. package/dist/tools/office/common/constants.js.map +0 -1
  165. package/dist/tools/office/common/index.d.ts.map +0 -1
  166. package/dist/tools/office/common/index.js.map +0 -1
  167. package/dist/tools/office/common/types.d.ts.map +0 -1
  168. package/dist/tools/office/common/types.js.map +0 -1
  169. package/dist/tools/office/common/utils.d.ts.map +0 -1
  170. package/dist/tools/office/common/utils.js.map +0 -1
  171. package/dist/tools/office/excel-client.d.ts.map +0 -1
  172. package/dist/tools/office/excel-client.js.map +0 -1
  173. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  175. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  177. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  179. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  181. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/export.js.map +0 -1
  183. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  185. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/index.js.map +0 -1
  187. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  189. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/media.js.map +0 -1
  191. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  193. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  195. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  197. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  199. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  201. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools.js.map +0 -1
  203. package/dist/tools/office/index.d.ts.map +0 -1
  204. package/dist/tools/office/index.js.map +0 -1
  205. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  206. package/dist/tools/office/office-client-base.js.map +0 -1
  207. package/dist/tools/office/office-client.d.ts.map +0 -1
  208. package/dist/tools/office/office-client.js.map +0 -1
  209. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  210. package/dist/tools/office/powerpoint-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  235. package/dist/tools/office/word-client.d.ts.map +0 -1
  236. package/dist/tools/office/word-client.js.map +0 -1
  237. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  239. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/comments.js.map +0 -1
  241. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/content.js.map +0 -1
  243. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/export.js.map +0 -1
  245. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  247. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  249. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/index.js.map +0 -1
  251. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/launch.js.map +0 -1
  253. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/lists.js.map +0 -1
  255. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  257. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  259. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/tables.js.map +0 -1
  261. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/text.js.map +0 -1
  263. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  265. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  267. package/dist/tools/office/word-tools.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools.js.map +0 -1
  269. package/dist/tools/registry.d.ts.map +0 -1
  270. package/dist/tools/registry.js.map +0 -1
  271. package/dist/tools/types.d.ts.map +0 -1
  272. package/dist/tools/types.js.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/index.js.map +0 -1
  275. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  276. package/dist/ui/PlanExecuteView.js.map +0 -1
  277. package/dist/ui/TodoPanel.d.ts.map +0 -1
  278. package/dist/ui/TodoPanel.js.map +0 -1
  279. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  280. package/dist/ui/UpdateNotification.js.map +0 -1
  281. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  283. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  284. package/dist/ui/components/CommandBrowser.js.map +0 -1
  285. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  286. package/dist/ui/components/CustomTextInput.js.map +0 -1
  287. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  289. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  290. package/dist/ui/components/FileBrowser.js.map +0 -1
  291. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  293. package/dist/ui/components/Logo.d.ts.map +0 -1
  294. package/dist/ui/components/Logo.js.map +0 -1
  295. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  297. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  298. package/dist/ui/components/ModelSelector.js.map +0 -1
  299. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  301. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  302. package/dist/ui/components/ProgressBar.js.map +0 -1
  303. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  304. package/dist/ui/components/StatusBar.js.map +0 -1
  305. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  307. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  308. package/dist/ui/components/TodoListView.js.map +0 -1
  309. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  310. package/dist/ui/components/ToolSelector.js.map +0 -1
  311. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  313. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  317. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  319. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/index.js.map +0 -1
  321. package/dist/ui/components/index.d.ts.map +0 -1
  322. package/dist/ui/components/index.js.map +0 -1
  323. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  325. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  327. package/dist/ui/components/panels/index.d.ts.map +0 -1
  328. package/dist/ui/components/panels/index.js.map +0 -1
  329. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  330. package/dist/ui/components/views/ChatView.js.map +0 -1
  331. package/dist/ui/components/views/index.d.ts.map +0 -1
  332. package/dist/ui/components/views/index.js.map +0 -1
  333. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  334. package/dist/ui/contexts/TokenContext.js.map +0 -1
  335. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  337. package/dist/ui/hooks/index.d.ts.map +0 -1
  338. package/dist/ui/hooks/index.js.map +0 -1
  339. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  341. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  343. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileList.js.map +0 -1
  347. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  349. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js.map +0 -1
  353. package/dist/ui/ink-entry.d.ts.map +0 -1
  354. package/dist/ui/ink-entry.js.map +0 -1
  355. package/dist/utils/env-filter.d.ts.map +0 -1
  356. package/dist/utils/env-filter.js.map +0 -1
  357. package/dist/utils/file-system.d.ts.map +0 -1
  358. package/dist/utils/file-system.js.map +0 -1
  359. package/dist/utils/git-utils.d.ts.map +0 -1
  360. package/dist/utils/git-utils.js.map +0 -1
  361. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  362. package/dist/utils/json-stream-logger.js.map +0 -1
  363. package/dist/utils/logger.d.ts.map +0 -1
  364. package/dist/utils/logger.js.map +0 -1
  365. package/dist/utils/platform-utils.d.ts.map +0 -1
  366. package/dist/utils/platform-utils.js.map +0 -1
  367. package/dist/utils/wsl-utils.d.ts.map +0 -1
  368. package/dist/utils/wsl-utils.js.map +0 -1
  369. package/electron.vite.config.ts +0 -63
  370. package/google374b9eba0c52b043.html +0 -1
  371. package/src/agents/base/base-agent.ts +0 -159
  372. package/src/agents/docs-search/index.ts +0 -365
  373. package/src/agents/index.ts +0 -34
  374. package/src/agents/planner/index.ts +0 -544
  375. package/src/cli.ts +0 -201
  376. package/src/constants.ts +0 -47
  377. package/src/core/compact/compact-manager.ts +0 -160
  378. package/src/core/compact/compact-prompts.ts +0 -150
  379. package/src/core/compact/context-tracker.ts +0 -164
  380. package/src/core/compact/index.ts +0 -25
  381. package/src/core/config/config-manager.ts +0 -460
  382. package/src/core/config/index.ts +0 -5
  383. package/src/core/docs-manager.ts +0 -678
  384. package/src/core/llm/index.ts +0 -7
  385. package/src/core/llm/llm-client.ts +0 -1550
  386. package/src/core/session/index.ts +0 -5
  387. package/src/core/session/session-manager.ts +0 -464
  388. package/src/core/slash-command-handler.ts +0 -410
  389. package/src/core/usage-tracker.ts +0 -438
  390. package/src/errors/base.ts +0 -81
  391. package/src/errors/file.ts +0 -183
  392. package/src/errors/index.ts +0 -95
  393. package/src/errors/llm.ts +0 -151
  394. package/src/errors/network.ts +0 -124
  395. package/src/errors/validation.ts +0 -111
  396. package/src/eval/eval-runner.ts +0 -456
  397. package/src/eval/index.ts +0 -8
  398. package/src/eval/types.ts +0 -139
  399. package/src/index.ts +0 -22
  400. package/src/orchestration/index.ts +0 -30
  401. package/src/orchestration/plan-executor.ts +0 -652
  402. package/src/orchestration/types.ts +0 -127
  403. package/src/orchestration/utils.ts +0 -119
  404. package/src/orquesta/connection.ts +0 -291
  405. package/src/prompts/agents/docs-search-decision.ts +0 -74
  406. package/src/prompts/agents/docs-search.ts +0 -84
  407. package/src/prompts/agents/planning.ts +0 -143
  408. package/src/prompts/index.ts +0 -31
  409. package/src/prompts/shared/codebase-rules.ts +0 -29
  410. package/src/prompts/shared/git-rules.ts +0 -94
  411. package/src/prompts/shared/language-rules.ts +0 -36
  412. package/src/prompts/shared/tool-usage.ts +0 -72
  413. package/src/prompts/system/compact.ts +0 -80
  414. package/src/prompts/system/plan-execute.ts +0 -89
  415. package/src/tools/browser/browser-client.ts +0 -1363
  416. package/src/tools/browser/browser-tools.ts +0 -1139
  417. package/src/tools/browser/index.ts +0 -65
  418. package/src/tools/index.ts +0 -23
  419. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  420. package/src/tools/llm/agents/index.ts +0 -22
  421. package/src/tools/llm/index.ts +0 -11
  422. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  423. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  424. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  425. package/src/tools/llm/simple/bash-tool.ts +0 -238
  426. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  427. package/src/tools/llm/simple/file-tools.ts +0 -1051
  428. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  429. package/src/tools/llm/simple/index.ts +0 -42
  430. package/src/tools/llm/simple/planning-tools.ts +0 -143
  431. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  432. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  433. package/src/tools/llm/simple/todo-tools.ts +0 -207
  434. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  435. package/src/tools/office/common/constants.ts +0 -335
  436. package/src/tools/office/common/index.ts +0 -133
  437. package/src/tools/office/common/types.ts +0 -286
  438. package/src/tools/office/common/utils.ts +0 -116
  439. package/src/tools/office/excel-client.ts +0 -1336
  440. package/src/tools/office/excel-tools/cells.ts +0 -359
  441. package/src/tools/office/excel-tools/charts.ts +0 -166
  442. package/src/tools/office/excel-tools/comments.ts +0 -155
  443. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  444. package/src/tools/office/excel-tools/export.ts +0 -105
  445. package/src/tools/office/excel-tools/formatting.ts +0 -357
  446. package/src/tools/office/excel-tools/index.ts +0 -55
  447. package/src/tools/office/excel-tools/launch.ts +0 -303
  448. package/src/tools/office/excel-tools/media.ts +0 -117
  449. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  450. package/src/tools/office/excel-tools/protection.ts +0 -105
  451. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  452. package/src/tools/office/excel-tools/sheets.ts +0 -228
  453. package/src/tools/office/excel-tools/validation.ts +0 -226
  454. package/src/tools/office/excel-tools.ts +0 -9
  455. package/src/tools/office/index.ts +0 -259
  456. package/src/tools/office/office-client-base.ts +0 -242
  457. package/src/tools/office/office-client.ts +0 -377
  458. package/src/tools/office/powerpoint-client.ts +0 -1498
  459. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  460. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  461. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  462. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  463. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  464. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  465. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  466. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  467. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  468. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  469. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  470. package/src/tools/office/powerpoint-tools.ts +0 -9
  471. package/src/tools/office/word-client.ts +0 -1697
  472. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  473. package/src/tools/office/word-tools/comments.ts +0 -185
  474. package/src/tools/office/word-tools/content.ts +0 -229
  475. package/src/tools/office/word-tools/export.ts +0 -97
  476. package/src/tools/office/word-tools/formatting.ts +0 -161
  477. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  478. package/src/tools/office/word-tools/index.ts +0 -57
  479. package/src/tools/office/word-tools/launch.ts +0 -312
  480. package/src/tools/office/word-tools/lists.ts +0 -97
  481. package/src/tools/office/word-tools/navigation.ts +0 -114
  482. package/src/tools/office/word-tools/page-setup.ts +0 -195
  483. package/src/tools/office/word-tools/tables.ts +0 -262
  484. package/src/tools/office/word-tools/text.ts +0 -294
  485. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  486. package/src/tools/office/word-tools/watermarks.ts +0 -105
  487. package/src/tools/office/word-tools.ts +0 -9
  488. package/src/tools/registry.ts +0 -527
  489. package/src/tools/types.ts +0 -231
  490. package/src/types/index.ts +0 -181
  491. package/src/ui/PlanExecuteView.tsx +0 -119
  492. package/src/ui/TodoPanel.tsx +0 -240
  493. package/src/ui/UpdateNotification.tsx +0 -105
  494. package/src/ui/components/ActivityIndicator.tsx +0 -234
  495. package/src/ui/components/CommandBrowser.tsx +0 -114
  496. package/src/ui/components/CustomTextInput.tsx +0 -389
  497. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  498. package/src/ui/components/FileBrowser.tsx +0 -93
  499. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  500. package/src/ui/components/Logo.tsx +0 -125
  501. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  502. package/src/ui/components/ModelSelector.tsx +0 -203
  503. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  504. package/src/ui/components/ProgressBar.tsx +0 -51
  505. package/src/ui/components/StatusBar.tsx +0 -302
  506. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  507. package/src/ui/components/TodoListView.tsx +0 -140
  508. package/src/ui/components/ToolSelector.tsx +0 -215
  509. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  510. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  511. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  512. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  513. package/src/ui/components/dialogs/index.ts +0 -13
  514. package/src/ui/components/index.ts +0 -27
  515. package/src/ui/components/panels/LogPanel.tsx +0 -385
  516. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  517. package/src/ui/components/panels/index.ts +0 -13
  518. package/src/ui/components/views/ChatView.tsx +0 -447
  519. package/src/ui/components/views/index.ts +0 -5
  520. package/src/ui/contexts/TokenContext.tsx +0 -139
  521. package/src/ui/hooks/atFileProcessor.ts +0 -167
  522. package/src/ui/hooks/index.ts +0 -11
  523. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  524. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  525. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  526. package/src/ui/hooks/useFileList.ts +0 -132
  527. package/src/ui/hooks/useInputHistory.ts +0 -89
  528. package/src/ui/hooks/usePlanExecution.ts +0 -339
  529. package/src/ui/index.ts +0 -10
  530. package/src/ui/ink-entry.tsx +0 -36
  531. package/src/utils/env-filter.ts +0 -164
  532. package/src/utils/file-system.ts +0 -133
  533. package/src/utils/git-utils.ts +0 -30
  534. package/src/utils/json-stream-logger.ts +0 -1259
  535. package/src/utils/logger.ts +0 -2767
  536. package/src/utils/platform-utils.ts +0 -256
  537. package/src/utils/wsl-utils.ts +0 -113
  538. package/tsconfig.electron.json +0 -39
  539. package/tsconfig.json +0 -64
@@ -1,447 +0,0 @@
1
- /**
2
- * ChatView Component
3
- *
4
- * Renders the chat message history in the interactive mode
5
- * Features:
6
- * - Icons/emojis for message roles
7
- * - Markdown rendering with syntax highlighting
8
- * - Timestamps
9
- * - Message folding for long content
10
- * - Claude-style tool call display
11
- */
12
-
13
- import React, { useEffect, useState } from 'react';
14
- import { Box, Text } from 'ink';
15
- import { Message, ToolCall } from '../../../types/index.js';
16
- import { logger } from '../../../utils/logger.js';
17
- import { MarkdownRenderer } from '../MarkdownRenderer.js';
18
-
19
- // Message role icons
20
- const ROLE_ICONS = {
21
- user: '👤',
22
- assistant: '🤖',
23
- system: '⚙️',
24
- error: '❌',
25
- tool: '🔧',
26
- };
27
-
28
- // Role colors
29
- const ROLE_COLORS = {
30
- user: 'green',
31
- assistant: 'cyan',
32
- system: 'gray',
33
- error: 'red',
34
- tool: 'yellow',
35
- } as const;
36
-
37
- interface ChatViewProps {
38
- messages: Message[];
39
- currentResponse?: string;
40
- maxDisplayMessages?: number;
41
- showTimestamps?: boolean;
42
- enableMarkdown?: boolean;
43
- }
44
-
45
-
46
- export const ChatView: React.FC<ChatViewProps> = ({
47
- messages,
48
- currentResponse,
49
- maxDisplayMessages = 10,
50
- showTimestamps = false,
51
- enableMarkdown = true,
52
- }) => {
53
- // Track message timestamps
54
- const [messagesMeta, setMessagesMeta] = useState<Map<number, { timestamp: Date; folded: boolean }>>(new Map());
55
-
56
- // Log component render
57
- useEffect(() => {
58
- logger.enter('ChatView', {
59
- messageCount: messages.length,
60
- hasCurrentResponse: !!currentResponse,
61
- });
62
- return () => {
63
- logger.exit('ChatView', { messageCount: messages.length });
64
- };
65
- }, []);
66
-
67
- // Update timestamps for new messages
68
- useEffect(() => {
69
- const newMeta = new Map(messagesMeta);
70
- messages.forEach((_, idx) => {
71
- if (!newMeta.has(idx)) {
72
- newMeta.set(idx, { timestamp: new Date(), folded: false });
73
- }
74
- });
75
- setMessagesMeta(newMeta);
76
-
77
- logger.debug('ChatView messages updated', {
78
- totalMessages: messages.length,
79
- displayedMessages: Math.min(messages.length, maxDisplayMessages),
80
- });
81
- }, [messages.length, maxDisplayMessages]);
82
-
83
- // Get icon and color based on message role
84
- const getMessageStyle = (role: string) => {
85
- switch (role) {
86
- case 'user':
87
- return { icon: ROLE_ICONS.user, color: ROLE_COLORS.user };
88
- case 'assistant':
89
- return { icon: ROLE_ICONS.assistant, color: ROLE_COLORS.assistant };
90
- case 'system':
91
- return { icon: ROLE_ICONS.system, color: ROLE_COLORS.system };
92
- case 'error':
93
- return { icon: ROLE_ICONS.error, color: ROLE_COLORS.error };
94
- case 'tool':
95
- return { icon: ROLE_ICONS.tool, color: ROLE_COLORS.tool };
96
- default:
97
- return { icon: '💬', color: 'white' as const };
98
- }
99
- };
100
-
101
- // Check if content should use markdown rendering
102
- const shouldRenderMarkdown = (content: string): boolean => {
103
- if (!enableMarkdown) return false;
104
- // Check for markdown patterns
105
- return content.includes('```') ||
106
- content.includes('**') ||
107
- content.includes('# ') ||
108
- content.includes('- ') ||
109
- content.includes('`');
110
- };
111
-
112
- // Tool icons (Claude Code style)
113
- const TOOL_ICONS: Record<string, string> = {
114
- 'read_file': '📖',
115
- 'Read': '📖',
116
- 'create_file': '📝',
117
- 'Create': '📝',
118
- 'edit_file': '✏️',
119
- 'Edit': '✏️',
120
- 'search_files': '🔍',
121
- 'Search': '🔍',
122
- 'Grep': '🔍',
123
- 'grep_search': '🔍',
124
- 'list_files': '📁',
125
- 'list_directory': '📁',
126
- 'Glob': '📁',
127
- 'find_files': '🔎',
128
- 'execute_command': '⚡',
129
- 'Bash': '⚡',
130
- };
131
-
132
- // Normalize tool name to display name
133
- const normalizeToolName = (name: string): string => {
134
- const nameMap: Record<string, string> = {
135
- 'read_file': 'Read',
136
- 'create_file': 'Create',
137
- 'edit_file': 'Edit',
138
- 'search_files': 'Search',
139
- 'list_files': 'List',
140
- 'list_directory': 'Glob',
141
- 'find_files': 'Find',
142
- 'execute_command': 'Bash',
143
- 'grep_search': 'Grep',
144
- };
145
- return nameMap[name] || name;
146
- };
147
-
148
- // Get tool icon
149
- const getToolIcon = (toolName: string): string => {
150
- return TOOL_ICONS[toolName] || TOOL_ICONS[normalizeToolName(toolName)] || '🔧';
151
- };
152
-
153
- // Format tool arguments for display
154
- const formatToolArgs = (toolName: string, argsStr: string): string => {
155
- try {
156
- const args = JSON.parse(argsStr) as Record<string, unknown>;
157
-
158
- switch (toolName) {
159
- case 'read_file':
160
- case 'Read':
161
- return (args['path'] as string) || (args['file_path'] as string) || '';
162
- case 'create_file':
163
- case 'Create':
164
- return (args['path'] as string) || (args['file_path'] as string) || '';
165
- case 'edit_file':
166
- case 'Edit':
167
- return (args['path'] as string) || (args['file_path'] as string) || '';
168
- case 'search_files':
169
- case 'Search':
170
- case 'Grep':
171
- case 'grep_search': {
172
- const pattern = (args['pattern'] as string) || '';
173
- const glob = (args['glob'] as string) || (args['path'] as string) || '';
174
- return `pattern: "${pattern}"${glob ? `, glob: "${glob}"` : ''}`;
175
- }
176
- case 'list_files':
177
- case 'list_directory':
178
- case 'Glob':
179
- return (args['directory_path'] as string) || (args['pattern'] as string) || (args['path'] as string) || '.';
180
- case 'find_files':
181
- case 'Find':
182
- return (args['pattern'] as string) || '';
183
- case 'execute_command':
184
- case 'Bash': {
185
- const cmd = (args['command'] as string) || '';
186
- return cmd.length > 50 ? cmd.substring(0, 47) + '...' : cmd;
187
- }
188
- default: {
189
- const entries = Object.entries(args).slice(0, 2);
190
- return entries.map(([k, v]) => {
191
- const val = typeof v === 'string'
192
- ? (v.length > 30 ? v.substring(0, 27) + '...' : v)
193
- : JSON.stringify(v);
194
- return `${k}: ${val}`;
195
- }).join(', ');
196
- }
197
- }
198
- } catch {
199
- return argsStr.length > 50 ? argsStr.substring(0, 47) + '...' : argsStr;
200
- }
201
- };
202
-
203
- // Parse edit_file result to extract diff info
204
- interface EditResult {
205
- action: string;
206
- file: string;
207
- additions: number;
208
- deletions: number;
209
- message: string;
210
- diff?: string[];
211
- }
212
-
213
- interface CreateResult {
214
- action: string;
215
- file: string;
216
- lines: number;
217
- message: string;
218
- }
219
-
220
- // Format tool result summary
221
- const formatToolResultSummary = (toolName: string, result: string): string => {
222
- if (!result) return '';
223
-
224
- // Count lines for read operations
225
- if (toolName === 'read_file' || toolName === 'Read') {
226
- const lines = result.split('\n').length;
227
- return `Read ${lines} lines`;
228
- }
229
-
230
- // Count matches for search
231
- if (['search_files', 'Search', 'Grep', 'grep_search'].includes(toolName)) {
232
- const lines = result.split('\n').filter(l => l.trim()).length;
233
- return `Found ${lines} matches`;
234
- }
235
-
236
- // For create_file, parse JSON result
237
- if (['create_file', 'Create'].includes(toolName)) {
238
- try {
239
- const parsed = JSON.parse(result) as CreateResult;
240
- return `Created ${parsed.file} (${parsed.lines} lines)`;
241
- } catch {
242
- return result;
243
- }
244
- }
245
-
246
- // For edit_file, parse JSON result
247
- if (['edit_file', 'Edit'].includes(toolName)) {
248
- try {
249
- const parsed = JSON.parse(result) as EditResult;
250
- return parsed.message;
251
- } catch {
252
- return result;
253
- }
254
- }
255
-
256
- // For browser/office/bash tools, summarize if more than 3 lines
257
- if (toolName.startsWith('browser_') || toolName.startsWith('word_') ||
258
- toolName.startsWith('excel_') || toolName.startsWith('powerpoint_') ||
259
- toolName.startsWith('bash')) {
260
- const lines = result.split('\n');
261
- if (lines.length > 3) {
262
- const preview = lines.slice(0, 2).join('\n');
263
- return `${preview}\n... (${lines.length - 2} more lines)`;
264
- }
265
- return result;
266
- }
267
-
268
- // Default: show truncated first line
269
- const firstLine = result.split('\n')[0] || '';
270
- return firstLine.length > 60 ? firstLine.substring(0, 57) + '...' : firstLine;
271
- };
272
-
273
- // Parse and render diff from edit_file result
274
- const renderDiff = (result: string): React.ReactNode => {
275
- try {
276
- const parsed = JSON.parse(result) as EditResult;
277
- if (!parsed.diff || parsed.diff.length === 0) return null;
278
-
279
- return (
280
- <Box flexDirection="column" paddingLeft={4}>
281
- {parsed.diff.map((line, idx) => {
282
- // Parse line number and content
283
- const match = line.match(/^(\d+)\s*([+-])\s*(.*)$/);
284
- if (!match) return <Text key={idx} color="gray">{line}</Text>;
285
-
286
- const [, lineNumStr, sign, content] = match;
287
- const lineNum = lineNumStr || '';
288
-
289
- if (sign === '+') {
290
- return (
291
- <Box key={idx}>
292
- <Text color="gray">{lineNum.padStart(4)} </Text>
293
- <Text color="green">+ {content}</Text>
294
- </Box>
295
- );
296
- } else {
297
- return (
298
- <Box key={idx}>
299
- <Text color="gray">{lineNum.padStart(4)} </Text>
300
- <Text color="red">- {content}</Text>
301
- </Box>
302
- );
303
- }
304
- })}
305
- </Box>
306
- );
307
- } catch {
308
- return null;
309
- }
310
- };
311
-
312
- // Render tool calls in Claude style with icons
313
- const renderToolCalls = (toolCalls: ToolCall[], allMessages: Message[], reason?: string) => {
314
- return (
315
- <Box flexDirection="column" marginTop={0}>
316
- {/* Show reason if present (LLM's explanation before tool calls) */}
317
- {reason && (
318
- <Box marginBottom={0}>
319
- <Text color="gray">{reason}</Text>
320
- </Box>
321
- )}
322
- {toolCalls.map((tc, tcIdx) => {
323
- const displayName = normalizeToolName(tc.function.name);
324
- const toolIcon = getToolIcon(tc.function.name);
325
- const argsDisplay = formatToolArgs(tc.function.name, tc.function.arguments);
326
- const isEditTool = ['edit_file', 'Edit'].includes(tc.function.name);
327
-
328
- // Find corresponding tool result
329
- const toolResult = allMessages.find(
330
- m => m.role === 'tool' && m.tool_call_id === tc.id
331
- );
332
- const resultSummary = toolResult
333
- ? formatToolResultSummary(tc.function.name, toolResult.content)
334
- : '';
335
-
336
- return (
337
- <Box key={tc.id || tcIdx} flexDirection="column" marginBottom={0}>
338
- {/* Tool call header: 📖 Read(src/file.ts) */}
339
- <Box>
340
- <Text>{toolIcon} </Text>
341
- <Text color="cyan" bold>{displayName}</Text>
342
- <Text color="gray">(</Text>
343
- <Text color="white">{argsDisplay}</Text>
344
- <Text color="gray">)</Text>
345
- </Box>
346
- {/* Result summary: ⎿ Read 80 lines */}
347
- {resultSummary && (
348
- <Box paddingLeft={2}>
349
- <Text color="gray">⎿ </Text>
350
- <Text color="gray" dimColor>{resultSummary}</Text>
351
- </Box>
352
- )}
353
- {/* Show diff for edit_file */}
354
- {isEditTool && toolResult && renderDiff(toolResult.content)}
355
- </Box>
356
- );
357
- })}
358
- </Box>
359
- );
360
- };
361
-
362
- // Render message content
363
- const renderContent = (content: string, role: string, timestamp?: Date) => {
364
- if (role === 'assistant' && shouldRenderMarkdown(content)) {
365
- return (
366
- <MarkdownRenderer
367
- content={content}
368
- showTimestamp={showTimestamps}
369
- timestamp={timestamp}
370
- />
371
- );
372
- }
373
-
374
- return (
375
- <Box flexDirection="column">
376
- {showTimestamps && timestamp && (
377
- <Text color="gray" dimColor>
378
- {timestamp.toLocaleTimeString('ko-KR')}
379
- </Text>
380
- )}
381
- <Text>{content}</Text>
382
- </Box>
383
- );
384
- };
385
-
386
- return (
387
- <Box flexDirection="column" flexGrow={1} paddingX={1} paddingY={1}>
388
- {/* Existing messages (filter out system and tool messages - they should not be visible to user) */}
389
- {messages.slice(-maxDisplayMessages)
390
- .filter((msg) => msg.role !== 'system' && msg.role !== 'tool')
391
- .map((msg, idx) => {
392
- const actualIdx = messages.length - maxDisplayMessages + idx;
393
- const style = getMessageStyle(msg.role);
394
- const isError = msg.role === 'error';
395
- const meta = messagesMeta.get(actualIdx >= 0 ? actualIdx : idx);
396
- const hasToolCalls = msg.role === 'assistant' && msg.tool_calls && msg.tool_calls.length > 0;
397
-
398
- return (
399
- <Box key={idx} marginBottom={1} flexDirection="column">
400
- {/* Message header with icon */}
401
- <Box>
402
- <Text color={isError ? 'red' : style.color}>
403
- {isError ? ROLE_ICONS.error : style.icon}{' '}
404
- </Text>
405
- {msg.role === 'user' ? (
406
- // User messages: simple text
407
- <Text color={style.color}>{msg.content}</Text>
408
- ) : hasToolCalls ? (
409
- // Assistant message with tool calls - show reasoning + tool calls
410
- <Box flexDirection="column" flexGrow={1}>
411
- {renderToolCalls(msg.tool_calls!, messages, msg.content || undefined)}
412
- </Box>
413
- ) : (
414
- // Assistant/other messages: potentially with markdown
415
- <Box flexDirection="column" flexGrow={1}>
416
- {/* Render content if exists */}
417
- {msg.content && renderContent(msg.content, msg.role, meta?.timestamp)}
418
- </Box>
419
- )}
420
- </Box>
421
- </Box>
422
- );
423
- })}
424
-
425
-
426
- {/* Current streaming response */}
427
- {currentResponse && (
428
- <Box flexDirection="column">
429
- <Box>
430
- <Text color="cyan">
431
- <Text>{ROLE_ICONS.assistant} </Text>
432
- </Text>
433
- </Box>
434
- <Box paddingLeft={2}>
435
- {shouldRenderMarkdown(currentResponse) ? (
436
- <MarkdownRenderer content={currentResponse} />
437
- ) : (
438
- <Text color="cyan">{currentResponse}</Text>
439
- )}
440
- </Box>
441
- </Box>
442
- )}
443
- </Box>
444
- );
445
- };
446
-
447
- export default ChatView;
@@ -1,5 +0,0 @@
1
- /**
2
- * Views barrel export
3
- */
4
-
5
- export { ChatView } from './ChatView.js';
@@ -1,139 +0,0 @@
1
- /**
2
- * Token Usage Context
3
- *
4
- * Tracks token usage across the application
5
- * Provides real-time token counting and statistics
6
- */
7
-
8
- import React, { createContext, useContext, useState, useCallback, useEffect } from 'react';
9
- import { logger } from '../../utils/logger.js';
10
-
11
- export interface TokenUsage {
12
- prompt_tokens: number;
13
- completion_tokens: number;
14
- total_tokens: number;
15
- }
16
-
17
- export interface TokenStats {
18
- // Current session totals
19
- sessionTotal: number;
20
- sessionPrompt: number;
21
- sessionCompletion: number;
22
-
23
- // Current request
24
- lastRequestTokens: number;
25
- lastResponseTokens: number;
26
-
27
- // Rate tracking
28
- tokensPerSecond: number;
29
- lastUpdateTime: number;
30
-
31
- // History for averaging
32
- recentRates: number[];
33
- }
34
-
35
- interface TokenContextValue {
36
- stats: TokenStats;
37
- addUsage: (usage: TokenUsage, durationMs?: number) => void;
38
- resetSession: () => void;
39
- }
40
-
41
- const initialStats: TokenStats = {
42
- sessionTotal: 0,
43
- sessionPrompt: 0,
44
- sessionCompletion: 0,
45
- lastRequestTokens: 0,
46
- lastResponseTokens: 0,
47
- tokensPerSecond: 0,
48
- lastUpdateTime: Date.now(),
49
- recentRates: [],
50
- };
51
-
52
- const TokenContext = createContext<TokenContextValue | null>(null);
53
-
54
- export const TokenProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
55
- const [stats, setStats] = useState<TokenStats>(initialStats);
56
-
57
- useEffect(() => {
58
- logger.debug('TokenProvider mounted');
59
- return () => {
60
- logger.debug('TokenProvider unmounted', { finalStats: stats });
61
- };
62
- }, []);
63
-
64
- const addUsage = useCallback((usage: TokenUsage, durationMs?: number) => {
65
- setStats(prev => {
66
- const newSessionTotal = prev.sessionTotal + usage.total_tokens;
67
- const newSessionPrompt = prev.sessionPrompt + usage.prompt_tokens;
68
- const newSessionCompletion = prev.sessionCompletion + usage.completion_tokens;
69
-
70
- // Calculate tokens per second
71
- let tokensPerSecond = prev.tokensPerSecond;
72
- const recentRates = [...prev.recentRates];
73
-
74
- if (durationMs && durationMs > 0) {
75
- const rate = (usage.completion_tokens / durationMs) * 1000;
76
- recentRates.push(rate);
77
- // Keep last 5 rates for averaging
78
- if (recentRates.length > 5) {
79
- recentRates.shift();
80
- }
81
- // Calculate average rate
82
- tokensPerSecond = recentRates.reduce((a, b) => a + b, 0) / recentRates.length;
83
- }
84
-
85
- logger.debug('Token usage updated', {
86
- added: usage.total_tokens,
87
- sessionTotal: newSessionTotal,
88
- tokensPerSecond: tokensPerSecond.toFixed(1),
89
- });
90
-
91
- return {
92
- sessionTotal: newSessionTotal,
93
- sessionPrompt: newSessionPrompt,
94
- sessionCompletion: newSessionCompletion,
95
- lastRequestTokens: usage.prompt_tokens,
96
- lastResponseTokens: usage.completion_tokens,
97
- tokensPerSecond,
98
- lastUpdateTime: Date.now(),
99
- recentRates,
100
- };
101
- });
102
- }, []);
103
-
104
- const resetSession = useCallback(() => {
105
- logger.debug('Token stats reset');
106
- setStats(initialStats);
107
- }, []);
108
-
109
- return (
110
- <TokenContext.Provider value={{ stats, addUsage, resetSession }}>
111
- {children}
112
- </TokenContext.Provider>
113
- );
114
- };
115
-
116
- export const useTokenStats = (): TokenContextValue => {
117
- const context = useContext(TokenContext);
118
- if (!context) {
119
- throw new Error('useTokenStats must be used within a TokenProvider');
120
- }
121
- return context;
122
- };
123
-
124
- /**
125
- * Format token count for display
126
- */
127
- export function formatTokenCount(tokens: number): string {
128
- if (tokens < 1000) return tokens.toString();
129
- if (tokens < 1000000) return `${(tokens / 1000).toFixed(1)}k`;
130
- return `${(tokens / 1000000).toFixed(2)}M`;
131
- }
132
-
133
- /**
134
- * Format tokens per second
135
- */
136
- export function formatTokenRate(rate: number): string {
137
- if (rate < 1) return `${(rate * 1000).toFixed(0)}ms/tok`;
138
- return `${rate.toFixed(1)} tok/s`;
139
- }