@ai-sdk/google 2.0.58 → 2.0.60

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,19 @@
1
1
  # @ai-sdk/google
2
2
 
3
+ ## 2.0.60
4
+
5
+ ### Patch Changes
6
+
7
+ - 3f0102b: fix(provider/google): make `segment` optional in `groundingSupports` schema
8
+
9
+ Backport of #12002. When using image search grounding, the Google API returns `groundingSupports` entries without a `segment` field, causing schema validation to fail with "Invalid JSON response".
10
+
11
+ ## 2.0.59
12
+
13
+ ### Patch Changes
14
+
15
+ - 8cf6b86: fix(provider/google): preserve groundingMetadata and urlContextMetadata when they arrive in a stream chunk before the finishReason chunk
16
+
3
17
  ## 2.0.58
4
18
 
5
19
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -111,11 +111,11 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
111
111
  } | null | undefined;
112
112
  }[] | null | undefined;
113
113
  groundingSupports?: {
114
- segment: {
114
+ segment?: {
115
115
  startIndex?: number | null | undefined;
116
116
  endIndex?: number | null | undefined;
117
117
  text?: string | null | undefined;
118
- };
118
+ } | null | undefined;
119
119
  segment_text?: string | null | undefined;
120
120
  groundingChunkIndices?: number[] | null | undefined;
121
121
  supportChunkIndices?: number[] | null | undefined;
package/dist/index.d.ts CHANGED
@@ -111,11 +111,11 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
111
111
  } | null | undefined;
112
112
  }[] | null | undefined;
113
113
  groundingSupports?: {
114
- segment: {
114
+ segment?: {
115
115
  startIndex?: number | null | undefined;
116
116
  endIndex?: number | null | undefined;
117
117
  text?: string | null | undefined;
118
- };
118
+ } | null | undefined;
119
119
  segment_text?: string | null | undefined;
120
120
  groundingChunkIndices?: number[] | null | undefined;
121
121
  supportChunkIndices?: number[] | null | undefined;
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ module.exports = __toCommonJS(src_exports);
30
30
  var import_provider_utils15 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/version.ts
33
- var VERSION = true ? "2.0.58" : "0.0.0-test";
33
+ var VERSION = true ? "2.0.60" : "0.0.0-test";
34
34
 
35
35
  // src/google-generative-ai-embedding-model.ts
36
36
  var import_provider = require("@ai-sdk/provider");
@@ -1096,6 +1096,8 @@ var GoogleGenerativeAILanguageModel = class {
1096
1096
  totalTokens: void 0
1097
1097
  };
1098
1098
  let providerMetadata = void 0;
1099
+ let lastGroundingMetadata = null;
1100
+ let lastUrlContextMetadata = null;
1099
1101
  const generateId3 = this.config.generateId;
1100
1102
  let hasToolCalls = false;
1101
1103
  let currentTextBlockId = null;
@@ -1110,7 +1112,7 @@ var GoogleGenerativeAILanguageModel = class {
1110
1112
  controller.enqueue({ type: "stream-start", warnings });
1111
1113
  },
1112
1114
  transform(chunk, controller) {
1113
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
1115
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
1114
1116
  if (options.includeRawChunks) {
1115
1117
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
1116
1118
  }
@@ -1132,6 +1134,12 @@ var GoogleGenerativeAILanguageModel = class {
1132
1134
  return;
1133
1135
  }
1134
1136
  const content = candidate.content;
1137
+ if (candidate.groundingMetadata != null) {
1138
+ lastGroundingMetadata = candidate.groundingMetadata;
1139
+ }
1140
+ if (candidate.urlContextMetadata != null) {
1141
+ lastUrlContextMetadata = candidate.urlContextMetadata;
1142
+ }
1135
1143
  const sources = extractSources({
1136
1144
  groundingMetadata: candidate.groundingMetadata,
1137
1145
  generateId: generateId3
@@ -1283,9 +1291,9 @@ var GoogleGenerativeAILanguageModel = class {
1283
1291
  providerMetadata = {
1284
1292
  google: {
1285
1293
  promptFeedback: (_i = value.promptFeedback) != null ? _i : null,
1286
- groundingMetadata: (_j = candidate.groundingMetadata) != null ? _j : null,
1287
- urlContextMetadata: (_k = candidate.urlContextMetadata) != null ? _k : null,
1288
- safetyRatings: (_l = candidate.safetyRatings) != null ? _l : null
1294
+ groundingMetadata: lastGroundingMetadata,
1295
+ urlContextMetadata: lastUrlContextMetadata,
1296
+ safetyRatings: (_j = candidate.safetyRatings) != null ? _j : null
1289
1297
  }
1290
1298
  };
1291
1299
  if (usageMetadata != null) {
@@ -1463,7 +1471,7 @@ var getGroundingMetadataSchema = () => import_v45.z.object({
1463
1471
  startIndex: import_v45.z.number().nullish(),
1464
1472
  endIndex: import_v45.z.number().nullish(),
1465
1473
  text: import_v45.z.string().nullish()
1466
- }),
1474
+ }).nullish(),
1467
1475
  segment_text: import_v45.z.string().nullish(),
1468
1476
  groundingChunkIndices: import_v45.z.array(import_v45.z.number()).nullish(),
1469
1477
  supportChunkIndices: import_v45.z.array(import_v45.z.number()).nullish(),