@opencode-ai/cli-linux-x64-baseline 0.0.0-beta-202606050000

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.
Files changed (137) hide show
  1. package/bin/chunk-01tb5qes.js.map +131 -0
  2. package/bin/chunk-06d8aa69.js.map +10 -0
  3. package/bin/chunk-07w2xsfy.js.map +50 -0
  4. package/bin/chunk-0azwkk9z.js.map +12 -0
  5. package/bin/chunk-0d9ja06r.js.map +9 -0
  6. package/bin/chunk-14kv2kjk.js.map +13 -0
  7. package/bin/chunk-17j53wgt.js.map +11 -0
  8. package/bin/chunk-191djt7z.js.map +113 -0
  9. package/bin/chunk-1brm44vt.js.map +10 -0
  10. package/bin/chunk-1jb1dn9p.js.map +10 -0
  11. package/bin/chunk-1paeax4j.js.map +56 -0
  12. package/bin/chunk-1wb39pye.js.map +9 -0
  13. package/bin/chunk-2mjmecen.js.map +10 -0
  14. package/bin/chunk-2wqpg9fb.js.map +10 -0
  15. package/bin/chunk-32ewzcjk.js.map +10 -0
  16. package/bin/chunk-334z6v35.js.map +9 -0
  17. package/bin/chunk-3jqjf0hd.js.map +10 -0
  18. package/bin/chunk-3n6vddyq.js.map +73 -0
  19. package/bin/chunk-3zmvhepw.js.map +10 -0
  20. package/bin/chunk-4980h0t7.js.map +37 -0
  21. package/bin/chunk-4q5k6a0e.js.map +10 -0
  22. package/bin/chunk-5ft9zwf9.js.map +10 -0
  23. package/bin/chunk-6ttpn29p.js.map +10 -0
  24. package/bin/chunk-7fvpf4bs.js.map +10 -0
  25. package/bin/chunk-7vb6kdat.js.map +10 -0
  26. package/bin/chunk-84amh6xf.js.map +11 -0
  27. package/bin/chunk-8akfq1ty.js.map +19 -0
  28. package/bin/chunk-8rd9r1gb.js.map +11 -0
  29. package/bin/chunk-8x80qvzn.js.map +10 -0
  30. package/bin/chunk-943th5qs.js.map +10 -0
  31. package/bin/chunk-94yf089p.js.map +10 -0
  32. package/bin/chunk-98cxndhz.js.map +9 -0
  33. package/bin/chunk-9f8tmby0.js.map +9 -0
  34. package/bin/chunk-9fbstsnw.js.map +9 -0
  35. package/bin/chunk-9hq8aywf.js.map +10 -0
  36. package/bin/chunk-9m7hf7ms.js.map +10 -0
  37. package/bin/chunk-9vf55fj3.js.map +10 -0
  38. package/bin/chunk-9w9rk9en.js.map +20 -0
  39. package/bin/chunk-9y4hgfns.js.map +10 -0
  40. package/bin/chunk-aag5p1fp.js.map +10 -0
  41. package/bin/chunk-axy1v6wd.js.map +27 -0
  42. package/bin/chunk-bj9msmj2.js.map +10 -0
  43. package/bin/chunk-bt0r89ee.js.map +9 -0
  44. package/bin/chunk-c2gsyspz.js.map +10 -0
  45. package/bin/chunk-c8hr0q5n.js.map +10 -0
  46. package/bin/chunk-cab6ccj0.js.map +10 -0
  47. package/bin/chunk-ck4nkjtx.js.map +193 -0
  48. package/bin/chunk-cvm4kr56.js.map +23 -0
  49. package/bin/chunk-cyb9bpgm.js.map +10 -0
  50. package/bin/chunk-d1p8awq6.js.map +10 -0
  51. package/bin/chunk-d6nz1m6v.js.map +10 -0
  52. package/bin/chunk-d9g5798m.js.map +81 -0
  53. package/bin/chunk-dcn0azxw.js.map +10 -0
  54. package/bin/chunk-dd9pfwmr.js.map +10 -0
  55. package/bin/chunk-dk4qekzk.js.map +10 -0
  56. package/bin/chunk-dk9tgwkh.js.map +9 -0
  57. package/bin/chunk-dzzhxh1c.js.map +10 -0
  58. package/bin/chunk-efsmps94.js.map +9 -0
  59. package/bin/chunk-fdw7znt6.js.map +11 -0
  60. package/bin/chunk-fs6t8jdg.js.map +10 -0
  61. package/bin/chunk-fzcqzwx5.js.map +10 -0
  62. package/bin/chunk-g4fcmhkj.js.map +11 -0
  63. package/bin/chunk-g4ff66n8.js.map +10 -0
  64. package/bin/chunk-g8mpn6ke.js.map +11 -0
  65. package/bin/chunk-gahs293a.js.map +10 -0
  66. package/bin/chunk-gh9dcqbv.js.map +10 -0
  67. package/bin/chunk-grvxd8zq.js.map +10 -0
  68. package/bin/chunk-gv6nagng.js.map +10 -0
  69. package/bin/chunk-h1vz14ze.js.map +167 -0
  70. package/bin/chunk-hav16yge.js.map +10 -0
  71. package/bin/chunk-hp5nnq6f.js.map +11 -0
  72. package/bin/chunk-hrcbafh3.js.map +9 -0
  73. package/bin/chunk-hxfsfpek.js.map +10 -0
  74. package/bin/chunk-jcqp2wmf.js.map +10 -0
  75. package/bin/chunk-jt9t8203.js.map +9 -0
  76. package/bin/chunk-k0980eb5.js.map +10 -0
  77. package/bin/chunk-kghptcgb.js.map +9 -0
  78. package/bin/chunk-kkvk5eez.js.map +10 -0
  79. package/bin/chunk-kv0b3sh5.js.map +10 -0
  80. package/bin/chunk-kvfs5rat.js.map +10 -0
  81. package/bin/chunk-mf0qqhvb.js.map +10 -0
  82. package/bin/chunk-mkze6twx.js.map +10 -0
  83. package/bin/chunk-mzjs3qj3.js.map +10 -0
  84. package/bin/chunk-n10mj2m3.js.map +17 -0
  85. package/bin/chunk-n2fbt143.js.map +9 -0
  86. package/bin/chunk-n6a0rctn.js.map +9 -0
  87. package/bin/chunk-nd3yv9bg.js.map +388 -0
  88. package/bin/chunk-njn9a3jp.js.map +13 -0
  89. package/bin/chunk-nkhzpsnk.js.map +13 -0
  90. package/bin/chunk-ny5cyeha.js.map +10 -0
  91. package/bin/chunk-p3nkd9t2.js.map +10 -0
  92. package/bin/chunk-p3pr1t3k.js.map +10 -0
  93. package/bin/chunk-p7j7e7hb.js.map +10 -0
  94. package/bin/chunk-p89bk96c.js.map +10 -0
  95. package/bin/chunk-pnkd37ss.js.map +20 -0
  96. package/bin/chunk-prat77ba.js.map +577 -0
  97. package/bin/chunk-q6nf6fka.js.map +10 -0
  98. package/bin/chunk-qbpebjh2.js.map +10 -0
  99. package/bin/chunk-qzx2gre7.js.map +13 -0
  100. package/bin/chunk-r55kafff.js.map +9 -0
  101. package/bin/chunk-rrwp4x01.js.map +10 -0
  102. package/bin/chunk-rt02k446.js.map +11 -0
  103. package/bin/chunk-s39nwv01.js.map +9 -0
  104. package/bin/chunk-s983v0dp.js.map +10 -0
  105. package/bin/chunk-san15sca.js.map +10 -0
  106. package/bin/chunk-sfk73pp2.js.map +10 -0
  107. package/bin/chunk-sjd3wbjd.js.map +10 -0
  108. package/bin/chunk-swbdmja3.js.map +10 -0
  109. package/bin/chunk-tc8tvjey.js.map +33 -0
  110. package/bin/chunk-tcqtz83b.js.map +10 -0
  111. package/bin/chunk-tgxxchfy.js.map +28 -0
  112. package/bin/chunk-tvxakxv2.js.map +10 -0
  113. package/bin/chunk-v81ta3tx.js.map +15 -0
  114. package/bin/chunk-va2h4xya.js.map +37 -0
  115. package/bin/chunk-vezq3hc4.js.map +9 -0
  116. package/bin/chunk-vmbpvmpg.js.map +10 -0
  117. package/bin/chunk-w7p62pb6.js.map +17 -0
  118. package/bin/chunk-wr4x72qd.js.map +13 -0
  119. package/bin/chunk-x3ywttp7.js.map +10 -0
  120. package/bin/chunk-x988wmrk.js.map +10 -0
  121. package/bin/chunk-x9zjg1f7.js.map +20 -0
  122. package/bin/chunk-xaqrhtz6.js.map +10 -0
  123. package/bin/chunk-xd2mrkwy.js.map +10 -0
  124. package/bin/chunk-xfh2377b.js.map +10 -0
  125. package/bin/chunk-xs0ras4j.js.map +51 -0
  126. package/bin/chunk-xt7ap9fb.js.map +10 -0
  127. package/bin/chunk-xya5qk3h.js.map +16 -0
  128. package/bin/chunk-yg7w4jgd.js.map +10 -0
  129. package/bin/chunk-yhpv46tb.js.map +20 -0
  130. package/bin/chunk-ymy66kr8.js.map +15 -0
  131. package/bin/chunk-yx4z6xsb.js.map +11 -0
  132. package/bin/chunk-yymwxqpy.js.map +10 -0
  133. package/bin/chunk-z70c75xe.js.map +11 -0
  134. package/bin/chunk-zkqyr3hc.js.map +10 -0
  135. package/bin/index.js.map +12 -0
  136. package/bin/lildax +0 -0
  137. package/package.json +15 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.bun/@ai-sdk+google@3.0.73+d6123d32214422cb/node_modules/@ai-sdk/google/dist/index.mjs"],
