@windagency/valora 2.2.1 → 2.3.0

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 (322) hide show
  1. package/README.md +45 -19
  2. package/data/agents/secops-engineer.md +74 -7
  3. package/data/commands/_meta/schema.json +3 -1
  4. package/data/commands/assert.md +1 -1
  5. package/data/commands/generate-all-documentation.md +1 -1
  6. package/data/commands/generate-docs.md +1 -1
  7. package/data/commands/plan-architecture.md +1 -1
  8. package/data/commands/plan-implementation.md +1 -1
  9. package/data/commands/plan.md +1 -1
  10. package/data/commands/refine-task.md +1 -1
  11. package/data/commands/registry.json +11 -11
  12. package/data/commands/review-code.md +1 -1
  13. package/data/commands/review-functional.md +1 -1
  14. package/data/prompts/01_onboard/analyze-patterns.md +1 -0
  15. package/data/prompts/01_onboard/collect-clarifications.md +1 -0
  16. package/data/prompts/01_onboard/map-dependencies.md +1 -0
  17. package/data/prompts/02_context/analyze-change-scope.md +1 -0
  18. package/data/prompts/02_context/analyze-changes-for-review.md +1 -0
  19. package/data/prompts/02_context/analyze-codebase-changes.md +1 -0
  20. package/data/prompts/02_context/analyze-command-execution.md +1 -0
  21. package/data/prompts/02_context/analyze-commits-for-pr.md +1 -0
  22. package/data/prompts/02_context/analyze-functional-scope.md +1 -0
  23. package/data/prompts/02_context/analyze-git-branch.md +1 -0
  24. package/data/prompts/02_context/analyze-git-status.md +1 -0
  25. package/data/prompts/02_context/analyze-task-context.md +1 -0
  26. package/data/prompts/02_context/extract-ticket-info.md +1 -0
  27. package/data/prompts/02_context/extract-ticket-references.md +1 -0
  28. package/data/prompts/02_context/gather-git-metrics.md +1 -0
  29. package/data/prompts/02_context/identify-completed-workflow.md +1 -0
  30. package/data/prompts/02_context/load-and-analyze-parallel.md +1 -0
  31. package/data/prompts/02_context/load-commit-template.md +1 -0
  32. package/data/prompts/02_context/load-implementation-context.md +1 -0
  33. package/data/prompts/02_context/load-plan-context.md +1 -0
  34. package/data/prompts/02_context/load-pr-template.md +1 -0
  35. package/data/prompts/02_context/scan-codebase.md +1 -0
  36. package/data/prompts/02_context/use-modern-cli-tools.md +1 -0
  37. package/data/prompts/03_plan/assess-complexity.md +1 -0
  38. package/data/prompts/03_plan/assess-risks.md +1 -0
  39. package/data/prompts/03_plan/breakdown-implementation.md +1 -0
  40. package/data/prompts/03_plan/define-architecture.md +1 -0
  41. package/data/prompts/03_plan/identify-dependencies.md +1 -0
  42. package/data/prompts/04_code/calculate-version-bump.md +1 -0
  43. package/data/prompts/04_code/create-version-tag.md +1 -0
  44. package/data/prompts/04_code/determine-commit-strategy.md +1 -0
  45. package/data/prompts/04_code/determine-labels.md +1 -0
  46. package/data/prompts/04_code/determine-reviewers.md +1 -0
  47. package/data/prompts/04_code/generate-commit-messages.md +1 -0
  48. package/data/prompts/04_code/generate-pr-description.md +1 -0
  49. package/data/prompts/04_code/generate-pr-title.md +1 -0
  50. package/data/prompts/04_code/implement-changes.md +1 -0
  51. package/data/prompts/04_code/implement-tests.md +1 -0
  52. package/data/prompts/04_code/interactive-review.md +1 -0
  53. package/data/prompts/04_code/push-and-create-pr.md +1 -0
  54. package/data/prompts/04_code/stage-and-commit.md +1 -0
  55. package/data/prompts/04_code/validate-prerequisites.md +1 -0
  56. package/data/prompts/04_code/verify-implementation.md +1 -0
  57. package/data/prompts/05_review/assess-code-quality.md +1 -0
  58. package/data/prompts/05_review/assess-constraints.md +1 -0
  59. package/data/prompts/05_review/evaluate-quality-outcomes.md +1 -0
  60. package/data/prompts/05_review/generate-commit-insights.md +1 -0
  61. package/data/prompts/05_review/identify-improvement-areas.md +1 -0
  62. package/data/prompts/05_review/synthesize-plan-assessment.md +1 -0
  63. package/data/prompts/05_review/synthesize-validation-report.md +1 -0
  64. package/data/prompts/05_review/validate-functional-requirements.md +1 -0
  65. package/data/prompts/05_review/validate-maintainability.md +1 -0
  66. package/data/prompts/05_review/validate-performance.md +1 -0
  67. package/data/prompts/05_review/validate-pr-creation.md +1 -0
  68. package/data/prompts/05_review/validate-pr-readiness.md +1 -0
  69. package/data/prompts/05_review/validate-risk-coverage.md +1 -0
  70. package/data/prompts/05_review/validate-step-quality.md +1 -0
  71. package/data/prompts/05_review/validate-technical-feasibility.md +1 -0
  72. package/data/prompts/05_review/validate-test-strategy.md +1 -0
  73. package/data/prompts/05_review/verify-commits.md +1 -0
  74. package/data/prompts/06_test/analyze-results.md +1 -0
  75. package/data/prompts/06_test/analyze-test-infrastructure.md +1 -0
  76. package/data/prompts/06_test/execute-tests.md +1 -0
  77. package/data/prompts/07_documentation/generate-all-domains-parallel.md +1 -0
  78. package/data/prompts/07_documentation/generate-code-review-report.md +1 -0
  79. package/data/prompts/07_documentation/generate-feedback-report.md +1 -0
  80. package/data/prompts/07_documentation/generate-feedback-summary.md +1 -0
  81. package/data/prompts/07_documentation/generate-functional-review-report.md +1 -0
  82. package/data/prompts/07_documentation/generate-prd.md +1 -0
  83. package/data/prompts/07_documentation/review-and-persist-parallel.md +1 -0
  84. package/data/prompts/07_documentation/update-changelog.md +1 -0
  85. package/data/prompts/07_documentation/update-inline-docs.md +1 -0
  86. package/data/prompts/07_documentation/update-knowledge-base.md +1 -0
  87. package/data/prompts/_meta/schema.json +4 -0
  88. package/data/prompts/registry.json +72 -72
  89. package/dist/ast/ast-context.service.d.ts +32 -0
  90. package/dist/ast/ast-context.service.d.ts.map +1 -0
  91. package/dist/ast/ast-context.service.js +220 -0
  92. package/dist/ast/ast-context.service.js.map +1 -0
  93. package/dist/ast/ast-index-watcher.service.d.ts +40 -0
  94. package/dist/ast/ast-index-watcher.service.d.ts.map +1 -0
  95. package/dist/ast/ast-index-watcher.service.js +124 -0
  96. package/dist/ast/ast-index-watcher.service.js.map +1 -0
  97. package/dist/ast/ast-index.service.d.ts +111 -0
  98. package/dist/ast/ast-index.service.d.ts.map +1 -0
  99. package/dist/ast/ast-index.service.js +437 -0
  100. package/dist/ast/ast-index.service.js.map +1 -0
  101. package/dist/ast/ast-parser.service.d.ts +31 -0
  102. package/dist/ast/ast-parser.service.d.ts.map +1 -0
  103. package/dist/ast/ast-parser.service.js +524 -0
  104. package/dist/ast/ast-parser.service.js.map +1 -0
  105. package/dist/ast/ast-query.service.d.ts +34 -0
  106. package/dist/ast/ast-query.service.d.ts.map +1 -0
  107. package/dist/ast/ast-query.service.js +203 -0
  108. package/dist/ast/ast-query.service.js.map +1 -0
  109. package/dist/ast/ast-tools.service.d.ts +39 -0
  110. package/dist/ast/ast-tools.service.d.ts.map +1 -0
  111. package/dist/ast/ast-tools.service.js +187 -0
  112. package/dist/ast/ast-tools.service.js.map +1 -0
  113. package/dist/ast/ast.types.d.ts +195 -0
  114. package/dist/ast/ast.types.d.ts.map +1 -0
  115. package/dist/ast/ast.types.js +8 -0
  116. package/dist/ast/ast.types.js.map +1 -0
  117. package/dist/ast/grammars/grammar-loader.d.ts +23 -0
  118. package/dist/ast/grammars/grammar-loader.d.ts.map +1 -0
  119. package/dist/ast/grammars/grammar-loader.js +28 -0
  120. package/dist/ast/grammars/grammar-loader.js.map +1 -0
  121. package/dist/ast/grammars/language-map.d.ts +28 -0
  122. package/dist/ast/grammars/language-map.d.ts.map +1 -0
  123. package/dist/ast/grammars/language-map.js +65 -0
  124. package/dist/ast/grammars/language-map.js.map +1 -0
  125. package/dist/ast/grammars/tree-sitter-adapter.d.ts +39 -0
  126. package/dist/ast/grammars/tree-sitter-adapter.d.ts.map +1 -0
  127. package/dist/ast/grammars/tree-sitter-adapter.interface.d.ts +84 -0
  128. package/dist/ast/grammars/tree-sitter-adapter.interface.d.ts.map +1 -0
  129. package/dist/ast/grammars/tree-sitter-adapter.interface.js +48 -0
  130. package/dist/ast/grammars/tree-sitter-adapter.interface.js.map +1 -0
  131. package/dist/ast/grammars/tree-sitter-adapter.js +91 -0
  132. package/dist/ast/grammars/tree-sitter-adapter.js.map +1 -0
  133. package/dist/cli/autocomplete.d.ts.map +1 -1
  134. package/dist/cli/autocomplete.js +6 -6
  135. package/dist/cli/autocomplete.js.map +1 -1
  136. package/dist/cli/command-executor.d.ts +10 -0
  137. package/dist/cli/command-executor.d.ts.map +1 -1
  138. package/dist/cli/command-executor.js +85 -11
  139. package/dist/cli/command-executor.js.map +1 -1
  140. package/dist/cli/command-wizard.d.ts.map +1 -1
  141. package/dist/cli/command-wizard.js +8 -2
  142. package/dist/cli/command-wizard.js.map +1 -1
  143. package/dist/cli/commands/config.d.ts.map +1 -1
  144. package/dist/cli/commands/config.js +5 -2
  145. package/dist/cli/commands/config.js.map +1 -1
  146. package/dist/cli/first-run-setup.d.ts.map +1 -1
  147. package/dist/cli/first-run-setup.js +3 -1
  148. package/dist/cli/first-run-setup.js.map +1 -1
  149. package/dist/cli/provider-resolver.d.ts.map +1 -1
  150. package/dist/cli/provider-resolver.js +11 -0
  151. package/dist/cli/provider-resolver.js.map +1 -1
  152. package/dist/config/constants.d.ts +18 -0
  153. package/dist/config/constants.d.ts.map +1 -1
  154. package/dist/config/constants.js +18 -0
  155. package/dist/config/constants.js.map +1 -1
  156. package/dist/config/interactive-wizard.d.ts +7 -0
  157. package/dist/config/interactive-wizard.d.ts.map +1 -1
  158. package/dist/config/interactive-wizard.js +24 -19
  159. package/dist/config/interactive-wizard.js.map +1 -1
  160. package/dist/config/loader.d.ts +5 -0
  161. package/dist/config/loader.d.ts.map +1 -1
  162. package/dist/config/loader.js +24 -0
  163. package/dist/config/loader.js.map +1 -1
  164. package/dist/config/providers.config.d.ts.map +1 -1
  165. package/dist/config/providers.config.js +17 -1
  166. package/dist/config/providers.config.js.map +1 -1
  167. package/dist/config/schema.d.ts +194 -6
  168. package/dist/config/schema.d.ts.map +1 -1
  169. package/dist/config/schema.js +1 -0
  170. package/dist/config/schema.js.map +1 -1
  171. package/dist/config/validation-helpers.d.ts.map +1 -1
  172. package/dist/config/validation-helpers.js +84 -41
  173. package/dist/config/validation-helpers.js.map +1 -1
  174. package/dist/di/container.d.ts +5 -0
  175. package/dist/di/container.d.ts.map +1 -1
  176. package/dist/di/container.js +17 -0
  177. package/dist/di/container.js.map +1 -1
  178. package/dist/executor/message-builder.service.d.ts +2 -0
  179. package/dist/executor/message-builder.service.d.ts.map +1 -1
  180. package/dist/executor/message-builder.service.js +6 -1
  181. package/dist/executor/message-builder.service.js.map +1 -1
  182. package/dist/executor/stage-executor.d.ts.map +1 -1
  183. package/dist/executor/stage-executor.js +35 -8
  184. package/dist/executor/stage-executor.js.map +1 -1
  185. package/dist/executor/stage-output-cache.d.ts +3 -3
  186. package/dist/executor/stage-output-cache.d.ts.map +1 -1
  187. package/dist/executor/stage-output-cache.js +6 -6
  188. package/dist/executor/stage-output-cache.js.map +1 -1
  189. package/dist/executor/tool-execution.service.d.ts +2 -0
  190. package/dist/executor/tool-execution.service.d.ts.map +1 -1
  191. package/dist/executor/tool-execution.service.js +230 -2
  192. package/dist/executor/tool-execution.service.js.map +1 -1
  193. package/dist/executor/tools/search-tools.service.d.ts +1 -1
  194. package/dist/executor/tools/search-tools.service.d.ts.map +1 -1
  195. package/dist/executor/tools/search-tools.service.js +25 -3
  196. package/dist/executor/tools/search-tools.service.js.map +1 -1
  197. package/dist/executor/variables.d.ts.map +1 -1
  198. package/dist/executor/variables.js +5 -0
  199. package/dist/executor/variables.js.map +1 -1
  200. package/dist/llm/model-mapping-registry.d.ts.map +1 -1
  201. package/dist/llm/model-mapping-registry.js +11 -3
  202. package/dist/llm/model-mapping-registry.js.map +1 -1
  203. package/dist/llm/providers/anthropic.provider.d.ts.map +1 -1
  204. package/dist/llm/providers/anthropic.provider.js +5 -1
  205. package/dist/llm/providers/anthropic.provider.js.map +1 -1
  206. package/dist/llm/providers/index.d.ts +2 -0
  207. package/dist/llm/providers/index.d.ts.map +1 -1
  208. package/dist/llm/providers/index.js +2 -0
  209. package/dist/llm/providers/index.js.map +1 -1
  210. package/dist/llm/providers/local.provider.d.ts +27 -0
  211. package/dist/llm/providers/local.provider.d.ts.map +1 -0
  212. package/dist/llm/providers/local.provider.js +179 -0
  213. package/dist/llm/providers/local.provider.js.map +1 -0
  214. package/dist/llm/providers/openai.provider.d.ts.map +1 -1
  215. package/dist/llm/providers/openai.provider.js +1 -0
  216. package/dist/llm/providers/openai.provider.js.map +1 -1
  217. package/dist/lsp/lsp-client-manager.service.d.ts +47 -0
  218. package/dist/lsp/lsp-client-manager.service.d.ts.map +1 -0
  219. package/dist/lsp/lsp-client-manager.service.js +117 -0
  220. package/dist/lsp/lsp-client-manager.service.js.map +1 -0
  221. package/dist/lsp/lsp-client.d.ts +45 -0
  222. package/dist/lsp/lsp-client.d.ts.map +1 -0
  223. package/dist/lsp/lsp-client.js +147 -0
  224. package/dist/lsp/lsp-client.js.map +1 -0
  225. package/dist/lsp/lsp-context-enricher.d.ts +15 -0
  226. package/dist/lsp/lsp-context-enricher.d.ts.map +1 -0
  227. package/dist/lsp/lsp-context-enricher.js +72 -0
  228. package/dist/lsp/lsp-context-enricher.js.map +1 -0
  229. package/dist/lsp/lsp-language-registry.d.ts +24 -0
  230. package/dist/lsp/lsp-language-registry.d.ts.map +1 -0
  231. package/dist/lsp/lsp-language-registry.js +108 -0
  232. package/dist/lsp/lsp-language-registry.js.map +1 -0
  233. package/dist/lsp/lsp-lifecycle.service.d.ts +34 -0
  234. package/dist/lsp/lsp-lifecycle.service.d.ts.map +1 -0
  235. package/dist/lsp/lsp-lifecycle.service.js +57 -0
  236. package/dist/lsp/lsp-lifecycle.service.js.map +1 -0
  237. package/dist/lsp/lsp-protocol-adapter.d.ts +32 -0
  238. package/dist/lsp/lsp-protocol-adapter.d.ts.map +1 -0
  239. package/dist/lsp/lsp-protocol-adapter.interface.d.ts +93 -0
  240. package/dist/lsp/lsp-protocol-adapter.interface.d.ts.map +1 -0
  241. package/dist/lsp/lsp-protocol-adapter.interface.js +50 -0
  242. package/dist/lsp/lsp-protocol-adapter.interface.js.map +1 -0
  243. package/dist/lsp/lsp-protocol-adapter.js +69 -0
  244. package/dist/lsp/lsp-protocol-adapter.js.map +1 -0
  245. package/dist/lsp/lsp-result-cache.d.ts +43 -0
  246. package/dist/lsp/lsp-result-cache.d.ts.map +1 -0
  247. package/dist/lsp/lsp-result-cache.js +87 -0
  248. package/dist/lsp/lsp-result-cache.js.map +1 -0
  249. package/dist/lsp/lsp-tools.service.d.ts +68 -0
  250. package/dist/lsp/lsp-tools.service.d.ts.map +1 -0
  251. package/dist/lsp/lsp-tools.service.js +310 -0
  252. package/dist/lsp/lsp-tools.service.js.map +1 -0
  253. package/dist/lsp/lsp.types.d.ts +122 -0
  254. package/dist/lsp/lsp.types.d.ts.map +1 -0
  255. package/dist/lsp/lsp.types.js +7 -0
  256. package/dist/lsp/lsp.types.js.map +1 -0
  257. package/dist/mcp/mcp-client-manager.service.d.ts.map +1 -1
  258. package/dist/mcp/mcp-client-manager.service.js +32 -6
  259. package/dist/mcp/mcp-client-manager.service.js.map +1 -1
  260. package/dist/mcp/mcp-tool-handler.d.ts.map +1 -1
  261. package/dist/mcp/mcp-tool-handler.js +17 -1
  262. package/dist/mcp/mcp-tool-handler.js.map +1 -1
  263. package/dist/package.json +4 -1
  264. package/dist/security/command-guard.d.ts +58 -0
  265. package/dist/security/command-guard.d.ts.map +1 -0
  266. package/dist/security/command-guard.js +249 -0
  267. package/dist/security/command-guard.js.map +1 -0
  268. package/dist/security/credential-guard.d.ts +42 -0
  269. package/dist/security/credential-guard.d.ts.map +1 -0
  270. package/dist/security/credential-guard.js +181 -0
  271. package/dist/security/credential-guard.js.map +1 -0
  272. package/dist/security/index.d.ts +22 -0
  273. package/dist/security/index.d.ts.map +1 -0
  274. package/dist/security/index.js +17 -0
  275. package/dist/security/index.js.map +1 -0
  276. package/dist/security/prompt-injection-detector.d.ts +55 -0
  277. package/dist/security/prompt-injection-detector.d.ts.map +1 -0
  278. package/dist/security/prompt-injection-detector.js +233 -0
  279. package/dist/security/prompt-injection-detector.js.map +1 -0
  280. package/dist/security/security-event.types.d.ts +19 -0
  281. package/dist/security/security-event.types.d.ts.map +1 -0
  282. package/dist/security/security-event.types.js +13 -0
  283. package/dist/security/security-event.types.js.map +1 -0
  284. package/dist/security/tool-definition-validator.d.ts +55 -0
  285. package/dist/security/tool-definition-validator.d.ts.map +1 -0
  286. package/dist/security/tool-definition-validator.js +221 -0
  287. package/dist/security/tool-definition-validator.js.map +1 -0
  288. package/dist/security/tool-integrity-monitor.d.ts +67 -0
  289. package/dist/security/tool-integrity-monitor.d.ts.map +1 -0
  290. package/dist/security/tool-integrity-monitor.js +155 -0
  291. package/dist/security/tool-integrity-monitor.js.map +1 -0
  292. package/dist/tsconfig.json +3 -0
  293. package/dist/types/command.types.d.ts +3 -1
  294. package/dist/types/command.types.d.ts.map +1 -1
  295. package/dist/types/command.types.js.map +1 -1
  296. package/dist/types/llm.types.d.ts +2 -0
  297. package/dist/types/llm.types.d.ts.map +1 -1
  298. package/dist/types/provider-names.types.d.ts +3 -0
  299. package/dist/types/provider-names.types.d.ts.map +1 -1
  300. package/dist/types/provider-names.types.js +3 -0
  301. package/dist/types/provider-names.types.js.map +1 -1
  302. package/dist/ui/dashboard/detail-panels/spending-panel.d.ts.map +1 -1
  303. package/dist/ui/dashboard/detail-panels/spending-panel.js +8 -3
  304. package/dist/ui/dashboard/detail-panels/spending-panel.js.map +1 -1
  305. package/dist/ui/dashboard/detail-panels/token-usage-panel.d.ts.map +1 -1
  306. package/dist/ui/dashboard/detail-panels/token-usage-panel.js +37 -13
  307. package/dist/ui/dashboard/detail-panels/token-usage-panel.js.map +1 -1
  308. package/dist/ui/dashboard/views/agent-analytics-view.js +1 -1
  309. package/dist/ui/dashboard/views/agent-analytics-view.js.map +1 -1
  310. package/dist/ui/dashboard/views/cache-stats-view.js +1 -1
  311. package/dist/ui/dashboard/views/cache-stats-view.js.map +1 -1
  312. package/dist/ui/dashboard/views/performance-view.js +1 -1
  313. package/dist/ui/dashboard/views/performance-view.js.map +1 -1
  314. package/dist/utils/spending-tracker.d.ts +22 -0
  315. package/dist/utils/spending-tracker.d.ts.map +1 -1
  316. package/dist/utils/spending-tracker.js +33 -1
  317. package/dist/utils/spending-tracker.js.map +1 -1
  318. package/dist/utils/token-estimator.d.ts +21 -5
  319. package/dist/utils/token-estimator.d.ts.map +1 -1
  320. package/dist/utils/token-estimator.js +74 -28
  321. package/dist/utils/token-estimator.js.map +1 -1
  322. package/package.json +4 -1
