MCPcopy
hub / github.com/claude-code-best/claude-code / saveCurrentSessionCosts

Function saveCurrentSessionCosts

src/cost-tracker.ts:144–176  ·  view source on GitHub ↗
(fpsMetrics?: FpsMetrics)

Source from the content-addressed store, hash-verified

142 * Call this before switching sessions to avoid losing accumulated costs.
143 */
144export function saveCurrentSessionCosts(fpsMetrics?: FpsMetrics): void {
145 saveCurrentProjectConfig(current => ({
146 ...current,
147 lastCost: getTotalCostUSD(),
148 lastAPIDuration: getTotalAPIDuration(),
149 lastAPIDurationWithoutRetries: getTotalAPIDurationWithoutRetries(),
150 lastToolDuration: getTotalToolDuration(),
151 lastDuration: getTotalDuration(),
152 lastLinesAdded: getTotalLinesAdded(),
153 lastLinesRemoved: getTotalLinesRemoved(),
154 lastTotalInputTokens: getTotalInputTokens(),
155 lastTotalOutputTokens: getTotalOutputTokens(),
156 lastTotalCacheCreationInputTokens: getTotalCacheCreationInputTokens(),
157 lastTotalCacheReadInputTokens: getTotalCacheReadInputTokens(),
158 lastTotalWebSearchRequests: getTotalWebSearchRequests(),
159 lastFpsAverage: fpsMetrics?.averageFps,
160 lastFpsLow1Pct: fpsMetrics?.low1PctFps,
161 lastModelUsage: Object.fromEntries(
162 Object.entries(getModelUsage()).map(([model, usage]) => [
163 model,
164 {
165 inputTokens: usage.inputTokens,
166 outputTokens: usage.outputTokens,
167 cacheReadInputTokens: usage.cacheReadInputTokens,
168 cacheCreationInputTokens: usage.cacheCreationInputTokens,
169 webSearchRequests: usage.webSearchRequests,
170 costUSD: usage.costUSD,
171 },
172 ]),
173 ),
174 lastSessionId: getSessionId(),
175 }))
176}
177
178function formatCost(cost: number, maxDecimalPlaces: number = 4): string {
179 return `$${cost > 0.5 ? round(cost, 100).toFixed(2) : cost.toFixed(maxDecimalPlaces)}`

Callers 2

fFunction · 0.85
REPLFunction · 0.85

Calls 15

saveCurrentProjectConfigFunction · 0.85
getTotalCostUSDFunction · 0.85
getTotalAPIDurationFunction · 0.85
getTotalToolDurationFunction · 0.85
getTotalDurationFunction · 0.85
getTotalLinesAddedFunction · 0.85
getTotalLinesRemovedFunction · 0.85
getTotalInputTokensFunction · 0.85
getTotalOutputTokensFunction · 0.85

Tested by

no test coverage detected