@ai-sdk/google 3.0.77 → 3.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ai-sdk/google
2
2
 
3
+ ## 3.0.78
4
+
5
+ ### Patch Changes
6
+
7
+ - cf63828: fix(google): read `serviceTier` from `usageMetadata.serviceTier` in both generate and stream paths
8
+
9
+ The previous implementation read `serviceTier` from the `x-gemini-service-tier`
10
+ response header, which is only populated on non-streaming responses. Gemini
11
+ streaming includes the value in `usageMetadata.serviceTier` on every chunk, so
12
+ `providerMetadata.google.serviceTier` was always `null` for streams. Read from
13
+ `usageMetadata` for both paths instead.
14
+
3
15
  ## 3.0.77
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -171,6 +171,7 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
171
171
  candidatesTokenCount?: number | null | undefined;
172
172
  totalTokenCount?: number | null | undefined;
173
173
  trafficType?: string | null | undefined;
174
+ serviceTier?: string | null | undefined;
174
175
  promptTokensDetails?: {
175
176
  modality: string;
176
177
  tokenCount: number;
package/dist/index.d.ts CHANGED
@@ -171,6 +171,7 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
171
171
  candidatesTokenCount?: number | null | undefined;
172
172
  totalTokenCount?: number | null | undefined;
173
173
  trafficType?: string | null | undefined;
174
+ serviceTier?: string | null | undefined;
174
175
  promptTokensDetails?: {
175
176
  modality: string;
176
177
  tokenCount: number;
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ module.exports = __toCommonJS(index_exports);
30
30
  var import_provider_utils23 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/version.ts
33
- var VERSION = true ? "3.0.77" : "0.0.0-test";
33
+ var VERSION = true ? "3.0.78" : "0.0.0-test";
34
34
 
35
35
  // src/google-generative-ai-embedding-model.ts
36
36
  var import_provider = require("@ai-sdk/provider");
@@ -1711,7 +1711,7 @@ var GoogleGenerativeAILanguageModel = class {
1711
1711
  safetyRatings: (_p = candidate.safetyRatings) != null ? _p : null,
1712
1712
  usageMetadata: usageMetadata != null ? usageMetadata : null,
1713
1713
  finishMessage: (_q = candidate.finishMessage) != null ? _q : null,
1714
- serviceTier: (_r = responseHeaders == null ? void 0 : responseHeaders["x-gemini-service-tier"]) != null ? _r : null
1714
+ serviceTier: (_r = usageMetadata == null ? void 0 : usageMetadata.serviceTier) != null ? _r : null
1715
1715
  }
1716
1716
  },
1717
1717
  request: { body: args },
@@ -1723,7 +1723,6 @@ var GoogleGenerativeAILanguageModel = class {
1723
1723
  };
1724
1724
  }
1725
1725
  async doStream(options) {
1726
- var _a;
1727
1726
  const { args, warnings, providerOptionsName, extraHeaders } = await this.getArgs(options, { isStreaming: true });
1728
1727
  const headers = (0, import_provider_utils6.combineHeaders)(
1729
1728
  await (0, import_provider_utils6.resolve)(this.config.headers),
@@ -1749,7 +1748,6 @@ var GoogleGenerativeAILanguageModel = class {
1749
1748
  let providerMetadata = void 0;
1750
1749
  let lastGroundingMetadata = null;
1751
1750
  let lastUrlContextMetadata = null;
1752
- const serviceTier = (_a = responseHeaders == null ? void 0 : responseHeaders["x-gemini-service-tier"]) != null ? _a : null;
1753
1751
  const generateId3 = this.config.generateId;
1754
1752
  let hasToolCalls = false;
1755
1753
  let currentTextBlockId = null;
@@ -1794,7 +1792,7 @@ var GoogleGenerativeAILanguageModel = class {
1794
1792
  controller.enqueue({ type: "stream-start", warnings });
1795
1793
  },
1796
1794
  transform(chunk, controller) {
1797
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
1795
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
1798
1796
  if (options.includeRawChunks) {
1799
1797
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
1800
1798
  }
@@ -1807,7 +1805,7 @@ var GoogleGenerativeAILanguageModel = class {
1807
1805
  if (usageMetadata != null) {
1808
1806
  usage = usageMetadata;
1809
1807
  }
1810
- const candidate = (_a2 = value.candidates) == null ? void 0 : _a2[0];
1808
+ const candidate = (_a = value.candidates) == null ? void 0 : _a[0];
1811
1809
  if (candidate == null) {
1812
1810
  return;
1813
1811
  }
@@ -2114,7 +2112,7 @@ var GoogleGenerativeAILanguageModel = class {
2114
2112
  safetyRatings: (_n = candidate.safetyRatings) != null ? _n : null,
2115
2113
  usageMetadata: usageMetadata != null ? usageMetadata : null,
2116
2114
  finishMessage: (_o = candidate.finishMessage) != null ? _o : null,
2117
- serviceTier
2115
+ serviceTier: (_p = usage == null ? void 0 : usage.serviceTier) != null ? _p : null
2118
2116
  }
2119
2117
  };
2120
2118
  }
@@ -2373,6 +2371,7 @@ var usageSchema = import_v45.z.object({
2373
2371
  totalTokenCount: import_v45.z.number().nullish(),
2374
2372
  // https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType
2375
2373
  trafficType: import_v45.z.string().nullish(),
2374
+ serviceTier: import_v45.z.string().nullish(),
2376
2375
  // https://ai.google.dev/api/generate-content#Modality
2377
2376
  promptTokensDetails: tokenDetailsSchema,
2378
2377
  candidatesTokensDetails: tokenDetailsSchema