@mastra/server 1.0.0-beta.11 → 1.0.0-beta.13

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 (150) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{chunk-GN2LFMET.cjs → chunk-4MNOLEZO.cjs} +22713 -18437
  3. package/dist/chunk-4MNOLEZO.cjs.map +1 -0
  4. package/dist/{chunk-ZN5R6OZB.cjs → chunk-4TDHAYN7.cjs} +18 -12
  5. package/dist/chunk-4TDHAYN7.cjs.map +1 -0
  6. package/dist/{chunk-7N3PD4SV.js → chunk-6V57U52D.js} +3 -3
  7. package/dist/{chunk-7N3PD4SV.js.map → chunk-6V57U52D.js.map} +1 -1
  8. package/dist/{chunk-WI3X62RJ.cjs → chunk-7KOS32XA.cjs} +175 -57
  9. package/dist/chunk-7KOS32XA.cjs.map +1 -0
  10. package/dist/chunk-AZIH2QEC.js +83 -0
  11. package/dist/chunk-AZIH2QEC.js.map +1 -0
  12. package/dist/{chunk-LPM6BBAX.cjs → chunk-BMLUV4BH.cjs} +2 -53
  13. package/dist/chunk-BMLUV4BH.cjs.map +1 -0
  14. package/dist/{chunk-X4QMPCTP.cjs → chunk-BMYZ4DO6.cjs} +12 -2
  15. package/dist/chunk-BMYZ4DO6.cjs.map +1 -0
  16. package/dist/{chunk-DHWPHLGF.cjs → chunk-BNGT3NIC.cjs} +14 -14
  17. package/dist/{chunk-DHWPHLGF.cjs.map → chunk-BNGT3NIC.cjs.map} +1 -1
  18. package/dist/{chunk-YP34EWWK.js → chunk-DVSCJECS.js} +11 -14
  19. package/dist/chunk-DVSCJECS.js.map +1 -0
  20. package/dist/{chunk-4W2SM6CG.js → chunk-DW3WE4M4.js} +14 -58
  21. package/dist/chunk-DW3WE4M4.js.map +1 -0
  22. package/dist/{chunk-RQK4FQUD.js → chunk-E646Y4FQ.js} +3 -45
  23. package/dist/chunk-E646Y4FQ.js.map +1 -0
  24. package/dist/{chunk-CDRVS35Y.js → chunk-EEORY4VR.js} +22071 -17795
  25. package/dist/chunk-EEORY4VR.js.map +1 -0
  26. package/dist/chunk-EUBTCHQC.js +83 -0
  27. package/dist/chunk-EUBTCHQC.js.map +1 -0
  28. package/dist/chunk-FWSKVWS7.cjs +88 -0
  29. package/dist/chunk-FWSKVWS7.cjs.map +1 -0
  30. package/dist/{chunk-2PLXW4ZX.cjs → chunk-K73YS7YB.cjs} +74 -74
  31. package/dist/{chunk-2PLXW4ZX.cjs.map → chunk-K73YS7YB.cjs.map} +1 -1
  32. package/dist/{chunk-WE4USCF3.js → chunk-KPSSRYGH.js} +11 -3
  33. package/dist/{chunk-X4QMPCTP.cjs.map → chunk-KPSSRYGH.js.map} +1 -1
  34. package/dist/{chunk-V272B7RM.cjs → chunk-LKTCAPBD.cjs} +15 -18
  35. package/dist/chunk-LKTCAPBD.cjs.map +1 -0
  36. package/dist/{chunk-US6Y5RLR.cjs → chunk-LQSZ4FJJ.cjs} +21 -21
  37. package/dist/{chunk-US6Y5RLR.cjs.map → chunk-LQSZ4FJJ.cjs.map} +1 -1
  38. package/dist/{chunk-FPCGLPLJ.cjs → chunk-P3H4AZKI.cjs} +17 -62
  39. package/dist/chunk-P3H4AZKI.cjs.map +1 -0
  40. package/dist/chunk-Q7NPRJRV.cjs +88 -0
  41. package/dist/chunk-Q7NPRJRV.cjs.map +1 -0
  42. package/dist/{chunk-QNVYGEJ4.js → chunk-SRQY5IWD.js} +3 -3
  43. package/dist/{chunk-QNVYGEJ4.js.map → chunk-SRQY5IWD.js.map} +1 -1
  44. package/dist/{chunk-ZULZ2752.js → chunk-SV4AUWGY.js} +3 -3
  45. package/dist/{chunk-ZULZ2752.js.map → chunk-SV4AUWGY.js.map} +1 -1
  46. package/dist/{chunk-HFQGXVIE.js → chunk-UWRAKVAJ.js} +124 -7
  47. package/dist/chunk-UWRAKVAJ.js.map +1 -0
  48. package/dist/{chunk-K3ELPJS3.js → chunk-YD5BSLPJ.js} +13 -7
  49. package/dist/chunk-YD5BSLPJ.js.map +1 -0
  50. package/dist/dist-2J26LQO2.cjs +16 -0
  51. package/dist/{dist-P4MXBQ3U.cjs.map → dist-2J26LQO2.cjs.map} +1 -1
  52. package/dist/{dist-X7XR3M3Z.js → dist-4CMHRWC4.js} +3 -3
  53. package/dist/{dist-X7XR3M3Z.js.map → dist-4CMHRWC4.js.map} +1 -1
  54. package/dist/{dist-PQZUVLPC.js → dist-AEJONJSS.js} +3 -3
  55. package/dist/{dist-PQZUVLPC.js.map → dist-AEJONJSS.js.map} +1 -1
  56. package/dist/{dist-G2BYZJOC.cjs → dist-AF7EUPXA.cjs} +28 -28
  57. package/dist/{dist-G2BYZJOC.cjs.map → dist-AF7EUPXA.cjs.map} +1 -1
  58. package/dist/dist-MEN73GGI.js +3 -0
  59. package/dist/{dist-YREX2TJT.js.map → dist-MEN73GGI.js.map} +1 -1
  60. package/dist/{dist-FZYCV3VB.cjs → dist-NVXXJWBO.cjs} +26 -26
  61. package/dist/{dist-FZYCV3VB.cjs.map → dist-NVXXJWBO.cjs.map} +1 -1
  62. package/dist/{dist-RFMYFILX.cjs → dist-Q2ST4SUQ.cjs} +30 -30
  63. package/dist/{dist-RFMYFILX.cjs.map → dist-Q2ST4SUQ.cjs.map} +1 -1
  64. package/dist/{dist-XVBSOGFK.js → dist-TE7XRSWH.js} +3 -3
  65. package/dist/{dist-XVBSOGFK.js.map → dist-TE7XRSWH.js.map} +1 -1
  66. package/dist/{dist-R7WYX6LC.js → dist-VPYZNWNG.js} +3 -3
  67. package/dist/{dist-R7WYX6LC.js.map → dist-VPYZNWNG.js.map} +1 -1
  68. package/dist/{dist-4MVGNSRL.cjs → dist-Y5SYUVLY.cjs} +20 -20
  69. package/dist/{dist-4MVGNSRL.cjs.map → dist-Y5SYUVLY.cjs.map} +1 -1
  70. package/dist/server/handlers/agent-builder.cjs +19 -19
  71. package/dist/server/handlers/agent-builder.d.ts +15 -0
  72. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  73. package/dist/server/handlers/agent-builder.js +1 -1
  74. package/dist/server/handlers/agents.cjs +27 -23
  75. package/dist/server/handlers/agents.d.ts +21 -1
  76. package/dist/server/handlers/agents.d.ts.map +1 -1
  77. package/dist/server/handlers/agents.js +1 -1
  78. package/dist/server/handlers/tools.cjs +6 -6
  79. package/dist/server/handlers/tools.js +1 -1
  80. package/dist/server/handlers/voice.cjs +8 -8
  81. package/dist/server/handlers/voice.js +1 -1
  82. package/dist/server/handlers/workflows.cjs +27 -27
  83. package/dist/server/handlers/workflows.d.ts +25 -1
  84. package/dist/server/handlers/workflows.d.ts.map +1 -1
  85. package/dist/server/handlers/workflows.js +1 -1
  86. package/dist/server/handlers.cjs +10 -10
  87. package/dist/server/handlers.js +5 -5
  88. package/dist/server/schemas/agent-builder.d.ts +9 -0
  89. package/dist/server/schemas/agent-builder.d.ts.map +1 -1
  90. package/dist/server/schemas/agents.d.ts +26 -0
  91. package/dist/server/schemas/agents.d.ts.map +1 -1
  92. package/dist/server/schemas/workflows.d.ts +23 -0
  93. package/dist/server/schemas/workflows.d.ts.map +1 -1
  94. package/dist/server/server-adapter/index.cjs +82 -78
  95. package/dist/server/server-adapter/index.cjs.map +1 -1
  96. package/dist/server/server-adapter/index.d.ts +3 -3
  97. package/dist/server/server-adapter/index.d.ts.map +1 -1
  98. package/dist/server/server-adapter/index.js +9 -5
  99. package/dist/server/server-adapter/index.js.map +1 -1
  100. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
  101. package/dist/server/server-adapter/routes/index.d.ts +2 -2
  102. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  103. package/dist/{token-VFONFWVS.cjs → token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs} +11 -12
  104. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs.map +1 -0
  105. package/dist/{token-JGA3ZWAN.js → token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js} +8 -8
  106. package/dist/token-6GSAFR2W-KVDFAJ2M-LNX5VF3I.js.map +1 -0
  107. package/dist/{token-ZOD6YIQ3.cjs → token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs} +11 -11
  108. package/dist/token-6GSAFR2W-KVDFAJ2M-SDYXODLX.cjs.map +1 -0
  109. package/dist/{token-GVZ7HRD7.js → token-6GSAFR2W-KVDFAJ2M-VW443KIA.js} +8 -9
  110. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js.map +1 -0
  111. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs +10 -0
  112. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs.map +1 -0
  113. package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js +8 -0
  114. package/dist/token-util-NEHG7TUY-DJYRKLRD-BSQMRUEW.js.map +1 -0
  115. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js +8 -0
  116. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js.map +1 -0
  117. package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs +10 -0
  118. package/dist/token-util-NEHG7TUY-DJYRKLRD-MFJRDVVF.cjs.map +1 -0
  119. package/package.json +4 -5
  120. package/dist/chunk-4W2SM6CG.js.map +0 -1
  121. package/dist/chunk-CDRVS35Y.js.map +0 -1
  122. package/dist/chunk-ER3QM7DD.js +0 -46
  123. package/dist/chunk-ER3QM7DD.js.map +0 -1
  124. package/dist/chunk-FPCGLPLJ.cjs.map +0 -1
  125. package/dist/chunk-GN2LFMET.cjs.map +0 -1
  126. package/dist/chunk-HFQGXVIE.js.map +0 -1
  127. package/dist/chunk-K3ELPJS3.js.map +0 -1
  128. package/dist/chunk-LPM6BBAX.cjs.map +0 -1
  129. package/dist/chunk-RQK4FQUD.js.map +0 -1
  130. package/dist/chunk-V272B7RM.cjs.map +0 -1
  131. package/dist/chunk-WE4USCF3.js.map +0 -1
  132. package/dist/chunk-WI3X62RJ.cjs.map +0 -1
  133. package/dist/chunk-XQPJ63ZD.cjs +0 -48
  134. package/dist/chunk-XQPJ63ZD.cjs.map +0 -1
  135. package/dist/chunk-YP34EWWK.js.map +0 -1
  136. package/dist/chunk-ZN5R6OZB.cjs.map +0 -1
  137. package/dist/dist-P4MXBQ3U.cjs +0 -16
  138. package/dist/dist-YREX2TJT.js +0 -3
  139. package/dist/token-GVZ7HRD7.js.map +0 -1
  140. package/dist/token-JGA3ZWAN.js.map +0 -1
  141. package/dist/token-VFONFWVS.cjs.map +0 -1
  142. package/dist/token-ZOD6YIQ3.cjs.map +0 -1
  143. package/dist/token-util-7R2ZFIXO.js +0 -7
  144. package/dist/token-util-7R2ZFIXO.js.map +0 -1
  145. package/dist/token-util-BLJZJDBZ.cjs +0 -9
  146. package/dist/token-util-BLJZJDBZ.cjs.map +0 -1
  147. package/dist/token-util-VGZUWSNR.cjs +0 -9
  148. package/dist/token-util-VGZUWSNR.cjs.map +0 -1
  149. package/dist/token-util-VKTPZLSE.js +0 -7
  150. package/dist/token-util-VKTPZLSE.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/convert-json-schema-to-openapi-schema.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/convert-to-google-generative-ai-messages.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/get-model-path.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-error.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-prepare-tools.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/map-google-generative-ai-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-generative-ai-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-generative-ai-embedding-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-supported-file-url.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-provider.ts"],"names":["UnsupportedFunctionalityError","generateId","z","combineHeaders","resolve","postJsonToApi","createJsonResponseHandler","_a"],"mappings":"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","file":"dist-PQZUVLPC.js","sourcesContent":["import { JSONSchema7Definition } from '@ai-sdk/provider';\n\n/**\n * Converts JSON Schema 7 to OpenAPI Schema 3.0\n */\nexport function convertJSONSchemaToOpenAPISchema(\n jsonSchema: JSONSchema7Definition,\n): unknown {\n // parameters need to be undefined if they are empty objects:\n if (isEmptyObjectSchema(jsonSchema)) {\n return undefined;\n }\n\n if (typeof jsonSchema === 'boolean') {\n return { type: 'boolean', properties: {} };\n }\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\n const result: Record<string, unknown> = {};\n\n if (description) result.description = description;\n if (required) result.required = required;\n if (format) result.format = format;\n\n if (constValue !== undefined) {\n result.enum = [constValue];\n }\n\n // Handle type\n if (type) {\n if (Array.isArray(type)) {\n if (type.includes('null')) {\n result.type = type.filter(t => t !== 'null')[0];\n result.nullable = true;\n } else {\n result.type = type;\n }\n } else if (type === 'null') {\n result.type = 'null';\n } else {\n result.type = type;\n }\n }\n\n // Handle enum\n if (enumValues !== undefined) {\n result.enum = enumValues;\n }\n\n if (properties != null) {\n result.properties = Object.entries(properties).reduce(\n (acc, [key, value]) => {\n acc[key] = convertJSONSchemaToOpenAPISchema(value);\n return acc;\n },\n {} as Record<string, unknown>,\n );\n }\n\n if (items) {\n result.items = Array.isArray(items)\n ? items.map(convertJSONSchemaToOpenAPISchema)\n : convertJSONSchemaToOpenAPISchema(items);\n }\n\n if (allOf) {\n result.allOf = allOf.map(convertJSONSchemaToOpenAPISchema);\n }\n if (anyOf) {\n // Handle cases where anyOf includes a null type\n if (\n anyOf.some(\n schema => typeof schema === 'object' && schema?.type === 'null',\n )\n ) {\n const nonNullSchemas = anyOf.filter(\n schema => !(typeof schema === 'object' && schema?.type === 'null'),\n );\n\n if (nonNullSchemas.length === 1) {\n // If there's only one non-null schema, convert it and make it nullable\n const converted = convertJSONSchemaToOpenAPISchema(nonNullSchemas[0]);\n if (typeof converted === 'object') {\n result.nullable = true;\n Object.assign(result, converted);\n }\n } else {\n // If there are multiple non-null schemas, keep them in anyOf\n result.anyOf = nonNullSchemas.map(convertJSONSchemaToOpenAPISchema);\n result.nullable = true;\n }\n } else {\n result.anyOf = anyOf.map(convertJSONSchemaToOpenAPISchema);\n }\n }\n if (oneOf) {\n result.oneOf = oneOf.map(convertJSONSchemaToOpenAPISchema);\n }\n\n if (minLength !== undefined) {\n result.minLength = minLength;\n }\n\n return result;\n}\n\nfunction isEmptyObjectSchema(jsonSchema: JSONSchema7Definition): boolean {\n return (\n jsonSchema != null &&\n typeof jsonSchema === 'object' &&\n jsonSchema.type === 'object' &&\n (jsonSchema.properties == null ||\n Object.keys(jsonSchema.properties).length === 0) &&\n !jsonSchema.additionalProperties\n );\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport {\n GoogleGenerativeAIContent,\n GoogleGenerativeAIContentPart,\n GoogleGenerativeAIPrompt,\n} from './google-generative-ai-prompt';\n\nexport function convertToGoogleGenerativeAIMessages(\n prompt: LanguageModelV1Prompt,\n): GoogleGenerativeAIPrompt {\n const systemInstructionParts: Array<{ text: string }> = [];\n const contents: Array<GoogleGenerativeAIContent> = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'system messages are only supported at the beginning of the conversation',\n });\n }\n\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: GoogleGenerativeAIContentPart[] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n parts.push(\n part.image instanceof URL\n ? {\n fileData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n fileUri: part.image.toString(),\n },\n }\n : {\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n },\n );\n\n break;\n }\n\n case 'file': {\n parts.push(\n part.data instanceof URL\n ? {\n fileData: {\n mimeType: part.mimeType,\n fileUri: part.data.toString(),\n },\n }\n : {\n inlineData: {\n mimeType: part.mimeType,\n data: part.data,\n },\n },\n );\n\n break;\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'model',\n parts: content\n .map(part => {\n switch (part.type) {\n case 'text': {\n return part.text.length === 0\n ? undefined\n : { text: part.text };\n }\n\n case 'file': {\n if (part.mimeType !== 'image/png') {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Only PNG images are supported in assistant messages',\n });\n }\n\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'File data URLs in assistant messages are not supported',\n });\n }\n\n return {\n inlineData: {\n mimeType: part.mimeType,\n data: part.data,\n },\n };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args,\n },\n };\n }\n }\n })\n .filter(part => part !== undefined),\n });\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: part.result,\n },\n },\n })),\n });\n break;\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","export function getModelPath(modelId: string): string {\n return modelId.includes('/') ? modelId : `models/${modelId}`;\n}\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst googleErrorDataSchema = z.object({\n error: z.object({\n code: z.number().nullable(),\n message: z.string(),\n status: z.string(),\n }),\n});\n\nexport type GoogleErrorData = z.infer<typeof googleErrorDataSchema>;\n\nexport const googleFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: googleErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import {\n LanguageModelV1,\n LanguageModelV1CallWarning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport {\n DynamicRetrievalConfig,\n GoogleGenerativeAIModelId,\n} from './google-generative-ai-settings';\n\nexport function prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n useSearchGrounding: boolean,\n dynamicRetrievalConfig: DynamicRetrievalConfig | undefined,\n modelId: GoogleGenerativeAIModelId,\n): {\n tools:\n | undefined\n | {\n functionDeclarations: Array<{\n name: string;\n description: string | undefined;\n parameters: unknown;\n }>;\n }\n | {\n googleSearchRetrieval:\n | Record<string, never>\n | { dynamicRetrievalConfig: DynamicRetrievalConfig };\n }\n | { googleSearch: Record<string, never> };\n toolConfig:\n | undefined\n | {\n functionCallingConfig: {\n mode: 'AUTO' | 'NONE' | 'ANY';\n allowedFunctionNames?: string[];\n };\n };\n toolWarnings: LanguageModelV1CallWarning[];\n} {\n const tools = mode.tools?.length ? mode.tools : undefined;\n const toolWarnings: LanguageModelV1CallWarning[] = [];\n\n const isGemini2 = modelId.includes('gemini-2');\n const supportsDynamicRetrieval =\n modelId.includes('gemini-1.5-flash') && !modelId.includes('-8b');\n\n if (useSearchGrounding) {\n return {\n tools: isGemini2\n ? { googleSearch: {} }\n : {\n googleSearchRetrieval:\n !supportsDynamicRetrieval || !dynamicRetrievalConfig\n ? {}\n : { dynamicRetrievalConfig },\n },\n toolConfig: undefined,\n toolWarnings,\n };\n }\n\n if (tools == null) {\n return { tools: undefined, toolConfig: undefined, toolWarnings };\n }\n\n const functionDeclarations = [];\n for (const tool of tools) {\n if (tool.type === 'provider-defined') {\n toolWarnings.push({ type: 'unsupported-tool', tool });\n } else {\n functionDeclarations.push({\n name: tool.name,\n description: tool.description ?? '',\n parameters: convertJSONSchemaToOpenAPISchema(tool.parameters),\n });\n }\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice == null) {\n return {\n tools: { functionDeclarations },\n toolConfig: undefined,\n toolWarnings,\n };\n }\n\n const type = toolChoice.type;\n\n switch (type) {\n case 'auto':\n return {\n tools: { functionDeclarations },\n toolConfig: { functionCallingConfig: { mode: 'AUTO' } },\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: { functionCallingConfig: { mode: 'ANY' } },\n toolWarnings,\n };\n case 'tool':\n return {\n tools: { functionDeclarations },\n toolConfig: {\n functionCallingConfig: {\n mode: 'ANY',\n allowedFunctionNames: [toolChoice.toolName],\n },\n },\n toolWarnings,\n };\n default: {\n const _exhaustiveCheck: never = type;\n throw new UnsupportedFunctionalityError({\n functionality: `Unsupported tool choice type: ${_exhaustiveCheck}`,\n });\n }\n }\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\n\nexport function mapGoogleGenerativeAIFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: string | null | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\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 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n return 'other';\n case 'MALFORMED_FUNCTION_CALL':\n return 'error';\n default:\n return 'unknown';\n }\n}\n","import {\n LanguageModelV1,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1ProviderMetadata,\n LanguageModelV1Source,\n LanguageModelV1StreamPart,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n ParseResult,\n Resolvable,\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport { convertToGoogleGenerativeAIMessages } from './convert-to-google-generative-ai-messages';\nimport { getModelPath } from './get-model-path';\nimport { googleFailedResponseHandler } from './google-error';\nimport { GoogleGenerativeAIContentPart } from './google-generative-ai-prompt';\nimport {\n GoogleGenerativeAIModelId,\n InternalGoogleGenerativeAISettings,\n} from './google-generative-ai-settings';\nimport { prepareTools } from './google-prepare-tools';\nimport { mapGoogleGenerativeAIFinishReason } from './map-google-generative-ai-finish-reason';\n\ntype GoogleGenerativeAIConfig = {\n provider: string;\n baseURL: string;\n headers: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n generateId: () => string;\n isSupportedUrl: (url: URL) => boolean;\n};\n\nexport class GoogleGenerativeAILanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly defaultObjectGenerationMode = 'json';\n readonly supportsImageUrls = false;\n\n get supportsStructuredOutputs() {\n return this.settings.structuredOutputs ?? true;\n }\n\n readonly modelId: GoogleGenerativeAIModelId;\n readonly settings: InternalGoogleGenerativeAISettings;\n\n private readonly config: GoogleGenerativeAIConfig;\n\n constructor(\n modelId: GoogleGenerativeAIModelId,\n settings: InternalGoogleGenerativeAISettings,\n config: GoogleGenerativeAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerMetadata,\n }: Parameters<LanguageModelV1['doGenerate']>[0]) {\n const type = mode.type;\n\n const warnings: LanguageModelV1CallWarning[] = [];\n\n const googleOptions = parseProviderOptions({\n provider: 'google',\n providerOptions: providerMetadata,\n schema: googleGenerativeAIProviderOptionsSchema,\n });\n\n // Add warning if includeThoughts is used with a non-Vertex Google provider\n if (\n googleOptions?.thinkingConfig?.includeThoughts === true &&\n !this.config.provider.startsWith('google.vertex.')\n ) {\n warnings.push({\n type: 'other',\n message:\n \"The 'includeThoughts' option is only supported with the Google Vertex provider \" +\n 'and might not be supported or could behave unexpectedly with the current Google provider ' +\n `(${this.config.provider}).`,\n });\n }\n\n const generationConfig = {\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topK,\n topP,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n\n // response format:\n responseMimeType:\n responseFormat?.type === 'json' ? 'application/json' : undefined,\n responseSchema:\n responseFormat?.type === 'json' &&\n responseFormat.schema != null &&\n // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n this.supportsStructuredOutputs\n ? convertJSONSchemaToOpenAPISchema(responseFormat.schema)\n : undefined,\n ...(this.settings.audioTimestamp && {\n audioTimestamp: this.settings.audioTimestamp,\n }),\n\n // provider options:\n responseModalities: googleOptions?.responseModalities,\n thinkingConfig: googleOptions?.thinkingConfig,\n };\n\n const { contents, systemInstruction } =\n convertToGoogleGenerativeAIMessages(prompt);\n\n switch (type) {\n case 'regular': {\n const { tools, toolConfig, toolWarnings } = prepareTools(\n mode,\n this.settings.useSearchGrounding ?? false,\n this.settings.dynamicRetrievalConfig,\n this.modelId,\n );\n\n return {\n args: {\n generationConfig,\n contents,\n systemInstruction,\n safetySettings: this.settings.safetySettings,\n tools,\n toolConfig,\n cachedContent: this.settings.cachedContent,\n },\n warnings: [...warnings, ...toolWarnings],\n };\n }\n\n case 'object-json': {\n return {\n args: {\n generationConfig: {\n ...generationConfig,\n responseMimeType: 'application/json',\n responseSchema:\n mode.schema != null &&\n // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n this.supportsStructuredOutputs\n ? convertJSONSchemaToOpenAPISchema(mode.schema)\n : undefined,\n },\n contents,\n systemInstruction,\n safetySettings: this.settings.safetySettings,\n cachedContent: this.settings.cachedContent,\n },\n warnings,\n };\n }\n\n case 'object-tool': {\n return {\n args: {\n generationConfig,\n contents,\n systemInstruction,\n tools: {\n functionDeclarations: [\n {\n name: mode.tool.name,\n description: mode.tool.description ?? '',\n parameters: convertJSONSchemaToOpenAPISchema(\n mode.tool.parameters,\n ),\n },\n ],\n },\n toolConfig: { functionCallingConfig: { mode: 'ANY' } },\n safetySettings: this.settings.safetySettings,\n cachedContent: this.settings.cachedContent,\n },\n warnings,\n };\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n supportsUrl(url: URL): boolean {\n return this.config.isSupportedUrl(url);\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { args, warnings } = await this.getArgs(options);\n const body = JSON.stringify(args);\n\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n );\n\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId,\n )}:generateContent`,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(responseSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { contents: rawPrompt, ...rawSettings } = args;\n const candidate = response.candidates[0];\n\n const parts =\n candidate.content == null ||\n typeof candidate.content !== 'object' ||\n !('parts' in candidate.content)\n ? []\n : candidate.content.parts;\n\n const toolCalls = getToolCallsFromParts({\n parts: parts, // Use candidateParts\n generateId: this.config.generateId,\n });\n\n const usageMetadata = response.usageMetadata;\n\n return {\n text: getTextFromParts(parts),\n reasoning: getReasoningDetailsFromParts(parts),\n files: getInlineDataParts(parts)?.map(part => ({\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n })),\n toolCalls,\n finishReason: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: { rawPrompt, rawSettings },\n rawResponse: { headers: responseHeaders, body: rawResponse },\n warnings,\n providerMetadata: {\n google: {\n groundingMetadata: candidate.groundingMetadata ?? null,\n safetyRatings: candidate.safetyRatings ?? null,\n },\n },\n sources: extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: this.config.generateId,\n }),\n request: { body },\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { args, warnings } = await this.getArgs(options);\n\n const body = JSON.stringify(args);\n const headers = combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n );\n\n const { responseHeaders, value: response } = await postJsonToApi({\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\n const { contents: rawPrompt, ...rawSettings } = args;\n\n let finishReason: LanguageModelV1FinishReason = 'unknown';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n let providerMetadata: LanguageModelV1ProviderMetadata | undefined =\n undefined;\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<z.infer<typeof chunkSchema>>,\n LanguageModelV1StreamPart\n >({\n transform(chunk, controller) {\n if (!chunk.success) {\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n\n const value = chunk.value;\n\n const usageMetadata = value.usageMetadata;\n\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = value.candidates?.[0];\n\n // sometimes the API returns an empty candidates array\n if (candidate == null) {\n return;\n }\n\n const content = candidate.content;\n\n // Process tool call's parts before determining finishReason to ensure hasToolCalls is properly set\n if (content != null) {\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const reasoningDeltaText = getReasoningDetailsFromParts(\n content.parts,\n );\n if (reasoningDeltaText != null) {\n for (const part of reasoningDeltaText) {\n controller.enqueue({\n type: 'reasoning',\n textDelta: part.text,\n });\n }\n }\n\n const inlineDataParts = getInlineDataParts(content.parts);\n if (inlineDataParts != null) {\n for (const part of inlineDataParts) {\n controller.enqueue({\n type: 'file',\n mimeType: part.inlineData.mimeType,\n data: part.inlineData.data,\n });\n }\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n\n const sources =\n extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId,\n }) ?? [];\n\n for (const source of sources) {\n controller.enqueue({ type: 'source', source });\n }\n\n providerMetadata = {\n google: {\n groundingMetadata: candidate.groundingMetadata ?? null,\n safetyRatings: candidate.safetyRatings ?? null,\n },\n };\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n providerMetadata,\n });\n },\n }),\n ),\n rawCall: { rawPrompt, rawSettings },\n rawResponse: { headers: responseHeaders },\n warnings,\n request: { body },\n };\n }\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: z.infer<typeof contentSchema>['parts'];\n generateId: () => string;\n}) {\n const functionCallParts = parts?.filter(\n part => 'functionCall' in part,\n ) as Array<\n GoogleGenerativeAIContentPart & {\n functionCall: { name: string; args: unknown };\n }\n >;\n\n return functionCallParts == null || functionCallParts.length === 0\n ? undefined\n : functionCallParts.map(part => ({\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n }));\n}\n\nfunction getTextFromParts(parts: z.infer<typeof contentSchema>['parts']) {\n const textParts = parts?.filter(\n part => 'text' in part && (part as any).thought !== true, // Exclude thought parts\n ) as Array<GoogleGenerativeAIContentPart & { text: string }>;\n\n return textParts == null || textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n\nfunction getReasoningDetailsFromParts(\n parts: z.infer<typeof contentSchema>['parts'],\n): Array<{ type: 'text'; text: string }> | undefined {\n const reasoningParts = parts?.filter(\n part =>\n 'text' in part && (part as any).thought === true && part.text != null,\n ) as Array<\n GoogleGenerativeAIContentPart & { text: string; thought?: boolean }\n >;\n\n return reasoningParts == null || reasoningParts.length === 0\n ? undefined\n : reasoningParts.map(part => ({ type: 'text', text: part.text }));\n}\n\nfunction getInlineDataParts(parts: z.infer<typeof contentSchema>['parts']) {\n return parts?.filter(\n (\n part,\n ): part is {\n inlineData: { mimeType: string; data: string };\n } => 'inlineData' in part,\n );\n}\n\nfunction extractSources({\n groundingMetadata,\n generateId,\n}: {\n groundingMetadata: z.infer<typeof groundingMetadataSchema> | undefined | null;\n generateId: () => string;\n}): undefined | LanguageModelV1Source[] {\n return groundingMetadata?.groundingChunks\n ?.filter(\n (\n chunk,\n ): chunk is z.infer<typeof groundingChunkSchema> & {\n web: { uri: string; title?: string };\n } => chunk.web != null,\n )\n .map(chunk => ({\n sourceType: 'url',\n id: generateId(),\n url: chunk.web.uri,\n title: chunk.web.title,\n }));\n}\n\nconst contentSchema = z.object({\n parts: z\n .array(\n z.union([\n // note: order matters since text can be fully empty\n z.object({\n functionCall: z.object({\n name: z.string(),\n args: z.unknown(),\n }),\n }),\n z.object({\n inlineData: z.object({\n mimeType: z.string(),\n data: z.string(),\n }),\n }),\n z.object({\n text: z.string().nullish(),\n thought: z.boolean().nullish(),\n }),\n ]),\n )\n .nullish(),\n});\n\n// https://ai.google.dev/gemini-api/docs/grounding\n// https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/ground-gemini#ground-to-search\nconst groundingChunkSchema = z.object({\n web: z.object({ uri: z.string(), title: z.string() }).nullish(),\n retrievedContext: z.object({ uri: z.string(), title: z.string() }).nullish(),\n});\n\nexport const groundingMetadataSchema = z.object({\n webSearchQueries: z.array(z.string()).nullish(),\n retrievalQueries: z.array(z.string()).nullish(),\n searchEntryPoint: z.object({ renderedContent: z.string() }).nullish(),\n groundingChunks: z.array(groundingChunkSchema).nullish(),\n groundingSupports: z\n .array(\n z.object({\n segment: z.object({\n startIndex: z.number().nullish(),\n endIndex: z.number().nullish(),\n text: z.string().nullish(),\n }),\n segment_text: z.string().nullish(),\n groundingChunkIndices: z.array(z.number()).nullish(),\n supportChunkIndices: z.array(z.number()).nullish(),\n confidenceScores: z.array(z.number()).nullish(),\n confidenceScore: z.array(z.number()).nullish(),\n }),\n )\n .nullish(),\n retrievalMetadata: z\n .union([\n z.object({\n webDynamicRetrievalScore: z.number(),\n }),\n z.object({}),\n ])\n .nullish(),\n});\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters\nexport const safetyRatingSchema = z.object({\n category: z.string().nullish(),\n probability: z.string().nullish(),\n probabilityScore: z.number().nullish(),\n severity: z.string().nullish(),\n severityScore: z.number().nullish(),\n blocked: z.boolean().nullish(),\n});\n\nconst responseSchema = z.object({\n candidates: z.array(\n z.object({\n content: contentSchema.nullish().or(z.object({}).strict()),\n finishReason: z.string().nullish(),\n safetyRatings: z.array(safetyRatingSchema).nullish(),\n groundingMetadata: groundingMetadataSchema.nullish(),\n }),\n ),\n usageMetadata: z\n .object({\n promptTokenCount: z.number().nullish(),\n candidatesTokenCount: z.number().nullish(),\n totalTokenCount: z.number().nullish(),\n })\n .nullish(),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst chunkSchema = z.object({\n candidates: z\n .array(\n z.object({\n content: contentSchema.nullish(),\n finishReason: z.string().nullish(),\n safetyRatings: z.array(safetyRatingSchema).nullish(),\n groundingMetadata: groundingMetadataSchema.nullish(),\n }),\n )\n .nullish(),\n usageMetadata: z\n .object({\n promptTokenCount: z.number().nullish(),\n candidatesTokenCount: z.number().nullish(),\n totalTokenCount: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst googleGenerativeAIProviderOptionsSchema = z.object({\n responseModalities: z.array(z.enum(['TEXT', 'IMAGE'])).nullish(),\n thinkingConfig: z\n .object({\n thinkingBudget: z.number().nullish(),\n includeThoughts: z.boolean().nullish(),\n })\n .nullish(),\n});\nexport type GoogleGenerativeAIProviderOptions = z.infer<\n typeof googleGenerativeAIProviderOptionsSchema\n>;\n","import {\n EmbeddingModelV1,\n TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n FetchFunction,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { googleFailedResponseHandler } from './google-error';\nimport {\n GoogleGenerativeAIEmbeddingModelId,\n GoogleGenerativeAIEmbeddingSettings,\n} from './google-generative-ai-embedding-settings';\n\ntype GoogleGenerativeAIEmbeddingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class GoogleGenerativeAIEmbeddingModel\n implements EmbeddingModelV1<string>\n{\n readonly specificationVersion = 'v1';\n readonly modelId: GoogleGenerativeAIEmbeddingModelId;\n\n private readonly config: GoogleGenerativeAIEmbeddingConfig;\n private readonly settings: GoogleGenerativeAIEmbeddingSettings;\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxEmbeddingsPerCall(): number {\n return 2048;\n }\n\n get supportsParallelCalls(): boolean {\n return true;\n }\n\n constructor(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings: GoogleGenerativeAIEmbeddingSettings,\n config: GoogleGenerativeAIEmbeddingConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV1<string>['doEmbed']>>\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\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n headers,\n );\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n headers: mergedHeaders,\n body: {\n requests: values.map(value => ({\n model: `models/${this.modelId}`,\n content: { role: 'user', parts: [{ text: value }] },\n outputDimensionality: this.settings.outputDimensionality,\n taskType: this.settings.taskType,\n })),\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAITextEmbeddingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n embeddings: response.embeddings.map(item => item.values),\n usage: undefined,\n rawResponse: { headers: responseHeaders },\n };\n }\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst googleGenerativeAITextEmbeddingResponseSchema = z.object({\n embeddings: z.array(z.object({ values: z.array(z.number()) })),\n});\n","export function isSupportedFileUrl(url: URL): boolean {\n return url\n .toString()\n .startsWith('https://generativelanguage.googleapis.com/v1beta/files/');\n}\n","import {\n FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { GoogleGenerativeAILanguageModel } from './google-generative-ai-language-model';\nimport {\n GoogleGenerativeAIModelId,\n GoogleGenerativeAISettings,\n} from './google-generative-ai-settings';\nimport { GoogleGenerativeAIEmbeddingModel } from './google-generative-ai-embedding-model';\nimport {\n GoogleGenerativeAIEmbeddingModelId,\n GoogleGenerativeAIEmbeddingSettings,\n} from './google-generative-ai-embedding-settings';\nimport {\n EmbeddingModelV1,\n LanguageModelV1,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport { isSupportedFileUrl } from './google-supported-file-url';\n\nexport interface GoogleGenerativeAIProvider extends ProviderV1 {\n (\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n languageModel(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n chat(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n /**\n * @deprecated Use `chat()` instead.\n */\n generativeAI(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n /**\n@deprecated Use `textEmbeddingModel()` instead.\n */\n embedding(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n /**\n@deprecated Use `textEmbeddingModel()` instead.\n */\n textEmbedding(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n textEmbeddingModel(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n}\n\nexport interface GoogleGenerativeAIProviderSettings {\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://generativelanguage.googleapis.com/v1beta`.\n */\n baseURL?: string;\n\n /**\nAPI key that is being send using the `x-goog-api-key` header.\nIt defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string | undefined>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\nOptional function to generate a unique ID for each request.\n */\n generateId?: () => string;\n}\n\n/**\nCreate a Google Generative AI provider instance.\n */\nexport function createGoogleGenerativeAI(\n options: GoogleGenerativeAIProviderSettings = {},\n): GoogleGenerativeAIProvider {\n const baseURL =\n withoutTrailingSlash(options.baseURL) ??\n 'https://generativelanguage.googleapis.com/v1beta';\n\n const getHeaders = () => ({\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\n const createChatModel = (\n modelId: GoogleGenerativeAIModelId,\n settings: GoogleGenerativeAISettings = {},\n ) =>\n new GoogleGenerativeAILanguageModel(modelId, settings, {\n provider: 'google.generative-ai',\n baseURL,\n headers: getHeaders,\n generateId: options.generateId ?? generateId,\n isSupportedUrl: isSupportedFileUrl,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings: GoogleGenerativeAIEmbeddingSettings = {},\n ) =>\n new GoogleGenerativeAIEmbeddingModel(modelId, settings, {\n provider: 'google.generative-ai',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ) {\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\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.generativeAI = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n\n return provider;\n}\n\n/**\nDefault Google Generative AI provider instance.\n */\nexport const google = createGoogleGenerativeAI();\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/convert-json-schema-to-openapi-schema.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/convert-to-google-generative-ai-messages.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/get-model-path.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-error.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-prepare-tools.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/map-google-generative-ai-finish-reason.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-generative-ai-language-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-generative-ai-embedding-model.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-supported-file-url.ts","../../../node_modules/.pnpm/@ai-sdk+google@1.2.22_zod@3.25.76/node_modules/@ai-sdk/google/src/google-provider.ts"],"names":["UnsupportedFunctionalityError","generateId","z","combineHeaders","resolve","postJsonToApi","createJsonResponseHandler","_a"],"mappings":"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","file":"dist-AEJONJSS.js","sourcesContent":["import { JSONSchema7Definition } from '@ai-sdk/provider';\n\n/**\n * Converts JSON Schema 7 to OpenAPI Schema 3.0\n */\nexport function convertJSONSchemaToOpenAPISchema(\n jsonSchema: JSONSchema7Definition,\n): unknown {\n // parameters need to be undefined if they are empty objects:\n if (isEmptyObjectSchema(jsonSchema)) {\n return undefined;\n }\n\n if (typeof jsonSchema === 'boolean') {\n return { type: 'boolean', properties: {} };\n }\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\n const result: Record<string, unknown> = {};\n\n if (description) result.description = description;\n if (required) result.required = required;\n if (format) result.format = format;\n\n if (constValue !== undefined) {\n result.enum = [constValue];\n }\n\n // Handle type\n if (type) {\n if (Array.isArray(type)) {\n if (type.includes('null')) {\n result.type = type.filter(t => t !== 'null')[0];\n result.nullable = true;\n } else {\n result.type = type;\n }\n } else if (type === 'null') {\n result.type = 'null';\n } else {\n result.type = type;\n }\n }\n\n // Handle enum\n if (enumValues !== undefined) {\n result.enum = enumValues;\n }\n\n if (properties != null) {\n result.properties = Object.entries(properties).reduce(\n (acc, [key, value]) => {\n acc[key] = convertJSONSchemaToOpenAPISchema(value);\n return acc;\n },\n {} as Record<string, unknown>,\n );\n }\n\n if (items) {\n result.items = Array.isArray(items)\n ? items.map(convertJSONSchemaToOpenAPISchema)\n : convertJSONSchemaToOpenAPISchema(items);\n }\n\n if (allOf) {\n result.allOf = allOf.map(convertJSONSchemaToOpenAPISchema);\n }\n if (anyOf) {\n // Handle cases where anyOf includes a null type\n if (\n anyOf.some(\n schema => typeof schema === 'object' && schema?.type === 'null',\n )\n ) {\n const nonNullSchemas = anyOf.filter(\n schema => !(typeof schema === 'object' && schema?.type === 'null'),\n );\n\n if (nonNullSchemas.length === 1) {\n // If there's only one non-null schema, convert it and make it nullable\n const converted = convertJSONSchemaToOpenAPISchema(nonNullSchemas[0]);\n if (typeof converted === 'object') {\n result.nullable = true;\n Object.assign(result, converted);\n }\n } else {\n // If there are multiple non-null schemas, keep them in anyOf\n result.anyOf = nonNullSchemas.map(convertJSONSchemaToOpenAPISchema);\n result.nullable = true;\n }\n } else {\n result.anyOf = anyOf.map(convertJSONSchemaToOpenAPISchema);\n }\n }\n if (oneOf) {\n result.oneOf = oneOf.map(convertJSONSchemaToOpenAPISchema);\n }\n\n if (minLength !== undefined) {\n result.minLength = minLength;\n }\n\n return result;\n}\n\nfunction isEmptyObjectSchema(jsonSchema: JSONSchema7Definition): boolean {\n return (\n jsonSchema != null &&\n typeof jsonSchema === 'object' &&\n jsonSchema.type === 'object' &&\n (jsonSchema.properties == null ||\n Object.keys(jsonSchema.properties).length === 0) &&\n !jsonSchema.additionalProperties\n );\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport {\n GoogleGenerativeAIContent,\n GoogleGenerativeAIContentPart,\n GoogleGenerativeAIPrompt,\n} from './google-generative-ai-prompt';\n\nexport function convertToGoogleGenerativeAIMessages(\n prompt: LanguageModelV1Prompt,\n): GoogleGenerativeAIPrompt {\n const systemInstructionParts: Array<{ text: string }> = [];\n const contents: Array<GoogleGenerativeAIContent> = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'system messages are only supported at the beginning of the conversation',\n });\n }\n\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: GoogleGenerativeAIContentPart[] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n parts.push(\n part.image instanceof URL\n ? {\n fileData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n fileUri: part.image.toString(),\n },\n }\n : {\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n },\n );\n\n break;\n }\n\n case 'file': {\n parts.push(\n part.data instanceof URL\n ? {\n fileData: {\n mimeType: part.mimeType,\n fileUri: part.data.toString(),\n },\n }\n : {\n inlineData: {\n mimeType: part.mimeType,\n data: part.data,\n },\n },\n );\n\n break;\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'model',\n parts: content\n .map(part => {\n switch (part.type) {\n case 'text': {\n return part.text.length === 0\n ? undefined\n : { text: part.text };\n }\n\n case 'file': {\n if (part.mimeType !== 'image/png') {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Only PNG images are supported in assistant messages',\n });\n }\n\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'File data URLs in assistant messages are not supported',\n });\n }\n\n return {\n inlineData: {\n mimeType: part.mimeType,\n data: part.data,\n },\n };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args,\n },\n };\n }\n }\n })\n .filter(part => part !== undefined),\n });\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: {\n name: part.toolName,\n content: part.result,\n },\n },\n })),\n });\n break;\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","export function getModelPath(modelId: string): string {\n return modelId.includes('/') ? modelId : `models/${modelId}`;\n}\n","import { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nconst googleErrorDataSchema = z.object({\n error: z.object({\n code: z.number().nullable(),\n message: z.string(),\n status: z.string(),\n }),\n});\n\nexport type GoogleErrorData = z.infer<typeof googleErrorDataSchema>;\n\nexport const googleFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: googleErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n","import {\n LanguageModelV1,\n LanguageModelV1CallWarning,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport {\n DynamicRetrievalConfig,\n GoogleGenerativeAIModelId,\n} from './google-generative-ai-settings';\n\nexport function prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n useSearchGrounding: boolean,\n dynamicRetrievalConfig: DynamicRetrievalConfig | undefined,\n modelId: GoogleGenerativeAIModelId,\n): {\n tools:\n | undefined\n | {\n functionDeclarations: Array<{\n name: string;\n description: string | undefined;\n parameters: unknown;\n }>;\n }\n | {\n googleSearchRetrieval:\n | Record<string, never>\n | { dynamicRetrievalConfig: DynamicRetrievalConfig };\n }\n | { googleSearch: Record<string, never> };\n toolConfig:\n | undefined\n | {\n functionCallingConfig: {\n mode: 'AUTO' | 'NONE' | 'ANY';\n allowedFunctionNames?: string[];\n };\n };\n toolWarnings: LanguageModelV1CallWarning[];\n} {\n const tools = mode.tools?.length ? mode.tools : undefined;\n const toolWarnings: LanguageModelV1CallWarning[] = [];\n\n const isGemini2 = modelId.includes('gemini-2');\n const supportsDynamicRetrieval =\n modelId.includes('gemini-1.5-flash') && !modelId.includes('-8b');\n\n if (useSearchGrounding) {\n return {\n tools: isGemini2\n ? { googleSearch: {} }\n : {\n googleSearchRetrieval:\n !supportsDynamicRetrieval || !dynamicRetrievalConfig\n ? {}\n : { dynamicRetrievalConfig },\n },\n toolConfig: undefined,\n toolWarnings,\n };\n }\n\n if (tools == null) {\n return { tools: undefined, toolConfig: undefined, toolWarnings };\n }\n\n const functionDeclarations = [];\n for (const tool of tools) {\n if (tool.type === 'provider-defined') {\n toolWarnings.push({ type: 'unsupported-tool', tool });\n } else {\n functionDeclarations.push({\n name: tool.name,\n description: tool.description ?? '',\n parameters: convertJSONSchemaToOpenAPISchema(tool.parameters),\n });\n }\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice == null) {\n return {\n tools: { functionDeclarations },\n toolConfig: undefined,\n toolWarnings,\n };\n }\n\n const type = toolChoice.type;\n\n switch (type) {\n case 'auto':\n return {\n tools: { functionDeclarations },\n toolConfig: { functionCallingConfig: { mode: 'AUTO' } },\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: { functionCallingConfig: { mode: 'ANY' } },\n toolWarnings,\n };\n case 'tool':\n return {\n tools: { functionDeclarations },\n toolConfig: {\n functionCallingConfig: {\n mode: 'ANY',\n allowedFunctionNames: [toolChoice.toolName],\n },\n },\n toolWarnings,\n };\n default: {\n const _exhaustiveCheck: never = type;\n throw new UnsupportedFunctionalityError({\n functionality: `Unsupported tool choice type: ${_exhaustiveCheck}`,\n });\n }\n }\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\n\nexport function mapGoogleGenerativeAIFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: string | null | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\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 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n return 'other';\n case 'MALFORMED_FUNCTION_CALL':\n return 'error';\n default:\n return 'unknown';\n }\n}\n","import {\n LanguageModelV1,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1ProviderMetadata,\n LanguageModelV1Source,\n LanguageModelV1StreamPart,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n ParseResult,\n Resolvable,\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { convertJSONSchemaToOpenAPISchema } from './convert-json-schema-to-openapi-schema';\nimport { convertToGoogleGenerativeAIMessages } from './convert-to-google-generative-ai-messages';\nimport { getModelPath } from './get-model-path';\nimport { googleFailedResponseHandler } from './google-error';\nimport { GoogleGenerativeAIContentPart } from './google-generative-ai-prompt';\nimport {\n GoogleGenerativeAIModelId,\n InternalGoogleGenerativeAISettings,\n} from './google-generative-ai-settings';\nimport { prepareTools } from './google-prepare-tools';\nimport { mapGoogleGenerativeAIFinishReason } from './map-google-generative-ai-finish-reason';\n\ntype GoogleGenerativeAIConfig = {\n provider: string;\n baseURL: string;\n headers: Resolvable<Record<string, string | undefined>>;\n fetch?: FetchFunction;\n generateId: () => string;\n isSupportedUrl: (url: URL) => boolean;\n};\n\nexport class GoogleGenerativeAILanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly defaultObjectGenerationMode = 'json';\n readonly supportsImageUrls = false;\n\n get supportsStructuredOutputs() {\n return this.settings.structuredOutputs ?? true;\n }\n\n readonly modelId: GoogleGenerativeAIModelId;\n readonly settings: InternalGoogleGenerativeAISettings;\n\n private readonly config: GoogleGenerativeAIConfig;\n\n constructor(\n modelId: GoogleGenerativeAIModelId,\n settings: InternalGoogleGenerativeAISettings,\n config: GoogleGenerativeAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerMetadata,\n }: Parameters<LanguageModelV1['doGenerate']>[0]) {\n const type = mode.type;\n\n const warnings: LanguageModelV1CallWarning[] = [];\n\n const googleOptions = parseProviderOptions({\n provider: 'google',\n providerOptions: providerMetadata,\n schema: googleGenerativeAIProviderOptionsSchema,\n });\n\n // Add warning if includeThoughts is used with a non-Vertex Google provider\n if (\n googleOptions?.thinkingConfig?.includeThoughts === true &&\n !this.config.provider.startsWith('google.vertex.')\n ) {\n warnings.push({\n type: 'other',\n message:\n \"The 'includeThoughts' option is only supported with the Google Vertex provider \" +\n 'and might not be supported or could behave unexpectedly with the current Google provider ' +\n `(${this.config.provider}).`,\n });\n }\n\n const generationConfig = {\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topK,\n topP,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n\n // response format:\n responseMimeType:\n responseFormat?.type === 'json' ? 'application/json' : undefined,\n responseSchema:\n responseFormat?.type === 'json' &&\n responseFormat.schema != null &&\n // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n this.supportsStructuredOutputs\n ? convertJSONSchemaToOpenAPISchema(responseFormat.schema)\n : undefined,\n ...(this.settings.audioTimestamp && {\n audioTimestamp: this.settings.audioTimestamp,\n }),\n\n // provider options:\n responseModalities: googleOptions?.responseModalities,\n thinkingConfig: googleOptions?.thinkingConfig,\n };\n\n const { contents, systemInstruction } =\n convertToGoogleGenerativeAIMessages(prompt);\n\n switch (type) {\n case 'regular': {\n const { tools, toolConfig, toolWarnings } = prepareTools(\n mode,\n this.settings.useSearchGrounding ?? false,\n this.settings.dynamicRetrievalConfig,\n this.modelId,\n );\n\n return {\n args: {\n generationConfig,\n contents,\n systemInstruction,\n safetySettings: this.settings.safetySettings,\n tools,\n toolConfig,\n cachedContent: this.settings.cachedContent,\n },\n warnings: [...warnings, ...toolWarnings],\n };\n }\n\n case 'object-json': {\n return {\n args: {\n generationConfig: {\n ...generationConfig,\n responseMimeType: 'application/json',\n responseSchema:\n mode.schema != null &&\n // Google GenAI does not support all OpenAPI Schema features,\n // so this is needed as an escape hatch:\n this.supportsStructuredOutputs\n ? convertJSONSchemaToOpenAPISchema(mode.schema)\n : undefined,\n },\n contents,\n systemInstruction,\n safetySettings: this.settings.safetySettings,\n cachedContent: this.settings.cachedContent,\n },\n warnings,\n };\n }\n\n case 'object-tool': {\n return {\n args: {\n generationConfig,\n contents,\n systemInstruction,\n tools: {\n functionDeclarations: [\n {\n name: mode.tool.name,\n description: mode.tool.description ?? '',\n parameters: convertJSONSchemaToOpenAPISchema(\n mode.tool.parameters,\n ),\n },\n ],\n },\n toolConfig: { functionCallingConfig: { mode: 'ANY' } },\n safetySettings: this.settings.safetySettings,\n cachedContent: this.settings.cachedContent,\n },\n warnings,\n };\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n supportsUrl(url: URL): boolean {\n return this.config.isSupportedUrl(url);\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { args, warnings } = await this.getArgs(options);\n const body = JSON.stringify(args);\n\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n );\n\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: `${this.config.baseURL}/${getModelPath(\n this.modelId,\n )}:generateContent`,\n headers: mergedHeaders,\n body: args,\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(responseSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { contents: rawPrompt, ...rawSettings } = args;\n const candidate = response.candidates[0];\n\n const parts =\n candidate.content == null ||\n typeof candidate.content !== 'object' ||\n !('parts' in candidate.content)\n ? []\n : candidate.content.parts;\n\n const toolCalls = getToolCallsFromParts({\n parts: parts, // Use candidateParts\n generateId: this.config.generateId,\n });\n\n const usageMetadata = response.usageMetadata;\n\n return {\n text: getTextFromParts(parts),\n reasoning: getReasoningDetailsFromParts(parts),\n files: getInlineDataParts(parts)?.map(part => ({\n data: part.inlineData.data,\n mimeType: part.inlineData.mimeType,\n })),\n toolCalls,\n finishReason: mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: { rawPrompt, rawSettings },\n rawResponse: { headers: responseHeaders, body: rawResponse },\n warnings,\n providerMetadata: {\n google: {\n groundingMetadata: candidate.groundingMetadata ?? null,\n safetyRatings: candidate.safetyRatings ?? null,\n },\n },\n sources: extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId: this.config.generateId,\n }),\n request: { body },\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { args, warnings } = await this.getArgs(options);\n\n const body = JSON.stringify(args);\n const headers = combineHeaders(\n await resolve(this.config.headers),\n options.headers,\n );\n\n const { responseHeaders, value: response } = await postJsonToApi({\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\n const { contents: rawPrompt, ...rawSettings } = args;\n\n let finishReason: LanguageModelV1FinishReason = 'unknown';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n let providerMetadata: LanguageModelV1ProviderMetadata | undefined =\n undefined;\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<z.infer<typeof chunkSchema>>,\n LanguageModelV1StreamPart\n >({\n transform(chunk, controller) {\n if (!chunk.success) {\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n\n const value = chunk.value;\n\n const usageMetadata = value.usageMetadata;\n\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = value.candidates?.[0];\n\n // sometimes the API returns an empty candidates array\n if (candidate == null) {\n return;\n }\n\n const content = candidate.content;\n\n // Process tool call's parts before determining finishReason to ensure hasToolCalls is properly set\n if (content != null) {\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const reasoningDeltaText = getReasoningDetailsFromParts(\n content.parts,\n );\n if (reasoningDeltaText != null) {\n for (const part of reasoningDeltaText) {\n controller.enqueue({\n type: 'reasoning',\n textDelta: part.text,\n });\n }\n }\n\n const inlineDataParts = getInlineDataParts(content.parts);\n if (inlineDataParts != null) {\n for (const part of inlineDataParts) {\n controller.enqueue({\n type: 'file',\n mimeType: part.inlineData.mimeType,\n data: part.inlineData.data,\n });\n }\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleGenerativeAIFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n\n const sources =\n extractSources({\n groundingMetadata: candidate.groundingMetadata,\n generateId,\n }) ?? [];\n\n for (const source of sources) {\n controller.enqueue({ type: 'source', source });\n }\n\n providerMetadata = {\n google: {\n groundingMetadata: candidate.groundingMetadata ?? null,\n safetyRatings: candidate.safetyRatings ?? null,\n },\n };\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n providerMetadata,\n });\n },\n }),\n ),\n rawCall: { rawPrompt, rawSettings },\n rawResponse: { headers: responseHeaders },\n warnings,\n request: { body },\n };\n }\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: z.infer<typeof contentSchema>['parts'];\n generateId: () => string;\n}) {\n const functionCallParts = parts?.filter(\n part => 'functionCall' in part,\n ) as Array<\n GoogleGenerativeAIContentPart & {\n functionCall: { name: string; args: unknown };\n }\n >;\n\n return functionCallParts == null || functionCallParts.length === 0\n ? undefined\n : functionCallParts.map(part => ({\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n }));\n}\n\nfunction getTextFromParts(parts: z.infer<typeof contentSchema>['parts']) {\n const textParts = parts?.filter(\n part => 'text' in part && (part as any).thought !== true, // Exclude thought parts\n ) as Array<GoogleGenerativeAIContentPart & { text: string }>;\n\n return textParts == null || textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n\nfunction getReasoningDetailsFromParts(\n parts: z.infer<typeof contentSchema>['parts'],\n): Array<{ type: 'text'; text: string }> | undefined {\n const reasoningParts = parts?.filter(\n part =>\n 'text' in part && (part as any).thought === true && part.text != null,\n ) as Array<\n GoogleGenerativeAIContentPart & { text: string; thought?: boolean }\n >;\n\n return reasoningParts == null || reasoningParts.length === 0\n ? undefined\n : reasoningParts.map(part => ({ type: 'text', text: part.text }));\n}\n\nfunction getInlineDataParts(parts: z.infer<typeof contentSchema>['parts']) {\n return parts?.filter(\n (\n part,\n ): part is {\n inlineData: { mimeType: string; data: string };\n } => 'inlineData' in part,\n );\n}\n\nfunction extractSources({\n groundingMetadata,\n generateId,\n}: {\n groundingMetadata: z.infer<typeof groundingMetadataSchema> | undefined | null;\n generateId: () => string;\n}): undefined | LanguageModelV1Source[] {\n return groundingMetadata?.groundingChunks\n ?.filter(\n (\n chunk,\n ): chunk is z.infer<typeof groundingChunkSchema> & {\n web: { uri: string; title?: string };\n } => chunk.web != null,\n )\n .map(chunk => ({\n sourceType: 'url',\n id: generateId(),\n url: chunk.web.uri,\n title: chunk.web.title,\n }));\n}\n\nconst contentSchema = z.object({\n parts: z\n .array(\n z.union([\n // note: order matters since text can be fully empty\n z.object({\n functionCall: z.object({\n name: z.string(),\n args: z.unknown(),\n }),\n }),\n z.object({\n inlineData: z.object({\n mimeType: z.string(),\n data: z.string(),\n }),\n }),\n z.object({\n text: z.string().nullish(),\n thought: z.boolean().nullish(),\n }),\n ]),\n )\n .nullish(),\n});\n\n// https://ai.google.dev/gemini-api/docs/grounding\n// https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/ground-gemini#ground-to-search\nconst groundingChunkSchema = z.object({\n web: z.object({ uri: z.string(), title: z.string() }).nullish(),\n retrievedContext: z.object({ uri: z.string(), title: z.string() }).nullish(),\n});\n\nexport const groundingMetadataSchema = z.object({\n webSearchQueries: z.array(z.string()).nullish(),\n retrievalQueries: z.array(z.string()).nullish(),\n searchEntryPoint: z.object({ renderedContent: z.string() }).nullish(),\n groundingChunks: z.array(groundingChunkSchema).nullish(),\n groundingSupports: z\n .array(\n z.object({\n segment: z.object({\n startIndex: z.number().nullish(),\n endIndex: z.number().nullish(),\n text: z.string().nullish(),\n }),\n segment_text: z.string().nullish(),\n groundingChunkIndices: z.array(z.number()).nullish(),\n supportChunkIndices: z.array(z.number()).nullish(),\n confidenceScores: z.array(z.number()).nullish(),\n confidenceScore: z.array(z.number()).nullish(),\n }),\n )\n .nullish(),\n retrievalMetadata: z\n .union([\n z.object({\n webDynamicRetrievalScore: z.number(),\n }),\n z.object({}),\n ])\n .nullish(),\n});\n\n// https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters\nexport const safetyRatingSchema = z.object({\n category: z.string().nullish(),\n probability: z.string().nullish(),\n probabilityScore: z.number().nullish(),\n severity: z.string().nullish(),\n severityScore: z.number().nullish(),\n blocked: z.boolean().nullish(),\n});\n\nconst responseSchema = z.object({\n candidates: z.array(\n z.object({\n content: contentSchema.nullish().or(z.object({}).strict()),\n finishReason: z.string().nullish(),\n safetyRatings: z.array(safetyRatingSchema).nullish(),\n groundingMetadata: groundingMetadataSchema.nullish(),\n }),\n ),\n usageMetadata: z\n .object({\n promptTokenCount: z.number().nullish(),\n candidatesTokenCount: z.number().nullish(),\n totalTokenCount: z.number().nullish(),\n })\n .nullish(),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst chunkSchema = z.object({\n candidates: z\n .array(\n z.object({\n content: contentSchema.nullish(),\n finishReason: z.string().nullish(),\n safetyRatings: z.array(safetyRatingSchema).nullish(),\n groundingMetadata: groundingMetadataSchema.nullish(),\n }),\n )\n .nullish(),\n usageMetadata: z\n .object({\n promptTokenCount: z.number().nullish(),\n candidatesTokenCount: z.number().nullish(),\n totalTokenCount: z.number().nullish(),\n })\n .nullish(),\n});\n\nconst googleGenerativeAIProviderOptionsSchema = z.object({\n responseModalities: z.array(z.enum(['TEXT', 'IMAGE'])).nullish(),\n thinkingConfig: z\n .object({\n thinkingBudget: z.number().nullish(),\n includeThoughts: z.boolean().nullish(),\n })\n .nullish(),\n});\nexport type GoogleGenerativeAIProviderOptions = z.infer<\n typeof googleGenerativeAIProviderOptionsSchema\n>;\n","import {\n EmbeddingModelV1,\n TooManyEmbeddingValuesForCallError,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n FetchFunction,\n postJsonToApi,\n resolve,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { googleFailedResponseHandler } from './google-error';\nimport {\n GoogleGenerativeAIEmbeddingModelId,\n GoogleGenerativeAIEmbeddingSettings,\n} from './google-generative-ai-embedding-settings';\n\ntype GoogleGenerativeAIEmbeddingConfig = {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string | undefined>;\n fetch?: FetchFunction;\n};\n\nexport class GoogleGenerativeAIEmbeddingModel\n implements EmbeddingModelV1<string>\n{\n readonly specificationVersion = 'v1';\n readonly modelId: GoogleGenerativeAIEmbeddingModelId;\n\n private readonly config: GoogleGenerativeAIEmbeddingConfig;\n private readonly settings: GoogleGenerativeAIEmbeddingSettings;\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxEmbeddingsPerCall(): number {\n return 2048;\n }\n\n get supportsParallelCalls(): boolean {\n return true;\n }\n\n constructor(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings: GoogleGenerativeAIEmbeddingSettings,\n config: GoogleGenerativeAIEmbeddingConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<\n Awaited<ReturnType<EmbeddingModelV1<string>['doEmbed']>>\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\n const mergedHeaders = combineHeaders(\n await resolve(this.config.headers),\n headers,\n );\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n headers: mergedHeaders,\n body: {\n requests: values.map(value => ({\n model: `models/${this.modelId}`,\n content: { role: 'user', parts: [{ text: value }] },\n outputDimensionality: this.settings.outputDimensionality,\n taskType: this.settings.taskType,\n })),\n },\n failedResponseHandler: googleFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n googleGenerativeAITextEmbeddingResponseSchema,\n ),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n embeddings: response.embeddings.map(item => item.values),\n usage: undefined,\n rawResponse: { headers: responseHeaders },\n };\n }\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst googleGenerativeAITextEmbeddingResponseSchema = z.object({\n embeddings: z.array(z.object({ values: z.array(z.number()) })),\n});\n","export function isSupportedFileUrl(url: URL): boolean {\n return url\n .toString()\n .startsWith('https://generativelanguage.googleapis.com/v1beta/files/');\n}\n","import {\n FetchFunction,\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { GoogleGenerativeAILanguageModel } from './google-generative-ai-language-model';\nimport {\n GoogleGenerativeAIModelId,\n GoogleGenerativeAISettings,\n} from './google-generative-ai-settings';\nimport { GoogleGenerativeAIEmbeddingModel } from './google-generative-ai-embedding-model';\nimport {\n GoogleGenerativeAIEmbeddingModelId,\n GoogleGenerativeAIEmbeddingSettings,\n} from './google-generative-ai-embedding-settings';\nimport {\n EmbeddingModelV1,\n LanguageModelV1,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport { isSupportedFileUrl } from './google-supported-file-url';\n\nexport interface GoogleGenerativeAIProvider extends ProviderV1 {\n (\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n languageModel(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n chat(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n /**\n * @deprecated Use `chat()` instead.\n */\n generativeAI(\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ): LanguageModelV1;\n\n /**\n@deprecated Use `textEmbeddingModel()` instead.\n */\n embedding(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n /**\n@deprecated Use `textEmbeddingModel()` instead.\n */\n textEmbedding(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n textEmbeddingModel(\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings?: GoogleGenerativeAIEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n}\n\nexport interface GoogleGenerativeAIProviderSettings {\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers.\nThe default prefix is `https://generativelanguage.googleapis.com/v1beta`.\n */\n baseURL?: string;\n\n /**\nAPI key that is being send using the `x-goog-api-key` header.\nIt defaults to the `GOOGLE_GENERATIVE_AI_API_KEY` environment variable.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string | undefined>;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\nOptional function to generate a unique ID for each request.\n */\n generateId?: () => string;\n}\n\n/**\nCreate a Google Generative AI provider instance.\n */\nexport function createGoogleGenerativeAI(\n options: GoogleGenerativeAIProviderSettings = {},\n): GoogleGenerativeAIProvider {\n const baseURL =\n withoutTrailingSlash(options.baseURL) ??\n 'https://generativelanguage.googleapis.com/v1beta';\n\n const getHeaders = () => ({\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\n const createChatModel = (\n modelId: GoogleGenerativeAIModelId,\n settings: GoogleGenerativeAISettings = {},\n ) =>\n new GoogleGenerativeAILanguageModel(modelId, settings, {\n provider: 'google.generative-ai',\n baseURL,\n headers: getHeaders,\n generateId: options.generateId ?? generateId,\n isSupportedUrl: isSupportedFileUrl,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (\n modelId: GoogleGenerativeAIEmbeddingModelId,\n settings: GoogleGenerativeAIEmbeddingSettings = {},\n ) =>\n new GoogleGenerativeAIEmbeddingModel(modelId, settings, {\n provider: 'google.generative-ai',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (\n modelId: GoogleGenerativeAIModelId,\n settings?: GoogleGenerativeAISettings,\n ) {\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\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.generativeAI = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n\n return provider;\n}\n\n/**\nDefault Google Generative AI provider instance.\n */\nexport const google = createGoogleGenerativeAI();\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLPM6BBAX_cjs = require('./chunk-LPM6BBAX.cjs');
3
+ var chunkBMLUV4BH_cjs = require('./chunk-BMLUV4BH.cjs');
4
4
  var zod = require('zod');
5
5
 
6
6
  function getOpenAIMetadata(message) {
@@ -38,13 +38,13 @@ function convertToOpenAICompatibleChatMessages(prompt) {
38
38
  return {
39
39
  type: "image_url",
40
40
  image_url: {
41
- url: part.image instanceof URL ? part.image.toString() : `data:${(_a = part.mimeType) != null ? _a : "image/jpeg"};base64,${chunkLPM6BBAX_cjs.convertUint8ArrayToBase64(part.image)}`
41
+ url: part.image instanceof URL ? part.image.toString() : `data:${(_a = part.mimeType) != null ? _a : "image/jpeg"};base64,${chunkBMLUV4BH_cjs.convertUint8ArrayToBase64(part.image)}`
42
42
  },
43
43
  ...partMetadata
44
44
  };
45
45
  }
46
46
  case "file": {
47
- throw new chunkLPM6BBAX_cjs.UnsupportedFunctionalityError({
47
+ throw new chunkBMLUV4BH_cjs.UnsupportedFunctionalityError({
48
48
  functionality: "File content parts in user messages"
49
49
  });
50
50
  }
@@ -195,7 +195,7 @@ function prepareTools({
195
195
  };
196
196
  default: {
197
197
  const _exhaustiveCheck = type;
198
- throw new chunkLPM6BBAX_cjs.UnsupportedFunctionalityError({
198
+ throw new chunkBMLUV4BH_cjs.UnsupportedFunctionalityError({
199
199
  functionality: `Unsupported tool choice type: ${_exhaustiveCheck}`
200
200
  });
201
201
  }
@@ -213,7 +213,7 @@ var OpenAICompatibleChatLanguageModel = class {
213
213
  this.chunkSchema = createOpenAICompatibleChatChunkSchema(
214
214
  errorStructure.errorSchema
215
215
  );
216
- this.failedResponseHandler = chunkLPM6BBAX_cjs.createJsonErrorResponseHandler(errorStructure);
216
+ this.failedResponseHandler = chunkBMLUV4BH_cjs.createJsonErrorResponseHandler(errorStructure);
217
217
  this.supportsStructuredOutputs = (_b = config.supportsStructuredOutputs) != null ? _b : false;
218
218
  }
219
219
  get defaultObjectGenerationMode() {
@@ -344,15 +344,15 @@ var OpenAICompatibleChatLanguageModel = class {
344
344
  responseHeaders,
345
345
  value: responseBody,
346
346
  rawValue: rawResponse
347
- } = await chunkLPM6BBAX_cjs.postJsonToApi({
347
+ } = await chunkBMLUV4BH_cjs.postJsonToApi({
348
348
  url: this.config.url({
349
349
  path: "/chat/completions",
350
350
  modelId: this.modelId
351
351
  }),
352
- headers: chunkLPM6BBAX_cjs.combineHeaders(this.config.headers(), options.headers),
352
+ headers: chunkBMLUV4BH_cjs.combineHeaders(this.config.headers(), options.headers),
353
353
  body: args,
354
354
  failedResponseHandler: this.failedResponseHandler,
355
- successfulResponseHandler: chunkLPM6BBAX_cjs.createJsonResponseHandler(
355
+ successfulResponseHandler: chunkBMLUV4BH_cjs.createJsonResponseHandler(
356
356
  OpenAICompatibleChatResponseSchema
357
357
  ),
358
358
  abortSignal: options.abortSignal,
@@ -387,7 +387,7 @@ var OpenAICompatibleChatLanguageModel = class {
387
387
  var _a2;
388
388
  return {
389
389
  toolCallType: "function",
390
- toolCallId: (_a2 = toolCall.id) != null ? _a2 : chunkLPM6BBAX_cjs.generateId(),
390
+ toolCallId: (_a2 = toolCall.id) != null ? _a2 : chunkBMLUV4BH_cjs.generateId(),
391
391
  toolName: toolCall.function.name,
392
392
  args: toolCall.function.arguments
393
393
  };
@@ -468,15 +468,15 @@ var OpenAICompatibleChatLanguageModel = class {
468
468
  stream_options: this.config.includeUsage ? { include_usage: true } : void 0
469
469
  };
470
470
  const metadataExtractor = (_a = this.config.metadataExtractor) == null ? void 0 : _a.createStreamExtractor();
471
- const { responseHeaders, value: response } = await chunkLPM6BBAX_cjs.postJsonToApi({
471
+ const { responseHeaders, value: response } = await chunkBMLUV4BH_cjs.postJsonToApi({
472
472
  url: this.config.url({
473
473
  path: "/chat/completions",
474
474
  modelId: this.modelId
475
475
  }),
476
- headers: chunkLPM6BBAX_cjs.combineHeaders(this.config.headers(), options.headers),
476
+ headers: chunkBMLUV4BH_cjs.combineHeaders(this.config.headers(), options.headers),
477
477
  body,
478
478
  failedResponseHandler: this.failedResponseHandler,
479
- successfulResponseHandler: chunkLPM6BBAX_cjs.createEventSourceResponseHandler(
479
+ successfulResponseHandler: chunkBMLUV4BH_cjs.createEventSourceResponseHandler(
480
480
  this.chunkSchema
481
481
  ),
482
482
  abortSignal: options.abortSignal,
@@ -573,19 +573,19 @@ var OpenAICompatibleChatLanguageModel = class {
573
573
  const index = toolCallDelta.index;
574
574
  if (toolCalls[index] == null) {
575
575
  if (toolCallDelta.type !== "function") {
576
- throw new chunkLPM6BBAX_cjs.InvalidResponseDataError({
576
+ throw new chunkBMLUV4BH_cjs.InvalidResponseDataError({
577
577
  data: toolCallDelta,
578
578
  message: `Expected 'function' type.`
579
579
  });
580
580
  }
581
581
  if (toolCallDelta.id == null) {
582
- throw new chunkLPM6BBAX_cjs.InvalidResponseDataError({
582
+ throw new chunkBMLUV4BH_cjs.InvalidResponseDataError({
583
583
  data: toolCallDelta,
584
584
  message: `Expected 'id' to be a string.`
585
585
  });
586
586
  }
587
587
  if (((_a2 = toolCallDelta.function) == null ? void 0 : _a2.name) == null) {
588
- throw new chunkLPM6BBAX_cjs.InvalidResponseDataError({
588
+ throw new chunkBMLUV4BH_cjs.InvalidResponseDataError({
589
589
  data: toolCallDelta,
590
590
  message: `Expected 'function.name' to be a string.`
591
591
  });
@@ -610,11 +610,11 @@ var OpenAICompatibleChatLanguageModel = class {
610
610
  argsTextDelta: toolCall2.function.arguments
611
611
  });
612
612
  }
613
- if (chunkLPM6BBAX_cjs.isParsableJson(toolCall2.function.arguments)) {
613
+ if (chunkBMLUV4BH_cjs.isParsableJson(toolCall2.function.arguments)) {
614
614
  controller.enqueue({
615
615
  type: "tool-call",
616
616
  toolCallType: "function",
617
- toolCallId: (_e = toolCall2.id) != null ? _e : chunkLPM6BBAX_cjs.generateId(),
617
+ toolCallId: (_e = toolCall2.id) != null ? _e : chunkBMLUV4BH_cjs.generateId(),
618
618
  toolName: toolCall2.function.name,
619
619
  args: toolCall2.function.arguments
620
620
  });
@@ -637,11 +637,11 @@ var OpenAICompatibleChatLanguageModel = class {
637
637
  toolName: toolCall.function.name,
638
638
  argsTextDelta: (_i = toolCallDelta.function.arguments) != null ? _i : ""
639
639
  });
640
- if (((_j = toolCall.function) == null ? void 0 : _j.name) != null && ((_k = toolCall.function) == null ? void 0 : _k.arguments) != null && chunkLPM6BBAX_cjs.isParsableJson(toolCall.function.arguments)) {
640
+ if (((_j = toolCall.function) == null ? void 0 : _j.name) != null && ((_k = toolCall.function) == null ? void 0 : _k.arguments) != null && chunkBMLUV4BH_cjs.isParsableJson(toolCall.function.arguments)) {
641
641
  controller.enqueue({
642
642
  type: "tool-call",
643
643
  toolCallType: "function",
644
- toolCallId: (_l = toolCall.id) != null ? _l : chunkLPM6BBAX_cjs.generateId(),
644
+ toolCallId: (_l = toolCall.id) != null ? _l : chunkBMLUV4BH_cjs.generateId(),
645
645
  toolName: toolCall.function.name,
646
646
  args: toolCall.function.arguments
647
647
  });
@@ -811,12 +811,12 @@ var OpenAICompatibleImageModel = class {
811
811
  warnings.push({ type: "unsupported-setting", setting: "seed" });
812
812
  }
813
813
  const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
814
- const { value: response, responseHeaders } = await chunkLPM6BBAX_cjs.postJsonToApi({
814
+ const { value: response, responseHeaders } = await chunkBMLUV4BH_cjs.postJsonToApi({
815
815
  url: this.config.url({
816
816
  path: "/images/generations",
817
817
  modelId: this.modelId
818
818
  }),
819
- headers: chunkLPM6BBAX_cjs.combineHeaders(this.config.headers(), headers),
819
+ headers: chunkBMLUV4BH_cjs.combineHeaders(this.config.headers(), headers),
820
820
  body: {
821
821
  model: this.modelId,
822
822
  prompt,
@@ -826,10 +826,10 @@ var OpenAICompatibleImageModel = class {
826
826
  response_format: "b64_json",
827
827
  ...this.settings.user ? { user: this.settings.user } : {}
828
828
  },
829
- failedResponseHandler: chunkLPM6BBAX_cjs.createJsonErrorResponseHandler(
829
+ failedResponseHandler: chunkBMLUV4BH_cjs.createJsonErrorResponseHandler(
830
830
  (_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure
831
831
  ),
832
- successfulResponseHandler: chunkLPM6BBAX_cjs.createJsonResponseHandler(
832
+ successfulResponseHandler: chunkBMLUV4BH_cjs.createJsonResponseHandler(
833
833
  openaiCompatibleImageResponseSchema
834
834
  ),
835
835
  abortSignal,
@@ -877,11 +877,11 @@ var xaiErrorStructure = {
877
877
  };
878
878
  function createXai(options = {}) {
879
879
  var _a;
880
- const baseURL = chunkLPM6BBAX_cjs.withoutTrailingSlash(
880
+ const baseURL = chunkBMLUV4BH_cjs.withoutTrailingSlash(
881
881
  (_a = options.baseURL) != null ? _a : "https://api.x.ai/v1"
882
882
  );
883
883
  const getHeaders = () => ({
884
- Authorization: `Bearer ${chunkLPM6BBAX_cjs.loadApiKey({
884
+ Authorization: `Bearer ${chunkBMLUV4BH_cjs.loadApiKey({
885
885
  apiKey: options.apiKey,
886
886
  environmentVariableName: "XAI_API_KEY",
887
887
  description: "xAI API key"
@@ -914,7 +914,7 @@ function createXai(options = {}) {
914
914
  provider.languageModel = createLanguageModel;
915
915
  provider.chat = createLanguageModel;
916
916
  provider.textEmbeddingModel = (modelId) => {
917
- throw new chunkLPM6BBAX_cjs.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
917
+ throw new chunkBMLUV4BH_cjs.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
918
918
  };
919
919
  provider.imageModel = createImageModel;
920
920
  provider.image = createImageModel;
@@ -924,5 +924,5 @@ var xai = createXai();
924
924
 
925
925
  exports.createXai = createXai;
926
926
  exports.xai = xai;
927
- //# sourceMappingURL=dist-G2BYZJOC.cjs.map
928
- //# sourceMappingURL=dist-G2BYZJOC.cjs.map
927
+ //# sourceMappingURL=dist-AF7EUPXA.cjs.map
928
+ //# sourceMappingURL=dist-AF7EUPXA.cjs.map