@ai-sdk/google 4.0.0-beta.7 → 4.0.0-beta.9

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
+ ## 4.0.0-beta.9
4
+
5
+ ### Patch Changes
6
+
7
+ - e59176c: chore(google): update v3 specs to v4
8
+
9
+ ## 4.0.0-beta.8
10
+
11
+ ### Patch Changes
12
+
13
+ - 4dac142: feat(google): add new finishMessage field in providerMetadata
14
+
3
15
  ## 4.0.0-beta.7
4
16
 
5
17
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
2
2
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
3
- import { ProviderV3, LanguageModelV3, ImageModelV3, EmbeddingModelV3, Experimental_VideoModelV3 } from '@ai-sdk/provider';
3
+ import { ProviderV4, LanguageModelV4, ImageModelV4, EmbeddingModelV4, Experimental_VideoModelV4 } from '@ai-sdk/provider';
4
4
 
5
5
  declare const googleErrorDataSchema: _ai_sdk_provider_utils.LazySchema<{
6
6
  error: {
@@ -73,6 +73,7 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
73
73
  })[] | null | undefined;
74
74
  } | null | undefined;
75
75
  finishReason?: string | null | undefined;
76
+ finishMessage?: string | null | undefined;
76
77
  safetyRatings?: {
77
78
  category?: string | null | undefined;
78
79
  probability?: string | null | undefined;
@@ -158,14 +159,21 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
158
159
  type GroundingMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['groundingMetadata']>;
159
160
  type UrlContextMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['urlContextMetadata']>;
160
161
  type SafetyRatingSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['safetyRatings']>[number];
162
+ type PromptFeedbackSchema = NonNullable<InferSchema<typeof responseSchema>['promptFeedback']>;
163
+ type UsageMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['usageMetadata']>;
161
164
 
162
165
  type GoogleGenerativeAIGroundingMetadata = GroundingMetadataSchema;
163
166
  type GoogleGenerativeAIUrlContextMetadata = UrlContextMetadataSchema;
164
167
  type GoogleGenerativeAISafetyRating = SafetyRatingSchema;
168
+ type GoogleGenerativeAIPromptFeedback = PromptFeedbackSchema;
169
+ type GoogleGenerativeAIUsageMetadata = UsageMetadataSchema;
165
170
  interface GoogleGenerativeAIProviderMetadata {
171
+ promptFeedback: GoogleGenerativeAIPromptFeedback | null;
166
172
  groundingMetadata: GoogleGenerativeAIGroundingMetadata | null;
167
173
  urlContextMetadata: GoogleGenerativeAIUrlContextMetadata | null;
168
174
  safetyRatings: GoogleGenerativeAISafetyRating[] | null;
175
+ usageMetadata: GoogleGenerativeAIUsageMetadata | null;
176
+ finishMessage: string | null;
169
177
  }
170
178
 
171
179
  type GoogleGenerativeAIImageModelId = 'imagen-4.0-generate-001' | 'imagen-4.0-ultra-generate-001' | 'imagen-4.0-fast-generate-001' | 'gemini-2.5-flash-image' | 'gemini-3-pro-image-preview' | 'gemini-3.1-flash-image-preview' | (string & {});
@@ -294,42 +302,42 @@ declare const googleTools: {
294
302
  }>;
295
303
  };
296
304
 
