@windagency/valora 2.1.3 → 2.2.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 (140) hide show
  1. package/README.md +2 -2
  2. package/data/commands/create-backlog.md +4 -0
  3. package/data/commands/create-prd.md +3 -0
  4. package/data/commands/generate-docs.md +4 -0
  5. package/data/commands/implement.md +2 -0
  6. package/data/commands/plan-architecture.md +1 -0
  7. package/data/commands/plan-implementation.md +2 -0
  8. package/data/commands/refine-specs.md +2 -0
  9. package/data/commands/refine-task.md +2 -0
  10. package/data/commands/review-code.md +1 -0
  11. package/data/commands/review-functional.md +1 -0
  12. package/data/commands/review-plan.md +5 -0
  13. package/dist/batch/batch-eligibility.d.ts +17 -0
  14. package/dist/batch/batch-eligibility.d.ts.map +1 -0
  15. package/dist/batch/batch-eligibility.js +22 -0
  16. package/dist/batch/batch-eligibility.js.map +1 -0
  17. package/dist/batch/batch-orchestrator.d.ts +35 -0
  18. package/dist/batch/batch-orchestrator.d.ts.map +1 -0
  19. package/dist/batch/batch-orchestrator.js +121 -0
  20. package/dist/batch/batch-orchestrator.js.map +1 -0
  21. package/dist/batch/batch-provider.interface.d.ts +14 -0
  22. package/dist/batch/batch-provider.interface.d.ts.map +1 -0
  23. package/dist/batch/batch-provider.interface.js +9 -0
  24. package/dist/batch/batch-provider.interface.js.map +1 -0
  25. package/dist/batch/batch-session.d.ts +29 -0
  26. package/dist/batch/batch-session.d.ts.map +1 -0
  27. package/dist/batch/batch-session.js +91 -0
  28. package/dist/batch/batch-session.js.map +1 -0
  29. package/dist/batch/batch.types.d.ts +48 -0
  30. package/dist/batch/batch.types.d.ts.map +1 -0
  31. package/dist/batch/batch.types.js +5 -0
  32. package/dist/batch/batch.types.js.map +1 -0
  33. package/dist/batch/providers/anthropic.batch-provider.d.ts +33 -0
  34. package/dist/batch/providers/anthropic.batch-provider.d.ts.map +1 -0
  35. package/dist/batch/providers/anthropic.batch-provider.js +106 -0
  36. package/dist/batch/providers/anthropic.batch-provider.js.map +1 -0
  37. package/dist/batch/providers/google.batch-provider.d.ts +32 -0
  38. package/dist/batch/providers/google.batch-provider.d.ts.map +1 -0
  39. package/dist/batch/providers/google.batch-provider.js +41 -0
  40. package/dist/batch/providers/google.batch-provider.js.map +1 -0
  41. package/dist/batch/providers/openai.batch-provider.d.ts +32 -0
  42. package/dist/batch/providers/openai.batch-provider.d.ts.map +1 -0
  43. package/dist/batch/providers/openai.batch-provider.js +151 -0
  44. package/dist/batch/providers/openai.batch-provider.js.map +1 -0
  45. package/dist/cli/command-executor.d.ts +5 -0
  46. package/dist/cli/command-executor.d.ts.map +1 -1
  47. package/dist/cli/command-executor.js +63 -11
  48. package/dist/cli/command-executor.js.map +1 -1
  49. package/dist/cli/commands/batch.command.d.ts +14 -0
  50. package/dist/cli/commands/batch.command.d.ts.map +1 -0
  51. package/dist/cli/commands/batch.command.js +174 -0
  52. package/dist/cli/commands/batch.command.js.map +1 -0
  53. package/dist/cli/commands/monitoring.d.ts.map +1 -1
  54. package/dist/cli/commands/monitoring.js +119 -0
  55. package/dist/cli/commands/monitoring.js.map +1 -1
  56. package/dist/cli/flags.d.ts +1 -0
  57. package/dist/cli/flags.d.ts.map +1 -1
  58. package/dist/cli/flags.js +1 -0
  59. package/dist/cli/flags.js.map +1 -1
  60. package/dist/cli/index.js +4 -0
  61. package/dist/cli/index.js.map +1 -1
  62. package/dist/cli/result-presenter.d.ts +6 -2
  63. package/dist/cli/result-presenter.d.ts.map +1 -1
  64. package/dist/cli/result-presenter.js +22 -12
  65. package/dist/cli/result-presenter.js.map +1 -1
  66. package/dist/cli/types/cli-options.types.d.ts +1 -0
  67. package/dist/cli/types/cli-options.types.d.ts.map +1 -1
  68. package/dist/config/schema.d.ts +87 -12
  69. package/dist/config/schema.d.ts.map +1 -1
  70. package/dist/config/schema.js +1 -0
  71. package/dist/config/schema.js.map +1 -1
  72. package/dist/executor/stage-executor.d.ts +16 -0
  73. package/dist/executor/stage-executor.d.ts.map +1 -1
  74. package/dist/executor/stage-executor.js +107 -4
  75. package/dist/executor/stage-executor.js.map +1 -1
  76. package/dist/executor/tool-execution.service.d.ts +37 -4
  77. package/dist/executor/tool-execution.service.d.ts.map +1 -1
  78. package/dist/executor/tool-execution.service.js +90 -25
  79. package/dist/executor/tool-execution.service.js.map +1 -1
  80. package/dist/executor/tools/search-tools.service.js +3 -3
  81. package/dist/executor/tools/search-tools.service.js.map +1 -1
  82. package/dist/executor/tools/session-tools.service.js +5 -5
  83. package/dist/executor/tools/session-tools.service.js.map +1 -1
  84. package/dist/executor/variable-resolution.service.d.ts.map +1 -1
  85. package/dist/executor/variable-resolution.service.js +1 -2
  86. package/dist/executor/variable-resolution.service.js.map +1 -1
  87. package/dist/executor/variables.d.ts +1 -5
  88. package/dist/executor/variables.d.ts.map +1 -1
  89. package/dist/executor/variables.js +0 -21
  90. package/dist/executor/variables.js.map +1 -1
  91. package/dist/llm/providers/anthropic.provider.d.ts +30 -1
  92. package/dist/llm/providers/anthropic.provider.d.ts.map +1 -1
  93. package/dist/llm/providers/anthropic.provider.js +163 -6
  94. package/dist/llm/providers/anthropic.provider.js.map +1 -1
  95. package/dist/llm/providers/google.provider.d.ts +9 -0
  96. package/dist/llm/providers/google.provider.d.ts.map +1 -1
  97. package/dist/llm/providers/google.provider.js +25 -10
  98. package/dist/llm/providers/google.provider.js.map +1 -1
  99. package/dist/llm/providers/openai.provider.d.ts +17 -1
  100. package/dist/llm/providers/openai.provider.d.ts.map +1 -1
  101. package/dist/llm/providers/openai.provider.js +93 -25
  102. package/dist/llm/providers/openai.provider.js.map +1 -1
  103. package/dist/output/processing-feedback.d.ts +14 -0
  104. package/dist/output/processing-feedback.d.ts.map +1 -1
  105. package/dist/output/processing-feedback.js +46 -7
  106. package/dist/output/processing-feedback.js.map +1 -1
  107. package/dist/package.json +3 -3
  108. package/dist/session/context.d.ts +2 -0
  109. package/dist/session/context.d.ts.map +1 -1
  110. package/dist/session/context.js +43 -13
  111. package/dist/session/context.js.map +1 -1
  112. package/dist/tsconfig.json +1 -0
  113. package/dist/types/command.types.d.ts +15 -1
  114. package/dist/types/command.types.d.ts.map +1 -1
  115. package/dist/types/llm.types.d.ts +4 -0
  116. package/dist/types/llm.types.d.ts.map +1 -1
  117. package/dist/ui/dashboard/detail-panels/spending-panel.d.ts +9 -0
  118. package/dist/ui/dashboard/detail-panels/spending-panel.d.ts.map +1 -0
  119. package/dist/ui/dashboard/detail-panels/spending-panel.js +28 -0
  120. package/dist/ui/dashboard/detail-panels/spending-panel.js.map +1 -0
  121. package/dist/ui/dashboard/hooks/use-navigation.js +1 -1
  122. package/dist/ui/dashboard/hooks/use-navigation.js.map +1 -1
  123. package/dist/ui/dashboard/index.d.ts +1 -0
  124. package/dist/ui/dashboard/index.d.ts.map +1 -1
  125. package/dist/ui/dashboard/index.js +1 -0
  126. package/dist/ui/dashboard/index.js.map +1 -1
  127. package/dist/ui/dashboard/types.d.ts +1 -1
  128. package/dist/ui/dashboard/types.d.ts.map +1 -1
  129. package/dist/ui/dashboard/views/session-details-view.d.ts.map +1 -1
  130. package/dist/ui/dashboard/views/session-details-view.js +5 -1
  131. package/dist/ui/dashboard/views/session-details-view.js.map +1 -1
  132. package/dist/utils/spending-tracker.d.ts +64 -0
  133. package/dist/utils/spending-tracker.d.ts.map +1 -0
  134. package/dist/utils/spending-tracker.js +107 -0
  135. package/dist/utils/spending-tracker.js.map +1 -0
  136. package/dist/utils/token-estimator.d.ts +31 -5
  137. package/dist/utils/token-estimator.d.ts.map +1 -1
  138. package/dist/utils/token-estimator.js +42 -20
  139. package/dist/utils/token-estimator.js.map +1 -1
  140. package/package.json +3 -3
