Files
OmniRoute/open-sse/utils/resolveResponsesCacheUsageDetails.ts
Diego Rodrigues de Sa e Souza ad4d286c85 fix(sse): forward cache-creation tokens through the responses usage hop (#13472) (#13790)
Merged in the 2026-09-16 sweep of the maintainer's own open PRs, at the owner's explicit instruction. No push was made to the PR branch: the merge took the head as the owning session left it (verified OPEN, non-draft and MERGEABLE against the release tip immediately before merging).
2026-09-16 06:13:29 -03:00

25 lines
1.1 KiB
TypeScript

import { pickCacheCreationTokens } from "./pickCacheCreationTokens.ts";
type CacheUsageSource = {
cache_creation_input_tokens?: number;
cache_write_tokens?: number;
input_tokens_details?: { cached_tokens?: number; cache_creation_tokens?: number };
prompt_tokens_details?: { cached_tokens?: number; cache_creation_tokens?: number };
};
/**
* Resolve the `input_tokens_details` object for a Responses API usage payload,
* merging cache READ (`cached_tokens`) and cache CREATION (`cache_creation_tokens`)
* tokens from any upstream shape instead of dropping the creation leg (#13472).
*/
export function resolveResponsesCacheUsageDetails(usage: CacheUsageSource) {
const cachedTokens =
usage.input_tokens_details?.cached_tokens ?? usage.prompt_tokens_details?.cached_tokens;
const cacheCreationTokens = pickCacheCreationTokens(usage);
if (!cachedTokens && !cacheCreationTokens) return undefined;
return {
...(cachedTokens ? { cached_tokens: cachedTokens } : {}),
...(cacheCreationTokens ? { cache_creation_tokens: cacheCreationTokens } : {}),
};
}