Track prompt cache write token usage (#33454)

## What changed

- Parse `cache_write_tokens` from response input token details and carry it through token usage aggregation.
- Expose `cache_write_input_tokens` in protocol, app-server, exec, and TypeScript SDK usage events, defaulting it to zero for compatibility with older payloads.
- Report cache-write usage in analytics, metrics, traces, and rollout data alongside existing cache-read usage.

## Testing

- Add coverage for response parsing, usage event output, aggregation, analytics, metrics, and telemetry fields.

GitOrigin-RevId: 634e4fbe3086a8923c0ee13b622573e7d9d221bd
This commit is contained in:
Eric Traut
2026-07-16 00:22:53 +00:00
committed by copyberry
parent 78d4a563f9
commit 2edad72de3
46 changed files with 207 additions and 31 deletions
+2
View File
@@ -23,6 +23,8 @@ export type Usage = {
input_tokens: number;
/** The number of cached input tokens used during the turn. */
cached_input_tokens: number;
/** The number of input tokens written to the prompt cache during the turn. */
cache_write_input_tokens: number;
/** The number of output tokens used during the turn. */
output_tokens: number;
/** The number of reasoning output tokens used during the turn. */
+2
View File
@@ -103,6 +103,8 @@ export class Thread {
}
if (parsed.type === "thread.started") {
this._id = parsed.thread_id;
} else if (parsed.type === "turn.completed") {
parsed.usage.cache_write_input_tokens ??= 0;
}
yield parsed;
}