4
+ "sourcesContent": [
5
+ "// src/google-provider.ts\nimport {\n generateId as generateId2,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix as withUserAgentSuffix2\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"3.0.73\" : \"0.0.0-test\";\n\n// src/google-generative-ai-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createJsonResponseHandler,\n lazySchema as lazySchema3,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/google-error.ts\nimport {\n createJsonErrorResponseHandler,\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar googleErrorDataSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n code: z.number().nullable(),\n message: z.string(),\n status: z.string()\n })\n })\n )\n);\nvar googleFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: googleErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/google-generative-ai-embedding-options.ts\nimport {\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar googleEmbeddingContentPartSchema = z2.union([\n z2.object({ text: z2.string() }),\n z2.object({\n inlineData: z2.object({\n mimeType: z2.string(),\n data: z2.string()\n })\n }),\n z2.object({\n fileData: z2.object({\n fileUri: z2.string(),\n mimeType: z2.string()\n })\n })\n]);\nvar googleEmbeddingModelOptions = lazySchema2(\n () => zodSchema2(\n z2.object({\n /**\n * Optional. Optional reduced dimension for the output embedding.\n * If set, excessive values in the output embedding are truncated from the end.\n */\n outputDimensionality: z2.number().optional(),\n /**\n * Optional. Specifies the task type for generating embeddings.\n * Supported task types:\n * - SEMANTIC_SIMILARITY: Optimized for text similarity.\n * - CLASSIFICATION: Optimized for text classification.\n * - CLUSTERING: Optimized for clustering texts based on similarity.\n * - RETRIEVAL_DOCUMENT: Optimized for document retrieval.\n * - RETRIEVAL_QUERY: Optimized for query-based retrieval.\n * - QUESTION_ANSWERING: Optimized for answering questions.\n * - FACT_VERIFICATION: Optimized for verifying factual information.\n * - CODE_RETRIEVAL_QUERY: Optimized for retrieving code blocks based on natural language queries.\n */\n taskType: z2.enum([\n \"SEMANTIC_SIMILARITY\",\n \"CLASSIFICATION\",\n \"CLUSTERING\",\n \"RETRIEVAL_DOCUMENT\",\n \"RETRIEVAL_QUERY\",\n \"QUESTION_ANSWERING\",\n \"FACT_VERIFICATION\",\n \"CODE_RETRIEVAL_QUERY\"\n ]).optional(),\n /**\n * Optional. Per-value multimodal content parts for embedding non-text\n * content (images, video, PDF, audio). Each entry corresponds to the\n * embedding value at the same index and its parts are merged with the\n * text value in the request. Use `null` for entries that are text-only.\n *\n * The array length must match the number of values being embedded. In\n * the case of a single embedding, the array length must be 1.\n */\n content: z2.array(z2.array(googleEmbeddingContentPartSchema).min(1).nullable()).optional()\n })\n )\n);\n\n// src/google-generative-ai-embedding-model.ts\nvar GoogleGenerativeAIEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 2048;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n const googleOptions = await parseProviderOptions({\n provider: \"google\",\n providerOptions,\n schema: googleEmbeddingModelOptions\n });\n if (values.length > this.maxEmbeddingsPerCall) {\n throw new TooManyEmbeddingValuesForCallError({\n provider: this.provider,\n modelId: this.modelId,\n maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n values\n });\n }\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n headers\n );\n const multimodalContent = googleOptions == null ? void 0 : googleOptions.content;\n if (multimodalContent != null && multimodalContent.length !== values.length) {\n throw new Error(\n `The number of multimodal content entries (${multimodalContent.length}) must match the number of values (${values.length}).`\n );\n }\n if (values.length === 1) {\n const valueParts = multimodalContent == null ? void 0 : multimodalContent[0];\n const textPart = values[0] ? [{ text: values[0] }] : [];\n const parts = valueParts != null ? [...textPart, ...valueParts] : [{ text: values[0] }];\n const {\n responseHeaders: responseHeaders2,\n value: response2,\n rawValue: rawValue2\n } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:embedContent`,\n headers: mergedHeaders,\n body: {\n model: `models/${this.modelId}`,\n content: {\n parts\n },\n outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n taskType: googleOptions == null ? void 0 : googleOptions.taskType\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAISingleEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: [response2.embedding.values],\n usage: void 0,\n response: { headers: responseHeaders2, body: rawValue2 }\n };\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n headers: mergedHeaders,\n body: {\n requests: values.map((value, index) => {\n const valueParts = multimodalContent == null ? void 0 : multimodalContent[index];\n const textPart = value ? [{ text: value }] : [];\n return {\n model: `models/${this.modelId}`,\n content: {\n role: \"user\",\n parts: valueParts != null ? [...textPart, ...valueParts] : [{ text: value }]\n },\n outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n taskType: googleOptions == null ? void 0 : googleOptions.taskType\n };\n })\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAITextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.embeddings.map((item) => item.values),\n usage: void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar googleGenerativeAITextEmbeddingResponseSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n embeddings: z3.array(z3.object({ values: z3.array(z3.number()) }))\n })\n )\n);\nvar googleGenerativeAISingleEmbeddingResponseSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n embedding: z3.object({ values: z3.array(z3.number()) })\n })\n )\n);\n\n// src/google-generative-ai-language-model.ts\nimport {\n combineHeaders as combineHeaders2,\n createEventSourceResponseHandler,\n createJsonResponseHandler as createJsonResponseHandler2,\n generateId,\n lazySchema as lazySchema5,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n resolve as resolve2,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/convert-google-generative-ai-usage.ts\nfunction convertGoogleGenerativeAIUsage(usage) {\n var _a, _b, _c, _d;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.promptTokenCount) != null ? _a : 0;\n const candidatesTokens = (_b = usage.candidatesTokenCount) != null ? _b : 0;\n const cachedContentTokens = (_c = usage.cachedContentTokenCount) != null ? _c : 0;\n const thoughtsTokens = (_d = usage.thoughtsTokenCount) != null ? _d : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cachedContentTokens,\n cacheRead: cachedContentTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: candidatesTokens + thoughtsTokens,\n text: candidatesTokens,\n reasoning: thoughtsTokens\n },\n raw: usage\n };\n}\n\n// src/convert-json-schema-to-openapi-schema.ts\nfunction convertJSONSchemaToOpenAPISchema(jsonSchema, isRoot = true) {\n if (jsonSchema == null) {\n return void 0;\n }\n if (isEmptyObjectSchema(jsonSchema)) {\n if (isRoot) {\n return void 0;\n }\n if (typeof jsonSchema === \"object\" && jsonSchema.description) {\n return { type: \"object\", description: jsonSchema.description };\n }\n return { type: \"object\" };\n }\n if (typeof jsonSchema === \"boolean\") {\n return { type: \"boolean\", properties: {} };\n }\n const {\n type,\n description,\n required,\n properties,\n items,\n allOf,\n anyOf,\n oneOf,\n format,\n const: constValue,\n minLength,\n enum: enumValues\n } = jsonSchema;\n const result = {};\n if (description) result.description = description;\n if (required) result.required = required;\n if (format) result.format = format;\n if (constValue !== void 0) {\n result.enum = [constValue];\n }\n if (type) {\n if (Array.isArray(type)) {\n const hasNull = type.includes(\"null\");\n const nonNullTypes = type.filter((t) => t !== \"null\");\n if (nonNullTypes.length === 0) {\n result.type = \"null\";\n } else {\n result.anyOf = nonNullTypes.map((t) => ({ type: t }));\n if (hasNull) {\n result.nullable = true;\n }\n }\n } else {\n result.type = type;\n }\n }\n if (enumValues !== void 0) {\n result.enum = enumValues;\n }\n if (properties != null) {\n result.properties = Object.entries(properties).reduce(\n (acc, [key, value]) => {\n acc[key] = convertJSONSchemaToOpenAPISchema(value, false);\n return acc;\n },\n {}\n );\n }\n if (items) {\n result.items = Array.isArray(items) ? items.map((item) => convertJSONSchemaToOpenAPISchema(item, false)) : convertJSONSchemaToOpenAPISchema(items, false);\n }\n if (allOf) {\n result.allOf = allOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n }\n if (anyOf) {\n if (anyOf.some(\n (schema) => typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\"\n )) {\n const nonNullSchemas = anyOf.filter(\n (schema) => !(typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\")\n );\n if (nonNullSchemas.length === 1) {\n const converted = convertJSONSchemaToOpenAPISchema(\n nonNullSchemas[0],\n false\n );\n if (typeof converted === \"object\") {\n result.nullable = true;\n Object.assign(result, converted);\n }\n } else {\n result.anyOf = nonNullSchemas.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n result.nullable = true;\n }\n } else {\n result.anyOf = anyOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n }\n }\n if (oneOf) {\n result.oneOf = oneOf.map(\n (item) => convertJSONSchemaToOpenAPISchema(item, false)\n );\n }\n if (minLength !== void 0) {\n result.minLength = minLength;\n }\n return result;\n}\nfunction isEmptyObjectSchema(jsonSchema) {\n return jsonSchema != null && typeof jsonSchema === \"object\" && jsonSchema.type === \"object\" && (jsonSchema.properties == null || Object.keys(jsonSchema.properties).length === 0) && !jsonSchema.additionalProperties;\n}\n\n// src/convert-to-google-generative-ai-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nvar dataUrlRegex = /^data:([^;,]+);base64,(.+)$/s;\nfunction parseBase64DataUrl(value) {\n const match = dataUrlRegex.exec(value);\n if (match == null) {\n return void 0;\n }\n return {\n mediaType: match[1],\n data: match[2]\n };\n}\nfunction convertUrlToolResultPart(url) {\n const parsedDataUrl = parseBase64DataUrl(url);\n if (parsedDataUrl == null) {\n return void 0;\n }\n return {\n inlineData: {\n mimeType: parsedDataUrl.mediaType,\n data: parsedDataUrl.data\n }\n };\n}\nfunction appendToolResultParts(parts, toolName, outputValue) {\n const functionResponseParts = [];\n const responseTextParts = [];\n for (const contentPart of outputValue) {\n switch (contentPart.type) {\n case \"text\": {\n responseTextParts.push(contentPart.text);\n break;\n }\n case \"image-data\":\n case \"file-data\": {\n functionResponseParts.push({\n inlineData: {\n mimeType: contentPart.mediaType,\n data: contentPart.data\n }\n });\n break;\n }\n case \"image-url\":\n case \"file-url\": {\n const functionResponsePart = convertUrlToolResultPart(\n contentPart.url\n );\n if (functionResponsePart != null) {\n functionResponseParts.push(functionResponsePart);\n } else {\n responseTextParts.push(JSON.stringify(contentPart));\n }\n break;\n }\n default: {\n responseTextParts.push(JSON.stringify(contentPart));\n break;\n }\n }\n }\n parts.push({\n functionResponse: {\n name: toolName,\n response: {\n name: toolName,\n content: responseTextParts.length > 0 ? responseTextParts.join(\"\\n\") : \"Tool executed successfully.\"\n },\n ...functionResponseParts.length > 0 ? { parts: functionResponseParts } : {}\n }\n });\n}\nfunction appendLegacyToolResultParts(parts, toolName, outputValue) {\n for (const contentPart of outputValue) {\n switch (contentPart.type) {\n case \"text\":\n parts.push({\n functionResponse: {\n name: toolName,\n response: {\n name: toolName,\n content: contentPart.text\n }\n }\n });\n break;\n case \"image-data\":\n parts.push(\n {\n inlineData: {\n mimeType: String(contentPart.mediaType),\n data: String(contentPart.data)\n }\n },\n {\n text: \"Tool executed successfully and returned this image as a response\"\n }\n );\n break;\n default:\n parts.push({ text: JSON.stringify(contentPart) });\n break;\n }\n }\n}\nfunction convertToGoogleGenerativeAIMessages(prompt, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const systemInstructionParts = [];\n const contents = [];\n let systemMessagesAllowed = true;\n const isGemmaModel = (_a = options == null ? void 0 : options.isGemmaModel) != null ? _a : false;\n const providerOptionsName = (_b = options == null ? void 0 : options.providerOptionsName) != null ? _b : \"google\";\n const supportsFunctionResponseParts = (_c = options == null ? void 0 : options.supportsFunctionResponseParts) != null ? _c : true;\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: \"system messages are only supported at the beginning of the conversation\"\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n case \"user\": {\n systemMessagesAllowed = false;\n const parts = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n parts.push({ text: part.text });\n break;\n }\n case \"file\": {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n parts.push(\n part.data instanceof URL ? {\n fileData: {\n mimeType: mediaType,\n fileUri: part.data.toString()\n }\n } : {\n inlineData: {\n mimeType: mediaType,\n data: convertToBase64(part.data)\n }\n }\n );\n break;\n }\n }\n }\n contents.push({ role: \"user\", parts });\n break;\n }\n case \"assistant\": {\n systemMessagesAllowed = false;\n contents.push({\n role: \"model\",\n parts: content.map((part) => {\n var _a2, _b2, _c2, _d2;\n const providerOpts = (_d2 = (_a2 = part.providerOptions) == null ? void 0 : _a2[providerOptionsName]) != null ? _d2 : providerOptionsName !== \"google\" ? (_b2 = part.providerOptions) == null ? void 0 : _b2.google : (_c2 = part.providerOptions) == null ? void 0 : _c2.vertex;\n const thoughtSignature = (providerOpts == null ? void 0 : providerOpts.thoughtSignature) != null ? String(providerOpts.thoughtSignature) : void 0;\n switch (part.type) {\n case \"text\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thoughtSignature\n };\n }\n case \"reasoning\": {\n return part.text.length === 0 ? void 0 : {\n text: part.text,\n thought: true,\n thoughtSignature\n };\n }\n case \"file\": {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"File data URLs in assistant messages are not supported\"\n });\n }\n return {\n inlineData: {\n mimeType: part.mediaType,\n data: convertToBase64(part.data)\n },\n ...(providerOpts == null ? void 0 : providerOpts.thought) === true ? { thought: true } : {},\n thoughtSignature\n };\n }\n case \"tool-call\": {\n const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n return {\n toolCall: {\n toolType: serverToolType,\n args: typeof part.input === \"string\" ? JSON.parse(part.input) : part.input,\n id: serverToolCallId\n },\n thoughtSignature\n };\n }\n return {\n functionCall: {\n name: part.toolName,\n args: part.input\n },\n thoughtSignature\n };\n }\n case \"tool-result\": {\n const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n return {\n toolResponse: {\n toolType: serverToolType,\n response: part.output.type === \"json\" ? part.output.value : {},\n id: serverToolCallId\n },\n thoughtSignature\n };\n }\n return void 0;\n }\n }\n }).filter((part) => part !== void 0)\n });\n if (contents[contents.length - 1].parts.length === 0) {\n contents.pop();\n }\n break;\n }\n case \"tool\": {\n systemMessagesAllowed = false;\n const parts = [];\n for (const part of content) {\n if (part.type === \"tool-approval-response\") {\n continue;\n }\n const partProviderOpts = (_g = (_d = part.providerOptions) == null ? void 0 : _d[providerOptionsName]) != null ? _g : providerOptionsName !== \"google\" ? (_e = part.providerOptions) == null ? void 0 : _e.google : (_f = part.providerOptions) == null ? void 0 : _f.vertex;\n const serverToolCallId = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolCallId) != null ? String(partProviderOpts.serverToolCallId) : void 0;\n const serverToolType = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolType) != null ? String(partProviderOpts.serverToolType) : void 0;\n if (serverToolCallId && serverToolType) {\n const serverThoughtSignature = (partProviderOpts == null ? void 0 : partProviderOpts.thoughtSignature) != null ? String(partProviderOpts.thoughtSignature) : void 0;\n if (contents.length > 0) {\n const lastContent = contents[contents.length - 1];\n if (lastContent.role === \"model\") {\n lastContent.parts.push({\n toolResponse: {\n toolType: serverToolType,\n response: part.output.type === \"json\" ? part.output.value : {},\n id: serverToolCallId\n },\n thoughtSignature: serverThoughtSignature\n });\n continue;\n }\n }\n }\n const output = part.output;\n if (output.type === \"content\") {\n if (supportsFunctionResponseParts) {\n appendToolResultParts(parts, part.toolName, output.value);\n } else {\n appendLegacyToolResultParts(parts, part.toolName, output.value);\n }\n } else {\n parts.push({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: output.type === \"execution-denied\" ? (_h = output.reason) != null ? _h : \"Tool execution denied.\" : output.value\n }\n }\n });\n }\n }\n contents.push({\n role: \"user\",\n parts\n });\n break;\n }\n }\n }\n if (isGemmaModel && systemInstructionParts.length > 0 && contents.length > 0 && contents[0].role === \"user\") {\n const systemText = systemInstructionParts.map((part) => part.text).join(\"\\n\\n\");\n contents[0].parts.unshift({ text: systemText + \"\\n\\n\" });\n }\n return {\n systemInstruction: systemInstructionParts.length > 0 && !isGemmaModel ? { parts: systemInstructionParts } : void 0,\n contents\n };\n}\n\n// src/get-model-path.ts\nfunction getModelPath(modelId) {\n return modelId.includes(\"/\") ? modelId : `models/${modelId}`;\n}\n\n// src/google-generative-ai-options.ts\nimport {\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar googleLanguageModelOptions = lazySchema4(\n () => zodSchema4(\n z4.object({\n responseModalities: z4.array(z4.enum([\"TEXT\", \"IMAGE\"])).optional(),\n thinkingConfig: z4.object({\n thinkingBudget: z4.number().optional(),\n includeThoughts: z4.boolean().optional(),\n // https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#thinking_level\n thinkingLevel: z4.enum([\"minimal\", \"low\", \"medium\", \"high\"]).optional()\n }).optional(),\n /**\n * Optional.\n * The name of the cached content used as context to serve the prediction.\n * Format: cachedContents/{cachedContent}\n */\n cachedContent: z4.string().optional(),\n /**\n * Optional. Enable structured output. Default is true.\n *\n * This is useful when the JSON Schema contains elements that are\n * not supported by the OpenAPI schema version that\n * Google Generative AI uses. You can use this to disable\n * structured outputs if you need to.\n */\n structuredOutputs: z4.boolean().optional(),\n /**\n * Optional. A list of unique safety settings for blocking unsafe content.\n */\n safetySettings: z4.array(\n z4.object({\n category: z4.enum([\n \"HARM_CATEGORY_UNSPECIFIED\",\n \"HARM_CATEGORY_HATE_SPEECH\",\n \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n \"HARM_CATEGORY_HARASSMENT\",\n \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n \"HARM_CATEGORY_CIVIC_INTEGRITY\"\n ]),\n threshold: z4.enum([\n \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n \"BLOCK_LOW_AND_ABOVE\",\n \"BLOCK_MEDIUM_AND_ABOVE\",\n \"BLOCK_ONLY_HIGH\",\n \"BLOCK_NONE\",\n \"OFF\"\n ])\n })\n ).optional(),\n threshold: z4.enum([\n \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n \"BLOCK_LOW_AND_ABOVE\",\n \"BLOCK_MEDIUM_AND_ABOVE\",\n \"BLOCK_ONLY_HIGH\",\n \"BLOCK_NONE\",\n \"OFF\"\n ]).optional(),\n /**\n * Optional. Enables timestamp understanding for audio-only files.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/audio-understanding\n */\n audioTimestamp: z4.boolean().optional(),\n /**\n * Optional. Defines labels used in billing reports. Available on Vertex AI only.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls\n */\n labels: z4.record(z4.string(), z4.string()).optional(),\n /**\n * Optional. If specified, the media resolution specified will be used.\n *\n * https://ai.google.dev/api/generate-content#MediaResolution\n */\n mediaResolution: z4.enum([\n \"MEDIA_RESOLUTION_UNSPECIFIED\",\n \"MEDIA_RESOLUTION_LOW\",\n \"MEDIA_RESOLUTION_MEDIUM\",\n \"MEDIA_RESOLUTION_HIGH\"\n ]).optional(),\n /**\n * Optional. Configures the image generation aspect ratio for Gemini models.\n *\n * https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios\n */\n imageConfig: z4.object({\n aspectRatio: z4.enum([\n \"1:1\",\n \"2:3\",\n \"3:2\",\n \"3:4\",\n \"4:3\",\n \"4:5\",\n \"5:4\",\n \"9:16\",\n \"16:9\",\n \"21:9\",\n \"1:8\",\n \"8:1\",\n \"1:4\",\n \"4:1\"\n ]).optional(),\n imageSize: z4.enum([\"1K\", \"2K\", \"4K\", \"512\"]).optional()\n }).optional(),\n /**\n * Optional. Configuration for grounding retrieval.\n * Used to provide location context for Google Maps and Google Search grounding.\n *\n * https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n */\n retrievalConfig: z4.object({\n latLng: z4.object({\n latitude: z4.number(),\n longitude: z4.number()\n }).optional()\n }).optional(),\n /**\n * Optional. When set to true, function call arguments will be streamed\n * incrementally via partialArgs in streaming responses. Only supported\n * on the Vertex AI API (not the Gemini API) and only for Gemini 3+\n * models.\n *\n * @default false\n *\n * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc\n */\n streamFunctionCallArguments: z4.boolean().optional(),\n /**\n * Optional. The service tier to use for the request.\n */\n serviceTier: z4.enum([\"standard\", \"flex\", \"priority\"]).optional()\n })\n )\n);\nvar VertexServiceTierMap = {\n standard: \"SERVICE_TIER_STANDARD\",\n flex: \"SERVICE_TIER_FLEX\",\n priority: \"SERVICE_TIER_PRIORITY\"\n};\n\n// src/google-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice,\n modelId,\n isVertexProvider = false\n}) {\n var _a, _b;\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n const isLatest = [\n \"gemini-flash-latest\",\n \"gemini-flash-lite-latest\",\n \"gemini-pro-latest\"\n ].some((id) => id === modelId);\n const isGemini2orNewer = modelId.includes(\"gemini-2\") || modelId.includes(\"gemini-3\") || modelId.includes(\"nano-banana\") || isLatest;\n const isGemini3orNewer = modelId.includes(\"gemini-3\");\n const supportsFileSearch = modelId.includes(\"gemini-2.5\") || modelId.includes(\"gemini-3\");\n if (tools == null) {\n return { tools: void 0, toolConfig: void 0, toolWarnings };\n }\n const hasFunctionTools = tools.some((tool) => tool.type === \"function\");\n const hasProviderTools = tools.some((tool) => tool.type === \"provider\");\n if (hasFunctionTools && hasProviderTools && !isGemini3orNewer) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `combination of function and provider-defined tools`\n });\n }\n if (hasProviderTools) {\n const googleTools2 = [];\n const ProviderTools = tools.filter((tool) => tool.type === \"provider\");\n ProviderTools.forEach((tool) => {\n switch (tool.id) {\n case \"google.google_search\":\n if (isGemini2orNewer) {\n googleTools2.push({ googleSearch: { ...tool.args } });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"Google Search requires Gemini 2.0 or newer.\"\n });\n }\n break;\n case \"google.enterprise_web_search\":\n if (isGemini2orNewer) {\n googleTools2.push({ enterpriseWebSearch: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"Enterprise Web Search requires Gemini 2.0 or newer.\"\n });\n }\n break;\n case \"google.url_context\":\n if (isGemini2orNewer) {\n googleTools2.push({ urlContext: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The URL context tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.code_execution\":\n if (isGemini2orNewer) {\n googleTools2.push({ codeExecution: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The code execution tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.file_search\":\n if (supportsFileSearch) {\n googleTools2.push({ fileSearch: { ...tool.args } });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The file search tool is only supported with Gemini 2.5 models and Gemini 3 models.\"\n });\n }\n break;\n case \"google.vertex_rag_store\":\n if (isGemini2orNewer) {\n googleTools2.push({\n retrieval: {\n vertex_rag_store: {\n rag_resources: {\n rag_corpus: tool.args.ragCorpus\n },\n similarity_top_k: tool.args.topK\n }\n }\n });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The RAG store tool is not supported with other Gemini models than Gemini 2.\"\n });\n }\n break;\n case \"google.google_maps\":\n if (isGemini2orNewer) {\n googleTools2.push({ googleMaps: {} });\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: \"The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.\"\n });\n }\n break;\n default:\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n break;\n }\n });\n if (hasFunctionTools && isGemini3orNewer && googleTools2.length > 0) {\n const functionDeclarations2 = [];\n for (const tool of tools) {\n if (tool.type === \"function\") {\n functionDeclarations2.push({\n name: tool.name,\n description: (_a = tool.description) != null ? _a : \"\",\n parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n });\n }\n }\n const combinedToolConfig = {\n functionCallingConfig: { mode: \"VALIDATED\" },\n ...!isVertexProvider && {\n includeServerSideToolInvocations: true\n }\n };\n if (toolChoice != null) {\n switch (toolChoice.type) {\n case \"auto\":\n break;\n case \"none\":\n combinedToolConfig.functionCallingConfig = { mode: \"NONE\" };\n break;\n case \"required\":\n combinedToolConfig.functionCallingConfig = { mode: \"ANY\" };\n break;\n case \"tool\":\n combinedToolConfig.functionCallingConfig = {\n mode: \"ANY\",\n allowedFunctionNames: [toolChoice.toolName]\n };\n break;\n }\n }\n return {\n tools: [...googleTools2, { functionDeclarations: functionDeclarations2 }],\n toolConfig: combinedToolConfig,\n toolWarnings\n };\n }\n return {\n tools: googleTools2.length > 0 ? googleTools2 : void 0,\n toolConfig: void 0,\n toolWarnings\n };\n }\n const functionDeclarations = [];\n let hasStrictTools = false;\n for (const tool of tools) {\n switch (tool.type) {\n case \"function\":\n functionDeclarations.push({\n name: tool.name,\n description: (_b = tool.description) != null ? _b : \"\",\n parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n });\n if (tool.strict === true) {\n hasStrictTools = true;\n }\n break;\n default:\n toolWarnings.push({\n type: \"unsupported\",\n feature: `function tool ${tool.name}`\n });\n break;\n }\n }\n if (toolChoice == null) {\n return {\n tools: [{ functionDeclarations }],\n toolConfig: hasStrictTools ? { functionCallingConfig: { mode: \"VALIDATED\" } } : void 0,\n toolWarnings\n };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"AUTO\"\n }\n },\n toolWarnings\n };\n case \"none\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: { functionCallingConfig: { mode: \"NONE\" } },\n toolWarnings\n };\n case \"required\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"ANY\"\n }\n },\n toolWarnings\n };\n case \"tool\":\n return {\n tools: [{ functionDeclarations }],\n toolConfig: {\n functionCallingConfig: {\n mode: hasStrictTools ? \"VALIDATED\" : \"ANY\",\n allowedFunctionNames: [toolChoice.toolName]\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/google-json-accumulator.ts\nvar GoogleJSONAccumulator = class {\n constructor() {\n this.accumulatedArgs = {};\n this.jsonText = \"\";\n /**\n * Stack representing the currently \"open\" containers in the JSON output.\n * Entry 0 is always the root `{` object once the first value is written.\n */\n this.pathStack = [];\n /**\n * Whether a string value is currently \"open\" (willContinue was true),\n * meaning the closing quote has not yet been emitted.\n */\n this.stringOpen = false;\n }\n /**\n * Input: [{jsonPath:\"$.brightness\",numberValue:50}]\n * Output: { currentJSON:{brightness:50}, textDelta:'{\"brightness\":50' }\n */\n processPartialArgs(partialArgs) {\n let delta = \"\";\n for (const arg of partialArgs) {\n const rawPath = arg.jsonPath.replace(/^\\$\\./, \"\");\n if (!rawPath) continue;\n const segments = parsePath(rawPath);\n const existingValue = getNestedValue(this.accumulatedArgs, segments);\n const isStringContinuation = arg.stringValue != null && existingValue !== void 0;\n if (isStringContinuation) {\n const escaped = JSON.stringify(arg.stringValue).slice(1, -1);\n setNestedValue(\n this.accumulatedArgs,\n segments,\n existingValue + arg.stringValue\n );\n delta += escaped;\n continue;\n }\n const resolved = resolvePartialArgValue(arg);\n if (resolved == null) continue;\n setNestedValue(this.accumulatedArgs, segments, resolved.value);\n delta += this.emitNavigationTo(segments, arg, resolved.json);\n }\n this.jsonText += delta;\n return {\n currentJSON: this.accumulatedArgs,\n textDelta: delta\n };\n }\n /**\n * Input: jsonText='{\"brightness\":50', accumulatedArgs={brightness:50}\n * Output: { finalJSON:'{\"brightness\":50}', closingDelta:'}' }\n */\n finalize() {\n const finalArgs = JSON.stringify(this.accumulatedArgs);\n const closingDelta = finalArgs.slice(this.jsonText.length);\n return { finalJSON: finalArgs, closingDelta };\n }\n /**\n * Input: pathStack=[] (first call) or pathStack=[root,...] (subsequent calls)\n * Output: '{' (first call) or '' (subsequent calls)\n */\n ensureRoot() {\n if (this.pathStack.length === 0) {\n this.pathStack.push({ segment: \"\", isArray: false, childCount: 0 });\n return \"{\";\n }\n return \"\";\n }\n /**\n * Emits the JSON text fragment needed to navigate from the current open\n * path to the new leaf at `targetSegments`, then writes the value.\n *\n * Input: targetSegments=[\"recipe\",\"name\"], arg={jsonPath:\"$.recipe.name\",stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n * Output: '{\"recipe\":{\"name\":\"Lasagna\"'\n */\n emitNavigationTo(targetSegments, arg, valueJson) {\n let fragment = \"\";\n if (this.stringOpen) {\n fragment += '\"';\n this.stringOpen = false;\n }\n fragment += this.ensureRoot();\n const targetContainerSegments = targetSegments.slice(0, -1);\n const leafSegment = targetSegments[targetSegments.length - 1];\n const commonDepth = this.findCommonStackDepth(targetContainerSegments);\n fragment += this.closeDownTo(commonDepth);\n fragment += this.openDownTo(targetContainerSegments, leafSegment);\n fragment += this.emitLeaf(leafSegment, arg, valueJson);\n return fragment;\n }\n /**\n * Returns the stack depth to preserve when navigating to a new target\n * container path. Always >= 1 (the root is never popped).\n *\n * Input: stack=[root,\"recipe\",\"ingredients\",0], target=[\"recipe\",\"ingredients\",1]\n * Output: 3 (keep root+\"recipe\"+\"ingredients\")\n */\n findCommonStackDepth(targetContainer) {\n const maxDepth = Math.min(\n this.pathStack.length - 1,\n targetContainer.length\n );\n let common = 0;\n for (let i = 0; i < maxDepth; i++) {\n if (this.pathStack[i + 1].segment === targetContainer[i]) {\n common++;\n } else {\n break;\n }\n }\n return common + 1;\n }\n /**\n * Closes containers from the current stack depth back down to `targetDepth`.\n *\n * Input: this.pathStack=[root,\"recipe\",\"ingredients\",0], targetDepth=3\n * Output: '}'\n */\n closeDownTo(targetDepth) {\n let fragment = \"\";\n while (this.pathStack.length > targetDepth) {\n const entry = this.pathStack.pop();\n fragment += entry.isArray ? \"]\" : \"}\";\n }\n return fragment;\n }\n /**\n * Opens containers from the current stack depth down to the full target\n * container path, emitting opening `{`, `[`, keys, and commas as needed.\n * `leafSegment` is used to determine if the innermost container is an array.\n *\n * Input: this.pathStack=[root], targetContainer=[\"recipe\",\"ingredients\"], leafSegment=0\n * Output: '\"recipe\":{\"ingredients\":['\n */\n openDownTo(targetContainer, leafSegment) {\n let fragment = \"\";\n const startIdx = this.pathStack.length - 1;\n for (let i = startIdx; i < targetContainer.length; i++) {\n const seg = targetContainer[i];\n const parentEntry = this.pathStack[this.pathStack.length - 1];\n if (parentEntry.childCount > 0) {\n fragment += \",\";\n }\n parentEntry.childCount++;\n if (typeof seg === \"string\") {\n fragment += `${JSON.stringify(seg)}:`;\n }\n const childSeg = i + 1 < targetContainer.length ? targetContainer[i + 1] : leafSegment;\n const isArray = typeof childSeg === \"number\";\n fragment += isArray ? \"[\" : \"{\";\n this.pathStack.push({ segment: seg, isArray, childCount: 0 });\n }\n return fragment;\n }\n /**\n * Emits the comma, key, and value for a leaf entry in the current container.\n *\n * Input: leafSegment=\"name\", arg={stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n * Output: '\"name\":\"Lasagna\"' (or ',\"name\":\"Lasagna\"' if container.childCount > 0)\n */\n emitLeaf(leafSegment, arg, valueJson) {\n let fragment = \"\";\n const container = this.pathStack[this.pathStack.length - 1];\n if (container.childCount > 0) {\n fragment += \",\";\n }\n container.childCount++;\n if (typeof leafSegment === \"string\") {\n fragment += `${JSON.stringify(leafSegment)}:`;\n }\n if (arg.stringValue != null && arg.willContinue) {\n fragment += valueJson.slice(0, -1);\n this.stringOpen = true;\n } else {\n fragment += valueJson;\n }\n return fragment;\n }\n};\nfunction parsePath(rawPath) {\n const segments = [];\n for (const part of rawPath.split(\".\")) {\n const bracketIdx = part.indexOf(\"[\");\n if (bracketIdx === -1) {\n segments.push(part);\n } else {\n if (bracketIdx > 0) segments.push(part.slice(0, bracketIdx));\n for (const m of part.matchAll(/\\[(\\d+)\\]/g)) {\n segments.push(parseInt(m[1], 10));\n }\n }\n }\n return segments;\n}\nfunction getNestedValue(obj, segments) {\n let current = obj;\n for (const seg of segments) {\n if (current == null || typeof current !== \"object\") return void 0;\n current = current[seg];\n }\n return current;\n}\nfunction setNestedValue(obj, segments, value) {\n let current = obj;\n for (let i = 0; i < segments.length - 1; i++) {\n const seg = segments[i];\n const nextSeg = segments[i + 1];\n if (current[seg] == null) {\n current[seg] = typeof nextSeg === \"number\" ? [] : {};\n }\n current = current[seg];\n }\n current[segments[segments.length - 1]] = value;\n}\nfunction resolvePartialArgValue(arg) {\n var _a, _b;\n const value = (_b = (_a = arg.stringValue) != null ? _a : arg.numberValue) != null ? _b : arg.boolValue;\n if (value != null) return { value, json: JSON.stringify(value) };\n if (\"nullValue\" in arg) return { value: null, json: \"null\" };\n return void 0;\n}\n\n// src/map-google-generative-ai-finish-reason.ts\nfunction mapGoogleGenerativeAIFinishReason({\n finishReason,\n hasToolCalls\n}) {\n switch (finishReason) {\n case \"STOP\":\n return hasToolCalls ? \"tool-calls\" : \"stop\";\n case \"MAX_TOKENS\":\n return \"length\";\n case \"IMAGE_SAFETY\":\n case \"RECITATION\":\n case \"SAFETY\":\n case \"BLOCKLIST\":\n case \"PROHIBITED_CONTENT\":\n case \"SPII\":\n return \"content-filter\";\n case \"MALFORMED_FUNCTION_CALL\":\n return \"error\";\n case \"FINISH_REASON_UNSPECIFIED\":\n case \"OTHER\":\n default:\n return \"other\";\n }\n}\n\n// src/google-generative-ai-language-model.ts\nvar GoogleGenerativeAILanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n get supportedUrls() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n tools,\n toolChoice,\n providerOptions\n }, { isStreaming = false } = {}) {\n var _a, _b;\n const warnings = [];\n const providerOptionsName = this.config.provider.includes(\"vertex\") ? \"vertex\" : \"google\";\n let googleOptions = await parseProviderOptions2({\n provider: providerOptionsName,\n providerOptions,\n schema: googleLanguageModelOptions\n });\n if (googleOptions == null && providerOptionsName !== \"google\") {\n googleOptions = await parseProviderOptions2({\n provider: \"google\",\n providerOptions,\n schema: googleLanguageModelOptions\n });\n }\n const isVertexProvider = this.config.provider.startsWith(\"google.vertex.\");\n if ((tools == null ? void 0 : tools.some(\n (tool) => tool.type === \"provider\" && tool.id === \"google.vertex_rag_store\"\n )) && !isVertexProvider) {\n warnings.push({\n type: \"other\",\n message: `The 'vertex_rag_store' tool is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`\n });\n }\n if ((googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) && !isVertexProvider) {\n warnings.push({\n type: \"other\",\n message: `'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${this.config.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`\n });\n }\n let sanitizedServiceTier = googleOptions == null ? void 0 : googleOptions.serviceTier;\n if ((googleOptions == null ? void 0 : googleOptions.serviceTier) && isVertexProvider) {\n sanitizedServiceTier = VertexServiceTierMap[googleOptions.serviceTier];\n }\n const isGemmaModel = this.modelId.toLowerCase().startsWith(\"gemma-\");\n const supportsFunctionResponseParts = this.modelId.startsWith(\"gemini-3\");\n const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(\n prompt,\n {\n isGemmaModel,\n providerOptionsName,\n supportsFunctionResponseParts\n }\n );\n const {\n tools: googleTools2,\n toolConfig: googleToolConfig,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice,\n modelId: this.modelId,\n isVertexProvider\n });\n const streamFunctionCallArguments = isStreaming && isVertexProvider ? (_a = googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) != null ? _a : false : void 0;\n const toolConfig = googleToolConfig || streamFunctionCallArguments || (googleOptions == null ? void 0 : googleOptions.retrievalConfig) ? {\n ...googleToolConfig,\n ...streamFunctionCallArguments && {\n functionCallingConfig: {\n ...googleToolConfig == null ? void 0 : googleToolConfig.functionCallingConfig,\n streamFunctionCallArguments: true\n }\n },\n ...(googleOptions == null ? void 0 : googleOptions.retrievalConfig) && {\n retrievalConfig: googleOptions.retrievalConfig\n }\n } : void 0;\n return {\n args: {\n generationConfig: {\n // standardized settings:\n maxOutputTokens,\n temperature,\n topK,\n topP,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n // response format:\n responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? \"application/json\" : void 0,\n responseSchema: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n // TODO convert into provider option\n ((_b = googleOptions == null ? void 0 : googleOptions.structuredOutputs) != null ? _b : true) ? convertJSONSchemaToOpenAPISchema(responseFormat.schema) : void 0,\n ...(googleOptions == null ? void 0 : googleOptions.audioTimestamp) && {\n audioTimestamp: googleOptions.audioTimestamp\n },\n // provider options:\n responseModalities: googleOptions == null ? void 0 : googleOptions.responseModalities,\n thinkingConfig: googleOptions == null ? void 0 : googleOptions.thinkingConfig,\n ...(googleOptions == null ? void 0 : googleOptions.mediaResolution) && {\n mediaResolution: googleOptions.mediaResolution\n },\n ...(googleOptions == null ? void 0 : googleOptions.imageConfig) && {\n imageConfig: googleOptions.imageConfig\n }\n },\n contents,\n systemInstruction: isGemmaModel ? void 0 : systemInstruction,\n safetySettings: googleOptions == null ? void 0 : googleOptions.safetySettings,\n tools: googleTools2,\n toolConfig,\n cachedContent: googleOptions == null ? void 0 : googleOptions.cachedContent,\n labels: googleOptions == null ? void 0 : googleOptions.labels,\n serviceTier: sanitizedServiceTier\n },\n warnings: [...warnings, ...toolWarnings],\n providerOptionsName\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const { args, warnings, providerOptionsName } = await this.getArgs(options);\n const mergedHeaders = combineHeaders2(\n await resolve2(this.config.headers),\n options.headers\n );\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId\n )}:generateContent`,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(responseSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const candidate = response.candidates[0];\n const content = [];\n const parts = (_b = (_a = candidate.content) == null ? void 0 : _a.parts) != null ? _b : [];\n const usageMetadata = response.usageMetadata;\n let lastCodeExecutionToolCallId;\n let lastServerToolCallId;\n for (const part of parts) {\n if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n const toolCallId = this.config.generateId();\n lastCodeExecutionToolCallId = toolCallId;\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: \"code_execution\",\n input: JSON.stringify(part.executableCode),\n providerExecuted: true\n });\n } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n content.push({\n type: \"tool-result\",\n // Assumes a result directly follows its corresponding call part.\n toolCallId: lastCodeExecutionToolCallId,\n toolName: \"code_execution\",\n result: {\n outcome: part.codeExecutionResult.outcome,\n output: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n }\n });\n lastCodeExecutionToolCallId = void 0;\n } else if (\"text\" in part && part.text != null) {\n const thoughtSignatureMetadata = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n if (part.text.length === 0) {\n if (thoughtSignatureMetadata != null && content.length > 0) {\n const lastContent = content[content.length - 1];\n lastContent.providerMetadata = thoughtSignatureMetadata;\n }\n } else {\n content.push({\n type: part.thought === true ? \"reasoning\" : \"text\",\n text: part.text,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else if (\"functionCall\" in part && part.functionCall.name != null) {\n content.push({\n type: \"tool-call\",\n toolCallId: this.config.generateId(),\n toolName: part.functionCall.name,\n input: JSON.stringify((_e = part.functionCall.args) != null ? _e : {}),\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0\n });\n } else if (\"inlineData\" in part) {\n const hasThought = part.thought === true;\n const hasThoughtSignature = !!part.thoughtSignature;\n content.push({\n type: \"file\",\n data: part.inlineData.data,\n mediaType: part.inlineData.mimeType,\n providerMetadata: hasThought || hasThoughtSignature ? {\n [providerOptionsName]: {\n ...hasThought ? { thought: true } : {},\n ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n }\n } : void 0\n });\n } else if (\"toolCall\" in part && part.toolCall) {\n const toolCallId = (_f = part.toolCall.id) != null ? _f : this.config.generateId();\n lastServerToolCallId = toolCallId;\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: `server:${part.toolCall.toolType}`,\n input: JSON.stringify((_g = part.toolCall.args) != null ? _g : {}),\n providerExecuted: true,\n dynamic: true,\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature,\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n } : {\n [providerOptionsName]: {\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n }\n });\n } else if (\"toolResponse\" in part && part.toolResponse) {\n const responseToolCallId = (_h = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _h : this.config.generateId();\n content.push({\n type: \"tool-result\",\n toolCallId: responseToolCallId,\n toolName: `server:${part.toolResponse.toolType}`,\n result: (_i = part.toolResponse.response) != null ? _i : {},\n providerMetadata: part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature,\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n } : {\n [providerOptionsName]: {\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n }\n });\n lastServerToolCallId = void 0;\n }\n }\n const sources = (_j = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: this.config.generateId\n })) != null ? _j : [];\n for (const source of sources) {\n content.push(source);\n }\n return {\n content,\n finishReason: {\n unified: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n // Only count client-executed tool calls for finish reason determination.\n hasToolCalls: content.some(\n (part) => part.type === \"tool-call\" && !part.providerExecuted\n )\n }),\n raw: (_k = candidate.finishReason) != null ? _k : void 0\n },\n usage: convertGoogleGenerativeAIUsage(usageMetadata),\n warnings,\n providerMetadata: {\n [providerOptionsName]: {\n promptFeedback: (_l = response.promptFeedback) != null ? _l : null,\n groundingMetadata: (_m = candidate.groundingMetadata) != null ? _m : null,\n urlContextMetadata: (_n = candidate.urlContextMetadata) != null ? _n : null,\n safetyRatings: (_o = candidate.safetyRatings) != null ? _o : null,\n usageMetadata: usageMetadata != null ? usageMetadata : null,\n finishMessage: (_p = candidate.finishMessage) != null ? _p : null,\n serviceTier: (_q = response.serviceTier) != null ? _q : null\n }\n },\n request: { body: args },\n response: {\n // TODO timestamp, model id, id\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n async doStream(options) {\n const { args, warnings, providerOptionsName } = await this.getArgs(\n options,\n { isStreaming: true }\n );\n const headers = combineHeaders2(\n await resolve2(this.config.headers),\n options.headers\n );\n const { responseHeaders, value: response } = await postJsonToApi2({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId\n )}:streamGenerateContent?alt=sse`,\n headers,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(chunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let providerMetadata = void 0;\n let lastGroundingMetadata = null;\n let lastUrlContextMetadata = null;\n let serviceTier = null;\n const generateId3 = this.config.generateId;\n let hasToolCalls = false;\n let currentTextBlockId = null;\n let currentReasoningBlockId = null;\n let blockCounter = 0;\n const emittedSourceUrls = /* @__PURE__ */ new Set();\n let lastCodeExecutionToolCallId;\n let lastServerToolCallId;\n const activeStreamingToolCalls = [];\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n const usageMetadata = value.usageMetadata;\n if (usageMetadata != null) {\n usage = usageMetadata;\n }\n if (value.serviceTier != null) {\n serviceTier = value.serviceTier;\n }\n const candidate = (_a = value.candidates) == null ? void 0 : _a[0];\n if (candidate == null) {\n return;\n }\n const content = candidate.content;\n if (candidate.groundingMetadata != null) {\n lastGroundingMetadata = candidate.groundingMetadata;\n }\n if (candidate.urlContextMetadata != null) {\n lastUrlContextMetadata = candidate.urlContextMetadata;\n }\n const sources = extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: generateId3\n });\n if (sources != null) {\n for (const source of sources) {\n if (source.sourceType === \"url\" && !emittedSourceUrls.has(source.url)) {\n emittedSourceUrls.add(source.url);\n controller.enqueue(source);\n }\n }\n }\n if (content != null) {\n const parts = (_b = content.parts) != null ? _b : [];\n for (const part of parts) {\n if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n const toolCallId = generateId3();\n lastCodeExecutionToolCallId = toolCallId;\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: \"code_execution\",\n input: JSON.stringify(part.executableCode),\n providerExecuted: true\n });\n } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n const toolCallId = lastCodeExecutionToolCallId;\n if (toolCallId) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n toolName: \"code_execution\",\n result: {\n outcome: part.codeExecutionResult.outcome,\n output: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n }\n });\n lastCodeExecutionToolCallId = void 0;\n }\n } else if (\"text\" in part && part.text != null) {\n const thoughtSignatureMetadata = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n if (part.text.length === 0) {\n if (thoughtSignatureMetadata != null && currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-delta\",\n id: currentTextBlockId,\n delta: \"\",\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else if (part.thought === true) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n currentTextBlockId = null;\n }\n if (currentReasoningBlockId === null) {\n currentReasoningBlockId = String(blockCounter++);\n controller.enqueue({\n type: \"reasoning-start\",\n id: currentReasoningBlockId,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: currentReasoningBlockId,\n delta: part.text,\n providerMetadata: thoughtSignatureMetadata\n });\n } else {\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n currentReasoningBlockId = null;\n }\n if (currentTextBlockId === null) {\n currentTextBlockId = String(blockCounter++);\n controller.enqueue({\n type: \"text-start\",\n id: currentTextBlockId,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: currentTextBlockId,\n delta: part.text,\n providerMetadata: thoughtSignatureMetadata\n });\n }\n } else if (\"inlineData\" in part) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n currentTextBlockId = null;\n }\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n currentReasoningBlockId = null;\n }\n const hasThought = part.thought === true;\n const hasThoughtSignature = !!part.thoughtSignature;\n const fileMeta = hasThought || hasThoughtSignature ? {\n [providerOptionsName]: {\n ...hasThought ? { thought: true } : {},\n ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n }\n } : void 0;\n controller.enqueue({\n type: \"file\",\n mediaType: part.inlineData.mimeType,\n data: part.inlineData.data,\n providerMetadata: fileMeta\n });\n } else if (\"toolCall\" in part && part.toolCall) {\n const toolCallId = (_e = part.toolCall.id) != null ? _e : generateId3();\n lastServerToolCallId = toolCallId;\n const serverMeta = {\n [providerOptionsName]: {\n ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n serverToolCallId: toolCallId,\n serverToolType: part.toolCall.toolType\n }\n };\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: `server:${part.toolCall.toolType}`,\n input: JSON.stringify((_f = part.toolCall.args) != null ? _f : {}),\n providerExecuted: true,\n dynamic: true,\n providerMetadata: serverMeta\n });\n } else if (\"toolResponse\" in part && part.toolResponse) {\n const responseToolCallId = (_g = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _g : generateId3();\n const serverMeta = {\n [providerOptionsName]: {\n ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n serverToolCallId: responseToolCallId,\n serverToolType: part.toolResponse.toolType\n }\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: responseToolCallId,\n toolName: `server:${part.toolResponse.toolType}`,\n result: (_h = part.toolResponse.response) != null ? _h : {},\n providerMetadata: serverMeta\n });\n lastServerToolCallId = void 0;\n }\n }\n for (const part of parts) {\n if (!(\"functionCall\" in part)) continue;\n const providerMeta = part.thoughtSignature ? {\n [providerOptionsName]: {\n thoughtSignature: part.thoughtSignature\n }\n } : void 0;\n const isStreamingChunk = part.functionCall.partialArgs != null || part.functionCall.name != null && part.functionCall.willContinue === true;\n const isTerminalChunk = part.functionCall.name == null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue == null;\n const isCompleteCall = part.functionCall.name != null && part.functionCall.args != null && part.functionCall.partialArgs == null;\n const isNoArgsCompleteCall = part.functionCall.name != null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue !== true;\n if (isStreamingChunk) {\n if (part.functionCall.name != null && part.functionCall.willContinue === true) {\n const toolCallId = generateId3();\n const accumulator = new GoogleJSONAccumulator();\n activeStreamingToolCalls.push({\n toolCallId,\n toolName: part.functionCall.name,\n accumulator,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName: part.functionCall.name,\n providerMetadata: providerMeta\n });\n if (part.functionCall.partialArgs != null) {\n const { textDelta } = accumulator.processPartialArgs(\n part.functionCall.partialArgs\n );\n if (textDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: textDelta,\n providerMetadata: providerMeta\n });\n }\n }\n } else if (part.functionCall.partialArgs != null && activeStreamingToolCalls.length > 0) {\n const active = activeStreamingToolCalls[activeStreamingToolCalls.length - 1];\n const { textDelta } = active.accumulator.processPartialArgs(\n part.functionCall.partialArgs\n );\n if (textDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: active.toolCallId,\n delta: textDelta,\n providerMetadata: providerMeta\n });\n }\n }\n } else if (isTerminalChunk && activeStreamingToolCalls.length > 0) {\n const active = activeStreamingToolCalls.pop();\n const { finalJSON, closingDelta } = active.accumulator.finalize();\n if (closingDelta.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: active.toolCallId,\n delta: closingDelta,\n providerMetadata: active.providerMetadata\n });\n }\n controller.enqueue({\n type: \"tool-input-end\",\n id: active.toolCallId,\n providerMetadata: active.providerMetadata\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: active.toolCallId,\n toolName: active.toolName,\n input: finalJSON,\n providerMetadata: active.providerMetadata\n });\n hasToolCalls = true;\n } else if (isCompleteCall) {\n const toolCallId = generateId3();\n const toolName = part.functionCall.name;\n const args2 = typeof part.functionCall.args === \"string\" ? part.functionCall.args : JSON.stringify((_i = part.functionCall.args) != null ? _i : {});\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: args2,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input: args2,\n providerMetadata: providerMeta\n });\n hasToolCalls = true;\n } else if (isNoArgsCompleteCall) {\n const toolCallId = generateId3();\n const toolName = part.functionCall.name;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId,\n providerMetadata: providerMeta\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input: \"{}\",\n providerMetadata: providerMeta\n });\n hasToolCalls = true;\n }\n }\n }\n if (candidate.finishReason != null) {\n finishReason = {\n unified: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls\n }),\n raw: candidate.finishReason\n };\n providerMetadata = {\n [providerOptionsName]: {\n promptFeedback: (_j = value.promptFeedback) != null ? _j : null,\n groundingMetadata: lastGroundingMetadata,\n urlContextMetadata: lastUrlContextMetadata,\n safetyRatings: (_k = candidate.safetyRatings) != null ? _k : null,\n usageMetadata: usageMetadata != null ? usageMetadata : null,\n finishMessage: (_l = candidate.finishMessage) != null ? _l : null,\n serviceTier\n }\n };\n }\n },\n flush(controller) {\n if (currentTextBlockId !== null) {\n controller.enqueue({\n type: \"text-end\",\n id: currentTextBlockId\n });\n }\n if (currentReasoningBlockId !== null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: currentReasoningBlockId\n });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGoogleGenerativeAIUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n response: { headers: responseHeaders },\n request: { body: args }\n };\n }\n};\nfunction extractSources({\n groundingMetadata,\n generateId: generateId3\n}) {\n var _a, _b, _c, _d, _e, _f;\n if (!(groundingMetadata == null ? void 0 : groundingMetadata.groundingChunks)) {\n return void 0;\n }\n const sources = [];\n for (const chunk of groundingMetadata.groundingChunks) {\n if (chunk.web != null) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: chunk.web.uri,\n title: (_a = chunk.web.title) != null ? _a : void 0\n });\n } else if (chunk.image != null) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n // Google requires attribution to the source URI, not the actual image URI.\n // TODO: add another type in v7 to allow both the image and source URL to be included separately\n url: chunk.image.sourceUri,\n title: (_b = chunk.image.title) != null ? _b : void 0\n });\n } else if (chunk.retrievedContext != null) {\n const uri = chunk.retrievedContext.uri;\n const fileSearchStore = chunk.retrievedContext.fileSearchStore;\n if (uri && (uri.startsWith(\"http://\") || uri.startsWith(\"https://\"))) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: uri,\n title: (_c = chunk.retrievedContext.title) != null ? _c : void 0\n });\n } else if (uri) {\n const title = (_d = chunk.retrievedContext.title) != null ? _d : \"Unknown Document\";\n let mediaType = \"application/octet-stream\";\n let filename = void 0;\n if (uri.endsWith(\".pdf\")) {\n mediaType = \"application/pdf\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".txt\")) {\n mediaType = \"text/plain\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".docx\")) {\n mediaType = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n filename = uri.split(\"/\").pop();\n } else if (uri.endsWith(\".doc\")) {\n mediaType = \"application/msword\";\n filename = uri.split(\"/\").pop();\n } else if (uri.match(/\\.(md|markdown)$/)) {\n mediaType = \"text/markdown\";\n filename = uri.split(\"/\").pop();\n } else {\n filename = uri.split(\"/\").pop();\n }\n sources.push({\n type: \"source\",\n sourceType: \"document\",\n id: generateId3(),\n mediaType,\n title,\n filename\n });\n } else if (fileSearchStore) {\n const title = (_e = chunk.retrievedContext.title) != null ? _e : \"Unknown Document\";\n sources.push({\n type: \"source\",\n sourceType: \"document\",\n id: generateId3(),\n mediaType: \"application/octet-stream\",\n title,\n filename: fileSearchStore.split(\"/\").pop()\n });\n }\n } else if (chunk.maps != null) {\n if (chunk.maps.uri) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: chunk.maps.uri,\n title: (_f = chunk.maps.title) != null ? _f : void 0\n });\n }\n }\n }\n return sources.length > 0 ? sources : void 0;\n}\nvar getGroundingMetadataSchema = () => z5.object({\n webSearchQueries: z5.array(z5.string()).nullish(),\n imageSearchQueries: z5.array(z5.string()).nullish(),\n retrievalQueries: z5.array(z5.string()).nullish(),\n searchEntryPoint: z5.object({ renderedContent: z5.string() }).nullish(),\n groundingChunks: z5.array(\n z5.object({\n web: z5.object({ uri: z5.string(), title: z5.string().nullish() }).nullish(),\n image: z5.object({\n sourceUri: z5.string(),\n imageUri: z5.string(),\n title: z5.string().nullish(),\n domain: z5.string().nullish()\n }).nullish(),\n retrievedContext: z5.object({\n uri: z5.string().nullish(),\n title: z5.string().nullish(),\n text: z5.string().nullish(),\n fileSearchStore: z5.string().nullish()\n }).nullish(),\n maps: z5.object({\n uri: z5.string().nullish(),\n title: z5.string().nullish(),\n text: z5.string().nullish(),\n placeId: z5.string().nullish()\n }).nullish()\n })\n ).nullish(),\n groundingSupports: z5.array(\n z5.object({\n segment: z5.object({\n startIndex: z5.number().nullish(),\n endIndex: z5.number().nullish(),\n text: z5.string().nullish()\n }).nullish(),\n segment_text: z5.string().nullish(),\n groundingChunkIndices: z5.array(z5.number()).nullish(),\n supportChunkIndices: z5.array(z5.number()).nullish(),\n confidenceScores: z5.array(z5.number()).nullish(),\n confidenceScore: z5.array(z5.number()).nullish()\n })\n ).nullish(),\n retrievalMetadata: z5.union([\n z5.object({\n webDynamicRetrievalScore: z5.number()\n }),\n z5.object({})\n ]).nullish()\n});\nvar partialArgSchema = z5.object({\n jsonPath: z5.string(),\n stringValue: z5.string().nullish(),\n numberValue: z5.number().nullish(),\n boolValue: z5.boolean().nullish(),\n nullValue: z5.unknown().nullish(),\n willContinue: z5.boolean().nullish()\n});\nvar getContentSchema = () => z5.object({\n parts: z5.array(\n z5.union([\n // note: order matters since text can be fully empty\n z5.object({\n functionCall: z5.object({\n name: z5.string().nullish(),\n args: z5.unknown().nullish(),\n partialArgs: z5.array(partialArgSchema).nullish(),\n willContinue: z5.boolean().nullish()\n }),\n thoughtSignature: z5.string().nullish()\n }),\n z5.object({\n inlineData: z5.object({\n mimeType: z5.string(),\n data: z5.string()\n }),\n thought: z5.boolean().nullish(),\n thoughtSignature: z5.string().nullish()\n }),\n z5.object({\n toolCall: z5.object({\n toolType: z5.string(),\n args: z5.unknown().nullish(),\n id: z5.string()\n }),\n thoughtSignature: z5.string().nullish()\n }),\n z5.object({\n toolResponse: z5.object({\n toolType: z5.string(),\n response: z5.unknown().nullish(),\n id: z5.string()\n }),\n thoughtSignature: z5.string().nullish()\n }),\n z5.object({\n executableCode: z5.object({\n language: z5.string(),\n code: z5.string()\n }).nullish(),\n codeExecutionResult: z5.object({\n outcome: z5.string(),\n output: z5.string().nullish()\n }).nullish(),\n text: z5.string().nullish(),\n thought: z5.boolean().nullish(),\n thoughtSignature: z5.string().nullish()\n })\n ])\n ).nullish()\n});\nvar getSafetyRatingSchema = () => z5.object({\n category: z5.string().nullish(),\n probability: z5.string().nullish(),\n probabilityScore: z5.number().nullish(),\n severity: z5.string().nullish(),\n severityScore: z5.number().nullish(),\n blocked: z5.boolean().nullish()\n});\nvar tokenDetailsSchema = z5.array(\n z5.object({\n modality: z5.string(),\n tokenCount: z5.number()\n })\n).nullish();\nvar usageSchema = z5.object({\n cachedContentTokenCount: z5.number().nullish(),\n thoughtsTokenCount: z5.number().nullish(),\n promptTokenCount: z5.number().nullish(),\n candidatesTokenCount: z5.number().nullish(),\n totalTokenCount: z5.number().nullish(),\n // https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType\n trafficType: z5.string().nullish(),\n // https://ai.google.dev/api/generate-content#Modality\n promptTokensDetails: tokenDetailsSchema,\n candidatesTokensDetails: tokenDetailsSchema\n});\nvar getUrlContextMetadataSchema = () => z5.object({\n urlMetadata: z5.array(\n z5.object({\n retrievedUrl: z5.string(),\n urlRetrievalStatus: z5.string()\n })\n ).nullish()\n});\nvar responseSchema = lazySchema5(\n () => zodSchema5(\n z5.object({\n candidates: z5.array(\n z5.object({\n content: getContentSchema().nullish().or(z5.object({}).strict()),\n finishReason: z5.string().nullish(),\n finishMessage: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z5.object({\n blockReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n }).nullish(),\n serviceTier: z5.string().nullish()\n })\n )\n);\nvar chunkSchema = lazySchema5(\n () => zodSchema5(\n z5.object({\n candidates: z5.array(\n z5.object({\n content: getContentSchema().nullish(),\n finishReason: z5.string().nullish(),\n finishMessage: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n groundingMetadata: getGroundingMetadataSchema().nullish(),\n urlContextMetadata: getUrlContextMetadataSchema().nullish()\n })\n ).nullish(),\n usageMetadata: usageSchema.nullish(),\n promptFeedback: z5.object({\n blockReason: z5.string().nullish(),\n safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n }).nullish(),\n serviceTier: z5.string().nullish()\n })\n )\n);\n\n// src/tool/code-execution.ts\nimport { createProviderToolFactoryWithOutputSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar codeExecution = createProviderToolFactoryWithOutputSchema({\n id: \"google.code_execution\",\n inputSchema: z6.object({\n language: z6.string().describe(\"The programming language of the code.\"),\n code: z6.string().describe(\"The code to be executed.\")\n }),\n outputSchema: z6.object({\n outcome: z6.string().describe('The outcome of the execution (e.g., \"OUTCOME_OK\").'),\n output: z6.string().describe(\"The output from the code execution.\")\n })\n});\n\n// src/tool/enterprise-web-search.ts\nimport {\n createProviderToolFactory,\n lazySchema as lazySchema6,\n zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar enterpriseWebSearch = createProviderToolFactory({\n id: \"google.enterprise_web_search\",\n inputSchema: lazySchema6(() => zodSchema6(z7.object({})))\n});\n\n// src/tool/file-search.ts\nimport {\n createProviderToolFactory as createProviderToolFactory2,\n lazySchema as lazySchema7,\n zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar fileSearchArgsBaseSchema = z8.object({\n /** The names of the file_search_stores to retrieve from.\n * Example: `fileSearchStores/my-file-search-store-123`\n */\n fileSearchStoreNames: z8.array(z8.string()).describe(\n \"The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`\"\n ),\n /** The number of file search retrieval chunks to retrieve. */\n topK: z8.number().int().positive().describe(\"The number of file search retrieval chunks to retrieve.\").optional(),\n /** Metadata filter to apply to the file search retrieval documents.\n * See https://google.aip.dev/160 for the syntax of the filter expression.\n */\n metadataFilter: z8.string().describe(\n \"Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.\"\n ).optional()\n}).passthrough();\nvar fileSearchArgsSchema = lazySchema7(\n () => zodSchema7(fileSearchArgsBaseSchema)\n);\nvar fileSearch = createProviderToolFactory2({\n id: \"google.file_search\",\n inputSchema: fileSearchArgsSchema\n});\n\n// src/tool/google-maps.ts\nimport {\n createProviderToolFactory as createProviderToolFactory3,\n lazySchema as lazySchema8,\n zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar googleMaps = createProviderToolFactory3({\n id: \"google.google_maps\",\n inputSchema: lazySchema8(() => zodSchema8(z9.object({})))\n});\n\n// src/tool/google-search.ts\nimport {\n createProviderToolFactory as createProviderToolFactory4,\n lazySchema as lazySchema9,\n zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar googleSearchToolArgsBaseSchema = z10.object({\n searchTypes: z10.object({\n webSearch: z10.object({}).optional(),\n imageSearch: z10.object({}).optional()\n }).optional(),\n timeRangeFilter: z10.object({\n startTime: z10.string(),\n endTime: z10.string()\n }).optional()\n}).passthrough();\nvar googleSearchToolArgsSchema = lazySchema9(\n () => zodSchema9(googleSearchToolArgsBaseSchema)\n);\nvar googleSearch = createProviderToolFactory4(\n {\n id: \"google.google_search\",\n inputSchema: googleSearchToolArgsSchema\n }\n);\n\n// src/tool/url-context.ts\nimport {\n createProviderToolFactory as createProviderToolFactory5,\n lazySchema as lazySchema10,\n zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar urlContext = createProviderToolFactory5({\n id: \"google.url_context\",\n inputSchema: lazySchema10(() => zodSchema10(z11.object({})))\n});\n\n// src/tool/vertex-rag-store.ts\nimport { createProviderToolFactory as createProviderToolFactory6 } from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar vertexRagStore = createProviderToolFactory6({\n id: \"google.vertex_rag_store\",\n inputSchema: z12.object({\n ragCorpus: z12.string(),\n topK: z12.number().optional()\n })\n});\n\n// src/google-tools.ts\nvar googleTools = {\n /**\n * Creates a Google search tool that gives Google direct access to real-time web content.\n * Must have name \"google_search\".\n */\n googleSearch,\n /**\n * Creates an Enterprise Web Search tool for grounding responses using a compliance-focused web index.\n * Designed for highly-regulated industries (finance, healthcare, public sector).\n * Does not log customer data and supports VPC service controls.\n * Must have name \"enterprise_web_search\".\n *\n * @note Only available on Vertex AI. Requires Gemini 2.0 or newer.\n *\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/web-grounding-enterprise\n */\n enterpriseWebSearch,\n /**\n * Creates a Google Maps grounding tool that gives the model access to Google Maps data.\n * Must have name \"google_maps\".\n *\n * @see https://ai.google.dev/gemini-api/docs/maps-grounding\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n */\n googleMaps,\n /**\n * Creates a URL context tool that gives Google direct access to real-time web content.\n * Must have name \"url_context\".\n */\n urlContext,\n /**\n * Enables Retrieval Augmented Generation (RAG) via the Gemini File Search tool.\n * Must have name \"file_search\".\n *\n * @param fileSearchStoreNames - Fully-qualified File Search store resource names.\n * @param metadataFilter - Optional filter expression to restrict the files that can be retrieved.\n * @param topK - Optional result limit for the number of chunks returned from File Search.\n *\n * @see https://ai.google.dev/gemini-api/docs/file-search\n */\n fileSearch,\n /**\n * A tool that enables the model to generate and run Python code.\n * Must have name \"code_execution\".\n *\n * @note Ensure the selected model supports Code Execution.\n * Multi-tool usage with the code execution tool is typically compatible with Gemini >=2 models.\n *\n * @see https://ai.google.dev/gemini-api/docs/code-execution (Google AI)\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/code-execution-api (Vertex AI)\n */\n codeExecution,\n /**\n * Creates a Vertex RAG Store tool that enables the model to perform RAG searches against a Vertex RAG Store.\n * Must have name \"vertex_rag_store\".\n */\n vertexRagStore\n};\n\n// src/google-generative-ai-image-model.ts\nimport {\n combineHeaders as combineHeaders3,\n convertToBase64 as convertToBase642,\n createJsonResponseHandler as createJsonResponseHandler3,\n generateId as defaultGenerateId,\n lazySchema as lazySchema11,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3,\n resolve as resolve3,\n zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar GoogleGenerativeAIImageModel = class {\n constructor(modelId, settings, config) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get maxImagesPerCall() {\n if (this.settings.maxImagesPerCall != null) {\n return this.settings.maxImagesPerCall;\n }\n if (isGeminiModel(this.modelId)) {\n return 10;\n }\n return 4;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n if (isGeminiModel(this.modelId)) {\n return this.doGenerateGemini(options);\n }\n return this.doGenerateImagen(options);\n }\n async doGenerateImagen(options) {\n var _a, _b, _c;\n const {\n prompt,\n n = 1,\n size,\n aspectRatio = \"1:1\",\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n } = options;\n const warnings = [];\n if (files != null && files.length > 0) {\n throw new Error(\n \"Google Generative AI does not support image editing with Imagen models. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.\"\n );\n }\n if (mask != null) {\n throw new Error(\n \"Google Generative AI does not support image editing with masks. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"size\",\n details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"seed\",\n details: \"This model does not support the `seed` option through this provider.\"\n });\n }\n const googleOptions = await parseProviderOptions3({\n provider: \"google\",\n providerOptions,\n schema: googleImageModelOptionsSchema\n });\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const parameters = {\n sampleCount: n\n };\n if (aspectRatio != null) {\n parameters.aspectRatio = aspectRatio;\n }\n if (googleOptions) {\n Object.assign(parameters, googleOptions);\n }\n const body = {\n instances: [{ prompt }],\n parameters\n };\n const { responseHeaders, value: response } = await postJsonToApi3({\n url: `${this.config.baseURL}/models/${this.modelId}:predict`,\n headers: combineHeaders3(await resolve3(this.config.headers), headers),\n body,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n googleImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.predictions.map(\n (p) => p.bytesBase64Encoded\n ),\n warnings,\n providerMetadata: {\n google: {\n images: response.predictions.map(() => ({\n // Add any prediction-specific metadata here\n }))\n }\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n async doGenerateGemini(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const {\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n } = options;\n const warnings = [];\n if (mask != null) {\n throw new Error(\n \"Gemini image models do not support mask-based image editing.\"\n );\n }\n if (n != null && n > 1) {\n throw new Error(\n \"Gemini image models do not support generating a set number of images per call. Use n=1 or omit the n parameter.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"size\",\n details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n });\n }\n const userContent = [];\n if (prompt != null) {\n userContent.push({ type: \"text\", text: prompt });\n }\n if (files != null && files.length > 0) {\n for (const file of files) {\n if (file.type === \"url\") {\n userContent.push({\n type: \"file\",\n data: new URL(file.url),\n mediaType: \"image/*\"\n });\n } else {\n userContent.push({\n type: \"file\",\n data: typeof file.data === \"string\" ? file.data : new Uint8Array(file.data),\n mediaType: file.mediaType\n });\n }\n }\n }\n const languageModelPrompt = [\n { role: \"user\", content: userContent }\n ];\n const languageModel = new GoogleGenerativeAILanguageModel(this.modelId, {\n provider: this.config.provider,\n baseURL: this.config.baseURL,\n headers: (_a = this.config.headers) != null ? _a : {},\n fetch: this.config.fetch,\n generateId: (_b = this.config.generateId) != null ? _b : defaultGenerateId\n });\n const result = await languageModel.doGenerate({\n prompt: languageModelPrompt,\n seed,\n providerOptions: {\n google: {\n responseModalities: [\"IMAGE\"],\n imageConfig: aspectRatio ? {\n aspectRatio\n } : void 0,\n ...(_c = providerOptions == null ? void 0 : providerOptions.google) != null ? _c : {}\n }\n },\n headers,\n abortSignal\n });\n const currentDate = (_f = (_e = (_d = this.config._internal) == null ? void 0 : _d.currentDate) == null ? void 0 : _e.call(_d)) != null ? _f : /* @__PURE__ */ new Date();\n const images = [];\n for (const part of result.content) {\n if (part.type === \"file\" && part.mediaType.startsWith(\"image/\")) {\n images.push(convertToBase642(part.data));\n }\n }\n return {\n images,\n warnings,\n providerMetadata: {\n google: {\n images: images.map(() => ({}))\n }\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: (_g = result.response) == null ? void 0 : _g.headers\n },\n usage: result.usage ? {\n inputTokens: result.usage.inputTokens.total,\n outputTokens: result.usage.outputTokens.total,\n totalTokens: ((_h = result.usage.inputTokens.total) != null ? _h : 0) + ((_i = result.usage.outputTokens.total) != null ? _i : 0)\n } : void 0\n };\n }\n};\nfunction isGeminiModel(modelId) {\n return modelId.startsWith(\"gemini-\");\n}\nvar googleImageResponseSchema = lazySchema11(\n () => zodSchema11(\n z13.object({\n predictions: z13.array(z13.object({ bytesBase64Encoded: z13.string() })).default([])\n })\n )\n);\nvar googleImageModelOptionsSchema = lazySchema11(\n () => zodSchema11(\n z13.object({\n personGeneration: z13.enum([\"dont_allow\", \"allow_adult\", \"allow_all\"]).nullish(),\n aspectRatio: z13.enum([\"1:1\", \"3:4\", \"4:3\", \"9:16\", \"16:9\"]).nullish()\n })\n )\n);\n\n// src/google-generative-ai-video-model.ts\nimport {\n AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders4,\n convertUint8ArrayToBase64,\n createJsonResponseHandler as createJsonResponseHandler4,\n delay,\n getFromApi,\n lazySchema as lazySchema12,\n parseProviderOptions as parseProviderOptions4,\n postJsonToApi as postJsonToApi4,\n resolve as resolve4,\n zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar GoogleGenerativeAIVideoModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n get maxVideosPerCall() {\n return 4;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const warnings = [];\n const googleOptions = await parseProviderOptions4({\n provider: \"google\",\n providerOptions: options.providerOptions,\n schema: googleVideoModelOptionsSchema\n });\n const instances = [{}];\n const instance = instances[0];\n if (options.prompt != null) {\n instance.prompt = options.prompt;\n }\n if (options.image != null) {\n if (options.image.type === \"url\") {\n warnings.push({\n type: \"unsupported\",\n feature: \"URL-based image input\",\n details: \"Google Generative AI video models require base64-encoded images. URL will be ignored.\"\n });\n } else {\n const base64Data = typeof options.image.data === \"string\" ? options.image.data : convertUint8ArrayToBase64(options.image.data);\n instance.image = {\n inlineData: {\n mimeType: options.image.mediaType || \"image/png\",\n data: base64Data\n }\n };\n }\n }\n if ((googleOptions == null ? void 0 : googleOptions.referenceImages) != null) {\n instance.referenceImages = googleOptions.referenceImages.map((refImg) => {\n if (refImg.bytesBase64Encoded) {\n return {\n inlineData: {\n mimeType: \"image/png\",\n data: refImg.bytesBase64Encoded\n }\n };\n } else if (refImg.gcsUri) {\n return {\n gcsUri: refImg.gcsUri\n };\n }\n return refImg;\n });\n }\n const parameters = {\n sampleCount: options.n\n };\n if (options.aspectRatio) {\n parameters.aspectRatio = options.aspectRatio;\n }\n if (options.resolution) {\n const resolutionMap = {\n \"1280x720\": \"720p\",\n \"1920x1080\": \"1080p\",\n \"3840x2160\": \"4k\"\n };\n parameters.resolution = resolutionMap[options.resolution] || options.resolution;\n }\n if (options.duration) {\n parameters.durationSeconds = options.duration;\n }\n if (options.seed) {\n parameters.seed = options.seed;\n }\n if (googleOptions != null) {\n const opts = googleOptions;\n if (opts.personGeneration !== void 0 && opts.personGeneration !== null) {\n parameters.personGeneration = opts.personGeneration;\n }\n if (opts.negativePrompt !== void 0 && opts.negativePrompt !== null) {\n parameters.negativePrompt = opts.negativePrompt;\n }\n for (const [key, value] of Object.entries(opts)) {\n if (![\n \"pollIntervalMs\",\n \"pollTimeoutMs\",\n \"personGeneration\",\n \"negativePrompt\",\n \"referenceImages\"\n ].includes(key)) {\n parameters[key] = value;\n }\n }\n }\n const { value: operation } = await postJsonToApi4({\n url: `${this.config.baseURL}/models/${this.modelId}:predictLongRunning`,\n headers: combineHeaders4(\n await resolve4(this.config.headers),\n options.headers\n ),\n body: {\n instances,\n parameters\n },\n successfulResponseHandler: createJsonResponseHandler4(\n googleOperationSchema\n ),\n failedResponseHandler: googleFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const operationName = operation.name;\n if (!operationName) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n message: \"No operation name returned from API\"\n });\n }\n const pollIntervalMs = (_d = googleOptions == null ? void 0 : googleOptions.pollIntervalMs) != null ? _d : 1e4;\n const pollTimeoutMs = (_e = googleOptions == null ? void 0 : googleOptions.pollTimeoutMs) != null ? _e : 6e5;\n const startTime = Date.now();\n let finalOperation = operation;\n let responseHeaders;\n while (!finalOperation.done) {\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_TIMEOUT\",\n message: `Video generation timed out after ${pollTimeoutMs}ms`\n });\n }\n await delay(pollIntervalMs);\n if ((_f = options.abortSignal) == null ? void 0 : _f.aborted) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_ABORTED\",\n message: \"Video generation request was aborted\"\n });\n }\n const { value: statusOperation, responseHeaders: pollHeaders } = await getFromApi({\n url: `${this.config.baseURL}/${operationName}`,\n headers: combineHeaders4(\n await resolve4(this.config.headers),\n options.headers\n ),\n successfulResponseHandler: createJsonResponseHandler4(\n googleOperationSchema\n ),\n failedResponseHandler: googleFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n finalOperation = statusOperation;\n responseHeaders = pollHeaders;\n }\n if (finalOperation.error) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_FAILED\",\n message: `Video generation failed: ${finalOperation.error.message}`\n });\n }\n const response = finalOperation.response;\n if (!((_g = response == null ? void 0 : response.generateVideoResponse) == null ? void 0 : _g.generatedSamples) || response.generateVideoResponse.generatedSamples.length === 0) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n message: `No videos in response. Response: ${JSON.stringify(finalOperation)}`\n });\n }\n const videos = [];\n const videoMetadata = [];\n const resolvedHeaders = await resolve4(this.config.headers);\n const apiKey = resolvedHeaders == null ? void 0 : resolvedHeaders[\"x-goog-api-key\"];\n for (const generatedSample of response.generateVideoResponse.generatedSamples) {\n if ((_h = generatedSample.video) == null ? void 0 : _h.uri) {\n const urlWithAuth = apiKey ? `${generatedSample.video.uri}${generatedSample.video.uri.includes(\"?\") ? \"&\" : \"?\"}key=${apiKey}` : generatedSample.video.uri;\n videos.push({\n type: \"url\",\n url: urlWithAuth,\n mediaType: \"video/mp4\"\n });\n videoMetadata.push({\n uri: generatedSample.video.uri\n });\n }\n }\n if (videos.length === 0) {\n throw new AISDKError({\n name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n message: \"No valid videos in response\"\n });\n }\n return {\n videos,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n google: {\n videos: videoMetadata\n }\n }\n };\n }\n};\nvar googleOperationSchema = z14.object({\n name: z14.string().nullish(),\n done: z14.boolean().nullish(),\n error: z14.object({\n code: z14.number().nullish(),\n message: z14.string(),\n status: z14.string().nullish()\n }).nullish(),\n response: z14.object({\n generateVideoResponse: z14.object({\n generatedSamples: z14.array(\n z14.object({\n video: z14.object({\n uri: z14.string().nullish()\n }).nullish()\n })\n ).nullish()\n }).nullish()\n }).nullish()\n});\nvar googleVideoModelOptionsSchema = lazySchema12(\n () => zodSchema12(\n z14.object({\n pollIntervalMs: z14.number().positive().nullish(),\n pollTimeoutMs: z14.number().positive().nullish(),\n personGeneration: z14.enum([\"dont_allow\", \"allow_adult\", \"allow_all\"]).nullish(),\n negativePrompt: z14.string().nullish(),\n referenceImages: z14.array(\n z14.object({\n bytesBase64Encoded: z14.string().nullish(),\n gcsUri: z14.string().nullish()\n })\n ).nullish()\n }).passthrough()\n )\n);\n\n// src/interactions/google-interactions-language-model.ts\nimport {\n combineHeaders as combineHeaders6,\n createEventSourceResponseHandler as createEventSourceResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler6,\n generateId as defaultGenerateId2,\n parseProviderOptions as parseProviderOptions5,\n postJsonToApi as postJsonToApi5,\n resolve as resolve5\n} from \"@ai-sdk/provider-utils\";\n\n// src/interactions/convert-google-interactions-usage.ts\nfunction convertGoogleInteractionsUsage(usage) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const totalInput = (_a = usage.total_input_tokens) != null ? _a : 0;\n const totalOutput = (_b = usage.total_output_tokens) != null ? _b : 0;\n const totalThought = (_c = usage.total_thought_tokens) != null ? _c : 0;\n const totalCached = (_d = usage.total_cached_tokens) != null ? _d : 0;\n return {\n inputTokens: {\n total: (_e = usage.total_input_tokens) != null ? _e : void 0,\n noCache: usage.total_input_tokens == null ? void 0 : totalInput - totalCached,\n cacheRead: (_f = usage.total_cached_tokens) != null ? _f : void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: usage.total_output_tokens == null && usage.total_thought_tokens == null ? void 0 : totalOutput + totalThought,\n text: (_g = usage.total_output_tokens) != null ? _g : void 0,\n reasoning: (_h = usage.total_thought_tokens) != null ? _h : void 0\n },\n raw: usage\n };\n}\n\n// src/interactions/extract-google-interactions-sources.ts\nvar KNOWN_DOC_EXTENSIONS = {\n pdf: \"application/pdf\",\n txt: \"text/plain\",\n md: \"text/markdown\",\n markdown: \"text/markdown\",\n doc: \"application/msword\",\n docx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n};\nfunction inferDocMediaType(uriOrName) {\n const lower = uriOrName.toLowerCase();\n for (const [ext, media] of Object.entries(KNOWN_DOC_EXTENSIONS)) {\n if (lower.endsWith(`.${ext}`)) return media;\n }\n return \"application/octet-stream\";\n}\nfunction basename(uriOrName) {\n const parts = uriOrName.split(\"/\");\n const last = parts[parts.length - 1];\n return last && last.length > 0 ? last : void 0;\n}\nfunction annotationToSource({\n annotation,\n generateId: generateId3\n}) {\n var _a, _b, _c, _d, _e;\n switch (annotation.type) {\n case \"url_citation\": {\n const a = annotation;\n if (a.url == null || a.url.length === 0) return void 0;\n return {\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: a.url,\n ...a.title != null ? { title: a.title } : {}\n };\n }\n case \"file_citation\": {\n const a = annotation;\n const uri = (_b = (_a = a.document_uri) != null ? _a : a.source) != null ? _b : a.file_name;\n if (uri == null || uri.length === 0) return void 0;\n if (uri.startsWith(\"http://\") || uri.startsWith(\"https://\")) {\n return {\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: uri,\n ...a.file_name != null ? { title: a.file_name } : {}\n };\n }\n const filename = (_c = a.file_name) != null ? _c : basename(uri);\n const mediaType = inferDocMediaType(uri);\n return {\n type: \"source\",\n sourceType: \"document\",\n id: generateId3(),\n mediaType,\n title: (_e = (_d = a.file_name) != null ? _d : filename) != null ? _e : uri,\n ...filename != null ? { filename } : {}\n };\n }\n case \"place_citation\": {\n const a = annotation;\n if (a.url == null || a.url.length === 0) return void 0;\n return {\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: a.url,\n ...a.name != null ? { title: a.name } : {}\n };\n }\n default:\n return void 0;\n }\n}\nfunction builtinToolResultToSources({\n block,\n generateId: generateId3\n}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const sources = [];\n switch (block.type) {\n case \"url_context_result\": {\n const result = (_a = block.result) != null ? _a : [];\n for (const entry of result) {\n if ((entry == null ? void 0 : entry.url) == null || entry.url.length === 0) continue;\n if (entry.status != null && entry.status !== \"success\") continue;\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: entry.url\n });\n }\n break;\n }\n case \"google_search_result\": {\n const result = (_b = block.result) != null ? _b : [];\n for (const entry of result) {\n const url = entry == null ? void 0 : entry.url;\n if (url == null || url.length === 0) continue;\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url,\n ...entry.title != null ? { title: entry.title } : {}\n });\n }\n break;\n }\n case \"google_maps_result\": {\n const result = (_c = block.result) != null ? _c : [];\n for (const entry of result) {\n for (const place of (_d = entry.places) != null ? _d : []) {\n if (place.url == null || place.url.length === 0) continue;\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: place.url,\n ...place.name != null ? { title: place.name } : {}\n });\n }\n }\n break;\n }\n case \"file_search_result\": {\n const result = (_e = block.result) != null ? _e : [];\n for (const raw of result) {\n if (raw == null || typeof raw !== \"object\") continue;\n const entry = raw;\n const uri = (_g = (_f = entry.document_uri) != null ? _f : entry.source) != null ? _g : entry.file_name;\n if (uri == null || uri.length === 0) continue;\n if (uri.startsWith(\"http://\") || uri.startsWith(\"https://\")) {\n sources.push({\n type: \"source\",\n sourceType: \"url\",\n id: generateId3(),\n url: uri,\n ...entry.title != null ? { title: entry.title } : {}\n });\n continue;\n }\n const filename = (_h = entry.file_name) != null ? _h : basename(uri);\n const mediaType = inferDocMediaType(uri);\n sources.push({\n type: \"source\",\n sourceType: \"document\",\n id: generateId3(),\n mediaType,\n title: (_k = (_j = (_i = entry.title) != null ? _i : entry.file_name) != null ? _j : filename) != null ? _k : uri,\n ...filename != null ? { filename } : {}\n });\n }\n break;\n }\n default:\n break;\n }\n return sources;\n}\nfunction annotationsToSources({\n annotations,\n generateId: generateId3\n}) {\n var _a;\n if (annotations == null) return [];\n const seen = /* @__PURE__ */ new Set();\n const sources = [];\n for (const annotation of annotations) {\n const source = annotationToSource({ annotation, generateId: generateId3 });\n if (source == null) continue;\n const key = source.sourceType === \"url\" ? `url:${source.url}` : `doc:${(_a = source.filename) != null ? _a : source.title}`;\n if (seen.has(key)) continue;\n seen.add(key);\n sources.push(source);\n }\n return sources;\n}\n\n// src/interactions/map-google-interactions-finish-reason.ts\nfunction mapGoogleInteractionsFinishReason({\n status,\n hasFunctionCall\n}) {\n switch (status) {\n case \"completed\":\n return hasFunctionCall ? \"tool-calls\" : \"stop\";\n case \"requires_action\":\n return \"tool-calls\";\n case \"failed\":\n return \"error\";\n case \"incomplete\":\n return \"length\";\n case \"cancelled\":\n return \"other\";\n case \"in_progress\":\n default:\n return \"other\";\n }\n}\n\n// src/interactions/build-google-interactions-stream-transform.ts\nvar BUILTIN_TOOL_CALL_TYPES = /* @__PURE__ */ new Set([\n \"google_search_call\",\n \"code_execution_call\",\n \"url_context_call\",\n \"file_search_call\",\n \"google_maps_call\",\n \"mcp_server_tool_call\"\n]);\nvar BUILTIN_TOOL_RESULT_TYPES = /* @__PURE__ */ new Set([\n \"google_search_result\",\n \"code_execution_result\",\n \"url_context_result\",\n \"file_search_result\",\n \"google_maps_result\",\n \"mcp_server_tool_result\"\n]);\nfunction builtinToolNameFromCallType(type) {\n return type.replace(/_call$/, \"\");\n}\nfunction builtinToolNameFromResultType(type) {\n return type.replace(/_result$/, \"\");\n}\nfunction buildGoogleInteractionsStreamTransform({\n warnings,\n generateId: generateId3,\n includeRawChunks,\n serviceTier: headerServiceTier\n}) {\n let interactionId;\n let usage;\n let serviceTier = headerServiceTier;\n let finishStatus;\n let hasFunctionCall = false;\n const openBlocks = /* @__PURE__ */ new Map();\n const emittedSourceKeys = /* @__PURE__ */ new Set();\n function sourceKey(source) {\n var _a;\n return source.sourceType === \"url\" ? `url:${source.url}` : `doc:${(_a = source.filename) != null ? _a : source.title}`;\n }\n return new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n if (includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishStatus = \"failed\";\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n const eventType = value.event_type;\n switch (eventType) {\n case \"interaction.start\": {\n const event = value;\n const interaction = event.interaction;\n interactionId = (interaction == null ? void 0 : interaction.id) != null && interaction.id.length > 0 ? interaction.id : void 0;\n const created = interaction == null ? void 0 : interaction.created;\n let timestamp;\n if (typeof created === \"string\") {\n const parsed = new Date(created);\n if (!Number.isNaN(parsed.getTime())) {\n timestamp = parsed;\n }\n }\n controller.enqueue({\n type: \"response-metadata\",\n ...interactionId != null ? { id: interactionId } : {},\n modelId: interaction == null ? void 0 : interaction.model,\n ...timestamp ? { timestamp } : {}\n });\n break;\n }\n case \"content.start\": {\n const event = value;\n const block = event.content;\n const index = event.index;\n const blockId = `${interactionId != null ? interactionId : \"interaction\"}:${index}`;\n if ((block == null ? void 0 : block.type) === \"text\") {\n openBlocks.set(index, {\n kind: \"text\",\n id: blockId,\n emittedSourceKeys: /* @__PURE__ */ new Set()\n });\n controller.enqueue({ type: \"text-start\", id: blockId });\n const initialSources = annotationsToSources({\n annotations: block.annotations,\n generateId: generateId3\n });\n for (const source of initialSources) {\n const key = sourceKey(source);\n if (emittedSourceKeys.has(key)) continue;\n emittedSourceKeys.add(key);\n controller.enqueue(source);\n }\n } else if ((block == null ? void 0 : block.type) === \"image\") {\n const img = block;\n openBlocks.set(index, {\n kind: \"image\",\n id: blockId,\n ...img.data != null ? { data: img.data } : {},\n ...img.mime_type != null ? { mimeType: img.mime_type } : {},\n ...img.uri != null ? { uri: img.uri } : {}\n });\n } else if ((block == null ? void 0 : block.type) === \"thought\") {\n const signature = block.signature;\n openBlocks.set(index, {\n kind: \"reasoning\",\n id: blockId,\n ...signature != null ? { signature } : {}\n });\n controller.enqueue({ type: \"reasoning-start\", id: blockId });\n } else if ((block == null ? void 0 : block.type) === \"function_call\") {\n const fc = block;\n const toolCallId = (_a = fc.id) != null ? _a : blockId;\n hasFunctionCall = true;\n const state = {\n kind: \"function_call\",\n id: blockId,\n toolCallId,\n toolName: fc.name,\n arguments: (_b = fc.arguments) != null ? _b : {},\n ...fc.signature != null ? { signature: fc.signature } : {},\n startEmitted: false\n };\n openBlocks.set(index, state);\n if (state.toolName != null) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName: state.toolName\n });\n state.startEmitted = true;\n }\n } else if ((block == null ? void 0 : block.type) != null && BUILTIN_TOOL_CALL_TYPES.has(block.type)) {\n const toolName = block.type === \"mcp_server_tool_call\" ? (_c = block.name) != null ? _c : \"mcp_server_tool\" : builtinToolNameFromCallType(block.type);\n const toolCallId = (_d = block.id) != null ? _d : blockId;\n const state = {\n kind: \"builtin_tool_call\",\n id: blockId,\n blockType: block.type,\n toolCallId,\n toolName,\n arguments: (_e = block.arguments) != null ? _e : {},\n callEmitted: false\n };\n openBlocks.set(index, state);\n } else if ((block == null ? void 0 : block.type) != null && BUILTIN_TOOL_RESULT_TYPES.has(block.type)) {\n const toolName = block.type === \"mcp_server_tool_result\" ? (_f = block.name) != null ? _f : \"mcp_server_tool\" : builtinToolNameFromResultType(block.type);\n const callId = (_g = block.call_id) != null ? _g : blockId;\n const state = {\n kind: \"builtin_tool_result\",\n id: blockId,\n blockType: block.type,\n callId,\n toolName,\n result: (_h = block.result) != null ? _h : null,\n ...block.is_error != null ? { isError: block.is_error } : {},\n resultEmitted: false\n };\n openBlocks.set(index, state);\n } else {\n openBlocks.set(index, { kind: \"unknown\", id: blockId });\n }\n break;\n }\n case \"content.delta\": {\n const event = value;\n const open = openBlocks.get(event.index);\n if (open == null) break;\n const delta = event.delta;\n if (open.kind === \"text\" && (delta == null ? void 0 : delta.type) === \"text\") {\n const text = (_i = delta.text) != null ? _i : \"\";\n if (text.length > 0) {\n controller.enqueue({\n type: \"text-delta\",\n id: open.id,\n delta: text\n });\n }\n } else if (open.kind === \"text\" && (delta == null ? void 0 : delta.type) === \"text_annotation\") {\n const sources = annotationsToSources({\n annotations: delta.annotations,\n generateId: generateId3\n });\n for (const source of sources) {\n const key = sourceKey(source);\n if (emittedSourceKeys.has(key)) continue;\n emittedSourceKeys.add(key);\n open.emittedSourceKeys.add(key);\n controller.enqueue(source);\n }\n } else if (open.kind === \"image\" && (delta == null ? void 0 : delta.type) === \"image\") {\n if (delta.data != null) open.data = delta.data;\n if (delta.mime_type != null) open.mimeType = delta.mime_type;\n if (delta.uri != null) open.uri = delta.uri;\n } else if (open.kind === \"reasoning\") {\n if ((delta == null ? void 0 : delta.type) === \"thought_summary\") {\n const item = delta.content;\n if ((item == null ? void 0 : item.type) === \"text\" && typeof item.text === \"string\") {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: open.id,\n delta: item.text\n });\n }\n } else if ((delta == null ? void 0 : delta.type) === \"thought_signature\") {\n const signature = delta.signature;\n if (signature != null) {\n open.signature = signature;\n }\n }\n } else if (open.kind === \"function_call\" && (delta == null ? void 0 : delta.type) === \"function_call\") {\n if (delta.id != null) {\n open.toolCallId = delta.id;\n }\n if (delta.name != null) {\n open.toolName = delta.name;\n }\n if (delta.arguments != null) {\n open.arguments = delta.arguments;\n }\n if (delta.signature != null) {\n open.signature = delta.signature;\n }\n if (!open.startEmitted && open.toolName != null) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: open.toolCallId,\n toolName: open.toolName\n });\n open.startEmitted = true;\n }\n hasFunctionCall = true;\n } else if (open.kind === \"builtin_tool_call\" && (delta == null ? void 0 : delta.type) === open.blockType) {\n if (delta.id != null) open.toolCallId = delta.id;\n if (delta.arguments != null) open.arguments = delta.arguments;\n if (delta.name != null && open.blockType === \"mcp_server_tool_call\") {\n open.toolName = delta.name;\n }\n } else if (open.kind === \"builtin_tool_result\" && (delta == null ? void 0 : delta.type) === open.blockType) {\n if (delta.call_id != null) open.callId = delta.call_id;\n if (delta.result !== void 0) open.result = delta.result;\n if (delta.is_error != null) open.isError = delta.is_error;\n if (delta.name != null && open.blockType === \"mcp_server_tool_result\") {\n open.toolName = delta.name;\n }\n }\n break;\n }\n case \"content.stop\": {\n const event = value;\n const open = openBlocks.get(event.index);\n if (open == null) break;\n if (open.kind === \"text\") {\n const textProviderMetadata = interactionId != null ? { google: { interactionId } } : void 0;\n controller.enqueue({\n type: \"text-end\",\n id: open.id,\n ...textProviderMetadata ? { providerMetadata: textProviderMetadata } : {}\n });\n } else if (open.kind === \"reasoning\") {\n const google2 = {};\n if (open.signature != null) google2.signature = open.signature;\n if (interactionId != null) google2.interactionId = interactionId;\n const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n controller.enqueue({\n type: \"reasoning-end\",\n id: open.id,\n ...providerMetadata ? { providerMetadata } : {}\n });\n } else if (open.kind === \"image\") {\n const google2 = {};\n if (interactionId != null) google2.interactionId = interactionId;\n const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n if (open.data != null && open.data.length > 0) {\n controller.enqueue({\n type: \"file\",\n mediaType: (_j = open.mimeType) != null ? _j : \"image/png\",\n data: open.data,\n ...providerMetadata ? { providerMetadata } : {}\n });\n } else if (open.uri != null && open.uri.length > 0) {\n const uriProviderMetadata = {\n google: {\n ...interactionId != null ? { interactionId } : {},\n imageUri: open.uri\n }\n };\n controller.enqueue({\n type: \"file\",\n mediaType: (_k = open.mimeType) != null ? _k : \"image/png\",\n data: \"\",\n providerMetadata: uriProviderMetadata\n });\n }\n } else if (open.kind === \"function_call\") {\n const toolName = (_l = open.toolName) != null ? _l : \"unknown\";\n const argsJson = JSON.stringify((_m = open.arguments) != null ? _m : {});\n if (!open.startEmitted) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: open.toolCallId,\n toolName\n });\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: open.toolCallId,\n delta: argsJson\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: open.toolCallId\n });\n const google2 = {};\n if (open.signature != null) google2.signature = open.signature;\n if (interactionId != null) google2.interactionId = interactionId;\n const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: open.toolCallId,\n toolName,\n input: argsJson,\n ...providerMetadata ? { providerMetadata } : {}\n });\n } else if (open.kind === \"builtin_tool_call\" && !open.callEmitted) {\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: open.toolCallId,\n toolName: open.toolName,\n input: JSON.stringify((_n = open.arguments) != null ? _n : {}),\n providerExecuted: true\n });\n open.callEmitted = true;\n } else if (open.kind === \"builtin_tool_result\" && !open.resultEmitted) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: open.callId,\n toolName: open.toolName,\n result: (_o = open.result) != null ? _o : null\n });\n open.resultEmitted = true;\n const sources = builtinToolResultToSources({\n block: {\n type: open.blockType,\n call_id: open.callId,\n result: open.result\n },\n generateId: generateId3\n });\n for (const source of sources) {\n const key = sourceKey(source);\n if (emittedSourceKeys.has(key)) continue;\n emittedSourceKeys.add(key);\n controller.enqueue(source);\n }\n }\n openBlocks.delete(event.index);\n break;\n }\n case \"interaction.status_update\": {\n const event = value;\n finishStatus = event.status;\n break;\n }\n case \"interaction.complete\": {\n const event = value;\n const interaction = event.interaction;\n if ((interaction == null ? void 0 : interaction.id) != null && interaction.id.length > 0) {\n interactionId = interaction.id;\n }\n if ((interaction == null ? void 0 : interaction.status) != null) {\n finishStatus = interaction.status;\n }\n if ((interaction == null ? void 0 : interaction.usage) != null) {\n usage = interaction.usage;\n }\n if ((interaction == null ? void 0 : interaction.service_tier) != null) {\n serviceTier = interaction.service_tier;\n }\n break;\n }\n case \"error\": {\n const event = value;\n finishStatus = \"failed\";\n const errorPayload = (_p = event.error) != null ? _p : {\n message: \"Unknown interaction error\"\n };\n controller.enqueue({ type: \"error\", error: errorPayload });\n break;\n }\n default:\n break;\n }\n },\n flush(controller) {\n const finishReason = {\n unified: mapGoogleInteractionsFinishReason({\n status: finishStatus,\n hasFunctionCall\n }),\n raw: finishStatus\n };\n const providerMetadata = {\n google: {\n ...interactionId != null ? { interactionId } : {},\n ...serviceTier != null ? { serviceTier } : {}\n }\n };\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGoogleInteractionsUsage(usage),\n providerMetadata\n });\n }\n });\n}\n\n// src/interactions/convert-to-google-interactions-input.ts\nimport { convertToBase64 as convertToBase643 } from \"@ai-sdk/provider-utils\";\nfunction getTopLevelMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nfunction isFullMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n if (slashIndex === -1) {\n return false;\n }\n const subtype = mediaType.substring(slashIndex + 1);\n return subtype.length > 0 && subtype !== \"*\";\n}\nfunction convertToGoogleInteractionsInput({\n prompt,\n previousInteractionId,\n store,\n mediaResolution\n}) {\n var _a, _b, _c, _d, _e, _f, _g;\n const warnings = [];\n const incoherentCombo = previousInteractionId != null && store === false;\n const shouldCompact = previousInteractionId != null && store !== false;\n if (incoherentCombo) {\n warnings.push({\n type: \"other\",\n message: \"google.interactions: providerOptions.google.previousInteractionId was set together with store: false. These are incoherent (the prior interaction cannot be referenced when nothing was stored on the server); the full history will be sent and previous_interaction_id will still be emitted.\"\n });\n }\n const compactedPrompt = shouldCompact ? compactPromptForPreviousInteraction({\n prompt,\n previousInteractionId\n }) : prompt;\n const systemTexts = [];\n const turns = [];\n for (const message of compactedPrompt) {\n switch (message.role) {\n case \"system\": {\n systemTexts.push(message.content);\n break;\n }\n case \"user\": {\n const content = [];\n for (const part of message.content) {\n if (part.type === \"text\") {\n const block = {\n type: \"text\",\n text: part.text\n };\n content.push(block);\n } else if (part.type === \"file\") {\n const fileBlock = convertFilePartToContent({\n part,\n warnings,\n mediaResolution\n });\n if (fileBlock != null) {\n content.push(fileBlock);\n }\n }\n }\n const merged = mergeAdjacentTextContent(content);\n if (merged.length > 0) {\n turns.push({ role: \"user\", content: merged });\n }\n break;\n }\n case \"assistant\": {\n const content = [];\n for (const part of message.content) {\n if (part.type === \"text\") {\n content.push({ type: \"text\", text: part.text });\n } else if (part.type === \"reasoning\") {\n const signature = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.signature;\n content.push({\n type: \"thought\",\n ...signature != null ? { signature } : {},\n summary: part.text.length > 0 ? [{ type: \"text\", text: part.text }] : void 0\n });\n } else if (part.type === \"file\") {\n const fileBlock = convertFilePartToContent({\n part,\n warnings,\n mediaResolution\n });\n if (fileBlock != null) {\n content.push(fileBlock);\n }\n } else if (part.type === \"tool-call\") {\n const signature = (_d = (_c = part.providerOptions) == null ? void 0 : _c.google) == null ? void 0 : _d.signature;\n const args = typeof part.input === \"string\" ? safeParseToolArgs(part.input) : (_e = part.input) != null ? _e : {};\n content.push({\n type: \"function_call\",\n id: part.toolCallId,\n name: part.toolName,\n arguments: args,\n ...signature != null ? { signature } : {}\n });\n } else {\n warnings.push({\n type: \"other\",\n message: `google.interactions: unsupported assistant content part type \"${part.type}\"; part dropped.`\n });\n }\n }\n if (content.length > 0) {\n turns.push({ role: \"model\", content });\n }\n break;\n }\n case \"tool\": {\n const content = [];\n for (const part of message.content) {\n if (part.type !== \"tool-result\") {\n warnings.push({\n type: \"other\",\n message: `google.interactions: unsupported tool message part type \"${part.type}\"; part dropped.`\n });\n continue;\n }\n const block = convertToolResultPart({\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: part.output,\n signature: (_g = (_f = part.providerOptions) == null ? void 0 : _f.google) == null ? void 0 : _g.signature,\n warnings\n });\n content.push(block);\n }\n if (content.length > 0) {\n turns.push({ role: \"user\", content });\n }\n break;\n }\n }\n }\n const systemInstruction = systemTexts.length > 0 ? systemTexts.join(\"\\n\\n\") : void 0;\n let input;\n if (turns.length === 0) {\n input = \"\";\n } else if (turns.length === 1 && turns[0].role === \"user\" && Array.isArray(turns[0].content)) {\n input = turns[0].content;\n } else {\n input = turns;\n }\n return { input, systemInstruction, warnings };\n}\nfunction convertFilePartToContent({\n part,\n warnings,\n mediaResolution\n}) {\n const topLevel = getTopLevelMediaType(part.mediaType);\n let kind;\n switch (topLevel) {\n case \"image\":\n kind = \"image\";\n break;\n case \"audio\":\n kind = \"audio\";\n break;\n case \"video\":\n kind = \"video\";\n break;\n case \"application\":\n kind = \"document\";\n break;\n default:\n kind = void 0;\n }\n if (kind == null) {\n warnings.push({\n type: \"other\",\n message: `google.interactions: unsupported file media type \"${part.mediaType}\"; part dropped.`\n });\n return void 0;\n }\n const resolutionField = mediaResolution != null && (kind === \"image\" || kind === \"video\") ? { resolution: mediaResolution } : {};\n if (part.data instanceof URL) {\n return {\n type: kind,\n uri: part.data.toString(),\n ...isFullMediaType(part.mediaType) ? { mime_type: part.mediaType } : {},\n ...resolutionField\n };\n }\n if (!isFullMediaType(part.mediaType)) {\n warnings.push({\n type: \"other\",\n message: `google.interactions: inline file data requires a full IANA media type (e.g. \"image/png\"), got \"${part.mediaType}\"; part dropped.`\n });\n return void 0;\n }\n return {\n type: kind,\n data: convertToBase643(part.data),\n mime_type: part.mediaType,\n ...resolutionField\n };\n}\nfunction compactPromptForPreviousInteraction({\n prompt,\n previousInteractionId\n}) {\n const out = [];\n const droppedToolCallIds = /* @__PURE__ */ new Set();\n for (const message of prompt) {\n if (message.role === \"assistant\") {\n const matchesLinkedInteraction = message.content.some((part) => {\n var _a, _b;\n const partInteractionId = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.interactionId;\n return partInteractionId === previousInteractionId;\n });\n if (matchesLinkedInteraction) {\n for (const part of message.content) {\n if (part.type === \"tool-call\") {\n droppedToolCallIds.add(part.toolCallId);\n }\n }\n continue;\n }\n out.push(message);\n continue;\n }\n if (message.role === \"tool\") {\n const remaining = message.content.filter((part) => {\n if (part.type !== \"tool-result\") {\n return true;\n }\n return !droppedToolCallIds.has(part.toolCallId);\n });\n if (remaining.length === 0) {\n continue;\n }\n out.push({\n ...message,\n content: remaining\n });\n continue;\n }\n out.push(message);\n }\n return out;\n}\nfunction safeParseToolArgs(input) {\n try {\n const parsed = JSON.parse(input);\n if (parsed != null && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n return parsed;\n }\n return { value: parsed };\n } catch (e) {\n return { value: input };\n }\n}\nfunction convertToolResultPart({\n toolCallId,\n toolName,\n output,\n signature,\n warnings\n}) {\n var _a;\n const base = {\n type: \"function_result\",\n call_id: toolCallId,\n name: toolName,\n ...signature != null ? { signature } : {}\n };\n switch (output.type) {\n case \"text\":\n return { ...base, result: output.value };\n case \"json\":\n return { ...base, result: JSON.stringify(output.value) };\n case \"error-text\":\n return { ...base, is_error: true, result: output.value };\n case \"error-json\":\n return { ...base, is_error: true, result: JSON.stringify(output.value) };\n case \"execution-denied\":\n return {\n ...base,\n is_error: true,\n result: (_a = output.reason) != null ? _a : \"Tool execution denied by user.\"\n };\n case \"content\": {\n const blocks = [];\n for (const item of output.value) {\n if (item.type === \"text\") {\n blocks.push({ type: \"text\", text: item.text });\n } else if (item.type === \"image-data\") {\n const imageBlock = filePartToImageBlock({\n part: {\n type: \"file\",\n mediaType: item.mediaType,\n data: item.data\n },\n warnings\n });\n if (imageBlock != null) {\n blocks.push(imageBlock);\n }\n } else if (item.type === \"image-url\") {\n const imageBlock = filePartToImageBlock({\n part: {\n type: \"file\",\n mediaType: \"image/*\",\n data: new URL(item.url)\n },\n warnings\n });\n if (imageBlock != null) {\n blocks.push(imageBlock);\n }\n } else if (item.type === \"file-data\" || item.type === \"file-url\") {\n const mediaType = item.type === \"file-data\" ? item.mediaType : \"application/*\";\n const topLevel = getTopLevelMediaType(mediaType);\n if (topLevel !== \"image\") {\n warnings.push({\n type: \"other\",\n message: `google.interactions: tool-result file with mediaType \"${mediaType}\" is not supported (Interactions \\`function_result.result\\` accepts only text and image content); part dropped.`\n });\n continue;\n }\n const imageBlock = filePartToImageBlock({\n part: item.type === \"file-data\" ? {\n type: \"file\",\n mediaType: item.mediaType,\n data: item.data\n } : {\n type: \"file\",\n mediaType,\n data: new URL(item.url)\n },\n warnings\n });\n if (imageBlock != null) {\n blocks.push(imageBlock);\n }\n } else {\n warnings.push({\n type: \"other\",\n message: `google.interactions: tool-result content part type \"${item.type}\" is not supported; part dropped.`\n });\n }\n }\n return { ...base, result: blocks };\n }\n }\n}\nfunction filePartToImageBlock({\n part,\n warnings\n}) {\n if (part.data instanceof URL) {\n return {\n type: \"image\",\n uri: part.data.toString(),\n ...isFullMediaType(part.mediaType) ? { mime_type: part.mediaType } : {}\n };\n }\n if (!isFullMediaType(part.mediaType)) {\n warnings.push({\n type: \"other\",\n message: `google.interactions: tool-result image part requires a full IANA media type (e.g. \"image/png\"), got \"${part.mediaType}\"; part dropped.`\n });\n return void 0;\n }\n return {\n type: \"image\",\n data: convertToBase643(part.data),\n mime_type: part.mediaType\n };\n}\nfunction mergeAdjacentTextContent(content) {\n if (content.length < 2) {\n return content;\n }\n const result = [];\n for (const block of content) {\n const last = result[result.length - 1];\n if (block.type === \"text\" && last != null && last.type === \"text\" && last.annotations == null && block.annotations == null) {\n const merged = {\n type: \"text\",\n text: `${last.text}\n\n${block.text}`\n };\n result[result.length - 1] = merged;\n continue;\n }\n result.push(block);\n }\n return result;\n}\n\n// src/interactions/google-interactions-api.ts\nimport {\n lazySchema as lazySchema13,\n zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar tokenByModalitySchema = () => z15.object({\n modality: z15.string().nullish(),\n tokens: z15.number().nullish()\n}).loose();\nvar usageSchema2 = () => z15.object({\n total_input_tokens: z15.number().nullish(),\n total_output_tokens: z15.number().nullish(),\n total_thought_tokens: z15.number().nullish(),\n total_cached_tokens: z15.number().nullish(),\n total_tool_use_tokens: z15.number().nullish(),\n total_tokens: z15.number().nullish(),\n input_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n output_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n cached_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n tool_use_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n grounding_tool_count: z15.array(\n z15.object({\n type: z15.string().nullish(),\n count: z15.number().nullish()\n }).loose()\n ).nullish()\n}).loose();\nvar interactionStatusSchema = () => z15.enum([\n \"in_progress\",\n \"requires_action\",\n \"completed\",\n \"failed\",\n \"cancelled\",\n \"incomplete\"\n]);\nvar annotationSchema = () => {\n const urlCitation = z15.object({\n type: z15.literal(\"url_citation\"),\n url: z15.string().nullish(),\n title: z15.string().nullish(),\n start_index: z15.number().nullish(),\n end_index: z15.number().nullish()\n }).loose();\n const fileCitation = z15.object({\n type: z15.literal(\"file_citation\"),\n file_name: z15.string().nullish(),\n document_uri: z15.string().nullish(),\n source: z15.string().nullish(),\n page_number: z15.number().nullish(),\n media_id: z15.string().nullish(),\n start_index: z15.number().nullish(),\n end_index: z15.number().nullish(),\n custom_metadata: z15.record(z15.string(), z15.unknown()).nullish()\n }).loose();\n const placeCitation = z15.object({\n type: z15.literal(\"place_citation\"),\n name: z15.string().nullish(),\n url: z15.string().nullish(),\n place_id: z15.string().nullish(),\n start_index: z15.number().nullish(),\n end_index: z15.number().nullish()\n }).loose();\n return z15.union([\n urlCitation,\n fileCitation,\n placeCitation,\n z15.object({ type: z15.string() }).loose()\n ]);\n};\nvar thoughtSummaryItemSchema = () => z15.object({\n type: z15.string(),\n text: z15.string().nullish(),\n data: z15.string().nullish(),\n mime_type: z15.string().nullish()\n}).loose();\nvar contentBlockSchema = () => {\n const textContent = z15.object({\n type: z15.literal(\"text\"),\n text: z15.string(),\n annotations: z15.array(annotationSchema()).nullish()\n }).loose();\n const thoughtContent = z15.object({\n type: z15.literal(\"thought\"),\n signature: z15.string().nullish(),\n summary: z15.array(thoughtSummaryItemSchema()).nullish()\n }).loose();\n const functionCallContent = z15.object({\n type: z15.literal(\"function_call\"),\n id: z15.string(),\n name: z15.string(),\n arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n signature: z15.string().nullish()\n }).loose();\n const imageContent = z15.object({\n type: z15.literal(\"image\"),\n data: z15.string().nullish(),\n mime_type: z15.string().nullish(),\n resolution: z15.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n uri: z15.string().nullish()\n }).loose();\n const builtinToolCall = z15.object({\n type: z15.enum([\n \"google_search_call\",\n \"code_execution_call\",\n \"url_context_call\",\n \"file_search_call\",\n \"google_maps_call\",\n \"mcp_server_tool_call\"\n ]),\n id: z15.string(),\n arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n name: z15.string().nullish(),\n server_name: z15.string().nullish(),\n search_type: z15.string().nullish(),\n signature: z15.string().nullish()\n }).loose();\n const builtinToolResult = z15.object({\n type: z15.enum([\n \"google_search_result\",\n \"code_execution_result\",\n \"url_context_result\",\n \"file_search_result\",\n \"google_maps_result\",\n \"mcp_server_tool_result\"\n ]),\n call_id: z15.string(),\n result: z15.unknown().nullish(),\n is_error: z15.boolean().nullish(),\n name: z15.string().nullish(),\n server_name: z15.string().nullish(),\n signature: z15.string().nullish()\n }).loose();\n return z15.union([\n textContent,\n imageContent,\n thoughtContent,\n functionCallContent,\n builtinToolCall,\n builtinToolResult,\n z15.object({ type: z15.string() }).loose()\n ]);\n};\nvar googleInteractionsResponseSchema = lazySchema13(\n () => zodSchema13(\n z15.object({\n /*\n * `id` is omitted from the response body when `store: false` (fully\n * stateless mode) — there is no server-side interaction record for the\n * client to reference. `nullish` lets the schema accept that shape.\n */\n id: z15.string().nullish(),\n created: z15.string().nullish(),\n updated: z15.string().nullish(),\n status: interactionStatusSchema(),\n model: z15.string().nullish(),\n agent: z15.string().nullish(),\n outputs: z15.array(contentBlockSchema()).nullish(),\n usage: usageSchema2().nullish(),\n service_tier: z15.string().nullish(),\n previous_interaction_id: z15.string().nullish(),\n response_modalities: z15.array(z15.string()).nullish()\n }).loose()\n )\n);\nvar googleInteractionsEventSchema = lazySchema13(\n () => zodSchema13(\n (() => {\n const status = interactionStatusSchema();\n const annotation = annotationSchema();\n const thoughtSummaryItem = thoughtSummaryItemSchema();\n const interactionStartEvent = z15.object({\n event_type: z15.literal(\"interaction.start\"),\n event_id: z15.string().nullish(),\n interaction: z15.object({\n /*\n * `id` is omitted when `store: false` (fully stateless mode);\n * see the matching note on `googleInteractionsResponseSchema.id`.\n */\n id: z15.string().nullish(),\n created: z15.string().nullish(),\n model: z15.string().nullish(),\n agent: z15.string().nullish(),\n status: status.nullish()\n }).loose()\n }).loose();\n const contentStartEvent = z15.object({\n event_type: z15.literal(\"content.start\"),\n event_id: z15.string().nullish(),\n index: z15.number(),\n content: contentBlockSchema()\n }).loose();\n const contentDeltaText = z15.object({\n type: z15.literal(\"text\"),\n text: z15.string()\n }).loose();\n const contentDeltaThoughtSummary = z15.object({\n type: z15.literal(\"thought_summary\"),\n content: thoughtSummaryItem.nullish()\n }).loose();\n const contentDeltaThoughtSignature = z15.object({\n type: z15.literal(\"thought_signature\"),\n signature: z15.string().nullish()\n }).loose();\n const contentDeltaFunctionCall = z15.object({\n type: z15.literal(\"function_call\"),\n id: z15.string(),\n name: z15.string(),\n arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n signature: z15.string().nullish()\n }).loose();\n const contentDeltaTextAnnotation = z15.object({\n type: z15.literal(\"text_annotation\"),\n annotations: z15.array(annotation).nullish()\n }).loose();\n const contentDeltaImage = z15.object({\n type: z15.literal(\"image\"),\n data: z15.string().nullish(),\n mime_type: z15.string().nullish(),\n resolution: z15.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n uri: z15.string().nullish()\n }).loose();\n const contentDeltaBuiltinToolCall = z15.object({\n type: z15.enum([\n \"google_search_call\",\n \"code_execution_call\",\n \"url_context_call\",\n \"file_search_call\",\n \"google_maps_call\",\n \"mcp_server_tool_call\"\n ]),\n id: z15.string(),\n arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n name: z15.string().nullish(),\n server_name: z15.string().nullish(),\n search_type: z15.string().nullish(),\n signature: z15.string().nullish()\n }).loose();\n const contentDeltaBuiltinToolResult = z15.object({\n type: z15.enum([\n \"google_search_result\",\n \"code_execution_result\",\n \"url_context_result\",\n \"file_search_result\",\n \"google_maps_result\",\n \"mcp_server_tool_result\"\n ]),\n call_id: z15.string(),\n result: z15.unknown().nullish(),\n is_error: z15.boolean().nullish(),\n name: z15.string().nullish(),\n server_name: z15.string().nullish(),\n signature: z15.string().nullish()\n }).loose();\n const contentDeltaUnknown = z15.object({ type: z15.string() }).loose();\n const contentDeltaUnion = z15.union([\n contentDeltaText,\n contentDeltaImage,\n contentDeltaThoughtSummary,\n contentDeltaThoughtSignature,\n contentDeltaFunctionCall,\n contentDeltaTextAnnotation,\n contentDeltaBuiltinToolCall,\n contentDeltaBuiltinToolResult,\n contentDeltaUnknown\n ]);\n const contentDeltaEvent = z15.object({\n event_type: z15.literal(\"content.delta\"),\n event_id: z15.string().nullish(),\n index: z15.number(),\n delta: contentDeltaUnion\n }).loose();\n const contentStopEvent = z15.object({\n event_type: z15.literal(\"content.stop\"),\n event_id: z15.string().nullish(),\n index: z15.number()\n }).loose();\n const interactionStatusUpdateEvent = z15.object({\n event_type: z15.literal(\"interaction.status_update\"),\n event_id: z15.string().nullish(),\n interaction_id: z15.string().nullish(),\n status\n }).loose();\n const interactionCompleteEvent = z15.object({\n event_type: z15.literal(\"interaction.complete\"),\n event_id: z15.string().nullish(),\n interaction: z15.object({\n id: z15.string().nullish(),\n status: status.nullish(),\n usage: usageSchema2().nullish(),\n service_tier: z15.string().nullish()\n }).loose()\n }).loose();\n const errorEvent = z15.object({\n event_type: z15.literal(\"error\"),\n event_id: z15.string().nullish(),\n error: z15.object({\n code: z15.string().nullish(),\n message: z15.string().nullish()\n }).loose().nullish()\n }).loose();\n const unknownEvent = z15.object({ event_type: z15.string() }).loose();\n return z15.union([\n interactionStartEvent,\n contentStartEvent,\n contentDeltaEvent,\n contentStopEvent,\n interactionStatusUpdateEvent,\n interactionCompleteEvent,\n errorEvent,\n unknownEvent\n ]);\n })()\n )\n);\n\n// src/interactions/google-interactions-language-model-options.ts\nimport {\n lazySchema as lazySchema14,\n zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar googleInteractionsLanguageModelOptions = lazySchema14(\n () => zodSchema14(\n z16.object({\n previousInteractionId: z16.string().nullish(),\n store: z16.boolean().nullish(),\n agent: z16.string().nullish(),\n agentConfig: z16.union([\n z16.object({\n type: z16.literal(\"dynamic\")\n }).loose(),\n z16.object({\n type: z16.literal(\"deep-research\"),\n thinkingSummaries: z16.enum([\"auto\", \"none\"]).nullish(),\n visualization: z16.enum([\"off\", \"auto\"]).nullish(),\n collaborativePlanning: z16.boolean().nullish()\n })\n ]).nullish(),\n thinkingLevel: z16.enum([\"minimal\", \"low\", \"medium\", \"high\"]).nullish(),\n thinkingSummaries: z16.enum([\"auto\", \"none\"]).nullish(),\n imageConfig: z16.object({\n aspectRatio: z16.enum([\n \"1:1\",\n \"2:3\",\n \"3:2\",\n \"3:4\",\n \"4:3\",\n \"4:5\",\n \"5:4\",\n \"9:16\",\n \"16:9\",\n \"21:9\",\n \"1:8\",\n \"8:1\",\n \"1:4\",\n \"4:1\"\n ]).nullish(),\n imageSize: z16.enum([\"1K\", \"2K\", \"4K\", \"512\"]).nullish()\n }).nullish(),\n mediaResolution: z16.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n responseModalities: z16.array(z16.enum([\"text\", \"image\", \"audio\", \"video\", \"document\"])).nullish(),\n serviceTier: z16.enum([\"flex\", \"standard\", \"priority\"]).nullish(),\n /**\n * Alternative to AI SDK `system` message. If both are set, the AI SDK\n * `system` message wins and a warning is emitted.\n */\n systemInstruction: z16.string().nullish(),\n /**\n * Per-block signature for round-tripping `thought.signature` and\n * `function_call.signature` blocks. Set by the SDK on output reasoning /\n * tool-call parts; passed back unchanged on input parts so the API\n * accepts the prior turn.\n */\n signature: z16.string().nullish(),\n /**\n * Set by the SDK on output assistant messages. The converter uses it to\n * decide which messages to drop when compacting under\n * `previousInteractionId`.\n */\n interactionId: z16.string().nullish(),\n /**\n * Maximum time, in milliseconds, to poll a background interaction (agent\n * call) before giving up. Defaults to 30 minutes. Long-running agents\n * such as deep research can take tens of minutes — increase if needed.\n */\n pollingTimeoutMs: z16.number().int().positive().nullish()\n })\n )\n);\n\n// src/interactions/parse-google-interactions-outputs.ts\nfunction googleProviderMetadata({\n signature,\n interactionId\n}) {\n const google2 = {};\n if (signature != null) {\n google2.signature = signature;\n }\n if (interactionId != null) {\n google2.interactionId = interactionId;\n }\n return Object.keys(google2).length > 0 ? { providerMetadata: { google: google2 } } : {};\n}\nvar BUILTIN_TOOL_CALL_TYPES2 = /* @__PURE__ */ new Set([\n \"google_search_call\",\n \"code_execution_call\",\n \"url_context_call\",\n \"file_search_call\",\n \"google_maps_call\",\n \"mcp_server_tool_call\"\n]);\nvar BUILTIN_TOOL_RESULT_TYPES2 = /* @__PURE__ */ new Set([\n \"google_search_result\",\n \"code_execution_result\",\n \"url_context_result\",\n \"file_search_result\",\n \"google_maps_result\",\n \"mcp_server_tool_result\"\n]);\nfunction builtinToolNameFromCallType2(type) {\n return type.replace(/_call$/, \"\");\n}\nfunction builtinToolNameFromResultType2(type) {\n return type.replace(/_result$/, \"\");\n}\nfunction parseGoogleInteractionsOutputs({\n outputs,\n generateId: generateId3,\n interactionId\n}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n const content = [];\n let hasFunctionCall = false;\n if (outputs == null) {\n return { content, hasFunctionCall };\n }\n for (const block of outputs) {\n if (block == null || typeof block !== \"object\") continue;\n const type = block.type;\n if (typeof type !== \"string\") continue;\n switch (type) {\n case \"text\": {\n const text = (_a = block.text) != null ? _a : \"\";\n const annotations = block.annotations;\n content.push({\n type: \"text\",\n text,\n ...googleProviderMetadata({ interactionId })\n });\n const sources = annotationsToSources({ annotations, generateId: generateId3 });\n for (const source of sources) {\n content.push(source);\n }\n break;\n }\n case \"thought\": {\n const thought = block;\n const summary = Array.isArray(thought.summary) ? thought.summary : [];\n const text = summary.filter(\n (item) => (item == null ? void 0 : item.type) === \"text\" && typeof item.text === \"string\"\n ).map((item) => item.text).join(\"\\n\");\n content.push({\n type: \"reasoning\",\n text,\n ...googleProviderMetadata({\n signature: thought.signature,\n interactionId\n })\n });\n break;\n }\n case \"image\": {\n const image = block;\n if (image.data != null && image.data.length > 0) {\n content.push({\n type: \"file\",\n mediaType: (_b = image.mime_type) != null ? _b : \"image/png\",\n data: image.data,\n ...googleProviderMetadata({ interactionId })\n });\n } else if (image.uri != null && image.uri.length > 0) {\n content.push({\n type: \"file\",\n mediaType: (_c = image.mime_type) != null ? _c : \"image/png\",\n data: \"\",\n providerMetadata: {\n google: {\n ...interactionId != null ? { interactionId } : {},\n imageUri: image.uri\n }\n }\n });\n }\n break;\n }\n case \"function_call\": {\n hasFunctionCall = true;\n const call = block;\n content.push({\n type: \"tool-call\",\n toolCallId: call.id,\n toolName: call.name,\n input: JSON.stringify((_d = call.arguments) != null ? _d : {}),\n ...googleProviderMetadata({\n signature: call.signature,\n interactionId\n })\n });\n break;\n }\n default: {\n if (BUILTIN_TOOL_CALL_TYPES2.has(type)) {\n const call = block;\n const toolName = type === \"mcp_server_tool_call\" ? (_e = call.name) != null ? _e : \"mcp_server_tool\" : builtinToolNameFromCallType2(type);\n const input = JSON.stringify((_f = call.arguments) != null ? _f : {});\n content.push({\n type: \"tool-call\",\n toolCallId: (_g = call.id) != null ? _g : generateId3(),\n toolName,\n input,\n providerExecuted: true\n });\n } else if (BUILTIN_TOOL_RESULT_TYPES2.has(type)) {\n const result = block;\n const toolName = type === \"mcp_server_tool_result\" ? (_h = result.name) != null ? _h : \"mcp_server_tool\" : builtinToolNameFromResultType2(type);\n content.push({\n type: \"tool-result\",\n toolCallId: (_i = result.call_id) != null ? _i : generateId3(),\n toolName,\n result: (_j = result.result) != null ? _j : null\n });\n const sources = builtinToolResultToSources({\n block,\n generateId: generateId3\n });\n for (const source of sources) {\n content.push(source);\n }\n }\n break;\n }\n }\n }\n return { content, hasFunctionCall };\n}\n\n// src/interactions/poll-google-interactions.ts\nimport {\n createJsonResponseHandler as createJsonResponseHandler5,\n delay as delay2,\n getFromApi as getFromApi2,\n isAbortError\n} from \"@ai-sdk/provider-utils\";\n\n// src/interactions/cancel-google-interaction.ts\nimport {\n combineHeaders as combineHeaders5,\n getRuntimeEnvironmentUserAgent,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\nvar getOriginalFetch = () => globalThis.fetch;\nasync function cancelGoogleInteraction({\n baseURL,\n interactionId,\n headers,\n fetch = getOriginalFetch()\n}) {\n if (interactionId == null || interactionId.length === 0) {\n return;\n }\n const url = `${baseURL}/interactions/${encodeURIComponent(interactionId)}/cancel`;\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: withUserAgentSuffix(\n combineHeaders5({ \"Content-Type\": \"application/json\" }, headers),\n getRuntimeEnvironmentUserAgent()\n ),\n body: \"{}\"\n });\n try {\n await response.text();\n } catch (e) {\n }\n } catch (e) {\n }\n}\n\n// src/interactions/poll-google-interactions.ts\nvar TERMINAL_STATUSES = /* @__PURE__ */ new Set([\"completed\", \"failed\", \"cancelled\", \"incomplete\"]);\nfunction isTerminalStatus(status) {\n return status != null && TERMINAL_STATUSES.has(status);\n}\nvar DEFAULT_INITIAL_DELAY_MS = 1e3;\nvar DEFAULT_MAX_DELAY_MS = 1e4;\nvar DEFAULT_TIMEOUT_MS = 30 * 60 * 1e3;\nasync function pollGoogleInteractionUntilTerminal({\n baseURL,\n interactionId,\n headers,\n fetch,\n abortSignal,\n initialDelayMs = DEFAULT_INITIAL_DELAY_MS,\n maxDelayMs = DEFAULT_MAX_DELAY_MS,\n timeoutMs = DEFAULT_TIMEOUT_MS\n}) {\n if (interactionId == null || interactionId.length === 0) {\n throw new Error(\n \"google.interactions: cannot poll a background interaction without an id. The POST response did not include an interaction id.\"\n );\n }\n const startedAt = Date.now();\n let nextDelayMs = initialDelayMs;\n const url = `${baseURL}/interactions/${encodeURIComponent(interactionId)}`;\n const cancelOnServer = () => cancelGoogleInteraction({ baseURL, interactionId, headers, fetch });\n try {\n while (true) {\n if (abortSignal == null ? void 0 : abortSignal.aborted) {\n await cancelOnServer();\n throw new DOMException(\"Polling was aborted\", \"AbortError\");\n }\n if (Date.now() - startedAt > timeoutMs) {\n throw new Error(\n `google.interactions: timed out polling interaction ${interactionId} after ${timeoutMs}ms.`\n );\n }\n await delay2(nextDelayMs, { abortSignal });\n const {\n value: response,\n rawValue: rawResponse,\n responseHeaders\n } = await getFromApi2({\n url,\n headers,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler5(\n googleInteractionsResponseSchema\n ),\n abortSignal,\n fetch\n });\n if (isTerminalStatus(response.status)) {\n return { response, rawResponse, responseHeaders };\n }\n nextDelayMs = Math.min(nextDelayMs * 2, maxDelayMs);\n }\n } catch (error) {\n if (isAbortError(error)) {\n await cancelOnServer();\n }\n throw error;\n }\n}\n\n// src/interactions/prepare-google-interactions-tools.ts\nfunction prepareGoogleInteractionsTools({\n tools,\n toolChoice\n}) {\n var _a, _b, _c, _d;\n const toolWarnings = [];\n const normalized = (tools == null ? void 0 : tools.length) ? tools : void 0;\n if (normalized == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const interactionsTools = [];\n for (const tool of normalized) {\n if (tool.type === \"function\") {\n interactionsTools.push({\n type: \"function\",\n name: tool.name,\n description: (_a = tool.description) != null ? _a : \"\",\n parameters: tool.inputSchema\n });\n continue;\n }\n if (tool.type === \"provider\") {\n const args = (_b = tool.args) != null ? _b : {};\n switch (tool.id) {\n case \"google.google_search\": {\n const searchTypesArg = args.searchTypes;\n let search_types;\n if (searchTypesArg != null && typeof searchTypesArg === \"object\") {\n const list = [];\n if (searchTypesArg.webSearch != null) list.push(\"web_search\");\n if (searchTypesArg.imageSearch != null) list.push(\"image_search\");\n if (list.length > 0) {\n search_types = list;\n }\n }\n interactionsTools.push({\n type: \"google_search\",\n ...search_types != null ? { search_types } : {}\n });\n break;\n }\n case \"google.code_execution\": {\n interactionsTools.push({ type: \"code_execution\" });\n break;\n }\n case \"google.url_context\": {\n interactionsTools.push({ type: \"url_context\" });\n break;\n }\n case \"google.file_search\": {\n interactionsTools.push({\n type: \"file_search\",\n ...args.fileSearchStoreNames != null ? {\n file_search_store_names: args.fileSearchStoreNames\n } : {},\n ...args.topK != null ? { top_k: args.topK } : {},\n ...args.metadataFilter != null ? { metadata_filter: args.metadataFilter } : {}\n });\n break;\n }\n case \"google.google_maps\": {\n interactionsTools.push({\n type: \"google_maps\",\n ...args.latitude != null ? { latitude: args.latitude } : {},\n ...args.longitude != null ? { longitude: args.longitude } : {},\n ...args.enableWidget != null ? { enable_widget: args.enableWidget } : {}\n });\n break;\n }\n case \"google.computer_use\": {\n interactionsTools.push({\n type: \"computer_use\",\n environment: (_c = args.environment) != null ? _c : \"browser\",\n ...args.excludedPredefinedFunctions != null ? {\n excludedPredefinedFunctions: args.excludedPredefinedFunctions\n } : {}\n });\n break;\n }\n case \"google.mcp_server\": {\n interactionsTools.push({\n type: \"mcp_server\",\n ...args.name != null ? { name: args.name } : {},\n ...args.url != null ? { url: args.url } : {},\n ...args.headers != null ? { headers: args.headers } : {},\n ...args.allowedTools != null ? { allowed_tools: args.allowedTools } : {}\n });\n break;\n }\n case \"google.retrieval\": {\n const vertexAiSearchConfig = (_d = args.vertexAiSearchConfig) != null ? _d : void 0;\n interactionsTools.push({\n type: \"retrieval\",\n ...args.retrievalTypes != null ? {\n retrieval_types: args.retrievalTypes\n } : { retrieval_types: [\"vertex_ai_search\"] },\n ...vertexAiSearchConfig != null ? { vertex_ai_search_config: vertexAiSearchConfig } : {}\n });\n break;\n }\n default: {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: `provider-defined tool ${tool.id} is not supported by google.interactions; tool dropped.`\n });\n break;\n }\n }\n continue;\n }\n toolWarnings.push({\n type: \"unsupported\",\n feature: `tool of type ${tool.type}`,\n details: \"Only function tools and google.* provider-defined tools are supported by google.interactions; tool dropped.\"\n });\n }\n const hasFunctionTool = interactionsTools.some((t) => t.type === \"function\");\n let mappedToolChoice;\n if (toolChoice != null && hasFunctionTool) {\n switch (toolChoice.type) {\n case \"auto\":\n mappedToolChoice = \"auto\";\n break;\n case \"required\":\n mappedToolChoice = \"any\";\n break;\n case \"none\":\n mappedToolChoice = \"none\";\n break;\n case \"tool\":\n mappedToolChoice = {\n allowed_tools: {\n mode: \"validated\",\n tools: [toolChoice.toolName]\n }\n };\n break;\n }\n }\n return {\n tools: interactionsTools.length > 0 ? interactionsTools : void 0,\n toolChoice: mappedToolChoice,\n toolWarnings\n };\n}\n\n// src/interactions/stream-google-interactions.ts\nimport {\n createEventSourceResponseHandler as createEventSourceResponseHandler2,\n delay as delay3,\n getFromApi as getFromApi3,\n isAbortError as isAbortError2\n} from \"@ai-sdk/provider-utils\";\nvar DEFAULT_MAX_RETRIES = 3;\nvar DEFAULT_RETRY_DELAY_MS = 500;\nfunction streamGoogleInteractionEvents({\n baseURL,\n interactionId,\n headers,\n fetch,\n abortSignal,\n maxRetries = DEFAULT_MAX_RETRIES,\n retryDelayMs = DEFAULT_RETRY_DELAY_MS\n}) {\n if (interactionId.length === 0) {\n throw new Error(\n \"google.interactions: cannot stream a background interaction without an id.\"\n );\n }\n const eventSourceHeaders = {\n ...headers,\n accept: \"text/event-stream\"\n };\n let lastEventId;\n let complete = false;\n let attempt = 0;\n let receivedAnyEventThisAttempt = false;\n let currentReader;\n const internalAbort = new AbortController();\n const upstreamAbortHandler = () => internalAbort.abort();\n if (abortSignal != null) {\n if (abortSignal.aborted) {\n internalAbort.abort();\n } else {\n abortSignal.addEventListener(\"abort\", upstreamAbortHandler, {\n once: true\n });\n }\n }\n const effectiveSignal = internalAbort.signal;\n function buildUrl() {\n const base = `${baseURL}/interactions/${encodeURIComponent(interactionId)}`;\n const params = new URLSearchParams({ stream: \"true\" });\n if (lastEventId != null) {\n params.set(\"last_event_id\", lastEventId);\n }\n return `${base}?${params.toString()}`;\n }\n async function openReader() {\n const { value: stream } = await getFromApi3({\n url: buildUrl(),\n headers: eventSourceHeaders,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler2(\n googleInteractionsEventSchema\n ),\n abortSignal: effectiveSignal,\n fetch\n });\n return stream.getReader();\n }\n return new ReadableStream({\n async start(controller) {\n try {\n while (!complete && !effectiveSignal.aborted) {\n if (currentReader == null) {\n try {\n currentReader = await openReader();\n receivedAnyEventThisAttempt = false;\n } catch (error) {\n if (isAbortError2(error) || effectiveSignal.aborted) {\n controller.error(error);\n return;\n }\n attempt++;\n if (attempt >= maxRetries) {\n controller.error(error);\n return;\n }\n await delay3(retryDelayMs * attempt, {\n abortSignal: effectiveSignal\n });\n continue;\n }\n }\n try {\n const { done, value } = await currentReader.read();\n if (done) {\n currentReader = void 0;\n if (complete) break;\n if (!receivedAnyEventThisAttempt) {\n attempt++;\n if (attempt >= maxRetries) {\n controller.error(\n new Error(\n \"google.interactions: SSE stream closed without producing any events.\"\n )\n );\n return;\n }\n await delay3(retryDelayMs * attempt, {\n abortSignal: effectiveSignal\n });\n } else {\n attempt = 0;\n }\n continue;\n }\n receivedAnyEventThisAttempt = true;\n if (value.success) {\n const ev = value.value;\n if (typeof ev.event_id === \"string\" && ev.event_id.length > 0) {\n lastEventId = ev.event_id;\n }\n if (ev.event_type === \"interaction.complete\" || ev.event_type === \"error\") {\n complete = true;\n }\n }\n controller.enqueue(value);\n } catch (error) {\n if (isAbortError2(error) || effectiveSignal.aborted) {\n controller.error(error);\n return;\n }\n currentReader = void 0;\n attempt++;\n if (attempt >= maxRetries) {\n controller.error(error);\n return;\n }\n await delay3(retryDelayMs * attempt, {\n abortSignal: effectiveSignal\n });\n }\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n } finally {\n if (abortSignal != null) {\n abortSignal.removeEventListener(\"abort\", upstreamAbortHandler);\n }\n currentReader == null ? void 0 : currentReader.cancel().catch(() => {\n });\n currentReader = void 0;\n if (effectiveSignal.aborted && !complete) {\n await cancelGoogleInteraction({\n baseURL,\n interactionId,\n headers,\n fetch\n });\n }\n }\n },\n cancel() {\n internalAbort.abort();\n currentReader == null ? void 0 : currentReader.cancel().catch(() => {\n });\n currentReader = void 0;\n }\n });\n}\n\n// src/interactions/synthesize-google-interactions-agent-stream.ts\nfunction synthesizeGoogleInteractionsAgentStream({\n response,\n warnings,\n generateId: generateId3,\n includeRawChunks,\n headerServiceTier\n}) {\n return new ReadableStream({\n start(controller) {\n var _a, _b, _c;\n controller.enqueue({ type: \"stream-start\", warnings });\n const interactionId = typeof response.id === \"string\" && response.id.length > 0 ? response.id : void 0;\n let timestamp;\n const created = response.created;\n if (typeof created === \"string\") {\n const parsed = new Date(created);\n if (!Number.isNaN(parsed.getTime())) {\n timestamp = parsed;\n }\n }\n controller.enqueue({\n type: \"response-metadata\",\n ...interactionId != null ? { id: interactionId } : {},\n modelId: (_a = response.model) != null ? _a : void 0,\n ...timestamp ? { timestamp } : {}\n });\n if (includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: response });\n }\n const { content, hasFunctionCall } = parseGoogleInteractionsOutputs({\n outputs: (_b = response.outputs) != null ? _b : null,\n generateId: generateId3,\n interactionId\n });\n let blockCounter = 0;\n const nextBlockId = () => `${interactionId != null ? interactionId : \"agent\"}:${blockCounter++}`;\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n const id = nextBlockId();\n const providerMetadata2 = part.providerMetadata;\n controller.enqueue({ type: \"text-start\", id });\n if (part.text.length > 0) {\n controller.enqueue({ type: \"text-delta\", id, delta: part.text });\n }\n controller.enqueue({\n type: \"text-end\",\n id,\n ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n });\n break;\n }\n case \"reasoning\": {\n const id = nextBlockId();\n const providerMetadata2 = part.providerMetadata;\n controller.enqueue({ type: \"reasoning-start\", id });\n if (part.text.length > 0) {\n controller.enqueue({\n type: \"reasoning-delta\",\n id,\n delta: part.text\n });\n }\n controller.enqueue({\n type: \"reasoning-end\",\n id,\n ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n });\n break;\n }\n case \"tool-call\": {\n const providerMetadata2 = part.providerMetadata;\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.toolCallId,\n toolName: part.toolName,\n ...part.providerExecuted ? { providerExecuted: part.providerExecuted } : {}\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: part.toolCallId,\n delta: part.input\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...part.providerExecuted ? { providerExecuted: part.providerExecuted } : {},\n ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n });\n break;\n }\n case \"tool-result\": {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n result: part.result\n });\n break;\n }\n case \"source\":\n case \"file\": {\n controller.enqueue(part);\n break;\n }\n default:\n break;\n }\n }\n const serviceTier = (_c = response.service_tier) != null ? _c : headerServiceTier;\n const finishReason = {\n unified: mapGoogleInteractionsFinishReason({\n status: response.status,\n hasFunctionCall\n }),\n raw: response.status\n };\n const providerMetadata = {\n google: {\n ...interactionId != null ? { interactionId } : {},\n ...serviceTier != null ? { serviceTier } : {}\n }\n };\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGoogleInteractionsUsage(response.usage),\n providerMetadata\n });\n controller.close();\n }\n });\n}\n\n// src/interactions/google-interactions-language-model.ts\nvar GoogleInteractionsLanguageModel = class {\n constructor(modelOrAgent, config) {\n this.specificationVersion = \"v3\";\n if (typeof modelOrAgent === \"string\") {\n this.modelId = modelOrAgent;\n this.agent = void 0;\n } else {\n this.modelId = modelOrAgent.agent;\n this.agent = modelOrAgent.agent;\n }\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n get supportedUrls() {\n if (this.config.supportedUrls) {\n return this.config.supportedUrls();\n }\n return {\n \"image/*\": [/^https?:\\/\\/.+/],\n \"application/pdf\": [/^https?:\\/\\/.+/],\n \"audio/*\": [/^https?:\\/\\/.+/],\n \"video/*\": [\n /^https?:\\/\\/(www\\.)?youtube\\.com\\/watch\\?v=.+/,\n /^https?:\\/\\/youtu\\.be\\/.+/,\n /^gs:\\/\\/.+/\n ]\n };\n }\n async getArgs(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;\n const warnings = [];\n const opts = await parseProviderOptions5({\n provider: \"google\",\n providerOptions: options.providerOptions,\n schema: googleInteractionsLanguageModelOptions\n });\n const isAgent = this.agent != null;\n const hasTools = options.tools != null && options.tools.length > 0;\n let toolsForBody;\n let toolChoiceForBody;\n if (hasTools && isAgent) {\n warnings.push({\n type: \"other\",\n message: \"google.interactions: tools are not supported when an agent is set; tools will be omitted from the request body.\"\n });\n } else if (hasTools) {\n const prepared = prepareGoogleInteractionsTools({\n tools: options.tools,\n toolChoice: options.toolChoice\n });\n toolsForBody = prepared.tools;\n toolChoiceForBody = prepared.toolChoice;\n warnings.push(...prepared.toolWarnings);\n }\n let responseMimeType;\n let responseFormat;\n if (((_a = options.responseFormat) == null ? void 0 : _a.type) === \"json\") {\n if (isAgent) {\n warnings.push({\n type: \"other\",\n message: \"google.interactions: structured output (responseFormat) is not supported when an agent is set; responseFormat will be ignored.\"\n });\n } else {\n responseMimeType = \"application/json\";\n if (options.responseFormat.schema != null) {\n responseFormat = options.responseFormat.schema;\n }\n }\n }\n const {\n input,\n systemInstruction: convertedSystemInstruction,\n warnings: convWarnings\n } = convertToGoogleInteractionsInput({\n prompt: options.prompt,\n previousInteractionId: (_b = opts == null ? void 0 : opts.previousInteractionId) != null ? _b : void 0,\n store: (_c = opts == null ? void 0 : opts.store) != null ? _c : void 0,\n mediaResolution: (_d = opts == null ? void 0 : opts.mediaResolution) != null ? _d : void 0\n });\n warnings.push(...convWarnings);\n let systemInstruction = convertedSystemInstruction;\n const optionSystemInstruction = (_e = opts == null ? void 0 : opts.systemInstruction) != null ? _e : void 0;\n if (systemInstruction != null && optionSystemInstruction != null) {\n warnings.push({\n type: \"other\",\n message: \"google.interactions: both AI SDK system message and providerOptions.google.systemInstruction were set; using the AI SDK system message.\"\n });\n } else if (systemInstruction == null && optionSystemInstruction != null) {\n systemInstruction = optionSystemInstruction;\n }\n let generationConfig;\n if (isAgent) {\n const droppedFields = [];\n if (options.temperature != null) droppedFields.push(\"temperature\");\n if (options.topP != null) droppedFields.push(\"topP\");\n if (options.seed != null) droppedFields.push(\"seed\");\n if (options.stopSequences != null && options.stopSequences.length > 0) {\n droppedFields.push(\"stopSequences\");\n }\n if (options.maxOutputTokens != null)\n droppedFields.push(\"maxOutputTokens\");\n if ((opts == null ? void 0 : opts.thinkingLevel) != null) droppedFields.push(\"thinkingLevel\");\n if ((opts == null ? void 0 : opts.thinkingSummaries) != null) {\n droppedFields.push(\"thinkingSummaries\");\n }\n if ((opts == null ? void 0 : opts.imageConfig) != null) droppedFields.push(\"imageConfig\");\n if (droppedFields.length > 0) {\n warnings.push({\n type: \"other\",\n message: `google.interactions: ${droppedFields.join(\", \")} ${droppedFields.length === 1 ? \"is\" : \"are\"} not supported when an agent is set; use providerOptions.google.agentConfig instead. Dropped from the request body.`\n });\n }\n generationConfig = void 0;\n } else {\n generationConfig = pruneUndefined({\n temperature: (_f = options.temperature) != null ? _f : void 0,\n top_p: (_g = options.topP) != null ? _g : void 0,\n seed: (_h = options.seed) != null ? _h : void 0,\n stop_sequences: options.stopSequences != null && options.stopSequences.length > 0 ? options.stopSequences : void 0,\n max_output_tokens: (_i = options.maxOutputTokens) != null ? _i : void 0,\n thinking_level: (_j = opts == null ? void 0 : opts.thinkingLevel) != null ? _j : void 0,\n thinking_summaries: (_k = opts == null ? void 0 : opts.thinkingSummaries) != null ? _k : void 0,\n image_config: (opts == null ? void 0 : opts.imageConfig) != null ? pruneUndefined({\n aspect_ratio: (_l = opts.imageConfig.aspectRatio) != null ? _l : void 0,\n image_size: (_m = opts.imageConfig.imageSize) != null ? _m : void 0\n }) : void 0,\n tool_choice: toolChoiceForBody\n });\n }\n let agentConfig;\n if (isAgent && (opts == null ? void 0 : opts.agentConfig) != null) {\n const ac = opts.agentConfig;\n if (ac.type === \"deep-research\") {\n agentConfig = pruneUndefined({\n type: \"deep-research\",\n thinking_summaries: (_n = ac.thinkingSummaries) != null ? _n : void 0,\n visualization: (_o = ac.visualization) != null ? _o : void 0,\n collaborative_planning: (_p = ac.collaborativePlanning) != null ? _p : void 0\n });\n } else if (ac.type === \"dynamic\") {\n agentConfig = { type: \"dynamic\" };\n }\n }\n const args = pruneUndefined({\n ...isAgent ? { agent: this.agent } : { model: this.modelId },\n input,\n system_instruction: systemInstruction,\n tools: toolsForBody,\n response_format: responseFormat,\n response_mime_type: responseMimeType,\n response_modalities: (opts == null ? void 0 : opts.responseModalities) != null ? opts.responseModalities : void 0,\n previous_interaction_id: (_q = opts == null ? void 0 : opts.previousInteractionId) != null ? _q : void 0,\n service_tier: (_r = opts == null ? void 0 : opts.serviceTier) != null ? _r : void 0,\n store: (_s = opts == null ? void 0 : opts.store) != null ? _s : void 0,\n generation_config: generationConfig != null && Object.keys(generationConfig).length > 0 ? generationConfig : void 0,\n agent_config: agentConfig,\n ...isAgent ? { background: true } : {}\n });\n return {\n args,\n warnings,\n isAgent,\n pollingTimeoutMs: (_t = opts == null ? void 0 : opts.pollingTimeoutMs) != null ? _t : void 0\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f;\n const { args, warnings, isAgent, pollingTimeoutMs } = await this.getArgs(options);\n const url = `${this.config.baseURL}/interactions`;\n const mergedHeaders = combineHeaders6(\n this.config.headers ? await resolve5(this.config.headers) : void 0,\n options.headers\n );\n const postResult = await postJsonToApi5({\n url,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler6(\n googleInteractionsResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = postResult;\n if (isAgent && !isTerminalStatus(response.status)) {\n const polled = await pollGoogleInteractionUntilTerminal({\n baseURL: this.config.baseURL,\n interactionId: response.id,\n headers: mergedHeaders,\n fetch: this.config.fetch,\n abortSignal: options.abortSignal,\n timeoutMs: pollingTimeoutMs\n });\n response = polled.response;\n rawResponse = polled.rawResponse;\n responseHeaders = (_a = polled.responseHeaders) != null ? _a : responseHeaders;\n }\n const interactionId = typeof response.id === \"string\" && response.id.length > 0 ? response.id : void 0;\n const { content, hasFunctionCall } = parseGoogleInteractionsOutputs({\n outputs: (_b = response.outputs) != null ? _b : null,\n generateId: (_c = this.config.generateId) != null ? _c : defaultGenerateId2,\n interactionId\n });\n const finishReason = {\n unified: mapGoogleInteractionsFinishReason({\n status: response.status,\n hasFunctionCall\n }),\n raw: response.status\n };\n const serviceTier = (_e = (_d = response.service_tier) != null ? _d : responseHeaders == null ? void 0 : responseHeaders[\"x-gemini-service-tier\"]) != null ? _e : void 0;\n const providerMetadata = {\n google: {\n ...interactionId != null ? { interactionId } : {},\n ...serviceTier != null ? { serviceTier } : {}\n }\n };\n let timestamp;\n if (typeof response.created === \"string\") {\n const parsed = new Date(response.created);\n if (!Number.isNaN(parsed.getTime())) {\n timestamp = parsed;\n }\n }\n return {\n content,\n finishReason,\n usage: convertGoogleInteractionsUsage(response.usage),\n warnings,\n providerMetadata,\n request: { body: args },\n response: {\n headers: responseHeaders,\n body: rawResponse,\n ...interactionId != null ? { id: interactionId } : {},\n ...timestamp ? { timestamp } : {},\n modelId: (_f = response.model) != null ? _f : void 0\n }\n };\n }\n async doStream(options) {\n var _a;\n const { args, warnings, isAgent, pollingTimeoutMs } = await this.getArgs(options);\n const url = `${this.config.baseURL}/interactions`;\n const mergedHeaders = combineHeaders6(\n this.config.headers ? await resolve5(this.config.headers) : void 0,\n options.headers\n );\n if (isAgent) {\n return this.doStreamBackground({\n args,\n warnings,\n url,\n mergedHeaders,\n options,\n pollingTimeoutMs\n });\n }\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi5({\n url,\n headers: mergedHeaders,\n body,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler3(\n googleInteractionsEventSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const headerServiceTier = responseHeaders == null ? void 0 : responseHeaders[\"x-gemini-service-tier\"];\n const transform = buildGoogleInteractionsStreamTransform({\n warnings,\n generateId: (_a = this.config.generateId) != null ? _a : defaultGenerateId2,\n includeRawChunks: options.includeRawChunks,\n serviceTier: headerServiceTier\n });\n return {\n stream: response.pipeThrough(transform),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n /*\n * Drive the streaming surface for agent calls. Agents require\n * `background: true`, which is incompatible with `stream: true` on POST.\n *\n * Approach:\n * 1. POST `/interactions` with `background: true`. The response includes\n * the interaction id and an initial (usually non-terminal) status.\n * 2. If the POST status is already terminal (rare), synthesize a stream\n * from the polled outputs and we're done.\n * 3. Otherwise open `GET /interactions/{id}?stream=true` and pipe the\n * SSE events through `buildGoogleInteractionsStreamTransform` so the\n * consumer receives text deltas / thinking summaries / tool events as\n * they happen instead of all at once at the end.\n *\n * The SSE connection can drop while the agent idles between events\n * (`UND_ERR_BODY_TIMEOUT`); `streamGoogleInteractionEvents` handles the\n * reconnect-with-`last_event_id` loop transparently.\n */\n async doStreamBackground({\n args,\n warnings,\n url,\n mergedHeaders,\n options,\n pollingTimeoutMs\n }) {\n var _a, _b;\n const postResult = await postJsonToApi5({\n url,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler6(\n googleInteractionsResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const { responseHeaders: postHeaders, value: postResponse } = postResult;\n const interactionId = postResponse.id;\n if (interactionId == null || interactionId.length === 0) {\n throw new Error(\n \"google.interactions: background POST response did not include an interaction id; cannot stream the result.\"\n );\n }\n const headerServiceTier = postHeaders == null ? void 0 : postHeaders[\"x-gemini-service-tier\"];\n if (isTerminalStatus(postResponse.status)) {\n const synthesized = synthesizeGoogleInteractionsAgentStream({\n response: postResponse,\n warnings,\n generateId: (_a = this.config.generateId) != null ? _a : defaultGenerateId2,\n includeRawChunks: options.includeRawChunks,\n headerServiceTier\n });\n return {\n stream: synthesized,\n request: { body: args },\n response: { headers: postHeaders }\n };\n }\n void pollingTimeoutMs;\n const events = streamGoogleInteractionEvents({\n baseURL: this.config.baseURL,\n interactionId,\n headers: mergedHeaders,\n fetch: this.config.fetch,\n abortSignal: options.abortSignal\n });\n const transform = buildGoogleInteractionsStreamTransform({\n warnings,\n generateId: (_b = this.config.generateId) != null ? _b : defaultGenerateId2,\n includeRawChunks: options.includeRawChunks,\n serviceTier: headerServiceTier\n });\n return {\n stream: events.pipeThrough(transform),\n request: { body: args },\n response: { headers: postHeaders }\n };\n }\n};\nfunction pruneUndefined(obj) {\n const result = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value === void 0) continue;\n result[key] = value;\n }\n return result;\n}\n\n// src/google-provider.ts\nfunction createGoogleGenerativeAI(options = {}) {\n var _a, _b;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://generativelanguage.googleapis.com/v1beta\";\n const providerName = (_b = options.name) != null ? _b : \"google.generative-ai\";\n const getHeaders = () => withUserAgentSuffix2(\n {\n \"x-goog-api-key\": loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GOOGLE_GENERATIVE_AI_API_KEY\",\n description: \"Google Generative AI\"\n }),\n ...options.headers\n },\n `ai-sdk/google/${VERSION}`\n );\n const createChatModel = (modelId) => {\n var _a2;\n return new GoogleGenerativeAILanguageModel(modelId, {\n provider: providerName,\n baseURL,\n headers: getHeaders,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n supportedUrls: () => ({\n \"*\": [\n // Google Generative Language \"files\" endpoint\n // e.g. https://generativelanguage.googleapis.com/v1beta/files/...\n new RegExp(`^${baseURL}/files/.*$`),\n // YouTube URLs (public or unlisted videos)\n new RegExp(\n `^https://(?:www\\\\.)?youtube\\\\.com/watch\\\\?v=[\\\\w-]+(?:&[\\\\w=&.-]*)?$`\n ),\n new RegExp(`^https://youtu\\\\.be/[\\\\w-]+(?:\\\\?[\\\\w=&.-]*)?$`)\n ]\n }),\n fetch: options.fetch\n });\n };\n const createEmbeddingModel = (modelId) => new GoogleGenerativeAIEmbeddingModel(modelId, {\n provider: providerName,\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createImageModel = (modelId, settings = {}) => new GoogleGenerativeAIImageModel(modelId, settings, {\n provider: providerName,\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createVideoModel = (modelId) => {\n var _a2;\n return new GoogleGenerativeAIVideoModel(modelId, {\n provider: providerName,\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId2\n });\n };\n const createInteractionsModel = (modelIdOrAgent) => {\n var _a2;\n return new GoogleInteractionsLanguageModel(\n modelIdOrAgent,\n {\n provider: `${providerName}.interactions`,\n baseURL,\n headers: getHeaders,\n generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n fetch: options.fetch\n }\n );\n };\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Google Generative AI model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.generativeAI = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.video = createVideoModel;\n provider.videoModel = createVideoModel;\n provider.interactions = createInteractionsModel;\n provider.tools = googleTools;\n return provider;\n}\nvar google = createGoogleGenerativeAI();\nexport {\n VERSION,\n createGoogleGenerativeAI,\n google\n};\n//# sourceMappingURL=index.mjs.map"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "D1D80B3F5862E26764756E2164756E21",
9
+ "names": []
10
+ }