orquesta-cli 0.1.12 → 0.1.14

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