297
- interface GoogleGenerativeAIProvider extends ProviderV3 {
298
- (modelId: GoogleGenerativeAIModelId): LanguageModelV3;
299
- languageModel(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
300
- chat(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
305
+ interface GoogleGenerativeAIProvider extends ProviderV4 {
306
+ (modelId: GoogleGenerativeAIModelId): LanguageModelV4;
307
+ languageModel(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
308
+ chat(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
301
309
  /**
302
310
  * Creates a model for image generation.
303
311
  */
304
- image(modelId: GoogleGenerativeAIImageModelId, settings?: GoogleGenerativeAIImageSettings): ImageModelV3;
312
+ image(modelId: GoogleGenerativeAIImageModelId, settings?: GoogleGenerativeAIImageSettings): ImageModelV4;
305
313
  /**
306
314
  * @deprecated Use `chat()` instead.
307
315
  */
308
- generativeAI(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
316
+ generativeAI(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
309
317
  /**
310
318
  * Creates a model for text embeddings.
311
319
  */
312
- embedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
320
+ embedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
313
321
  /**
314
322
  * Creates a model for text embeddings.
315
323
  */
316
- embeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
324
+ embeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
317
325
  /**
318
326
  * @deprecated Use `embedding` instead.
319
327
  */
320
- textEmbedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
328
+ textEmbedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
321
329
  /**
322
330
  * @deprecated Use `embeddingModel` instead.
323
331
  */
324
- textEmbeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
332
+ textEmbeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
325
333
  /**
326
334
  * Creates a model for video generation.
327
335
  */
328
- video(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV3;
336
+ video(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV4;
329
337
  /**
330
338
  * Creates a model for video generation.
331
339
  */
332
- videoModel(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV3;
340
+ videoModel(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV4;
333
341
  tools: typeof googleTools;
334
342
  }
335
343
  interface GoogleGenerativeAIProviderSettings {
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
2
2
  import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
3
- import { ProviderV3, LanguageModelV3, ImageModelV3, EmbeddingModelV3, Experimental_VideoModelV3 } from '@ai-sdk/provider';
3
+ import { ProviderV4, LanguageModelV4, ImageModelV4, EmbeddingModelV4, Experimental_VideoModelV4 } from '@ai-sdk/provider';
4
4
 
5
5
  declare const googleErrorDataSchema: _ai_sdk_provider_utils.LazySchema<{
6
6
  error: {
@@ -73,6 +73,7 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
73
73
  })[] | null | undefined;
74
74
  } | null | undefined;
75
75
  finishReason?: string | null | undefined;
76
+ finishMessage?: string | null | undefined;
76
77
  safetyRatings?: {
77
78
  category?: string | null | undefined;
78
79
  probability?: string | null | undefined;
@@ -158,14 +159,21 @@ declare const responseSchema: _ai_sdk_provider_utils.LazySchema<{
158
159
  type GroundingMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['groundingMetadata']>;
159
160
  type UrlContextMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['urlContextMetadata']>;
160
161
  type SafetyRatingSchema = NonNullable<InferSchema<typeof responseSchema>['candidates'][number]['safetyRatings']>[number];
162
+ type PromptFeedbackSchema = NonNullable<InferSchema<typeof responseSchema>['promptFeedback']>;
163
+ type UsageMetadataSchema = NonNullable<InferSchema<typeof responseSchema>['usageMetadata']>;
161
164
 
162
165
  type GoogleGenerativeAIGroundingMetadata = GroundingMetadataSchema;
163
166
  type GoogleGenerativeAIUrlContextMetadata = UrlContextMetadataSchema;
164
167
  type GoogleGenerativeAISafetyRating = SafetyRatingSchema;
168
+ type GoogleGenerativeAIPromptFeedback = PromptFeedbackSchema;
169
+ type GoogleGenerativeAIUsageMetadata = UsageMetadataSchema;
165
170
  interface GoogleGenerativeAIProviderMetadata {
171
+ promptFeedback: GoogleGenerativeAIPromptFeedback | null;
166
172
  groundingMetadata: GoogleGenerativeAIGroundingMetadata | null;
167
173
  urlContextMetadata: GoogleGenerativeAIUrlContextMetadata | null;
168
174
  safetyRatings: GoogleGenerativeAISafetyRating[] | null;
175
+ usageMetadata: GoogleGenerativeAIUsageMetadata | null;
176
+ finishMessage: string | null;
169
177
  }
170
178
 
171
179
  type GoogleGenerativeAIImageModelId = 'imagen-4.0-generate-001' | 'imagen-4.0-ultra-generate-001' | 'imagen-4.0-fast-generate-001' | 'gemini-2.5-flash-image' | 'gemini-3-pro-image-preview' | 'gemini-3.1-flash-image-preview' | (string & {});
@@ -294,42 +302,42 @@ declare const googleTools: {
294
302
  }>;
295
303
  };
296
304
 
297
- interface GoogleGenerativeAIProvider extends ProviderV3 {
298
- (modelId: GoogleGenerativeAIModelId): LanguageModelV3;
299
- languageModel(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
300
- chat(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
305
+ interface GoogleGenerativeAIProvider extends ProviderV4 {
306
+ (modelId: GoogleGenerativeAIModelId): LanguageModelV4;
307
+ languageModel(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
308
+ chat(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
301
309
  /**
302
310
  * Creates a model for image generation.
303
311
  */
304
- image(modelId: GoogleGenerativeAIImageModelId, settings?: GoogleGenerativeAIImageSettings): ImageModelV3;
312
+ image(modelId: GoogleGenerativeAIImageModelId, settings?: GoogleGenerativeAIImageSettings): ImageModelV4;
305
313
  /**
306
314
  * @deprecated Use `chat()` instead.
307
315
  */
308
- generativeAI(modelId: GoogleGenerativeAIModelId): LanguageModelV3;
316
+ generativeAI(modelId: GoogleGenerativeAIModelId): LanguageModelV4;
309
317
  /**
310
318
  * Creates a model for text embeddings.
311
319
  */
312
- embedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
320
+ embedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
313
321
  /**
314
322
  * Creates a model for text embeddings.
315
323
  */
316
- embeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
324
+ embeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
317
325
  /**
318
326
  * @deprecated Use `embedding` instead.
319
327
  */
320
- textEmbedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
328
+ textEmbedding(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
321
329
  /**
322
330
  * @deprecated Use `embeddingModel` instead.
323
331
  */
324
- textEmbeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV3;
332
+ textEmbeddingModel(modelId: GoogleGenerativeAIEmbeddingModelId): EmbeddingModelV4;
325
333
  /**
326
334
  * Creates a model for video generation.
327
335
  */
328
- video(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV3;
336
+ video(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV4;
329
337
  /**
330
338
  * Creates a model for video generation.
331
339
  */
332
- videoModel(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV3;
340
+ videoModel(modelId: GoogleGenerativeAIVideoModelId): Experimental_VideoModelV4;
333
341
  tools: typeof googleTools;
334
342
  }
335
343
  interface GoogleGenerativeAIProviderSettings {
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ module.exports = __toCommonJS(src_exports);
30
30
  var import_provider_utils16 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/version.ts
33
- var VERSION = true ? "4.0.0-beta.7" : "0.0.0-test";
33
+ var VERSION = true ? "4.0.0-beta.9" : "0.0.0-test";
34
34
 
35
35
  // src/google-generative-ai-embedding-model.ts
36
36
  var import_provider = require("@ai-sdk/provider");
@@ -115,7 +115,7 @@ var googleEmbeddingModelOptions = (0, import_provider_utils2.lazySchema)(
115
115
  // src/google-generative-ai-embedding-model.ts
116
116
  var GoogleGenerativeAIEmbeddingModel = class {
117
117
  constructor(modelId, config) {
118
- this.specificationVersion = "v3";
118
+ this.specificationVersion = "v4";
119
119
  this.maxEmbeddingsPerCall = 2048;
120
120
  this.supportsParallelCalls = true;
121
121
  this.modelId = modelId;
@@ -936,7 +936,7 @@ function mapGoogleGenerativeAIFinishReason({
936
936
  // src/google-generative-ai-language-model.ts
937
937
  var GoogleGenerativeAILanguageModel = class {
938
938
  constructor(modelId, config) {
939
- this.specificationVersion = "v3";
939
+ this.specificationVersion = "v4";
940
940
  var _a;
941
941
  this.modelId = modelId;
942
942
  this.config = config;
@@ -1048,7 +1048,7 @@ var GoogleGenerativeAILanguageModel = class {
1048
1048
  };
1049
1049
  }
1050
1050
  async doGenerate(options) {
1051
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
1051
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
1052
1052
  const { args, warnings, providerOptionsName } = await this.getArgs(options);
1053
1053
  const mergedHeaders = (0, import_provider_utils6.combineHeaders)(
1054
1054
  await (0, import_provider_utils6.resolve)(this.config.headers),
@@ -1170,7 +1170,8 @@ var GoogleGenerativeAILanguageModel = class {
1170
1170
  groundingMetadata: (_h = candidate.groundingMetadata) != null ? _h : null,
1171
1171
  urlContextMetadata: (_i = candidate.urlContextMetadata) != null ? _i : null,
1172
1172
  safetyRatings: (_j = candidate.safetyRatings) != null ? _j : null,
1173
- usageMetadata: usageMetadata != null ? usageMetadata : null
1173
+ usageMetadata: usageMetadata != null ? usageMetadata : null,
1174
+ finishMessage: (_k = candidate.finishMessage) != null ? _k : null
1174
1175
  }
1175
1176
  },
1176
1177
  request: { body: args },
@@ -1220,7 +1221,7 @@ var GoogleGenerativeAILanguageModel = class {
1220
1221
  controller.enqueue({ type: "stream-start", warnings });
1221
1222
  },
1222
1223
  transform(chunk, controller) {
1223
- var _a, _b, _c, _d, _e, _f;
1224
+ var _a, _b, _c, _d, _e, _f, _g;
1224
1225
  if (options.includeRawChunks) {
1225
1226
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
1226
1227
  }
@@ -1422,12 +1423,11 @@ var GoogleGenerativeAILanguageModel = class {
1422
1423
  promptFeedback: (_e = value.promptFeedback) != null ? _e : null,
1423
1424
  groundingMetadata: lastGroundingMetadata,
1424
1425
  urlContextMetadata: lastUrlContextMetadata,
1425
- safetyRatings: (_f = candidate.safetyRatings) != null ? _f : null
1426
+ safetyRatings: (_f = candidate.safetyRatings) != null ? _f : null,
1427
+ usageMetadata: usageMetadata != null ? usageMetadata : null,
1428
+ finishMessage: (_g = candidate.finishMessage) != null ? _g : null
1426
1429
  }
1427
1430
  };
1428
- if (usageMetadata != null) {
1429
- providerMetadata[providerOptionsName].usageMetadata = usageMetadata;
1430
- }
1431
1431
  }
1432
1432
  },
1433
1433
  flush(controller) {
@@ -1687,6 +1687,7 @@ var responseSchema = (0, import_provider_utils6.lazySchema)(
1687
1687
  import_v45.z.object({
1688
1688
  content: getContentSchema().nullish().or(import_v45.z.object({}).strict()),
1689
1689
  finishReason: import_v45.z.string().nullish(),
1690
+ finishMessage: import_v45.z.string().nullish(),
1690
1691
  safetyRatings: import_v45.z.array(getSafetyRatingSchema()).nullish(),
1691
1692
  groundingMetadata: getGroundingMetadataSchema().nullish(),
1692
1693
  urlContextMetadata: getUrlContextMetadataSchema().nullish()
@@ -1707,6 +1708,7 @@ var chunkSchema = (0, import_provider_utils6.lazySchema)(
1707
1708
  import_v45.z.object({
1708
1709
  content: getContentSchema().nullish(),
1709
1710
  finishReason: import_v45.z.string().nullish(),
1711
+ finishMessage: import_v45.z.string().nullish(),
1710
1712
  safetyRatings: import_v45.z.array(getSafetyRatingSchema()).nullish(),
1711
1713
  groundingMetadata: getGroundingMetadataSchema().nullish(),
1712
1714
  urlContextMetadata: getUrlContextMetadataSchema().nullish()
@@ -1889,7 +1891,7 @@ var GoogleGenerativeAIImageModel = class {
1889
1891
  this.modelId = modelId;
1890
1892
  this.settings = settings;
1891
1893
  this.config = config;
1892
- this.specificationVersion = "v3";
1894
+ this.specificationVersion = "v4";
1893
1895
  }
1894
1896
  get maxImagesPerCall() {
1895
1897
  if (this.settings.maxImagesPerCall != null) {
@@ -2130,7 +2132,7 @@ var GoogleGenerativeAIVideoModel = class {
2130
2132
  constructor(modelId, config) {
2131
2133
  this.modelId = modelId;
2132
2134
  this.config = config;
2133
- this.specificationVersion = "v3";
2135
+ this.specificationVersion = "v4";
2134
2136
  }
2135
2137
  get provider() {
2136
2138
  return this.config.provider;
@@ -2442,7 +2444,7 @@ function createGoogleGenerativeAI(options = {}) {
2442
2444
  }
2443
2445
  return createChatModel(modelId);
2444
2446
  };
2445
- provider.specificationVersion = "v3";
2447
+ provider.specificationVersion = "v4";
2446
2448
  provider.languageModel = createChatModel;
2447
2449
  provider.chat = createChatModel;
2448
2450
  provider.generativeAI = createChatModel;