@ai-sdk/google 4.0.93 → 4.0.94

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/google",
3
- "version": "4.0.93",
3
+ "version": "4.0.94",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -35,8 +35,8 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@ai-sdk/provider": "4.0.26",
39
- "@ai-sdk/provider-utils": "5.0.58"
38
+ "@ai-sdk/provider": "4.0.27",
39
+ "@ai-sdk/provider-utils": "5.0.59"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@ai-sdk/test-server": "2.0.4",
@@ -66,7 +66,7 @@ const configurableSafetySettingCategories = [
66
66
  'HARM_CATEGORY_SEXUALLY_EXPLICIT',
67
67
  ] as const;
68
68
 
69
- const gemini25ModelPattern = /(^|\/)gemini-2\.5(?:[.-]|$)/i;
69
+ const gemini25ModelPattern = /(^|[/.])gemini-2\.5(?:[.-]|$)/i;
70
70
 
71
71
  const googleCloudStorageFunctionResponseUrls = {
72
72
  'image/png': [/^gs:\/\/.*$/],
@@ -350,11 +350,11 @@ export class GoogleLanguageModel implements LanguageModelV4 {
350
350
  },
351
351
  });
352
352
 
353
- const resolvedThinking = resolveThinkingConfig({
354
- reasoning,
355
- modelId,
356
- warnings,
357
- });
353
+ const resolvedThinking =
354
+ googleOptions?.thinkingConfig?.thinkingBudget != null ||
355
+ googleOptions?.thinkingConfig?.thinkingLevel != null
356
+ ? undefined
357
+ : resolveThinkingConfig({ reasoning, modelId, warnings });
358
358
  const thinkingConfig =
359
359
  googleOptions?.thinkingConfig || resolvedThinking
360
360
  ? { ...resolvedThinking, ...googleOptions?.thinkingConfig }
@@ -1460,12 +1460,22 @@ function resolveGemini3ThinkingConfig({
1460
1460
  function getMinimumThinkingLevelForGemini3Model(
1461
1461
  modelId: string,
1462
1462
  ): 'minimal' | 'low' {
1463
- const modelName = modelId.split('/').at(-1)?.toLowerCase();
1463
+ const modelName = /(?:^|[/.])(gemini-[^/]*)$/i
1464
+ .exec(modelId)?.[1]
1465
+ .toLowerCase();
1464
1466
 
1465
1467
  if (modelName === 'gemini-flash-latest') {
1466
1468
  return 'low';
1467
1469
  }
1468
1470
 
1471
+ const proVersionMatch = /^gemini-(\d+)(?:\.\d+)?-pro(?:$|-)/.exec(
1472
+ modelName ?? '',
1473
+ );
1474
+
1475
+ if (Number(proVersionMatch?.[1]) >= 3) {
1476
+ return 'low';
1477
+ }
1478
+
1469
1479
  const versionMatch = /^gemini-(\d+)\.(\d+)-flash(?:$|-(?!lite(?:-|$)))/.exec(
1470
1480
  modelName ?? '',
1471
1481
  );
@@ -4,16 +4,16 @@ type GoogleModelCapabilities = {
4
4
  usesGemini3Features: boolean;
5
5
  };
6
6
 
7
- const gemini1ModelPattern = /(^|\/)gemini-1(?:[.-]|$)/i;
8
- const gemini2ModelPattern = /(^|\/)gemini-2(?:[.-]|$)/i;
9
- const gemini25ModelPattern = /(^|\/)gemini-2\.5(?:[.-]|$)/i;
10
- const geminiModelPattern = /(^|\/)gemini-/i;
7
+ const gemini1ModelPattern = /(^|[/.])gemini-1(?:[.-]|$)/i;
8
+ const gemini2ModelPattern = /(^|[/.])gemini-2(?:[.-]|$)/i;
9
+ const gemini25ModelPattern = /(^|[/.])gemini-2\.5(?:[.-]|$)/i;
10
+ const geminiModelPattern = /(^|[/.])gemini-/i;
11
11
 
12
12
  function isKnownPreGemini2Model(modelId: string): boolean {
13
13
  return (
14
14
  gemini1ModelPattern.test(modelId) ||
15
- /(^|\/)gemini-pro(?:-vision)?$/i.test(modelId) ||
16
- /(^|\/)gemini-robotics-er-1\.5(?:[.-]|$)/i.test(modelId)
15
+ /(^|[/.])gemini-pro(?:-vision)?$/i.test(modelId) ||
16
+ /(^|[/.])gemini-robotics-er-1\.5(?:[.-]|$)/i.test(modelId)
17
17
  );
18
18
  }
19
19