Expose exact per-response usage in raw app-server events (#32985)

## Why

Clients that account for individual upstream Responses API calls need the exact
usage for each completion rather than accumulated or estimated thread usage.

## What changed

- Add the opt-in `rawResponse/completed` app-server notification with the
  `threadId`, `turnId`, `responseId`, and upstream `usage` payload.
- Emit the transient event for normal turns and compaction requests when
  `experimentalRawEvents` is enabled. The event is not persisted or replayed,
  and `usage` is `null` when the upstream response omits it.
- Export the notification in the app-server schemas and document its behavior.

## Testing

- Cover exact token breakdowns for turn and compaction completions.

GitOrigin-RevId: 49040a060bf1784c1ff1dd62112efb4a778428c4
This commit is contained in:
Dylan Hurd authored and copyberry committed 2026-07-14 06:39:42 +00:00
1 parent 393f64565a
commit 1c9f890c05
24 files changed
+387 -7

No files matched your search

+2 -1
View File
@@ -60,7 +60,8 @@ const SPECIAL_DEFINITIONS: &[&str] = &[
const FLAT_V2_SHARED_DEFINITIONS: &[&str] = &["ClientRequest", "ServerNotification"];
const V1_CLIENT_REQUEST_METHODS: &[&str] =
&["getConversationSummary", "gitDiffToRemote", "getAuthStatus"];
const EXCLUDED_SERVER_NOTIFICATION_METHODS_FOR_JSON: &[&str] = &["rawResponseItem/completed"];
const EXCLUDED_SERVER_NOTIFICATION_METHODS_FOR_JSON: &[&str] =
&["rawResponseItem/completed", "rawResponse/completed"];
#[derive(Clone)]
pub struct GeneratedSchema {