@ai-sdk/google 4.0.86 → 4.0.88

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,27 @@
1
1
  # @ai-sdk/google
2
2
 
3
+ ## 4.0.88
4
+
5
+ ### Patch Changes
6
+
7
+ - 2959d35: feat: rename `evaluate` to `decide`
8
+ - 59116e6: fix(groq,google): use JSON response tool for structured outputs with tool calling
9
+ - Updated dependencies [2959d35]
10
+ - Updated dependencies [59116e6]
11
+ - @ai-sdk/provider@4.0.22
12
+ - @ai-sdk/provider-utils@5.0.54
13
+
14
+ ## 4.0.87
15
+
16
+ ### Patch Changes
17
+
18
+ - 8c65988: feat(ai): add telemetry to speech generation and transcription, including
19
+ provider usage propagation and experimental streaming lifecycle callbacks
20
+ - Updated dependencies [8c65988]
21
+ - Updated dependencies [527a163]
22
+ - @ai-sdk/provider@4.0.21
23
+ - @ai-sdk/provider-utils@5.0.53
24
+
3
25
  ## 4.0.86
4
26
 
5
27
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FetchFunction, InferSchema, Resolvable, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, WebSocketConstructor, createToolNameMapping } from "@ai-sdk/provider-utils";
2
- import { EmbeddingModelV4, Experimental_BatchV4, Experimental_EvaluationModelV4, Experimental_RealtimeFactoryV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_SpeechTranslationModelV4, Experimental_SpeechTranslationModelV4StreamOptions, Experimental_TranscriptionModelV4StreamOptions, Experimental_VideoModelV4, FilesV4, ImageModelV4, JSONObject, LanguageModelV4, ProviderV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
2
+ import { EmbeddingModelV4, Experimental_BatchV4, Experimental_DecisionModelV4, Experimental_RealtimeFactoryV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_SpeechTranslationModelV4, Experimental_SpeechTranslationModelV4StreamOptions, Experimental_TranscriptionModelV4StreamOptions, Experimental_VideoModelV4, FilesV4, ImageModelV4, JSONObject, LanguageModelV4, ProviderV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
3
3
  import { z } from "zod/v4";
4
4
  //#region src/google-error.d.ts
5
5
  declare const googleErrorDataSchema: import("@ai-sdk/provider-utils").LazySchema<{
@@ -621,8 +621,12 @@ interface GoogleProvider extends ProviderV4 {
621
621
  (modelId: GoogleModelId): LanguageModelV4;
622
622
  languageModel(modelId: GoogleModelId): LanguageModelV4;
623
623
  chat(modelId: GoogleModelId): LanguageModelV4;
624
- /** Creates an experimental Choice/Score/Boolean evaluation model using Gemini. */
625
- evaluationModel(modelId: GoogleModelId): Experimental_EvaluationModelV4;
624
+ /** Creates an experimental Choice/Score/Boolean decision model using Gemini. */
625
+ decisionModel(modelId: GoogleModelId): Experimental_DecisionModelV4;
626
+ /** @deprecated Use `decisionModel` instead. */
627
+ evaluationModel(modelId: GoogleModelId): Experimental_DecisionModelV4 & {
628
+ doEvaluate: Experimental_DecisionModelV4['doDecide'];
629
+ };
626
630
  experimental_batch(): Experimental_BatchV4<{
627
631
  text: GoogleModelId;
628
632
  image: GoogleImageModelId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["EvaluationModelV4","BatchV4","SpeechTranslationModelV4","RealtimeFactoryV4","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4SessionConfig","TranscriptionModelV4StreamOptions","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/google-error.ts","../src/google-language-model-options.ts","../src/google-language-model.ts","../src/google-prompt.ts","../src/tool/google-search.ts","../src/google-image-model-options.ts","../src/google-embedding-model-options.ts","../src/google-video-model-options.ts","../src/google-video-settings.ts","../src/google-speech-model-options.ts","../src/google-files.ts","../src/interactions/google-interactions-language-model-options.ts","../src/interactions/google-interactions-provider-metadata.ts","../src/interactions/google-interactions-agent.ts","../src/google-tools.ts","../src/google-image-settings.ts","../src/transcription/google-transcription-model-options.ts","../src/speech-translation/google-speech-translation-model-options.ts","../src/google-provider.ts","../src/realtime/google-realtime-model.ts","../src/realtime/google-realtime-model-options.ts","../src/transcription/google-transcription-model.ts","../src/speech-translation/google-speech-translation-model.ts","../src/version.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["DecisionModelV4","BatchV4","SpeechTranslationModelV4","RealtimeFactoryV4","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4SessionConfig","TranscriptionModelV4StreamOptions","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/google-error.ts","../src/google-language-model-options.ts","../src/google-language-model.ts","../src/google-prompt.ts","../src/tool/google-search.ts","../src/google-image-model-options.ts","../src/google-embedding-model-options.ts","../src/google-video-model-options.ts","../src/google-video-settings.ts","../src/google-speech-model-options.ts","../src/google-files.ts","../src/interactions/google-interactions-language-model-options.ts","../src/interactions/google-interactions-provider-metadata.ts","../src/interactions/google-interactions-agent.ts","../src/google-tools.ts","../src/google-image-settings.ts","../src/transcription/google-transcription-model-options.ts","../src/speech-translation/google-speech-translation-model-options.ts","../src/google-provider.ts","../src/realtime/google-realtime-model.ts","../src/realtime/google-realtime-model-options.ts","../src/transcription/google-transcription-model.ts","../src/speech-translation/google-speech-translation-model.ts","../src/version.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertToBase64, convertUint8ArrayToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isRecord, isSameOrigin, isUrlSupported, lazySchema, loadApiKey, mapReasoningToProviderBudget, mapReasoningToProviderEffort, normalizeBatchRequestCounts, parseProviderOptions, postJsonToApi, postToApi, resolve, resolveFullMediaType, resolveProviderReference, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
2
- import { Experimental_EvaluationLanguageModel } from "@ai-sdk/provider-utils/experimental-evaluation";
1
+ import { EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertJsonResponseToolStream, convertToBase64, convertUint8ArrayToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isRecord, isSameOrigin, isUrlSupported, lazySchema, loadApiKey, mapReasoningToProviderBudget, mapReasoningToProviderEffort, normalizeBatchRequestCounts, parseProviderOptions, postJsonToApi, postToApi, resolve, resolveFullMediaType, resolveProviderReference, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
2
+ import { Experimental_DecisionLanguageModel } from "@ai-sdk/provider-utils/experimental-decision";
3
3
  import { AISDKError, InvalidArgumentError, InvalidResponseDataError, TooManyEmbeddingValuesForCallError, UnsupportedFunctionalityError } from "@ai-sdk/provider";
4
4
  import { z } from "zod/v4";
5
5
  //#region src/version.ts
6
- const VERSION = "4.0.86";
6
+ const VERSION = "4.0.88";
7
7
  //#endregion
8
8
  //#region src/google-error.ts
9
9
  const googleErrorDataSchema = lazySchema(() => zodSchema(z.object({ error: z.object({
@@ -1546,15 +1546,38 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1546
1546
  toolNameMapping
1547
1547
  };
1548
1548
  }
1549
- getArgs(options, { isStreaming = false } = {}) {
1550
- return GoogleLanguageModel.prepareRequest({
1551
- modelId: this.modelId,
1552
- config: this.config,
1553
- options,
1554
- isStreaming
1555
- });
1549
+ async getArgs(options, { isStreaming = false } = {}) {
1550
+ const { responseFormat, tools, toolChoice } = options;
1551
+ let jsonResponseTool;
1552
+ if (responseFormat?.type === "json" && responseFormat.schema != null && tools?.some((tool) => tool.type === "function") && /(^|\/)gemini-/i.test(this.modelId) && (!getGoogleModelCapabilities(this.modelId).usesGemini3Features || toolChoice?.type === "required" || toolChoice?.type === "tool")) {
1553
+ let name = "json";
1554
+ for (let suffix = 1; tools.some((tool) => tool.name === name); suffix++) name = `json_${suffix}`;
1555
+ jsonResponseTool = {
1556
+ type: "function",
1557
+ name,
1558
+ description: responseFormat.description ?? "Respond with a JSON object.",
1559
+ inputSchema: responseFormat.schema
1560
+ };
1561
+ }
1562
+ return {
1563
+ ...await GoogleLanguageModel.prepareRequest({
1564
+ modelId: this.modelId,
1565
+ config: this.config,
1566
+ options: jsonResponseTool == null ? options : {
1567
+ ...options,
1568
+ responseFormat: void 0,
1569
+ tools: [...tools ?? [], jsonResponseTool],
1570
+ toolChoice: toolChoice?.type === "tool" ? toolChoice : toolChoice?.type === "none" ? {
1571
+ type: "tool",
1572
+ toolName: jsonResponseTool.name
1573
+ } : { type: "required" }
1574
+ },
1575
+ isStreaming
1576
+ }),
1577
+ jsonResponseToolName: jsonResponseTool?.name
1578
+ };
1556
1579
  }
1557
- static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping }) {
1580
+ static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName }) {
1558
1581
  const wrapProviderMetadata = (payload) => Object.fromEntries(providerOptionsNames.map((name) => [name, payload]));
1559
1582
  const candidate = response.candidates?.[0];
1560
1583
  const promptBlockReason = response.promptFeedback?.blockReason;
@@ -1586,6 +1609,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1586
1609
  }
1587
1610
  });
1588
1611
  else if ("text" in part && part.text != null) {
1612
+ if (jsonResponseToolName != null && part.thought !== true) continue;
1589
1613
  const thoughtSignatureMetadata = part.thoughtSignature ? wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) : void 0;
1590
1614
  if (part.text.length === 0) {
1591
1615
  if (thoughtSignatureMetadata != null && content.length > 0) {
@@ -1597,14 +1621,23 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1597
1621
  text: part.text,
1598
1622
  providerMetadata: thoughtSignatureMetadata
1599
1623
  });
1600
- } else if ("functionCall" in part && part.functionCall.name != null) content.push({
1601
- type: "tool-call",
1602
- toolCallId: part.functionCall.id || config.generateId(),
1603
- toolName: part.functionCall.name,
1604
- input: JSON.stringify(part.functionCall.args ?? {}),
1605
- providerMetadata: part.thoughtSignature ? wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) : void 0
1606
- });
1607
- else if ("inlineData" in part) {
1624
+ } else if ("functionCall" in part && part.functionCall.name != null) {
1625
+ if (part.functionCall.name === jsonResponseToolName) {
1626
+ content.push({
1627
+ type: "text",
1628
+ text: typeof part.functionCall.args === "string" ? part.functionCall.args : JSON.stringify(part.functionCall.args ?? {}),
1629
+ ...part.thoughtSignature ? { providerMetadata: wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) } : {}
1630
+ });
1631
+ continue;
1632
+ }
1633
+ content.push({
1634
+ type: "tool-call",
1635
+ toolCallId: part.functionCall.id || config.generateId(),
1636
+ toolName: part.functionCall.name,
1637
+ input: JSON.stringify(part.functionCall.args ?? {}),
1638
+ providerMetadata: part.thoughtSignature ? wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) : void 0
1639
+ });
1640
+ } else if ("inlineData" in part) {
1608
1641
  const hasThought = part.thought === true;
1609
1642
  const hasThoughtSignature = !!part.thoughtSignature;
1610
1643
  content.push({
@@ -1682,7 +1715,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1682
1715
  };
1683
1716
  }
1684
1717
  async doGenerate(options) {
1685
- const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping } = await this.getArgs(options);
1718
+ const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping, jsonResponseToolName } = await this.getArgs(options);
1686
1719
  const mergedHeaders = combineHeaders(this.config.headers ? await resolve(this.config.headers) : void 0, options.headers, extraHeaders);
1687
1720
  const { responseHeaders, value: response, rawValue: rawResponse } = await postJsonToApi({
1688
1721
  url: `${this.config.baseURL}/${getModelPath(this.modelId)}:generateContent`,
@@ -1698,7 +1731,8 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1698
1731
  response,
1699
1732
  warnings,
1700
1733
  providerOptionsNames,
1701
- toolNameMapping
1734
+ toolNameMapping,
1735
+ jsonResponseToolName
1702
1736
  });
1703
1737
  return {
1704
1738
  ...result,
@@ -1711,7 +1745,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1711
1745
  };
1712
1746
  }
1713
1747
  async doStream(options) {
1714
- const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping } = await this.getArgs(options, { isStreaming: true });
1748
+ const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping, jsonResponseToolName } = await this.getArgs(options, { isStreaming: true });
1715
1749
  const wrapProviderMetadata = (payload) => Object.fromEntries(providerOptionsNames.map((name) => [name, payload]));
1716
1750
  const headers = combineHeaders(this.config.headers ? await resolve(this.config.headers) : void 0, options.headers, extraHeaders);
1717
1751
  const { responseHeaders, value: response } = await postJsonToApi({
@@ -1768,7 +1802,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1768
1802
  });
1769
1803
  hasToolCalls = true;
1770
1804
  };