@@ -91,13 +91,28 @@ export class SessionContextManager {
91
91
  * Merge context
92
92
  */
93
93
  mergeContext(context) {
94
- this.session.context = { ...this.session.context, ...context };
94
+ this.session.context = SessionContextManager.deepMerge(this.session.context, context);
95
95
  }
96
96
  /**
97
97
  * Clear specific context key
98
98
  */
99
99
  clearContext(key) {
100
- delete this.session.context[key];
100
+ const keys = key.split('.');
101
+ const lastKey = keys[keys.length - 1];
102
+ if (!lastKey)
103
+ return;
104
+ if (keys.length === 1) {
105
+ delete this.session.context[key];
106
+ return;
107
+ }
108
+ const parent = keys.slice(0, -1).reduce((obj, k) => {
109
+ if (obj && typeof obj === 'object')
110
+ return obj[k];
111
+ return undefined;
112
+ }, this.session.context);
113
+ if (parent && typeof parent === 'object') {
114
+ delete parent[lastKey];
115
+ }
101
116
  }
102
117
  /**
103
118
  * Clear all context
@@ -176,7 +191,7 @@ export class SessionContextManager {
176
191
  * Check if context has key
177
192
  */
178
193
  hasContext(key) {
179
- return key in this.session.context;
194
+ return this.getContext(key) !== undefined;
180
195
  }
181
196
  /**
182
197
  * Get context keys
@@ -200,23 +215,38 @@ export class SessionContextManager {
200
215
  * Get filtered context containing only specified keys
201
216
  * Useful for reducing token usage by only passing context that's actually referenced
202
217
  */
218
+ static buildNestedFromPath(path, value) {
219
+ const keys = path.split('.').reverse();
220
+ return keys.reduce((acc, k) => ({ [k]: acc }), value);
221
+ }
222
+ static deepMerge(target, source) {
223
+ const result = { ...target };
224
+ for (const [key, value] of Object.entries(source)) {
225
+ const existing = result[key];
226
+ if (value !== null &&
227
+ typeof value === 'object' &&
228
+ !Array.isArray(value) &&
229
+ existing !== null &&
230
+ typeof existing === 'object' &&
231
+ !Array.isArray(existing)) {
232
+ result[key] = SessionContextManager.deepMerge(existing, value);
233
+ }
234
+ else {
235
+ result[key] = value;
236
+ }
237
+ }
238
+ return result;
239
+ }
203
240
  getFilteredContext(keys) {
204
241
  if (keys.length === 0) {
205
242
  return {};
206
243
  }
207
- const filtered = {};
244
+ let filtered = {};
208
245
  for (const key of keys) {
209
246
  const value = this.getContext(key);
210
247
  if (value !== undefined) {
211
- // Handle nested keys by setting the value at the root key
212
- const rootKey = key.split('.')[0];
213
- if (rootKey && !(rootKey in filtered)) {
214
- // Get the full value for the root key to preserve nesting
215
- const rootValue = this.getContext(rootKey);
216
- if (rootValue !== undefined) {
217
- filtered[rootKey] = rootValue;
218
- }
219
- }
248
+ const nested = SessionContextManager.buildNestedFromPath(key, value);
249
+ filtered = SessionContextManager.deepMerge(filtered, nested);
220
250
  }
221
251
  }
222
252
  return filtered;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  "baseUrl": ".",
4
4
  "paths": {
5
5
  "src/*": ["./*"],
6
+ "batch/*": ["./batch/*"],
6
7
  "cleanup/*": ["./cleanup/*"],
7
8
  "cli/*": ["./cli/*"],
8
9
  "config/*": ["./config/*"],
@@ -134,11 +134,25 @@ export declare function extractMCPServerId(tool: MCPTool): string;
134
134
  * Cache configuration for a pipeline stage
135
135
  */
136
136
  export interface PipelineStage {
137
+ /** Opt this stage into batch processing when --batch flag is set */
138
+ batch?: boolean;
137
139
  /** Cache configuration for this stage */
138
140
  cache?: PipelineStageCacheConfig;
139
141
  conditional?: string;
140
142
  inputs?: Record<string, string>;
141
- /** Maximum number of tool-call iterations before forcing final output. Overrides the default of 20. */
143
+ /**
144
+ * Maximum number of tool-call failures before hard-stopping the stage.
145
+ * A failure is any tool result whose content starts with "Error:". Guidance
146
+ * responses (file-not-found hints, no-matches, etc.) are NOT counted.
147
+ * Overrides the default of 5 (MAX_TOOL_FAILURES_BEFORE_HARD_STOP).
148
+ */
149
+ max_tool_failures?: number;
150
+ /**
151
+ * Maximum number of tool-call iterations before forcing a final structured
152
+ * output. Increase for stages that legitimately need many tool calls (e.g.
153
+ * writing many test files, updating many documentation blocks).
154
+ * Overrides the default of 20.
155
+ */
142
156
  max_tool_iterations?: number;
143
157
  outputs?: string[];
144
158
  parallel?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"command.types.d.ts","sourceRoot":"","sources":["../../src/types/command.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.types.d.ts","sourceRoot":"","sources":["../../src/types/command.types.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,10 @@ export interface LLMToolResult {
62
62
  tool_call_id: string;
63
63
  }
64
64
  export interface LLMUsage {
65
+ /** True when the result came from a batch API call (50% cost reduction applied) */
66
+ batch_discount_applied?: boolean;
67
+ cache_creation_input_tokens?: number;
68
+ cache_read_input_tokens?: number;
65
69
  completion_tokens: number;
66
70
  prompt_tokens: number;
67
71
  total_tokens: number;
@@ -1 +1 @@
1
- {"version":3,"file":"llm.types.d.ts","sourceRoot":"","sources":["../../src/types/llm.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB,gBAAgB,CAAC,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,UAAU,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;CACF;AAED,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtE,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtD,YAAY,IAAI,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9G,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC/B,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;IACnF,qBAAqB,IAAI,MAAM,EAAE,CAAC;CAClC"}
1
+ {"version":3,"file":"llm.types.d.ts","sourceRoot":"","sources":["../../src/types/llm.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Spending Panel - Session cost breakdown for the live dashboard
3
+ */
4
+ import React from 'react';
5
+ import type { Session } from '../../../types/session.types.js';
6
+ export declare function SpendingPanel({ session }: {
7
+ session: Session;
8
+ }): React.JSX.Element;
9
+ //# sourceMappingURL=spending-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spending-panel.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/detail-panels/spending-panel.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWnD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgFlF"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { getTUIAdapter } from '../../tui-adapter.interface.js';
3
+ import { formatNumber } from '../../../utils/number-format.js';
4
+ import { getSpendingTracker } from '../../../utils/spending-tracker.js';
5
+ const tui = getTUIAdapter();
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
7
+ const { Box, Text } = tui;
8
+ // eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
9
+ export function SpendingPanel({ session }) {
10
+ const tracker = getSpendingTracker();
11
+ const sessionStart = session.created_at;
12
+ const records = tracker.getRecords({ since: sessionStart });
13
+ const totals = tracker.getTotals({ since: sessionStart });
14
+ // Group by command for the bar chart
15
+ const byEndpoint = tracker.getByEndpoint({ since: sessionStart });
16
+ const maxCost = byEndpoint.length > 0 ? Math.max(...byEndpoint.map((e) => e.totalCostUsd)) : 1;
17
+ // Top 5 most expensive in this session
18
+ const topExpensive = tracker.getExpensive(5, { since: sessionStart });
19
+ return (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", marginBottom: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Spending" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Session cost: " }), _jsxs(Text, { bold: true, color: "yellow", children: ["$", totals.totalCostUsd.toFixed(4)] }), totals.cacheSavingsUsd > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: " Cache saved: " }), _jsxs(Text, { bold: true, color: "green", children: ["$", totals.cacheSavingsUsd.toFixed(4)] })] }))] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Requests: " }), _jsx(Text, { color: "cyan", children: totals.requestCount }), _jsx(Text, { dimColor: true, children: " Tokens: " }), _jsx(Text, { color: "cyan", children: formatNumber(totals.totalTokens) })] })] }), byEndpoint.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Cost by Command:" }), byEndpoint.slice(0, 8).map((e, index) => {
20
+ const barWidth = 20;
21
+ const filled = Math.max(1, Math.floor((e.totalCostUsd / maxCost) * barWidth));
22
+ return (_jsxs(Box, { children: [_jsxs(Text, { children: [" ", (e.command.length > 14 ? e.command.substring(0, 11) + '...' : e.command).padEnd(14)] }), _jsx(Text, { color: "yellow", children: '█'.repeat(filled) }), _jsx(Text, { dimColor: true, children: '░'.repeat(barWidth - filled) }), _jsxs(Text, { children: [" $", e.totalCostUsd.toFixed(4)] })] }, index));
23
+ })] })), topExpensive.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Top Expensive Requests:" }), topExpensive.map((r, index) => {
24
+ const date = new Date(r.timestamp).toLocaleTimeString();
25
+ return (_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [index + 1, ". "] }), _jsx(Text, { color: "cyan", children: r.command.padEnd(12) }), _jsxs(Text, { dimColor: true, children: [" ", date, " "] }), _jsxs(Text, { color: "yellow", children: ["$", r.costUsd.toFixed(4)] }), _jsxs(Text, { dimColor: true, children: [" ", formatNumber(r.totalTokens), " tok"] })] }, index));
26
+ })] })), records.length === 0 && _jsx(Text, { dimColor: true, children: "No spending recorded this session" })] }));
27
+ }
28
+ //# sourceMappingURL=spending-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spending-panel.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/detail-panels/spending-panel.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { useCallback, useState } from 'react';
5
5
  const TAB_ORDER = ['overview', 'performance', 'agents', 'cache', 'audit'];
