Expose response usage metadata in completion events (#41087)

## What changed

- Parse optional `usage_metadata.amount` values from Responses API completion events without converting their string representation.
- Propagate the metadata through SSE and WebSocket streams, regular turns, and remote compaction.
- Add `usageMetadata` to the app-server `rawResponse/completed` notification and its generated schemas.

## Testing

- Cover missing, null, zero, and high-precision amounts, including completion events emitted during compaction.

GitOrigin-RevId: b16d81e8350eab0dc7ff613d0dc9dbed73041713
This commit is contained in:
Dylan Hurd authored and copyberry committed 2026-08-27 07:50:05 +00:00
1 parent b592a0bfed
commit 2c4a95736b
25 files changed
+250 -18

No files matched your search

@@ -17253,6 +17253,16 @@
"type": "null"
}
]
},
"usageMetadata": {
"anyOf": [
{
"$ref": "#/definitions/v2/ResponseUsageMetadata"
},
{
"type": "null"
}
]
}
},
"required": [
@@ -18501,6 +18511,18 @@
}
]
},
"ResponseUsageMetadata": {
"description": "Usage metadata reported for one upstream response.",
"properties": {
"amount": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"ResponsesApiWebSearchAction": {
"oneOf": [
{