feat(ai): add reasoning token counts to Usage

Add optional reasoning?: number to Usage as a subset of output. Populate
for Anthropic (output_tokens_details.thinking_tokens), OpenAI
Responses/Codex/Azure (output_tokens_details.reasoning_tokens), OpenAI
Completions (completion_tokens_details.reasoning_tokens), and Google
Generative AI / Vertex (thoughtsTokenCount). Bedrock Converse and Mistral
do not return a reasoning breakdown, so they stay unset.

closes #6057
This commit is contained in:
Mario Zechner
2026-06-25 10:34:47 +02:00
parent 5c76ae407d
commit d7868b0998
7 changed files with 23 additions and 0 deletions
@@ -312,6 +312,7 @@ export async function processResponsesStream<TApi extends Api>(
output: response.usage.output_tokens || 0,
cacheRead: cachedTokens,
cacheWrite: 0,
reasoning: response.usage.output_tokens_details?.reasoning_tokens || 0,
totalTokens: response.usage.total_tokens || 0,
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
};