@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.
- package/README.md +2 -2
- package/data/commands/create-backlog.md +4 -0
- package/data/commands/create-prd.md +3 -0
- package/data/commands/generate-docs.md +4 -0
- package/data/commands/implement.md +2 -0
- package/data/commands/plan-architecture.md +1 -0
- package/data/commands/plan-implementation.md +2 -0
- package/data/commands/refine-specs.md +2 -0
- package/data/commands/refine-task.md +2 -0
- package/data/commands/review-code.md +1 -0
- package/data/commands/review-functional.md +1 -0
- package/data/commands/review-plan.md +5 -0
- package/dist/batch/batch-eligibility.d.ts +17 -0
- package/dist/batch/batch-eligibility.d.ts.map +1 -0
- package/dist/batch/batch-eligibility.js +22 -0
- package/dist/batch/batch-eligibility.js.map +1 -0
- package/dist/batch/batch-orchestrator.d.ts +35 -0
- package/dist/batch/batch-orchestrator.d.ts.map +1 -0
- package/dist/batch/batch-orchestrator.js +121 -0
- package/dist/batch/batch-orchestrator.js.map +1 -0
- package/dist/batch/batch-provider.interface.d.ts +14 -0
- package/dist/batch/batch-provider.interface.d.ts.map +1 -0
- package/dist/batch/batch-provider.interface.js +9 -0
- package/dist/batch/batch-provider.interface.js.map +1 -0
- package/dist/batch/batch-session.d.ts +29 -0
- package/dist/batch/batch-session.d.ts.map +1 -0
- package/dist/batch/batch-session.js +91 -0
- package/dist/batch/batch-session.js.map +1 -0
- package/dist/batch/batch.types.d.ts +48 -0
- package/dist/batch/batch.types.d.ts.map +1 -0
- package/dist/batch/batch.types.js +5 -0
- package/dist/batch/batch.types.js.map +1 -0
- package/dist/batch/providers/anthropic.batch-provider.d.ts +33 -0
- package/dist/batch/providers/anthropic.batch-provider.d.ts.map +1 -0
- package/dist/batch/providers/anthropic.batch-provider.js +106 -0
- package/dist/batch/providers/anthropic.batch-provider.js.map +1 -0
- package/dist/batch/providers/google.batch-provider.d.ts +32 -0
- package/dist/batch/providers/google.batch-provider.d.ts.map +1 -0
- package/dist/batch/providers/google.batch-provider.js +41 -0
- package/dist/batch/providers/google.batch-provider.js.map +1 -0
- package/dist/batch/providers/openai.batch-provider.d.ts +32 -0
- package/dist/batch/providers/openai.batch-provider.d.ts.map +1 -0
- package/dist/batch/providers/openai.batch-provider.js +151 -0
- package/dist/batch/providers/openai.batch-provider.js.map +1 -0
- package/dist/cli/command-executor.d.ts +5 -0
- package/dist/cli/command-executor.d.ts.map +1 -1
- package/dist/cli/command-executor.js +63 -11
- package/dist/cli/command-executor.js.map +1 -1
- package/dist/cli/commands/batch.command.d.ts +14 -0
- package/dist/cli/commands/batch.command.d.ts.map +1 -0
- package/dist/cli/commands/batch.command.js +174 -0
- package/dist/cli/commands/batch.command.js.map +1 -0
- package/dist/cli/commands/monitoring.d.ts.map +1 -1
- package/dist/cli/commands/monitoring.js +119 -0
- package/dist/cli/commands/monitoring.js.map +1 -1
- package/dist/cli/flags.d.ts +1 -0
- package/dist/cli/flags.d.ts.map +1 -1
- package/dist/cli/flags.js +1 -0
- package/dist/cli/flags.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/result-presenter.d.ts +6 -2
- package/dist/cli/result-presenter.d.ts.map +1 -1
- package/dist/cli/result-presenter.js +22 -12
- package/dist/cli/result-presenter.js.map +1 -1
- package/dist/cli/types/cli-options.types.d.ts +1 -0
- package/dist/cli/types/cli-options.types.d.ts.map +1 -1
- package/dist/config/schema.d.ts +87 -12
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/executor/stage-executor.d.ts +16 -0
- package/dist/executor/stage-executor.d.ts.map +1 -1
- package/dist/executor/stage-executor.js +107 -4
- package/dist/executor/stage-executor.js.map +1 -1
- package/dist/executor/tool-execution.service.d.ts +37 -4
- package/dist/executor/tool-execution.service.d.ts.map +1 -1
- package/dist/executor/tool-execution.service.js +90 -25
- package/dist/executor/tool-execution.service.js.map +1 -1
- package/dist/executor/tools/search-tools.service.js +3 -3
- package/dist/executor/tools/search-tools.service.js.map +1 -1
- package/dist/executor/tools/session-tools.service.js +5 -5
- package/dist/executor/tools/session-tools.service.js.map +1 -1
- package/dist/executor/variable-resolution.service.d.ts.map +1 -1
- package/dist/executor/variable-resolution.service.js +1 -2
- package/dist/executor/variable-resolution.service.js.map +1 -1
- package/dist/executor/variables.d.ts +1 -5
- package/dist/executor/variables.d.ts.map +1 -1
- package/dist/executor/variables.js +0 -21
- package/dist/executor/variables.js.map +1 -1
- package/dist/llm/providers/anthropic.provider.d.ts +30 -1
- package/dist/llm/providers/anthropic.provider.d.ts.map +1 -1
- package/dist/llm/providers/anthropic.provider.js +163 -6
- package/dist/llm/providers/anthropic.provider.js.map +1 -1
- package/dist/llm/providers/google.provider.d.ts +9 -0
- package/dist/llm/providers/google.provider.d.ts.map +1 -1
- package/dist/llm/providers/google.provider.js +25 -10
- package/dist/llm/providers/google.provider.js.map +1 -1
- package/dist/llm/providers/openai.provider.d.ts +17 -1
- package/dist/llm/providers/openai.provider.d.ts.map +1 -1
- package/dist/llm/providers/openai.provider.js +93 -25
- package/dist/llm/providers/openai.provider.js.map +1 -1
- package/dist/output/processing-feedback.d.ts +14 -0
- package/dist/output/processing-feedback.d.ts.map +1 -1
- package/dist/output/processing-feedback.js +46 -7
- package/dist/output/processing-feedback.js.map +1 -1
- package/dist/package.json +3 -3
- package/dist/session/context.d.ts +2 -0
- package/dist/session/context.d.ts.map +1 -1
- package/dist/session/context.js +43 -13
- package/dist/session/context.js.map +1 -1
- package/dist/tsconfig.json +1 -0
- package/dist/types/command.types.d.ts +15 -1
- package/dist/types/command.types.d.ts.map +1 -1
- package/dist/types/llm.types.d.ts +4 -0
- package/dist/types/llm.types.d.ts.map +1 -1
- package/dist/ui/dashboard/detail-panels/spending-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/spending-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/spending-panel.js +28 -0
- package/dist/ui/dashboard/detail-panels/spending-panel.js.map +1 -0
- package/dist/ui/dashboard/hooks/use-navigation.js +1 -1
- package/dist/ui/dashboard/hooks/use-navigation.js.map +1 -1
- package/dist/ui/dashboard/index.d.ts +1 -0
- package/dist/ui/dashboard/index.d.ts.map +1 -1
- package/dist/ui/dashboard/index.js +1 -0
- package/dist/ui/dashboard/index.js.map +1 -1
- package/dist/ui/dashboard/types.d.ts +1 -1
- package/dist/ui/dashboard/types.d.ts.map +1 -1
- package/dist/ui/dashboard/views/session-details-view.d.ts.map +1 -1
- package/dist/ui/dashboard/views/session-details-view.js +5 -1
- package/dist/ui/dashboard/views/session-details-view.js.map +1 -1
- package/dist/utils/spending-tracker.d.ts +64 -0
- package/dist/utils/spending-tracker.d.ts.map +1 -0
- package/dist/utils/spending-tracker.js +107 -0
- package/dist/utils/spending-tracker.js.map +1 -0
- package/dist/utils/token-estimator.d.ts +31 -5
- package/dist/utils/token-estimator.d.ts.map +1 -1
- package/dist/utils/token-estimator.js +42 -20
- package/dist/utils/token-estimator.js.map +1 -1
- package/package.json +3 -3
package/dist/session/context.js
CHANGED
|
@@ -91,13 +91,28 @@ export class SessionContextManager {
|
|
|
91
91
|
* Merge context
|
|
92
92
|
*/
|
|
93
93
|
mergeContext(context) {
|
|
94
|
-
this.session.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
|
-
|
|
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
|
|
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
|
-
|
|
244
|
+
let filtered = {};
|
|
208
245
|
for (const key of keys) {
|
|
209
246
|
const value = this.getContext(key);
|
|
210
247
|
if (value !== undefined) {
|
|
211
|
-
|
|
212
|
-
|
|
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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"}
|
package/dist/tsconfig.json
CHANGED
|
@@ -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
|
-
/**
|
|
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":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI9C,MAAM,SAAS,GAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1F,MAAM,aAAa,GAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/hooks/use-navigation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI9C,MAAM,SAAS,GAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1F,MAAM,aAAa,GAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAuBrG,MAAM,UAAU,aAAa;IAC5B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAe,UAAU,CAAC,CAAC;IACrE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAW,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,UAAU,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAE,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,GAAiB,EAAE,EAAE;QAChD,YAAY,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,aAAa,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAE,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,aAAa,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAE,CAAC;QAChF,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QACrD,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvB,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACN,SAAS;QACT,YAAY;QACZ,UAAU;QACV,UAAU;QACV,OAAO;QACP,UAAU;QACV,OAAO;QACP,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,MAAM;QACN,WAAW;QACX,iBAAiB;QACjB,eAAe;QACf,QAAQ;KACR,CAAC;AACH,CAAC"}
|
|
@@ -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;
|
|
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;
|
|
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":";AAAA;;GAEG;AAEH,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,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,MAAM,cAAc,GAAiD;IACpE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACtC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;IAC9C,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;
|
|
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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"}
|