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

Function saveCurrentSessionCosts

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

Source from the content-addressed store, hash-verified

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