1771
- return {
1805
+ const result = {
1772
1806
  stream: response.pipeThrough(new TransformStream({
1773
1807
  start(controller) {
1774
1808
  controller.enqueue({
@@ -2100,6 +2134,10 @@ var GoogleLanguageModel = class GoogleLanguageModel {
2100
2134
  response: { headers: responseHeaders },
2101
2135
  request: { body: args }
2102
2136
  };
2137
+ return {
2138
+ ...result,
2139
+ stream: jsonResponseToolName == null ? result.stream : result.stream.pipeThrough(convertJsonResponseToolStream(jsonResponseToolName))
2140
+ };
2103
2141
  }
2104
2142
  };
2105
2143
  function getMaxOutputTokensForGemini25Model() {
@@ -3617,10 +3655,13 @@ const googleOperationSchema = z.object({
3617
3655
  * encoded audio in the first inline-data part (WAV by default on Gemini 3.8,
3618
3656
  * raw PCM on older models).
3619
3657
  */
3620
- const googleSpeechResponseSchema = lazySchema(() => zodSchema(z.object({ candidates: z.array(z.object({ content: z.object({ parts: z.array(z.object({ inlineData: z.object({
3621
- mimeType: z.string().nullish(),
3622
- data: z.string().nullish()
3623
- }).nullish() })).nullish() }).nullish() })).nullish() })));
3658
+ const googleSpeechResponseSchema = lazySchema(() => zodSchema(z.object({
3659
+ candidates: z.array(z.object({ content: z.object({ parts: z.array(z.object({ inlineData: z.object({
3660
+ mimeType: z.string().nullish(),
3661
+ data: z.string().nullish()
3662
+ }).nullish() })).nullish() }).nullish() })).nullish(),
3663
+ usageMetadata: z.record(z.string(), z.json()).nullish()
3664
+ })));
3624
3665
  //#endregion
3625
3666
  //#region src/google-speech-input.ts
3626
3667
  /**
@@ -3861,6 +3902,7 @@ var GoogleSpeechModel = class GoogleSpeechModel {
3861
3902
  return {
3862
3903
  audio,
3863
3904
  warnings,
3905
+ ...response.usageMetadata != null && { usage: response.usageMetadata },
3864
3906
  request: { body: JSON.stringify(requestBody) },
3865
3907
  response: {
3866
3908
  timestamp: currentDate,
@@ -7270,6 +7312,7 @@ var GoogleTranscriptionModel = class GoogleTranscriptionModel {
7270
7312
  language: void 0,
7271
7313
  durationInSeconds: void 0,
7272
7314
  warnings,
7315
+ ...response.usage != null && { usage: response.usage },
7273
7316
  response: {
7274
7317
  timestamp: currentDate,
7275
7318
  modelId: this.modelId,
@@ -7389,6 +7432,7 @@ function createGoogleLiveTranscriptionStream({ webSocket, url, headers, setup, i
7389
7432
  segments: [],
7390
7433
  language,
7391
7434
  durationInSeconds: void 0,
7435
+ usage: usageMetadata,
7392
7436
  ...usageMetadata != null ? { providerMetadata: { google: { usageMetadata } } } : {}
7393
7437
  });
7394
7438
  controller.close();
@@ -7557,7 +7601,7 @@ const googleInteractionsTranscriptionResponseSchema = z.object({
7557
7601
  annotations: z.array(googleInteractionsWordAnnotationSchema).nullish()
7558
7602
  })).nullish()
7559
7603
  })).nullish(),
7560
- usage: z.record(z.string(), z.unknown()).nullish()
7604
+ usage: z.record(z.string(), z.json()).nullish()
7561
7605
  });
7562
7606
  //#endregion
7563
7607
  //#region src/speech-translation/google-speech-translation-model-options.ts
@@ -8048,10 +8092,11 @@ function createGoogle(options = {}) {
8048
8092
  provider.languageModel = createChatModel;
8049
8093
  provider.chat = createChatModel;
8050
8094
  provider.generativeAI = createChatModel;
8051
- provider.evaluationModel = (modelId) => new Experimental_EvaluationLanguageModel({
8095
+ provider.decisionModel = (modelId) => new Experimental_DecisionLanguageModel({
8052
8096
  model: createChatModel(modelId),
8053
- provider: `${providerName.replace(/\.generative-ai$/, "")}.evaluation`
8097
+ provider: `${providerName.replace(/\.generative-ai$/, "")}.decision`
8054
8098
  });
8099
+ provider.evaluationModel = provider.decisionModel;
8055
8100
  provider.experimental_batch = createBatch;
8056
8101
  provider.embedding = createEmbeddingModel;
8057
8102
  provider.embeddingModel = createEmbeddingModel;