orquesta-cli 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +373 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts.map +0 -1
  60. package/dist/core/git-auto-updater.js.map +0 -1
  61. package/dist/core/llm/index.d.ts.map +0 -1
  62. package/dist/core/llm/index.js.map +0 -1
  63. package/dist/core/llm/llm-client.d.ts.map +0 -1
  64. package/dist/core/llm/llm-client.js.map +0 -1
  65. package/dist/core/session/index.d.ts.map +0 -1
  66. package/dist/core/session/index.js.map +0 -1
  67. package/dist/core/session/session-manager.d.ts.map +0 -1
  68. package/dist/core/session/session-manager.js.map +0 -1
  69. package/dist/core/slash-command-handler.d.ts.map +0 -1
  70. package/dist/core/slash-command-handler.js.map +0 -1
  71. package/dist/core/usage-tracker.d.ts.map +0 -1
  72. package/dist/core/usage-tracker.js.map +0 -1
  73. package/dist/errors/base.d.ts.map +0 -1
  74. package/dist/errors/base.js.map +0 -1
  75. package/dist/errors/file.d.ts.map +0 -1
  76. package/dist/errors/file.js.map +0 -1
  77. package/dist/errors/index.d.ts.map +0 -1
  78. package/dist/errors/index.js.map +0 -1
  79. package/dist/errors/llm.d.ts.map +0 -1
  80. package/dist/errors/llm.js.map +0 -1
  81. package/dist/errors/network.d.ts.map +0 -1
  82. package/dist/errors/network.js.map +0 -1
  83. package/dist/errors/validation.d.ts.map +0 -1
  84. package/dist/errors/validation.js.map +0 -1
  85. package/dist/eval/eval-runner.d.ts.map +0 -1
  86. package/dist/eval/eval-runner.js.map +0 -1
  87. package/dist/eval/index.d.ts.map +0 -1
  88. package/dist/eval/index.js.map +0 -1
  89. package/dist/eval/types.d.ts.map +0 -1
  90. package/dist/eval/types.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/orchestration/index.d.ts.map +0 -1
  94. package/dist/orchestration/index.js.map +0 -1
  95. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  96. package/dist/orchestration/plan-executor.js.map +0 -1
  97. package/dist/orchestration/types.d.ts.map +0 -1
  98. package/dist/orchestration/types.js.map +0 -1
  99. package/dist/orchestration/utils.d.ts.map +0 -1
  100. package/dist/orchestration/utils.js.map +0 -1
  101. package/dist/orquesta/connection.d.ts.map +0 -1
  102. package/dist/orquesta/connection.js.map +0 -1
  103. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  105. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search.js.map +0 -1
  107. package/dist/prompts/agents/planning.d.ts.map +0 -1
  108. package/dist/prompts/agents/planning.js.map +0 -1
  109. package/dist/prompts/index.d.ts.map +0 -1
  110. package/dist/prompts/index.js.map +0 -1
  111. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  113. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/git-rules.js.map +0 -1
  115. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/language-rules.js.map +0 -1
  117. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  118. package/dist/prompts/shared/tool-usage.js.map +0 -1
  119. package/dist/prompts/system/compact.d.ts.map +0 -1
  120. package/dist/prompts/system/compact.js.map +0 -1
  121. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  122. package/dist/prompts/system/plan-execute.js.map +0 -1
  123. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  124. package/dist/tools/browser/browser-client.js.map +0 -1
  125. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-tools.js.map +0 -1
  127. package/dist/tools/browser/index.d.ts.map +0 -1
  128. package/dist/tools/browser/index.js.map +0 -1
  129. package/dist/tools/index.d.ts.map +0 -1
  130. package/dist/tools/index.js.map +0 -1
  131. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  133. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/index.js.map +0 -1
  135. package/dist/tools/llm/index.d.ts.map +0 -1
  136. package/dist/tools/llm/index.js.map +0 -1
  137. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  139. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  149. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  151. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/index.js.map +0 -1
  153. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  155. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  157. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  159. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  161. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  163. package/dist/tools/office/common/constants.d.ts.map +0 -1
  164. package/dist/tools/office/common/constants.js.map +0 -1
  165. package/dist/tools/office/common/index.d.ts.map +0 -1
  166. package/dist/tools/office/common/index.js.map +0 -1
  167. package/dist/tools/office/common/types.d.ts.map +0 -1
  168. package/dist/tools/office/common/types.js.map +0 -1
  169. package/dist/tools/office/common/utils.d.ts.map +0 -1
  170. package/dist/tools/office/common/utils.js.map +0 -1
  171. package/dist/tools/office/excel-client.d.ts.map +0 -1
  172. package/dist/tools/office/excel-client.js.map +0 -1
  173. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  175. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  177. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  179. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  181. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/export.js.map +0 -1
  183. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  185. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/index.js.map +0 -1
  187. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  189. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/media.js.map +0 -1
  191. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  193. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  195. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  197. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  199. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  201. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools.js.map +0 -1
  203. package/dist/tools/office/index.d.ts.map +0 -1
  204. package/dist/tools/office/index.js.map +0 -1
  205. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  206. package/dist/tools/office/office-client-base.js.map +0 -1
  207. package/dist/tools/office/office-client.d.ts.map +0 -1
  208. package/dist/tools/office/office-client.js.map +0 -1
  209. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  210. package/dist/tools/office/powerpoint-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  235. package/dist/tools/office/word-client.d.ts.map +0 -1
  236. package/dist/tools/office/word-client.js.map +0 -1
  237. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  239. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/comments.js.map +0 -1
  241. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/content.js.map +0 -1
  243. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/export.js.map +0 -1
  245. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  247. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  249. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/index.js.map +0 -1
  251. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/launch.js.map +0 -1
  253. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/lists.js.map +0 -1
  255. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  257. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  259. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/tables.js.map +0 -1
  261. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/text.js.map +0 -1
  263. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  265. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  267. package/dist/tools/office/word-tools.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools.js.map +0 -1
  269. package/dist/tools/registry.d.ts.map +0 -1
  270. package/dist/tools/registry.js.map +0 -1
  271. package/dist/tools/types.d.ts.map +0 -1
  272. package/dist/tools/types.js.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/index.js.map +0 -1
  275. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  276. package/dist/ui/PlanExecuteView.js.map +0 -1
  277. package/dist/ui/TodoPanel.d.ts.map +0 -1
  278. package/dist/ui/TodoPanel.js.map +0 -1
  279. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  280. package/dist/ui/UpdateNotification.js.map +0 -1
  281. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  283. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  284. package/dist/ui/components/CommandBrowser.js.map +0 -1
  285. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  286. package/dist/ui/components/CustomTextInput.js.map +0 -1
  287. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  289. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  290. package/dist/ui/components/FileBrowser.js.map +0 -1
  291. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  293. package/dist/ui/components/Logo.d.ts.map +0 -1
  294. package/dist/ui/components/Logo.js.map +0 -1
  295. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  297. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  298. package/dist/ui/components/ModelSelector.js.map +0 -1
  299. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  301. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  302. package/dist/ui/components/ProgressBar.js.map +0 -1
  303. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  304. package/dist/ui/components/StatusBar.js.map +0 -1
  305. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  307. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  308. package/dist/ui/components/TodoListView.js.map +0 -1
  309. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  310. package/dist/ui/components/ToolSelector.js.map +0 -1
  311. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  313. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  317. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  319. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/index.js.map +0 -1
  321. package/dist/ui/components/index.d.ts.map +0 -1
  322. package/dist/ui/components/index.js.map +0 -1
  323. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  325. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  327. package/dist/ui/components/panels/index.d.ts.map +0 -1
  328. package/dist/ui/components/panels/index.js.map +0 -1
  329. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  330. package/dist/ui/components/views/ChatView.js.map +0 -1
  331. package/dist/ui/components/views/index.d.ts.map +0 -1
  332. package/dist/ui/components/views/index.js.map +0 -1
  333. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  334. package/dist/ui/contexts/TokenContext.js.map +0 -1
  335. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  337. package/dist/ui/hooks/index.d.ts.map +0 -1
  338. package/dist/ui/hooks/index.js.map +0 -1
  339. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  341. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  343. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileList.js.map +0 -1
  347. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  349. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js.map +0 -1
  353. package/dist/ui/ink-entry.d.ts.map +0 -1
  354. package/dist/ui/ink-entry.js.map +0 -1
  355. package/dist/utils/env-filter.d.ts.map +0 -1
  356. package/dist/utils/env-filter.js.map +0 -1
  357. package/dist/utils/file-system.d.ts.map +0 -1
  358. package/dist/utils/file-system.js.map +0 -1
  359. package/dist/utils/git-utils.d.ts.map +0 -1
  360. package/dist/utils/git-utils.js.map +0 -1
  361. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  362. package/dist/utils/json-stream-logger.js.map +0 -1
  363. package/dist/utils/logger.d.ts.map +0 -1
  364. package/dist/utils/logger.js.map +0 -1
  365. package/dist/utils/platform-utils.d.ts.map +0 -1
  366. package/dist/utils/platform-utils.js.map +0 -1
  367. package/dist/utils/wsl-utils.d.ts.map +0 -1
  368. package/dist/utils/wsl-utils.js.map +0 -1
  369. package/electron.vite.config.ts +0 -63
  370. package/google374b9eba0c52b043.html +0 -1
  371. package/src/agents/base/base-agent.ts +0 -159
  372. package/src/agents/docs-search/index.ts +0 -365
  373. package/src/agents/index.ts +0 -34
  374. package/src/agents/planner/index.ts +0 -544
  375. package/src/cli.ts +0 -201
  376. package/src/constants.ts +0 -47
  377. package/src/core/compact/compact-manager.ts +0 -160
  378. package/src/core/compact/compact-prompts.ts +0 -150
  379. package/src/core/compact/context-tracker.ts +0 -164
  380. package/src/core/compact/index.ts +0 -25
  381. package/src/core/config/config-manager.ts +0 -460
  382. package/src/core/config/index.ts +0 -5
  383. package/src/core/docs-manager.ts +0 -678
  384. package/src/core/llm/index.ts +0 -7
  385. package/src/core/llm/llm-client.ts +0 -1550
  386. package/src/core/session/index.ts +0 -5
  387. package/src/core/session/session-manager.ts +0 -464
  388. package/src/core/slash-command-handler.ts +0 -410
  389. package/src/core/usage-tracker.ts +0 -438
  390. package/src/errors/base.ts +0 -81
  391. package/src/errors/file.ts +0 -183
  392. package/src/errors/index.ts +0 -95
  393. package/src/errors/llm.ts +0 -151
  394. package/src/errors/network.ts +0 -124
  395. package/src/errors/validation.ts +0 -111
  396. package/src/eval/eval-runner.ts +0 -456
  397. package/src/eval/index.ts +0 -8
  398. package/src/eval/types.ts +0 -139
  399. package/src/index.ts +0 -22
  400. package/src/orchestration/index.ts +0 -30
  401. package/src/orchestration/plan-executor.ts +0 -652
  402. package/src/orchestration/types.ts +0 -127
  403. package/src/orchestration/utils.ts +0 -119
  404. package/src/orquesta/connection.ts +0 -291
  405. package/src/prompts/agents/docs-search-decision.ts +0 -74
  406. package/src/prompts/agents/docs-search.ts +0 -84
  407. package/src/prompts/agents/planning.ts +0 -143
  408. package/src/prompts/index.ts +0 -31
  409. package/src/prompts/shared/codebase-rules.ts +0 -29
  410. package/src/prompts/shared/git-rules.ts +0 -94
  411. package/src/prompts/shared/language-rules.ts +0 -36
  412. package/src/prompts/shared/tool-usage.ts +0 -72
  413. package/src/prompts/system/compact.ts +0 -80
  414. package/src/prompts/system/plan-execute.ts +0 -89
  415. package/src/tools/browser/browser-client.ts +0 -1363
  416. package/src/tools/browser/browser-tools.ts +0 -1139
  417. package/src/tools/browser/index.ts +0 -65
  418. package/src/tools/index.ts +0 -23
  419. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  420. package/src/tools/llm/agents/index.ts +0 -22
  421. package/src/tools/llm/index.ts +0 -11
  422. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  423. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  424. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  425. package/src/tools/llm/simple/bash-tool.ts +0 -238
  426. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  427. package/src/tools/llm/simple/file-tools.ts +0 -1051
  428. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  429. package/src/tools/llm/simple/index.ts +0 -42
  430. package/src/tools/llm/simple/planning-tools.ts +0 -143
  431. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  432. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  433. package/src/tools/llm/simple/todo-tools.ts +0 -207
  434. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  435. package/src/tools/office/common/constants.ts +0 -335
  436. package/src/tools/office/common/index.ts +0 -133
  437. package/src/tools/office/common/types.ts +0 -286
  438. package/src/tools/office/common/utils.ts +0 -116
  439. package/src/tools/office/excel-client.ts +0 -1336
  440. package/src/tools/office/excel-tools/cells.ts +0 -359
  441. package/src/tools/office/excel-tools/charts.ts +0 -166
  442. package/src/tools/office/excel-tools/comments.ts +0 -155
  443. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  444. package/src/tools/office/excel-tools/export.ts +0 -105
  445. package/src/tools/office/excel-tools/formatting.ts +0 -357
  446. package/src/tools/office/excel-tools/index.ts +0 -55
  447. package/src/tools/office/excel-tools/launch.ts +0 -303
  448. package/src/tools/office/excel-tools/media.ts +0 -117
  449. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  450. package/src/tools/office/excel-tools/protection.ts +0 -105
  451. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  452. package/src/tools/office/excel-tools/sheets.ts +0 -228
  453. package/src/tools/office/excel-tools/validation.ts +0 -226
  454. package/src/tools/office/excel-tools.ts +0 -9
  455. package/src/tools/office/index.ts +0 -259
  456. package/src/tools/office/office-client-base.ts +0 -242
  457. package/src/tools/office/office-client.ts +0 -377
  458. package/src/tools/office/powerpoint-client.ts +0 -1498
  459. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  460. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  461. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  462. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  463. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  464. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  465. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  466. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  467. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  468. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  469. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  470. package/src/tools/office/powerpoint-tools.ts +0 -9
  471. package/src/tools/office/word-client.ts +0 -1697
  472. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  473. package/src/tools/office/word-tools/comments.ts +0 -185
  474. package/src/tools/office/word-tools/content.ts +0 -229
  475. package/src/tools/office/word-tools/export.ts +0 -97
  476. package/src/tools/office/word-tools/formatting.ts +0 -161
  477. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  478. package/src/tools/office/word-tools/index.ts +0 -57
  479. package/src/tools/office/word-tools/launch.ts +0 -312
  480. package/src/tools/office/word-tools/lists.ts +0 -97
  481. package/src/tools/office/word-tools/navigation.ts +0 -114
  482. package/src/tools/office/word-tools/page-setup.ts +0 -195
  483. package/src/tools/office/word-tools/tables.ts +0 -262
  484. package/src/tools/office/word-tools/text.ts +0 -294
  485. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  486. package/src/tools/office/word-tools/watermarks.ts +0 -105
  487. package/src/tools/office/word-tools.ts +0 -9
  488. package/src/tools/registry.ts +0 -527
  489. package/src/tools/types.ts +0 -231
  490. package/src/types/index.ts +0 -181
  491. package/src/ui/PlanExecuteView.tsx +0 -119
  492. package/src/ui/TodoPanel.tsx +0 -240
  493. package/src/ui/UpdateNotification.tsx +0 -105
  494. package/src/ui/components/ActivityIndicator.tsx +0 -234
  495. package/src/ui/components/CommandBrowser.tsx +0 -114
  496. package/src/ui/components/CustomTextInput.tsx +0 -389
  497. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  498. package/src/ui/components/FileBrowser.tsx +0 -93
  499. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  500. package/src/ui/components/Logo.tsx +0 -125
  501. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  502. package/src/ui/components/ModelSelector.tsx +0 -203
  503. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  504. package/src/ui/components/ProgressBar.tsx +0 -51
  505. package/src/ui/components/StatusBar.tsx +0 -302
  506. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  507. package/src/ui/components/TodoListView.tsx +0 -140
  508. package/src/ui/components/ToolSelector.tsx +0 -215
  509. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  510. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  511. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  512. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  513. package/src/ui/components/dialogs/index.ts +0 -13
  514. package/src/ui/components/index.ts +0 -27
  515. package/src/ui/components/panels/LogPanel.tsx +0 -385
  516. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  517. package/src/ui/components/panels/index.ts +0 -13
  518. package/src/ui/components/views/ChatView.tsx +0 -447
  519. package/src/ui/components/views/index.ts +0 -5
  520. package/src/ui/contexts/TokenContext.tsx +0 -139
  521. package/src/ui/hooks/atFileProcessor.ts +0 -167
  522. package/src/ui/hooks/index.ts +0 -11
  523. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  524. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  525. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  526. package/src/ui/hooks/useFileList.ts +0 -132
  527. package/src/ui/hooks/useInputHistory.ts +0 -89
  528. package/src/ui/hooks/usePlanExecution.ts +0 -339
  529. package/src/ui/index.ts +0 -10
  530. package/src/ui/ink-entry.tsx +0 -36
  531. package/src/utils/env-filter.ts +0 -164
  532. package/src/utils/file-system.ts +0 -133
  533. package/src/utils/git-utils.ts +0 -30
  534. package/src/utils/json-stream-logger.ts +0 -1259
  535. package/src/utils/logger.ts +0 -2767
  536. package/src/utils/platform-utils.ts +0 -256
  537. package/src/utils/wsl-utils.ts +0 -113
  538. package/tsconfig.electron.json +0 -39
  539. package/tsconfig.json +0 -64
