@ai-sdk/google 4.0.98 → 4.0.100

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.
@@ -197,7 +197,7 @@ export declare class GoogleLanguageModel implements LanguageModelV4 {
197
197
  toolNameMapping: import("@ai-sdk/provider-utils").ToolNameMapping;
198
198
  }>;
199
199
  private getArgs;
200
- static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName, initialPromptTokenCount }: {
200
+ static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName, initialPromptTokenCount, groundingMetadataPerRequest }: {
201
201
  config: GoogleLanguageModelConfig;
202
202
  response: InferSchema<typeof responseSchema>;
203
203
  warnings: SharedV4Warning[];
@@ -205,6 +205,7 @@ export declare class GoogleLanguageModel implements LanguageModelV4 {
205
205
  toolNameMapping?: ReturnType<typeof createToolNameMapping>;
206
206
  jsonResponseToolName?: string;
207
207
  initialPromptTokenCount?: number | null;
208
+ groundingMetadataPerRequest?: Array<GroundingMetadataSchema | null>;
208
209
  }): LanguageModelV4GenerateResult;
209
210
  doGenerate(options: LanguageModelV4CallOptions): Promise<LanguageModelV4GenerateResult>;
210
211
  doStream(options: LanguageModelV4CallOptions): Promise<LanguageModelV4StreamResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["_$__google_prompt0.GoogleContent","_$__google_prompt0.GoogleSystemInstruction"],"sources":["../../src/google-prompt.ts","../../src/google-language-model-options.ts","../../src/google-language-model.ts","../../src/google-speech-model-options.ts","../../src/google-speech-model.ts","../../src/google-speech-input.ts","../../src/google-tools.ts","../../src/interactions/google-interactions-language-model-options.ts","../../src/interactions/google-interactions-language-model.ts","../../src/interactions/google-interactions-agent.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["_$__google_prompt0.GoogleContent","_$__google_prompt0.GoogleSystemInstruction"],"sources":["../../src/google-prompt.ts","../../src/google-language-model-options.ts","../../src/google-language-model.ts","../../src/google-speech-model-options.ts","../../src/google-speech-model.ts","../../src/google-speech-input.ts","../../src/google-tools.ts","../../src/interactions/google-interactions-language-model-options.ts","../../src/interactions/google-interactions-language-model.ts","../../src/interactions/google-interactions-agent.ts"],"mappings":"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"}
@@ -576,12 +576,13 @@ function getModelPath(modelId) {
576
576
  }
577
577
  //#endregion
578
578
  //#region src/google-error.ts
579
- const googleErrorDataSchema = lazySchema(() => zodSchema(z.object({ error: z.object({
579
+ const getGoogleErrorSchema = () => z.object({
580
580
  code: z.number().nullable(),
581
581
  message: z.string(),
582
582
  status: z.string(),
583
583
  details: z.array(z.unknown()).nullish()
584
- }) })));
584
+ });
585
+ const googleErrorDataSchema = lazySchema(() => zodSchema(z.object({ error: getGoogleErrorSchema() })));
585
586
  const googleFailedResponseHandler = createJsonErrorResponseHandler({
586
587
  errorSchema: googleErrorDataSchema,
587
588
  errorToMessage: (data) => data.error.message
@@ -1506,7 +1507,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1506
1507
  jsonResponseToolName: jsonResponseTool?.name
1507
1508
  };
1508
1509
  }
1509
- static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName, initialPromptTokenCount }) {
1510
+ static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName, initialPromptTokenCount, groundingMetadataPerRequest }) {
1510
1511
  const wrapProviderMetadata = (payload) => Object.fromEntries(providerOptionsNames.map((name) => [name, payload]));
1511
1512
  const candidate = response.candidates?.[0];
1512
1513
  const promptBlockReason = response.promptFeedback?.blockReason;
@@ -1634,6 +1635,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1634
1635
  providerMetadata: wrapProviderMetadata({
1635
1636
  promptFeedback: response.promptFeedback ?? null,
1636
1637
  groundingMetadata: candidate?.groundingMetadata ?? null,
1638
+ ...groundingMetadataPerRequest != null ? { groundingMetadataPerRequest } : {},
1637
1639
  urlContextMetadata: candidate?.urlContextMetadata ?? null,
1638
1640
  safetyRatings: candidate?.safetyRatings ?? null,
1639
1641
  usageMetadata: usageMetadata ?? null,
@@ -1659,11 +1661,13 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1659
1661
  });
1660
1662
  let { responseHeaders, value: response, rawValue: rawResponse } = await generateContent(args);
1661
1663
  const content = [];
1664
+ const groundingMetadataPerRequest = [];
1662
1665
  let usageMetadata;
1663
1666
  const firstPromptTokenCount = response.usageMetadata?.promptTokenCount;
1664
1667
  let isContinued = false;
1665
1668
  while (true) {
1666
1669
  const candidate = response.candidates?.[0];
1670
+ groundingMetadataPerRequest.push(candidate?.groundingMetadata ?? null);
1667
1671
  const continuationToken = candidate?.finishReason === "CONTINUATION" ? candidate.continuationToken : void 0;
1668
1672
  usageMetadata = addGoogleUsageMetadata(usageMetadata, response.usageMetadata ?? void 0);
1669
1673
  if (continuationToken == null) break;
@@ -1691,7 +1695,8 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1691
1695
  providerOptionsNames,
1692
1696
  toolNameMapping,
1693
1697
  jsonResponseToolName,
1694
- initialPromptTokenCount: isContinued ? firstPromptTokenCount : void 0
1698
+ initialPromptTokenCount: isContinued ? firstPromptTokenCount : void 0,
1699
+ groundingMetadataPerRequest: isContinued ? groundingMetadataPerRequest : void 0
1695
1700
  });