@@ -8,6 +8,6 @@ const { Box, Text } = tui;
8
8
  export function CacheStatsView({ data }) {
9
9
  return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { borderColor: "green", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "green", children: "Dry Run Cache" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Entries: " }), _jsx(Text, { bold: true, color: "cyan", children: data.dryRunCache.size }), _jsx(Text, { dimColor: true, children: " / 50 max" })] }), data.dryRunCache.entries.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.dryRunCache.entries.slice(0, 10).map((entry, index) => (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: (entry.commandName.length > 25
10
10
  ? entry.commandName.substring(0, 22) + '...'
11
- : entry.commandName).padEnd(25) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] })] }, index))), data.dryRunCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.dryRunCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No cached entries" }))] }), _jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Stage Output Cache" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Entries: " }), _jsx(Text, { bold: true, color: "cyan", children: data.stageOutputCache.size }), _jsx(Text, { dimColor: true, children: " / 100 max" })] }), data.stageOutputCache.entries.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.stageOutputCache.entries.slice(0, 10).map((entry, index) => (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: (entry.stageId.length > 20 ? entry.stageId.substring(0, 17) + '...' : entry.stageId).padEnd(20) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] }), entry.savedTime_ms > 0 && _jsxs(Text, { color: "green", children: [" saved: ", formatDurationMs(entry.savedTime_ms)] })] }, index))), data.stageOutputCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.stageOutputCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No cached entries" }))] })] }));
11
+ : entry.commandName).padEnd(25) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] })] }, index))), data.dryRunCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.dryRunCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No entries \u2014 run a command with --dry-run to populate" }))] }), _jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Stage Output Cache" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Entries: " }), _jsx(Text, { bold: true, color: "cyan", children: data.stageOutputCache.size }), _jsx(Text, { dimColor: true, children: " / 100 max" })] }), data.stageOutputCache.entries.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.stageOutputCache.entries.slice(0, 10).map((entry, index) => (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: (entry.stageId.length > 20 ? entry.stageId.substring(0, 17) + '...' : entry.stageId).padEnd(20) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] }), entry.savedTime_ms > 0 && _jsxs(Text, { color: "green", children: [" saved: ", formatDurationMs(entry.savedTime_ms)] })] }, index))), data.stageOutputCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.stageOutputCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No entries \u2014 cache populates after stage execution (1hr TTL)" }))] })] }));
12
12
  }