@@ -1,438 +0,0 @@
1
- /**
2
- * Usage Tracker
3
- *
4
- * Phase 3: Usage tracking functionality
5
- * - Track token usage (aggregated by session/task)
6
- * - Per-session/daily/monthly statistics
7
- * - Local file storage
8
- * - Real-time session token tracking
9
- */
10
-
11
- import * as fs from 'fs';
12
- import * as path from 'path';
13
- import { logger } from '../utils/logger.js';
14
- import { contextTracker } from './compact/context-tracker.js';
15
-
16
- /**
17
- * Single usage record
18
- */
19
- export interface UsageRecord {
20
- timestamp: string;
21
- model: string;
22
- inputTokens: number;
23
- outputTokens: number;
24
- totalTokens: number;
25
- sessionId?: string;
26
- }
27
-
28
- /**
29
- * Daily usage aggregation
30
- */
31
- export interface DailyUsage {
32
- date: string;
33
- totalInputTokens: number;
34
- totalOutputTokens: number;
35
- totalTokens: number;
36
- requestCount: number;
37
- models: Record<string, number>;
38
- }
39
-
40
- /**
41
- * Total usage data
42
- */
43
- export interface UsageData {
44
- records: UsageRecord[];
45
- dailyStats: Record<string, DailyUsage>;
46
- totalInputTokens: number;
47
- totalOutputTokens: number;
48
- totalTokens: number;
49
- totalRequests: number;
50
- lastUpdated: string;
51
- }
52
-
53
- /**
54
- * Usage summary
55
- */
56
- export interface UsageSummary {
57
- today: DailyUsage | null;
58
- thisMonth: {
59
- totalTokens: number;
60
- totalRequests: number;
61
- days: number;
62
- };
63
- allTime: {
64
- totalInputTokens: number;
65
- totalOutputTokens: number;
66
- totalTokens: number;
67
- totalRequests: number;
68
- firstUsed: string | null;
69
- };
70
- }
71
-
72
- /**
73
- * Current session/task usage (for real-time aggregation)
74
- */
75
- export interface SessionUsage {
76
- inputTokens: number;
77
- outputTokens: number;
78
- totalTokens: number;
79
- requestCount: number;
80
- startTime: number;
81
- models: Record<string, number>;
82
- /** Last prompt_tokens for context usage tracking */
83
- lastPromptTokens: number;
84
- }
85
-
86
- const DATA_DIR = path.join(process.env['HOME'] || '.', '.local-cli');
87
- const USAGE_FILE = path.join(DATA_DIR, 'usage.json');
88
-
89
- /**
90
- * Usage Tracker Class
91
- */
92
- class UsageTrackerClass {
93
- private data: UsageData;
94
- private saveTimeout: ReturnType<typeof setTimeout> | null = null;
95
-
96
- // Current session usage (aggregate multiple LLM calls)
97
- private currentSession: SessionUsage = {
98
- inputTokens: 0,
99
- outputTokens: 0,
100
- totalTokens: 0,
101
- requestCount: 0,
102
- startTime: Date.now(),
103
- models: {},
104
- lastPromptTokens: 0,
105
- };
106
-
107
- constructor() {
108
- logger.enter('UsageTracker.constructor');
109
- this.data = this.loadData();
110
- logger.exit('UsageTracker.constructor');
111
- }
112
-
113
- /**
114
- * Load usage data from file
115
- */
116
- private loadData(): UsageData {
117
- logger.enter('UsageTracker.loadData');
118
-
119
- try {
120
- if (fs.existsSync(USAGE_FILE)) {
121
- const content = fs.readFileSync(USAGE_FILE, 'utf-8');
122
- const data = JSON.parse(content) as UsageData;
123
- logger.vars({ name: 'recordCount', value: data.records.length });
124
- logger.exit('UsageTracker.loadData', { loaded: true });
125
- return data;
126
- }
127
- } catch (error) {
128
- logger.warn('Failed to load usage data, starting fresh', error);
129
- }
130
-
131
- const emptyData: UsageData = {
132
- records: [],
133
- dailyStats: {},
134
- totalInputTokens: 0,
135
- totalOutputTokens: 0,
136
- totalTokens: 0,
137
- totalRequests: 0,
138
- lastUpdated: new Date().toISOString(),
139
- };
140
-
141
- logger.exit('UsageTracker.loadData', { loaded: false });
142
- return emptyData;
143
- }
144
-
145
- /**
146
- * Save usage data to file (debounced)
147
- */
148
- private saveData(): void {
149
- if (this.saveTimeout) {
150
- clearTimeout(this.saveTimeout);
151
- }
152
-
153
- this.saveTimeout = setTimeout(() => {
154
- logger.flow('Saving usage data');
155
- try {
156
- if (!fs.existsSync(DATA_DIR)) {
157
- fs.mkdirSync(DATA_DIR, { recursive: true });
158
- }
159
- this.data.lastUpdated = new Date().toISOString();
160
- fs.writeFileSync(USAGE_FILE, JSON.stringify(this.data, null, 2));
161
- } catch (error) {
162
- logger.error('Failed to save usage data', error as Error);
163
- }
164
- }, 1000);
165
- }
166
-
167
- /**
168
- * Record token usage (per individual LLM call)
169
- * - Update current session usage
170
- * - Update overall statistics
171
- * @param promptTokens - Optional: last prompt_tokens for context tracking
172
- */
173
- recordUsage(
174
- model: string,
175
- inputTokens: number,
176
- outputTokens: number,
177
- sessionId?: string,
178
- promptTokens?: number
179
- ): void {
180
- logger.enter('UsageTracker.recordUsage', { model, inputTokens, outputTokens });
181
-
182
- const timestamp = new Date().toISOString();
183
- const date = timestamp.split('T')[0] || timestamp;
184
- const totalTokens = inputTokens + outputTokens;
185
-
186
- // Update current session usage (real-time aggregation)
187
- this.currentSession.inputTokens += inputTokens;
188
- this.currentSession.outputTokens += outputTokens;
189
- this.currentSession.totalTokens += totalTokens;
190
- this.currentSession.requestCount += 1;
191
- this.currentSession.models[model] = (this.currentSession.models[model] || 0) + totalTokens;
192
-
193
- // Update lastPromptTokens for context tracking
194
- if (promptTokens !== undefined) {
195
- this.currentSession.lastPromptTokens = promptTokens;
196
- // Also update contextTracker for auto-compact detection
197
- contextTracker.updateUsage(promptTokens);
198
- }
199
-
200
- // Add record
201
- const record: UsageRecord = {
202
- timestamp,
203
- model,
204
- inputTokens,
205
- outputTokens,
206
- totalTokens,
207
- sessionId,
208
- };
209
- this.data.records.push(record);
210
-
211
- // Update totals
212
- this.data.totalInputTokens += inputTokens;
213
- this.data.totalOutputTokens += outputTokens;
214
- this.data.totalTokens += totalTokens;
215
- this.data.totalRequests += 1;
216
-
217
- // Update daily stats
218
- if (!this.data.dailyStats[date]) {
219
- this.data.dailyStats[date] = {
220
- date,
221
- totalInputTokens: 0,
222
- totalOutputTokens: 0,
223
- totalTokens: 0,
224
- requestCount: 0,
225
- models: {},
226
- };
227
- }
228
-
229
- const daily = this.data.dailyStats[date]!;
230
- daily.totalInputTokens += inputTokens;
231
- daily.totalOutputTokens += outputTokens;
232
- daily.totalTokens += totalTokens;
233
- daily.requestCount += 1;
234
- daily.models[model] = (daily.models[model] || 0) + totalTokens;
235
-
236
- // Keep only last 30 days of detailed records
237
- const thirtyDaysAgo = new Date();
238
- thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
239
- this.data.records = this.data.records.filter(
240
- r => new Date(r.timestamp) > thirtyDaysAgo
241
- );
242
-
243
- this.saveData();
244
- logger.exit('UsageTracker.recordUsage');
245
- }
246
-
247
- /**
248
- * Get usage summary
249
- */
250
- getSummary(): UsageSummary {
251
- logger.enter('UsageTracker.getSummary');
252
-
253
- const today = new Date().toISOString().split('T')[0] || '';
254
- const todayStats = this.data.dailyStats[today] || null;
255
-
256
- // This month stats
257
- const currentMonth = today.substring(0, 7); // YYYY-MM
258
- let monthTokens = 0;
259
- let monthRequests = 0;
260
- let monthDays = 0;
261
-
262
- for (const [date, stats] of Object.entries(this.data.dailyStats)) {
263
- if (date.startsWith(currentMonth)) {
264
- monthTokens += stats.totalTokens;
265
- monthRequests += stats.requestCount;
266
- monthDays += 1;
267
- }
268
- }
269
-
270
- // First usage date
271
- const firstRecord = this.data.records[0];
272
- const firstUsed = firstRecord ? firstRecord.timestamp.split('T')[0] || null : null;
273
-
274
- const summary: UsageSummary = {
275
- today: todayStats,
276
- thisMonth: {
277
- totalTokens: monthTokens,
278
- totalRequests: monthRequests,
279
- days: monthDays,
280
- },
281
- allTime: {
282
- totalInputTokens: this.data.totalInputTokens,
283
- totalOutputTokens: this.data.totalOutputTokens,
284
- totalTokens: this.data.totalTokens,
285
- totalRequests: this.data.totalRequests,
286
- firstUsed,
287
- },
288
- };
289
-
290
- logger.exit('UsageTracker.getSummary');
291
- return summary;
292
- }
293
-
294
- /**
295
- * Get today's usage
296
- */
297
- getTodayUsage(): DailyUsage | null {
298
- const today = new Date().toISOString().split('T')[0] || '';
299
- return this.data.dailyStats[today] || null;
300
- }
301
-
302
- /**
303
- * Get total tokens used
304
- */
305
- getTotalTokens(): number {
306
- return this.data.totalTokens;
307
- }
308
-
309
- /**
310
- * Get current session usage (real-time aggregated value)
311
- */
312
- getSessionUsage(): SessionUsage {
313
- return { ...this.currentSession };
314
- }
315
-
316
- /**
317
- * Get session elapsed time in seconds
318
- */
319
- getSessionElapsedSeconds(): number {
320
- return Math.floor((Date.now() - this.currentSession.startTime) / 1000);
321
- }
322
-
323
- /**
324
- * Reset session usage (call when starting new task)
325
- */
326
- resetSession(): void {
327
- logger.flow('Resetting session usage');
328
- this.currentSession = {
329
- inputTokens: 0,
330
- outputTokens: 0,
331
- totalTokens: 0,
332
- requestCount: 0,
333
- startTime: Date.now(),
334
- models: {},
335
- lastPromptTokens: 0,
336
- };
337
- }
338
-
339
- /**
340
- * Format session usage for status bar display
341
- * Claude Code style: "✶ ~ doing… (esc to interrupt · 2m 7s · ↑ 3.6k tokens)"
342
- */
343
- formatSessionStatus(currentActivity?: string): string {
344
- const elapsed = this.getSessionElapsedSeconds();
345
- const tokens = this.currentSession.totalTokens;
346
-
347
- // Format time
348
- let timeStr: string;
349
- if (elapsed < 60) {
350
- timeStr = `${elapsed}s`;
351
- } else {
352
- const mins = Math.floor(elapsed / 60);
353
- const secs = elapsed % 60;
354
- timeStr = `${mins}m ${secs}s`;
355
- }
356
-
357
- // Format tokens
358
- let tokenStr: string;
359
- if (tokens < 1000) {
360
- tokenStr = tokens.toString();
361
- } else if (tokens < 1000000) {
362
- tokenStr = `${(tokens / 1000).toFixed(1)}k`;
363
- } else {
364
- tokenStr = `${(tokens / 1000000).toFixed(2)}M`;
365
- }
366
-
367
- // Build status string
368
- const activity = currentActivity || 'Processing';
369
- return `✶ ${activity}… (esc to interrupt · ${timeStr} · ↑ ${tokenStr} tokens)`;
370
- }
371
-
372
- /**
373
- * Format usage for display
374
- */
375
- formatUsageDisplay(): string {
376
- logger.enter('UsageTracker.formatUsageDisplay');
377
-
378
- const summary = this.getSummary();
379
- const lines: string[] = [];
380
-
381
- lines.push('📊 Usage Statistics');
382
- lines.push('');
383
-
384
- // Today
385
- lines.push('📅 Today');
386
- if (summary.today) {
387
- lines.push(` Requests: ${summary.today.requestCount}`);
388
- lines.push(` Input tokens: ${summary.today.totalInputTokens.toLocaleString()}`);
389
- lines.push(` Output tokens: ${summary.today.totalOutputTokens.toLocaleString()}`);
390
- lines.push(` Total tokens: ${summary.today.totalTokens.toLocaleString()}`);
391
- } else {
392
- lines.push(' No usage records');
393
- }
394
- lines.push('');
395
-
396
- // This month
397
- lines.push('📆 This Month');
398
- lines.push(` Requests: ${summary.thisMonth.totalRequests.toLocaleString()}`);
399
- lines.push(` Total tokens: ${summary.thisMonth.totalTokens.toLocaleString()}`);
400
- lines.push(` Active days: ${summary.thisMonth.days}`);
401
- lines.push('');
402
-
403
- // All time
404
- lines.push('📈 All Time');
405
- lines.push(` Total requests: ${summary.allTime.totalRequests.toLocaleString()}`);
406
- lines.push(` Input tokens: ${summary.allTime.totalInputTokens.toLocaleString()}`);
407
- lines.push(` Output tokens: ${summary.allTime.totalOutputTokens.toLocaleString()}`);
408
- lines.push(` Total tokens: ${summary.allTime.totalTokens.toLocaleString()}`);
409
- if (summary.allTime.firstUsed) {
410
- lines.push(` First used: ${summary.allTime.firstUsed}`);
411
- }
412
-
413
- logger.exit('UsageTracker.formatUsageDisplay');
414
- return lines.join('\n');
415
- }
416
-
417
- /**
418
- * Clear all usage data
419
- */
420
- clearData(): void {
421
- logger.flow('Clearing all usage data');
422
- this.data = {
423
- records: [],
424
- dailyStats: {},
425
- totalInputTokens: 0,
426
- totalOutputTokens: 0,
427
- totalTokens: 0,
428
- totalRequests: 0,
429
- lastUpdated: new Date().toISOString(),
430
- };
431
- this.saveData();
432
- }
433
- }
434
-
435
- // Singleton instance
436
- export const usageTracker = new UsageTrackerClass();
437
-
438
- export default usageTracker;
@@ -1,81 +0,0 @@
1
- /**
2
- * Base Error Class
3
- *
4
- * Base class for all custom errors
5
- */
6
-
7
- export interface ErrorDetails {
8
- [key: string]: unknown;
9
- }
10
-
11
- export interface ErrorOptions {
12
- cause?: Error;
13
- details?: ErrorDetails;
14
- isRecoverable?: boolean;
15
- userMessage?: string;
16
- }
17
-
18
- /**
19
- * BaseError - Base class for all custom errors
20
- */
21
- export class BaseError extends Error {
22
- public readonly code: string;
23
- public override readonly cause?: Error;
24
- public readonly details?: ErrorDetails;
25
- public readonly isRecoverable: boolean;
26
- public readonly userMessage: string;
27
- public readonly timestamp: Date;
28
-
29
- constructor(
30
- message: string,
31
- code: string,
32
- options: ErrorOptions = {}
33
- ) {
34
- super(message);
35
- this.name = this.constructor.name;
36
- Object.setPrototypeOf(this, new.target.prototype);
37
- this.code = code;
38
- this.cause = options.cause;
39
- this.details = options.details;
40
- this.isRecoverable = options.isRecoverable ?? false;
41
- this.userMessage = options.userMessage ?? message;
42
- this.timestamp = new Date();
43
-
44
- // Capture stack trace
45
- Error.captureStackTrace(this, this.constructor);
46
- }
47
-
48
- /**
49
- * Convert error information to JSON
50
- */
51
- toJSON(): Record<string, unknown> {
52
- return {
53
- name: this.name,
54
- code: this.code,
55
- message: this.message,
56
- userMessage: this.userMessage,
57
- isRecoverable: this.isRecoverable,
58
- details: this.details,
59
- timestamp: this.timestamp,
60
- stack: this.stack,
61
- cause: this.cause ? {
62
- name: this.cause.name,
63
- message: this.cause.message,
64
- } : undefined,
65
- };
66
- }
67
-
68
- /**
69
- * Get message to display to user
70
- */
71
- getUserMessage(): string {
72
- return this.userMessage;
73
- }
74
-
75
- /**
76
- * Check if error is recoverable
77
- */
78
- canRecover(): boolean {
79
- return this.isRecoverable;
80
- }
81
- }
@@ -1,183 +0,0 @@
1
- /**
2
- * File System Error Classes
3
- *
4
- * File system-related errors
5
- */
6
-
7
- import { BaseError, ErrorOptions } from './base.js';
8
-
9
- /**
10
- * FileSystemError - General file system error
11
- */
12
- export class FileSystemError extends BaseError {
13
- public readonly path?: string;
14
-
15
- constructor(message: string, path?: string, options: ErrorOptions = {}) {
16
- super(
17
- message,
18
- 'FILE_SYSTEM_ERROR',
19
- {
20
- ...options,
21
- details: {
22
- ...options.details,
23
- path,
24
- },
25
- isRecoverable: options.isRecoverable ?? false,
26
- userMessage: options.userMessage ?? `File system error occurred${path ? ` (path: ${path})` : ''}.`,
27
- }
28
- );
29
- this.path = path;
30
- }
31
- }
32
-
33
- /**
34
- * FileNotFoundError - File not found error
35
- */
36
- export class FileNotFoundError extends BaseError {
37
- public readonly path: string;
38
-
39
- constructor(path: string, options: ErrorOptions = {}) {
40
- super(
41
- `File not found: ${path}`,
42
- 'FILE_NOT_FOUND',
43
- {
44
- ...options,
45
- details: {
46
- ...options.details,
47
- path,
48
- },
49
- isRecoverable: false,
50
- userMessage: options.userMessage ?? `File not found: ${path}`,
51
- }
52
- );
53
- this.path = path;
54
- }
55
- }
56
-
57
- /**
58
- * DirectoryNotFoundError - Directory not found error
59
- */
60
- export class DirectoryNotFoundError extends BaseError {
61
- public readonly path: string;
62
-
63
- constructor(path: string, options: ErrorOptions = {}) {
64
- super(
65
- `Directory not found: ${path}`,
66
- 'DIRECTORY_NOT_FOUND',
67
- {
68
- ...options,
69
- details: {
70
- ...options.details,
71
- path,
72
- },
73
- isRecoverable: false,
74
- userMessage: options.userMessage ?? `Directory not found: ${path}`,
75
- }
76
- );
77
- this.path = path;
78
- }
79
- }
80
-
81
- /**
82
- * PermissionError - Permission error
83
- */
84
- export class PermissionError extends BaseError {
85
- public readonly path?: string;
86
- public readonly operation?: string;
87
-
88
- constructor(
89
- message: string,
90
- path?: string,
91
- operation?: string,
92
- options: ErrorOptions = {}
93
- ) {
94
- super(
95
- message,
96
- 'PERMISSION_ERROR',
97
- {
98
- ...options,
99
- details: {
100
- ...options.details,
101
- path,
102
- operation,
103
- },
104
- isRecoverable: false,
105
- userMessage: options.userMessage ?? `Permission denied${path ? `: ${path}` : ''}${operation ? ` (operation: ${operation})` : ''}.`,
106
- }
107
- );
108
- this.path = path;
109
- this.operation = operation;
110
- }
111
- }
112
-
113
- /**
114
- * FileReadError - File read error
115
- */
116
- export class FileReadError extends BaseError {
117
- public readonly path: string;
118
-
119
- constructor(path: string, options: ErrorOptions = {}) {
120
- super(
121
- `Failed to read file: ${path}`,
122
- 'FILE_READ_ERROR',
123
- {
124
- ...options,
125
- details: {
126
- ...options.details,
127
- path,
128
- },
129
- isRecoverable: false,
130
- userMessage: options.userMessage ?? `Failed to read file: ${path}`,
131
- }
132
- );
133
- this.path = path;
134
- }
135
- }
136
-
137
- /**
138
- * FileWriteError - File write error
139
- */
140
- export class FileWriteError extends BaseError {
141
- public readonly path: string;
142
-
143
- constructor(path: string, options: ErrorOptions = {}) {
144
- super(
145
- `Failed to write file: ${path}`,
146
- 'FILE_WRITE_ERROR',
147
- {
148
- ...options,
149
- details: {
150
- ...options.details,
151
- path,
152
- },
153
- isRecoverable: true,
154
- userMessage: options.userMessage ?? `Failed to write file: ${path}. Please check disk space.`,
155
- }
156
- );
157
- this.path = path;
158
- }
159
- }
160
-
161
- /**
162
- * InvalidPathError - Invalid path error
163
- */
164
- export class InvalidPathError extends BaseError {
165
- public readonly path: string;
166
-
167
- constructor(path: string, options: ErrorOptions = {}) {
168
- super(
169
- `Invalid path: ${path}`,
170
- 'INVALID_PATH_ERROR',
171
- {
172
- ...options,
173
- details: {
174
- ...options.details,
175
- path,
176
- },
177
- isRecoverable: true,
178
- userMessage: options.userMessage ?? `Invalid path: ${path}`,
179
- }
180
- );
181
- this.path = path;
182
- }
183
- }