mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-18 12:52:25 +03:00
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).
25 lines
1.1 KiB
TypeScript
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 } : {}),
|
|
};
|
|
}
|