6
- const SUB_TAB_ORDER = ['overview', 'optimization', 'quality', 'tokens'];
6
+ const SUB_TAB_ORDER = ['overview', 'optimization', 'quality', 'tokens', 'spending'];
7
7
  export function useNavigation() {
8
8
  const [activeTab, setActiveTab] = useState('overview');
9
9
  const [viewMode, setViewMode] = useState('dashboard');
@@ -1 +1 @@
1
- {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/hooks/use-navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/hooks/use-navigation.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export { OptimizationPanel } from './detail-panels/optimization-panel.js';
27
27
  export { QualityPanel } from './detail-panels/quality-panel.js';
28
28
  export { RunningTaskPanel } from './detail-panels/running-task-panel.js';
29
29
  export { SessionInfoPanel } from './detail-panels/session-info-panel.js';
30
+ export { SpendingPanel } from './detail-panels/spending-panel.js';
30
31
  export { TokenUsagePanel } from './detail-panels/token-usage-panel.js';
31
32
  export { MCPSessionPanel } from './detail-panels/tool-calls-panel.js';
32
33
  export { WorktreeStatsPanel } from './detail-panels/worktree-stats-panel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dashboard/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dashboard/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -31,6 +31,7 @@ export { OptimizationPanel } from './detail-panels/optimization-panel.js';
31
31
  export { QualityPanel } from './detail-panels/quality-panel.js';
32
32
  export { RunningTaskPanel } from './detail-panels/running-task-panel.js';
33
33
  export { SessionInfoPanel } from './detail-panels/session-info-panel.js';
34
+ export { SpendingPanel } from './detail-panels/spending-panel.js';
34
35
  export { TokenUsagePanel } from './detail-panels/token-usage-panel.js';
35
36
  export { MCPSessionPanel } from './detail-panels/tool-calls-panel.js';
36
37
  export { WorktreeStatsPanel } from './detail-panels/worktree-stats-panel.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/dashboard/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/dashboard/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,QAAQ;AACR,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -59,7 +59,7 @@ export interface WorktreeDiagramEntry {
59
59
  /** Top-level dashboard tabs */
60
60
  export type DashboardTab = 'agents' | 'audit' | 'cache' | 'overview' | 'performance';
61
61
  /** Session details sub-tabs */
62
- export type SessionSubTab = 'optimization' | 'overview' | 'quality' | 'tokens';
62
+ export type SessionSubTab = 'optimization' | 'overview' | 'quality' | 'spending' | 'tokens';
63
63
  /** Navigation view mode */
64
64
  export type ViewMode = 'dashboard' | 'details';
65
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/dashboard/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AAErF,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/E,2BAA2B;AAC3B,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/dashboard/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AAErF,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE5F,2BAA2B;AAC3B,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-details-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0BxD,wBAAgB,kBAAkB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,EAAE;IACF,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsDpB"}
1
+ {"version":3,"file":"session-details-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA4BxD,wBAAgB,kBAAkB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,EAAE;IACF,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsDpB"}
@@ -10,6 +10,7 @@ import { OptimizationPanel } from '../../dashboard/detail-panels/optimization-pa
10
10
  import { QualityPanel } from '../../dashboard/detail-panels/quality-panel.js';
11
11
  import { RunningTaskPanel } from '../../dashboard/detail-panels/running-task-panel.js';
12
12
  import { SessionInfoPanel } from '../../dashboard/detail-panels/session-info-panel.js';
13
+ import { SpendingPanel } from '../../dashboard/detail-panels/spending-panel.js';
13
14
  import { TokenUsagePanel } from '../../dashboard/detail-panels/token-usage-panel.js';
14
15
  import { MCPSessionPanel } from '../../dashboard/detail-panels/tool-calls-panel.js';
15
16
  import { WorktreeStatsPanel } from '../../dashboard/detail-panels/worktree-stats-panel.js';
@@ -21,7 +22,8 @@ const SUB_TAB_CONFIG = [
21
22
  { label: 'Overview', tab: 'overview' },
22
23
  { label: 'Optimisation', tab: 'optimization' },
23
24
  { label: 'Quality', tab: 'quality' },
24
- { label: 'Tokens', tab: 'tokens' }
25
+ { label: 'Tokens', tab: 'tokens' },
26
+ { label: 'Spending', tab: 'spending' }
25
27
  ];
26
28
  // eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
27
29
  export function SessionDetailsView({ activeSubTab, onBack, onExit, session }) {
@@ -61,6 +63,8 @@ function SubTabContent({ activeSubTab, session }) {
61
63
  return _jsx(OptimizationPanel, { session: session });
62
64
  case 'quality':
63
65
  return _jsx(QualityPanel, { session: session });
66
+ case 'spending':
67
+ return _jsx(SpendingPanel, { session: session });
64
68
  case 'tokens':
65
69
  return _jsx(TokenUsagePanel, { session: session });
66
70
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"session-details-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-details-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Spending Tracker - Persistent per-request cost ledger
3
+ *
4
+ * Appends each request's cost data to .valora/spending.jsonl
5
+ * (one JSON record per line for easy streaming and appending).
6
+ */
7
+ export interface EndpointSummary {
8
+ avgCostUsd: number;
9
+ cacheSavingsUsd: number;
10
+ command: string;
11
+ requestCount: number;
12
+ totalCostUsd: number;
13
+ totalTokens: number;
14
+ }
15
+ export interface GetRecordsOptions {
16
+ command?: string;
17
+ since?: string;
18
+ }
19
+ export interface SpendingRecord {
20
+ batchDiscounted: boolean;
21
+ cacheReadTokens: number;
22
+ cacheSavingsUsd: number;
23
+ cacheWriteTokens: number;
24
+ command: string;
25
+ completionTokens: number;
26
+ costUsd: number;
27
+ durationMs: number;
28
+ id: string;
29
+ model: string;
30
+ promptTokens: number;
31
+ stage: string;
32
+ timestamp: string;
33
+ totalTokens: number;
34
+ }
35
+ export interface SpendingTotals {
36
+ cacheSavingsUsd: number;
37
+ requestCount: number;
38
+ totalCostUsd: number;
39
+ totalTokens: number;
40
+ }
41
+ export declare class SpendingTracker {
42
+ /**
43
+ * Append a spending record to the JSONL file
44
+ */
45
+ record(r: SpendingRecord): void;
46
+ /**
47
+ * Read all records, optionally filtered by command and/or date
48
+ */
49
+ getRecords(opts?: GetRecordsOptions): SpendingRecord[];
50
+ /**
51
+ * Group records by command (endpoint), sorted by total cost descending
52
+ */
53
+ getByEndpoint(opts?: GetRecordsOptions): EndpointSummary[];
54
+ /**
55
+ * Return the top N most expensive records
56
+ */
57
+ getExpensive(limit: number, opts?: GetRecordsOptions): SpendingRecord[];
58
+ /**
59
+ * Return aggregate totals across all (optionally filtered) records
60
+ */
61
+ getTotals(opts?: GetRecordsOptions): SpendingTotals;
62
+ }
63
+ export declare function getSpendingTracker(): SpendingTracker;
64
+ //# sourceMappingURL=spending-tracker.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Spending Tracker - Persistent per-request cost ledger
3
+ *
4
+ * Appends each request's cost data to .valora/spending.jsonl
5
+ * (one JSON record per line for easy streaming and appending).
6
+ */
7
+ import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'fs';
8
+ import { join } from 'path';
9
+ import { getRuntimeDataDir } from './paths.js';
10
+ const getSpendingFile = () => join(getRuntimeDataDir(), 'spending.jsonl');
11
+ export class SpendingTracker {
12
+ /**
13
+ * Append a spending record to the JSONL file
14
+ */
15
+ record(r) {
16
+ try {
17
+ ensureDir();
18
+ appendFileSync(getSpendingFile(), JSON.stringify(r) + '\n', 'utf8');
19
+ }
20
+ catch {
21
+ // Non-fatal: spending tracking should not break the main flow
22
+ }
23
+ }
24
+ /**
25
+ * Read all records, optionally filtered by command and/or date
26
+ */
27
+ getRecords(opts) {
28
+ const file = getSpendingFile();
29
+ if (!existsSync(file))
30
+ return [];
31
+ try {
32
+ const lines = readFileSync(file, 'utf8').split('\n').filter(Boolean);
33
+ let records = lines.map((line) => JSON.parse(line));
34
+ if (opts?.command) {
35
+ records = records.filter((r) => r.command === opts.command);
36
+ }
37
+ if (opts?.since) {
38
+ const since = new Date(opts.since).getTime();
39
+ records = records.filter((r) => new Date(r.timestamp).getTime() >= since);
40
+ }
41
+ return records;
42
+ }
43
+ catch {
44
+ return [];
45
+ }
46
+ }
47
+ /**
48
+ * Group records by command (endpoint), sorted by total cost descending
49
+ */
50
+ getByEndpoint(opts) {
51
+ const records = this.getRecords(opts);
52
+ const byCommand = new Map();
53
+ for (const r of records) {
54
+ const existing = byCommand.get(r.command);
55
+ if (existing) {
56
+ existing.totalCostUsd += r.costUsd;
57
+ existing.totalTokens += r.totalTokens;
58
+ existing.requestCount += 1;
59
+ existing.cacheSavingsUsd += r.cacheSavingsUsd;
60
+ existing.avgCostUsd = existing.totalCostUsd / existing.requestCount;
61
+ }
62
+ else {
63
+ byCommand.set(r.command, {
64
+ avgCostUsd: r.costUsd,
65
+ cacheSavingsUsd: r.cacheSavingsUsd,
66
+ command: r.command,
67
+ requestCount: 1,
68
+ totalCostUsd: r.costUsd,
69
+ totalTokens: r.totalTokens
70
+ });
71
+ }
72
+ }
73
+ return Array.from(byCommand.values()).sort((a, b) => b.totalCostUsd - a.totalCostUsd);
74
+ }
75
+ /**
76
+ * Return the top N most expensive records
77
+ */
78
+ getExpensive(limit, opts) {
79
+ return this.getRecords(opts)
80
+ .sort((a, b) => b.costUsd - a.costUsd)
81
+ .slice(0, limit);
82
+ }
83
+ /**
84
+ * Return aggregate totals across all (optionally filtered) records
85
+ */
86
+ getTotals(opts) {
87
+ const records = this.getRecords(opts);
88
+ return records.reduce((acc, r) => ({
89
+ cacheSavingsUsd: acc.cacheSavingsUsd + r.cacheSavingsUsd,
90
+ requestCount: acc.requestCount + 1,
91
+ totalCostUsd: acc.totalCostUsd + r.costUsd,
92
+ totalTokens: acc.totalTokens + r.totalTokens
93
+ }), { cacheSavingsUsd: 0, requestCount: 0, totalCostUsd: 0, totalTokens: 0 });
94
+ }
95
+ }
96
+ function ensureDir() {
97
+ const dir = getRuntimeDataDir();
98
+ if (!existsSync(dir)) {
99
+ mkdirSync(dir, { recursive: true });
100
+ }
101
+ }
102
+ let instance = null;
103
+ export function getSpendingTracker() {
104
+ instance ??= new SpendingTracker();
105
+ return instance;
106
+ }
107
+ //# sourceMappingURL=spending-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spending-tracker.js","sourceRoot":"","sources":["../../src/utils/spending-tracker.ts"],"names":[],"mappings":"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"}