13
13
  //# sourceMappingURL=cache-stats-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache-stats-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/cache-stats-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-stats-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/cache-stats-view.tsx"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const { Box, Text } = tui;
8
8
  export function PerformanceView({ data }) {
9
9
  const hasData = data.counters.length > 0 || data.gauges.length > 0 || data.histograms.length > 0;
10
10
  if (!hasData) {
11
- return (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Performance Metrics" }), _jsx(Text, { dimColor: true, children: "No metrics collected yet. Run some commands to generate metrics." })] }));
11
+ return (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Performance Metrics" }), _jsx(Text, { dimColor: true, children: "No metrics yet \u2014 run commands in this session to populate (resets on restart)" })] }));
12
12
  }
13
13
  return (_jsx(Box, { flexDirection: "column", children: _jsxs(Box, { flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", width: "50%", children: [data.counters.length > 0 && (_jsxs(Box, { borderColor: "green", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, color: "green", children: ["Counters (", data.counters.length, ")"] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.counters.slice(0, 15).map((counter, index) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: counter.name.padEnd(30) }), _jsx(Text, { bold: true, color: "cyan", children: counter.value })] }, index))), data.counters.length > 15 && _jsxs(Text, { dimColor: true, children: ["...and ", data.counters.length - 15, " more"] })] })] })), data.histograms.length > 0 && (_jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsxs(Text, { bold: true, color: "yellow", children: ["Histograms (", data.histograms.length, ")"] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: data.histograms.slice(0, 5).map((histogram, index) => {
14
14
  const bucketValues = Object.values(histogram.buckets);
@@ -1 +1 @@
1
- {"version":3,"file":"performance-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/performance-view.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;AAC5B,8HAA8H;AAC9H,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;AAE1B,wGAAwG;AACxG,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAA6B;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjG,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CACN,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAC9E,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,oCAEhB,EACP,KAAC,IAAI,IAAC,QAAQ,uFAAwE,IACjF,CACN,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YAC1B,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,aAEf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,KAAK,aACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5B,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAC9E,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,2BACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,SACzB,EACP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACnD,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,QAAQ,kBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EAC/C,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YACrB,OAAO,CAAC,KAAK,GACR,KAJE,KAAK,CAKT,CACN,CAAC,EACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,MAAC,IAAI,IAAC,QAAQ,8BAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,aAAa,IACtF,IACD,CACN,EAEA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aAC7F,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,6BACX,IAAI,CAAC,UAAU,CAAC,MAAM,SAC7B,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;wCACrD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wCACtD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wCACtE,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAa,YAAY,EAAE,CAAC,aACtD,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,IAAI,kBAAE,SAAS,CAAC,IAAI,GAAQ,EAClC,MAAC,IAAI,IAAC,QAAQ,mBACZ,GAAG,cACK,SAAS,CAAC,KAAK,aAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SACzC,IACF,EACL,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,KAAC,SAAS,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAI,CACtE,KAV+B,KAAK,CAWhC,CACN,CAAC;oCACH,CAAC,CAAC,GACG,IACD,CACN,IACI,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK,aACpD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,MAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAC7E,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,yBACb,IAAI,CAAC,MAAM,CAAC,MAAM,SACrB,EACP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/C,KAAC,GAAG,IAAa,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YACpE,KAAC,aAAa,IACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAChF,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,EACrC,IAAI,EAAC,EAAE,EACP,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,EAAE,GACR,IAPO,KAAK,CAQT,CACN,CAAC,EACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,MAAC,IAAI,IAAC,QAAQ,8BAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,aAAa,IAClF,IACD,CACN,EAEA,IAAI,CAAC,QAAQ,IAAI,CACjB,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aAC5F,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,8BAEjB,EACP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACvC,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAC9B,MAAC,IAAI,eAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IACnD,EACN,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,QAAQ,wCAAyB,EACvC,MAAC,IAAI,eAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,UAAU,IAC5C,EACN,MAAC,GAAG,eACH,KAAC,IAAI,IAAC,QAAQ,iCAAkB,EAChC,KAAC,IAAI,cAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAQ,EAC5C,KAAC,IAAI,IAAC,QAAQ,gCAAiB,EAC/B,KAAC,IAAI,cAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAQ,EAC1C,KAAC,IAAI,IAAC,QAAQ,oCAAqB,EACnC,KAAC,IAAI,cAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAQ,IACzC,IACD,IACD,CACN,IACI,IACD,GACD,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"performance-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/performance-view.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,11 @@ export interface EndpointSummary {
9
9
  cacheSavingsUsd: number;
10
10
  command: string;
11
11
  requestCount: number;
12
+ totalCacheReadTokens: number;
13
+ totalCacheWriteTokens: number;
12
14
  totalCostUsd: number;
15
+ totalInputTokens: number;
16
+ totalOutputTokens: number;
13
17
  totalTokens: number;
14
18
  }
15
19
  export interface GetRecordsOptions {
@@ -18,24 +22,42 @@ export interface GetRecordsOptions {
18
22
  }
19
23
  export interface SpendingRecord {
20
24
  batchDiscounted: boolean;
25
+ cacheReadCostUsd: number;
21
26
  cacheReadTokens: number;
22
27
  cacheSavingsUsd: number;
28
+ cacheWriteCostUsd: number;
23
29
  cacheWriteTokens: number;
24
30
  command: string;
25
31
  completionTokens: number;
32
+ contextSavingsPercent?: number;
33
+ contextTokensAfter?: number;
34
+ contextTokensBefore?: number;
26
35
  costUsd: number;
27
36
  durationMs: number;
28
37
  id: string;
38
+ inputCostUsd: number;
29
39
  model: string;
40
+ outputCostUsd: number;
41
+ progressiveDisclosureCalls?: number;
30
42
  promptTokens: number;
31
43
  stage: string;
32
44
  timestamp: string;
33
45
  totalTokens: number;
46
+ unknownModelPricing: boolean;
34
47
  }
35
48
  export interface SpendingTotals {
36
49
  cacheSavingsUsd: number;
50
+ hasUnknownModelPricing: boolean;
37
51
  requestCount: number;
52
+ totalCacheReadCostUsd: number;
53
+ totalCacheReadTokens: number;
54
+ totalCacheWriteCostUsd: number;
55
+ totalCacheWriteTokens: number;
38
56
  totalCostUsd: number;
57
+ totalInputCostUsd: number;
58
+ totalInputTokens: number;
59
+ totalOutputCostUsd: number;
60
+ totalOutputTokens: number;
39
61
  totalTokens: number;
40
62
  }
41
63
  export declare class SpendingTracker {
@@ -1 +1 @@
1
- {"version":3,"file":"spending-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/spending-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,eAAe;IAC3B;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI;IAS/B;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE;IAsBtD;;OAEG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,eAAe,EAAE;IA2B1D;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE;IAMvE;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc;CAYnD;AAWD,wBAAgB,kBAAkB,IAAI,eAAe,CAGpD"}
1
+ {"version":3,"file":"spending-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/spending-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,eAAe;IAC3B;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI;IAS/B;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE;IAsBtD;;OAEG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,eAAe,EAAE;IAmC1D;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc,EAAE;IAMvE;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc;CAoCnD;AAWD,wBAAgB,kBAAkB,IAAI,eAAe,CAGpD"}
@@ -55,6 +55,10 @@ export class SpendingTracker {
55
55
  if (existing) {
56
56
  existing.totalCostUsd += r.costUsd;
57
57
  existing.totalTokens += r.totalTokens;
58
+ existing.totalInputTokens += r.promptTokens;
59
+ existing.totalOutputTokens += r.completionTokens;
60
+ existing.totalCacheReadTokens += r.cacheReadTokens;
61
+ existing.totalCacheWriteTokens += r.cacheWriteTokens;
58
62
  existing.requestCount += 1;
59
63
  existing.cacheSavingsUsd += r.cacheSavingsUsd;
60
64
  existing.avgCostUsd = existing.totalCostUsd / existing.requestCount;
@@ -65,7 +69,11 @@ export class SpendingTracker {
65
69
  cacheSavingsUsd: r.cacheSavingsUsd,
66
70
  command: r.command,
67
71
  requestCount: 1,
72
+ totalCacheReadTokens: r.cacheReadTokens,
73
+ totalCacheWriteTokens: r.cacheWriteTokens,
68
74
  totalCostUsd: r.costUsd,
75
+ totalInputTokens: r.promptTokens,
76
+ totalOutputTokens: r.completionTokens,
69
77
  totalTokens: r.totalTokens
70
78
  });
71
79
  }
@@ -85,12 +93,36 @@ export class SpendingTracker {
85
93
  */
86
94
  getTotals(opts) {
87
95
  const records = this.getRecords(opts);
96
+ const initial = {
97
+ cacheSavingsUsd: 0,
98
+ hasUnknownModelPricing: false,
99
+ requestCount: 0,
100
+ totalCacheReadCostUsd: 0,
101
+ totalCacheReadTokens: 0,
102
+ totalCacheWriteCostUsd: 0,
103
+ totalCacheWriteTokens: 0,
104
+ totalCostUsd: 0,
105
+ totalInputCostUsd: 0,
106
+ totalInputTokens: 0,
107
+ totalOutputCostUsd: 0,
108
+ totalOutputTokens: 0,
109
+ totalTokens: 0
110
+ };
88
111
  return records.reduce((acc, r) => ({
89
112
  cacheSavingsUsd: acc.cacheSavingsUsd + r.cacheSavingsUsd,
113
+ hasUnknownModelPricing: acc.hasUnknownModelPricing || (r.unknownModelPricing ?? false),
90
114
  requestCount: acc.requestCount + 1,
115
+ totalCacheReadCostUsd: acc.totalCacheReadCostUsd + (r.cacheReadCostUsd ?? 0),
116
+ totalCacheReadTokens: acc.totalCacheReadTokens + r.cacheReadTokens,
117
+ totalCacheWriteCostUsd: acc.totalCacheWriteCostUsd + (r.cacheWriteCostUsd ?? 0),
118
+ totalCacheWriteTokens: acc.totalCacheWriteTokens + r.cacheWriteTokens,
91
119
  totalCostUsd: acc.totalCostUsd + r.costUsd,
120
+ totalInputCostUsd: acc.totalInputCostUsd + (r.inputCostUsd ?? 0),
121
+ totalInputTokens: acc.totalInputTokens + r.promptTokens,
122
+ totalOutputCostUsd: acc.totalOutputCostUsd + (r.outputCostUsd ?? 0),
123
+ totalOutputTokens: acc.totalOutputTokens + r.completionTokens,
92
124
  totalTokens: acc.totalTokens + r.totalTokens
93
- }), { cacheSavingsUsd: 0, requestCount: 0, totalCostUsd: 0, totalTokens: 0 });
125
+ }), initial);
94
126
  }
95
127
  }
96
128
  function ensureDir() {
@@ -1 +1 @@
1
- {"version":3,"file":"spending-tracker.js","sourceRoot":"","sources":["../../src/utils/spending-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spending-tracker.js","sourceRoot":"","sources":["../../src/utils/spending-tracker.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,19 @@ export interface TokenEstimate {
25
25
  cacheSavings?: number;
26
26
  }
27
27
  /**
28
- * Model pricing per million tokens (approximate as of 2024)
29
- * cache_write: cost per million tokens for writing to cache (1.25x input)
30
- * cache_read: cost per million tokens for reading from cache (0.1x input)
28
+ * Model pricing per million tokens (updated March 2026)
29
+ * Sources:
30
+ * Anthropic: https://docs.anthropic.com/en/about-claude/pricing
31
+ * OpenAI: https://openai.com/api/pricing/
32
+ * Google: https://ai.google.dev/gemini-api/docs/pricing
33
+ * xAI: https://docs.x.ai/developers/models
34
+ * Moonshot: https://platform.moonshot.ai/docs/pricing/chat
35
+ *
36
+ * cache_write: cost per million tokens for writing to prompt cache (5-min TTL = 1.25x input)
37
+ * cache_read: cost per million tokens for reading from cache (0.1x input for Anthropic)
38
+ *
39
+ * Entries use both the short alias form AND the resolved API ID form so that
40
+ * calculateActualCost() finds the correct pricing regardless of which form is passed.
31
41
  */
32
42
  interface ModelPricing {
33
43
  cache_read?: number;
@@ -64,10 +74,16 @@ export declare function formatTokenEstimate(estimate: TokenEstimate): string;
64
74
  * @param model - Model name for pricing lookup
65
75
  * @returns Total cost and cache savings in USD
66
76
  */
67
- export declare function calculateActualCost(usage: LLMUsage, model?: string): {
77
+ export interface ActualCostResult {
78
+ cacheReadCost: number;
68
79
  cacheSavings: number;
80
+ cacheWriteCost: number;
81
+ inputCost: number;
82
+ outputCost: number;
69
83
  totalCost: number;
70
- };
84
+ unknownModel: boolean;
85
+ }
86
+ export declare function calculateActualCost(usage: LLMUsage, model?: string): ActualCostResult;
71
87
  /**
72
88
  * Get pricing info for a model
73
89
  *
@@ -1 +1 @@
1
- {"version":3,"file":"token-estimator.d.ts","sourceRoot":"","sources":["../../src/utils/token-estimator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC7B,4BAA4B;IAC5B,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;IACnD,qEAAqE;IACrE,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,UAAU,YAAY;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAgCD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAqCpF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAOnE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAwBhH;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"token-estimator.d.ts","sourceRoot":"","sources":["../../src/utils/token-estimator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC7B,4BAA4B;IAC5B,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;IACnD,qEAAqE;IACrE,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,UAAU,YAAY;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAkFD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAqCpF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAOnE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA+BrF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -5,24 +5,70 @@
5
5
  * Uses approximate token counting (4 characters per token for English text).
6
6
  */
7
7
  const MODEL_PRICING = {
8
- // Anthropic models (with cache pricing)
9
- 'claude-3-5-haiku-20241022': { cache_read: 0.1, cache_write: 1.25, input: 1.0, output: 5.0 },
10
- 'claude-3-5-haiku-latest': { cache_read: 0.1, cache_write: 1.25, input: 1.0, output: 5.0 },
8
+ // ─── Anthropic ────────────────────────────────────────────────────────────
9
+ // Claude 4.6 1M context, $5/$25 input/output per MTok
10
+ 'claude-opus-4-6': { cache_read: 0.5, cache_write: 6.25, input: 5.0, output: 25.0 },
11
+ 'claude-opus-4.6': { cache_read: 0.5, cache_write: 6.25, input: 5.0, output: 25.0 },
12
+ 'claude-sonnet-4-6': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
13
+ 'claude-sonnet-4.6': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
14
+ // Claude 4.5 — $5/$25 (Opus), $3/$15 (Sonnet), $1/$5 (Haiku)
15
+ 'claude-haiku-4-5-20251001': { cache_read: 0.1, cache_write: 1.25, input: 1.0, output: 5.0 },
16
+ 'claude-haiku-4.5': { cache_read: 0.1, cache_write: 1.25, input: 1.0, output: 5.0 },
17
+ 'claude-opus-4-5-20251101': { cache_read: 0.5, cache_write: 6.25, input: 5.0, output: 25.0 },
18
+ 'claude-opus-4.5': { cache_read: 0.5, cache_write: 6.25, input: 5.0, output: 25.0 },
19
+ 'claude-sonnet-4-5-20250929': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
20
+ 'claude-sonnet-4.5': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
21
+ // Claude 4.1 — $15/$75 (Opus)
22
+ 'claude-opus-4-1-20250805': { cache_read: 1.5, cache_write: 18.75, input: 15.0, output: 75.0 },
23
+ 'claude-opus-4.1': { cache_read: 1.5, cache_write: 18.75, input: 15.0, output: 75.0 },
24
+ // Claude 4.0 — $15/$75 (Opus), $3/$15 (Sonnet)
25
+ 'claude-opus-4': { cache_read: 1.5, cache_write: 18.75, input: 15.0, output: 75.0 },
26
+ 'claude-opus-4-20250514': { cache_read: 1.5, cache_write: 18.75, input: 15.0, output: 75.0 },
27
+ 'claude-sonnet-4': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
28
+ 'claude-sonnet-4-20250514': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
29
+ // Claude 3.x legacy
30
+ 'claude-3-5-haiku-20241022': { cache_read: 0.08, cache_write: 1.0, input: 0.8, output: 4.0 },
11
31
  'claude-3-5-sonnet-20241022': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
12
32
  'claude-3-5-sonnet-latest': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
13
- 'claude-3-haiku-20240307': { cache_read: 0.025, cache_write: 0.3125, input: 0.25, output: 1.25 },
33
+ 'claude-3-7-sonnet-20250219': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
34
+ 'claude-3-haiku-20240307': { cache_read: 0.03, cache_write: 0.3, input: 0.25, output: 1.25 },
14
35
  'claude-3-opus-20240229': { cache_read: 1.5, cache_write: 18.75, input: 15.0, output: 75.0 },
15
36
  'claude-3-sonnet-20240229': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
16
- // OpenAI models (automatic caching: cached reads at 50% discount, no write surcharge)
17
- 'gpt-3.5-turbo': { input: 0.5, output: 1.5 },
18
- 'gpt-4': { input: 30.0, output: 60.0 },
19
- 'gpt-4-turbo': { cache_read: 5.0, input: 10.0, output: 30.0 },
20
- 'gpt-4o': { cache_read: 1.25, input: 2.5, output: 10.0 },
21
- 'gpt-4o-mini': { cache_read: 0.075, input: 0.15, output: 0.6 },
22
- // Google models (context caching: cached reads at 75% discount)
23
- 'gemini-1.5-flash': { cache_read: 0.01875, input: 0.075, output: 0.3 },
24
- 'gemini-1.5-pro': { cache_read: 0.3125, input: 1.25, output: 5.0 },
25
- 'gemini-2.0-flash-exp': { cache_read: 0.01875, input: 0.075, output: 0.3 }
37
+ 'claude-haiku-3.5': { cache_read: 0.08, cache_write: 1.0, input: 0.8, output: 4.0 },
38
+ 'claude-sonnet-3.7': { cache_read: 0.3, cache_write: 3.75, input: 3.0, output: 15.0 },
39
+ // ─── OpenAI ───────────────────────────────────────────────────────────────
40
+ // GPT-5 series automatic caching (90% off for GPT-5 family)
41
+ 'gpt-5': { cache_read: 0.125, input: 1.25, output: 10.0 },
42
+ 'gpt-5-mini': { cache_read: 0.025, input: 0.25, output: 1.5 },
43
+ 'gpt-5-nano': { cache_read: 0.01, input: 0.1, output: 0.4 },
44
+ 'gpt-5.1': { cache_read: 0.175, input: 1.75, output: 14.0 },
45
+ // GPT-5 thinking modes high-effort reasoning, priced at o3 tier ($2/$8)
46
+ 'gpt-5-thinking-high': { cache_read: 1.0, input: 2.0, output: 8.0 },
47
+ // o-series reasoning models — automatic caching (50% off)
48
+ o3: { cache_read: 1.0, input: 2.0, output: 8.0 },
49
+ 'o3-pro': { cache_read: 5.0, input: 20.0, output: 80.0 },
50
+ 'o4-mini': { cache_read: 0.275, input: 1.1, output: 4.4 },
51
+ // ─── Google Gemini ────────────────────────────────────────────────────────
52
+ // Gemini 3 — Pro at $2/$12, cached $0.20
53
+ 'gemini-3-pro': { cache_read: 0.2, input: 2.0, output: 12.0 },
54
+ // Gemini 2.5 series
55
+ 'gemini-2.5-flash': { cache_read: 0.03, input: 0.3, output: 2.5 },
56
+ 'gemini-2.5-flash-lite': { cache_read: 0.01, input: 0.1, output: 0.4 },
57
+ 'gemini-2.5-pro': { cache_read: 0.125, input: 1.25, output: 10.0 },
58
+ // Gemma open models (self-hosted / Vertex, no public per-token price)
59
+ // gemma-2, gemma-3, gemma-3n omitted — use default pricing as placeholder
60
+ // ─── xAI Grok ─────────────────────────────────────────────────────────────
61
+ // Grok 4.1 Fast — $0.20/$0.50, cached $0.05
62
+ 'grok-4.1-fast-non-reasoning': { cache_read: 0.05, input: 0.2, output: 0.5 },
63
+ 'grok-4.1-fast-reasoning': { cache_read: 0.05, input: 0.2, output: 0.5 },
64
+ // Grok 4 Fast — $2/$6, cached $0.20
65
+ 'grok-4-fast-non-reasoning': { cache_read: 0.2, input: 2.0, output: 6.0 },
66
+ 'grok-4-fast-reasoning': { cache_read: 0.2, input: 2.0, output: 6.0 },
67
+ // Grok Code Fast — $0.20/$1.50, cached $0.02
68
+ 'grok-code': { cache_read: 0.02, input: 0.2, output: 1.5 },
69
+ // ─── Moonshot Kimi ────────────────────────────────────────────────────────
70
+ // Kimi K2 — $0.60/$2.50, cached $0.15
71
+ 'kimi-k2': { cache_read: 0.15, input: 0.6, output: 2.5 }
26
72
  };
27
73
  /** Default pricing if model not found */
28
74
  const DEFAULT_PRICING = { input: 3.0, output: 15.0 };
@@ -89,30 +135,30 @@ export function formatTokenEstimate(estimate) {
89
135
  ` Cost: $${estimate.estimatedCost.amount.toFixed(4)} ${estimate.estimatedCost.currency}`
90
136
  ].join('\n');
91
137
  }
92
- /**
93
- * Calculate actual cost from real usage data, including cache pricing
94
- *
95
- * @param usage - Actual token usage from API response
96
- * @param model - Model name for pricing lookup
97
- * @returns Total cost and cache savings in USD
98
- */
99
138
  export function calculateActualCost(usage, model) {
100
- const pricing = MODEL_PRICING[model ?? ''] ?? DEFAULT_PRICING;
139
+ const pricing = MODEL_PRICING[model ?? ''];
140
+ const unknownModel = pricing === undefined;
141
+ const resolvedPricing = pricing ?? DEFAULT_PRICING;
101
142
  // Base input/output costs
102
- const inputCost = (usage.prompt_tokens / 1_000_000) * pricing.input;
103
- const outputCost = (usage.completion_tokens / 1_000_000) * pricing.output;
143
+ const inputCost = (usage.prompt_tokens / 1_000_000) * resolvedPricing.input;
144
+ const outputCost = (usage.completion_tokens / 1_000_000) * resolvedPricing.output;
104
145
  // Cache costs (if present)
105
146
  const cacheWriteTokens = usage.cache_creation_input_tokens ?? 0;
106
147
  const cacheReadTokens = usage.cache_read_input_tokens ?? 0;
107
- const cacheWriteCost = pricing.cache_write ? (cacheWriteTokens / 1_000_000) * pricing.cache_write : 0;
108
- const cacheReadCost = pricing.cache_read ? (cacheReadTokens / 1_000_000) * pricing.cache_read : 0;
148
+ const cacheWriteCost = resolvedPricing.cache_write ? (cacheWriteTokens / 1_000_000) * resolvedPricing.cache_write : 0;
149
+ const cacheReadCost = resolvedPricing.cache_read ? (cacheReadTokens / 1_000_000) * resolvedPricing.cache_read : 0;
109
150
  // Savings: what those cached tokens would have cost at full input price
110
- const fullPriceForCachedTokens = (cacheReadTokens / 1_000_000) * pricing.input;
151
+ const fullPriceForCachedTokens = (cacheReadTokens / 1_000_000) * resolvedPricing.input;
111
152
  const cacheSavings = fullPriceForCachedTokens - cacheReadCost;
112
153
  const totalCost = inputCost + outputCost + cacheWriteCost + cacheReadCost;
113
154
  return {
155
+ cacheReadCost: Math.round(cacheReadCost * 10000) / 10000,
114
156
  cacheSavings: Math.round(cacheSavings * 10000) / 10000,
115
- totalCost: Math.round(totalCost * 10000) / 10000
157
+ cacheWriteCost: Math.round(cacheWriteCost * 10000) / 10000,
158
+ inputCost: Math.round(inputCost * 10000) / 10000,
159
+ outputCost: Math.round(outputCost * 10000) / 10000,
160
+ totalCost: Math.round(totalCost * 10000) / 10000,
161
+ unknownModel
116
162
  };
117
163
  }
118
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/utils/token-estimator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/utils/token-estimator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windagency/valora",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "VALORA - AI-assisted development workflow orchestration with agnostic multi-LLM support, session-based state, and Cursor MCP integration",
5
5
  "keywords": [
6
6
  "valora",
@@ -140,8 +140,11 @@
140
140
  "openai": "^4.67.0",
141
141
  "ora": "^8.0.0",
142
142
  "react": "^19.2.1",
143
+ "tree-sitter-wasms": "0.1.11",
143
144
  "undici": "^7.16.0",
144
145
  "unzipper": "^0.12.0",
146
+ "vscode-languageserver-protocol": "^3.17.5",
147
+ "web-tree-sitter": "^0.24.7",
145
148
  "yaml": "^2.4.0",
146
149
  "zod": "^3.22.4"
147
150
  },