MCPcopy Index your code
hub / github.com/codeaashu/claude-code / accumulateUsage

Function accumulateUsage

src/services/api/claude.ts:2993–3038  ·  view source on GitHub ↗
(
  totalUsage: Readonly<NonNullableUsage>,
  messageUsage: Readonly<NonNullableUsage>,
)

Source from the content-addressed store, hash-verified

2991 * Used to track cumulative usage across multiple assistant turns.
2992 */
2993export function accumulateUsage(
2994 totalUsage: Readonly<NonNullableUsage>,
2995 messageUsage: Readonly<NonNullableUsage>,
2996): NonNullableUsage {
2997 return {
2998 input_tokens: totalUsage.input_tokens + messageUsage.input_tokens,
2999 cache_creation_input_tokens:
3000 totalUsage.cache_creation_input_tokens +
3001 messageUsage.cache_creation_input_tokens,
3002 cache_read_input_tokens:
3003 totalUsage.cache_read_input_tokens + messageUsage.cache_read_input_tokens,
3004 output_tokens: totalUsage.output_tokens + messageUsage.output_tokens,
3005 server_tool_use: {
3006 web_search_requests:
3007 totalUsage.server_tool_use.web_search_requests +
3008 messageUsage.server_tool_use.web_search_requests,
3009 web_fetch_requests:
3010 totalUsage.server_tool_use.web_fetch_requests +
3011 messageUsage.server_tool_use.web_fetch_requests,
3012 },
3013 service_tier: messageUsage.service_tier, // Use the most recent service tier
3014 cache_creation: {
3015 ephemeral_1h_input_tokens:
3016 totalUsage.cache_creation.ephemeral_1h_input_tokens +
3017 messageUsage.cache_creation.ephemeral_1h_input_tokens,
3018 ephemeral_5m_input_tokens:
3019 totalUsage.cache_creation.ephemeral_5m_input_tokens +
3020 messageUsage.cache_creation.ephemeral_5m_input_tokens,
3021 },
3022 // See comment in updateUsage — field is not on NonNullableUsage to keep
3023 // the string out of external builds.
3024 ...(feature('CACHED_MICROCOMPACT')
3025 ? {
3026 cache_deleted_input_tokens:
3027 ((totalUsage as unknown as { cache_deleted_input_tokens?: number })
3028 .cache_deleted_input_tokens ?? 0) +
3029 ((
3030 messageUsage as unknown as { cache_deleted_input_tokens?: number }
3031 ).cache_deleted_input_tokens ?? 0),
3032 }
3033 : {}),
3034 inference_geo: messageUsage.inference_geo, // Use the most recent
3035 iterations: messageUsage.iterations, // Use the most recent
3036 speed: messageUsage.speed, // Use the most recent
3037 }
3038}
3039
3040function isToolResultBlock(
3041 block: unknown,

Callers 2

submitMessageMethod · 0.85
runForkedAgentFunction · 0.85

Calls 1

featureFunction · 0.85

Tested by

no test coverage detected