Skip to content

fix(provider/google): include usageMetadata in providerMetadata for non-streaming generate - #16460

Merged
R-Taneja merged 1 commit into
release-v5.0from
r-taneja/google-usagemetadata-generate-v5
Jun 30, 2026
Merged

fix(provider/google): include usageMetadata in providerMetadata for non-streaming generate#16460
R-Taneja merged 1 commit into
release-v5.0from
r-taneja/google-usagemetadata-generate-v5

Conversation

@R-Taneja

@R-Taneja R-Taneja commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

TODO:

  • Test

Background

doStream attaches usageMetadata (including promptTokensDetails) to providerMetadata.google, and v6/v7 do so in both generate and stream. But on the v5 line, doGenerate omitted it — so non-streaming consumers got no per-modality token breakdown in providerMetadata.

This matters because LanguageModelV2Usage has no raw field (unlike v3/v4), so providerMetadata.google.usageMetadata is the only place a consumer can recover promptTokensDetails for a non-streaming v5 request. The result was that per-modality usage (e.g. audio vs text input tokens, which Gemini prices differently) was unavailable for generateText calls.

Change

Mirror the streaming path: add usageMetadata: usageMetadata ?? null to doGenerate's providerMetadata.google block. The usageMetadata variable is already in scope. This brings v5 doGenerate in line with its own doStream and with v6/v7.

Testing

  • New unit test asserting doGenerate exposes usageMetadata (incl. promptTokensDetails) in providerMetadata.
  • Full google-generative-ai-language-model.test.ts passes (100 tests); no snapshot changes (existing tests assert specific providerMetadata.google fields rather than the whole object).

…on-streaming generate

doStream attaches usageMetadata (incl. promptTokensDetails) to
providerMetadata.google, and v6/v7 do so in both generate and stream, but v5's
doGenerate omitted it. This left non-streaming consumers without the
per-modality token breakdown. Mirror the streaming path so generate is
consistent.
@shaper

shaper commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

@R-Taneja
R-Taneja merged commit 8260f89 into release-v5.0 Jun 30, 2026
50 checks passed
@R-Taneja
R-Taneja deleted the r-taneja/google-usagemetadata-generate-v5 branch June 30, 2026 22:57
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

🚀 Published in:

Package Version
@ai-sdk/google 2.0.78 github npm
@ai-sdk/google-vertex 3.0.146 github npm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants