orquesta-cli 0.1.13 → 0.1.15

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