1696
1701
  const result = {
1697
1702
  ...lastResult,
@@ -1721,16 +1726,24 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1721
1726
  fetch: this.config.fetch
1722
1727
  });
1723
1728
  const { responseHeaders, value: firstResponse } = await streamGenerateContent(args);
1729
+ const groundingMetadataPerRequest = [];
1730
+ let requestGroundingMetadata = null;
1724
1731
  const response = continueGoogleStream({
1725
1732
  stream: firstResponse,
1726
1733
  getContinuationToken: (chunk) => {
1727
1734
  const candidate = chunk.candidates?.[0];
1735
+ if (candidate?.groundingMetadata != null) requestGroundingMetadata = candidate.groundingMetadata;
1728
1736
  return candidate?.finishReason === "CONTINUATION" ? candidate.continuationToken ?? void 0 : void 0;
1729
1737
  },
1730
- continueStream: async (continuationToken) => (await streamGenerateContent({
1731
- ...args,
1732
- continuationToken
1733
- })).value
1738
+ continueStream: async (continuationToken) => {
1739
+ const { value } = await streamGenerateContent({
1740
+ ...args,
1741
+ continuationToken
1742
+ });
1743
+ groundingMetadataPerRequest.push(requestGroundingMetadata);
1744
+ requestGroundingMetadata = null;
1745
+ return value;
1746
+ }
1734
1747
  });
1735
1748
  let finishReason = {
1736
1749
  unified: "other",
@@ -1801,6 +1814,25 @@ var GoogleLanguageModel = class GoogleLanguageModel {
1801
1814
  return;
1802
1815
  }
1803
1816
  const value = chunk.value;
1817
+ if (value.error != null) {
1818
+ finishReason = {
1819
+ unified: "error",
1820
+ raw: void 0
1821
+ };
1822
+ const error = value.error;
1823
+ controller.enqueue({
1824
+ type: "error",
1825
+ error: createProviderStreamError({
1826
+ message: error.message,
1827
+ type: error.status,
1828
+ code: error.code ?? void 0,
1829
+ statusCode: error.code ?? void 0,
1830
+ isRetryable: error.code != null && (error.code === 408 || error.code === 409 || error.code === 429 || error.code >= 500),
1831
+ data: error
1832
+ })
1833
+ });
1834
+ return;
1835
+ }
1804
1836
  if (!hasEmittedResponseMetadata && value.responseId != null) {
1805
1837
  hasEmittedResponseMetadata = true;
1806
1838
  controller.enqueue({
@@ -2107,6 +2139,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
2107
2139
  providerMetadata: wrapProviderMetadata({
2108
2140
  promptFeedback,
2109
2141
  groundingMetadata: lastGroundingMetadata,
2142
+ ...groundingMetadataPerRequest.length > 0 ? { groundingMetadataPerRequest: [...groundingMetadataPerRequest, requestGroundingMetadata] } : {},
2110
2143
  urlContextMetadata: lastUrlContextMetadata,
2111
2144
  safetyRatings: lastSafetyRatings,
2112
2145
  usageMetadata: usage ?? null,
@@ -2420,6 +2453,7 @@ const responseSchema = lazySchema(() => zodSchema(z.object({
2420
2453
  }).nullish()
2421
2454
  })));
2422
2455
  const chunkSchema = lazySchema(() => zodSchema(z.object({
2456
+ error: getGoogleErrorSchema().nullish(),
2423
2457
  responseId: z.string().nullish(),
2424
2458
  candidates: z.array(z.object({
2425
2459
  content: getContentSchema().nullish(),