blob: 94a11f011b8db6030a894133d72188e366ec22a3 [file]
import type { LlmCallRecord } from '@maka/core';
import type { NormalizedUsage } from '../model-protocol.js';
type LlmCallUsageFields = Pick<
LlmCallRecord,
| 'inputTokens'
| 'outputTokens'
| 'cacheHitInputTokens'
| 'cacheMissInputTokens'
| 'cacheMissInputSource'
| 'cachedInputTokens'
| 'cacheWriteInputTokens'
| 'reasoningTokens'
| 'totalTokens'
| 'rawFinishReason'
| 'rawUsage'
>;
export function llmCallUsageFields(usage: NormalizedUsage): LlmCallUsageFields {
return {
inputTokens: usage.inputTokens,
outputTokens: usage.outputTokens,
cacheHitInputTokens: usage.cacheHitInputTokens,
cacheMissInputTokens: usage.cacheMissInputTokens,
cacheMissInputSource: usage.cacheMissInputSource,
cachedInputTokens: usage.cachedInputTokens,
cacheWriteInputTokens: usage.cacheWriteInputTokens,
reasoningTokens: usage.reasoningTokens,
totalTokens: usage.totalTokens,
...(usage.rawFinishReason !== undefined ? { rawFinishReason: usage.rawFinishReason } : {}),
...(usage.raw !== undefined ? { rawUsage: usage.raw } : {}),
};
}