{"version":3,"file":"dist-C4NOluIY.cjs","names":["marker","symbol","_a","_b","name","VERSION","getOriginalFetch","APICallError2","ZodFirstPartyTypeKind","ZodFirstPartyTypeKind2","ZodFirstPartyTypeKind3","z4","TypeValidationError2","TypeValidationError3","InvalidArgumentError2","APICallError3","APICallError4","z","_exhaustiveCheck","getResponseMetadata","z2","prepareTools","UnsupportedFunctionalityError2","z3","UnsupportedFunctionalityError3","getResponseMetadata2","z4","createJsonErrorResponseHandler2","parseProviderOptions2","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","createEventSourceResponseHandler2","usageSchema","z5","z6","parseProviderOptions3","postJsonToApi3","combineHeaders3","createJsonErrorResponseHandler3","createJsonResponseHandler3","openaiTextEmbeddingResponseSchema","z7","combineHeaders4","fileToBlob","createJsonErrorResponseHandler4","createJsonResponseHandler4","postJsonToApi4","z8","convertBase64ToUint8Array2","VERSION","z","_exhaustiveCheck","z2","lazySchema2","zodSchema2","z3","UnsupportedFunctionalityError2","UnsupportedFunctionalityError3","lazySchema3","zodSchema3","z4","lazySchema4","zodSchema4","z5","parseProviderOptions2","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","createEventSourceResponseHandler2","lazySchema5","zodSchema5","z6","lazySchema6","zodSchema6","z7","parseProviderOptions3","postJsonToApi3","combineHeaders3","createJsonResponseHandler3","lazySchema7","zodSchema7","z8","z9","lazySchema8","zodSchema8","parseProviderOptions4","combineHeaders4","createJsonResponseHandler4","postJsonToApi4","lazySchema9","zodSchema9","z10","lazySchema10","zodSchema10","z11","createProviderToolFactoryWithOutputSchema2","lazySchema11","zodSchema11","z12","z13","lazySchema12","zodSchema12","fileSearch","createProviderToolFactoryWithOutputSchema3","lazySchema13","zodSchema13","z14","createProviderToolFactoryWithOutputSchema4","lazySchema14","zodSchema14","z15","createProviderToolFactoryWithOutputSchema5","lazySchema15","zodSchema15","z16","createProviderToolFactoryWithOutputSchema6","lazySchema16","zodSchema16","z17","createProviderToolFactoryWithOutputSchema7","lazySchema17","zodSchema17","z18","createProviderToolFactoryWithOutputSchema8","lazySchema18","zodSchema18","z19","createProviderToolFactoryWithOutputSchema9","z20","lazySchema19","zodSchema19","createProviderToolFactoryWithOutputSchema10","convertToBase642","UnsupportedFunctionalityError4","parseProviderOptions5","z21","z22","lazySchema20","zodSchema20","lazySchema21","zodSchema21","z23","UnsupportedFunctionalityError5","validateTypes2","env2","env","parseProviderOptions6","postJsonToApi5","combineHeaders5","createJsonResponseHandler5","APICallError2","generateId2","createEventSourceResponseHandler3","lazySchema22","zodSchema22","z24","parseProviderOptions7","postJsonToApi6","combineHeaders6","lazySchema23","zodSchema23","z25","lazySchema24","zodSchema24","z26","parseProviderOptions8","convertBase64ToUint8Array2","postFormDataToApi2","combineHeaders7","createJsonResponseHandler6","VERSION","VERSION","z","z2","lazySchema2","zodSchema2","z3","lazySchema3","zodSchema3","z4","lazySchema4","zodSchema4","z5","lazySchema5","zodSchema5","z6","createProviderToolFactoryWithOutputSchema2","lazySchema6","zodSchema6","z7","createProviderToolFactoryWithOutputSchema3","lazySchema7","zodSchema7","z8","createProviderToolFactoryWithOutputSchema4","lazySchema8","zodSchema8","z9","createProviderToolFactoryWithOutputSchema5","prepareTools","_exhaustiveCheck","lazySchema9","zodSchema9","z10","createProviderToolFactoryWithOutputSchema6","lazySchema10","zodSchema10","z11","createProviderToolFactoryWithOutputSchema7","lazySchema11","zodSchema11","z12","createProviderToolFactoryWithOutputSchema8","lazySchema12","zodSchema12","z13","createProviderToolFactoryWithOutputSchema9","UnsupportedFunctionalityError2","validateTypes2","parseProviderOptions2","secureJsonParse2","createProviderToolFactory2","lazySchema13","zodSchema13","z14","createProviderToolFactory3","lazySchema14","zodSchema14","z15","createProviderToolFactory4","lazySchema15","zodSchema15","z16","createProviderToolFactory5","lazySchema16","zodSchema16","z17","createProviderToolFactory6","lazySchema17","zodSchema17","z18","createProviderToolFactory7","lazySchema18","zodSchema18","z19","createProviderToolFactory8","lazySchema19","zodSchema19","z20","createProviderToolFactory9","lazySchema20","zodSchema20","z21","createProviderToolFactory10","lazySchema21","zodSchema21","z22","lazySchema22","zodSchema22","z23","createProviderToolFactoryWithOutputSchema10","generateId2","z","z2","lazySchema2","zodSchema2","lazySchema3","zodSchema3","z3","lazySchema4","zodSchema4","z4","UnsupportedFunctionalityError2","_exhaustiveCheck","parseProviderOptions2","combineHeaders2","resolve2","postJsonToApi2","createJsonResponseHandler2","z5","lazySchema5","zodSchema5","z6","lazySchema6","zodSchema6","z7","z8","createProviderToolFactory2","lazySchema7","zodSchema7","createProviderToolFactory3","lazySchema8","zodSchema8","z9","z10","createProviderToolFactory4","lazySchema9","zodSchema9","createProviderToolFactory5","lazySchema10","zodSchema10","z11","createProviderToolFactory6","z12","parseProviderOptions3","postJsonToApi3","combineHeaders3","resolve3","createJsonResponseHandler3","defaultGenerateId","convertToBase642","lazySchema11","zodSchema11","z13","parseProviderOptions4","postJsonToApi4","combineHeaders4","resolve4","createJsonResponseHandler4","z14","lazySchema12","zodSchema12","event","convertToBase643","secureJsonParse2","z15","lazySchema13","zodSchema13","lazySchema14","zodSchema14","z16","combineHeaders5","delay2","getFromApi2","createJsonResponseHandler5","getFromApi3","createEventSourceResponseHandler2","isAbortError2","delay3","parseProviderOptions5","combineHeaders6","resolve5","postJsonToApi5","createJsonResponseHandler6","defaultGenerateId2","createEventSourceResponseHandler3","withUserAgentSuffix2","generateId2"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.14/30b98effe2636d5b58b60cf37530a90112258d4490ff3a92f52c5cf16e4b475d/node_modules/@ai-sdk/provider/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/dist/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/dist/stream.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.40/fbc718cc8b378ba8d17f16edc5ab96640883c9d635eb2a54b9034b5c4fd5bdef/node_modules/@ai-sdk/provider-utils/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/openai-compatible/2.0.62/b7acbd067f2ec09e10301f2fe9f80cac3c408d768c9a5df1e535b692cd074fce/node_modules/@ai-sdk/openai-compatible/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/openai/3.0.88/3d5b955511aa68a7bfdd4e943259bc5526f882ed0b408ef9ec049ba36670be10/node_modules/@ai-sdk/openai/dist/index.mjs","../src/llm/model/gateways/base.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/anthropic/3.0.103/88805d842ca0284fbaadef0ee46b0a71923da63cbf182540cfbfa25aaaf87106/node_modules/@ai-sdk/anthropic/dist/index.mjs","../src/llm/model/gateways/constants.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/google/3.0.101/5ca337e1534fcee1d9ea7bc8f4b8cdc64d6879c9d864a0a3259940611b7e50ee/node_modules/@ai-sdk/google/dist/index.mjs"],"sourcesContent":["// src/errors/ai-sdk-error.ts\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n  /**\n   * Creates an AI SDK Error.\n   *\n   * @param {Object} params - The parameters for creating the error.\n   * @param {string} params.name - The name of the error.\n   * @param {string} params.message - The error message.\n   * @param {unknown} [params.cause] - The underlying cause of the error.\n   */\n  constructor({\n    name: name14,\n    message,\n    cause\n  }) {\n    super(message);\n    this[_a] = true;\n    this.name = name14;\n    this.cause = cause;\n  }\n  /**\n   * Checks if the given error is an AI SDK Error.\n   * @param {unknown} error - The error to check.\n   * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n   */\n  static isInstance(error) {\n    return _AISDKError.hasMarker(error, marker);\n  }\n  static hasMarker(error, marker15) {\n    const markerSymbol = Symbol.for(marker15);\n    return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n  }\n};\n\n// src/errors/api-call-error.ts\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n  constructor({\n    message,\n    url,\n    requestBodyValues,\n    statusCode,\n    responseHeaders,\n    responseBody,\n    cause,\n    isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n    statusCode === 409 || // conflict\n    statusCode === 429 || // too many requests\n    statusCode >= 500),\n    // server error\n    data\n  }) {\n    super({ name, message, cause });\n    this[_a2] = true;\n    this.url = url;\n    this.requestBodyValues = requestBodyValues;\n    this.statusCode = statusCode;\n    this.responseHeaders = responseHeaders;\n    this.responseBody = responseBody;\n    this.isRetryable = isRetryable;\n    this.data = data;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker2);\n  }\n};\n\n// src/errors/empty-response-body-error.ts\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n  // used in isInstance\n  constructor({ message = \"Empty response body\" } = {}) {\n    super({ name: name2, message });\n    this[_a3] = true;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker3);\n  }\n};\n\n// src/errors/get-error-message.ts\nfunction getErrorMessage(error) {\n  if (error == null) {\n    return \"unknown error\";\n  }\n  if (typeof error === \"string\") {\n    return error;\n  }\n  if (error instanceof Error) {\n    return error.message;\n  }\n  return JSON.stringify(error);\n}\n\n// src/errors/invalid-argument-error.ts\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n  constructor({\n    message,\n    cause,\n    argument\n  }) {\n    super({ name: name3, message, cause });\n    this[_a4] = true;\n    this.argument = argument;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker4);\n  }\n};\n\n// src/errors/invalid-prompt-error.ts\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5, _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n  constructor({\n    prompt,\n    message,\n    cause\n  }) {\n    super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n    this[_a5] = true;\n    this.prompt = prompt;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker5);\n  }\n};\n\n// src/errors/invalid-response-data-error.ts\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n  constructor({\n    data,\n    message = `Invalid response data: ${JSON.stringify(data)}.`\n  }) {\n    super({ name: name5, message });\n    this[_a6] = true;\n    this.data = data;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker6);\n  }\n};\n\n// src/errors/json-parse-error.ts\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n  constructor({ text, cause }) {\n    super({\n      name: name6,\n      message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n      cause\n    });\n    this[_a7] = true;\n    this.text = text;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker7);\n  }\n};\n\n// src/errors/load-api-key-error.ts\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8, _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n  // used in isInstance\n  constructor({ message }) {\n    super({ name: name7, message });\n    this[_a8] = true;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker8);\n  }\n};\n\n// src/errors/load-setting-error.ts\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9, _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n  // used in isInstance\n  constructor({ message }) {\n    super({ name: name8, message });\n    this[_a9] = true;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker9);\n  }\n};\n\n// src/errors/no-content-generated-error.ts\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10, _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n  // used in isInstance\n  constructor({\n    message = \"No content generated.\"\n  } = {}) {\n    super({ name: name9, message });\n    this[_a10] = true;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker10);\n  }\n};\n\n// src/errors/no-such-model-error.ts\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11, _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n  constructor({\n    errorName = name10,\n    modelId,\n    modelType,\n    message = `No such ${modelType}: ${modelId}`\n  }) {\n    super({ name: errorName, message });\n    this[_a11] = true;\n    this.modelId = modelId;\n    this.modelType = modelType;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker11);\n  }\n};\n\n// src/errors/too-many-embedding-values-for-call-error.ts\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12, _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n  constructor(options) {\n    super({\n      name: name11,\n      message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n    });\n    this[_a12] = true;\n    this.provider = options.provider;\n    this.modelId = options.modelId;\n    this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n    this.values = options.values;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker12);\n  }\n};\n\n// src/errors/type-validation-error.ts\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13, _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n  constructor({\n    value,\n    cause,\n    context\n  }) {\n    let contextPrefix = \"Type validation failed\";\n    if (context == null ? void 0 : context.field) {\n      contextPrefix += ` for ${context.field}`;\n    }\n    if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n      contextPrefix += \" (\";\n      const parts = [];\n      if (context.entityName) {\n        parts.push(context.entityName);\n      }\n      if (context.entityId) {\n        parts.push(`id: \"${context.entityId}\"`);\n      }\n      contextPrefix += parts.join(\", \");\n      contextPrefix += \")\";\n    }\n    super({\n      name: name12,\n      message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n      cause\n    });\n    this[_a13] = true;\n    this.value = value;\n    this.context = context;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker13);\n  }\n  /**\n   * Wraps an error into a TypeValidationError.\n   * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n   * Otherwise, it creates a new TypeValidationError.\n   *\n   * @param {Object} params - The parameters for wrapping the error.\n   * @param {unknown} params.value - The value that failed validation.\n   * @param {unknown} params.cause - The original error or cause of the validation failure.\n   * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n   * @returns {TypeValidationError} A TypeValidationError instance.\n   */\n  static wrap({\n    value,\n    cause,\n    context\n  }) {\n    var _a15, _b15, _c;\n    if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a15 = cause.context) == null ? void 0 : _a15.field) === (context == null ? void 0 : context.field) && ((_b15 = cause.context) == null ? void 0 : _b15.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n      return cause;\n    }\n    return new _TypeValidationError({ value, cause, context });\n  }\n};\n\n// src/errors/unsupported-functionality-error.ts\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14, _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n  constructor({\n    functionality,\n    message = `'${functionality}' functionality not supported.`\n  }) {\n    super({ name: name13, message });\n    this[_a14] = true;\n    this.functionality = functionality;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker14);\n  }\n};\n\n// src/json-value/is-json.ts\nfunction isJSONValue(value) {\n  if (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n    return true;\n  }\n  if (Array.isArray(value)) {\n    return value.every(isJSONValue);\n  }\n  if (typeof value === \"object\") {\n    return Object.entries(value).every(\n      ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n    );\n  }\n  return false;\n}\nfunction isJSONArray(value) {\n  return Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n  return value != null && typeof value === \"object\" && Object.entries(value).every(\n    ([key, val]) => typeof key === \"string\" && (val === void 0 || isJSONValue(val))\n  );\n}\nexport {\n  AISDKError,\n  APICallError,\n  EmptyResponseBodyError,\n  InvalidArgumentError,\n  InvalidPromptError,\n  InvalidResponseDataError,\n  JSONParseError,\n  LoadAPIKeyError,\n  LoadSettingError,\n  NoContentGeneratedError,\n  NoSuchModelError,\n  TooManyEmbeddingValuesForCallError,\n  TypeValidationError,\n  UnsupportedFunctionalityError,\n  getErrorMessage,\n  isJSONArray,\n  isJSONObject,\n  isJSONValue\n};\n//# sourceMappingURL=index.mjs.map","class ParseError extends Error {\n  constructor(message, options) {\n    super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n  }\n}\nconst LF = 10, CR = 13, SPACE = 32;\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n  if (typeof callbacks == \"function\")\n    throw new TypeError(\n      \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n    );\n  const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks, pendingFragments = [];\n  let isFirstChunk = !0, id, data = \"\", dataLines = 0, eventType;\n  function feed(chunk) {\n    if (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) {\n      const trailing2 = processLines(chunk);\n      trailing2 !== \"\" && pendingFragments.push(trailing2);\n      return;\n    }\n    if (chunk.indexOf(`\n`) === -1 && chunk.indexOf(\"\\r\") === -1) {\n      pendingFragments.push(chunk);\n      return;\n    }\n    pendingFragments.push(chunk);\n    const input = pendingFragments.join(\"\");\n    pendingFragments.length = 0;\n    const trailing = processLines(input);\n    trailing !== \"\" && pendingFragments.push(trailing);\n  }\n  function processLines(chunk) {\n    let searchIndex = 0;\n    if (chunk.indexOf(\"\\r\") === -1) {\n      let lfIndex = chunk.indexOf(`\n`, searchIndex);\n      for (; lfIndex !== -1; ) {\n        if (searchIndex === lfIndex) {\n          dataLines > 0 && onEvent({ id, event: eventType, data }), id = void 0, data = \"\", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n          continue;\n        }\n        const firstCharCode = chunk.charCodeAt(searchIndex);\n        if (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n          const valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex);\n          if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n            onEvent({ id, event: eventType, data: value }), id = void 0, data = \"\", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(`\n`, searchIndex);\n            continue;\n          }\n          data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n        } else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice(\n          chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,\n          lfIndex\n        ) || void 0 : parseLine(chunk, searchIndex, lfIndex);\n        searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n      }\n      return chunk.slice(searchIndex);\n    }\n    for (; searchIndex < chunk.length; ) {\n      const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n      let lineEnd = -1;\n      if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1)\n        break;\n      parseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++;\n    }\n    return chunk.slice(searchIndex);\n  }\n  function parseLine(chunk, start, end) {\n    if (start === end) {\n      dispatchEvent();\n      return;\n    }\n    const firstCharCode = chunk.charCodeAt(start);\n    if (isDataPrefix(chunk, start, firstCharCode)) {\n      const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end);\n      data = dataLines === 0 ? value2 : `${data}\n${value2}`, dataLines++;\n      return;\n    }\n    if (isEventPrefix(chunk, start, firstCharCode)) {\n      eventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0;\n      return;\n    }\n    if (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) {\n      const value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end);\n      id = value2.includes(\"\\0\") ? void 0 : value2;\n      return;\n    }\n    if (firstCharCode === 58) {\n      if (onComment) {\n        const line2 = chunk.slice(start, end);\n        onComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1));\n      }\n      return;\n    }\n    const line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(\":\");\n    if (fieldSeparatorIndex === -1) {\n      processField(line, \"\", line);\n      return;\n    }\n    const field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n    processField(field, value, line);\n  }\n  function processField(field, value, line) {\n    switch (field) {\n      case \"event\":\n        eventType = value || void 0;\n        break;\n      case \"data\":\n        data = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n        break;\n      case \"id\":\n        id = value.includes(\"\\0\") ? void 0 : value;\n        break;\n      case \"retry\":\n        /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n          new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n            type: \"invalid-retry\",\n            value,\n            line\n          })\n        );\n        break;\n      default:\n        onError(\n          new ParseError(\n            `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n            { type: \"unknown-field\", field, value, line }\n          )\n        );\n        break;\n    }\n  }\n  function dispatchEvent() {\n    dataLines > 0 && onEvent({\n      id,\n      event: eventType,\n      data\n    }), id = void 0, data = \"\", dataLines = 0, eventType = void 0;\n  }\n  function reset(options = {}) {\n    if (options.consume && pendingFragments.length > 0) {\n      const incompleteLine = pendingFragments.join(\"\");\n      parseLine(incompleteLine, 0, incompleteLine.length);\n    }\n    isFirstChunk = !0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, pendingFragments.length = 0;\n  }\n  return { feed, reset };\n}\nfunction isDataPrefix(chunk, i, firstCharCode) {\n  return firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58;\n}\nfunction isEventPrefix(chunk, i, firstCharCode) {\n  return firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58;\n}\nexport {\n  ParseError,\n  createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from \"./index.js\";\nimport { ParseError } from \"./index.js\";\nclass EventSourceParserStream extends TransformStream {\n  constructor({ onError, onRetry, onComment } = {}) {\n    let parser;\n    super({\n      start(controller) {\n        parser = createParser({\n          onEvent: (event) => {\n            controller.enqueue(event);\n          },\n          onError(error) {\n            onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n          },\n          onRetry,\n          onComment\n        });\n      },\n      transform(chunk) {\n        parser.feed(chunk);\n      }\n    });\n  }\n}\nexport {\n  EventSourceParserStream,\n  ParseError\n};\n//# sourceMappingURL=stream.js.map\n","// src/combine-headers.ts\nfunction combineHeaders(...headers) {\n  return headers.reduce(\n    (combinedHeaders, currentHeaders) => ({\n      ...combinedHeaders,\n      ...currentHeaders != null ? currentHeaders : {}\n    }),\n    {}\n  );\n}\n\n// src/convert-async-iterator-to-readable-stream.ts\nfunction convertAsyncIteratorToReadableStream(iterator) {\n  let cancelled = false;\n  return new ReadableStream({\n    /**\n     * Called when the consumer wants to pull more data from the stream.\n     *\n     * @param {ReadableStreamDefaultController<T>} controller - The controller to enqueue data into the stream.\n     * @returns {Promise<void>}\n     */\n    async pull(controller) {\n      if (cancelled) return;\n      try {\n        const { value, done } = await iterator.next();\n        if (done) {\n          controller.close();\n        } else {\n          controller.enqueue(value);\n        }\n      } catch (error) {\n        controller.error(error);\n      }\n    },\n    /**\n     * Called when the consumer cancels the stream.\n     */\n    async cancel(reason) {\n      cancelled = true;\n      if (iterator.return) {\n        try {\n          await iterator.return(reason);\n        } catch (e) {\n        }\n      }\n    }\n  });\n}\n\n// src/create-tool-name-mapping.ts\nfunction createToolNameMapping({\n  tools = [],\n  providerToolNames,\n  resolveProviderToolName\n}) {\n  var _a2;\n  const customToolNameToProviderToolName = {};\n  const providerToolNameToCustomToolName = {};\n  for (const tool2 of tools) {\n    if (tool2.type === \"provider\") {\n      const providerToolName = (_a2 = resolveProviderToolName == null ? void 0 : resolveProviderToolName(tool2)) != null ? _a2 : tool2.id in providerToolNames ? providerToolNames[tool2.id] : void 0;\n      if (providerToolName == null) {\n        continue;\n      }\n      customToolNameToProviderToolName[tool2.name] = providerToolName;\n      providerToolNameToCustomToolName[providerToolName] = tool2.name;\n    }\n  }\n  return {\n    toProviderToolName: (customToolName) => {\n      var _a3;\n      return (_a3 = customToolNameToProviderToolName[customToolName]) != null ? _a3 : customToolName;\n    },\n    toCustomToolName: (providerToolName) => {\n      var _a3;\n      return (_a3 = providerToolNameToCustomToolName[providerToolName]) != null ? _a3 : providerToolName;\n    }\n  };\n}\n\n// src/delay.ts\nasync function delay(delayInMs, options) {\n  if (delayInMs == null) {\n    return Promise.resolve();\n  }\n  const signal = options == null ? void 0 : options.abortSignal;\n  return new Promise((resolve2, reject) => {\n    if (signal == null ? void 0 : signal.aborted) {\n      reject(createAbortError());\n      return;\n    }\n    const timeoutId = setTimeout(() => {\n      cleanup();\n      resolve2();\n    }, delayInMs);\n    const cleanup = () => {\n      clearTimeout(timeoutId);\n      signal == null ? void 0 : signal.removeEventListener(\"abort\", onAbort);\n    };\n    const onAbort = () => {\n      cleanup();\n      reject(createAbortError());\n    };\n    signal == null ? void 0 : signal.addEventListener(\"abort\", onAbort);\n  });\n}\nfunction createAbortError() {\n  return new DOMException(\"Delay was aborted\", \"AbortError\");\n}\n\n// src/delayed-promise.ts\nvar DelayedPromise = class {\n  constructor() {\n    this.status = { type: \"pending\" };\n    this._resolve = void 0;\n    this._reject = void 0;\n  }\n  get promise() {\n    if (this._promise) {\n      return this._promise;\n    }\n    this._promise = new Promise((resolve2, reject) => {\n      if (this.status.type === \"resolved\") {\n        resolve2(this.status.value);\n      } else if (this.status.type === \"rejected\") {\n        reject(this.status.error);\n      }\n      this._resolve = resolve2;\n      this._reject = reject;\n    });\n    return this._promise;\n  }\n  resolve(value) {\n    var _a2;\n    this.status = { type: \"resolved\", value };\n    if (this._promise) {\n      (_a2 = this._resolve) == null ? void 0 : _a2.call(this, value);\n    }\n  }\n  reject(error) {\n    var _a2;\n    this.status = { type: \"rejected\", error };\n    if (this._promise) {\n      (_a2 = this._reject) == null ? void 0 : _a2.call(this, error);\n    }\n  }\n  isResolved() {\n    return this.status.type === \"resolved\";\n  }\n  isRejected() {\n    return this.status.type === \"rejected\";\n  }\n  isPending() {\n    return this.status.type === \"pending\";\n  }\n};\n\n// src/extract-response-headers.ts\nfunction extractResponseHeaders(response) {\n  return Object.fromEntries([...response.headers]);\n}\n\n// src/uint8-utils.ts\nvar { btoa, atob } = globalThis;\nfunction convertBase64ToUint8Array(base64String) {\n  const base64Url = base64String.replace(/-/g, \"+\").replace(/_/g, \"/\");\n  const latin1string = atob(base64Url);\n  return Uint8Array.from(latin1string, (byte) => byte.codePointAt(0));\n}\nfunction convertUint8ArrayToBase64(array) {\n  let latin1string = \"\";\n  for (let i = 0; i < array.length; i++) {\n    latin1string += String.fromCodePoint(array[i]);\n  }\n  return btoa(latin1string);\n}\nfunction convertToBase64(value) {\n  return value instanceof Uint8Array ? convertUint8ArrayToBase64(value) : value;\n}\n\n// src/convert-image-model-file-to-data-uri.ts\nfunction convertImageModelFileToDataUri(file) {\n  if (file.type === \"url\") return file.url;\n  return `data:${file.mediaType};base64,${typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data)}`;\n}\n\n// src/convert-to-form-data.ts\nfunction convertToFormData(input, options = {}) {\n  const { useArrayBrackets = true } = options;\n  const formData = new FormData();\n  for (const [key, value] of Object.entries(input)) {\n    if (value == null) {\n      continue;\n    }\n    if (Array.isArray(value)) {\n      if (value.length === 1) {\n        formData.append(key, value[0]);\n        continue;\n      }\n      const arrayKey = useArrayBrackets ? `${key}[]` : key;\n      for (const item of value) {\n        formData.append(arrayKey, item);\n      }\n      continue;\n    }\n    formData.append(key, value);\n  }\n  return formData;\n}\n\n// src/cancel-response-body.ts\nasync function cancelResponseBody(response) {\n  var _a2;\n  try {\n    await ((_a2 = response.body) == null ? void 0 : _a2.cancel());\n  } catch (e) {\n  }\n}\n\n// src/download-error.ts\nimport { AISDKError } from \"@ai-sdk/provider\";\nvar name = \"AI_DownloadError\";\nvar marker = `vercel.ai.error.${name}`;\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar DownloadError = class extends (_b = AISDKError, _a = symbol, _b) {\n  constructor({\n    url,\n    statusCode,\n    statusText,\n    cause,\n    message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`\n  }) {\n    super({ name, message, cause });\n    this[_a] = true;\n    this.url = url;\n    this.statusCode = statusCode;\n    this.statusText = statusText;\n  }\n  static isInstance(error) {\n    return AISDKError.hasMarker(error, marker);\n  }\n};\n\n// src/is-browser-runtime.ts\nfunction isBrowserRuntime(globalThisAny = globalThis) {\n  return globalThisAny.window != null;\n}\n\n// src/validate-download-url.ts\nfunction validateDownloadUrl(url) {\n  let parsed;\n  try {\n    parsed = new URL(url);\n  } catch (e) {\n    throw new DownloadError({\n      url,\n      message: `Invalid URL: ${url}`\n    });\n  }\n  if (parsed.protocol === \"data:\") {\n    return;\n  }\n  if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n    throw new DownloadError({\n      url,\n      message: `URL scheme must be http, https, or data, got ${parsed.protocol}`\n    });\n  }\n  const hostname = parsed.hostname.toLowerCase().replace(/\\.+$/, \"\");\n  if (!hostname) {\n    throw new DownloadError({\n      url,\n      message: `URL must have a hostname`\n    });\n  }\n  if (hostname === \"localhost\" || hostname.endsWith(\".local\") || hostname.endsWith(\".localhost\")) {\n    throw new DownloadError({\n      url,\n      message: `URL with hostname ${hostname} is not allowed`\n    });\n  }\n  if (hostname.startsWith(\"[\") && hostname.endsWith(\"]\")) {\n    const ipv6 = hostname.slice(1, -1);\n    if (isPrivateIPv6(ipv6)) {\n      throw new DownloadError({\n        url,\n        message: `URL with IPv6 address ${hostname} is not allowed`\n      });\n    }\n    return;\n  }\n  if (isIPv4(hostname)) {\n    if (isPrivateIPv4(hostname)) {\n      throw new DownloadError({\n        url,\n        message: `URL with IP address ${hostname} is not allowed`\n      });\n    }\n    return;\n  }\n}\nfunction isIPv4(hostname) {\n  const parts = hostname.split(\".\");\n  if (parts.length !== 4) return false;\n  return parts.every((part) => {\n    const num = Number(part);\n    return Number.isInteger(num) && num >= 0 && num <= 255 && String(num) === part;\n  });\n}\nfunction isPrivateIPv4(ip) {\n  const parts = ip.split(\".\").map(Number);\n  const [a, b, c] = parts;\n  if (a === 0) return true;\n  if (a === 10) return true;\n  if (a === 100 && b >= 64 && b <= 127) return true;\n  if (a === 127) return true;\n  if (a === 169 && b === 254) return true;\n  if (a === 172 && b >= 16 && b <= 31) return true;\n  if (a === 192 && b === 0 && c === 0) return true;\n  if (a === 192 && b === 168) return true;\n  if (a === 198 && (b === 18 || b === 19)) return true;\n  if (a >= 240) return true;\n  return false;\n}\nfunction parseIPv6(ip) {\n  let address = ip.toLowerCase();\n  const zoneIndex = address.indexOf(\"%\");\n  if (zoneIndex !== -1) {\n    address = address.slice(0, zoneIndex);\n  }\n  const halves = address.split(\"::\");\n  if (halves.length > 2) return null;\n  const toGroups = (segment) => {\n    if (segment === \"\") return [];\n    const groups = [];\n    const parts = segment.split(\":\");\n    for (let i = 0; i < parts.length; i++) {\n      const part = parts[i];\n      if (part.includes(\".\")) {\n        if (i !== parts.length - 1 || !isIPv4(part)) return null;\n        const [a, b, c, d] = part.split(\".\").map(Number);\n        groups.push(a << 8 | b, c << 8 | d);\n        continue;\n      }\n      if (!/^[0-9a-f]{1,4}$/.test(part)) return null;\n      groups.push(parseInt(part, 16));\n    }\n    return groups;\n  };\n  const head = toGroups(halves[0]);\n  if (head === null) return null;\n  if (halves.length === 2) {\n    const tail = toGroups(halves[1]);\n    if (tail === null) return null;\n    const fill = 8 - head.length - tail.length;\n    if (fill < 0) return null;\n    return [...head, ...new Array(fill).fill(0), ...tail];\n  }\n  return head.length === 8 ? head : null;\n}\nfunction isPrivateIPv6(ip) {\n  const groups = parseIPv6(ip);\n  if (groups === null) return true;\n  const topZero = (count) => groups.slice(0, count).every((group) => group === 0);\n  if (topZero(7) && (groups[7] === 0 || groups[7] === 1)) return true;\n  if ((groups[0] & 65024) === 64512) return true;\n  if ((groups[0] & 65472) === 65152) return true;\n  if ((groups[0] & 65472) === 65216) return true;\n  if ((groups[0] & 65280) === 65280) return true;\n  const embedsIPv4 = (\n    // ::/96 — IPv4-compatible (deprecated)\n    topZero(6) || // ::ffff:0:0/96 — IPv4-mapped (ffff in group 5)\n    topZero(5) && groups[5] === 65535 || // ::ffff:0:0/96 — IPv4-translated form (ffff in group 4, group 5 zero)\n    topZero(4) && groups[4] === 65535 && groups[5] === 0 || // 64:ff9b::/96 — NAT64 well-known prefix\n    groups[0] === 100 && groups[1] === 65435 && groups[2] === 0 && groups[3] === 0 && groups[4] === 0 && groups[5] === 0 || // 64:ff9b:1::/48 — NAT64 local-use prefix\n    groups[0] === 100 && groups[1] === 65435 && groups[2] === 1\n  );\n  if (embedsIPv4) {\n    const a = groups[6] >> 8 & 255;\n    const b = groups[6] & 255;\n    const c = groups[7] >> 8 & 255;\n    const d = groups[7] & 255;\n    return isPrivateIPv4(`${a}.${b}.${c}.${d}`);\n  }\n  return false;\n}\n\n// src/fetch-with-validated-redirects.ts\nvar MAX_DOWNLOAD_REDIRECTS = 10;\nasync function fetchWithValidatedRedirects({\n  url,\n  headers,\n  abortSignal,\n  maxRedirects = MAX_DOWNLOAD_REDIRECTS\n}) {\n  const baseInit = { signal: abortSignal };\n  if (headers !== void 0) {\n    baseInit.headers = headers;\n  }\n  let currentUrl = url;\n  for (let redirectCount = 0; redirectCount <= maxRedirects; redirectCount++) {\n    validateDownloadUrl(currentUrl);\n    const response = await fetch(currentUrl, {\n      ...baseInit,\n      redirect: \"manual\"\n    });\n    if (response.type === \"opaqueredirect\") {\n      if (!isBrowserRuntime()) {\n        throw new DownloadError({\n          url,\n          message: `Redirect from ${currentUrl} could not be validated and was blocked`\n        });\n      }\n      return await fetch(currentUrl, { ...baseInit, redirect: \"follow\" });\n    }\n    const location = response.headers.get(\"location\");\n    if (response.status >= 300 && response.status < 400 && location) {\n      await cancelResponseBody(response);\n      currentUrl = new URL(location, currentUrl).toString();\n      continue;\n    }\n    return response;\n  }\n  throw new DownloadError({\n    url,\n    message: `Too many redirects (max ${maxRedirects})`\n  });\n}\n\n// src/read-response-with-size-limit.ts\nvar DEFAULT_MAX_DOWNLOAD_SIZE = 2 * 1024 * 1024 * 1024;\nasync function readResponseWithSizeLimit({\n  response,\n  url,\n  maxBytes = DEFAULT_MAX_DOWNLOAD_SIZE\n}) {\n  const contentLength = response.headers.get(\"content-length\");\n  if (contentLength != null) {\n    const length = parseInt(contentLength, 10);\n    if (!isNaN(length) && length > maxBytes) {\n      await cancelResponseBody(response);\n      throw new DownloadError({\n        url,\n        message: `Download of ${url} exceeded maximum size of ${maxBytes} bytes (Content-Length: ${length}).`\n      });\n    }\n  }\n  const body = response.body;\n  if (body == null) {\n    return new Uint8Array(0);\n  }\n  const reader = body.getReader();\n  const chunks = [];\n  let totalBytes = 0;\n  try {\n    while (true) {\n      const { done, value } = await reader.read();\n      if (done) {\n        break;\n      }\n      totalBytes += value.length;\n      if (totalBytes > maxBytes) {\n        throw new DownloadError({\n          url,\n          message: `Download of ${url} exceeded maximum size of ${maxBytes} bytes.`\n        });\n      }\n      chunks.push(value);\n    }\n  } finally {\n    try {\n      await reader.cancel();\n    } finally {\n      reader.releaseLock();\n    }\n  }\n  const result = new Uint8Array(totalBytes);\n  let offset = 0;\n  for (const chunk of chunks) {\n    result.set(chunk, offset);\n    offset += chunk.length;\n  }\n  return result;\n}\n\n// src/download-blob.ts\nasync function downloadBlob(url, options) {\n  var _a2, _b2;\n  try {\n    const response = await fetchWithValidatedRedirects({\n      url,\n      abortSignal: options == null ? void 0 : options.abortSignal\n    });\n    if (!response.ok) {\n      await cancelResponseBody(response);\n      throw new DownloadError({\n        url,\n        statusCode: response.status,\n        statusText: response.statusText\n      });\n    }\n    const data = await readResponseWithSizeLimit({\n      response,\n      url,\n      maxBytes: (_a2 = options == null ? void 0 : options.maxBytes) != null ? _a2 : DEFAULT_MAX_DOWNLOAD_SIZE\n    });\n    const contentType = (_b2 = response.headers.get(\"content-type\")) != null ? _b2 : void 0;\n    return new Blob([data], contentType ? { type: contentType } : void 0);\n  } catch (error) {\n    if (DownloadError.isInstance(error)) {\n      throw error;\n    }\n    throw new DownloadError({ url, cause: error });\n  }\n}\n\n// src/generate-id.ts\nimport { InvalidArgumentError } from \"@ai-sdk/provider\";\nvar createIdGenerator = ({\n  prefix,\n  size = 16,\n  alphabet = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n  separator = \"-\"\n} = {}) => {\n  const generator = () => {\n    const alphabetLength = alphabet.length;\n    const chars = new Array(size);\n    for (let i = 0; i < size; i++) {\n      chars[i] = alphabet[Math.random() * alphabetLength | 0];\n    }\n    return chars.join(\"\");\n  };\n  if (prefix == null) {\n    return generator;\n  }\n  if (alphabet.includes(separator)) {\n    throw new InvalidArgumentError({\n      argument: \"separator\",\n      message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`\n    });\n  }\n  return () => `${prefix}${separator}${generator()}`;\n};\nvar generateId = createIdGenerator();\n\n// src/get-error-message.ts\nfunction getErrorMessage(error) {\n  if (error == null) {\n    return \"unknown error\";\n  }\n  if (typeof error === \"string\") {\n    return error;\n  }\n  if (error instanceof Error) {\n    return error.message;\n  }\n  return JSON.stringify(error);\n}\n\n// src/get-from-api.ts\nimport { APICallError as APICallError2 } from \"@ai-sdk/provider\";\n\n// src/handle-fetch-error.ts\nimport { APICallError } from \"@ai-sdk/provider\";\n\n// src/is-abort-error.ts\nfunction isAbortError(error) {\n  return (error instanceof Error || error instanceof DOMException) && (error.name === \"AbortError\" || error.name === \"ResponseAborted\" || // Next.js\n  error.name === \"TimeoutError\");\n}\n\n// src/handle-fetch-error.ts\nvar FETCH_FAILED_ERROR_MESSAGES = [\"fetch failed\", \"failed to fetch\"];\nvar BUN_ERROR_CODES = [\n  \"ConnectionRefused\",\n  \"ConnectionClosed\",\n  \"FailedToOpenSocket\",\n  \"ECONNRESET\",\n  \"ECONNREFUSED\",\n  \"ETIMEDOUT\",\n  \"EPIPE\"\n];\nfunction isBunNetworkError(error) {\n  if (!(error instanceof Error)) {\n    return false;\n  }\n  const code = error.code;\n  if (typeof code === \"string\" && BUN_ERROR_CODES.includes(code)) {\n    return true;\n  }\n  return false;\n}\nfunction handleFetchError({\n  error,\n  url,\n  requestBodyValues\n}) {\n  if (isAbortError(error)) {\n    return error;\n  }\n  if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {\n    const cause = error.cause;\n    if (cause != null) {\n      return new APICallError({\n        message: `Cannot connect to API: ${cause.message}`,\n        cause,\n        url,\n        requestBodyValues,\n        isRetryable: true\n        // retry when network error\n      });\n    }\n  }\n  if (isBunNetworkError(error)) {\n    return new APICallError({\n      message: `Cannot connect to API: ${error.message}`,\n      cause: error,\n      url,\n      requestBodyValues,\n      isRetryable: true\n    });\n  }\n  return error;\n}\n\n// src/get-runtime-environment-user-agent.ts\nfunction getRuntimeEnvironmentUserAgent(globalThisAny = globalThis) {\n  var _a2, _b2, _c;\n  if (globalThisAny.window) {\n    return `runtime/browser`;\n  }\n  if ((_a2 = globalThisAny.navigator) == null ? void 0 : _a2.userAgent) {\n    return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n  }\n  if ((_c = (_b2 = globalThisAny.process) == null ? void 0 : _b2.versions) == null ? void 0 : _c.node) {\n    return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n  }\n  if (globalThisAny.EdgeRuntime) {\n    return `runtime/vercel-edge`;\n  }\n  return \"runtime/unknown\";\n}\n\n// src/normalize-headers.ts\nfunction normalizeHeaders(headers) {\n  if (headers == null) {\n    return {};\n  }\n  const normalized = {};\n  if (headers instanceof Headers) {\n    headers.forEach((value, key) => {\n      normalized[key.toLowerCase()] = value;\n    });\n  } else {\n    if (!Array.isArray(headers)) {\n      headers = Object.entries(headers);\n    }\n    for (const [key, value] of headers) {\n      if (value != null) {\n        normalized[key.toLowerCase()] = value;\n      }\n    }\n  }\n  return normalized;\n}\n\n// src/with-user-agent-suffix.ts\nfunction withUserAgentSuffix(headers, ...userAgentSuffixParts) {\n  const normalizedHeaders = new Headers(normalizeHeaders(headers));\n  const currentUserAgentHeader = normalizedHeaders.get(\"user-agent\") || \"\";\n  normalizedHeaders.set(\n    \"user-agent\",\n    [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(\" \")\n  );\n  return Object.fromEntries(normalizedHeaders.entries());\n}\n\n// src/version.ts\nvar VERSION = true ? \"4.0.40\" : \"0.0.0-test\";\n\n// src/get-from-api.ts\nvar getOriginalFetch = () => globalThis.fetch;\nvar getFromApi = async ({\n  url,\n  headers = {},\n  successfulResponseHandler,\n  failedResponseHandler,\n  abortSignal,\n  fetch: fetch2 = getOriginalFetch()\n}) => {\n  try {\n    const response = await fetch2(url, {\n      method: \"GET\",\n      headers: withUserAgentSuffix(\n        headers,\n        `ai-sdk/provider-utils/${VERSION}`,\n        getRuntimeEnvironmentUserAgent()\n      ),\n      signal: abortSignal\n    });\n    const responseHeaders = extractResponseHeaders(response);\n    if (!response.ok) {\n      let errorInformation;\n      try {\n        errorInformation = await failedResponseHandler({\n          response,\n          url,\n          requestBodyValues: {}\n        });\n      } catch (error) {\n        if (isAbortError(error) || APICallError2.isInstance(error)) {\n          throw error;\n        }\n        throw new APICallError2({\n          message: \"Failed to process error response\",\n          cause: error,\n          statusCode: response.status,\n          url,\n          responseHeaders,\n          requestBodyValues: {}\n        });\n      }\n      throw errorInformation.value;\n    }\n    try {\n      return await successfulResponseHandler({\n        response,\n        url,\n        requestBodyValues: {}\n      });\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isAbortError(error) || APICallError2.isInstance(error)) {\n          throw error;\n        }\n      }\n      throw new APICallError2({\n        message: \"Failed to process successful response\",\n        cause: error,\n        statusCode: response.status,\n        url,\n        responseHeaders,\n        requestBodyValues: {}\n      });\n    }\n  } catch (error) {\n    throw handleFetchError({ error, url, requestBodyValues: {} });\n  }\n};\n\n// src/inject-json-instruction.ts\nvar DEFAULT_SCHEMA_PREFIX = \"JSON schema:\";\nvar DEFAULT_SCHEMA_SUFFIX = \"You MUST answer with a JSON object that matches the JSON schema above.\";\nvar DEFAULT_GENERIC_SUFFIX = \"You MUST answer with JSON.\";\nfunction injectJsonInstruction({\n  prompt,\n  schema,\n  schemaPrefix = schema != null ? DEFAULT_SCHEMA_PREFIX : void 0,\n  schemaSuffix = schema != null ? DEFAULT_SCHEMA_SUFFIX : DEFAULT_GENERIC_SUFFIX\n}) {\n  return [\n    prompt != null && prompt.length > 0 ? prompt : void 0,\n    prompt != null && prompt.length > 0 ? \"\" : void 0,\n    // add a newline if prompt is not null\n    schemaPrefix,\n    schema != null ? JSON.stringify(schema) : void 0,\n    schemaSuffix\n  ].filter((line) => line != null).join(\"\\n\");\n}\nfunction injectJsonInstructionIntoMessages({\n  messages,\n  schema,\n  schemaPrefix,\n  schemaSuffix\n}) {\n  var _a2, _b2;\n  const systemMessage = ((_a2 = messages[0]) == null ? void 0 : _a2.role) === \"system\" ? { ...messages[0] } : { role: \"system\", content: \"\" };\n  systemMessage.content = injectJsonInstruction({\n    prompt: systemMessage.content,\n    schema,\n    schemaPrefix,\n    schemaSuffix\n  });\n  return [\n    systemMessage,\n    ...((_b2 = messages[0]) == null ? void 0 : _b2.role) === \"system\" ? messages.slice(1) : messages\n  ];\n}\n\n// src/is-non-nullable.ts\nfunction isNonNullable(value) {\n  return value != null;\n}\n\n// src/is-same-origin.ts\nfunction isSameOrigin(url, baseUrl) {\n  try {\n    return new URL(url).origin === new URL(baseUrl).origin;\n  } catch (e) {\n    return false;\n  }\n}\n\n// src/is-url-supported.ts\nfunction isUrlSupported({\n  mediaType,\n  url,\n  supportedUrls\n}) {\n  url = url.toLowerCase();\n  mediaType = mediaType.toLowerCase();\n  return Object.entries(supportedUrls).map(([key, value]) => {\n    const mediaType2 = key.toLowerCase();\n    return mediaType2 === \"*\" || mediaType2 === \"*/*\" ? { mediaTypePrefix: \"\", regexes: value } : { mediaTypePrefix: mediaType2.replace(/\\*/, \"\"), regexes: value };\n  }).filter(({ mediaTypePrefix }) => mediaType.startsWith(mediaTypePrefix)).flatMap(({ regexes }) => regexes).some((pattern) => pattern.test(url));\n}\n\n// src/load-api-key.ts\nimport { LoadAPIKeyError } from \"@ai-sdk/provider\";\nfunction loadApiKey({\n  apiKey,\n  environmentVariableName,\n  apiKeyParameterName = \"apiKey\",\n  description\n}) {\n  if (typeof apiKey === \"string\") {\n    return apiKey;\n  }\n  if (apiKey != null) {\n    throw new LoadAPIKeyError({\n      message: `${description} API key must be a string.`\n    });\n  }\n  if (typeof process === \"undefined\") {\n    throw new LoadAPIKeyError({\n      message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables are not supported in this environment.`\n    });\n  }\n  apiKey = process.env[environmentVariableName];\n  if (apiKey == null) {\n    throw new LoadAPIKeyError({\n      message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`\n    });\n  }\n  if (typeof apiKey !== \"string\") {\n    throw new LoadAPIKeyError({\n      message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`\n    });\n  }\n  return apiKey;\n}\n\n// src/load-optional-setting.ts\nfunction loadOptionalSetting({\n  settingValue,\n  environmentVariableName\n}) {\n  if (typeof settingValue === \"string\") {\n    return settingValue;\n  }\n  if (settingValue != null || typeof process === \"undefined\") {\n    return void 0;\n  }\n  settingValue = process.env[environmentVariableName];\n  if (settingValue == null || typeof settingValue !== \"string\") {\n    return void 0;\n  }\n  return settingValue;\n}\n\n// src/load-setting.ts\nimport { LoadSettingError } from \"@ai-sdk/provider\";\nfunction loadSetting({\n  settingValue,\n  environmentVariableName,\n  settingName,\n  description\n}) {\n  if (typeof settingValue === \"string\") {\n    return settingValue;\n  }\n  if (settingValue != null) {\n    throw new LoadSettingError({\n      message: `${description} setting must be a string.`\n    });\n  }\n  if (typeof process === \"undefined\") {\n    throw new LoadSettingError({\n      message: `${description} setting is missing. Pass it using the '${settingName}' parameter. Environment variables are not supported in this environment.`\n    });\n  }\n  settingValue = process.env[environmentVariableName];\n  if (settingValue == null) {\n    throw new LoadSettingError({\n      message: `${description} setting is missing. Pass it using the '${settingName}' parameter or the ${environmentVariableName} environment variable.`\n    });\n  }\n  if (typeof settingValue !== \"string\") {\n    throw new LoadSettingError({\n      message: `${description} setting must be a string. The value of the ${environmentVariableName} environment variable is not a string.`\n    });\n  }\n  return settingValue;\n}\n\n// src/media-type-to-extension.ts\nfunction mediaTypeToExtension(mediaType) {\n  var _a2;\n  const [_type, subtype = \"\"] = mediaType.toLowerCase().split(\"/\");\n  return (_a2 = {\n    mpeg: \"mp3\",\n    \"x-wav\": \"wav\",\n    opus: \"ogg\",\n    mp4: \"m4a\",\n    \"x-m4a\": \"m4a\"\n  }[subtype]) != null ? _a2 : subtype;\n}\n\n// src/parse-json.ts\nimport {\n  JSONParseError,\n  TypeValidationError as TypeValidationError3\n} from \"@ai-sdk/provider\";\n\n// src/secure-json-parse.ts\nvar suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nvar suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nfunction _parse(text) {\n  const obj = JSON.parse(text);\n  if (obj === null || typeof obj !== \"object\") {\n    return obj;\n  }\n  if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n    return obj;\n  }\n  return filter(obj);\n}\nfunction filter(obj) {\n  let next = [obj];\n  while (next.length) {\n    const nodes = next;\n    next = [];\n    for (const node of nodes) {\n      if (Object.prototype.hasOwnProperty.call(node, \"__proto__\")) {\n        throw new SyntaxError(\"Object contains forbidden prototype property\");\n      }\n      if (Object.prototype.hasOwnProperty.call(node, \"constructor\") && node.constructor !== null && typeof node.constructor === \"object\" && Object.prototype.hasOwnProperty.call(node.constructor, \"prototype\")) {\n        throw new SyntaxError(\"Object contains forbidden prototype property\");\n      }\n      for (const key in node) {\n        const value = node[key];\n        if (value && typeof value === \"object\") {\n          next.push(value);\n        }\n      }\n    }\n  }\n  return obj;\n}\nfunction secureJsonParse(text) {\n  const { stackTraceLimit } = Error;\n  try {\n    Error.stackTraceLimit = 0;\n  } catch (e) {\n    return _parse(text);\n  }\n  try {\n    return _parse(text);\n  } finally {\n    Error.stackTraceLimit = stackTraceLimit;\n  }\n}\n\n// src/validate-types.ts\nimport {\n  TypeValidationError as TypeValidationError2\n} from \"@ai-sdk/provider\";\n\n// src/schema.ts\nimport { TypeValidationError } from \"@ai-sdk/provider\";\nimport * as z4 from \"zod/v4\";\n\n// src/add-additional-properties-to-json-schema.ts\nfunction addAdditionalPropertiesToJsonSchema(jsonSchema2) {\n  if (jsonSchema2.type === \"object\" || Array.isArray(jsonSchema2.type) && jsonSchema2.type.includes(\"object\")) {\n    jsonSchema2.additionalProperties = false;\n    const { properties } = jsonSchema2;\n    if (properties != null) {\n      for (const key of Object.keys(properties)) {\n        properties[key] = visit(properties[key]);\n      }\n    }\n  }\n  if (jsonSchema2.items != null) {\n    jsonSchema2.items = Array.isArray(jsonSchema2.items) ? jsonSchema2.items.map(visit) : visit(jsonSchema2.items);\n  }\n  if (jsonSchema2.anyOf != null) {\n    jsonSchema2.anyOf = jsonSchema2.anyOf.map(visit);\n  }\n  if (jsonSchema2.allOf != null) {\n    jsonSchema2.allOf = jsonSchema2.allOf.map(visit);\n  }\n  if (jsonSchema2.oneOf != null) {\n    jsonSchema2.oneOf = jsonSchema2.oneOf.map(visit);\n  }\n  const { definitions } = jsonSchema2;\n  if (definitions != null) {\n    for (const key of Object.keys(definitions)) {\n      definitions[key] = visit(definitions[key]);\n    }\n  }\n  return jsonSchema2;\n}\nfunction visit(def) {\n  if (typeof def === \"boolean\") return def;\n  return addAdditionalPropertiesToJsonSchema(def);\n}\n\n// src/to-json-schema/zod3-to-json-schema/options.ts\nvar ignoreOverride = /* @__PURE__ */ Symbol(\n  \"Let zodToJsonSchema decide on which parser to use\"\n);\nvar defaultOptions = {\n  name: void 0,\n  $refStrategy: \"root\",\n  basePath: [\"#\"],\n  effectStrategy: \"input\",\n  pipeStrategy: \"all\",\n  dateStrategy: \"format:date-time\",\n  mapStrategy: \"entries\",\n  removeAdditionalStrategy: \"passthrough\",\n  allowedAdditionalProperties: true,\n  rejectedAdditionalProperties: false,\n  definitionPath: \"definitions\",\n  strictUnions: false,\n  definitions: {},\n  errorMessages: false,\n  patternStrategy: \"escape\",\n  applyRegexFlags: false,\n  emailStrategy: \"format:email\",\n  base64Strategy: \"contentEncoding:base64\",\n  nameStrategy: \"ref\"\n};\nvar getDefaultOptions = (options) => typeof options === \"string\" ? {\n  ...defaultOptions,\n  name: options\n} : {\n  ...defaultOptions,\n  ...options\n};\n\n// src/to-json-schema/zod3-to-json-schema/select-parser.ts\nimport { ZodFirstPartyTypeKind as ZodFirstPartyTypeKind3 } from \"zod/v3\";\n\n// src/to-json-schema/zod3-to-json-schema/parsers/any.ts\nfunction parseAnyDef() {\n  return {};\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/array.ts\nimport { ZodFirstPartyTypeKind } from \"zod/v3\";\nfunction parseArrayDef(def, refs) {\n  var _a2, _b2, _c;\n  const res = {\n    type: \"array\"\n  };\n  if (((_a2 = def.type) == null ? void 0 : _a2._def) && ((_c = (_b2 = def.type) == null ? void 0 : _b2._def) == null ? void 0 : _c.typeName) !== ZodFirstPartyTypeKind.ZodAny) {\n    res.items = parseDef(def.type._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"items\"]\n    });\n  }\n  if (def.minLength) {\n    res.minItems = def.minLength.value;\n  }\n  if (def.maxLength) {\n    res.maxItems = def.maxLength.value;\n  }\n  if (def.exactLength) {\n    res.minItems = def.exactLength.value;\n    res.maxItems = def.exactLength.value;\n  }\n  return res;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts\nfunction parseBigintDef(def) {\n  const res = {\n    type: \"integer\",\n    format: \"int64\"\n  };\n  if (!def.checks) return res;\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case \"min\":\n        if (check.inclusive) {\n          res.minimum = check.value;\n        } else {\n          res.exclusiveMinimum = check.value;\n        }\n        break;\n      case \"max\":\n        if (check.inclusive) {\n          res.maximum = check.value;\n        } else {\n          res.exclusiveMaximum = check.value;\n        }\n        break;\n      case \"multipleOf\":\n        res.multipleOf = check.value;\n        break;\n    }\n  }\n  return res;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/boolean.ts\nfunction parseBooleanDef() {\n  return { type: \"boolean\" };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/branded.ts\nfunction parseBrandedDef(_def, refs) {\n  return parseDef(_def.type._def, refs);\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/catch.ts\nvar parseCatchDef = (def, refs) => {\n  return parseDef(def.innerType._def, refs);\n};\n\n// src/to-json-schema/zod3-to-json-schema/parsers/date.ts\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n  const strategy = overrideDateStrategy != null ? overrideDateStrategy : refs.dateStrategy;\n  if (Array.isArray(strategy)) {\n    return {\n      anyOf: strategy.map((item, i) => parseDateDef(def, refs, item))\n    };\n  }\n  switch (strategy) {\n    case \"string\":\n    case \"format:date-time\":\n      return {\n        type: \"string\",\n        format: \"date-time\"\n      };\n    case \"format:date\":\n      return {\n        type: \"string\",\n        format: \"date\"\n      };\n    case \"integer\":\n      return integerDateParser(def);\n  }\n}\nvar integerDateParser = (def) => {\n  const res = {\n    type: \"integer\",\n    format: \"unix-time\"\n  };\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case \"min\":\n        res.minimum = check.value;\n        break;\n      case \"max\":\n        res.maximum = check.value;\n        break;\n    }\n  }\n  return res;\n};\n\n// src/to-json-schema/zod3-to-json-schema/parsers/default.ts\nfunction parseDefaultDef(_def, refs) {\n  return {\n    ...parseDef(_def.innerType._def, refs),\n    default: _def.defaultValue()\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/effects.ts\nfunction parseEffectsDef(_def, refs) {\n  return refs.effectStrategy === \"input\" ? parseDef(_def.schema._def, refs) : parseAnyDef();\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/enum.ts\nfunction parseEnumDef(def) {\n  return {\n    type: \"string\",\n    enum: Array.from(def.values)\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts\nvar isJsonSchema7AllOfType = (type) => {\n  if (\"type\" in type && type.type === \"string\") return false;\n  return \"allOf\" in type;\n};\nfunction parseIntersectionDef(def, refs) {\n  const allOf = [\n    parseDef(def.left._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n    }),\n    parseDef(def.right._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"allOf\", \"1\"]\n    })\n  ].filter((x) => !!x);\n  const mergedAllOf = [];\n  allOf.forEach((schema) => {\n    if (isJsonSchema7AllOfType(schema)) {\n      mergedAllOf.push(...schema.allOf);\n    } else {\n      let nestedSchema = schema;\n      if (\"additionalProperties\" in schema && schema.additionalProperties === false) {\n        const { additionalProperties, ...rest } = schema;\n        nestedSchema = rest;\n      }\n      mergedAllOf.push(nestedSchema);\n    }\n  });\n  return mergedAllOf.length ? { allOf: mergedAllOf } : void 0;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/literal.ts\nfunction parseLiteralDef(def) {\n  const parsedType = typeof def.value;\n  if (parsedType !== \"bigint\" && parsedType !== \"number\" && parsedType !== \"boolean\" && parsedType !== \"string\") {\n    return {\n      type: Array.isArray(def.value) ? \"array\" : \"object\"\n    };\n  }\n  return {\n    type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n    const: def.value\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/record.ts\nimport {\n  ZodFirstPartyTypeKind as ZodFirstPartyTypeKind2\n} from \"zod/v3\";\n\n// src/to-json-schema/zod3-to-json-schema/parsers/string.ts\nvar emojiRegex = void 0;\nvar zodPatterns = {\n  /**\n   * `c` was changed to `[cC]` to replicate /i flag\n   */\n  cuid: /^[cC][^\\s-]{8,}$/,\n  cuid2: /^[0-9a-z]+$/,\n  ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n  /**\n   * `a-z` was added to replicate /i flag\n   */\n  email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n  /**\n   * Constructed a valid Unicode RegExp\n   *\n   * Lazily instantiate since this type of regex isn't supported\n   * in all envs (e.g. React Native).\n   *\n   * See:\n   * https://github.com/colinhacks/zod/issues/2433\n   * Fix in Zod:\n   * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n   */\n  emoji: () => {\n    if (emojiRegex === void 0) {\n      emojiRegex = RegExp(\n        \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\n        \"u\"\n      );\n    }\n    return emojiRegex;\n  },\n  /**\n   * Unused\n   */\n  uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n  /**\n   * Unused\n   */\n  ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n  ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n  /**\n   * Unused\n   */\n  ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n  ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n  base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n  base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n  nanoid: /^[a-zA-Z0-9_-]{21}$/,\n  jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/\n};\nfunction parseStringDef(def, refs) {\n  const res = {\n    type: \"string\"\n  };\n  if (def.checks) {\n    for (const check of def.checks) {\n      switch (check.kind) {\n        case \"min\":\n          res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n          break;\n        case \"max\":\n          res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n          break;\n        case \"email\":\n          switch (refs.emailStrategy) {\n            case \"format:email\":\n              addFormat(res, \"email\", check.message, refs);\n              break;\n            case \"format:idn-email\":\n              addFormat(res, \"idn-email\", check.message, refs);\n              break;\n            case \"pattern:zod\":\n              addPattern(res, zodPatterns.email, check.message, refs);\n              break;\n          }\n          break;\n        case \"url\":\n          addFormat(res, \"uri\", check.message, refs);\n          break;\n        case \"uuid\":\n          addFormat(res, \"uuid\", check.message, refs);\n          break;\n        case \"regex\":\n          addPattern(res, check.regex, check.message, refs);\n          break;\n        case \"cuid\":\n          addPattern(res, zodPatterns.cuid, check.message, refs);\n          break;\n        case \"cuid2\":\n          addPattern(res, zodPatterns.cuid2, check.message, refs);\n          break;\n        case \"startsWith\":\n          addPattern(\n            res,\n            RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n            check.message,\n            refs\n          );\n          break;\n        case \"endsWith\":\n          addPattern(\n            res,\n            RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n            check.message,\n            refs\n          );\n          break;\n        case \"datetime\":\n          addFormat(res, \"date-time\", check.message, refs);\n          break;\n        case \"date\":\n          addFormat(res, \"date\", check.message, refs);\n          break;\n        case \"time\":\n          addFormat(res, \"time\", check.message, refs);\n          break;\n        case \"duration\":\n          addFormat(res, \"duration\", check.message, refs);\n          break;\n        case \"length\":\n          res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n          res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n          break;\n        case \"includes\": {\n          addPattern(\n            res,\n            RegExp(escapeLiteralCheckValue(check.value, refs)),\n            check.message,\n            refs\n          );\n          break;\n        }\n        case \"ip\": {\n          if (check.version !== \"v6\") {\n            addFormat(res, \"ipv4\", check.message, refs);\n          }\n          if (check.version !== \"v4\") {\n            addFormat(res, \"ipv6\", check.message, refs);\n          }\n          break;\n        }\n        case \"base64url\":\n          addPattern(res, zodPatterns.base64url, check.message, refs);\n          break;\n        case \"jwt\":\n          addPattern(res, zodPatterns.jwt, check.message, refs);\n          break;\n        case \"cidr\": {\n          if (check.version !== \"v6\") {\n            addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n          }\n          if (check.version !== \"v4\") {\n            addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n          }\n          break;\n        }\n        case \"emoji\":\n          addPattern(res, zodPatterns.emoji(), check.message, refs);\n          break;\n        case \"ulid\": {\n          addPattern(res, zodPatterns.ulid, check.message, refs);\n          break;\n        }\n        case \"base64\": {\n          switch (refs.base64Strategy) {\n            case \"format:binary\": {\n              addFormat(res, \"binary\", check.message, refs);\n              break;\n            }\n            case \"contentEncoding:base64\": {\n              res.contentEncoding = \"base64\";\n              break;\n            }\n            case \"pattern:zod\": {\n              addPattern(res, zodPatterns.base64, check.message, refs);\n              break;\n            }\n          }\n          break;\n        }\n        case \"nanoid\": {\n          addPattern(res, zodPatterns.nanoid, check.message, refs);\n        }\n        case \"toLowerCase\":\n        case \"toUpperCase\":\n        case \"trim\":\n          break;\n        default:\n          /* @__PURE__ */ ((_) => {\n          })(check);\n      }\n    }\n  }\n  return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n  return refs.patternStrategy === \"escape\" ? escapeNonAlphaNumeric(literal) : literal;\n}\nvar ALPHA_NUMERIC = new Set(\n  \"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\"\n);\nfunction escapeNonAlphaNumeric(source) {\n  let result = \"\";\n  for (let i = 0; i < source.length; i++) {\n    if (!ALPHA_NUMERIC.has(source[i])) {\n      result += \"\\\\\";\n    }\n    result += source[i];\n  }\n  return result;\n}\nfunction addFormat(schema, value, message, refs) {\n  var _a2;\n  if (schema.format || ((_a2 = schema.anyOf) == null ? void 0 : _a2.some((x) => x.format))) {\n    if (!schema.anyOf) {\n      schema.anyOf = [];\n    }\n    if (schema.format) {\n      schema.anyOf.push({\n        format: schema.format\n      });\n      delete schema.format;\n    }\n    schema.anyOf.push({\n      format: value,\n      ...message && refs.errorMessages && { errorMessage: { format: message } }\n    });\n  } else {\n    schema.format = value;\n  }\n}\nfunction addPattern(schema, regex, message, refs) {\n  var _a2;\n  if (schema.pattern || ((_a2 = schema.allOf) == null ? void 0 : _a2.some((x) => x.pattern))) {\n    if (!schema.allOf) {\n      schema.allOf = [];\n    }\n    if (schema.pattern) {\n      schema.allOf.push({\n        pattern: schema.pattern\n      });\n      delete schema.pattern;\n    }\n    schema.allOf.push({\n      pattern: stringifyRegExpWithFlags(regex, refs),\n      ...message && refs.errorMessages && { errorMessage: { pattern: message } }\n    });\n  } else {\n    schema.pattern = stringifyRegExpWithFlags(regex, refs);\n  }\n}\nfunction stringifyRegExpWithFlags(regex, refs) {\n  var _a2;\n  if (!refs.applyRegexFlags || !regex.flags) {\n    return regex.source;\n  }\n  const flags = {\n    i: regex.flags.includes(\"i\"),\n    // Case-insensitive\n    m: regex.flags.includes(\"m\"),\n    // `^` and `$` matches adjacent to newline characters\n    s: regex.flags.includes(\"s\")\n    // `.` matches newlines\n  };\n  const source = flags.i ? regex.source.toLowerCase() : regex.source;\n  let pattern = \"\";\n  let isEscaped = false;\n  let inCharGroup = false;\n  let inCharRange = false;\n  for (let i = 0; i < source.length; i++) {\n    if (isEscaped) {\n      pattern += source[i];\n      isEscaped = false;\n      continue;\n    }\n    if (flags.i) {\n      if (inCharGroup) {\n        if (source[i].match(/[a-z]/)) {\n          if (inCharRange) {\n            pattern += source[i];\n            pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n            inCharRange = false;\n          } else if (source[i + 1] === \"-\" && ((_a2 = source[i + 2]) == null ? void 0 : _a2.match(/[a-z]/))) {\n            pattern += source[i];\n            inCharRange = true;\n          } else {\n            pattern += `${source[i]}${source[i].toUpperCase()}`;\n          }\n          continue;\n        }\n      } else if (source[i].match(/[a-z]/)) {\n        pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n        continue;\n      }\n    }\n    if (flags.m) {\n      if (source[i] === \"^\") {\n        pattern += `(^|(?<=[\\r\n]))`;\n        continue;\n      } else if (source[i] === \"$\") {\n        pattern += `($|(?=[\\r\n]))`;\n        continue;\n      }\n    }\n    if (flags.s && source[i] === \".\") {\n      pattern += inCharGroup ? `${source[i]}\\r\n` : `[${source[i]}\\r\n]`;\n      continue;\n    }\n    pattern += source[i];\n    if (source[i] === \"\\\\\") {\n      isEscaped = true;\n    } else if (inCharGroup && source[i] === \"]\") {\n      inCharGroup = false;\n    } else if (!inCharGroup && source[i] === \"[\") {\n      inCharGroup = true;\n    }\n  }\n  try {\n    new RegExp(pattern);\n  } catch (e) {\n    console.warn(\n      `Could not convert regex pattern at ${refs.currentPath.join(\n        \"/\"\n      )} to a flag-independent form! Falling back to the flag-ignorant source`\n    );\n    return regex.source;\n  }\n  return pattern;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/record.ts\nfunction parseRecordDef(def, refs) {\n  var _a2, _b2, _c, _d, _e, _f;\n  const schema = {\n    type: \"object\",\n    additionalProperties: (_a2 = parseDef(def.valueType._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"additionalProperties\"]\n    })) != null ? _a2 : refs.allowedAdditionalProperties\n  };\n  if (((_b2 = def.keyType) == null ? void 0 : _b2._def.typeName) === ZodFirstPartyTypeKind2.ZodString && ((_c = def.keyType._def.checks) == null ? void 0 : _c.length)) {\n    const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n    return {\n      ...schema,\n      propertyNames: keyType\n    };\n  } else if (((_d = def.keyType) == null ? void 0 : _d._def.typeName) === ZodFirstPartyTypeKind2.ZodEnum) {\n    return {\n      ...schema,\n      propertyNames: {\n        enum: def.keyType._def.values\n      }\n    };\n  } else if (((_e = def.keyType) == null ? void 0 : _e._def.typeName) === ZodFirstPartyTypeKind2.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind2.ZodString && ((_f = def.keyType._def.type._def.checks) == null ? void 0 : _f.length)) {\n    const { type, ...keyType } = parseBrandedDef(\n      def.keyType._def,\n      refs\n    );\n    return {\n      ...schema,\n      propertyNames: keyType\n    };\n  }\n  return schema;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/map.ts\nfunction parseMapDef(def, refs) {\n  if (refs.mapStrategy === \"record\") {\n    return parseRecordDef(def, refs);\n  }\n  const keys = parseDef(def.keyType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"]\n  }) || parseAnyDef();\n  const values = parseDef(def.valueType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"]\n  }) || parseAnyDef();\n  return {\n    type: \"array\",\n    maxItems: 125,\n    items: {\n      type: \"array\",\n      items: [keys, values],\n      minItems: 2,\n      maxItems: 2\n    }\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts\nfunction parseNativeEnumDef(def) {\n  const object = def.values;\n  const actualKeys = Object.keys(def.values).filter((key) => {\n    return typeof object[object[key]] !== \"number\";\n  });\n  const actualValues = actualKeys.map((key) => object[key]);\n  const parsedTypes = Array.from(\n    new Set(actualValues.map((values) => typeof values))\n  );\n  return {\n    type: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n    enum: actualValues\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/never.ts\nfunction parseNeverDef() {\n  return { not: parseAnyDef() };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/null.ts\nfunction parseNullDef() {\n  return {\n    type: \"null\"\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/union.ts\nvar primitiveMappings = {\n  ZodString: \"string\",\n  ZodNumber: \"number\",\n  ZodBigInt: \"integer\",\n  ZodBoolean: \"boolean\",\n  ZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n  const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n  if (options.every(\n    (x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length)\n  )) {\n    const types = options.reduce((types2, x) => {\n      const type = primitiveMappings[x._def.typeName];\n      return type && !types2.includes(type) ? [...types2, type] : types2;\n    }, []);\n    return {\n      type: types.length > 1 ? types : types[0]\n    };\n  } else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n    const types = options.reduce(\n      (acc, x) => {\n        const type = typeof x._def.value;\n        switch (type) {\n          case \"string\":\n          case \"number\":\n          case \"boolean\":\n            return [...acc, type];\n          case \"bigint\":\n            return [...acc, \"integer\"];\n          case \"object\":\n            if (x._def.value === null) return [...acc, \"null\"];\n          case \"symbol\":\n          case \"undefined\":\n          case \"function\":\n          default:\n            return acc;\n        }\n      },\n      []\n    );\n    if (types.length === options.length) {\n      const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n      return {\n        type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n        enum: options.reduce(\n          (acc, x) => {\n            return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n          },\n          []\n        )\n      };\n    }\n  } else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n    return {\n      type: \"string\",\n      enum: options.reduce(\n        (acc, x) => [\n          ...acc,\n          ...x._def.values.filter((x2) => !acc.includes(x2))\n        ],\n        []\n      )\n    };\n  }\n  return asAnyOf(def, refs);\n}\nvar asAnyOf = (def, refs) => {\n  const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map(\n    (x, i) => parseDef(x._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"anyOf\", `${i}`]\n    })\n  ).filter(\n    (x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0)\n  );\n  return anyOf.length ? { anyOf } : void 0;\n};\n\n// src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts\nfunction parseNullableDef(def, refs) {\n  if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(\n    def.innerType._def.typeName\n  ) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n    return {\n      type: [\n        primitiveMappings[def.innerType._def.typeName],\n        \"null\"\n      ]\n    };\n  }\n  const base = parseDef(def.innerType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"anyOf\", \"0\"]\n  });\n  return base && { anyOf: [base, { type: \"null\" }] };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/number.ts\nfunction parseNumberDef(def) {\n  const res = {\n    type: \"number\"\n  };\n  if (!def.checks) return res;\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case \"int\":\n        res.type = \"integer\";\n        break;\n      case \"min\":\n        if (check.inclusive) {\n          res.minimum = check.value;\n        } else {\n          res.exclusiveMinimum = check.value;\n        }\n        break;\n      case \"max\":\n        if (check.inclusive) {\n          res.maximum = check.value;\n        } else {\n          res.exclusiveMaximum = check.value;\n        }\n        break;\n      case \"multipleOf\":\n        res.multipleOf = check.value;\n        break;\n    }\n  }\n  return res;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/object.ts\nfunction parseObjectDef(def, refs) {\n  const result = {\n    type: \"object\",\n    properties: {}\n  };\n  const required = [];\n  const shape = def.shape();\n  for (const propName in shape) {\n    let propDef = shape[propName];\n    if (propDef === void 0 || propDef._def === void 0) {\n      continue;\n    }\n    const propOptional = safeIsOptional(propDef);\n    const parsedDef = parseDef(propDef._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"properties\", propName],\n      propertyPath: [...refs.currentPath, \"properties\", propName]\n    });\n    if (parsedDef === void 0) {\n      continue;\n    }\n    result.properties[propName] = parsedDef;\n    if (!propOptional) {\n      required.push(propName);\n    }\n  }\n  if (required.length) {\n    result.required = required;\n  }\n  const additionalProperties = decideAdditionalProperties(def, refs);\n  if (additionalProperties !== void 0) {\n    result.additionalProperties = additionalProperties;\n  }\n  return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n  if (def.catchall._def.typeName !== \"ZodNever\") {\n    return parseDef(def.catchall._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, \"additionalProperties\"]\n    });\n  }\n  switch (def.unknownKeys) {\n    case \"passthrough\":\n      return refs.allowedAdditionalProperties;\n    case \"strict\":\n      return refs.rejectedAdditionalProperties;\n    case \"strip\":\n      return refs.removeAdditionalStrategy === \"strict\" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;\n  }\n}\nfunction safeIsOptional(schema) {\n  try {\n    return schema.isOptional();\n  } catch (e) {\n    return true;\n  }\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/optional.ts\nvar parseOptionalDef = (def, refs) => {\n  var _a2;\n  if (refs.currentPath.toString() === ((_a2 = refs.propertyPath) == null ? void 0 : _a2.toString())) {\n    return parseDef(def.innerType._def, refs);\n  }\n  const innerSchema = parseDef(def.innerType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"anyOf\", \"1\"]\n  });\n  return innerSchema ? { anyOf: [{ not: parseAnyDef() }, innerSchema] } : parseAnyDef();\n};\n\n// src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts\nvar parsePipelineDef = (def, refs) => {\n  if (refs.pipeStrategy === \"input\") {\n    return parseDef(def.in._def, refs);\n  } else if (refs.pipeStrategy === \"output\") {\n    return parseDef(def.out._def, refs);\n  }\n  const a = parseDef(def.in._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n  });\n  const b = parseDef(def.out._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"]\n  });\n  return {\n    allOf: [a, b].filter((x) => x !== void 0)\n  };\n};\n\n// src/to-json-schema/zod3-to-json-schema/parsers/promise.ts\nfunction parsePromiseDef(def, refs) {\n  return parseDef(def.type._def, refs);\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/set.ts\nfunction parseSetDef(def, refs) {\n  const items = parseDef(def.valueType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, \"items\"]\n  });\n  const schema = {\n    type: \"array\",\n    uniqueItems: true,\n    items\n  };\n  if (def.minSize) {\n    schema.minItems = def.minSize.value;\n  }\n  if (def.maxSize) {\n    schema.maxItems = def.maxSize.value;\n  }\n  return schema;\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts\nfunction parseTupleDef(def, refs) {\n  if (def.rest) {\n    return {\n      type: \"array\",\n      minItems: def.items.length,\n      items: def.items.map(\n        (x, i) => parseDef(x._def, {\n          ...refs,\n          currentPath: [...refs.currentPath, \"items\", `${i}`]\n        })\n      ).reduce(\n        (acc, x) => x === void 0 ? acc : [...acc, x],\n        []\n      ),\n      additionalItems: parseDef(def.rest._def, {\n        ...refs,\n        currentPath: [...refs.currentPath, \"additionalItems\"]\n      })\n    };\n  } else {\n    return {\n      type: \"array\",\n      minItems: def.items.length,\n      maxItems: def.items.length,\n      items: def.items.map(\n        (x, i) => parseDef(x._def, {\n          ...refs,\n          currentPath: [...refs.currentPath, \"items\", `${i}`]\n        })\n      ).reduce(\n        (acc, x) => x === void 0 ? acc : [...acc, x],\n        []\n      )\n    };\n  }\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts\nfunction parseUndefinedDef() {\n  return {\n    not: parseAnyDef()\n  };\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts\nfunction parseUnknownDef() {\n  return parseAnyDef();\n}\n\n// src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts\nvar parseReadonlyDef = (def, refs) => {\n  return parseDef(def.innerType._def, refs);\n};\n\n// src/to-json-schema/zod3-to-json-schema/select-parser.ts\nvar selectParser = (def, typeName, refs) => {\n  switch (typeName) {\n    case ZodFirstPartyTypeKind3.ZodString:\n      return parseStringDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodNumber:\n      return parseNumberDef(def);\n    case ZodFirstPartyTypeKind3.ZodObject:\n      return parseObjectDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodBigInt:\n      return parseBigintDef(def);\n    case ZodFirstPartyTypeKind3.ZodBoolean:\n      return parseBooleanDef();\n    case ZodFirstPartyTypeKind3.ZodDate:\n      return parseDateDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodUndefined:\n      return parseUndefinedDef();\n    case ZodFirstPartyTypeKind3.ZodNull:\n      return parseNullDef();\n    case ZodFirstPartyTypeKind3.ZodArray:\n      return parseArrayDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodUnion:\n    case ZodFirstPartyTypeKind3.ZodDiscriminatedUnion:\n      return parseUnionDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodIntersection:\n      return parseIntersectionDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodTuple:\n      return parseTupleDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodRecord:\n      return parseRecordDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodLiteral:\n      return parseLiteralDef(def);\n    case ZodFirstPartyTypeKind3.ZodEnum:\n      return parseEnumDef(def);\n    case ZodFirstPartyTypeKind3.ZodNativeEnum:\n      return parseNativeEnumDef(def);\n    case ZodFirstPartyTypeKind3.ZodNullable:\n      return parseNullableDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodOptional:\n      return parseOptionalDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodMap:\n      return parseMapDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodSet:\n      return parseSetDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodLazy:\n      return () => def.getter()._def;\n    case ZodFirstPartyTypeKind3.ZodPromise:\n      return parsePromiseDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodNaN:\n    case ZodFirstPartyTypeKind3.ZodNever:\n      return parseNeverDef();\n    case ZodFirstPartyTypeKind3.ZodEffects:\n      return parseEffectsDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodAny:\n      return parseAnyDef();\n    case ZodFirstPartyTypeKind3.ZodUnknown:\n      return parseUnknownDef();\n    case ZodFirstPartyTypeKind3.ZodDefault:\n      return parseDefaultDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodBranded:\n      return parseBrandedDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodReadonly:\n      return parseReadonlyDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodCatch:\n      return parseCatchDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodPipeline:\n      return parsePipelineDef(def, refs);\n    case ZodFirstPartyTypeKind3.ZodFunction:\n    case ZodFirstPartyTypeKind3.ZodVoid:\n    case ZodFirstPartyTypeKind3.ZodSymbol:\n      return void 0;\n    default:\n      return /* @__PURE__ */ ((_) => void 0)(typeName);\n  }\n};\n\n// src/to-json-schema/zod3-to-json-schema/get-relative-path.ts\nvar getRelativePath = (pathA, pathB) => {\n  let i = 0;\n  for (; i < pathA.length && i < pathB.length; i++) {\n    if (pathA[i] !== pathB[i]) break;\n  }\n  return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n\n// src/to-json-schema/zod3-to-json-schema/parse-def.ts\nfunction parseDef(def, refs, forceResolution = false) {\n  var _a2;\n  const seenItem = refs.seen.get(def);\n  if (refs.override) {\n    const overrideResult = (_a2 = refs.override) == null ? void 0 : _a2.call(\n      refs,\n      def,\n      refs,\n      seenItem,\n      forceResolution\n    );\n    if (overrideResult !== ignoreOverride) {\n      return overrideResult;\n    }\n  }\n  if (seenItem && !forceResolution) {\n    const seenSchema = get$ref(seenItem, refs);\n    if (seenSchema !== void 0) {\n      return seenSchema;\n    }\n  }\n  const newItem = { def, path: refs.currentPath, jsonSchema: void 0 };\n  refs.seen.set(def, newItem);\n  const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n  const jsonSchema2 = typeof jsonSchemaOrGetter === \"function\" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;\n  if (jsonSchema2) {\n    addMeta(def, refs, jsonSchema2);\n  }\n  if (refs.postProcess) {\n    const postProcessResult = refs.postProcess(jsonSchema2, def, refs);\n    newItem.jsonSchema = jsonSchema2;\n    return postProcessResult;\n  }\n  newItem.jsonSchema = jsonSchema2;\n  return jsonSchema2;\n}\nvar get$ref = (item, refs) => {\n  switch (refs.$refStrategy) {\n    case \"root\":\n      return { $ref: item.path.join(\"/\") };\n    case \"relative\":\n      return { $ref: getRelativePath(refs.currentPath, item.path) };\n    case \"none\":\n    case \"seen\": {\n      if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {\n        console.warn(\n          `Recursive reference detected at ${refs.currentPath.join(\n            \"/\"\n          )}! Defaulting to any`\n        );\n        return parseAnyDef();\n      }\n      return refs.$refStrategy === \"seen\" ? parseAnyDef() : void 0;\n    }\n  }\n};\nvar addMeta = (def, refs, jsonSchema2) => {\n  if (def.description) {\n    jsonSchema2.description = def.description;\n  }\n  return jsonSchema2;\n};\n\n// src/to-json-schema/zod3-to-json-schema/refs.ts\nvar getRefs = (options) => {\n  const _options = getDefaultOptions(options);\n  const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;\n  return {\n    ..._options,\n    currentPath,\n    propertyPath: void 0,\n    seen: new Map(\n      Object.entries(_options.definitions).map(([name2, def]) => [\n        def._def,\n        {\n          def: def._def,\n          path: [..._options.basePath, _options.definitionPath, name2],\n          // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n          jsonSchema: void 0\n        }\n      ])\n    )\n  };\n};\n\n// src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts\nvar zod3ToJsonSchema = (schema, options) => {\n  var _a2;\n  const refs = getRefs(options);\n  let definitions = typeof options === \"object\" && options.definitions ? Object.entries(options.definitions).reduce(\n    (acc, [name3, schema2]) => {\n      var _a3;\n      return {\n        ...acc,\n        [name3]: (_a3 = parseDef(\n          schema2._def,\n          {\n            ...refs,\n            currentPath: [...refs.basePath, refs.definitionPath, name3]\n          },\n          true\n        )) != null ? _a3 : parseAnyDef()\n      };\n    },\n    {}\n  ) : void 0;\n  const name2 = typeof options === \"string\" ? options : (options == null ? void 0 : options.nameStrategy) === \"title\" ? void 0 : options == null ? void 0 : options.name;\n  const main = (_a2 = parseDef(\n    schema._def,\n    name2 === void 0 ? refs : {\n      ...refs,\n      currentPath: [...refs.basePath, refs.definitionPath, name2]\n    },\n    false\n  )) != null ? _a2 : parseAnyDef();\n  const title = typeof options === \"object\" && options.name !== void 0 && options.nameStrategy === \"title\" ? options.name : void 0;\n  if (title !== void 0) {\n    main.title = title;\n  }\n  const combined = name2 === void 0 ? definitions ? {\n    ...main,\n    [refs.definitionPath]: definitions\n  } : main : {\n    $ref: [\n      ...refs.$refStrategy === \"relative\" ? [] : refs.basePath,\n      refs.definitionPath,\n      name2\n    ].join(\"/\"),\n    [refs.definitionPath]: {\n      ...definitions,\n      [name2]: main\n    }\n  };\n  combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n  return combined;\n};\n\n// src/schema.ts\nvar schemaSymbol = /* @__PURE__ */ Symbol.for(\"vercel.ai.schema\");\nfunction lazySchema(createSchema) {\n  let schema;\n  return () => {\n    if (schema == null) {\n      schema = createSchema();\n    }\n    return schema;\n  };\n}\nfunction jsonSchema(jsonSchema2, {\n  validate\n} = {}) {\n  return {\n    [schemaSymbol]: true,\n    _type: void 0,\n    // should never be used directly\n    get jsonSchema() {\n      if (typeof jsonSchema2 === \"function\") {\n        jsonSchema2 = jsonSchema2();\n      }\n      return jsonSchema2;\n    },\n    validate\n  };\n}\nfunction isSchema(value) {\n  return typeof value === \"object\" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && \"jsonSchema\" in value && \"validate\" in value;\n}\nfunction asSchema(schema) {\n  return schema == null ? jsonSchema({\n    type: \"object\",\n    properties: {},\n    additionalProperties: false\n  }) : isSchema(schema) ? schema : \"~standard\" in schema ? schema[\"~standard\"].vendor === \"zod\" ? zodSchema(schema) : standardSchema(schema) : schema();\n}\nfunction standardSchema(standardSchema2) {\n  return jsonSchema(\n    () => {\n      if (!hasStandardJsonSchema(standardSchema2)) {\n        throw new Error(\n          `Standard schema vendor '${standardSchema2[\"~standard\"].vendor}' does not support JSON Schema conversion.`\n        );\n      }\n      return addAdditionalPropertiesToJsonSchema(\n        standardSchema2[\"~standard\"].jsonSchema.input({\n          target: \"draft-07\"\n        })\n      );\n    },\n    {\n      validate: async (value) => {\n        const result = await standardSchema2[\"~standard\"].validate(value);\n        return \"value\" in result ? { success: true, value: result.value } : {\n          success: false,\n          error: new TypeValidationError({\n            value,\n            cause: result.issues\n          })\n        };\n      }\n    }\n  );\n}\nfunction hasStandardJsonSchema(schema) {\n  return schema[\"~standard\"].jsonSchema != null;\n}\nfunction zod3Schema(zodSchema2, options) {\n  var _a2;\n  const useReferences = (_a2 = options == null ? void 0 : options.useReferences) != null ? _a2 : false;\n  return jsonSchema(\n    // defer json schema creation to avoid unnecessary computation when only validation is needed\n    () => zod3ToJsonSchema(zodSchema2, {\n      $refStrategy: useReferences ? \"root\" : \"none\"\n    }),\n    {\n      validate: async (value) => {\n        const result = await zodSchema2.safeParseAsync(value);\n        return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n      }\n    }\n  );\n}\nfunction zod4Schema(zodSchema2, options) {\n  var _a2;\n  const useReferences = (_a2 = options == null ? void 0 : options.useReferences) != null ? _a2 : false;\n  return jsonSchema(\n    // defer json schema creation to avoid unnecessary computation when only validation is needed\n    () => addAdditionalPropertiesToJsonSchema(\n      z4.toJSONSchema(zodSchema2, {\n        target: \"draft-7\",\n        io: \"input\",\n        reused: useReferences ? \"ref\" : \"inline\"\n      })\n    ),\n    {\n      validate: async (value) => {\n        const result = await z4.safeParseAsync(zodSchema2, value);\n        return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n      }\n    }\n  );\n}\nfunction isZod4Schema(zodSchema2) {\n  return \"_zod\" in zodSchema2;\n}\nfunction zodSchema(zodSchema2, options) {\n  if (isZod4Schema(zodSchema2)) {\n    return zod4Schema(zodSchema2, options);\n  } else {\n    return zod3Schema(zodSchema2, options);\n  }\n}\n\n// src/validate-types.ts\nasync function validateTypes({\n  value,\n  schema,\n  context\n}) {\n  const result = await safeValidateTypes({ value, schema, context });\n  if (!result.success) {\n    throw TypeValidationError2.wrap({ value, cause: result.error, context });\n  }\n  return result.value;\n}\nasync function safeValidateTypes({\n  value,\n  schema,\n  context\n}) {\n  const actualSchema = asSchema(schema);\n  try {\n    if (actualSchema.validate == null) {\n      return { success: true, value, rawValue: value };\n    }\n    const result = await actualSchema.validate(value);\n    if (result.success) {\n      return { success: true, value: result.value, rawValue: value };\n    }\n    return {\n      success: false,\n      error: TypeValidationError2.wrap({ value, cause: result.error, context }),\n      rawValue: value\n    };\n  } catch (error) {\n    return {\n      success: false,\n      error: TypeValidationError2.wrap({ value, cause: error, context }),\n      rawValue: value\n    };\n  }\n}\n\n// src/parse-json.ts\nasync function parseJSON({\n  text,\n  schema\n}) {\n  try {\n    const value = secureJsonParse(text);\n    if (schema == null) {\n      return value;\n    }\n    return validateTypes({ value, schema });\n  } catch (error) {\n    if (JSONParseError.isInstance(error) || TypeValidationError3.isInstance(error)) {\n      throw error;\n    }\n    throw new JSONParseError({ text, cause: error });\n  }\n}\nasync function safeParseJSON({\n  text,\n  schema\n}) {\n  try {\n    const value = secureJsonParse(text);\n    if (schema == null) {\n      return { success: true, value, rawValue: value };\n    }\n    return await safeValidateTypes({ value, schema });\n  } catch (error) {\n    return {\n      success: false,\n      error: JSONParseError.isInstance(error) ? error : new JSONParseError({ text, cause: error }),\n      rawValue: void 0\n    };\n  }\n}\nfunction isParsableJson(input) {\n  try {\n    secureJsonParse(input);\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n// src/parse-json-event-stream.ts\nimport {\n  EventSourceParserStream\n} from \"eventsource-parser/stream\";\nfunction parseJsonEventStream({\n  stream,\n  schema\n}) {\n  return stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(\n    new TransformStream({\n      async transform({ data }, controller) {\n        if (data === \"[DONE]\") {\n          return;\n        }\n        controller.enqueue(await safeParseJSON({ text: data, schema }));\n      }\n    })\n  );\n}\n\n// src/parse-provider-options.ts\nimport { InvalidArgumentError as InvalidArgumentError2 } from \"@ai-sdk/provider\";\nasync function parseProviderOptions({\n  provider,\n  providerOptions,\n  schema\n}) {\n  if ((providerOptions == null ? void 0 : providerOptions[provider]) == null) {\n    return void 0;\n  }\n  const parsedProviderOptions = await safeValidateTypes({\n    value: providerOptions[provider],\n    schema\n  });\n  if (!parsedProviderOptions.success) {\n    throw new InvalidArgumentError2({\n      argument: \"providerOptions\",\n      message: `invalid ${provider} provider options`,\n      cause: parsedProviderOptions.error\n    });\n  }\n  return parsedProviderOptions.value;\n}\n\n// src/post-to-api.ts\nimport { APICallError as APICallError3 } from \"@ai-sdk/provider\";\nvar getOriginalFetch2 = () => globalThis.fetch;\nvar postJsonToApi = async ({\n  url,\n  headers,\n  body,\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch: fetch2\n}) => postToApi({\n  url,\n  headers: {\n    \"Content-Type\": \"application/json\",\n    ...headers\n  },\n  body: {\n    content: JSON.stringify(body),\n    values: body\n  },\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch: fetch2\n});\nvar postFormDataToApi = async ({\n  url,\n  headers,\n  formData,\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch: fetch2\n}) => postToApi({\n  url,\n  headers,\n  body: {\n    content: formData,\n    values: Object.fromEntries(formData.entries())\n  },\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch: fetch2\n});\nvar postToApi = async ({\n  url,\n  headers = {},\n  body,\n  successfulResponseHandler,\n  failedResponseHandler,\n  abortSignal,\n  fetch: fetch2 = getOriginalFetch2()\n}) => {\n  try {\n    const response = await fetch2(url, {\n      method: \"POST\",\n      headers: withUserAgentSuffix(\n        headers,\n        `ai-sdk/provider-utils/${VERSION}`,\n        getRuntimeEnvironmentUserAgent()\n      ),\n      body: body.content,\n      signal: abortSignal\n    });\n    const responseHeaders = extractResponseHeaders(response);\n    if (!response.ok) {\n      let errorInformation;\n      try {\n        errorInformation = await failedResponseHandler({\n          response,\n          url,\n          requestBodyValues: body.values\n        });\n      } catch (error) {\n        if (isAbortError(error) || APICallError3.isInstance(error)) {\n          throw error;\n        }\n        throw new APICallError3({\n          message: \"Failed to process error response\",\n          cause: error,\n          statusCode: response.status,\n          url,\n          responseHeaders,\n          requestBodyValues: body.values\n        });\n      }\n      throw errorInformation.value;\n    }\n    try {\n      return await successfulResponseHandler({\n        response,\n        url,\n        requestBodyValues: body.values\n      });\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isAbortError(error) || APICallError3.isInstance(error)) {\n          throw error;\n        }\n      }\n      throw new APICallError3({\n        message: \"Failed to process successful response\",\n        cause: error,\n        statusCode: response.status,\n        url,\n        responseHeaders,\n        requestBodyValues: body.values\n      });\n    }\n  } catch (error) {\n    throw handleFetchError({ error, url, requestBodyValues: body.values });\n  }\n};\n\n// src/types/tool.ts\nfunction tool(tool2) {\n  return tool2;\n}\nfunction dynamicTool(tool2) {\n  return { ...tool2, type: \"dynamic\" };\n}\n\n// src/provider-tool-factory.ts\nfunction createProviderToolFactory({\n  id,\n  inputSchema\n}) {\n  return ({\n    execute,\n    outputSchema,\n    needsApproval,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable,\n    ...args\n  }) => tool({\n    type: \"provider\",\n    id,\n    args,\n    inputSchema,\n    outputSchema,\n    execute,\n    needsApproval,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable\n  });\n}\nfunction createProviderToolFactoryWithOutputSchema({\n  id,\n  inputSchema,\n  outputSchema,\n  supportsDeferredResults\n}) {\n  return ({\n    execute,\n    needsApproval,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable,\n    ...args\n  }) => tool({\n    type: \"provider\",\n    id,\n    args,\n    inputSchema,\n    outputSchema,\n    execute,\n    needsApproval,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable,\n    supportsDeferredResults\n  });\n}\n\n// src/remove-undefined-entries.ts\nfunction removeUndefinedEntries(record) {\n  return Object.fromEntries(\n    Object.entries(record).filter(([_key, value]) => value != null)\n  );\n}\n\n// src/resolve.ts\nasync function resolve(value) {\n  if (typeof value === \"function\") {\n    value = value();\n  }\n  return Promise.resolve(value);\n}\n\n// src/retry-with-exponential-backoff.ts\nvar retryWithExponentialBackoff = ({\n  maxRetries = 2,\n  initialDelayInMs = 2e3,\n  backoffFactor = 2,\n  abortSignal,\n  shouldRetry,\n  getDelayInMs = ({ exponentialBackoffDelay }) => exponentialBackoffDelay,\n  createRetryError = ({ message }) => new Error(message)\n}) => async (f) => retryWithExponentialBackoffInternal(f, {\n  maxRetries,\n  delayInMs: initialDelayInMs,\n  backoffFactor,\n  abortSignal,\n  shouldRetry,\n  getDelayInMs,\n  createRetryError\n});\nasync function retryWithExponentialBackoffInternal(f, {\n  maxRetries,\n  delayInMs,\n  backoffFactor,\n  abortSignal,\n  shouldRetry,\n  getDelayInMs,\n  createRetryError\n}, errors = []) {\n  try {\n    return await f();\n  } catch (error) {\n    if (isAbortError(error)) {\n      throw error;\n    }\n    if (maxRetries === 0) {\n      throw error;\n    }\n    const errorMessage = getErrorMessage(error);\n    const newErrors = [...errors, error];\n    const tryNumber = newErrors.length;\n    if (tryNumber > maxRetries) {\n      throw createRetryError({\n        message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n        reason: \"maxRetriesExceeded\",\n        errors: newErrors\n      });\n    }\n    if (await shouldRetry(error) && tryNumber <= maxRetries) {\n      await delay(\n        getDelayInMs({\n          error,\n          exponentialBackoffDelay: delayInMs\n        }),\n        { abortSignal }\n      );\n      return retryWithExponentialBackoffInternal(\n        f,\n        {\n          maxRetries,\n          delayInMs: backoffFactor * delayInMs,\n          backoffFactor,\n          abortSignal,\n          shouldRetry,\n          getDelayInMs,\n          createRetryError\n        },\n        newErrors\n      );\n    }\n    if (tryNumber === 1) {\n      throw error;\n    }\n    throw createRetryError({\n      message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n      reason: \"errorNotRetryable\",\n      errors: newErrors\n    });\n  }\n}\n\n// src/response-handler.ts\nimport { APICallError as APICallError4, EmptyResponseBodyError } from \"@ai-sdk/provider\";\nvar textDecoder = new TextDecoder();\nasync function readResponseBodyAsText({\n  response,\n  url\n}) {\n  return textDecoder.decode(\n    await readResponseWithSizeLimit({\n      response,\n      url\n    })\n  );\n}\nvar createJsonErrorResponseHandler = ({\n  errorSchema,\n  errorToMessage,\n  isRetryable\n}) => async ({ response, url, requestBodyValues }) => {\n  const responseBody = await readResponseBodyAsText({ response, url });\n  const responseHeaders = extractResponseHeaders(response);\n  if (responseBody.trim() === \"\") {\n    return {\n      responseHeaders,\n      value: new APICallError4({\n        message: response.statusText,\n        url,\n        requestBodyValues,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody,\n        isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n      })\n    };\n  }\n  try {\n    const parsedError = await parseJSON({\n      text: responseBody,\n      schema: errorSchema\n    });\n    return {\n      responseHeaders,\n      value: new APICallError4({\n        message: errorToMessage(parsedError),\n        url,\n        requestBodyValues,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody,\n        data: parsedError,\n        isRetryable: isRetryable == null ? void 0 : isRetryable(response, parsedError)\n      })\n    };\n  } catch (parseError) {\n    return {\n      responseHeaders,\n      value: new APICallError4({\n        message: response.statusText,\n        url,\n        requestBodyValues,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody,\n        isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n      })\n    };\n  }\n};\nvar createEventSourceResponseHandler = (chunkSchema) => async ({ response }) => {\n  const responseHeaders = extractResponseHeaders(response);\n  if (response.body == null) {\n    throw new EmptyResponseBodyError({});\n  }\n  return {\n    responseHeaders,\n    value: parseJsonEventStream({\n      stream: response.body,\n      schema: chunkSchema\n    })\n  };\n};\nvar createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {\n  const responseBody = await readResponseBodyAsText({ response, url });\n  const parsedResult = await safeParseJSON({\n    text: responseBody,\n    schema: responseSchema\n  });\n  const responseHeaders = extractResponseHeaders(response);\n  if (!parsedResult.success) {\n    throw new APICallError4({\n      message: \"Invalid JSON response\",\n      cause: parsedResult.error,\n      statusCode: response.status,\n      responseHeaders,\n      responseBody,\n      url,\n      requestBodyValues\n    });\n  }\n  return {\n    responseHeaders,\n    value: parsedResult.value,\n    rawValue: parsedResult.rawValue\n  };\n};\nvar createBinaryResponseHandler = () => async ({ response, url, requestBodyValues }) => {\n  const responseHeaders = extractResponseHeaders(response);\n  if (!response.body) {\n    throw new APICallError4({\n      message: \"Response body is empty\",\n      url,\n      requestBodyValues,\n      statusCode: response.status,\n      responseHeaders,\n      responseBody: void 0\n    });\n  }\n  try {\n    const buffer = await response.arrayBuffer();\n    return {\n      responseHeaders,\n      value: new Uint8Array(buffer)\n    };\n  } catch (error) {\n    throw new APICallError4({\n      message: \"Failed to read response as array buffer\",\n      url,\n      requestBodyValues,\n      statusCode: response.status,\n      responseHeaders,\n      responseBody: void 0,\n      cause: error\n    });\n  }\n};\nvar createStatusCodeErrorResponseHandler = () => async ({ response, url, requestBodyValues }) => {\n  const responseHeaders = extractResponseHeaders(response);\n  const responseBody = await readResponseBodyAsText({ response, url });\n  return {\n    responseHeaders,\n    value: new APICallError4({\n      message: response.statusText,\n      url,\n      requestBodyValues,\n      statusCode: response.status,\n      responseHeaders,\n      responseBody\n    })\n  };\n};\n\n// src/strip-file-extension.ts\nfunction stripFileExtension(filename) {\n  const firstDotIndex = filename.indexOf(\".\");\n  return firstDotIndex === -1 ? filename : filename.slice(0, firstDotIndex);\n}\n\n// src/without-trailing-slash.ts\nfunction withoutTrailingSlash(url) {\n  return url == null ? void 0 : url.replace(/\\/$/, \"\");\n}\n\n// src/is-async-iterable.ts\nfunction isAsyncIterable(obj) {\n  return obj != null && typeof obj[Symbol.asyncIterator] === \"function\";\n}\n\n// src/types/execute-tool.ts\nasync function* executeTool({\n  execute,\n  input,\n  options\n}) {\n  const result = execute(input, options);\n  if (isAsyncIterable(result)) {\n    let lastOutput;\n    for await (const output of result) {\n      lastOutput = output;\n      yield { type: \"preliminary\", output };\n    }\n    yield { type: \"final\", output: lastOutput };\n  } else {\n    yield { type: \"final\", output: await result };\n  }\n}\n\n// src/index.ts\nimport {\n  EventSourceParserStream as EventSourceParserStream2\n} from \"eventsource-parser/stream\";\nexport {\n  DEFAULT_MAX_DOWNLOAD_SIZE,\n  DelayedPromise,\n  DownloadError,\n  EventSourceParserStream2 as EventSourceParserStream,\n  VERSION,\n  asSchema,\n  cancelResponseBody,\n  combineHeaders,\n  convertAsyncIteratorToReadableStream,\n  convertBase64ToUint8Array,\n  convertImageModelFileToDataUri,\n  convertToBase64,\n  convertToFormData,\n  convertUint8ArrayToBase64,\n  createBinaryResponseHandler,\n  createEventSourceResponseHandler,\n  createIdGenerator,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  createProviderToolFactory,\n  createProviderToolFactoryWithOutputSchema,\n  createStatusCodeErrorResponseHandler,\n  createToolNameMapping,\n  delay,\n  downloadBlob,\n  dynamicTool,\n  executeTool,\n  extractResponseHeaders,\n  fetchWithValidatedRedirects,\n  generateId,\n  getErrorMessage,\n  getFromApi,\n  getRuntimeEnvironmentUserAgent,\n  injectJsonInstructionIntoMessages,\n  isAbortError,\n  isBrowserRuntime,\n  isNonNullable,\n  isParsableJson,\n  isSameOrigin,\n  isUrlSupported,\n  jsonSchema,\n  lazySchema,\n  loadApiKey,\n  loadOptionalSetting,\n  loadSetting,\n  mediaTypeToExtension,\n  normalizeHeaders,\n  parseJSON,\n  parseJsonEventStream,\n  parseProviderOptions,\n  postFormDataToApi,\n  postJsonToApi,\n  postToApi,\n  readResponseWithSizeLimit,\n  removeUndefinedEntries,\n  resolve,\n  retryWithExponentialBackoff,\n  safeParseJSON,\n  safeValidateTypes,\n  secureJsonParse,\n  stripFileExtension,\n  tool,\n  validateDownloadUrl,\n  validateTypes,\n  withUserAgentSuffix,\n  withoutTrailingSlash,\n  zodSchema\n};\n//# sourceMappingURL=index.mjs.map","// src/chat/openai-compatible-chat-language-model.ts\nimport {\n  InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  parseProviderOptions,\n  postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/utils/to-camel-case.ts\nfunction toCamelCase(str) {\n  return str.replace(/[_-]([a-z])/g, (g) => g[1].toUpperCase());\n}\nfunction resolveProviderOptionsKey(rawName, providerOptions) {\n  const camelName = toCamelCase(rawName);\n  if (camelName !== rawName && (providerOptions == null ? void 0 : providerOptions[camelName]) != null) {\n    return camelName;\n  }\n  return rawName;\n}\n\n// src/openai-compatible-error.ts\nimport { z } from \"zod/v4\";\nvar openaiCompatibleErrorDataSchema = z.object({\n  error: z.object({\n    message: z.string(),\n    // The additional information below is handled loosely to support\n    // OpenAI-compatible providers that have slightly different error\n    // responses:\n    type: z.string().nullish(),\n    param: z.any().nullish(),\n    code: z.union([z.string(), z.number()]).nullish()\n  })\n});\nvar defaultOpenAICompatibleErrorStructure = {\n  errorSchema: openaiCompatibleErrorDataSchema,\n  errorToMessage: (data) => data.error.message\n};\n\n// src/chat/convert-openai-compatible-chat-usage.ts\nfunction convertOpenAICompatibleChatUsage(usage) {\n  var _a, _b, _c, _d, _e, _f;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n  const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n  const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n  const reasoningTokens = (_f = (_e = usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0;\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens - cacheReadTokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: void 0\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens - reasoningTokens,\n      reasoning: reasoningTokens\n    },\n    raw: usage\n  };\n}\n\n// src/chat/convert-to-openai-compatible-chat-messages.ts\nimport {\n  UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport {\n  convertBase64ToUint8Array,\n  convertToBase64\n} from \"@ai-sdk/provider-utils\";\nfunction getOpenAIMetadata(message) {\n  var _a, _b;\n  return (_b = (_a = message == null ? void 0 : message.providerOptions) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};\n}\nfunction getAudioFormat(mediaType) {\n  switch (mediaType) {\n    case \"audio/wav\":\n      return \"wav\";\n    case \"audio/mp3\":\n    case \"audio/mpeg\":\n      return \"mp3\";\n    default:\n      return null;\n  }\n}\nfunction convertToOpenAICompatibleChatMessages(prompt) {\n  var _a, _b, _c;\n  const messages = [];\n  for (const { role, content, ...message } of prompt) {\n    const metadata = getOpenAIMetadata({ ...message });\n    switch (role) {\n      case \"system\": {\n        messages.push({ role: \"system\", content, ...metadata });\n        break;\n      }\n      case \"user\": {\n        if (content.length === 1 && content[0].type === \"text\") {\n          messages.push({\n            role: \"user\",\n            content: content[0].text,\n            ...getOpenAIMetadata(content[0])\n          });\n          break;\n        }\n        messages.push({\n          role: \"user\",\n          content: content.map((part) => {\n            var _a2;\n            const partMetadata = getOpenAIMetadata(part);\n            switch (part.type) {\n              case \"text\": {\n                return { type: \"text\", text: part.text, ...partMetadata };\n              }\n              case \"file\": {\n                if (part.mediaType.startsWith(\"image/\")) {\n                  const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n                  return {\n                    type: \"image_url\",\n                    image_url: {\n                      url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n                    },\n                    ...partMetadata\n                  };\n                }\n                if (part.mediaType.startsWith(\"audio/\")) {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: \"audio file parts with URLs\"\n                    });\n                  }\n                  const format = getAudioFormat(part.mediaType);\n                  if (format === null) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: `audio media type ${part.mediaType}`\n                    });\n                  }\n                  return {\n                    type: \"input_audio\",\n                    input_audio: {\n                      data: convertToBase64(part.data),\n                      format\n                    },\n                    ...partMetadata\n                  };\n                }\n                if (part.mediaType === \"application/pdf\") {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: \"PDF file parts with URLs\"\n                    });\n                  }\n                  return {\n                    type: \"file\",\n                    file: {\n                      filename: (_a2 = part.filename) != null ? _a2 : \"document.pdf\",\n                      file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`\n                    },\n                    ...partMetadata\n                  };\n                }\n                if (part.mediaType.startsWith(\"text/\")) {\n                  const textContent = part.data instanceof URL ? part.data.toString() : typeof part.data === \"string\" ? new TextDecoder().decode(\n                    convertBase64ToUint8Array(part.data)\n                  ) : new TextDecoder().decode(part.data);\n                  return {\n                    type: \"text\",\n                    text: textContent,\n                    ...partMetadata\n                  };\n                }\n                throw new UnsupportedFunctionalityError({\n                  functionality: `file part media type ${part.mediaType}`\n                });\n              }\n            }\n          }),\n          ...metadata\n        });\n        break;\n      }\n      case \"assistant\": {\n        let text = \"\";\n        let reasoning = \"\";\n        const toolCalls = [];\n        for (const part of content) {\n          const partMetadata = getOpenAIMetadata(part);\n          switch (part.type) {\n            case \"text\": {\n              text += part.text;\n              break;\n            }\n            case \"reasoning\": {\n              reasoning += part.text;\n              break;\n            }\n            case \"tool-call\": {\n              const thoughtSignature = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.thoughtSignature;\n              toolCalls.push({\n                id: part.toolCallId,\n                type: \"function\",\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input)\n                },\n                ...partMetadata,\n                // Include extra_content for Google Gemini thought signatures\n                ...thoughtSignature ? {\n                  extra_content: {\n                    google: {\n                      thought_signature: String(thoughtSignature)\n                    }\n                  }\n                } : {}\n              });\n              break;\n            }\n          }\n        }\n        messages.push({\n          role: \"assistant\",\n          content: toolCalls.length > 0 ? text || null : text,\n          ...reasoning.length > 0 ? { reasoning_content: reasoning } : {},\n          tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n          ...metadata\n        });\n        break;\n      }\n      case \"tool\": {\n        for (const toolResponse of content) {\n          if (toolResponse.type === \"tool-approval-response\") {\n            continue;\n          }\n          const output = toolResponse.output;\n          let contentValue;\n          switch (output.type) {\n            case \"text\":\n            case \"error-text\":\n              contentValue = output.value;\n              break;\n            case \"execution-denied\":\n              contentValue = (_c = output.reason) != null ? _c : \"Tool call execution denied.\";\n              break;\n            case \"content\":\n            case \"json\":\n            case \"error-json\":\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n          const toolResponseMetadata = getOpenAIMetadata(toolResponse);\n          messages.push({\n            role: \"tool\",\n            tool_call_id: toolResponse.toolCallId,\n            content: contentValue,\n            ...toolResponseMetadata\n          });\n        }\n        break;\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  return messages;\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n  id,\n  model,\n  created\n}) {\n  return {\n    id: id != null ? id : void 0,\n    modelId: model != null ? model : void 0,\n    timestamp: created != null ? new Date(created * 1e3) : void 0\n  };\n}\n\n// src/chat/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason(finishReason) {\n  switch (finishReason) {\n    case \"stop\":\n      return \"stop\";\n    case \"length\":\n      return \"length\";\n    case \"content_filter\":\n      return \"content-filter\";\n    case \"function_call\":\n    case \"tool_calls\":\n      return \"tool-calls\";\n    default:\n      return \"other\";\n  }\n}\n\n// src/chat/openai-compatible-chat-options.ts\nimport { z as z2 } from \"zod/v4\";\nvar openaiCompatibleLanguageModelChatOptions = z2.object({\n  /**\n   * A unique identifier representing your end-user, which can help the provider to\n   * monitor and detect abuse.\n   */\n  user: z2.string().optional(),\n  /**\n   * Reasoning effort for reasoning models. Defaults to `medium`.\n   */\n  reasoningEffort: z2.string().optional(),\n  /**\n   * Controls the verbosity of the generated text. Defaults to `medium`.\n   */\n  textVerbosity: z2.string().optional(),\n  /**\n   * Whether to use strict JSON schema validation.\n   * When true, the model uses constrained decoding to guarantee schema compliance.\n   * Only used when the provider supports structured outputs and a schema is provided.\n   *\n   * @default true\n   */\n  strictJsonSchema: z2.boolean().optional()\n});\n\n// src/chat/openai-compatible-prepare-tools.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n  tools,\n  toolChoice\n}) {\n  tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  const toolWarnings = [];\n  if (tools == null) {\n    return { tools: void 0, toolChoice: void 0, toolWarnings };\n  }\n  const openaiCompatTools = [];\n  for (const tool of tools) {\n    if (tool.type === \"provider\") {\n      toolWarnings.push({\n        type: \"unsupported\",\n        feature: `provider-defined tool ${tool.id}`\n      });\n    } else {\n      openaiCompatTools.push({\n        type: \"function\",\n        function: {\n          name: tool.name,\n          description: tool.description,\n          parameters: tool.inputSchema,\n          ...tool.strict != null ? { strict: tool.strict } : {}\n        }\n      });\n    }\n  }\n  if (toolChoice == null) {\n    return { tools: openaiCompatTools, toolChoice: void 0, toolWarnings };\n  }\n  const type = toolChoice.type;\n  switch (type) {\n    case \"auto\":\n    case \"none\":\n    case \"required\":\n      return { tools: openaiCompatTools, toolChoice: type, toolWarnings };\n    case \"tool\":\n      return {\n        tools: openaiCompatTools,\n        toolChoice: {\n          type: \"function\",\n          function: { name: toolChoice.toolName }\n        },\n        toolWarnings\n      };\n    default: {\n      const _exhaustiveCheck = type;\n      throw new UnsupportedFunctionalityError2({\n        functionality: `tool choice type: ${_exhaustiveCheck}`\n      });\n    }\n  }\n}\n\n// src/chat/openai-compatible-chat-language-model.ts\nvar OpenAICompatibleChatLanguageModel = class {\n  // type inferred via constructor\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    var _a, _b;\n    this.modelId = modelId;\n    this.config = config;\n    const errorStructure = (_a = config.errorStructure) != null ? _a : defaultOpenAICompatibleErrorStructure;\n    this.chunkSchema = createOpenAICompatibleChatChunkSchema(\n      errorStructure.errorSchema\n    );\n    this.failedResponseHandler = createJsonErrorResponseHandler(errorStructure);\n    this.supportsStructuredOutputs = (_b = config.supportsStructuredOutputs) != null ? _b : false;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get providerOptionsName() {\n    return this.config.provider.split(\".\")[0].trim();\n  }\n  get supportedUrls() {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n  }\n  transformRequestBody(args) {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).transformRequestBody) == null ? void 0 : _b.call(_a, args)) != null ? _c : args;\n  }\n  convertUsage(usage) {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).convertUsage) == null ? void 0 : _b.call(_a, usage)) != null ? _c : convertOpenAICompatibleChatUsage(usage);\n  }\n  async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    providerOptions,\n    stopSequences,\n    responseFormat,\n    seed,\n    toolChoice,\n    tools\n  }) {\n    var _a, _b, _c, _d, _e;\n    const warnings = [];\n    const deprecatedOptions = await parseProviderOptions({\n      provider: \"openai-compatible\",\n      providerOptions,\n      schema: openaiCompatibleLanguageModelChatOptions\n    });\n    if (deprecatedOptions != null) {\n      warnings.push({\n        type: \"other\",\n        message: `The 'openai-compatible' key in providerOptions is deprecated. Use 'openaiCompatible' instead.`\n      });\n    }\n    const compatibleOptions = Object.assign(\n      deprecatedOptions != null ? deprecatedOptions : {},\n      (_a = await parseProviderOptions({\n        provider: \"openaiCompatible\",\n        providerOptions,\n        schema: openaiCompatibleLanguageModelChatOptions\n      })) != null ? _a : {},\n      (_b = await parseProviderOptions({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: openaiCompatibleLanguageModelChatOptions\n      })) != null ? _b : {},\n      (_c = await parseProviderOptions({\n        provider: toCamelCase(this.providerOptionsName),\n        providerOptions,\n        schema: openaiCompatibleLanguageModelChatOptions\n      })) != null ? _c : {}\n    );\n    const strictJsonSchema = (_d = compatibleOptions == null ? void 0 : compatibleOptions.strictJsonSchema) != null ? _d : true;\n    if (topK != null) {\n      warnings.push({ type: \"unsupported\", feature: \"topK\" });\n    }\n    if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !this.supportsStructuredOutputs) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"responseFormat\",\n        details: \"JSON response format schema is only supported with structuredOutputs\"\n      });\n    }\n    const {\n      tools: openaiTools,\n      toolChoice: openaiToolChoice,\n      toolWarnings\n    } = prepareTools({\n      tools,\n      toolChoice\n    });\n    const metadataKey = resolveProviderOptionsKey(\n      this.providerOptionsName,\n      providerOptions\n    );\n    return {\n      metadataKey,\n      args: {\n        // model id:\n        model: this.modelId,\n        // model specific settings:\n        user: compatibleOptions.user,\n        // standardized settings:\n        max_tokens: maxOutputTokens,\n        temperature,\n        top_p: topP,\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? this.supportsStructuredOutputs === true && responseFormat.schema != null ? {\n          type: \"json_schema\",\n          json_schema: {\n            schema: responseFormat.schema,\n            strict: strictJsonSchema,\n            name: (_e = responseFormat.name) != null ? _e : \"response\",\n            description: responseFormat.description\n          }\n        } : { type: \"json_object\" } : void 0,\n        stop: stopSequences,\n        seed,\n        ...Object.fromEntries(\n          Object.entries({\n            ...providerOptions == null ? void 0 : providerOptions[this.providerOptionsName],\n            ...providerOptions == null ? void 0 : providerOptions[toCamelCase(this.providerOptionsName)]\n          }).filter(\n            ([key]) => !Object.keys(\n              openaiCompatibleLanguageModelChatOptions.shape\n            ).includes(key)\n          )\n        ),\n        reasoning_effort: compatibleOptions.reasoningEffort,\n        verbosity: compatibleOptions.textVerbosity,\n        // messages:\n        messages: convertToOpenAICompatibleChatMessages(prompt),\n        // tools:\n        tools: openaiTools,\n        tool_choice: openaiToolChoice\n      },\n      warnings: [...warnings, ...toolWarnings]\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const { args, warnings, metadataKey } = await this.getArgs({ ...options });\n    const transformedBody = this.transformRequestBody(args);\n    const body = JSON.stringify(transformedBody);\n    const {\n      responseHeaders,\n      value: responseBody,\n      rawValue: rawResponse\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: \"/chat/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: transformedBody,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        OpenAICompatibleChatResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const choice = responseBody.choices[0];\n    const content = [];\n    const text = choice.message.content;\n    if (text != null && text.length > 0) {\n      content.push({ type: \"text\", text });\n    }\n    const reasoning = (_a = choice.message.reasoning_content) != null ? _a : choice.message.reasoning;\n    if (reasoning != null && reasoning.length > 0) {\n      content.push({\n        type: \"reasoning\",\n        text: reasoning\n      });\n    }\n    if (choice.message.tool_calls != null) {\n      for (const toolCall of choice.message.tool_calls) {\n        const thoughtSignature = (_c = (_b = toolCall.extra_content) == null ? void 0 : _b.google) == null ? void 0 : _c.thought_signature;\n        content.push({\n          type: \"tool-call\",\n          toolCallId: (_d = toolCall.id) != null ? _d : generateId(),\n          toolName: toolCall.function.name,\n          input: toolCall.function.arguments,\n          ...thoughtSignature ? {\n            providerMetadata: {\n              [metadataKey]: { thoughtSignature }\n            }\n          } : {}\n        });\n      }\n    }\n    const providerMetadata = {\n      [metadataKey]: {},\n      ...await ((_f = (_e = this.config.metadataExtractor) == null ? void 0 : _e.extractMetadata) == null ? void 0 : _f.call(_e, {\n        parsedBody: rawResponse\n      }))\n    };\n    const completionTokenDetails = (_g = responseBody.usage) == null ? void 0 : _g.completion_tokens_details;\n    if ((completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens) != null) {\n      providerMetadata[metadataKey].acceptedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens;\n    }\n    if ((completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens) != null) {\n      providerMetadata[metadataKey].rejectedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens;\n    }\n    return {\n      content,\n      finishReason: {\n        unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n        raw: (_h = choice.finish_reason) != null ? _h : void 0\n      },\n      usage: this.convertUsage(responseBody.usage),\n      providerMetadata,\n      request: { body },\n      response: {\n        ...getResponseMetadata(responseBody),\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      warnings\n    };\n  }\n  async doStream(options) {\n    var _a;\n    const { args, warnings, metadataKey } = await this.getArgs({ ...options });\n    const body = this.transformRequestBody({\n      ...args,\n      stream: true,\n      // only include stream_options when in strict compatibility mode:\n      stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n    });\n    const metadataExtractor = (_a = this.config.metadataExtractor) == null ? void 0 : _a.createStreamExtractor();\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url: this.config.url({\n        path: \"/chat/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        this.chunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const toolCalls = [];\n    const pendingToolCalls = /* @__PURE__ */ new Map();\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    let usage = void 0;\n    let isFirstChunk = true;\n    const providerOptionsName = metadataKey;\n    let isActiveReasoning = false;\n    let isActiveText = false;\n    const convertUsage = (usage2) => this.convertUsage(usage2);\n    return {\n      stream: response.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: chunk.error });\n              return;\n            }\n            metadataExtractor == null ? void 0 : metadataExtractor.processChunk(chunk.rawValue);\n            if (\"error\" in chunk.value) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({\n                type: \"error\",\n                error: chunk.value.error\n              });\n              return;\n            }\n            const value = chunk.value;\n            if (isFirstChunk) {\n              isFirstChunk = false;\n              controller.enqueue({\n                type: \"response-metadata\",\n                ...getResponseMetadata(value)\n              });\n            }\n            if (value.usage != null) {\n              usage = value.usage;\n            }\n            const choice = value.choices[0];\n            if ((choice == null ? void 0 : choice.finish_reason) != null) {\n              finishReason = {\n                unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n                raw: (_a2 = choice.finish_reason) != null ? _a2 : void 0\n              };\n            }\n            if ((choice == null ? void 0 : choice.delta) == null) {\n              return;\n            }\n            const delta = choice.delta;\n            const reasoningContent = (_b = delta.reasoning_content) != null ? _b : delta.reasoning;\n            if (reasoningContent) {\n              if (!isActiveReasoning) {\n                controller.enqueue({\n                  type: \"reasoning-start\",\n                  id: \"reasoning-0\"\n                });\n                isActiveReasoning = true;\n              }\n              controller.enqueue({\n                type: \"reasoning-delta\",\n                id: \"reasoning-0\",\n                delta: reasoningContent\n              });\n            }\n            if (delta.content) {\n              if (isActiveReasoning) {\n                controller.enqueue({\n                  type: \"reasoning-end\",\n                  id: \"reasoning-0\"\n                });\n                isActiveReasoning = false;\n              }\n              if (!isActiveText) {\n                controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n                isActiveText = true;\n              }\n              controller.enqueue({\n                type: \"text-delta\",\n                id: \"txt-0\",\n                delta: delta.content\n              });\n            }\n            if (delta.tool_calls != null) {\n              if (isActiveReasoning) {\n                controller.enqueue({\n                  type: \"reasoning-end\",\n                  id: \"reasoning-0\"\n                });\n                isActiveReasoning = false;\n              }\n              for (const toolCallDelta of delta.tool_calls) {\n                const index = (_c = toolCallDelta.index) != null ? _c : toolCalls.length;\n                if (toolCalls[index] == null) {\n                  if (toolCallDelta.index != null) {\n                    let pending = pendingToolCalls.get(index);\n                    if (pending == null) {\n                      pending = {\n                        id: (_d = toolCallDelta.id) != null ? _d : null,\n                        bufferedArguments: \"\",\n                        thoughtSignature: (_g = (_f = (_e = toolCallDelta.extra_content) == null ? void 0 : _e.google) == null ? void 0 : _f.thought_signature) != null ? _g : void 0\n                      };\n                      pendingToolCalls.set(index, pending);\n                    } else {\n                      if (pending.id == null && toolCallDelta.id != null) {\n                        pending.id = toolCallDelta.id;\n                      }\n                      if (pending.thoughtSignature == null && ((_i = (_h = toolCallDelta.extra_content) == null ? void 0 : _h.google) == null ? void 0 : _i.thought_signature) != null) {\n                        pending.thoughtSignature = toolCallDelta.extra_content.google.thought_signature;\n                      }\n                    }\n                    const argumentsDelta = (_j = toolCallDelta.function) == null ? void 0 : _j.arguments;\n                    if (argumentsDelta != null) {\n                      pending.bufferedArguments += argumentsDelta;\n                    }\n                    const name = (_k = toolCallDelta.function) == null ? void 0 : _k.name;\n                    if (name == null) {\n                      continue;\n                    }\n                    pendingToolCalls.delete(index);\n                    if (pending.id == null) {\n                      throw new InvalidResponseDataError({\n                        data: toolCallDelta,\n                        message: `Expected 'id' to be a string.`\n                      });\n                    }\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: pending.id,\n                      toolName: name\n                    });\n                    toolCalls[index] = {\n                      id: pending.id,\n                      type: \"function\",\n                      function: {\n                        name,\n                        arguments: pending.bufferedArguments\n                      },\n                      hasFinished: false,\n                      thoughtSignature: pending.thoughtSignature\n                    };\n                  } else {\n                    if (toolCallDelta.id == null) {\n                      throw new InvalidResponseDataError({\n                        data: toolCallDelta,\n                        message: `Expected 'id' to be a string.`\n                      });\n                    }\n                    if (((_l = toolCallDelta.function) == null ? void 0 : _l.name) == null) {\n                      throw new InvalidResponseDataError({\n                        data: toolCallDelta,\n                        message: `Expected 'function.name' to be a string.`\n                      });\n                    }\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: toolCallDelta.id,\n                      toolName: toolCallDelta.function.name\n                    });\n                    toolCalls[index] = {\n                      id: toolCallDelta.id,\n                      type: \"function\",\n                      function: {\n                        name: toolCallDelta.function.name,\n                        arguments: (_m = toolCallDelta.function.arguments) != null ? _m : \"\"\n                      },\n                      hasFinished: false,\n                      thoughtSignature: (_p = (_o = (_n = toolCallDelta.extra_content) == null ? void 0 : _n.google) == null ? void 0 : _o.thought_signature) != null ? _p : void 0\n                    };\n                  }\n                  const toolCall2 = toolCalls[index];\n                  if (((_q = toolCall2.function) == null ? void 0 : _q.name) != null && ((_r = toolCall2.function) == null ? void 0 : _r.arguments) != null) {\n                    if (toolCall2.function.arguments.length > 0) {\n                      controller.enqueue({\n                        type: \"tool-input-delta\",\n                        id: toolCall2.id,\n                        delta: toolCall2.function.arguments\n                      });\n                    }\n                  }\n                  continue;\n                }\n                const toolCall = toolCalls[index];\n                if (toolCall.hasFinished) {\n                  continue;\n                }\n                if (((_s = toolCallDelta.function) == null ? void 0 : _s.arguments) != null) {\n                  toolCall.function.arguments += (_u = (_t = toolCallDelta.function) == null ? void 0 : _t.arguments) != null ? _u : \"\";\n                }\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.id,\n                  delta: (_v = toolCallDelta.function.arguments) != null ? _v : \"\"\n                });\n              }\n            }\n          },\n          flush(controller) {\n            var _a2, _b, _c, _d, _e;\n            if (isActiveReasoning) {\n              controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n            }\n            if (isActiveText) {\n              controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n            }\n            for (const [index, pending] of pendingToolCalls) {\n              throw new InvalidResponseDataError({\n                data: {\n                  index,\n                  id: pending.id,\n                  function: { arguments: pending.bufferedArguments }\n                },\n                message: `Expected 'function.name' to be a string.`\n              });\n            }\n            for (const toolCall of toolCalls.filter(\n              (toolCall2) => !toolCall2.hasFinished\n            )) {\n              controller.enqueue({\n                type: \"tool-input-end\",\n                id: toolCall.id\n              });\n              controller.enqueue({\n                type: \"tool-call\",\n                toolCallId: (_a2 = toolCall.id) != null ? _a2 : generateId(),\n                toolName: toolCall.function.name,\n                input: toolCall.function.arguments,\n                ...toolCall.thoughtSignature ? {\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      thoughtSignature: toolCall.thoughtSignature\n                    }\n                  }\n                } : {}\n              });\n            }\n            const providerMetadata = {\n              [providerOptionsName]: {},\n              ...metadataExtractor == null ? void 0 : metadataExtractor.buildMetadata()\n            };\n            if (((_b = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _b.accepted_prediction_tokens) != null) {\n              providerMetadata[providerOptionsName].acceptedPredictionTokens = (_c = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _c.accepted_prediction_tokens;\n            }\n            if (((_d = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _d.rejected_prediction_tokens) != null) {\n              providerMetadata[providerOptionsName].rejectedPredictionTokens = (_e = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _e.rejected_prediction_tokens;\n            }\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              usage: convertUsage(usage),\n              providerMetadata\n            });\n          }\n        })\n      ),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n  }\n};\nvar openaiCompatibleTokenUsageSchema = z3.looseObject({\n  prompt_tokens: z3.number().nullish(),\n  completion_tokens: z3.number().nullish(),\n  total_tokens: z3.number().nullish(),\n  prompt_tokens_details: z3.object({\n    cached_tokens: z3.number().nullish()\n  }).nullish(),\n  completion_tokens_details: z3.object({\n    reasoning_tokens: z3.number().nullish(),\n    accepted_prediction_tokens: z3.number().nullish(),\n    rejected_prediction_tokens: z3.number().nullish()\n  }).nullish()\n}).nullish();\nvar OpenAICompatibleChatResponseSchema = z3.looseObject({\n  id: z3.string().nullish(),\n  created: z3.number().nullish(),\n  model: z3.string().nullish(),\n  choices: z3.array(\n    z3.object({\n      message: z3.object({\n        role: z3.literal(\"assistant\").nullish(),\n        content: z3.string().nullish(),\n        reasoning_content: z3.string().nullish(),\n        reasoning: z3.string().nullish(),\n        tool_calls: z3.array(\n          z3.object({\n            id: z3.string().nullish(),\n            function: z3.object({\n              name: z3.string(),\n              arguments: z3.string()\n            }),\n            // Support for Google Gemini thought signatures via OpenAI compatibility\n            extra_content: z3.object({\n              google: z3.object({\n                thought_signature: z3.string().nullish()\n              }).nullish()\n            }).nullish()\n          })\n        ).nullish()\n      }),\n      finish_reason: z3.string().nullish()\n    })\n  ),\n  usage: openaiCompatibleTokenUsageSchema\n});\nvar chunkBaseSchema = z3.looseObject({\n  id: z3.string().nullish(),\n  created: z3.number().nullish(),\n  model: z3.string().nullish(),\n  choices: z3.array(\n    z3.object({\n      delta: z3.object({\n        role: z3.enum([\"assistant\", \"\"]).nullish(),\n        content: z3.string().nullish(),\n        // Most openai-compatible models set `reasoning_content`, but some\n        // providers serving `gpt-oss` set `reasoning`. See #7866\n        reasoning_content: z3.string().nullish(),\n        reasoning: z3.string().nullish(),\n        tool_calls: z3.array(\n          z3.object({\n            index: z3.number().nullish(),\n            //google does not send index\n            id: z3.string().nullish(),\n            function: z3.object({\n              name: z3.string().nullish(),\n              arguments: z3.string().nullish()\n            }),\n            // Support for Google Gemini thought signatures via OpenAI compatibility\n            extra_content: z3.object({\n              google: z3.object({\n                thought_signature: z3.string().nullish()\n              }).nullish()\n            }).nullish()\n          })\n        ).nullish()\n      }).nullish(),\n      finish_reason: z3.string().nullish()\n    })\n  ),\n  usage: openaiCompatibleTokenUsageSchema\n});\nvar createOpenAICompatibleChatChunkSchema = (errorSchema) => z3.union([chunkBaseSchema, errorSchema]);\n\n// src/completion/openai-compatible-completion-language-model.ts\nimport {\n  combineHeaders as combineHeaders2,\n  createEventSourceResponseHandler as createEventSourceResponseHandler2,\n  createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n  createJsonResponseHandler as createJsonResponseHandler2,\n  parseProviderOptions as parseProviderOptions2,\n  postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/completion/convert-openai-compatible-completion-usage.ts\nfunction convertOpenAICompatibleCompletionUsage(usage) {\n  var _a, _b;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n  const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens,\n      cacheRead: void 0,\n      cacheWrite: void 0\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens,\n      reasoning: void 0\n    },\n    raw: usage\n  };\n}\n\n// src/completion/convert-to-openai-compatible-completion-prompt.ts\nimport {\n  InvalidPromptError,\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nfunction convertToOpenAICompatibleCompletionPrompt({\n  prompt,\n  user = \"user\",\n  assistant = \"assistant\"\n}) {\n  let text = \"\";\n  if (prompt[0].role === \"system\") {\n    text += `${prompt[0].content}\n\n`;\n    prompt = prompt.slice(1);\n  }\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case \"system\": {\n        throw new InvalidPromptError({\n          message: \"Unexpected system message in prompt: ${content}\",\n          prompt\n        });\n      }\n      case \"user\": {\n        const userMessage = content.map((part) => {\n          switch (part.type) {\n            case \"text\": {\n              return part.text;\n            }\n          }\n        }).filter(Boolean).join(\"\");\n        text += `${user}:\n${userMessage}\n\n`;\n        break;\n      }\n      case \"assistant\": {\n        const assistantMessage = content.map((part) => {\n          switch (part.type) {\n            case \"text\": {\n              return part.text;\n            }\n            case \"tool-call\": {\n              throw new UnsupportedFunctionalityError3({\n                functionality: \"tool-call messages\"\n              });\n            }\n          }\n        }).join(\"\");\n        text += `${assistant}:\n${assistantMessage}\n\n`;\n        break;\n      }\n      case \"tool\": {\n        throw new UnsupportedFunctionalityError3({\n          functionality: \"tool messages\"\n        });\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  text += `${assistant}:\n`;\n  return {\n    prompt: text,\n    stopSequences: [`\n${user}:`]\n  };\n}\n\n// src/completion/get-response-metadata.ts\nfunction getResponseMetadata2({\n  id,\n  model,\n  created\n}) {\n  return {\n    id: id != null ? id : void 0,\n    modelId: model != null ? model : void 0,\n    timestamp: created != null ? new Date(created * 1e3) : void 0\n  };\n}\n\n// src/completion/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason2(finishReason) {\n  switch (finishReason) {\n    case \"stop\":\n      return \"stop\";\n    case \"length\":\n      return \"length\";\n    case \"content_filter\":\n      return \"content-filter\";\n    case \"function_call\":\n    case \"tool_calls\":\n      return \"tool-calls\";\n    default:\n      return \"other\";\n  }\n}\n\n// src/completion/openai-compatible-completion-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar openaiCompatibleLanguageModelCompletionOptions = z4.object({\n  /**\n   * Echo back the prompt in addition to the completion.\n   */\n  echo: z4.boolean().optional(),\n  /**\n   * Modify the likelihood of specified tokens appearing in the completion.\n   *\n   * Accepts a JSON object that maps tokens (specified by their token ID in\n   * the GPT tokenizer) to an associated bias value from -100 to 100.\n   */\n  logitBias: z4.record(z4.string(), z4.number()).optional(),\n  /**\n   * The suffix that comes after a completion of inserted text.\n   */\n  suffix: z4.string().optional(),\n  /**\n   * A unique identifier representing your end-user, which can help providers to\n   * monitor and detect abuse.\n   */\n  user: z4.string().optional()\n});\n\n// src/completion/openai-compatible-completion-language-model.ts\nvar OpenAICompatibleCompletionLanguageModel = class {\n  // type inferred via constructor\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    var _a;\n    this.modelId = modelId;\n    this.config = config;\n    const errorStructure = (_a = config.errorStructure) != null ? _a : defaultOpenAICompatibleErrorStructure;\n    this.chunkSchema = createOpenAICompatibleCompletionChunkSchema(\n      errorStructure.errorSchema\n    );\n    this.failedResponseHandler = createJsonErrorResponseHandler2(errorStructure);\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get providerOptionsName() {\n    return this.config.provider.split(\".\")[0].trim();\n  }\n  get supportedUrls() {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n  }\n  async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences: userStopSequences,\n    responseFormat,\n    seed,\n    providerOptions,\n    tools,\n    toolChoice\n  }) {\n    var _a, _b;\n    const warnings = [];\n    const completionOptions = Object.assign(\n      (_a = await parseProviderOptions2({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: openaiCompatibleLanguageModelCompletionOptions\n      })) != null ? _a : {},\n      (_b = await parseProviderOptions2({\n        provider: toCamelCase(this.providerOptionsName),\n        providerOptions,\n        schema: openaiCompatibleLanguageModelCompletionOptions\n      })) != null ? _b : {}\n    );\n    if (topK != null) {\n      warnings.push({ type: \"unsupported\", feature: \"topK\" });\n    }\n    if (tools == null ? void 0 : tools.length) {\n      warnings.push({ type: \"unsupported\", feature: \"tools\" });\n    }\n    if (toolChoice != null) {\n      warnings.push({ type: \"unsupported\", feature: \"toolChoice\" });\n    }\n    if (responseFormat != null && responseFormat.type !== \"text\") {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"responseFormat\",\n        details: \"JSON response format is not supported.\"\n      });\n    }\n    const { prompt: completionPrompt, stopSequences } = convertToOpenAICompatibleCompletionPrompt({ prompt });\n    const stop = [...stopSequences != null ? stopSequences : [], ...userStopSequences != null ? userStopSequences : []];\n    return {\n      args: {\n        // model id:\n        model: this.modelId,\n        // model specific settings:\n        echo: completionOptions.echo,\n        logit_bias: completionOptions.logitBias,\n        suffix: completionOptions.suffix,\n        user: completionOptions.user,\n        // standardized settings:\n        max_tokens: maxOutputTokens,\n        temperature,\n        top_p: topP,\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        seed,\n        ...providerOptions == null ? void 0 : providerOptions[this.providerOptionsName],\n        ...providerOptions == null ? void 0 : providerOptions[toCamelCase(this.providerOptionsName)],\n        // prompt:\n        prompt: completionPrompt,\n        // stop sequences:\n        stop: stop.length > 0 ? stop : void 0\n      },\n      warnings\n    };\n  }\n  async doGenerate(options) {\n    const { args, warnings } = await this.getArgs(options);\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi2({\n      url: this.config.url({\n        path: \"/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders2(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler2(\n        openaiCompatibleCompletionResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const choice = response.choices[0];\n    const content = [];\n    if (choice.text != null && choice.text.length > 0) {\n      content.push({ type: \"text\", text: choice.text });\n    }\n    return {\n      content,\n      usage: convertOpenAICompatibleCompletionUsage(response.usage),\n      finishReason: {\n        unified: mapOpenAICompatibleFinishReason2(choice.finish_reason),\n        raw: choice.finish_reason\n      },\n      request: { body: args },\n      response: {\n        ...getResponseMetadata2(response),\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      warnings\n    };\n  }\n  async doStream(options) {\n    const { args, warnings } = await this.getArgs(options);\n    const body = {\n      ...args,\n      stream: true,\n      // only include stream_options when in strict compatibility mode:\n      stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n    };\n    const { responseHeaders, value: response } = await postJsonToApi2({\n      url: this.config.url({\n        path: \"/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders2(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: this.failedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler2(\n        this.chunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    let usage = void 0;\n    let isFirstChunk = true;\n    return {\n      stream: response.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            var _a;\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: chunk.error });\n              return;\n            }\n            const value = chunk.value;\n            if (\"error\" in value) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: value.error });\n              return;\n            }\n            if (isFirstChunk) {\n              isFirstChunk = false;\n              controller.enqueue({\n                type: \"response-metadata\",\n                ...getResponseMetadata2(value)\n              });\n              controller.enqueue({\n                type: \"text-start\",\n                id: \"0\"\n              });\n            }\n            if (value.usage != null) {\n              usage = value.usage;\n            }\n            const choice = value.choices[0];\n            if ((choice == null ? void 0 : choice.finish_reason) != null) {\n              finishReason = {\n                unified: mapOpenAICompatibleFinishReason2(choice.finish_reason),\n                raw: (_a = choice.finish_reason) != null ? _a : void 0\n              };\n            }\n            if ((choice == null ? void 0 : choice.text) != null) {\n              controller.enqueue({\n                type: \"text-delta\",\n                id: \"0\",\n                delta: choice.text\n              });\n            }\n          },\n          flush(controller) {\n            if (!isFirstChunk) {\n              controller.enqueue({ type: \"text-end\", id: \"0\" });\n            }\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              usage: convertOpenAICompatibleCompletionUsage(usage)\n            });\n          }\n        })\n      ),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n  }\n};\nvar usageSchema = z5.object({\n  prompt_tokens: z5.number(),\n  completion_tokens: z5.number(),\n  total_tokens: z5.number()\n});\nvar openaiCompatibleCompletionResponseSchema = z5.object({\n  id: z5.string().nullish(),\n  created: z5.number().nullish(),\n  model: z5.string().nullish(),\n  choices: z5.array(\n    z5.object({\n      text: z5.string(),\n      finish_reason: z5.string()\n    })\n  ),\n  usage: usageSchema.nullish()\n});\nvar createOpenAICompatibleCompletionChunkSchema = (errorSchema) => z5.union([\n  z5.object({\n    id: z5.string().nullish(),\n    created: z5.number().nullish(),\n    model: z5.string().nullish(),\n    choices: z5.array(\n      z5.object({\n        text: z5.string(),\n        finish_reason: z5.string().nullish(),\n        index: z5.number()\n      })\n    ),\n    usage: usageSchema.nullish()\n  }),\n  errorSchema\n]);\n\n// src/embedding/openai-compatible-embedding-model.ts\nimport {\n  TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders as combineHeaders3,\n  createJsonErrorResponseHandler as createJsonErrorResponseHandler3,\n  createJsonResponseHandler as createJsonResponseHandler3,\n  parseProviderOptions as parseProviderOptions3,\n  postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\n\n// src/embedding/openai-compatible-embedding-options.ts\nimport { z as z6 } from \"zod/v4\";\nvar openaiCompatibleEmbeddingModelOptions = z6.object({\n  /**\n   * The number of dimensions the resulting output embeddings should have.\n   * Only supported in text-embedding-3 and later models.\n   */\n  dimensions: z6.number().optional(),\n  /**\n   * A unique identifier representing your end-user, which can help providers to\n   * monitor and detect abuse.\n   */\n  user: z6.string().optional()\n});\n\n// src/embedding/openai-compatible-embedding-model.ts\nvar OpenAICompatibleEmbeddingModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get maxEmbeddingsPerCall() {\n    var _a;\n    return (_a = this.config.maxEmbeddingsPerCall) != null ? _a : 2048;\n  }\n  get supportsParallelCalls() {\n    var _a;\n    return (_a = this.config.supportsParallelCalls) != null ? _a : true;\n  }\n  get providerOptionsName() {\n    return this.config.provider.split(\".\")[0].trim();\n  }\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions\n  }) {\n    var _a, _b, _c;\n    const warnings = [];\n    const deprecatedOptions = await parseProviderOptions3({\n      provider: \"openai-compatible\",\n      providerOptions,\n      schema: openaiCompatibleEmbeddingModelOptions\n    });\n    if (deprecatedOptions != null) {\n      warnings.push({\n        type: \"other\",\n        message: `The 'openai-compatible' key in providerOptions is deprecated. Use 'openaiCompatible' instead.`\n      });\n    }\n    const compatibleOptions = Object.assign(\n      deprecatedOptions != null ? deprecatedOptions : {},\n      (_a = await parseProviderOptions3({\n        provider: \"openaiCompatible\",\n        providerOptions,\n        schema: openaiCompatibleEmbeddingModelOptions\n      })) != null ? _a : {},\n      (_b = await parseProviderOptions3({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: openaiCompatibleEmbeddingModelOptions\n      })) != null ? _b : {}\n    );\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values\n      });\n    }\n    const {\n      responseHeaders,\n      value: response,\n      rawValue\n    } = await postJsonToApi3({\n      url: this.config.url({\n        path: \"/embeddings\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders3(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        input: values,\n        encoding_format: \"float\",\n        dimensions: compatibleOptions.dimensions,\n        user: compatibleOptions.user\n      },\n      failedResponseHandler: createJsonErrorResponseHandler3(\n        (_c = this.config.errorStructure) != null ? _c : defaultOpenAICompatibleErrorStructure\n      ),\n      successfulResponseHandler: createJsonResponseHandler3(\n        openaiTextEmbeddingResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      warnings,\n      embeddings: response.data.map((item) => item.embedding),\n      usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n      providerMetadata: response.providerMetadata,\n      response: { headers: responseHeaders, body: rawValue }\n    };\n  }\n};\nvar openaiTextEmbeddingResponseSchema = z7.object({\n  data: z7.array(z7.object({ embedding: z7.array(z7.number()) })),\n  usage: z7.object({ prompt_tokens: z7.number() }).nullish(),\n  providerMetadata: z7.record(z7.string(), z7.record(z7.string(), z7.any())).optional()\n});\n\n// src/image/openai-compatible-image-model.ts\nimport {\n  combineHeaders as combineHeaders4,\n  convertBase64ToUint8Array as convertBase64ToUint8Array2,\n  convertToFormData,\n  createJsonErrorResponseHandler as createJsonErrorResponseHandler4,\n  createJsonResponseHandler as createJsonResponseHandler4,\n  downloadBlob,\n  postFormDataToApi,\n  postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar OpenAICompatibleImageModel = class {\n  constructor(modelId, config) {\n    this.modelId = modelId;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n    this.maxImagesPerCall = 10;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  /**\n   * The provider options key used to extract provider-specific options.\n   */\n  get providerOptionsKey() {\n    return this.config.provider.split(\".\")[0].trim();\n  }\n  // TODO: deprecate non-camelCase keys and remove in future major version\n  getArgs(providerOptions) {\n    return {\n      ...providerOptions[this.providerOptionsKey],\n      ...providerOptions[toCamelCase(this.providerOptionsKey)]\n    };\n  }\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n    files,\n    mask\n  }) {\n    var _a, _b, _c, _d, _e;\n    const warnings = [];\n    if (aspectRatio != null) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"aspectRatio\",\n        details: \"This model does not support aspect ratio. Use `size` instead.\"\n      });\n    }\n    if (seed != null) {\n      warnings.push({ type: \"unsupported\", feature: \"seed\" });\n    }\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    const args = this.getArgs(providerOptions);\n    if (files != null && files.length > 0) {\n      const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n        url: this.config.url({\n          path: \"/images/edits\",\n          modelId: this.modelId\n        }),\n        headers: combineHeaders4(this.config.headers(), headers),\n        formData: convertToFormData({\n          model: this.modelId,\n          prompt,\n          image: await Promise.all(files.map((file) => fileToBlob(file))),\n          mask: mask != null ? await fileToBlob(mask) : void 0,\n          n,\n          size,\n          ...args\n        }),\n        failedResponseHandler: createJsonErrorResponseHandler4(\n          (_d = this.config.errorStructure) != null ? _d : defaultOpenAICompatibleErrorStructure\n        ),\n        successfulResponseHandler: createJsonResponseHandler4(\n          openaiCompatibleImageResponseSchema\n        ),\n        abortSignal,\n        fetch: this.config.fetch\n      });\n      return {\n        images: response2.data.map((item) => item.b64_json),\n        warnings,\n        response: {\n          timestamp: currentDate,\n          modelId: this.modelId,\n          headers: responseHeaders2\n        }\n      };\n    }\n    const { value: response, responseHeaders } = await postJsonToApi4({\n      url: this.config.url({\n        path: \"/images/generations\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders4(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        prompt,\n        n,\n        size,\n        ...args,\n        response_format: \"b64_json\"\n      },\n      failedResponseHandler: createJsonErrorResponseHandler4(\n        (_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure\n      ),\n      successfulResponseHandler: createJsonResponseHandler4(\n        openaiCompatibleImageResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      images: response.data.map((item) => item.b64_json),\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders\n      }\n    };\n  }\n};\nvar openaiCompatibleImageResponseSchema = z8.object({\n  data: z8.array(z8.object({ b64_json: z8.string() }))\n});\nasync function fileToBlob(file) {\n  if (file.type === \"url\") {\n    return downloadBlob(file.url);\n  }\n  const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array2(file.data);\n  return new Blob([data], { type: file.mediaType });\n}\n\n// src/openai-compatible-provider.ts\nimport {\n  withoutTrailingSlash,\n  withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.62\" : \"0.0.0-test\";\n\n// src/openai-compatible-provider.ts\nfunction createOpenAICompatible(options) {\n  const baseURL = withoutTrailingSlash(options.baseURL);\n  const providerName = options.name;\n  const headers = {\n    ...options.apiKey && { Authorization: `Bearer ${options.apiKey}` },\n    ...options.headers\n  };\n  const getHeaders = () => withUserAgentSuffix(headers, `ai-sdk/openai-compatible/${VERSION}`);\n  const getCommonModelConfig = (modelType) => ({\n    provider: `${providerName}.${modelType}`,\n    url: ({ path }) => {\n      const url = new URL(`${baseURL}${path}`);\n      if (options.queryParams) {\n        url.search = new URLSearchParams(options.queryParams).toString();\n      }\n      return url.toString();\n    },\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createLanguageModel = (modelId) => createChatModel(modelId);\n  const createChatModel = (modelId) => new OpenAICompatibleChatLanguageModel(modelId, {\n    ...getCommonModelConfig(\"chat\"),\n    includeUsage: options.includeUsage,\n    supportsStructuredOutputs: options.supportsStructuredOutputs,\n    supportedUrls: options.supportedUrls,\n    transformRequestBody: options.transformRequestBody,\n    metadataExtractor: options.metadataExtractor,\n    convertUsage: options.convertUsage\n  });\n  const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {\n    ...getCommonModelConfig(\"completion\"),\n    includeUsage: options.includeUsage\n  });\n  const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(modelId, {\n    ...getCommonModelConfig(\"embedding\")\n  });\n  const createImageModel = (modelId) => new OpenAICompatibleImageModel(modelId, getCommonModelConfig(\"image\"));\n  const provider = (modelId) => createLanguageModel(modelId);\n  provider.specificationVersion = \"v3\";\n  provider.languageModel = createLanguageModel;\n  provider.chatModel = createChatModel;\n  provider.completionModel = createCompletionModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.imageModel = createImageModel;\n  return provider;\n}\nexport {\n  OpenAICompatibleChatLanguageModel,\n  OpenAICompatibleCompletionLanguageModel,\n  OpenAICompatibleEmbeddingModel,\n  OpenAICompatibleImageModel,\n  VERSION,\n  createOpenAICompatible\n};\n//# sourceMappingURL=index.mjs.map","// src/openai-provider.ts\nimport {\n  loadApiKey,\n  loadOptionalSetting,\n  withoutTrailingSlash,\n  withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/openai-chat-language-model.ts\nimport {\n  InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  parseProviderOptions,\n  postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/openai-error.ts\nimport { z } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar openaiErrorDataSchema = z.object({\n  error: z.object({\n    message: z.string(),\n    // The additional information below is handled loosely to support\n    // OpenAI-compatible providers that have slightly different error\n    // responses:\n    type: z.string().nullish(),\n    param: z.any().nullish(),\n    code: z.union([z.string(), z.number()]).nullish()\n  })\n});\nvar openaiFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: openaiErrorDataSchema,\n  errorToMessage: (data) => data.error.message\n});\n\n// src/openai-language-model-capabilities.ts\nfunction getOpenAILanguageModelCapabilities(modelId) {\n  var _a, _b, _c, _d, _e;\n  const oSeriesVersion = getOSeriesVersion(modelId);\n  const gptVersion = getGptVersion(modelId);\n  const isGptChatModel = (gptVersion == null ? void 0 : gptVersion.minor) == null && ((_b = (_a = gptVersion == null ? void 0 : gptVersion.variant) == null ? void 0 : _a.startsWith(\"chat\")) != null ? _b : false);\n  const isGptNanoModel = (_d = (_c = gptVersion == null ? void 0 : gptVersion.variant) == null ? void 0 : _c.startsWith(\"nano\")) != null ? _d : false;\n  const supportsFlexProcessing = oSeriesVersion != null && oSeriesVersion >= 3 || gptVersion != null && gptVersion.major >= 5 && !isGptChatModel;\n  const supportsPriorityProcessing = modelId.startsWith(\"gpt-4\") || gptVersion != null && gptVersion.major >= 5 && !isGptNanoModel && !isGptChatModel || oSeriesVersion != null && oSeriesVersion >= 3;\n  const isReasoningModel = oSeriesVersion != null || gptVersion != null && gptVersion.major >= 5 && !isGptChatModel;\n  const supportsNonReasoningParameters = gptVersion != null && (gptVersion.major > 5 || gptVersion.major === 5 && ((_e = gptVersion.minor) != null ? _e : 0) >= 1);\n  const systemMessageMode = isReasoningModel ? \"developer\" : \"system\";\n  return {\n    supportsFlexProcessing,\n    supportsPriorityProcessing,\n    isReasoningModel,\n    systemMessageMode,\n    supportsNonReasoningParameters\n  };\n}\nfunction getOSeriesVersion(modelId) {\n  const match = /^o(\\d+)(?:-|$)/.exec(modelId);\n  return match == null ? void 0 : Number(match[1]);\n}\nfunction getGptVersion(modelId) {\n  const match = /^gpt-(\\d+)(?:\\.(\\d+))?(?:-(.+))?$/.exec(modelId);\n  if (match == null) {\n    return void 0;\n  }\n  return {\n    major: Number(match[1]),\n    minor: match[2] == null ? void 0 : Number(match[2]),\n    variant: match[3]\n  };\n}\n\n// src/openai-stream-error.ts\nimport { APICallError } from \"@ai-sdk/provider\";\nasync function throwIfOpenAIStreamErrorBeforeOutput({\n  stream,\n  getError,\n  isOutputChunk,\n  url,\n  requestBodyValues,\n  responseHeaders\n}) {\n  const [streamForEarlyError, streamForConsumer] = stream.tee();\n  const reader = streamForEarlyError.getReader();\n  try {\n    while (true) {\n      const result = await reader.read();\n      if (result.done) {\n        return streamForConsumer;\n      }\n      const chunk = result.value;\n      if (!chunk.success) {\n        return streamForConsumer;\n      }\n      const errorFrame = getError(chunk.value);\n      if (errorFrame != null) {\n        streamForConsumer.cancel().catch(() => {\n        });\n        throw createOpenAIStreamError({\n          frame: errorFrame,\n          url,\n          requestBodyValues,\n          responseHeaders\n        });\n      }\n      if (isOutputChunk(chunk.value)) {\n        return streamForConsumer;\n      }\n    }\n  } finally {\n    reader.cancel().catch(() => {\n    });\n    reader.releaseLock();\n  }\n}\nfunction createOpenAIStreamError({\n  frame,\n  url,\n  requestBodyValues,\n  responseHeaders\n}) {\n  var _a;\n  const streamError = parseStreamError(frame);\n  return new APICallError({\n    message: (_a = streamError == null ? void 0 : streamError.message) != null ? _a : \"OpenAI stream failed before any output was generated\",\n    url,\n    requestBodyValues,\n    statusCode: streamError == null ? 500 : getStatusCode(streamError),\n    responseHeaders,\n    responseBody: JSON.stringify(frame),\n    data: frame\n  });\n}\nfunction parseStreamError(frame) {\n  var _a;\n  const value = asRecord(frame);\n  if (value == null) {\n    return void 0;\n  }\n  if (value.type === \"response.failed\") {\n    const response = asRecord(value.response);\n    const responseError = asRecord(response == null ? void 0 : response.error);\n    return typeof (responseError == null ? void 0 : responseError.message) === \"string\" ? {\n      message: responseError.message,\n      code: getStringOrNumber(responseError.code),\n      type: \"response.failed\",\n      frame\n    } : void 0;\n  }\n  const error = (_a = asRecord(value.error)) != null ? _a : value;\n  return typeof error.message === \"string\" && (asRecord(value.error) != null || typeof error.type === \"string\" || \"code\" in error || \"param\" in error) ? {\n    message: error.message,\n    code: getStringOrNumber(error.code),\n    type: typeof error.type === \"string\" ? error.type : void 0,\n    frame\n  } : void 0;\n}\nfunction getStatusCode(error) {\n  if (typeof error.code === \"number\" && isHttpErrorStatusCode(error.code)) {\n    return error.code;\n  }\n  if (typeof error.code === \"string\" && /^\\d{3}$/.test(error.code)) {\n    const numericCode = Number(error.code);\n    if (isHttpErrorStatusCode(numericCode)) {\n      return numericCode;\n    }\n  }\n  const discriminator = [error.code, error.type].filter((value) => typeof value === \"string\" || typeof value === \"number\").join(\" \").toLowerCase();\n  if ([\"insufficient_quota\", \"rate_limit\"].some(\n    (term) => discriminator.includes(term)\n  )) {\n    return 429;\n  }\n  if (discriminator.includes(\"authentication\")) return 401;\n  if (discriminator.includes(\"permission\")) return 403;\n  if (discriminator.includes(\"not_found\")) return 404;\n  if ([\"invalid\", \"bad_request\", \"context_length\"].some(\n    (term) => discriminator.includes(term)\n  )) {\n    return 400;\n  }\n  if (discriminator.includes(\"overload\")) return 503;\n  if (discriminator.includes(\"timeout\")) return 504;\n  return 500;\n}\nfunction asRecord(value) {\n  return typeof value === \"object\" && value != null ? value : void 0;\n}\nfunction getStringOrNumber(value) {\n  return typeof value === \"string\" || typeof value === \"number\" ? value : void 0;\n}\nfunction isHttpErrorStatusCode(value) {\n  return Number.isInteger(value) && value >= 400 && value <= 599;\n}\n\n// src/chat/convert-openai-chat-usage.ts\nfunction convertOpenAIChatUsage(usage) {\n  var _a, _b, _c, _d, _e, _f, _g, _h;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n  const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n  const cachedTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n  const cacheWriteTokens = (_f = (_e = usage.prompt_tokens_details) == null ? void 0 : _e.cache_write_tokens) != null ? _f : void 0;\n  const reasoningTokens = (_h = (_g = usage.completion_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : 0;\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens - cachedTokens - (cacheWriteTokens != null ? cacheWriteTokens : 0),\n      cacheRead: cachedTokens,\n      cacheWrite: cacheWriteTokens\n    },\n    outputTokens: {\n      total: completionTokens,\n      text: completionTokens - reasoningTokens,\n      reasoning: reasoningTokens\n    },\n    raw: usage\n  };\n}\n\n// src/chat/convert-to-openai-chat-messages.ts\nimport {\n  UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction serializeToolCallArguments(input) {\n  return JSON.stringify(input === void 0 ? {} : input);\n}\nfunction getPromptCacheBreakpoint(providerOptions) {\n  var _a;\n  return (_a = providerOptions == null ? void 0 : providerOptions.openai) == null ? void 0 : _a.promptCacheBreakpoint;\n}\nfunction convertToOpenAIChatMessages({\n  prompt,\n  systemMessageMode = \"system\"\n}) {\n  var _a, _b;\n  const messages = [];\n  const warnings = [];\n  for (const { role, content, providerOptions } of prompt) {\n    switch (role) {\n      case \"system\": {\n        switch (systemMessageMode) {\n          case \"system\": {\n            const promptCacheBreakpoint = getPromptCacheBreakpoint(providerOptions);\n            messages.push({\n              role: \"system\",\n              content: promptCacheBreakpoint == null ? content : [\n                {\n                  type: \"text\",\n                  text: content,\n                  prompt_cache_breakpoint: promptCacheBreakpoint\n                }\n              ]\n            });\n            break;\n          }\n          case \"developer\": {\n            const promptCacheBreakpoint = getPromptCacheBreakpoint(providerOptions);\n            messages.push({\n              role: \"developer\",\n              content: promptCacheBreakpoint == null ? content : [\n                {\n                  type: \"text\",\n                  text: content,\n                  prompt_cache_breakpoint: promptCacheBreakpoint\n                }\n              ]\n            });\n            break;\n          }\n          case \"remove\": {\n            warnings.push({\n              type: \"other\",\n              message: \"system messages are removed for this model\"\n            });\n            break;\n          }\n          default: {\n            const _exhaustiveCheck = systemMessageMode;\n            throw new Error(\n              `Unsupported system message mode: ${_exhaustiveCheck}`\n            );\n          }\n        }\n        break;\n      }\n      case \"user\": {\n        if (content.length === 1 && content[0].type === \"text\" && getPromptCacheBreakpoint(content[0].providerOptions) == null) {\n          messages.push({ role: \"user\", content: content[0].text });\n          break;\n        }\n        messages.push({\n          role: \"user\",\n          content: content.map((part, index) => {\n            var _a2, _b2, _c;\n            switch (part.type) {\n              case \"text\": {\n                const promptCacheBreakpoint = getPromptCacheBreakpoint(\n                  part.providerOptions\n                );\n                return {\n                  type: \"text\",\n                  text: part.text,\n                  ...promptCacheBreakpoint != null && {\n                    prompt_cache_breakpoint: promptCacheBreakpoint\n                  }\n                };\n              }\n              case \"file\": {\n                const promptCacheBreakpoint = getPromptCacheBreakpoint(\n                  part.providerOptions\n                );\n                if (part.mediaType.startsWith(\"image/\")) {\n                  const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n                  return {\n                    type: \"image_url\",\n                    image_url: {\n                      url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n                      // OpenAI specific extension: image detail\n                      detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2.openai) == null ? void 0 : _b2.imageDetail\n                    },\n                    ...promptCacheBreakpoint != null && {\n                      prompt_cache_breakpoint: promptCacheBreakpoint\n                    }\n                  };\n                } else if (part.mediaType.startsWith(\"audio/\")) {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: \"audio file parts with URLs\"\n                    });\n                  }\n                  switch (part.mediaType) {\n                    case \"audio/wav\": {\n                      return {\n                        type: \"input_audio\",\n                        input_audio: {\n                          data: convertToBase64(part.data),\n                          format: \"wav\"\n                        },\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    }\n                    case \"audio/mp3\":\n                    case \"audio/mpeg\": {\n                      return {\n                        type: \"input_audio\",\n                        input_audio: {\n                          data: convertToBase64(part.data),\n                          format: \"mp3\"\n                        },\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    }\n                    default: {\n                      throw new UnsupportedFunctionalityError({\n                        functionality: `audio content parts with media type ${part.mediaType}`\n                      });\n                    }\n                  }\n                } else if (part.mediaType === \"application/pdf\") {\n                  if (part.data instanceof URL) {\n                    throw new UnsupportedFunctionalityError({\n                      functionality: \"PDF file parts with URLs\"\n                    });\n                  }\n                  return {\n                    type: \"file\",\n                    file: typeof part.data === \"string\" && part.data.startsWith(\"file-\") ? { file_id: part.data } : {\n                      filename: (_c = part.filename) != null ? _c : `part-${index}.pdf`,\n                      file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`\n                    },\n                    ...promptCacheBreakpoint != null && {\n                      prompt_cache_breakpoint: promptCacheBreakpoint\n                    }\n                  };\n                } else {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: `file part media type ${part.mediaType}`\n                  });\n                }\n              }\n            }\n          })\n        });\n        break;\n      }\n      case \"assistant\": {\n        let text = \"\";\n        const textParts = [];\n        let hasPromptCacheBreakpoint = false;\n        const toolCalls = [];\n        for (const part of content) {\n          switch (part.type) {\n            case \"text\": {\n              const promptCacheBreakpoint = getPromptCacheBreakpoint(\n                part.providerOptions\n              );\n              text += part.text;\n              textParts.push({\n                type: \"text\",\n                text: part.text,\n                ...promptCacheBreakpoint != null && {\n                  prompt_cache_breakpoint: promptCacheBreakpoint\n                }\n              });\n              hasPromptCacheBreakpoint || (hasPromptCacheBreakpoint = promptCacheBreakpoint != null);\n              break;\n            }\n            case \"tool-call\": {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: \"function\",\n                function: {\n                  name: part.toolName,\n                  arguments: serializeToolCallArguments(part.input)\n                }\n              });\n              break;\n            }\n          }\n        }\n        messages.push({\n          role: \"assistant\",\n          content: hasPromptCacheBreakpoint ? textParts : toolCalls.length > 0 ? text || null : text,\n          tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n        });\n        break;\n      }\n      case \"tool\": {\n        for (const toolResponse of content) {\n          if (toolResponse.type === \"tool-approval-response\") {\n            continue;\n          }\n          const output = toolResponse.output;\n          const promptCacheBreakpoint = (_a = output.type === \"content\" ? output.value.map((part) => getPromptCacheBreakpoint(part.providerOptions)).find((breakpoint) => breakpoint != null) : getPromptCacheBreakpoint(output.providerOptions)) != null ? _a : getPromptCacheBreakpoint(toolResponse.providerOptions);\n          let contentValue;\n          switch (output.type) {\n            case \"text\":\n            case \"error-text\":\n              contentValue = output.value;\n              break;\n            case \"execution-denied\":\n              contentValue = (_b = output.reason) != null ? _b : \"Tool call execution denied.\";\n              break;\n            case \"content\":\n            case \"json\":\n            case \"error-json\":\n              contentValue = JSON.stringify(output.value);\n              break;\n          }\n          messages.push({\n            role: \"tool\",\n            tool_call_id: toolResponse.toolCallId,\n            content: promptCacheBreakpoint == null ? contentValue : [\n              {\n                type: \"text\",\n                text: contentValue,\n                prompt_cache_breakpoint: promptCacheBreakpoint\n              }\n            ]\n          });\n        }\n        break;\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  return { messages, warnings };\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n  id,\n  model,\n  created\n}) {\n  return {\n    id: id != null ? id : void 0,\n    modelId: model != null ? model : void 0,\n    timestamp: created ? new Date(created * 1e3) : void 0\n  };\n}\n\n// src/chat/map-openai-finish-reason.ts\nfunction mapOpenAIFinishReason(finishReason) {\n  switch (finishReason) {\n    case \"stop\":\n      return \"stop\";\n    case \"length\":\n      return \"length\";\n    case \"content_filter\":\n      return \"content-filter\";\n    case \"function_call\":\n    case \"tool_calls\":\n      return \"tool-calls\";\n    default:\n      return \"other\";\n  }\n}\n\n// src/chat/openai-chat-api.ts\nimport {\n  lazySchema,\n  zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar openaiChatResponseSchema = lazySchema(\n  () => zodSchema(\n    z2.object({\n      id: z2.string().nullish(),\n      created: z2.number().nullish(),\n      model: z2.string().nullish(),\n      choices: z2.array(\n        z2.object({\n          message: z2.object({\n            role: z2.literal(\"assistant\").nullish(),\n            content: z2.string().nullish(),\n            tool_calls: z2.array(\n              z2.object({\n                id: z2.string().nullish(),\n                type: z2.literal(\"function\"),\n                function: z2.object({\n                  name: z2.string(),\n                  arguments: z2.string()\n                })\n              })\n            ).nullish(),\n            annotations: z2.array(\n              z2.object({\n                type: z2.literal(\"url_citation\"),\n                url_citation: z2.object({\n                  start_index: z2.number(),\n                  end_index: z2.number(),\n                  url: z2.string(),\n                  title: z2.string()\n                })\n              })\n            ).nullish()\n          }),\n          index: z2.number(),\n          logprobs: z2.object({\n            content: z2.array(\n              z2.object({\n                token: z2.string(),\n                logprob: z2.number(),\n                top_logprobs: z2.array(\n                  z2.object({\n                    token: z2.string(),\n                    logprob: z2.number()\n                  })\n                )\n              })\n            ).nullish()\n          }).nullish(),\n          finish_reason: z2.string().nullish()\n        })\n      ),\n      usage: z2.object({\n        prompt_tokens: z2.number().nullish(),\n        completion_tokens: z2.number().nullish(),\n        total_tokens: z2.number().nullish(),\n        prompt_tokens_details: z2.object({\n          cached_tokens: z2.number().nullish(),\n          cache_write_tokens: z2.number().nullish()\n        }).nullish(),\n        completion_tokens_details: z2.object({\n          reasoning_tokens: z2.number().nullish(),\n          accepted_prediction_tokens: z2.number().nullish(),\n          rejected_prediction_tokens: z2.number().nullish()\n        }).nullish()\n      }).nullish()\n    })\n  )\n);\nvar openaiChatChunkSchema = lazySchema(\n  () => zodSchema(\n    z2.union([\n      z2.object({\n        id: z2.string().nullish(),\n        created: z2.number().nullish(),\n        model: z2.string().nullish(),\n        choices: z2.array(\n          z2.object({\n            delta: z2.object({\n              role: z2.enum([\"assistant\"]).nullish(),\n              content: z2.string().nullish(),\n              tool_calls: z2.array(\n                z2.object({\n                  index: z2.number(),\n                  id: z2.string().nullish(),\n                  type: z2.literal(\"function\").nullish(),\n                  function: z2.object({\n                    name: z2.string().nullish(),\n                    arguments: z2.string().nullish()\n                  })\n                })\n              ).nullish(),\n              annotations: z2.array(\n                z2.object({\n                  type: z2.literal(\"url_citation\"),\n                  url_citation: z2.object({\n                    start_index: z2.number(),\n                    end_index: z2.number(),\n                    url: z2.string(),\n                    title: z2.string()\n                  })\n                })\n              ).nullish()\n            }).nullish(),\n            logprobs: z2.object({\n              content: z2.array(\n                z2.object({\n                  token: z2.string(),\n                  logprob: z2.number(),\n                  top_logprobs: z2.array(\n                    z2.object({\n                      token: z2.string(),\n                      logprob: z2.number()\n                    })\n                  )\n                })\n              ).nullish()\n            }).nullish(),\n            finish_reason: z2.string().nullish(),\n            index: z2.number()\n          })\n        ),\n        usage: z2.object({\n          prompt_tokens: z2.number().nullish(),\n          completion_tokens: z2.number().nullish(),\n          total_tokens: z2.number().nullish(),\n          prompt_tokens_details: z2.object({\n            cached_tokens: z2.number().nullish(),\n            cache_write_tokens: z2.number().nullish()\n          }).nullish(),\n          completion_tokens_details: z2.object({\n            reasoning_tokens: z2.number().nullish(),\n            accepted_prediction_tokens: z2.number().nullish(),\n            rejected_prediction_tokens: z2.number().nullish()\n          }).nullish()\n        }).nullish()\n      }),\n      openaiErrorDataSchema\n    ])\n  )\n);\n\n// src/chat/openai-chat-options.ts\nimport {\n  lazySchema as lazySchema2,\n  zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar openaiLanguageModelChatOptions = lazySchema2(\n  () => zodSchema2(\n    z3.object({\n      /**\n       * Modify the likelihood of specified tokens appearing in the completion.\n       *\n       * Accepts a JSON object that maps tokens (specified by their token ID in\n       * the GPT tokenizer) to an associated bias value from -100 to 100.\n       */\n      logitBias: z3.record(z3.coerce.number(), z3.number()).optional(),\n      /**\n       * Return the log probabilities of the tokens.\n       *\n       * Setting to true will return the log probabilities of the tokens that\n       * were generated.\n       *\n       * Setting to a number will return the log probabilities of the top n\n       * tokens that were generated.\n       */\n      logprobs: z3.union([z3.boolean(), z3.number()]).optional(),\n      /**\n       * Whether to enable parallel function calling during tool use. Default to true.\n       */\n      parallelToolCalls: z3.boolean().optional(),\n      /**\n       * A unique identifier representing your end-user, which can help OpenAI to\n       * monitor and detect abuse.\n       */\n      user: z3.string().optional(),\n      /**\n       * Reasoning effort for reasoning models. Defaults to `medium`.\n       */\n      reasoningEffort: z3.enum([\"none\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n      /**\n       * Maximum number of completion tokens to generate. Useful for reasoning models.\n       */\n      maxCompletionTokens: z3.number().optional(),\n      /**\n       * Whether to enable persistence in responses API.\n       */\n      store: z3.boolean().optional(),\n      /**\n       * Metadata to associate with the request.\n       */\n      metadata: z3.record(z3.string().max(64), z3.string().max(512)).optional(),\n      /**\n       * Parameters for prediction mode.\n       */\n      prediction: z3.record(z3.string(), z3.any()).optional(),\n      /**\n       * Service tier for the request.\n       * - 'auto': Default service tier. The request will be processed with the service tier configured in the\n       *           Project settings. Unless otherwise configured, the Project will use 'default'.\n       * - 'flex': 50% cheaper processing at the cost of increased latency. Only available for o3 and o4-mini models.\n       * - 'priority': Higher-speed processing with predictably low latency at premium cost. Available for Enterprise customers.\n       * - 'default': The request will be processed with the standard pricing and performance for the selected model.\n       *\n       * @default 'auto'\n       */\n      serviceTier: z3.enum([\"auto\", \"flex\", \"priority\", \"default\"]).optional(),\n      /**\n       * Whether to use strict JSON schema validation.\n       *\n       * @default true\n       */\n      strictJsonSchema: z3.boolean().optional(),\n      /**\n       * Controls the verbosity of the model's responses.\n       * Lower values will result in more concise responses, while higher values will result in more verbose responses.\n       */\n      textVerbosity: z3.enum([\"low\", \"medium\", \"high\"]).optional(),\n      /**\n       * A cache key for prompt caching. Allows manual control over prompt caching behavior.\n       * Useful for improving cache hit rates and working around automatic caching issues.\n       */\n      promptCacheKey: z3.string().optional(),\n      /**\n       * Prompt cache behavior for GPT-5.6 and later models.\n       * `mode` controls whether OpenAI also places an implicit breakpoint.\n       * `ttl` sets the minimum cache lifetime and currently only supports 30 minutes.\n       */\n      promptCacheOptions: z3.object({\n        mode: z3.enum([\"implicit\", \"explicit\"]).optional(),\n        ttl: z3.literal(\"30m\").optional()\n      }).optional(),\n      /**\n       * The retention policy for the prompt cache.\n       * - 'in_memory': Default. Standard prompt caching behavior.\n       * - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.\n       *          Available for models before GPT-5.6 that support extended caching.\n       *\n       * @deprecated For GPT-5.6 and later models, use `promptCacheOptions.ttl`.\n       *\n       * @default 'in_memory'\n       */\n      promptCacheRetention: z3.enum([\"in_memory\", \"24h\"]).optional(),\n      /**\n       * A stable identifier used to help detect users of your application\n       * that may be violating OpenAI's usage policies. The IDs should be a\n       * string that uniquely identifies each user. We recommend hashing their\n       * username or email address, in order to avoid sending us any identifying\n       * information.\n       */\n      safetyIdentifier: z3.string().optional(),\n      /**\n       * Override the system message mode for this model.\n       * - 'system': Use the 'system' role for system messages (default for most models)\n       * - 'developer': Use the 'developer' role for system messages (used by reasoning models)\n       * - 'remove': Remove system messages entirely\n       *\n       * If not specified, the mode is automatically determined based on the model.\n       */\n      systemMessageMode: z3.enum([\"system\", \"developer\", \"remove\"]).optional(),\n      /**\n       * Force treating this model as a reasoning model.\n       *\n       * This is useful for \"stealth\" reasoning models (e.g. via a custom baseURL)\n       * where the model ID is not recognized by the SDK's allowlist.\n       *\n       * When enabled, the SDK applies reasoning-model parameter compatibility rules\n       * and defaults `systemMessageMode` to `developer` unless overridden.\n       */\n      forceReasoning: z3.boolean().optional()\n    })\n  )\n);\n\n// src/chat/openai-chat-prepare-tools.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareChatTools({\n  tools,\n  toolChoice\n}) {\n  tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  const toolWarnings = [];\n  if (tools == null) {\n    return { tools: void 0, toolChoice: void 0, toolWarnings };\n  }\n  const openaiTools2 = [];\n  for (const tool of tools) {\n    switch (tool.type) {\n      case \"function\":\n        openaiTools2.push({\n          type: \"function\",\n          function: {\n            name: tool.name,\n            description: tool.description,\n            parameters: tool.inputSchema,\n            ...tool.strict != null ? { strict: tool.strict } : {}\n          }\n        });\n        break;\n      default:\n        toolWarnings.push({\n          type: \"unsupported\",\n          feature: `tool type: ${tool.type}`\n        });\n        break;\n    }\n  }\n  if (toolChoice == null) {\n    return { tools: openaiTools2, toolChoice: void 0, toolWarnings };\n  }\n  const type = toolChoice.type;\n  switch (type) {\n    case \"auto\":\n    case \"none\":\n    case \"required\":\n      return { tools: openaiTools2, toolChoice: type, toolWarnings };\n    case \"tool\":\n      return {\n        tools: openaiTools2,\n        toolChoice: {\n          type: \"function\",\n          function: {\n            name: toolChoice.toolName\n          }\n        },\n        toolWarnings\n      };\n    default: {\n      const _exhaustiveCheck = type;\n      throw new UnsupportedFunctionalityError2({\n        functionality: `tool choice type: ${_exhaustiveCheck}`\n      });\n    }\n  }\n}\n\n// src/chat/openai-chat-language-model.ts\nvar OpenAIChatLanguageModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.supportedUrls = {\n      \"image/*\": [/^https?:\\/\\/.*$/]\n    };\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions\n  }) {\n    var _a, _b, _c, _d, _e;\n    const warnings = [];\n    const openaiOptions = (_a = await parseProviderOptions({\n      provider: \"openai\",\n      providerOptions,\n      schema: openaiLanguageModelChatOptions\n    })) != null ? _a : {};\n    const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n    const isReasoningModel = (_b = openaiOptions.forceReasoning) != null ? _b : modelCapabilities.isReasoningModel;\n    if (topK != null) {\n      warnings.push({ type: \"unsupported\", feature: \"topK\" });\n    }\n    const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(\n      {\n        prompt,\n        systemMessageMode: (_c = openaiOptions.systemMessageMode) != null ? _c : isReasoningModel ? \"developer\" : modelCapabilities.systemMessageMode\n      }\n    );\n    warnings.push(...messageWarnings);\n    const strictJsonSchema = (_d = openaiOptions.strictJsonSchema) != null ? _d : true;\n    const baseArgs = {\n      // model id:\n      model: this.modelId,\n      // model specific settings:\n      logit_bias: openaiOptions.logitBias,\n      logprobs: openaiOptions.logprobs === true || typeof openaiOptions.logprobs === \"number\" ? true : void 0,\n      top_logprobs: typeof openaiOptions.logprobs === \"number\" ? openaiOptions.logprobs : typeof openaiOptions.logprobs === \"boolean\" ? openaiOptions.logprobs ? 0 : void 0 : void 0,\n      user: openaiOptions.user,\n      parallel_tool_calls: openaiOptions.parallelToolCalls,\n      // standardized settings:\n      max_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      frequency_penalty: frequencyPenalty,\n      presence_penalty: presencePenalty,\n      response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n        type: \"json_schema\",\n        json_schema: {\n          schema: responseFormat.schema,\n          strict: strictJsonSchema,\n          name: (_e = responseFormat.name) != null ? _e : \"response\",\n          description: responseFormat.description\n        }\n      } : { type: \"json_object\" } : void 0,\n      stop: stopSequences,\n      seed,\n      verbosity: openaiOptions.textVerbosity,\n      // openai specific settings:\n      // TODO AI SDK 6: remove, we auto-map maxOutputTokens now\n      max_completion_tokens: openaiOptions.maxCompletionTokens,\n      store: openaiOptions.store,\n      metadata: openaiOptions.metadata,\n      prediction: openaiOptions.prediction,\n      reasoning_effort: openaiOptions.reasoningEffort,\n      service_tier: openaiOptions.serviceTier,\n      prompt_cache_key: openaiOptions.promptCacheKey,\n      prompt_cache_options: openaiOptions.promptCacheOptions,\n      prompt_cache_retention: openaiOptions.promptCacheRetention,\n      safety_identifier: openaiOptions.safetyIdentifier,\n      // messages:\n      messages\n    };\n    if (isReasoningModel) {\n      if (openaiOptions.reasoningEffort !== \"none\" || !modelCapabilities.supportsNonReasoningParameters) {\n        if (baseArgs.temperature != null) {\n          baseArgs.temperature = void 0;\n          warnings.push({\n            type: \"unsupported\",\n            feature: \"temperature\",\n            details: \"temperature is not supported for reasoning models\"\n          });\n        }\n        if (baseArgs.top_p != null) {\n          baseArgs.top_p = void 0;\n          warnings.push({\n            type: \"unsupported\",\n            feature: \"topP\",\n            details: \"topP is not supported for reasoning models\"\n          });\n        }\n        if (baseArgs.logprobs != null) {\n          baseArgs.logprobs = void 0;\n          warnings.push({\n            type: \"other\",\n            message: \"logprobs is not supported for reasoning models\"\n          });\n        }\n      }\n      if (baseArgs.frequency_penalty != null) {\n        baseArgs.frequency_penalty = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"frequencyPenalty\",\n          details: \"frequencyPenalty is not supported for reasoning models\"\n        });\n      }\n      if (baseArgs.presence_penalty != null) {\n        baseArgs.presence_penalty = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"presencePenalty\",\n          details: \"presencePenalty is not supported for reasoning models\"\n        });\n      }\n      if (baseArgs.logit_bias != null) {\n        baseArgs.logit_bias = void 0;\n        warnings.push({\n          type: \"other\",\n          message: \"logitBias is not supported for reasoning models\"\n        });\n      }\n      if (baseArgs.top_logprobs != null) {\n        baseArgs.top_logprobs = void 0;\n        warnings.push({\n          type: \"other\",\n          message: \"topLogprobs is not supported for reasoning models\"\n        });\n      }\n      if (baseArgs.max_tokens != null) {\n        if (baseArgs.max_completion_tokens == null) {\n          baseArgs.max_completion_tokens = baseArgs.max_tokens;\n        }\n        baseArgs.max_tokens = void 0;\n      }\n    } else if (this.modelId.startsWith(\"gpt-4o-search-preview\") || this.modelId.startsWith(\"gpt-4o-mini-search-preview\")) {\n      if (baseArgs.temperature != null) {\n        baseArgs.temperature = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"temperature\",\n          details: \"temperature is not supported for the search preview models and has been removed.\"\n        });\n      }\n    }\n    if (openaiOptions.serviceTier === \"flex\" && !modelCapabilities.supportsFlexProcessing) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"serviceTier\",\n        details: \"flex processing is only available for o3, o4-mini, and gpt-5 models\"\n      });\n      baseArgs.service_tier = void 0;\n    }\n    if (openaiOptions.serviceTier === \"priority\" && !modelCapabilities.supportsPriorityProcessing) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"serviceTier\",\n        details: \"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported\"\n      });\n      baseArgs.service_tier = void 0;\n    }\n    const {\n      tools: openaiTools2,\n      toolChoice: openaiToolChoice,\n      toolWarnings\n    } = prepareChatTools({\n      tools,\n      toolChoice\n    });\n    return {\n      args: {\n        ...baseArgs,\n        tools: openaiTools2,\n        tool_choice: openaiToolChoice\n      },\n      warnings: [...warnings, ...toolWarnings]\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    const { args: body, warnings } = await this.getArgs(options);\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi({\n      url: this.config.url({\n        path: \"/chat/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        openaiChatResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const choice = response.choices[0];\n    const content = [];\n    const text = choice.message.content;\n    if (text != null && text.length > 0) {\n      content.push({ type: \"text\", text });\n    }\n    for (const toolCall of (_a = choice.message.tool_calls) != null ? _a : []) {\n      content.push({\n        type: \"tool-call\",\n        toolCallId: (_b = toolCall.id) != null ? _b : generateId(),\n        toolName: toolCall.function.name,\n        input: toolCall.function.arguments\n      });\n    }\n    for (const annotation of (_c = choice.message.annotations) != null ? _c : []) {\n      content.push({\n        type: \"source\",\n        sourceType: \"url\",\n        id: generateId(),\n        url: annotation.url_citation.url,\n        title: annotation.url_citation.title\n      });\n    }\n    const completionTokenDetails = (_d = response.usage) == null ? void 0 : _d.completion_tokens_details;\n    const promptTokenDetails = (_e = response.usage) == null ? void 0 : _e.prompt_tokens_details;\n    const providerMetadata = { openai: {} };\n    if ((completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens) != null) {\n      providerMetadata.openai.acceptedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens;\n    }\n    if ((completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens) != null) {\n      providerMetadata.openai.rejectedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.rejected_prediction_tokens;\n    }\n    if (((_f = choice.logprobs) == null ? void 0 : _f.content) != null) {\n      providerMetadata.openai.logprobs = choice.logprobs.content;\n    }\n    return {\n      content,\n      finishReason: {\n        unified: mapOpenAIFinishReason(choice.finish_reason),\n        raw: (_g = choice.finish_reason) != null ? _g : void 0\n      },\n      usage: convertOpenAIChatUsage(response.usage),\n      request: { body },\n      response: {\n        ...getResponseMetadata(response),\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      warnings,\n      providerMetadata\n    };\n  }\n  async doStream(options) {\n    const { args, warnings } = await this.getArgs(options);\n    const body = {\n      ...args,\n      stream: true,\n      stream_options: {\n        include_usage: true\n      }\n    };\n    const url = this.config.url({\n      path: \"/chat/completions\",\n      modelId: this.modelId\n    });\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url,\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        openaiChatChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const checkedResponse = await throwIfOpenAIStreamErrorBeforeOutput({\n      stream: response,\n      getError: (chunk) => \"error\" in chunk ? chunk.error : void 0,\n      isOutputChunk: isOpenAIChatOutputChunk,\n      url,\n      requestBodyValues: body,\n      responseHeaders\n    });\n    const toolCalls = [];\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    let usage = void 0;\n    let metadataExtracted = false;\n    let isActiveText = false;\n    const providerMetadata = { openai: {} };\n    const result = {\n      stream: checkedResponse.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: chunk.error });\n              return;\n            }\n            const value = chunk.value;\n            if (\"error\" in value) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: value.error });\n              return;\n            }\n            if (!metadataExtracted) {\n              const metadata = getResponseMetadata(value);\n              if (Object.values(metadata).some(Boolean)) {\n                metadataExtracted = true;\n                controller.enqueue({\n                  type: \"response-metadata\",\n                  ...getResponseMetadata(value)\n                });\n              }\n            }\n            if (value.usage != null) {\n              usage = value.usage;\n              if (((_a = value.usage.completion_tokens_details) == null ? void 0 : _a.accepted_prediction_tokens) != null) {\n                providerMetadata.openai.acceptedPredictionTokens = (_b = value.usage.completion_tokens_details) == null ? void 0 : _b.accepted_prediction_tokens;\n              }\n              if (((_c = value.usage.completion_tokens_details) == null ? void 0 : _c.rejected_prediction_tokens) != null) {\n                providerMetadata.openai.rejectedPredictionTokens = (_d = value.usage.completion_tokens_details) == null ? void 0 : _d.rejected_prediction_tokens;\n              }\n            }\n            const choice = value.choices[0];\n            if ((choice == null ? void 0 : choice.finish_reason) != null) {\n              finishReason = {\n                unified: mapOpenAIFinishReason(choice.finish_reason),\n                raw: choice.finish_reason\n              };\n            }\n            if (((_e = choice == null ? void 0 : choice.logprobs) == null ? void 0 : _e.content) != null) {\n              providerMetadata.openai.logprobs = choice.logprobs.content;\n            }\n            if ((choice == null ? void 0 : choice.delta) == null) {\n              return;\n            }\n            const delta = choice.delta;\n            if (delta.content != null) {\n              if (!isActiveText) {\n                controller.enqueue({ type: \"text-start\", id: \"0\" });\n                isActiveText = true;\n              }\n              controller.enqueue({\n                type: \"text-delta\",\n                id: \"0\",\n                delta: delta.content\n              });\n            }\n            if (delta.tool_calls != null) {\n              for (const toolCallDelta of delta.tool_calls) {\n                const index = toolCallDelta.index;\n                if (toolCalls[index] == null) {\n                  if (toolCallDelta.type != null && toolCallDelta.type !== \"function\") {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function' type.`\n                    });\n                  }\n                  if (toolCallDelta.id == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'id' to be a string.`\n                    });\n                  }\n                  if (((_f = toolCallDelta.function) == null ? void 0 : _f.name) == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function.name' to be a string.`\n                    });\n                  }\n                  controller.enqueue({\n                    type: \"tool-input-start\",\n                    id: toolCallDelta.id,\n                    toolName: toolCallDelta.function.name\n                  });\n                  toolCalls[index] = {\n                    id: toolCallDelta.id,\n                    type: \"function\",\n                    function: {\n                      name: toolCallDelta.function.name,\n                      arguments: (_g = toolCallDelta.function.arguments) != null ? _g : \"\"\n                    },\n                    hasFinished: false\n                  };\n                  const toolCall2 = toolCalls[index];\n                  if (((_h = toolCall2.function) == null ? void 0 : _h.name) != null && ((_i = toolCall2.function) == null ? void 0 : _i.arguments) != null) {\n                    if (toolCall2.function.arguments.length > 0) {\n                      controller.enqueue({\n                        type: \"tool-input-delta\",\n                        id: toolCall2.id,\n                        delta: toolCall2.function.arguments\n                      });\n                    }\n                  }\n                  continue;\n                }\n                const toolCall = toolCalls[index];\n                if (toolCall.hasFinished) {\n                  continue;\n                }\n                if (((_j = toolCallDelta.function) == null ? void 0 : _j.arguments) != null) {\n                  toolCall.function.arguments += (_l = (_k = toolCallDelta.function) == null ? void 0 : _k.arguments) != null ? _l : \"\";\n                }\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.id,\n                  delta: (_m = toolCallDelta.function.arguments) != null ? _m : \"\"\n                });\n              }\n            }\n            if (delta.annotations != null) {\n              for (const annotation of delta.annotations) {\n                controller.enqueue({\n                  type: \"source\",\n                  sourceType: \"url\",\n                  id: generateId(),\n                  url: annotation.url_citation.url,\n                  title: annotation.url_citation.title\n                });\n              }\n            }\n          },\n          flush(controller) {\n            var _a;\n            if (isActiveText) {\n              controller.enqueue({ type: \"text-end\", id: \"0\" });\n            }\n            for (const toolCall of toolCalls) {\n              if (!toolCall.hasFinished) {\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: toolCall.id\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n                  toolName: toolCall.function.name,\n                  input: toolCall.function.arguments\n                });\n                toolCall.hasFinished = true;\n              }\n            }\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              usage: convertOpenAIChatUsage(usage),\n              ...providerMetadata != null ? { providerMetadata } : {}\n            });\n          }\n        })\n      ),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n    return result;\n  }\n};\nfunction isOpenAIChatOutputChunk(chunk) {\n  if (\"error\" in chunk) {\n    return false;\n  }\n  return chunk.choices.some((choice) => {\n    const delta = choice.delta;\n    return (delta == null ? void 0 : delta.content) != null && delta.content.length > 0 || (delta == null ? void 0 : delta.tool_calls) != null && delta.tool_calls.length > 0 || (delta == null ? void 0 : delta.annotations) != null && delta.annotations.length > 0;\n  });\n}\n\n// src/completion/openai-completion-language-model.ts\nimport {\n  combineHeaders as combineHeaders2,\n  createEventSourceResponseHandler as createEventSourceResponseHandler2,\n  createJsonResponseHandler as createJsonResponseHandler2,\n  parseProviderOptions as parseProviderOptions2,\n  postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\n\n// src/completion/convert-openai-completion-usage.ts\nfunction convertOpenAICompletionUsage(usage) {\n  var _a, _b, _c, _d;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n  const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n  return {\n    inputTokens: {\n      total: (_c = usage.prompt_tokens) != null ? _c : void 0,\n      noCache: promptTokens,\n      cacheRead: void 0,\n      cacheWrite: void 0\n    },\n    outputTokens: {\n      total: (_d = usage.completion_tokens) != null ? _d : void 0,\n      text: completionTokens,\n      reasoning: void 0\n    },\n    raw: usage\n  };\n}\n\n// src/completion/convert-to-openai-completion-prompt.ts\nimport {\n  InvalidPromptError,\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nfunction convertToOpenAICompletionPrompt({\n  prompt,\n  user = \"user\",\n  assistant = \"assistant\"\n}) {\n  let text = \"\";\n  if (prompt[0].role === \"system\") {\n    text += `${prompt[0].content}\n\n`;\n    prompt = prompt.slice(1);\n  }\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case \"system\": {\n        throw new InvalidPromptError({\n          message: \"Unexpected system message in prompt: ${content}\",\n          prompt\n        });\n      }\n      case \"user\": {\n        const userMessage = content.map((part) => {\n          switch (part.type) {\n            case \"text\": {\n              return part.text;\n            }\n          }\n        }).filter(Boolean).join(\"\");\n        text += `${user}:\n${userMessage}\n\n`;\n        break;\n      }\n      case \"assistant\": {\n        const assistantMessage = content.map((part) => {\n          switch (part.type) {\n            case \"text\": {\n              return part.text;\n            }\n            case \"tool-call\": {\n              throw new UnsupportedFunctionalityError3({\n                functionality: \"tool-call messages\"\n              });\n            }\n          }\n        }).join(\"\");\n        text += `${assistant}:\n${assistantMessage}\n\n`;\n        break;\n      }\n      case \"tool\": {\n        throw new UnsupportedFunctionalityError3({\n          functionality: \"tool messages\"\n        });\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  text += `${assistant}:\n`;\n  return {\n    prompt: text,\n    stopSequences: [`\n${user}:`]\n  };\n}\n\n// src/completion/get-response-metadata.ts\nfunction getResponseMetadata2({\n  id,\n  model,\n  created\n}) {\n  return {\n    id: id != null ? id : void 0,\n    modelId: model != null ? model : void 0,\n    timestamp: created != null ? new Date(created * 1e3) : void 0\n  };\n}\n\n// src/completion/map-openai-finish-reason.ts\nfunction mapOpenAIFinishReason2(finishReason) {\n  switch (finishReason) {\n    case \"stop\":\n      return \"stop\";\n    case \"length\":\n      return \"length\";\n    case \"content_filter\":\n      return \"content-filter\";\n    case \"function_call\":\n    case \"tool_calls\":\n      return \"tool-calls\";\n    default:\n      return \"other\";\n  }\n}\n\n// src/completion/openai-completion-api.ts\nimport { z as z4 } from \"zod/v4\";\nimport {\n  lazySchema as lazySchema3,\n  zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nvar openaiCompletionResponseSchema = lazySchema3(\n  () => zodSchema3(\n    z4.object({\n      id: z4.string().nullish(),\n      created: z4.number().nullish(),\n      model: z4.string().nullish(),\n      choices: z4.array(\n        z4.object({\n          text: z4.string(),\n          finish_reason: z4.string(),\n          logprobs: z4.object({\n            tokens: z4.array(z4.string()),\n            token_logprobs: z4.array(z4.number()),\n            top_logprobs: z4.array(z4.record(z4.string(), z4.number())).nullish()\n          }).nullish()\n        })\n      ),\n      usage: z4.object({\n        prompt_tokens: z4.number(),\n        completion_tokens: z4.number(),\n        total_tokens: z4.number()\n      }).nullish()\n    })\n  )\n);\nvar openaiCompletionChunkSchema = lazySchema3(\n  () => zodSchema3(\n    z4.union([\n      z4.object({\n        id: z4.string().nullish(),\n        created: z4.number().nullish(),\n        model: z4.string().nullish(),\n        choices: z4.array(\n          z4.object({\n            text: z4.string(),\n            finish_reason: z4.string().nullish(),\n            index: z4.number(),\n            logprobs: z4.object({\n              tokens: z4.array(z4.string()),\n              token_logprobs: z4.array(z4.number()),\n              top_logprobs: z4.array(z4.record(z4.string(), z4.number())).nullish()\n            }).nullish()\n          })\n        ),\n        usage: z4.object({\n          prompt_tokens: z4.number(),\n          completion_tokens: z4.number(),\n          total_tokens: z4.number()\n        }).nullish()\n      }),\n      openaiErrorDataSchema\n    ])\n  )\n);\n\n// src/completion/openai-completion-options.ts\nimport {\n  lazySchema as lazySchema4,\n  zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar openaiLanguageModelCompletionOptions = lazySchema4(\n  () => zodSchema4(\n    z5.object({\n      /**\n       * Echo back the prompt in addition to the completion.\n       */\n      echo: z5.boolean().optional(),\n      /**\n       * Modify the likelihood of specified tokens appearing in the completion.\n       *\n       * Accepts a JSON object that maps tokens (specified by their token ID in\n       * the GPT tokenizer) to an associated bias value from -100 to 100. You\n       * can use this tokenizer tool to convert text to token IDs. Mathematically,\n       * the bias is added to the logits generated by the model prior to sampling.\n       * The exact effect will vary per model, but values between -1 and 1 should\n       * decrease or increase likelihood of selection; values like -100 or 100\n       * should result in a ban or exclusive selection of the relevant token.\n       *\n       * As an example, you can pass {\"50256\": -100} to prevent the <|endoftext|>\n       * token from being generated.\n       */\n      logitBias: z5.record(z5.string(), z5.number()).optional(),\n      /**\n       * The suffix that comes after a completion of inserted text.\n       */\n      suffix: z5.string().optional(),\n      /**\n       * A unique identifier representing your end-user, which can help OpenAI to\n       * monitor and detect abuse. Learn more.\n       */\n      user: z5.string().optional(),\n      /**\n       * Return the log probabilities of the tokens. Including logprobs will increase\n       * the response size and can slow down response times. However, it can\n       * be useful to better understand how the model is behaving.\n       * Setting to true will return the log probabilities of the tokens that\n       * were generated.\n       * Setting to a number will return the log probabilities of the top n\n       * tokens that were generated.\n       */\n      logprobs: z5.union([z5.boolean(), z5.number()]).optional()\n    })\n  )\n);\n\n// src/completion/openai-completion-language-model.ts\nvar OpenAICompletionLanguageModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.supportedUrls = {\n      // No URLs are supported for completion models.\n    };\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get providerOptionsName() {\n    return this.config.provider.split(\".\")[0].trim();\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences: userStopSequences,\n    responseFormat,\n    tools,\n    toolChoice,\n    seed,\n    providerOptions\n  }) {\n    const warnings = [];\n    const openaiOptions = {\n      ...await parseProviderOptions2({\n        provider: \"openai\",\n        providerOptions,\n        schema: openaiLanguageModelCompletionOptions\n      }),\n      ...await parseProviderOptions2({\n        provider: this.providerOptionsName,\n        providerOptions,\n        schema: openaiLanguageModelCompletionOptions\n      })\n    };\n    if (topK != null) {\n      warnings.push({ type: \"unsupported\", feature: \"topK\" });\n    }\n    if (tools == null ? void 0 : tools.length) {\n      warnings.push({ type: \"unsupported\", feature: \"tools\" });\n    }\n    if (toolChoice != null) {\n      warnings.push({ type: \"unsupported\", feature: \"toolChoice\" });\n    }\n    if (responseFormat != null && responseFormat.type !== \"text\") {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"responseFormat\",\n        details: \"JSON response format is not supported.\"\n      });\n    }\n    const { prompt: completionPrompt, stopSequences } = convertToOpenAICompletionPrompt({ prompt });\n    const stop = [...stopSequences != null ? stopSequences : [], ...userStopSequences != null ? userStopSequences : []];\n    return {\n      args: {\n        // model id:\n        model: this.modelId,\n        // model specific settings:\n        echo: openaiOptions.echo,\n        logit_bias: openaiOptions.logitBias,\n        logprobs: (openaiOptions == null ? void 0 : openaiOptions.logprobs) === true ? 0 : (openaiOptions == null ? void 0 : openaiOptions.logprobs) === false ? void 0 : openaiOptions == null ? void 0 : openaiOptions.logprobs,\n        suffix: openaiOptions.suffix,\n        user: openaiOptions.user,\n        // standardized settings:\n        max_tokens: maxOutputTokens,\n        temperature,\n        top_p: topP,\n        frequency_penalty: frequencyPenalty,\n        presence_penalty: presencePenalty,\n        seed,\n        // prompt:\n        prompt: completionPrompt,\n        // stop sequences:\n        stop: stop.length > 0 ? stop : void 0\n      },\n      warnings\n    };\n  }\n  async doGenerate(options) {\n    var _a;\n    const { args, warnings } = await this.getArgs(options);\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi2({\n      url: this.config.url({\n        path: \"/completions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders2(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler2(\n        openaiCompletionResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const choice = response.choices[0];\n    const providerMetadata = { openai: {} };\n    if (choice.logprobs != null) {\n      providerMetadata.openai.logprobs = choice.logprobs;\n    }\n    return {\n      content: [{ type: \"text\", text: choice.text }],\n      usage: convertOpenAICompletionUsage(response.usage),\n      finishReason: {\n        unified: mapOpenAIFinishReason2(choice.finish_reason),\n        raw: (_a = choice.finish_reason) != null ? _a : void 0\n      },\n      request: { body: args },\n      response: {\n        ...getResponseMetadata2(response),\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      providerMetadata,\n      warnings\n    };\n  }\n  async doStream(options) {\n    const { args, warnings } = await this.getArgs(options);\n    const body = {\n      ...args,\n      stream: true,\n      stream_options: {\n        include_usage: true\n      }\n    };\n    const url = this.config.url({\n      path: \"/completions\",\n      modelId: this.modelId\n    });\n    const { responseHeaders, value: response } = await postJsonToApi2({\n      url,\n      headers: combineHeaders2(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler2(\n        openaiCompletionChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const checkedResponse = await throwIfOpenAIStreamErrorBeforeOutput({\n      stream: response,\n      getError: (chunk) => \"error\" in chunk ? chunk.error : void 0,\n      isOutputChunk: isOpenAICompletionOutputChunk,\n      url,\n      requestBodyValues: body,\n      responseHeaders\n    });\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    const providerMetadata = { openai: {} };\n    let usage = void 0;\n    let isFirstChunk = true;\n    const result = {\n      stream: checkedResponse.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: chunk.error });\n              return;\n            }\n            const value = chunk.value;\n            if (\"error\" in value) {\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error: value.error });\n              return;\n            }\n            if (isFirstChunk) {\n              isFirstChunk = false;\n              controller.enqueue({\n                type: \"response-metadata\",\n                ...getResponseMetadata2(value)\n              });\n              controller.enqueue({ type: \"text-start\", id: \"0\" });\n            }\n            if (value.usage != null) {\n              usage = value.usage;\n            }\n            const choice = value.choices[0];\n            if ((choice == null ? void 0 : choice.finish_reason) != null) {\n              finishReason = {\n                unified: mapOpenAIFinishReason2(choice.finish_reason),\n                raw: choice.finish_reason\n              };\n            }\n            if ((choice == null ? void 0 : choice.logprobs) != null) {\n              providerMetadata.openai.logprobs = choice.logprobs;\n            }\n            if ((choice == null ? void 0 : choice.text) != null && choice.text.length > 0) {\n              controller.enqueue({\n                type: \"text-delta\",\n                id: \"0\",\n                delta: choice.text\n              });\n            }\n          },\n          flush(controller) {\n            if (!isFirstChunk) {\n              controller.enqueue({ type: \"text-end\", id: \"0\" });\n            }\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              providerMetadata,\n              usage: convertOpenAICompletionUsage(usage)\n            });\n          }\n        })\n      ),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n    return result;\n  }\n};\nfunction isOpenAICompletionOutputChunk(chunk) {\n  return !(\"error\" in chunk) && chunk.choices.some((choice) => choice.text.length > 0);\n}\n\n// src/embedding/openai-embedding-model.ts\nimport {\n  TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders as combineHeaders3,\n  createJsonResponseHandler as createJsonResponseHandler3,\n  parseProviderOptions as parseProviderOptions3,\n  postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/embedding/openai-embedding-options.ts\nimport {\n  lazySchema as lazySchema5,\n  zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar openaiEmbeddingModelOptions = lazySchema5(\n  () => zodSchema5(\n    z6.object({\n      /**\n       * The number of dimensions the resulting output embeddings should have.\n       * Only supported in text-embedding-3 and later models.\n       */\n      dimensions: z6.number().optional(),\n      /**\n       * A unique identifier representing your end-user, which can help OpenAI to\n       * monitor and detect abuse. Learn more.\n       */\n      user: z6.string().optional()\n    })\n  )\n);\n\n// src/embedding/openai-embedding-api.ts\nimport { lazySchema as lazySchema6, zodSchema as zodSchema6 } from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar openaiTextEmbeddingResponseSchema = lazySchema6(\n  () => zodSchema6(\n    z7.object({\n      data: z7.array(z7.object({ embedding: z7.array(z7.number()) })),\n      usage: z7.object({ prompt_tokens: z7.number() }).nullish()\n    })\n  )\n);\n\n// src/embedding/openai-embedding-model.ts\nvar OpenAIEmbeddingModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.maxEmbeddingsPerCall = 2048;\n    this.supportsParallelCalls = true;\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions\n  }) {\n    var _a;\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values\n      });\n    }\n    const openaiOptions = (_a = await parseProviderOptions3({\n      provider: \"openai\",\n      providerOptions,\n      schema: openaiEmbeddingModelOptions\n    })) != null ? _a : {};\n    const {\n      responseHeaders,\n      value: response,\n      rawValue\n    } = await postJsonToApi3({\n      url: this.config.url({\n        path: \"/embeddings\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders3(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        input: values,\n        encoding_format: \"float\",\n        dimensions: openaiOptions.dimensions,\n        user: openaiOptions.user\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler3(\n        openaiTextEmbeddingResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      warnings: [],\n      embeddings: response.data.map((item) => item.embedding),\n      usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n      response: { headers: responseHeaders, body: rawValue }\n    };\n  }\n};\n\n// src/image/openai-image-model.ts\nimport {\n  combineHeaders as combineHeaders4,\n  convertBase64ToUint8Array,\n  convertToFormData,\n  createJsonResponseHandler as createJsonResponseHandler4,\n  downloadBlob,\n  parseProviderOptions as parseProviderOptions4,\n  postFormDataToApi,\n  postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\n\n// src/image/openai-image-api.ts\nimport { lazySchema as lazySchema7, zodSchema as zodSchema7 } from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar openaiImageResponseSchema = lazySchema7(\n  () => zodSchema7(\n    z8.object({\n      created: z8.number().nullish(),\n      data: z8.array(\n        z8.object({\n          b64_json: z8.string(),\n          revised_prompt: z8.string().nullish()\n        })\n      ),\n      background: z8.string().nullish(),\n      output_format: z8.string().nullish(),\n      size: z8.string().nullish(),\n      quality: z8.string().nullish(),\n      usage: z8.object({\n        input_tokens: z8.number().nullish(),\n        output_tokens: z8.number().nullish(),\n        total_tokens: z8.number().nullish(),\n        input_tokens_details: z8.object({\n          image_tokens: z8.number().nullish(),\n          text_tokens: z8.number().nullish()\n        }).nullish()\n      }).nullish()\n    })\n  )\n);\n\n// src/image/openai-image-model-options.ts\nimport {\n  lazySchema as lazySchema8,\n  zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar modelMaxImagesPerCall = {\n  \"dall-e-3\": 1,\n  \"dall-e-2\": 10,\n  \"gpt-image-1\": 10,\n  \"gpt-image-1-mini\": 10,\n  \"gpt-image-1.5\": 10,\n  \"gpt-image-2\": 10,\n  \"chatgpt-image-latest\": 10\n};\nvar defaultResponseFormatPrefixes = [\"chatgpt-image-\", \"gpt-image-\"];\nfunction hasDefaultResponseFormat(modelId) {\n  return defaultResponseFormatPrefixes.some(\n    (prefix) => modelId.startsWith(prefix)\n  );\n}\nfunction getMaxImagesPerCall(modelId) {\n  var _a;\n  return (_a = modelMaxImagesPerCall[modelId]) != null ? _a : modelId.startsWith(\"gpt-image-\") ? 10 : 1;\n}\nvar baseImageModelOptionsObject = z9.object({\n  /**\n   * Quality of the generated image(s).\n   *\n   * Valid values: `standard`, `hd`, `low`, `medium`, `high`, `auto`.\n   */\n  quality: z9.enum([\"standard\", \"hd\", \"low\", \"medium\", \"high\", \"auto\"]).optional(),\n  /**\n   * Background behavior for the generated image(s).\n   *\n   * If `transparent`, the output format must support transparency\n   * (i.e. `png` or `webp`).\n   */\n  background: z9.enum([\"transparent\", \"opaque\", \"auto\"]).optional(),\n  /**\n   * Format in which the generated image(s) are returned.\n   */\n  outputFormat: z9.enum([\"png\", \"jpeg\", \"webp\"]).optional(),\n  /**\n   * Compression level (0-100) for the generated image(s). Applies to the\n   * `jpeg` and `webp` output formats.\n   */\n  outputCompression: z9.number().int().min(0).max(100).optional(),\n  /**\n   * A unique identifier representing your end-user, which can help OpenAI\n   * to monitor and detect abuse.\n   */\n  user: z9.string().optional()\n});\nvar openaiImageModelOptions = lazySchema8(\n  () => zodSchema8(baseImageModelOptionsObject)\n);\nvar openaiImageModelGenerationOptions = lazySchema8(\n  () => zodSchema8(\n    baseImageModelOptionsObject.extend({\n      /**\n       * Style of the generated image. `vivid` produces hyper-real and\n       * dramatic images; `natural` produces more subdued, less hyper-real\n       * looking images.\n       */\n      style: z9.enum([\"vivid\", \"natural\"]).optional(),\n      /**\n       * Content moderation level for the generated image(s). `low` applies\n       * less restrictive filtering.\n       */\n      moderation: z9.enum([\"auto\", \"low\"]).optional()\n    })\n  )\n);\nvar openaiImageModelEditOptions = lazySchema8(\n  () => zodSchema8(\n    baseImageModelOptionsObject.extend({\n      /**\n       * Fidelity of the output image(s) to the input image(s).\n       */\n      inputFidelity: z9.enum([\"high\", \"low\"]).optional()\n    })\n  )\n);\n\n// src/image/openai-image-model.ts\nvar OpenAIImageModel = class {\n  constructor(modelId, config) {\n    this.modelId = modelId;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n  }\n  get maxImagesPerCall() {\n    return getMaxImagesPerCall(this.modelId);\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async doGenerate({\n    prompt,\n    files,\n    mask,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal\n  }) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n    const warnings = [];\n    if (aspectRatio != null) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"aspectRatio\",\n        details: \"This model does not support aspect ratio. Use `size` instead.\"\n      });\n    }\n    if (seed != null) {\n      warnings.push({ type: \"unsupported\", feature: \"seed\" });\n    }\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    if (files != null) {\n      const openaiOptions2 = (_d = await parseProviderOptions4({\n        provider: \"openai\",\n        providerOptions,\n        schema: openaiImageModelEditOptions\n      })) != null ? _d : {};\n      const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n        url: this.config.url({\n          path: \"/images/edits\",\n          modelId: this.modelId\n        }),\n        headers: combineHeaders4(this.config.headers(), headers),\n        formData: convertToFormData({\n          model: this.modelId,\n          prompt,\n          image: await Promise.all(\n            files.map(\n              (file) => file.type === \"file\" ? new Blob(\n                [\n                  file.data instanceof Uint8Array ? new Blob([file.data], {\n                    type: file.mediaType\n                  }) : new Blob([convertBase64ToUint8Array(file.data)], {\n                    type: file.mediaType\n                  })\n                ],\n                { type: file.mediaType }\n              ) : downloadBlob(file.url)\n            )\n          ),\n          mask: mask != null ? await fileToBlob(mask) : void 0,\n          n,\n          size,\n          quality: openaiOptions2.quality,\n          background: openaiOptions2.background,\n          output_format: openaiOptions2.outputFormat,\n          output_compression: openaiOptions2.outputCompression,\n          input_fidelity: openaiOptions2.inputFidelity,\n          user: openaiOptions2.user\n        }),\n        failedResponseHandler: openaiFailedResponseHandler,\n        successfulResponseHandler: createJsonResponseHandler4(\n          openaiImageResponseSchema\n        ),\n        abortSignal,\n        fetch: this.config.fetch\n      });\n      return {\n        images: response2.data.map((item) => item.b64_json),\n        warnings,\n        usage: response2.usage != null ? {\n          inputTokens: (_e = response2.usage.input_tokens) != null ? _e : void 0,\n          outputTokens: (_f = response2.usage.output_tokens) != null ? _f : void 0,\n          totalTokens: (_g = response2.usage.total_tokens) != null ? _g : void 0\n        } : void 0,\n        response: {\n          timestamp: currentDate,\n          modelId: this.modelId,\n          headers: responseHeaders2\n        },\n        providerMetadata: {\n          openai: {\n            images: response2.data.map((item, index) => {\n              var _a2, _b2, _c2, _d2, _e2, _f2;\n              return {\n                ...item.revised_prompt ? { revisedPrompt: item.revised_prompt } : {},\n                created: (_a2 = response2.created) != null ? _a2 : void 0,\n                size: (_b2 = response2.size) != null ? _b2 : void 0,\n                quality: (_c2 = response2.quality) != null ? _c2 : void 0,\n                background: (_d2 = response2.background) != null ? _d2 : void 0,\n                outputFormat: (_e2 = response2.output_format) != null ? _e2 : void 0,\n                ...distributeTokenDetails(\n                  (_f2 = response2.usage) == null ? void 0 : _f2.input_tokens_details,\n                  index,\n                  response2.data.length\n                )\n              };\n            })\n          }\n        }\n      };\n    }\n    const openaiOptions = (_h = await parseProviderOptions4({\n      provider: \"openai\",\n      providerOptions,\n      schema: openaiImageModelGenerationOptions\n    })) != null ? _h : {};\n    const { value: response, responseHeaders } = await postJsonToApi4({\n      url: this.config.url({\n        path: \"/images/generations\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders4(this.config.headers(), headers),\n      body: {\n        model: this.modelId,\n        prompt,\n        n,\n        size,\n        quality: openaiOptions.quality,\n        style: openaiOptions.style,\n        background: openaiOptions.background,\n        moderation: openaiOptions.moderation,\n        output_format: openaiOptions.outputFormat,\n        output_compression: openaiOptions.outputCompression,\n        user: openaiOptions.user,\n        ...!hasDefaultResponseFormat(this.modelId) ? { response_format: \"b64_json\" } : {}\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler4(\n        openaiImageResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      images: response.data.map((item) => item.b64_json),\n      warnings,\n      usage: response.usage != null ? {\n        inputTokens: (_i = response.usage.input_tokens) != null ? _i : void 0,\n        outputTokens: (_j = response.usage.output_tokens) != null ? _j : void 0,\n        totalTokens: (_k = response.usage.total_tokens) != null ? _k : void 0\n      } : void 0,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders\n      },\n      providerMetadata: {\n        openai: {\n          images: response.data.map((item, index) => {\n            var _a2, _b2, _c2, _d2, _e2, _f2;\n            return {\n              ...item.revised_prompt ? { revisedPrompt: item.revised_prompt } : {},\n              created: (_a2 = response.created) != null ? _a2 : void 0,\n              size: (_b2 = response.size) != null ? _b2 : void 0,\n              quality: (_c2 = response.quality) != null ? _c2 : void 0,\n              background: (_d2 = response.background) != null ? _d2 : void 0,\n              outputFormat: (_e2 = response.output_format) != null ? _e2 : void 0,\n              ...distributeTokenDetails(\n                (_f2 = response.usage) == null ? void 0 : _f2.input_tokens_details,\n                index,\n                response.data.length\n              )\n            };\n          })\n        }\n      }\n    };\n  }\n};\nfunction distributeTokenDetails(details, index, total) {\n  if (details == null) {\n    return {};\n  }\n  const result = {};\n  if (details.image_tokens != null) {\n    const base = Math.floor(details.image_tokens / total);\n    const remainder = details.image_tokens - base * (total - 1);\n    result.imageTokens = index === total - 1 ? remainder : base;\n  }\n  if (details.text_tokens != null) {\n    const base = Math.floor(details.text_tokens / total);\n    const remainder = details.text_tokens - base * (total - 1);\n    result.textTokens = index === total - 1 ? remainder : base;\n  }\n  return result;\n}\nasync function fileToBlob(file) {\n  if (!file) return void 0;\n  if (file.type === \"url\") {\n    return downloadBlob(file.url);\n  }\n  const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array(file.data);\n  return new Blob([data], { type: file.mediaType });\n}\n\n// src/tool/apply-patch.ts\nimport {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema as lazySchema9,\n  zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar applyPatchInputSchema = lazySchema9(\n  () => zodSchema9(\n    z10.object({\n      callId: z10.string(),\n      operation: z10.discriminatedUnion(\"type\", [\n        z10.object({\n          type: z10.literal(\"create_file\"),\n          path: z10.string(),\n          diff: z10.string()\n        }),\n        z10.object({\n          type: z10.literal(\"delete_file\"),\n          path: z10.string()\n        }),\n        z10.object({\n          type: z10.literal(\"update_file\"),\n          path: z10.string(),\n          diff: z10.string()\n        })\n      ])\n    })\n  )\n);\nvar applyPatchOutputSchema = lazySchema9(\n  () => zodSchema9(\n    z10.object({\n      status: z10.enum([\"completed\", \"failed\"]),\n      output: z10.string().optional()\n    })\n  )\n);\nvar applyPatchArgsSchema = lazySchema9(() => zodSchema9(z10.object({})));\nvar applyPatchToolFactory = createProviderToolFactoryWithOutputSchema({\n  id: \"openai.apply_patch\",\n  inputSchema: applyPatchInputSchema,\n  outputSchema: applyPatchOutputSchema\n});\nvar applyPatch = applyPatchToolFactory;\n\n// src/tool/code-interpreter.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema2,\n  lazySchema as lazySchema10,\n  zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar codeInterpreterInputSchema = lazySchema10(\n  () => zodSchema10(\n    z11.object({\n      code: z11.string().nullish(),\n      containerId: z11.string()\n    })\n  )\n);\nvar codeInterpreterOutputSchema = lazySchema10(\n  () => zodSchema10(\n    z11.object({\n      outputs: z11.array(\n        z11.discriminatedUnion(\"type\", [\n          z11.object({ type: z11.literal(\"logs\"), logs: z11.string() }),\n          z11.object({ type: z11.literal(\"image\"), url: z11.string() })\n        ])\n      ).nullish()\n    })\n  )\n);\nvar codeInterpreterArgsSchema = lazySchema10(\n  () => zodSchema10(\n    z11.object({\n      container: z11.union([\n        z11.string(),\n        z11.object({\n          fileIds: z11.array(z11.string()).optional()\n        })\n      ]).optional()\n    })\n  )\n);\nvar codeInterpreterToolFactory = createProviderToolFactoryWithOutputSchema2({\n  id: \"openai.code_interpreter\",\n  inputSchema: codeInterpreterInputSchema,\n  outputSchema: codeInterpreterOutputSchema\n});\nvar codeInterpreter = (args = {}) => {\n  return codeInterpreterToolFactory(args);\n};\n\n// src/tool/custom.ts\nimport {\n  createProviderToolFactory,\n  lazySchema as lazySchema11,\n  zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar customArgsSchema = lazySchema11(\n  () => zodSchema11(\n    z12.object({\n      name: z12.string(),\n      description: z12.string().optional(),\n      format: z12.union([\n        z12.object({\n          type: z12.literal(\"grammar\"),\n          syntax: z12.enum([\"regex\", \"lark\"]),\n          definition: z12.string()\n        }),\n        z12.object({\n          type: z12.literal(\"text\")\n        })\n      ]).optional()\n    })\n  )\n);\nvar customInputSchema = lazySchema11(() => zodSchema11(z12.string()));\nvar customToolFactory = createProviderToolFactory({\n  id: \"openai.custom\",\n  inputSchema: customInputSchema\n});\nvar customTool = (args) => customToolFactory(args);\n\n// src/tool/file-search.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema3,\n  lazySchema as lazySchema12,\n  zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar comparisonFilterSchema = z13.object({\n  key: z13.string(),\n  type: z13.enum([\"eq\", \"ne\", \"gt\", \"gte\", \"lt\", \"lte\", \"in\", \"nin\"]),\n  value: z13.union([z13.string(), z13.number(), z13.boolean(), z13.array(z13.string())])\n});\nvar compoundFilterSchema = z13.object({\n  type: z13.enum([\"and\", \"or\"]),\n  filters: z13.array(\n    z13.union([comparisonFilterSchema, z13.lazy(() => compoundFilterSchema)])\n  )\n});\nvar fileSearchArgsSchema = lazySchema12(\n  () => zodSchema12(\n    z13.object({\n      vectorStoreIds: z13.array(z13.string()),\n      maxNumResults: z13.number().optional(),\n      ranking: z13.object({\n        ranker: z13.string().optional(),\n        scoreThreshold: z13.number().optional()\n      }).optional(),\n      filters: z13.union([comparisonFilterSchema, compoundFilterSchema]).optional()\n    })\n  )\n);\nvar fileSearchOutputSchema = lazySchema12(\n  () => zodSchema12(\n    z13.object({\n      queries: z13.array(z13.string()),\n      results: z13.array(\n        z13.object({\n          attributes: z13.record(z13.string(), z13.unknown()),\n          fileId: z13.string(),\n          filename: z13.string(),\n          score: z13.number(),\n          text: z13.string()\n        })\n      ).nullable()\n    })\n  )\n);\nvar fileSearch = createProviderToolFactoryWithOutputSchema3({\n  id: \"openai.file_search\",\n  inputSchema: z13.object({}),\n  outputSchema: fileSearchOutputSchema\n});\n\n// src/tool/image-generation.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema4,\n  lazySchema as lazySchema13,\n  zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar imageGenerationArgsSchema = lazySchema13(\n  () => zodSchema13(\n    z14.object({\n      background: z14.enum([\"auto\", \"opaque\", \"transparent\"]).optional(),\n      inputFidelity: z14.enum([\"low\", \"high\"]).optional(),\n      inputImageMask: z14.object({\n        fileId: z14.string().optional(),\n        imageUrl: z14.string().optional()\n      }).optional(),\n      model: z14.string().optional(),\n      moderation: z14.enum([\"auto\"]).optional(),\n      outputCompression: z14.number().int().min(0).max(100).optional(),\n      outputFormat: z14.enum([\"png\", \"jpeg\", \"webp\"]).optional(),\n      partialImages: z14.number().int().min(0).max(3).optional(),\n      quality: z14.enum([\"auto\", \"low\", \"medium\", \"high\"]).optional(),\n      size: z14.enum([\"1024x1024\", \"1024x1536\", \"1536x1024\", \"auto\"]).optional()\n    }).strict()\n  )\n);\nvar imageGenerationInputSchema = lazySchema13(() => zodSchema13(z14.object({})));\nvar imageGenerationOutputSchema = lazySchema13(\n  () => zodSchema13(z14.object({ result: z14.string() }))\n);\nvar imageGenerationToolFactory = createProviderToolFactoryWithOutputSchema4({\n  id: \"openai.image_generation\",\n  inputSchema: imageGenerationInputSchema,\n  outputSchema: imageGenerationOutputSchema\n});\nvar imageGeneration = (args = {}) => {\n  return imageGenerationToolFactory(args);\n};\n\n// src/tool/local-shell.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema5,\n  lazySchema as lazySchema14,\n  zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar localShellInputSchema = lazySchema14(\n  () => zodSchema14(\n    z15.object({\n      action: z15.object({\n        type: z15.literal(\"exec\"),\n        command: z15.array(z15.string()),\n        timeoutMs: z15.number().optional(),\n        user: z15.string().optional(),\n        workingDirectory: z15.string().optional(),\n        env: z15.record(z15.string(), z15.string()).optional()\n      })\n    })\n  )\n);\nvar localShellOutputSchema = lazySchema14(\n  () => zodSchema14(z15.object({ output: z15.string() }))\n);\nvar localShell = createProviderToolFactoryWithOutputSchema5({\n  id: \"openai.local_shell\",\n  inputSchema: localShellInputSchema,\n  outputSchema: localShellOutputSchema\n});\n\n// src/tool/shell.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema6,\n  lazySchema as lazySchema15,\n  zodSchema as zodSchema15\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar shellInputSchema = lazySchema15(\n  () => zodSchema15(\n    z16.object({\n      action: z16.object({\n        commands: z16.array(z16.string()),\n        timeoutMs: z16.number().optional(),\n        maxOutputLength: z16.number().optional()\n      })\n    })\n  )\n);\nvar shellOutputSchema = lazySchema15(\n  () => zodSchema15(\n    z16.object({\n      output: z16.array(\n        z16.object({\n          stdout: z16.string(),\n          stderr: z16.string(),\n          outcome: z16.discriminatedUnion(\"type\", [\n            z16.object({ type: z16.literal(\"timeout\") }),\n            z16.object({ type: z16.literal(\"exit\"), exitCode: z16.number() })\n          ])\n        })\n      )\n    })\n  )\n);\nvar shellSkillsSchema = z16.array(\n  z16.discriminatedUnion(\"type\", [\n    z16.object({\n      type: z16.literal(\"skillReference\"),\n      skillId: z16.string(),\n      version: z16.string().optional()\n    }),\n    z16.object({\n      type: z16.literal(\"inline\"),\n      name: z16.string(),\n      description: z16.string(),\n      source: z16.object({\n        type: z16.literal(\"base64\"),\n        mediaType: z16.literal(\"application/zip\"),\n        data: z16.string()\n      })\n    })\n  ])\n).optional();\nvar shellArgsSchema = lazySchema15(\n  () => zodSchema15(\n    z16.object({\n      environment: z16.union([\n        z16.object({\n          type: z16.literal(\"containerAuto\"),\n          fileIds: z16.array(z16.string()).optional(),\n          memoryLimit: z16.enum([\"1g\", \"4g\", \"16g\", \"64g\"]).optional(),\n          networkPolicy: z16.discriminatedUnion(\"type\", [\n            z16.object({ type: z16.literal(\"disabled\") }),\n            z16.object({\n              type: z16.literal(\"allowlist\"),\n              allowedDomains: z16.array(z16.string()),\n              domainSecrets: z16.array(\n                z16.object({\n                  domain: z16.string(),\n                  name: z16.string(),\n                  value: z16.string()\n                })\n              ).optional()\n            })\n          ]).optional(),\n          skills: shellSkillsSchema\n        }),\n        z16.object({\n          type: z16.literal(\"containerReference\"),\n          containerId: z16.string()\n        }),\n        z16.object({\n          type: z16.literal(\"local\").optional(),\n          skills: z16.array(\n            z16.object({\n              name: z16.string(),\n              description: z16.string(),\n              path: z16.string()\n            })\n          ).optional()\n        })\n      ]).optional()\n    })\n  )\n);\nvar shell = createProviderToolFactoryWithOutputSchema6({\n  id: \"openai.shell\",\n  inputSchema: shellInputSchema,\n  outputSchema: shellOutputSchema\n});\n\n// src/tool/tool-search.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema7,\n  lazySchema as lazySchema16,\n  zodSchema as zodSchema16\n} from \"@ai-sdk/provider-utils\";\nimport { z as z17 } from \"zod/v4\";\nvar toolSearchArgsSchema = lazySchema16(\n  () => zodSchema16(\n    z17.object({\n      execution: z17.enum([\"server\", \"client\"]).optional(),\n      description: z17.string().optional(),\n      parameters: z17.record(z17.string(), z17.unknown()).optional()\n    })\n  )\n);\nvar toolSearchInputSchema = lazySchema16(\n  () => zodSchema16(\n    z17.object({\n      arguments: z17.unknown().optional(),\n      call_id: z17.string().nullish()\n    })\n  )\n);\nvar toolSearchOutputSchema = lazySchema16(\n  () => zodSchema16(\n    z17.object({\n      tools: z17.array(z17.record(z17.string(), z17.unknown()))\n    })\n  )\n);\nvar toolSearchToolFactory = createProviderToolFactoryWithOutputSchema7({\n  id: \"openai.tool_search\",\n  inputSchema: toolSearchInputSchema,\n  outputSchema: toolSearchOutputSchema\n});\nvar toolSearch = (args = {}) => toolSearchToolFactory(args);\n\n// src/tool/web-search.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema8,\n  lazySchema as lazySchema17,\n  zodSchema as zodSchema17\n} from \"@ai-sdk/provider-utils\";\nimport { z as z18 } from \"zod/v4\";\nvar webSearchArgsSchema = lazySchema17(\n  () => zodSchema17(\n    z18.object({\n      externalWebAccess: z18.boolean().optional(),\n      filters: z18.object({ allowedDomains: z18.array(z18.string()).optional() }).optional(),\n      searchContextSize: z18.enum([\"low\", \"medium\", \"high\"]).optional(),\n      userLocation: z18.object({\n        type: z18.literal(\"approximate\"),\n        country: z18.string().optional(),\n        city: z18.string().optional(),\n        region: z18.string().optional(),\n        timezone: z18.string().optional()\n      }).optional()\n    })\n  )\n);\nvar webSearchInputSchema = lazySchema17(() => zodSchema17(z18.object({})));\nvar webSearchOutputSchema = lazySchema17(\n  () => zodSchema17(\n    z18.object({\n      action: z18.discriminatedUnion(\"type\", [\n        z18.object({\n          type: z18.literal(\"search\"),\n          query: z18.string().optional(),\n          queries: z18.array(z18.string()).optional()\n        }),\n        z18.object({\n          type: z18.literal(\"openPage\"),\n          url: z18.string().nullish()\n        }),\n        z18.object({\n          type: z18.literal(\"findInPage\"),\n          url: z18.string().nullish(),\n          pattern: z18.string().nullish()\n        })\n      ]).optional(),\n      sources: z18.array(\n        z18.discriminatedUnion(\"type\", [\n          z18.object({ type: z18.literal(\"url\"), url: z18.string() }),\n          z18.object({ type: z18.literal(\"api\"), name: z18.string() })\n        ])\n      ).optional()\n    })\n  )\n);\nvar webSearchToolFactory = createProviderToolFactoryWithOutputSchema8({\n  id: \"openai.web_search\",\n  inputSchema: webSearchInputSchema,\n  outputSchema: webSearchOutputSchema\n});\nvar webSearch = (args = {}) => webSearchToolFactory(args);\n\n// src/tool/web-search-preview.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema9,\n  lazySchema as lazySchema18,\n  zodSchema as zodSchema18\n} from \"@ai-sdk/provider-utils\";\nimport { z as z19 } from \"zod/v4\";\nvar webSearchPreviewArgsSchema = lazySchema18(\n  () => zodSchema18(\n    z19.object({\n      searchContextSize: z19.enum([\"low\", \"medium\", \"high\"]).optional(),\n      userLocation: z19.object({\n        type: z19.literal(\"approximate\"),\n        country: z19.string().optional(),\n        city: z19.string().optional(),\n        region: z19.string().optional(),\n        timezone: z19.string().optional()\n      }).optional()\n    })\n  )\n);\nvar webSearchPreviewInputSchema = lazySchema18(\n  () => zodSchema18(z19.object({}))\n);\nvar webSearchPreviewOutputSchema = lazySchema18(\n  () => zodSchema18(\n    z19.object({\n      action: z19.discriminatedUnion(\"type\", [\n        z19.object({\n          type: z19.literal(\"search\"),\n          query: z19.string().optional()\n        }),\n        z19.object({\n          type: z19.literal(\"openPage\"),\n          url: z19.string().nullish()\n        }),\n        z19.object({\n          type: z19.literal(\"findInPage\"),\n          url: z19.string().nullish(),\n          pattern: z19.string().nullish()\n        })\n      ]).optional()\n    })\n  )\n);\nvar webSearchPreview = createProviderToolFactoryWithOutputSchema9({\n  id: \"openai.web_search_preview\",\n  inputSchema: webSearchPreviewInputSchema,\n  outputSchema: webSearchPreviewOutputSchema\n});\n\n// src/tool/mcp.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema10,\n  lazySchema as lazySchema19,\n  zodSchema as zodSchema19\n} from \"@ai-sdk/provider-utils\";\nimport { z as z20 } from \"zod/v4\";\nvar jsonValueSchema = z20.lazy(\n  () => z20.union([\n    z20.string(),\n    z20.number(),\n    z20.boolean(),\n    z20.null(),\n    z20.array(jsonValueSchema),\n    z20.record(z20.string(), jsonValueSchema)\n  ])\n);\nvar mcpArgsSchema = lazySchema19(\n  () => zodSchema19(\n    z20.object({\n      serverLabel: z20.string(),\n      allowedTools: z20.union([\n        z20.array(z20.string()),\n        z20.object({\n          readOnly: z20.boolean().optional(),\n          toolNames: z20.array(z20.string()).optional()\n        })\n      ]).optional(),\n      authorization: z20.string().optional(),\n      connectorId: z20.string().optional(),\n      headers: z20.record(z20.string(), z20.string()).optional(),\n      requireApproval: z20.union([\n        z20.enum([\"always\", \"never\"]),\n        z20.object({\n          never: z20.object({\n            toolNames: z20.array(z20.string()).optional()\n          }).optional()\n        })\n      ]).optional(),\n      serverDescription: z20.string().optional(),\n      serverUrl: z20.string().optional()\n    }).refine(\n      (v) => v.serverUrl != null || v.connectorId != null,\n      \"One of serverUrl or connectorId must be provided.\"\n    )\n  )\n);\nvar mcpInputSchema = lazySchema19(() => zodSchema19(z20.object({})));\nvar mcpOutputSchema = lazySchema19(\n  () => zodSchema19(\n    z20.object({\n      type: z20.literal(\"call\"),\n      serverLabel: z20.string(),\n      name: z20.string(),\n      arguments: z20.string(),\n      output: z20.string().nullish(),\n      error: z20.union([z20.string(), jsonValueSchema]).optional()\n    })\n  )\n);\nvar mcpToolFactory = createProviderToolFactoryWithOutputSchema10({\n  id: \"openai.mcp\",\n  inputSchema: mcpInputSchema,\n  outputSchema: mcpOutputSchema\n});\nvar mcp = (args) => mcpToolFactory(args);\n\n// src/openai-tools.ts\nvar openaiTools = {\n  /**\n   * The apply_patch tool lets GPT-5.1 create, update, and delete files in your\n   * codebase using structured diffs. Instead of just suggesting edits, the model\n   * emits patch operations that your application applies and then reports back on,\n   * enabling iterative, multi-step code editing workflows.\n   *\n   */\n  applyPatch,\n  /**\n   * Custom tools let callers constrain model output to a grammar (regex or\n   * Lark syntax). The model returns a `custom_tool_call` output item whose\n   * `input` field is a string matching the specified grammar.\n   *\n   * @param name - The name of the custom tool.\n   * @param description - An optional description of the tool.\n   * @param format - The output format constraint (grammar type, syntax, and definition).\n   */\n  customTool,\n  /**\n   * The Code Interpreter tool allows models to write and run Python code in a\n   * sandboxed environment to solve complex problems in domains like data analysis,\n   * coding, and math.\n   *\n   * @param container - The container to use for the code interpreter.\n   */\n  codeInterpreter,\n  /**\n   * File search is a tool available in the Responses API. It enables models to\n   * retrieve information in a knowledge base of previously uploaded files through\n   * semantic and keyword search.\n   *\n   * @param vectorStoreIds - The vector store IDs to use for the file search.\n   * @param maxNumResults - The maximum number of results to return.\n   * @param ranking - The ranking options to use for the file search.\n   * @param filters - The filters to use for the file search.\n   */\n  fileSearch,\n  /**\n   * The image generation tool allows you to generate images using a text prompt,\n   * and optionally image inputs. It leverages the GPT Image model,\n   * and automatically optimizes text inputs for improved performance.\n   *\n   * @param background - Background type for the generated image. One of 'auto', 'opaque', or 'transparent'.\n   * @param inputFidelity - Input fidelity for the generated image. One of 'low' or 'high'.\n   * @param inputImageMask - Optional mask for inpainting. Contains fileId and/or imageUrl.\n   * @param model - The image generation model to use. Default: gpt-image-1.\n   * @param moderation - Moderation level for the generated image. Default: 'auto'.\n   * @param outputCompression - Compression level for the output image (0-100).\n   * @param outputFormat - The output format of the generated image. One of 'png', 'jpeg', or 'webp'.\n   * @param partialImages - Number of partial images to generate in streaming mode (0-3).\n   * @param quality - The quality of the generated image. One of 'auto', 'low', 'medium', or 'high'.\n   * @param size - The size of the generated image. One of 'auto', '1024x1024', '1024x1536', or '1536x1024'.\n   */\n  imageGeneration,\n  /**\n   * Local shell is a tool that allows agents to run shell commands locally\n   * on a machine you or the user provides.\n   *\n   * Supported models: `gpt-5-codex`\n   */\n  localShell,\n  /**\n   * The shell tool allows the model to interact with your local computer through\n   * a controlled command-line interface. The model proposes shell commands; your\n   * integration executes them and returns the outputs.\n   *\n   * Available through the Responses API for use with GPT-5.1.\n   *\n   * WARNING: Running arbitrary shell commands can be dangerous. Always sandbox\n   * execution or add strict allow-/deny-lists before forwarding a command to\n   * the system shell.\n   */\n  shell,\n  /**\n   * Web search allows models to access up-to-date information from the internet\n   * and provide answers with sourced citations.\n   *\n   * @param searchContextSize - The search context size to use for the web search.\n   * @param userLocation - The user location to use for the web search.\n   */\n  webSearchPreview,\n  /**\n   * Web search allows models to access up-to-date information from the internet\n   * and provide answers with sourced citations.\n   *\n   * @param filters - The filters to use for the web search.\n   * @param searchContextSize - The search context size to use for the web search.\n   * @param userLocation - The user location to use for the web search.\n   */\n  webSearch,\n  /**\n   * MCP (Model Context Protocol) allows models to call tools exposed by\n   * remote MCP servers or service connectors.\n   *\n   * @param serverLabel - Label to identify the MCP server.\n   * @param allowedTools - Allowed tool names or filter object.\n   * @param authorization - OAuth access token for the MCP server/connector.\n   * @param connectorId - Identifier for a service connector.\n   * @param headers - Optional headers to include in MCP requests.\n   * // param requireApproval - Approval policy ('always'|'never'|filter object). (Removed - always 'never')\n   * @param serverDescription - Optional description of the server.\n   * @param serverUrl - URL for the MCP server.\n   */\n  mcp,\n  /**\n   * Tool search allows the model to dynamically search for and load deferred\n   * tools into the model's context as needed. This helps reduce overall token\n   * usage, cost, and latency by only loading tools when the model needs them.\n   *\n   * To use tool search, mark functions or namespaces with `defer_loading: true`\n   * in the tools array. The model will use tool search to load these tools\n   * when it determines they are needed.\n   */\n  toolSearch\n};\n\n// src/responses/openai-responses-language-model.ts\nimport {\n  APICallError as APICallError2\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders as combineHeaders5,\n  createEventSourceResponseHandler as createEventSourceResponseHandler3,\n  createJsonResponseHandler as createJsonResponseHandler5,\n  createToolNameMapping,\n  generateId as generateId2,\n  parseProviderOptions as parseProviderOptions6,\n  postJsonToApi as postJsonToApi5\n} from \"@ai-sdk/provider-utils\";\n\n// src/responses/convert-openai-responses-usage.ts\nfunction convertOpenAIResponsesUsage(usage) {\n  var _a, _b, _c, _d, _e, _f;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const inputTokens = usage.input_tokens;\n  const outputTokens = usage.output_tokens;\n  const cachedTokens = (_b = (_a = usage.input_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;\n  const cacheWriteTokens = (_d = (_c = usage.input_tokens_details) == null ? void 0 : _c.cache_write_tokens) != null ? _d : void 0;\n  const reasoningTokens = (_f = (_e = usage.output_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0;\n  return {\n    inputTokens: {\n      total: inputTokens,\n      noCache: inputTokens - cachedTokens - (cacheWriteTokens != null ? cacheWriteTokens : 0),\n      cacheRead: cachedTokens,\n      cacheWrite: cacheWriteTokens\n    },\n    outputTokens: {\n      total: outputTokens,\n      text: outputTokens - reasoningTokens,\n      reasoning: reasoningTokens\n    },\n    raw: usage\n  };\n}\n\n// src/responses/convert-to-openai-responses-input.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError4\n} from \"@ai-sdk/provider\";\nimport {\n  convertToBase64 as convertToBase642,\n  isNonNullable,\n  parseJSON,\n  parseProviderOptions as parseProviderOptions5,\n  validateTypes\n} from \"@ai-sdk/provider-utils\";\nimport { z as z21 } from \"zod/v4\";\nfunction serializeToolCallArguments2(input) {\n  return JSON.stringify(input === void 0 ? {} : input);\n}\nfunction getPromptCacheBreakpoint2(providerOptions, providerOptionsName) {\n  var _a;\n  return (_a = providerOptions == null ? void 0 : providerOptions[providerOptionsName]) == null ? void 0 : _a.promptCacheBreakpoint;\n}\nfunction isFileId(data, prefixes) {\n  if (!prefixes) return false;\n  return prefixes.some((prefix) => data.startsWith(prefix));\n}\nasync function convertToOpenAIResponsesInput({\n  prompt,\n  toolNameMapping,\n  systemMessageMode,\n  providerOptionsName,\n  fileIdPrefixes,\n  passThroughUnsupportedFiles = false,\n  store,\n  hasConversation = false,\n  hasPreviousResponseId = false,\n  hasLocalShellTool = false,\n  hasShellTool = false,\n  hasApplyPatchTool = false,\n  customProviderToolNames\n}) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;\n  let input = [];\n  const warnings = [];\n  const processedApprovalIds = /* @__PURE__ */ new Set();\n  for (const { role, content, providerOptions } of prompt) {\n    switch (role) {\n      case \"system\": {\n        switch (systemMessageMode) {\n          case \"system\": {\n            const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n              providerOptions,\n              providerOptionsName\n            );\n            input.push({\n              role: \"system\",\n              content: promptCacheBreakpoint == null ? content : [\n                {\n                  type: \"input_text\",\n                  text: content,\n                  prompt_cache_breakpoint: promptCacheBreakpoint\n                }\n              ]\n            });\n            break;\n          }\n          case \"developer\": {\n            const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n              providerOptions,\n              providerOptionsName\n            );\n            input.push({\n              role: \"developer\",\n              content: promptCacheBreakpoint == null ? content : [\n                {\n                  type: \"input_text\",\n                  text: content,\n                  prompt_cache_breakpoint: promptCacheBreakpoint\n                }\n              ]\n            });\n            break;\n          }\n          case \"remove\": {\n            warnings.push({\n              type: \"other\",\n              message: \"system messages are removed for this model\"\n            });\n            break;\n          }\n          default: {\n            const _exhaustiveCheck = systemMessageMode;\n            throw new Error(\n              `Unsupported system message mode: ${_exhaustiveCheck}`\n            );\n          }\n        }\n        break;\n      }\n      case \"user\": {\n        input.push({\n          role: \"user\",\n          content: content.map((part, index) => {\n            var _a2, _b2, _c2;\n            switch (part.type) {\n              case \"text\": {\n                const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n                  part.providerOptions,\n                  providerOptionsName\n                );\n                return {\n                  type: \"input_text\",\n                  text: part.text,\n                  ...promptCacheBreakpoint != null && {\n                    prompt_cache_breakpoint: promptCacheBreakpoint\n                  }\n                };\n              }\n              case \"file\": {\n                const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n                  part.providerOptions,\n                  providerOptionsName\n                );\n                const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n                if (mediaType.startsWith(\"image/\")) {\n                  return {\n                    type: \"input_image\",\n                    ...part.data instanceof URL ? { image_url: part.data.toString() } : typeof part.data === \"string\" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {\n                      image_url: `data:${mediaType};base64,${convertToBase642(part.data)}`\n                    },\n                    detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,\n                    ...promptCacheBreakpoint != null && {\n                      prompt_cache_breakpoint: promptCacheBreakpoint\n                    }\n                  };\n                }\n                if (part.data instanceof URL) {\n                  return {\n                    type: \"input_file\",\n                    file_url: part.data.toString(),\n                    ...promptCacheBreakpoint != null && {\n                      prompt_cache_breakpoint: promptCacheBreakpoint\n                    }\n                  };\n                }\n                if (mediaType !== \"application/pdf\" && !passThroughUnsupportedFiles) {\n                  throw new UnsupportedFunctionalityError4({\n                    functionality: `file part media type ${mediaType}`\n                  });\n                }\n                return {\n                  type: \"input_file\",\n                  ...typeof part.data === \"string\" && isFileId(part.data, fileIdPrefixes) ? { file_id: part.data } : {\n                    filename: (_c2 = part.filename) != null ? _c2 : mediaType === \"application/pdf\" ? `part-${index}.pdf` : `part-${index}`,\n                    file_data: `data:${mediaType};base64,${convertToBase642(part.data)}`\n                  },\n                  ...promptCacheBreakpoint != null && {\n                    prompt_cache_breakpoint: promptCacheBreakpoint\n                  }\n                };\n              }\n            }\n          })\n        });\n        break;\n      }\n      case \"assistant\": {\n        const reasoningMessages = {};\n        for (const part of content) {\n          switch (part.type) {\n            case \"text\": {\n              const providerOpts = (_a = part.providerOptions) == null ? void 0 : _a[providerOptionsName];\n              const id = providerOpts == null ? void 0 : providerOpts.itemId;\n              const phase = providerOpts == null ? void 0 : providerOpts.phase;\n              if (hasConversation && id != null) {\n                break;\n              }\n              if (store && id != null) {\n                input.push({ type: \"item_reference\", id });\n                break;\n              }\n              input.push({\n                role: \"assistant\",\n                content: [{ type: \"output_text\", text: part.text }],\n                id,\n                ...phase != null && { phase }\n              });\n              break;\n            }\n            case \"tool-call\": {\n              const id = (_f = (_c = (_b = part.providerOptions) == null ? void 0 : _b[providerOptionsName]) == null ? void 0 : _c.itemId) != null ? _f : (_e = (_d = part.providerMetadata) == null ? void 0 : _d[providerOptionsName]) == null ? void 0 : _e.itemId;\n              const namespace = (_k = (_h = (_g = part.providerOptions) == null ? void 0 : _g[providerOptionsName]) == null ? void 0 : _h.namespace) != null ? _k : (_j = (_i = part.providerMetadata) == null ? void 0 : _i[providerOptionsName]) == null ? void 0 : _j.namespace;\n              if (hasConversation && id != null) {\n                break;\n              }\n              const resolvedToolName = toolNameMapping.toProviderToolName(\n                part.toolName\n              );\n              if (resolvedToolName === \"tool_search\") {\n                if (store && id != null) {\n                  input.push({ type: \"item_reference\", id });\n                  break;\n                }\n                const parsedInput = typeof part.input === \"string\" ? await parseJSON({\n                  text: part.input,\n                  schema: toolSearchInputSchema\n                }) : await validateTypes({\n                  value: part.input,\n                  schema: toolSearchInputSchema\n                });\n                const execution = parsedInput.call_id != null ? \"client\" : \"server\";\n                input.push({\n                  type: \"tool_search_call\",\n                  id: id != null ? id : part.toolCallId,\n                  execution,\n                  call_id: (_l = parsedInput.call_id) != null ? _l : null,\n                  status: \"completed\",\n                  arguments: parsedInput.arguments\n                });\n                break;\n              }\n              if (part.providerExecuted) {\n                if (store && id != null) {\n                  input.push({ type: \"item_reference\", id });\n                }\n                break;\n              }\n              if (hasPreviousResponseId && store && id != null) {\n                break;\n              }\n              const isProviderDefinedToolCall = hasLocalShellTool && resolvedToolName === \"local_shell\" || hasShellTool && resolvedToolName === \"shell\" || hasApplyPatchTool && resolvedToolName === \"apply_patch\" || ((_m = customProviderToolNames == null ? void 0 : customProviderToolNames.has(resolvedToolName)) != null ? _m : false);\n              if (store && id != null && isProviderDefinedToolCall) {\n                input.push({ type: \"item_reference\", id });\n                break;\n              }\n              if (hasLocalShellTool && resolvedToolName === \"local_shell\") {\n                const parsedInput = await validateTypes({\n                  value: part.input,\n                  schema: localShellInputSchema\n                });\n                input.push({\n                  type: \"local_shell_call\",\n                  call_id: part.toolCallId,\n                  id,\n                  action: {\n                    type: \"exec\",\n                    command: parsedInput.action.command,\n                    timeout_ms: parsedInput.action.timeoutMs,\n                    user: parsedInput.action.user,\n                    working_directory: parsedInput.action.workingDirectory,\n                    env: parsedInput.action.env\n                  }\n                });\n                break;\n              }\n              if (hasShellTool && resolvedToolName === \"shell\") {\n                const parsedInput = await validateTypes({\n                  value: part.input,\n                  schema: shellInputSchema\n                });\n                input.push({\n                  type: \"shell_call\",\n                  call_id: part.toolCallId,\n                  id,\n                  status: \"completed\",\n                  action: {\n                    commands: parsedInput.action.commands,\n                    timeout_ms: parsedInput.action.timeoutMs,\n                    max_output_length: parsedInput.action.maxOutputLength\n                  }\n                });\n                break;\n              }\n              if (hasApplyPatchTool && resolvedToolName === \"apply_patch\") {\n                const parsedInput = await validateTypes({\n                  value: part.input,\n                  schema: applyPatchInputSchema\n                });\n                input.push({\n                  type: \"apply_patch_call\",\n                  call_id: parsedInput.callId,\n                  id,\n                  status: \"completed\",\n                  operation: parsedInput.operation\n                });\n                break;\n              }\n              if (customProviderToolNames == null ? void 0 : customProviderToolNames.has(resolvedToolName)) {\n                input.push({\n                  type: \"custom_tool_call\",\n                  call_id: part.toolCallId,\n                  name: resolvedToolName,\n                  input: typeof part.input === \"string\" ? part.input : JSON.stringify(part.input),\n                  id\n                });\n                break;\n              }\n              input.push({\n                type: \"function_call\",\n                call_id: part.toolCallId,\n                name: resolvedToolName,\n                arguments: serializeToolCallArguments2(part.input),\n                ...namespace != null && { namespace }\n              });\n              break;\n            }\n            // assistant tool result parts are from provider-executed tools:\n            case \"tool-result\": {\n              if (part.output.type === \"execution-denied\" || part.output.type === \"json\" && typeof part.output.value === \"object\" && part.output.value != null && \"type\" in part.output.value && part.output.value.type === \"execution-denied\") {\n                break;\n              }\n              if (hasConversation) {\n                break;\n              }\n              const resolvedResultToolName = toolNameMapping.toProviderToolName(\n                part.toolName\n              );\n              if (resolvedResultToolName === \"tool_search\") {\n                const itemId = (_s = (_r = (_o = (_n = part.providerOptions) == null ? void 0 : _n[providerOptionsName]) == null ? void 0 : _o.itemId) != null ? _r : (_q = (_p = part.providerMetadata) == null ? void 0 : _p[providerOptionsName]) == null ? void 0 : _q.itemId) != null ? _s : part.toolCallId;\n                if (store) {\n                  input.push({ type: \"item_reference\", id: itemId });\n                } else if (part.output.type === \"json\") {\n                  const parsedOutput = await validateTypes({\n                    value: part.output.value,\n                    schema: toolSearchOutputSchema\n                  });\n                  input.push({\n                    type: \"tool_search_output\",\n                    id: itemId,\n                    execution: \"server\",\n                    call_id: null,\n                    status: \"completed\",\n                    tools: parsedOutput.tools\n                  });\n                }\n                break;\n              }\n              if (hasShellTool && resolvedResultToolName === \"shell\") {\n                if (part.output.type === \"json\") {\n                  const parsedOutput = await validateTypes({\n                    value: part.output.value,\n                    schema: shellOutputSchema\n                  });\n                  input.push({\n                    type: \"shell_call_output\",\n                    call_id: part.toolCallId,\n                    output: parsedOutput.output.map((item) => ({\n                      stdout: item.stdout,\n                      stderr: item.stderr,\n                      outcome: item.outcome.type === \"timeout\" ? { type: \"timeout\" } : {\n                        type: \"exit\",\n                        exit_code: item.outcome.exitCode\n                      }\n                    }))\n                  });\n                }\n                break;\n              }\n              if (store) {\n                const itemId = (_v = (_u = (_t = part.providerOptions) == null ? void 0 : _t[providerOptionsName]) == null ? void 0 : _u.itemId) != null ? _v : part.toolCallId;\n                input.push({ type: \"item_reference\", id: itemId });\n              } else {\n                warnings.push({\n                  type: \"other\",\n                  message: `Results for OpenAI tool ${part.toolName} are not sent to the API when store is false`\n                });\n              }\n              break;\n            }\n            case \"reasoning\": {\n              const providerOptions2 = await parseProviderOptions5({\n                provider: providerOptionsName,\n                providerOptions: part.providerOptions,\n                schema: openaiResponsesReasoningProviderOptionsSchema\n              });\n              const reasoningId = providerOptions2 == null ? void 0 : providerOptions2.itemId;\n              if ((hasConversation || hasPreviousResponseId) && reasoningId != null) {\n                break;\n              }\n              if (reasoningId != null) {\n                const reasoningMessage = reasoningMessages[reasoningId];\n                if (store) {\n                  if (reasoningMessage === void 0) {\n                    input.push({ type: \"item_reference\", id: reasoningId });\n                    reasoningMessages[reasoningId] = {\n                      type: \"reasoning\",\n                      id: reasoningId,\n                      summary: []\n                    };\n                  }\n                } else {\n                  const summaryParts = [];\n                  if (part.text.length > 0) {\n                    summaryParts.push({\n                      type: \"summary_text\",\n                      text: part.text\n                    });\n                  } else if (reasoningMessage !== void 0) {\n                    warnings.push({\n                      type: \"other\",\n                      message: `Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(part)}.`\n                    });\n                  }\n                  if (reasoningMessage === void 0) {\n                    reasoningMessages[reasoningId] = {\n                      type: \"reasoning\",\n                      id: reasoningId,\n                      encrypted_content: providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent,\n                      summary: summaryParts\n                    };\n                    input.push(reasoningMessages[reasoningId]);\n                  } else {\n                    reasoningMessage.summary.push(...summaryParts);\n                    if ((providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent) != null) {\n                      reasoningMessage.encrypted_content = providerOptions2.reasoningEncryptedContent;\n                    }\n                  }\n                }\n              } else {\n                const encryptedContent = providerOptions2 == null ? void 0 : providerOptions2.reasoningEncryptedContent;\n                if (encryptedContent != null) {\n                  const summaryParts = [];\n                  if (part.text.length > 0) {\n                    summaryParts.push({\n                      type: \"summary_text\",\n                      text: part.text\n                    });\n                  }\n                  input.push({\n                    type: \"reasoning\",\n                    encrypted_content: encryptedContent,\n                    summary: summaryParts\n                  });\n                } else {\n                  warnings.push({\n                    type: \"other\",\n                    message: `Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(part)}.`\n                  });\n                }\n              }\n              break;\n            }\n          }\n        }\n        break;\n      }\n      case \"tool\": {\n        for (const part of content) {\n          if (part.type === \"tool-approval-response\") {\n            const approvalResponse = part;\n            if (processedApprovalIds.has(approvalResponse.approvalId)) {\n              continue;\n            }\n            processedApprovalIds.add(approvalResponse.approvalId);\n            if (store) {\n              input.push({\n                type: \"item_reference\",\n                id: approvalResponse.approvalId\n              });\n            }\n            input.push({\n              type: \"mcp_approval_response\",\n              approval_request_id: approvalResponse.approvalId,\n              approve: approvalResponse.approved\n            });\n            continue;\n          }\n          const output = part.output;\n          if (output.type === \"execution-denied\") {\n            const approvalId = (_x = (_w = output.providerOptions) == null ? void 0 : _w.openai) == null ? void 0 : _x.approvalId;\n            if (approvalId) {\n              continue;\n            }\n          }\n          const resolvedToolName = toolNameMapping.toProviderToolName(\n            part.toolName\n          );\n          if (resolvedToolName === \"tool_search\" && output.type === \"json\") {\n            const parsedOutput = await validateTypes({\n              value: output.value,\n              schema: toolSearchOutputSchema\n            });\n            input.push({\n              type: \"tool_search_output\",\n              execution: \"client\",\n              call_id: part.toolCallId,\n              status: \"completed\",\n              tools: parsedOutput.tools\n            });\n            continue;\n          }\n          if (hasLocalShellTool && resolvedToolName === \"local_shell\" && output.type === \"json\") {\n            const parsedOutput = await validateTypes({\n              value: output.value,\n              schema: localShellOutputSchema\n            });\n            input.push({\n              type: \"local_shell_call_output\",\n              call_id: part.toolCallId,\n              output: parsedOutput.output\n            });\n            continue;\n          }\n          if (hasShellTool && resolvedToolName === \"shell\" && output.type === \"json\") {\n            const parsedOutput = await validateTypes({\n              value: output.value,\n              schema: shellOutputSchema\n            });\n            input.push({\n              type: \"shell_call_output\",\n              call_id: part.toolCallId,\n              output: parsedOutput.output.map((item) => ({\n                stdout: item.stdout,\n                stderr: item.stderr,\n                outcome: item.outcome.type === \"timeout\" ? { type: \"timeout\" } : {\n                  type: \"exit\",\n                  exit_code: item.outcome.exitCode\n                }\n              }))\n            });\n            continue;\n          }\n          if (hasApplyPatchTool && part.toolName === \"apply_patch\" && output.type === \"json\") {\n            const parsedOutput = await validateTypes({\n              value: output.value,\n              schema: applyPatchOutputSchema\n            });\n            input.push({\n              type: \"apply_patch_call_output\",\n              call_id: part.toolCallId,\n              status: parsedOutput.status,\n              output: parsedOutput.output\n            });\n            continue;\n          }\n          if (customProviderToolNames == null ? void 0 : customProviderToolNames.has(resolvedToolName)) {\n            let outputValue;\n            switch (output.type) {\n              case \"text\":\n              case \"error-text\":\n                outputValue = output.value;\n                break;\n              case \"execution-denied\":\n                outputValue = (_y = output.reason) != null ? _y : \"Tool call execution denied.\";\n                break;\n              case \"json\":\n              case \"error-json\":\n                outputValue = JSON.stringify(output.value);\n                break;\n              case \"content\":\n                outputValue = output.value.map((item) => {\n                  var _a2, _b2, _c2, _d2, _e2;\n                  const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n                    item.providerOptions,\n                    providerOptionsName\n                  );\n                  switch (item.type) {\n                    case \"text\":\n                      return {\n                        type: \"input_text\",\n                        text: item.text,\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    case \"image-data\":\n                      return {\n                        type: \"input_image\",\n                        image_url: `data:${item.mediaType};base64,${item.data}`,\n                        detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    case \"image-url\":\n                      return {\n                        type: \"input_image\",\n                        image_url: item.url,\n                        detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail,\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    case \"file-data\":\n                      return {\n                        type: \"input_file\",\n                        filename: (_e2 = item.filename) != null ? _e2 : \"data\",\n                        file_data: `data:${item.mediaType};base64,${item.data}`,\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    case \"file-url\":\n                      return {\n                        type: \"input_file\",\n                        file_url: item.url,\n                        ...promptCacheBreakpoint != null && {\n                          prompt_cache_breakpoint: promptCacheBreakpoint\n                        }\n                      };\n                    default:\n                      warnings.push({\n                        type: \"other\",\n                        message: `unsupported custom tool content part type: ${item.type}`\n                      });\n                      return void 0;\n                  }\n                }).filter(isNonNullable);\n                break;\n              default:\n                outputValue = \"\";\n            }\n            input.push({\n              type: \"custom_tool_call_output\",\n              call_id: part.toolCallId,\n              output: outputValue\n            });\n            continue;\n          }\n          let contentValue;\n          switch (output.type) {\n            case \"text\":\n            case \"error-text\":\n              contentValue = output.value;\n              break;\n            case \"execution-denied\":\n              contentValue = (_z = output.reason) != null ? _z : \"Tool call execution denied.\";\n              break;\n            case \"json\":\n            case \"error-json\":\n              contentValue = JSON.stringify(output.value);\n              break;\n            case \"content\":\n              contentValue = output.value.map((item) => {\n                var _a2, _b2, _c2, _d2, _e2;\n                const promptCacheBreakpoint = getPromptCacheBreakpoint2(\n                  item.providerOptions,\n                  providerOptionsName\n                );\n                switch (item.type) {\n                  case \"text\": {\n                    return {\n                      type: \"input_text\",\n                      text: item.text,\n                      ...promptCacheBreakpoint != null && {\n                        prompt_cache_breakpoint: promptCacheBreakpoint\n                      }\n                    };\n                  }\n                  case \"image-data\": {\n                    return {\n                      type: \"input_image\",\n                      image_url: `data:${item.mediaType};base64,${item.data}`,\n                      detail: (_b2 = (_a2 = item.providerOptions) == null ? void 0 : _a2[providerOptionsName]) == null ? void 0 : _b2.imageDetail,\n                      ...promptCacheBreakpoint != null && {\n                        prompt_cache_breakpoint: promptCacheBreakpoint\n                      }\n                    };\n                  }\n                  case \"image-url\": {\n                    return {\n                      type: \"input_image\",\n                      image_url: item.url,\n                      detail: (_d2 = (_c2 = item.providerOptions) == null ? void 0 : _c2[providerOptionsName]) == null ? void 0 : _d2.imageDetail,\n                      ...promptCacheBreakpoint != null && {\n                        prompt_cache_breakpoint: promptCacheBreakpoint\n                      }\n                    };\n                  }\n                  case \"file-data\": {\n                    return {\n                      type: \"input_file\",\n                      filename: (_e2 = item.filename) != null ? _e2 : \"data\",\n                      file_data: `data:${item.mediaType};base64,${item.data}`,\n                      ...promptCacheBreakpoint != null && {\n                        prompt_cache_breakpoint: promptCacheBreakpoint\n                      }\n                    };\n                  }\n                  case \"file-url\": {\n                    return {\n                      type: \"input_file\",\n                      file_url: item.url,\n                      ...promptCacheBreakpoint != null && {\n                        prompt_cache_breakpoint: promptCacheBreakpoint\n                      }\n                    };\n                  }\n                  default: {\n                    warnings.push({\n                      type: \"other\",\n                      message: `unsupported tool content part type: ${item.type}`\n                    });\n                    return void 0;\n                  }\n                }\n              }).filter(isNonNullable);\n              break;\n          }\n          input.push({\n            type: \"function_call_output\",\n            call_id: part.toolCallId,\n            output: contentValue\n          });\n        }\n        break;\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  if (!store && input.some(\n    (item) => \"type\" in item && item.type === \"reasoning\" && item.encrypted_content == null\n  )) {\n    warnings.push({\n      type: \"other\",\n      message: \"Reasoning parts without encrypted content are not supported when store is false. Skipping reasoning parts.\"\n    });\n    input = input.filter(\n      (item) => !(\"type\" in item) || item.type !== \"reasoning\" || item.encrypted_content != null\n    );\n  }\n  return { input, warnings };\n}\nvar openaiResponsesReasoningProviderOptionsSchema = z21.object({\n  itemId: z21.string().nullish(),\n  reasoningEncryptedContent: z21.string().nullish()\n});\n\n// src/responses/map-openai-responses-finish-reason.ts\nfunction mapOpenAIResponseFinishReason({\n  finishReason,\n  hasFunctionCall\n}) {\n  switch (finishReason) {\n    case void 0:\n    case null:\n      return hasFunctionCall ? \"tool-calls\" : \"stop\";\n    case \"max_output_tokens\":\n      return \"length\";\n    case \"content_filter\":\n      return \"content-filter\";\n    default:\n      return hasFunctionCall ? \"tool-calls\" : \"other\";\n  }\n}\n\n// src/responses/openai-responses-api.ts\nimport {\n  lazySchema as lazySchema20,\n  zodSchema as zodSchema20\n} from \"@ai-sdk/provider-utils\";\nimport { z as z22 } from \"zod/v4\";\nvar jsonValueSchema2 = z22.lazy(\n  () => z22.union([\n    z22.string(),\n    z22.number(),\n    z22.boolean(),\n    z22.null(),\n    z22.array(jsonValueSchema2),\n    z22.record(z22.string(), jsonValueSchema2.optional())\n  ])\n);\nvar openaiResponsesNestedErrorChunkSchema = z22.object({\n  type: z22.literal(\"error\"),\n  sequence_number: z22.number(),\n  error: z22.object({\n    type: z22.string(),\n    code: z22.string(),\n    message: z22.string(),\n    param: z22.string().nullish()\n  })\n});\nvar openaiResponsesErrorChunkSchema = z22.object({\n  type: z22.literal(\"error\"),\n  sequence_number: z22.number(),\n  code: z22.string().nullish(),\n  message: z22.string(),\n  param: z22.string().nullish()\n});\nvar openaiResponsesChunkSchema = lazySchema20(\n  () => zodSchema20(\n    z22.union([\n      z22.object({\n        type: z22.literal(\"response.output_text.delta\"),\n        item_id: z22.string(),\n        delta: z22.string(),\n        logprobs: z22.array(\n          z22.object({\n            token: z22.string(),\n            logprob: z22.number(),\n            top_logprobs: z22.array(\n              z22.object({\n                token: z22.string(),\n                logprob: z22.number()\n              })\n            )\n          })\n        ).nullish()\n      }),\n      z22.object({\n        type: z22.enum([\"response.completed\", \"response.incomplete\"]),\n        response: z22.object({\n          incomplete_details: z22.object({ reason: z22.string() }).nullish(),\n          usage: z22.object({\n            input_tokens: z22.number(),\n            input_tokens_details: z22.object({\n              cached_tokens: z22.number().nullish(),\n              cache_write_tokens: z22.number().nullish(),\n              orchestration_input_tokens: z22.number().nullish(),\n              orchestration_input_cached_tokens: z22.number().nullish()\n            }).nullish(),\n            output_tokens: z22.number(),\n            output_tokens_details: z22.object({\n              reasoning_tokens: z22.number().nullish(),\n              orchestration_output_tokens: z22.number().nullish()\n            }).nullish()\n          }),\n          reasoning: z22.object({\n            context: z22.string().nullish()\n          }).nullish(),\n          service_tier: z22.string().nullish()\n        })\n      }),\n      z22.object({\n        type: z22.literal(\"response.failed\"),\n        sequence_number: z22.number(),\n        response: z22.object({\n          error: z22.object({\n            code: z22.string().nullish(),\n            message: z22.string()\n          }).nullish(),\n          incomplete_details: z22.object({ reason: z22.string() }).nullish(),\n          usage: z22.object({\n            input_tokens: z22.number(),\n            input_tokens_details: z22.object({\n              cached_tokens: z22.number().nullish(),\n              cache_write_tokens: z22.number().nullish(),\n              orchestration_input_tokens: z22.number().nullish(),\n              orchestration_input_cached_tokens: z22.number().nullish()\n            }).nullish(),\n            output_tokens: z22.number(),\n            output_tokens_details: z22.object({\n              reasoning_tokens: z22.number().nullish(),\n              orchestration_output_tokens: z22.number().nullish()\n            }).nullish()\n          }).nullish(),\n          reasoning: z22.object({\n            context: z22.string().nullish()\n          }).nullish(),\n          service_tier: z22.string().nullish()\n        })\n      }),\n      z22.object({\n        type: z22.literal(\"response.created\"),\n        response: z22.object({\n          id: z22.string(),\n          created_at: z22.number(),\n          model: z22.string(),\n          service_tier: z22.string().nullish()\n        })\n      }),\n      z22.object({\n        type: z22.literal(\"response.output_item.added\"),\n        output_index: z22.number(),\n        item: z22.discriminatedUnion(\"type\", [\n          z22.object({\n            type: z22.literal(\"message\"),\n            id: z22.string(),\n            phase: z22.enum([\"commentary\", \"final_answer\"]).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"reasoning\"),\n            id: z22.string(),\n            encrypted_content: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"function_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            name: z22.string(),\n            arguments: z22.string(),\n            namespace: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"web_search_call\"),\n            id: z22.string(),\n            status: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"computer_call\"),\n            id: z22.string(),\n            status: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"file_search_call\"),\n            id: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"image_generation_call\"),\n            id: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"code_interpreter_call\"),\n            id: z22.string(),\n            container_id: z22.string(),\n            code: z22.string().nullable(),\n            outputs: z22.array(\n              z22.discriminatedUnion(\"type\", [\n                z22.object({ type: z22.literal(\"logs\"), logs: z22.string() }),\n                z22.object({ type: z22.literal(\"image\"), url: z22.string() })\n              ])\n            ).nullable(),\n            status: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_call\"),\n            id: z22.string(),\n            status: z22.string(),\n            approval_request_id: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_list_tools\"),\n            id: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_approval_request\"),\n            id: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"apply_patch_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\"]),\n            operation: z22.discriminatedUnion(\"type\", [\n              z22.object({\n                type: z22.literal(\"create_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"delete_file\"),\n                path: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"update_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              })\n            ])\n          }),\n          z22.object({\n            type: z22.literal(\"custom_tool_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            name: z22.string(),\n            input: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            action: z22.object({\n              commands: z22.array(z22.string())\n            })\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call_output\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            output: z22.array(\n              z22.object({\n                stdout: z22.string(),\n                stderr: z22.string(),\n                outcome: z22.discriminatedUnion(\"type\", [\n                  z22.object({ type: z22.literal(\"timeout\") }),\n                  z22.object({\n                    type: z22.literal(\"exit\"),\n                    exit_code: z22.number()\n                  })\n                ])\n              })\n            )\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_call\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            arguments: z22.unknown()\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_output\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            tools: z22.array(z22.record(z22.string(), jsonValueSchema2.optional()))\n          })\n        ])\n      }),\n      z22.object({\n        type: z22.literal(\"response.output_item.done\"),\n        output_index: z22.number(),\n        item: z22.discriminatedUnion(\"type\", [\n          z22.object({\n            type: z22.literal(\"message\"),\n            id: z22.string(),\n            phase: z22.enum([\"commentary\", \"final_answer\"]).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"reasoning\"),\n            id: z22.string(),\n            encrypted_content: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"function_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            name: z22.string(),\n            arguments: z22.string(),\n            status: z22.literal(\"completed\"),\n            namespace: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"custom_tool_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            name: z22.string(),\n            input: z22.string(),\n            status: z22.literal(\"completed\")\n          }),\n          z22.object({\n            type: z22.literal(\"code_interpreter_call\"),\n            id: z22.string(),\n            code: z22.string().nullable(),\n            container_id: z22.string(),\n            outputs: z22.array(\n              z22.discriminatedUnion(\"type\", [\n                z22.object({ type: z22.literal(\"logs\"), logs: z22.string() }),\n                z22.object({ type: z22.literal(\"image\"), url: z22.string() })\n              ])\n            ).nullable()\n          }),\n          z22.object({\n            type: z22.literal(\"image_generation_call\"),\n            id: z22.string(),\n            result: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"web_search_call\"),\n            id: z22.string(),\n            status: z22.string(),\n            action: z22.discriminatedUnion(\"type\", [\n              z22.object({\n                type: z22.literal(\"search\"),\n                query: z22.string().nullish(),\n                queries: z22.array(z22.string()).nullish(),\n                sources: z22.array(\n                  z22.discriminatedUnion(\"type\", [\n                    z22.object({ type: z22.literal(\"url\"), url: z22.string() }),\n                    z22.object({ type: z22.literal(\"api\"), name: z22.string() })\n                  ])\n                ).nullish()\n              }),\n              z22.object({\n                type: z22.literal(\"open_page\"),\n                url: z22.string().nullish()\n              }),\n              z22.object({\n                type: z22.literal(\"find_in_page\"),\n                url: z22.string().nullish(),\n                pattern: z22.string().nullish()\n              })\n            ]).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"file_search_call\"),\n            id: z22.string(),\n            queries: z22.array(z22.string()),\n            results: z22.array(\n              z22.object({\n                attributes: z22.record(\n                  z22.string(),\n                  z22.union([z22.string(), z22.number(), z22.boolean()])\n                ),\n                file_id: z22.string(),\n                filename: z22.string(),\n                score: z22.number(),\n                text: z22.string()\n              })\n            ).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"local_shell_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            action: z22.object({\n              type: z22.literal(\"exec\"),\n              command: z22.array(z22.string()),\n              timeout_ms: z22.number().optional(),\n              user: z22.string().optional(),\n              working_directory: z22.string().optional(),\n              env: z22.record(z22.string(), z22.string()).optional()\n            })\n          }),\n          z22.object({\n            type: z22.literal(\"computer_call\"),\n            id: z22.string(),\n            status: z22.literal(\"completed\")\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_call\"),\n            id: z22.string(),\n            status: z22.string(),\n            arguments: z22.string(),\n            name: z22.string(),\n            server_label: z22.string(),\n            output: z22.string().nullish(),\n            error: z22.union([\n              z22.string(),\n              z22.object({\n                type: z22.string().optional(),\n                code: z22.union([z22.number(), z22.string()]).optional(),\n                message: z22.string().optional()\n              }).loose()\n            ]).nullish(),\n            approval_request_id: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_list_tools\"),\n            id: z22.string(),\n            server_label: z22.string(),\n            tools: z22.array(\n              z22.object({\n                name: z22.string(),\n                description: z22.string().optional(),\n                input_schema: z22.any(),\n                annotations: z22.record(z22.string(), z22.unknown()).optional()\n              })\n            ),\n            error: z22.union([\n              z22.string(),\n              z22.object({\n                type: z22.string().optional(),\n                code: z22.union([z22.number(), z22.string()]).optional(),\n                message: z22.string().optional()\n              }).loose()\n            ]).optional()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_approval_request\"),\n            id: z22.string(),\n            server_label: z22.string(),\n            name: z22.string(),\n            arguments: z22.string(),\n            approval_request_id: z22.string().optional()\n          }),\n          z22.object({\n            type: z22.literal(\"apply_patch_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\"]),\n            operation: z22.discriminatedUnion(\"type\", [\n              z22.object({\n                type: z22.literal(\"create_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"delete_file\"),\n                path: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"update_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              })\n            ])\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            action: z22.object({\n              commands: z22.array(z22.string())\n            })\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call_output\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            output: z22.array(\n              z22.object({\n                stdout: z22.string(),\n                stderr: z22.string(),\n                outcome: z22.discriminatedUnion(\"type\", [\n                  z22.object({ type: z22.literal(\"timeout\") }),\n                  z22.object({\n                    type: z22.literal(\"exit\"),\n                    exit_code: z22.number()\n                  })\n                ])\n              })\n            )\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_call\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            arguments: z22.unknown()\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_output\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            tools: z22.array(z22.record(z22.string(), jsonValueSchema2.optional()))\n          })\n        ])\n      }),\n      z22.object({\n        type: z22.literal(\"response.function_call_arguments.delta\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        delta: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.custom_tool_call_input.delta\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        delta: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.image_generation_call.partial_image\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        partial_image_b64: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.code_interpreter_call_code.delta\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        delta: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.code_interpreter_call_code.done\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        code: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.output_text.annotation.added\"),\n        annotation: z22.discriminatedUnion(\"type\", [\n          z22.object({\n            type: z22.literal(\"url_citation\"),\n            start_index: z22.number(),\n            end_index: z22.number(),\n            url: z22.string(),\n            title: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"file_citation\"),\n            file_id: z22.string(),\n            filename: z22.string(),\n            index: z22.number()\n          }),\n          z22.object({\n            type: z22.literal(\"container_file_citation\"),\n            container_id: z22.string(),\n            file_id: z22.string(),\n            filename: z22.string(),\n            start_index: z22.number(),\n            end_index: z22.number()\n          }),\n          z22.object({\n            type: z22.literal(\"file_path\"),\n            file_id: z22.string(),\n            index: z22.number()\n          })\n        ])\n      }),\n      z22.object({\n        type: z22.literal(\"response.reasoning_summary_part.added\"),\n        item_id: z22.string(),\n        summary_index: z22.number()\n      }),\n      z22.object({\n        type: z22.literal(\"response.reasoning_summary_text.delta\"),\n        item_id: z22.string(),\n        summary_index: z22.number(),\n        delta: z22.string()\n      }),\n      z22.object({\n        type: z22.literal(\"response.reasoning_summary_part.done\"),\n        item_id: z22.string(),\n        summary_index: z22.number()\n      }),\n      z22.object({\n        type: z22.literal(\"response.apply_patch_call_operation_diff.delta\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        delta: z22.string(),\n        obfuscation: z22.string().nullish()\n      }),\n      z22.object({\n        type: z22.literal(\"response.apply_patch_call_operation_diff.done\"),\n        item_id: z22.string(),\n        output_index: z22.number(),\n        diff: z22.string()\n      }),\n      openaiResponsesNestedErrorChunkSchema,\n      openaiResponsesErrorChunkSchema,\n      z22.object({ type: z22.string() }).loose().transform((value) => ({\n        type: \"unknown_chunk\",\n        message: value.type\n      }))\n      // fallback for unknown chunks\n    ])\n  )\n);\nvar openaiResponsesResponseSchema = lazySchema20(\n  () => zodSchema20(\n    z22.object({\n      id: z22.string().optional(),\n      created_at: z22.number().optional(),\n      error: z22.object({\n        message: z22.string(),\n        type: z22.string(),\n        param: z22.string().nullish(),\n        code: z22.string()\n      }).nullish(),\n      model: z22.string().optional(),\n      output: z22.array(\n        z22.discriminatedUnion(\"type\", [\n          z22.object({\n            type: z22.literal(\"message\"),\n            role: z22.literal(\"assistant\"),\n            id: z22.string(),\n            phase: z22.enum([\"commentary\", \"final_answer\"]).nullish(),\n            content: z22.array(\n              z22.object({\n                type: z22.literal(\"output_text\"),\n                text: z22.string(),\n                logprobs: z22.array(\n                  z22.object({\n                    token: z22.string(),\n                    logprob: z22.number(),\n                    top_logprobs: z22.array(\n                      z22.object({\n                        token: z22.string(),\n                        logprob: z22.number()\n                      })\n                    )\n                  })\n                ).nullish(),\n                annotations: z22.array(\n                  z22.discriminatedUnion(\"type\", [\n                    z22.object({\n                      type: z22.literal(\"url_citation\"),\n                      start_index: z22.number(),\n                      end_index: z22.number(),\n                      url: z22.string(),\n                      title: z22.string()\n                    }),\n                    z22.object({\n                      type: z22.literal(\"file_citation\"),\n                      file_id: z22.string(),\n                      filename: z22.string(),\n                      index: z22.number()\n                    }),\n                    z22.object({\n                      type: z22.literal(\"container_file_citation\"),\n                      container_id: z22.string(),\n                      file_id: z22.string(),\n                      filename: z22.string(),\n                      start_index: z22.number(),\n                      end_index: z22.number()\n                    }),\n                    z22.object({\n                      type: z22.literal(\"file_path\"),\n                      file_id: z22.string(),\n                      index: z22.number()\n                    })\n                  ])\n                )\n              })\n            )\n          }),\n          z22.object({\n            type: z22.literal(\"web_search_call\"),\n            id: z22.string(),\n            status: z22.string(),\n            action: z22.discriminatedUnion(\"type\", [\n              z22.object({\n                type: z22.literal(\"search\"),\n                query: z22.string().nullish(),\n                queries: z22.array(z22.string()).nullish(),\n                sources: z22.array(\n                  z22.discriminatedUnion(\"type\", [\n                    z22.object({ type: z22.literal(\"url\"), url: z22.string() }),\n                    z22.object({\n                      type: z22.literal(\"api\"),\n                      name: z22.string()\n                    })\n                  ])\n                ).nullish()\n              }),\n              z22.object({\n                type: z22.literal(\"open_page\"),\n                url: z22.string().nullish()\n              }),\n              z22.object({\n                type: z22.literal(\"find_in_page\"),\n                url: z22.string().nullish(),\n                pattern: z22.string().nullish()\n              })\n            ]).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"file_search_call\"),\n            id: z22.string(),\n            queries: z22.array(z22.string()),\n            results: z22.array(\n              z22.object({\n                attributes: z22.record(\n                  z22.string(),\n                  z22.union([z22.string(), z22.number(), z22.boolean()])\n                ),\n                file_id: z22.string(),\n                filename: z22.string(),\n                score: z22.number(),\n                text: z22.string()\n              })\n            ).nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"code_interpreter_call\"),\n            id: z22.string(),\n            code: z22.string().nullable(),\n            container_id: z22.string(),\n            outputs: z22.array(\n              z22.discriminatedUnion(\"type\", [\n                z22.object({ type: z22.literal(\"logs\"), logs: z22.string() }),\n                z22.object({ type: z22.literal(\"image\"), url: z22.string() })\n              ])\n            ).nullable()\n          }),\n          z22.object({\n            type: z22.literal(\"image_generation_call\"),\n            id: z22.string(),\n            result: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"local_shell_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            action: z22.object({\n              type: z22.literal(\"exec\"),\n              command: z22.array(z22.string()),\n              timeout_ms: z22.number().optional(),\n              user: z22.string().optional(),\n              working_directory: z22.string().optional(),\n              env: z22.record(z22.string(), z22.string()).optional()\n            })\n          }),\n          z22.object({\n            type: z22.literal(\"function_call\"),\n            call_id: z22.string(),\n            name: z22.string(),\n            arguments: z22.string(),\n            id: z22.string(),\n            namespace: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"custom_tool_call\"),\n            call_id: z22.string(),\n            name: z22.string(),\n            input: z22.string(),\n            id: z22.string()\n          }),\n          z22.object({\n            type: z22.literal(\"computer_call\"),\n            id: z22.string(),\n            status: z22.string().optional()\n          }),\n          z22.object({\n            type: z22.literal(\"reasoning\"),\n            id: z22.string(),\n            encrypted_content: z22.string().nullish(),\n            summary: z22.array(\n              z22.object({\n                type: z22.literal(\"summary_text\"),\n                text: z22.string()\n              })\n            )\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_call\"),\n            id: z22.string(),\n            status: z22.string(),\n            arguments: z22.string(),\n            name: z22.string(),\n            server_label: z22.string(),\n            output: z22.string().nullish(),\n            error: z22.union([\n              z22.string(),\n              z22.object({\n                type: z22.string().optional(),\n                code: z22.union([z22.number(), z22.string()]).optional(),\n                message: z22.string().optional()\n              }).loose()\n            ]).nullish(),\n            approval_request_id: z22.string().nullish()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_list_tools\"),\n            id: z22.string(),\n            server_label: z22.string(),\n            tools: z22.array(\n              z22.object({\n                name: z22.string(),\n                description: z22.string().optional(),\n                input_schema: z22.any(),\n                annotations: z22.record(z22.string(), z22.unknown()).optional()\n              })\n            ),\n            error: z22.union([\n              z22.string(),\n              z22.object({\n                type: z22.string().optional(),\n                code: z22.union([z22.number(), z22.string()]).optional(),\n                message: z22.string().optional()\n              }).loose()\n            ]).optional()\n          }),\n          z22.object({\n            type: z22.literal(\"mcp_approval_request\"),\n            id: z22.string(),\n            server_label: z22.string(),\n            name: z22.string(),\n            arguments: z22.string(),\n            approval_request_id: z22.string().optional()\n          }),\n          z22.object({\n            type: z22.literal(\"apply_patch_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\"]),\n            operation: z22.discriminatedUnion(\"type\", [\n              z22.object({\n                type: z22.literal(\"create_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"delete_file\"),\n                path: z22.string()\n              }),\n              z22.object({\n                type: z22.literal(\"update_file\"),\n                path: z22.string(),\n                diff: z22.string()\n              })\n            ])\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            action: z22.object({\n              commands: z22.array(z22.string())\n            })\n          }),\n          z22.object({\n            type: z22.literal(\"shell_call_output\"),\n            id: z22.string(),\n            call_id: z22.string(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            output: z22.array(\n              z22.object({\n                stdout: z22.string(),\n                stderr: z22.string(),\n                outcome: z22.discriminatedUnion(\"type\", [\n                  z22.object({ type: z22.literal(\"timeout\") }),\n                  z22.object({\n                    type: z22.literal(\"exit\"),\n                    exit_code: z22.number()\n                  })\n                ])\n              })\n            )\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_call\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            arguments: z22.unknown()\n          }),\n          z22.object({\n            type: z22.literal(\"tool_search_output\"),\n            id: z22.string(),\n            execution: z22.enum([\"server\", \"client\"]),\n            call_id: z22.string().nullable(),\n            status: z22.enum([\"in_progress\", \"completed\", \"incomplete\"]),\n            tools: z22.array(z22.record(z22.string(), jsonValueSchema2.optional()))\n          })\n        ])\n      ).optional(),\n      service_tier: z22.string().nullish(),\n      reasoning: z22.object({\n        context: z22.string().nullish()\n      }).nullish(),\n      incomplete_details: z22.object({ reason: z22.string() }).nullish(),\n      usage: z22.object({\n        input_tokens: z22.number(),\n        input_tokens_details: z22.object({\n          cached_tokens: z22.number().nullish(),\n          cache_write_tokens: z22.number().nullish(),\n          orchestration_input_tokens: z22.number().nullish(),\n          orchestration_input_cached_tokens: z22.number().nullish()\n        }).nullish(),\n        output_tokens: z22.number(),\n        output_tokens_details: z22.object({\n          reasoning_tokens: z22.number().nullish(),\n          orchestration_output_tokens: z22.number().nullish()\n        }).nullish()\n      }).optional()\n    })\n  )\n);\n\n// src/responses/openai-responses-options.ts\nimport {\n  lazySchema as lazySchema21,\n  zodSchema as zodSchema21\n} from \"@ai-sdk/provider-utils\";\nimport { z as z23 } from \"zod/v4\";\nvar TOP_LOGPROBS_MAX = 20;\nvar openaiResponsesReasoningModelIds = [\n  \"o1\",\n  \"o1-2024-12-17\",\n  \"o3\",\n  \"o3-2025-04-16\",\n  \"o3-mini\",\n  \"o3-mini-2025-01-31\",\n  \"o4-mini\",\n  \"o4-mini-2025-04-16\",\n  \"gpt-5\",\n  \"gpt-5-2025-08-07\",\n  \"gpt-5-codex\",\n  \"gpt-5-mini\",\n  \"gpt-5-mini-2025-08-07\",\n  \"gpt-5-nano\",\n  \"gpt-5-nano-2025-08-07\",\n  \"gpt-5-pro\",\n  \"gpt-5-pro-2025-10-06\",\n  \"gpt-5.1\",\n  \"gpt-5.1-chat-latest\",\n  \"gpt-5.1-codex-mini\",\n  \"gpt-5.1-codex\",\n  \"gpt-5.1-codex-max\",\n  \"gpt-5.2\",\n  \"gpt-5.2-chat-latest\",\n  \"gpt-5.2-pro\",\n  \"gpt-5.2-codex\",\n  \"gpt-5.3-chat-latest\",\n  \"gpt-5.3-codex\",\n  \"gpt-5.4\",\n  \"gpt-5.4-2026-03-05\",\n  \"gpt-5.4-mini\",\n  \"gpt-5.4-mini-2026-03-17\",\n  \"gpt-5.4-nano\",\n  \"gpt-5.4-nano-2026-03-17\",\n  \"gpt-5.4-pro\",\n  \"gpt-5.4-pro-2026-03-05\",\n  \"gpt-5.5\",\n  \"gpt-5.5-2026-04-23\",\n  \"gpt-5.6\",\n  \"gpt-5.6-luna\",\n  \"gpt-5.6-sol\",\n  \"gpt-5.6-terra\"\n];\nvar openaiResponsesModelIds = [\n  \"gpt-4.1\",\n  \"gpt-4.1-2025-04-14\",\n  \"gpt-4.1-mini\",\n  \"gpt-4.1-mini-2025-04-14\",\n  \"gpt-4.1-nano\",\n  \"gpt-4.1-nano-2025-04-14\",\n  \"gpt-4o\",\n  \"gpt-4o-2024-05-13\",\n  \"gpt-4o-2024-08-06\",\n  \"gpt-4o-2024-11-20\",\n  \"gpt-4o-audio-preview\",\n  \"gpt-4o-audio-preview-2024-12-17\",\n  \"gpt-4o-search-preview\",\n  \"gpt-4o-search-preview-2025-03-11\",\n  \"gpt-4o-mini-search-preview\",\n  \"gpt-4o-mini-search-preview-2025-03-11\",\n  \"gpt-4o-mini\",\n  \"gpt-4o-mini-2024-07-18\",\n  \"gpt-3.5-turbo-0125\",\n  \"gpt-3.5-turbo\",\n  \"gpt-3.5-turbo-1106\",\n  \"gpt-5-chat-latest\",\n  ...openaiResponsesReasoningModelIds\n];\nvar openaiLanguageModelResponsesOptionsSchema = lazySchema21(\n  () => zodSchema21(\n    z23.object({\n      /**\n       * The ID of the OpenAI Conversation to continue.\n       * You must create a conversation first via the OpenAI API.\n       * Cannot be used in conjunction with `previousResponseId`.\n       * Defaults to `undefined`.\n       * @see https://platform.openai.com/docs/api-reference/conversations/create\n       */\n      conversation: z23.string().nullish(),\n      /**\n       * The set of extra fields to include in the response (advanced, usually not needed).\n       * Example values: 'reasoning.encrypted_content', 'file_search_call.results', 'web_search_call.results', 'message.output_text.logprobs'.\n       */\n      include: z23.array(\n        z23.enum([\n          \"reasoning.encrypted_content\",\n          // handled internally by default, only needed for unknown reasoning models\n          \"file_search_call.results\",\n          \"web_search_call.results\",\n          \"message.output_text.logprobs\"\n        ])\n      ).nullish(),\n      /**\n       * Instructions for the model.\n       * They can be used to change the system or developer message when continuing a conversation using the `previousResponseId` option.\n       * Defaults to `undefined`.\n       */\n      instructions: z23.string().nullish(),\n      /**\n       * Return the log probabilities of the tokens. Including logprobs will increase\n       * the response size and can slow down response times. However, it can\n       * be useful to better understand how the model is behaving.\n       *\n       * Setting to true will return the log probabilities of the tokens that\n       * were generated.\n       *\n       * Setting to a number will return the log probabilities of the top n\n       * tokens that were generated.\n       *\n       * @see https://platform.openai.com/docs/api-reference/responses/create\n       * @see https://cookbook.openai.com/examples/using_logprobs\n       */\n      logprobs: z23.union([z23.boolean(), z23.number().min(1).max(TOP_LOGPROBS_MAX)]).optional(),\n      /**\n       * The maximum number of total calls to built-in tools that can be processed in a response.\n       * This maximum number applies across all built-in tool calls, not per individual tool.\n       * Any further attempts to call a tool by the model will be ignored.\n       */\n      maxToolCalls: z23.number().nullish(),\n      /**\n       * Additional metadata to store with the generation.\n       */\n      metadata: z23.any().nullish(),\n      /**\n       * Whether to use parallel tool calls. Defaults to `true`.\n       */\n      parallelToolCalls: z23.boolean().nullish(),\n      /**\n       * The ID of the previous response. You can use it to continue a conversation.\n       * Defaults to `undefined`.\n       */\n      previousResponseId: z23.string().nullish(),\n      /**\n       * Sets a cache key to tie this prompt to cached prefixes for better caching performance.\n       */\n      promptCacheKey: z23.string().nullish(),\n      /**\n       * Prompt cache behavior for GPT-5.6 and later models.\n       * `mode` controls whether OpenAI also places an implicit breakpoint.\n       * `ttl` sets the minimum cache lifetime and currently only supports 30 minutes.\n       */\n      promptCacheOptions: z23.object({\n        mode: z23.enum([\"implicit\", \"explicit\"]).optional(),\n        ttl: z23.literal(\"30m\").optional()\n      }).optional(),\n      /**\n       * The retention policy for the prompt cache.\n       * - 'in_memory': Default. Standard prompt caching behavior.\n       * - '24h': Extended prompt caching that keeps cached prefixes active for up to 24 hours.\n       *          Available for models before GPT-5.6 that support extended caching.\n       *\n       * @deprecated For GPT-5.6 and later models, use `promptCacheOptions.ttl`.\n       *\n       * @default 'in_memory'\n       */\n      promptCacheRetention: z23.enum([\"in_memory\", \"24h\"]).nullish(),\n      /**\n       * Reasoning effort for reasoning models. Defaults to `medium`. If you use\n       * `providerOptions` to set the `reasoningEffort` option, this model setting will be ignored.\n       * GPT-5.6 supports 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'.\n       * Supported values vary by model.\n       */\n      reasoningEffort: z23.string().nullish(),\n      /**\n       * Controls how much model work GPT-5.6 performs before returning a final answer.\n       * `standard` is the default. `pro` increases quality, latency, and token usage.\n       */\n      reasoningMode: z23.enum([\"standard\", \"pro\"]).optional(),\n      /**\n       * Controls which available reasoning items GPT-5.6 can use.\n       * `auto` uses the model default, `current_turn` excludes reasoning from earlier\n       * turns, and `all_turns` makes compatible earlier reasoning available.\n       */\n      reasoningContext: z23.enum([\"auto\", \"current_turn\", \"all_turns\"]).optional(),\n      /**\n       * Controls reasoning summary output from the model.\n       * Set to \"auto\" to automatically receive the richest level available,\n       * or \"detailed\" for comprehensive summaries.\n       */\n      reasoningSummary: z23.string().nullish(),\n      /**\n       * The identifier for safety monitoring and tracking.\n       */\n      safetyIdentifier: z23.string().nullish(),\n      /**\n       * Service tier for the request.\n       * Set to 'flex' for 50% cheaper processing at the cost of increased latency (available for o3, o4-mini, and gpt-5 models).\n       * Set to 'priority' for faster processing with Enterprise access (available for gpt-4, gpt-5, gpt-5-mini, o3, o4-mini; gpt-5-nano is not supported).\n       *\n       * Defaults to 'auto'.\n       */\n      serviceTier: z23.enum([\"auto\", \"flex\", \"priority\", \"default\"]).nullish(),\n      /**\n       * Whether to store the generation. Defaults to `true`.\n       */\n      store: z23.boolean().nullish(),\n      /**\n       * Whether to pass through non-image file types as generic input files.\n       *\n       * By default, inline file inputs are restricted to images and PDFs.\n       * Enable this when the target OpenAI Responses model supports additional\n       * file media types, such as text/csv.\n       */\n      passThroughUnsupportedFiles: z23.boolean().optional(),\n      /**\n       * Whether to use strict JSON schema validation.\n       * Defaults to `true`.\n       */\n      strictJsonSchema: z23.boolean().nullish(),\n      /**\n       * Controls the verbosity of the model's responses. Lower values ('low') will result\n       * in more concise responses, while higher values ('high') will result in more verbose responses.\n       * Valid values: 'low', 'medium', 'high'.\n       */\n      textVerbosity: z23.enum([\"low\", \"medium\", \"high\"]).nullish(),\n      /**\n       * Controls output truncation. 'auto' (default) performs truncation automatically;\n       * 'disabled' turns truncation off.\n       */\n      truncation: z23.enum([\"auto\", \"disabled\"]).nullish(),\n      /**\n       * A unique identifier representing your end-user, which can help OpenAI to\n       * monitor and detect abuse.\n       * Defaults to `undefined`.\n       * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids\n       */\n      user: z23.string().nullish(),\n      /**\n       * Override the system message mode for this model.\n       * - 'system': Use the 'system' role for system messages (default for most models)\n       * - 'developer': Use the 'developer' role for system messages (used by reasoning models)\n       * - 'remove': Remove system messages entirely\n       *\n       * If not specified, the mode is automatically determined based on the model.\n       */\n      systemMessageMode: z23.enum([\"system\", \"developer\", \"remove\"]).optional(),\n      /**\n       * Force treating this model as a reasoning model.\n       *\n       * This is useful for \"stealth\" reasoning models (e.g. via a custom baseURL)\n       * where the model ID is not recognized by the SDK's allowlist.\n       *\n       * When enabled, the SDK applies reasoning-model parameter compatibility rules\n       * and defaults `systemMessageMode` to `developer` unless overridden.\n       */\n      forceReasoning: z23.boolean().optional(),\n      /**\n       * Restrict the callable tools to a subset while keeping the full tools\n       * list intact, so prompt caching is preserved across requests with\n       * different allowlists.\n       *\n       * When set, this overrides the request-level `toolChoice` and emits\n       * `tool_choice: { type: \"allowed_tools\", mode, tools }` on the wire.\n       *\n       * @see https://developers.openai.com/api/reference/resources/responses/methods/create#(resource)%20responses%20%3E%20(model)%20tool_choice_allowed%20%3E%20(schema)\n       */\n      allowedTools: z23.object({\n        toolNames: z23.array(z23.string()).min(1),\n        mode: z23.enum([\"auto\", \"required\"]).optional()\n      }).optional()\n    })\n  )\n);\n\n// src/responses/openai-responses-prepare-tools.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError5\n} from \"@ai-sdk/provider\";\nimport { validateTypes as validateTypes2 } from \"@ai-sdk/provider-utils\";\nasync function prepareResponsesTools({\n  tools,\n  toolChoice,\n  allowedTools,\n  toolNameMapping,\n  customProviderToolNames\n}) {\n  var _a, _b, _c;\n  tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  const toolWarnings = [];\n  if (tools == null) {\n    return { tools: void 0, toolChoice: void 0, toolWarnings };\n  }\n  const openaiTools2 = [];\n  const namespaceTools = /* @__PURE__ */ new Map();\n  const resolvedCustomProviderToolNames = customProviderToolNames != null ? customProviderToolNames : /* @__PURE__ */ new Set();\n  for (const tool of tools) {\n    switch (tool.type) {\n      case \"function\": {\n        const openaiOptions = (_a = tool.providerOptions) == null ? void 0 : _a.openai;\n        const openaiFunctionTool = prepareFunctionTool({\n          tool,\n          options: openaiOptions\n        });\n        const namespace = openaiOptions == null ? void 0 : openaiOptions.namespace;\n        if (namespace == null) {\n          openaiTools2.push(openaiFunctionTool);\n        } else {\n          let namespaceTool = namespaceTools.get(namespace.name);\n          if (namespaceTool == null) {\n            namespaceTool = {\n              type: \"namespace\",\n              name: namespace.name,\n              description: namespace.description,\n              tools: []\n            };\n            namespaceTools.set(namespace.name, namespaceTool);\n            openaiTools2.push(namespaceTool);\n          } else if (namespaceTool.description !== namespace.description) {\n            throw new UnsupportedFunctionalityError5({\n              functionality: `conflicting descriptions for OpenAI tool namespace \"${namespace.name}\"`\n            });\n          }\n          namespaceTool.tools.push(openaiFunctionTool);\n        }\n        break;\n      }\n      case \"provider\": {\n        switch (tool.id) {\n          case \"openai.file_search\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: fileSearchArgsSchema\n            });\n            openaiTools2.push({\n              type: \"file_search\",\n              vector_store_ids: args.vectorStoreIds,\n              max_num_results: args.maxNumResults,\n              ranking_options: args.ranking ? {\n                ranker: args.ranking.ranker,\n                score_threshold: args.ranking.scoreThreshold\n              } : void 0,\n              filters: args.filters\n            });\n            break;\n          }\n          case \"openai.local_shell\": {\n            openaiTools2.push({\n              type: \"local_shell\"\n            });\n            break;\n          }\n          case \"openai.shell\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: shellArgsSchema\n            });\n            openaiTools2.push({\n              type: \"shell\",\n              ...args.environment && {\n                environment: mapShellEnvironment(args.environment)\n              }\n            });\n            break;\n          }\n          case \"openai.apply_patch\": {\n            openaiTools2.push({\n              type: \"apply_patch\"\n            });\n            break;\n          }\n          case \"openai.web_search_preview\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: webSearchPreviewArgsSchema\n            });\n            openaiTools2.push({\n              type: \"web_search_preview\",\n              search_context_size: args.searchContextSize,\n              user_location: args.userLocation\n            });\n            break;\n          }\n          case \"openai.web_search\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: webSearchArgsSchema\n            });\n            openaiTools2.push({\n              type: \"web_search\",\n              filters: args.filters != null ? { allowed_domains: args.filters.allowedDomains } : void 0,\n              external_web_access: args.externalWebAccess,\n              search_context_size: args.searchContextSize,\n              user_location: args.userLocation\n            });\n            break;\n          }\n          case \"openai.code_interpreter\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: codeInterpreterArgsSchema\n            });\n            openaiTools2.push({\n              type: \"code_interpreter\",\n              container: args.container == null ? { type: \"auto\", file_ids: void 0 } : typeof args.container === \"string\" ? args.container : { type: \"auto\", file_ids: args.container.fileIds }\n            });\n            break;\n          }\n          case \"openai.image_generation\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: imageGenerationArgsSchema\n            });\n            openaiTools2.push({\n              type: \"image_generation\",\n              background: args.background,\n              input_fidelity: args.inputFidelity,\n              input_image_mask: args.inputImageMask ? {\n                file_id: args.inputImageMask.fileId,\n                image_url: args.inputImageMask.imageUrl\n              } : void 0,\n              model: args.model,\n              moderation: args.moderation,\n              partial_images: args.partialImages,\n              quality: args.quality,\n              output_compression: args.outputCompression,\n              output_format: args.outputFormat,\n              size: args.size\n            });\n            break;\n          }\n          case \"openai.mcp\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: mcpArgsSchema\n            });\n            const mapApprovalFilter = (filter) => ({\n              tool_names: filter.toolNames\n            });\n            const requireApproval = args.requireApproval;\n            const requireApprovalParam = requireApproval == null ? void 0 : typeof requireApproval === \"string\" ? requireApproval : requireApproval.never != null ? { never: mapApprovalFilter(requireApproval.never) } : void 0;\n            openaiTools2.push({\n              type: \"mcp\",\n              server_label: args.serverLabel,\n              allowed_tools: Array.isArray(args.allowedTools) ? args.allowedTools : args.allowedTools ? {\n                read_only: args.allowedTools.readOnly,\n                tool_names: args.allowedTools.toolNames\n              } : void 0,\n              authorization: args.authorization,\n              connector_id: args.connectorId,\n              headers: args.headers,\n              require_approval: requireApprovalParam != null ? requireApprovalParam : \"never\",\n              server_description: args.serverDescription,\n              server_url: args.serverUrl\n            });\n            break;\n          }\n          case \"openai.custom\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: customArgsSchema\n            });\n            openaiTools2.push({\n              type: \"custom\",\n              name: args.name,\n              description: args.description,\n              format: args.format\n            });\n            resolvedCustomProviderToolNames.add(args.name);\n            break;\n          }\n          case \"openai.tool_search\": {\n            const args = await validateTypes2({\n              value: tool.args,\n              schema: toolSearchArgsSchema\n            });\n            openaiTools2.push({\n              type: \"tool_search\",\n              ...args.execution != null ? { execution: args.execution } : {},\n              ...args.description != null ? { description: args.description } : {},\n              ...args.parameters != null ? { parameters: args.parameters } : {}\n            });\n            break;\n          }\n        }\n        break;\n      }\n      default:\n        toolWarnings.push({\n          type: \"unsupported\",\n          feature: `function tool ${tool}`\n        });\n        break;\n    }\n  }\n  if (allowedTools != null) {\n    return {\n      tools: openaiTools2,\n      toolChoice: {\n        type: \"allowed_tools\",\n        mode: (_b = allowedTools.mode) != null ? _b : \"auto\",\n        tools: allowedTools.toolNames.map((name) => {\n          var _a2;\n          return {\n            type: \"function\",\n            name: (_a2 = toolNameMapping == null ? void 0 : toolNameMapping.toProviderToolName(name)) != null ? _a2 : name\n          };\n        })\n      },\n      toolWarnings\n    };\n  }\n  if (toolChoice == null) {\n    return { tools: openaiTools2, toolChoice: void 0, toolWarnings };\n  }\n  const type = toolChoice.type;\n  switch (type) {\n    case \"auto\":\n    case \"none\":\n    case \"required\":\n      return { tools: openaiTools2, toolChoice: type, toolWarnings };\n    case \"tool\": {\n      const resolvedToolName = (_c = toolNameMapping == null ? void 0 : toolNameMapping.toProviderToolName(toolChoice.toolName)) != null ? _c : toolChoice.toolName;\n      return {\n        tools: openaiTools2,\n        toolChoice: resolvedToolName === \"code_interpreter\" || resolvedToolName === \"file_search\" || resolvedToolName === \"image_generation\" || resolvedToolName === \"web_search_preview\" || resolvedToolName === \"web_search\" || resolvedToolName === \"mcp\" || resolvedToolName === \"apply_patch\" ? { type: resolvedToolName } : resolvedCustomProviderToolNames.has(resolvedToolName) ? { type: \"custom\", name: resolvedToolName } : { type: \"function\", name: resolvedToolName },\n        toolWarnings\n      };\n    }\n    default: {\n      const _exhaustiveCheck = type;\n      throw new UnsupportedFunctionalityError5({\n        functionality: `tool choice type: ${_exhaustiveCheck}`\n      });\n    }\n  }\n}\nfunction prepareFunctionTool({\n  tool,\n  options\n}) {\n  const deferLoading = options == null ? void 0 : options.deferLoading;\n  return {\n    type: \"function\",\n    name: tool.name,\n    description: tool.description,\n    parameters: tool.inputSchema,\n    ...tool.strict != null ? { strict: tool.strict } : {},\n    ...deferLoading != null ? { defer_loading: deferLoading } : {}\n  };\n}\nfunction mapShellEnvironment(environment) {\n  if (environment.type === \"containerReference\") {\n    const env2 = environment;\n    return {\n      type: \"container_reference\",\n      container_id: env2.containerId\n    };\n  }\n  if (environment.type === \"containerAuto\") {\n    const env2 = environment;\n    return {\n      type: \"container_auto\",\n      file_ids: env2.fileIds,\n      memory_limit: env2.memoryLimit,\n      network_policy: env2.networkPolicy == null ? void 0 : env2.networkPolicy.type === \"disabled\" ? { type: \"disabled\" } : {\n        type: \"allowlist\",\n        allowed_domains: env2.networkPolicy.allowedDomains,\n        domain_secrets: env2.networkPolicy.domainSecrets\n      },\n      skills: mapShellSkills(env2.skills)\n    };\n  }\n  const env = environment;\n  return {\n    type: \"local\",\n    skills: env.skills\n  };\n}\nfunction mapShellSkills(skills) {\n  return skills == null ? void 0 : skills.map(\n    (skill) => skill.type === \"skillReference\" ? {\n      type: \"skill_reference\",\n      skill_id: skill.skillId,\n      version: skill.version\n    } : {\n      type: \"inline\",\n      name: skill.name,\n      description: skill.description,\n      source: {\n        type: \"base64\",\n        media_type: skill.source.mediaType,\n        data: skill.source.data\n      }\n    }\n  );\n}\n\n// src/responses/openai-responses-language-model.ts\nfunction extractApprovalRequestIdToToolCallIdMapping(prompt) {\n  var _a, _b;\n  const mapping = {};\n  for (const message of prompt) {\n    if (message.role !== \"assistant\") continue;\n    for (const part of message.content) {\n      if (part.type !== \"tool-call\") continue;\n      const approvalRequestId = (_b = (_a = part.providerOptions) == null ? void 0 : _a.openai) == null ? void 0 : _b.approvalRequestId;\n      if (approvalRequestId != null) {\n        mapping[approvalRequestId] = part.toolCallId;\n      }\n    }\n  }\n  return mapping;\n}\nvar OpenAIResponsesLanguageModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.supportedUrls = {\n      \"image/*\": [/^https?:\\/\\/.*$/],\n      \"application/pdf\": [/^https?:\\/\\/.*$/]\n    };\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async getArgs({\n    maxOutputTokens,\n    temperature,\n    stopSequences,\n    topP,\n    topK,\n    presencePenalty,\n    frequencyPenalty,\n    seed,\n    prompt,\n    providerOptions,\n    tools,\n    toolChoice,\n    responseFormat\n  }) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n    const warnings = [];\n    const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);\n    if (topK != null) {\n      warnings.push({ type: \"unsupported\", feature: \"topK\" });\n    }\n    if (seed != null) {\n      warnings.push({ type: \"unsupported\", feature: \"seed\" });\n    }\n    if (presencePenalty != null) {\n      warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n    }\n    if (frequencyPenalty != null) {\n      warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n    }\n    if (stopSequences != null) {\n      warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n    }\n    const providerOptionsName = this.config.provider.includes(\"azure\") ? \"azure\" : \"openai\";\n    let openaiOptions = await parseProviderOptions6({\n      provider: providerOptionsName,\n      providerOptions,\n      schema: openaiLanguageModelResponsesOptionsSchema\n    });\n    if (openaiOptions == null && providerOptionsName !== \"openai\") {\n      openaiOptions = await parseProviderOptions6({\n        provider: \"openai\",\n        providerOptions,\n        schema: openaiLanguageModelResponsesOptionsSchema\n      });\n    }\n    const isReasoningModel = (_a = openaiOptions == null ? void 0 : openaiOptions.forceReasoning) != null ? _a : modelCapabilities.isReasoningModel;\n    if ((openaiOptions == null ? void 0 : openaiOptions.conversation) && (openaiOptions == null ? void 0 : openaiOptions.previousResponseId)) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"conversation\",\n        details: \"conversation and previousResponseId cannot be used together\"\n      });\n    }\n    const toolNameMapping = createToolNameMapping({\n      tools,\n      providerToolNames: {\n        \"openai.code_interpreter\": \"code_interpreter\",\n        \"openai.file_search\": \"file_search\",\n        \"openai.image_generation\": \"image_generation\",\n        \"openai.local_shell\": \"local_shell\",\n        \"openai.shell\": \"shell\",\n        \"openai.web_search\": \"web_search\",\n        \"openai.web_search_preview\": \"web_search_preview\",\n        \"openai.mcp\": \"mcp\",\n        \"openai.apply_patch\": \"apply_patch\",\n        \"openai.tool_search\": \"tool_search\"\n      },\n      resolveProviderToolName: (tool) => tool.id === \"openai.custom\" ? tool.args.name : void 0\n    });\n    const customProviderToolNames = /* @__PURE__ */ new Set();\n    const {\n      tools: openaiTools2,\n      toolChoice: openaiToolChoice,\n      toolWarnings\n    } = await prepareResponsesTools({\n      tools,\n      toolChoice,\n      allowedTools: (_b = openaiOptions == null ? void 0 : openaiOptions.allowedTools) != null ? _b : void 0,\n      toolNameMapping,\n      customProviderToolNames\n    });\n    const { input, warnings: inputWarnings } = await convertToOpenAIResponsesInput({\n      prompt,\n      toolNameMapping,\n      systemMessageMode: (_c = openaiOptions == null ? void 0 : openaiOptions.systemMessageMode) != null ? _c : isReasoningModel ? \"developer\" : modelCapabilities.systemMessageMode,\n      providerOptionsName,\n      fileIdPrefixes: this.config.fileIdPrefixes,\n      passThroughUnsupportedFiles: (_d = openaiOptions == null ? void 0 : openaiOptions.passThroughUnsupportedFiles) != null ? _d : false,\n      store: (_e = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _e : true,\n      hasConversation: (openaiOptions == null ? void 0 : openaiOptions.conversation) != null,\n      hasPreviousResponseId: (openaiOptions == null ? void 0 : openaiOptions.previousResponseId) != null,\n      hasLocalShellTool: hasOpenAITool(\"openai.local_shell\"),\n      hasShellTool: hasOpenAITool(\"openai.shell\"),\n      hasApplyPatchTool: hasOpenAITool(\"openai.apply_patch\"),\n      customProviderToolNames: customProviderToolNames.size > 0 ? customProviderToolNames : void 0\n    });\n    warnings.push(...inputWarnings);\n    const strictJsonSchema = (_f = openaiOptions == null ? void 0 : openaiOptions.strictJsonSchema) != null ? _f : true;\n    let include = openaiOptions == null ? void 0 : openaiOptions.include;\n    function addInclude(key) {\n      if (include == null) {\n        include = [key];\n      } else if (!include.includes(key)) {\n        include = [...include, key];\n      }\n    }\n    function hasOpenAITool(id) {\n      return (tools == null ? void 0 : tools.find((tool) => tool.type === \"provider\" && tool.id === id)) != null;\n    }\n    const topLogprobs = typeof (openaiOptions == null ? void 0 : openaiOptions.logprobs) === \"number\" ? openaiOptions == null ? void 0 : openaiOptions.logprobs : (openaiOptions == null ? void 0 : openaiOptions.logprobs) === true ? TOP_LOGPROBS_MAX : void 0;\n    if (topLogprobs) {\n      addInclude(\"message.output_text.logprobs\");\n    }\n    const webSearchToolName = (_g = tools == null ? void 0 : tools.find(\n      (tool) => tool.type === \"provider\" && (tool.id === \"openai.web_search\" || tool.id === \"openai.web_search_preview\")\n    )) == null ? void 0 : _g.name;\n    if (webSearchToolName) {\n      addInclude(\"web_search_call.action.sources\");\n    }\n    if (hasOpenAITool(\"openai.code_interpreter\")) {\n      addInclude(\"code_interpreter_call.outputs\");\n    }\n    const store = openaiOptions == null ? void 0 : openaiOptions.store;\n    if (store === false && isReasoningModel) {\n      addInclude(\"reasoning.encrypted_content\");\n    }\n    const baseArgs = {\n      model: this.modelId,\n      input,\n      temperature,\n      top_p: topP,\n      max_output_tokens: maxOutputTokens,\n      ...((responseFormat == null ? void 0 : responseFormat.type) === \"json\" || (openaiOptions == null ? void 0 : openaiOptions.textVerbosity)) && {\n        text: {\n          ...(responseFormat == null ? void 0 : responseFormat.type) === \"json\" && {\n            format: responseFormat.schema != null ? {\n              type: \"json_schema\",\n              strict: strictJsonSchema,\n              name: (_h = responseFormat.name) != null ? _h : \"response\",\n              description: responseFormat.description,\n              schema: responseFormat.schema\n            } : { type: \"json_object\" }\n          },\n          ...(openaiOptions == null ? void 0 : openaiOptions.textVerbosity) && {\n            verbosity: openaiOptions.textVerbosity\n          }\n        }\n      },\n      // provider options:\n      conversation: openaiOptions == null ? void 0 : openaiOptions.conversation,\n      max_tool_calls: openaiOptions == null ? void 0 : openaiOptions.maxToolCalls,\n      metadata: openaiOptions == null ? void 0 : openaiOptions.metadata,\n      parallel_tool_calls: openaiOptions == null ? void 0 : openaiOptions.parallelToolCalls,\n      previous_response_id: openaiOptions == null ? void 0 : openaiOptions.previousResponseId,\n      store,\n      user: openaiOptions == null ? void 0 : openaiOptions.user,\n      instructions: openaiOptions == null ? void 0 : openaiOptions.instructions,\n      service_tier: openaiOptions == null ? void 0 : openaiOptions.serviceTier,\n      include,\n      prompt_cache_key: openaiOptions == null ? void 0 : openaiOptions.promptCacheKey,\n      prompt_cache_options: openaiOptions == null ? void 0 : openaiOptions.promptCacheOptions,\n      prompt_cache_retention: openaiOptions == null ? void 0 : openaiOptions.promptCacheRetention,\n      safety_identifier: openaiOptions == null ? void 0 : openaiOptions.safetyIdentifier,\n      top_logprobs: topLogprobs,\n      truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,\n      // model-specific settings:\n      ...isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null) && {\n        reasoning: {\n          ...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {\n            effort: openaiOptions.reasoningEffort\n          },\n          ...(openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null && {\n            summary: openaiOptions.reasoningSummary\n          },\n          ...(openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null && {\n            mode: openaiOptions.reasoningMode\n          },\n          ...(openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null && {\n            context: openaiOptions.reasoningContext\n          }\n        }\n      }\n    };\n    if (isReasoningModel) {\n      if (!((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) === \"none\" && modelCapabilities.supportsNonReasoningParameters)) {\n        if (baseArgs.temperature != null) {\n          baseArgs.temperature = void 0;\n          warnings.push({\n            type: \"unsupported\",\n            feature: \"temperature\",\n            details: \"temperature is not supported for reasoning models\"\n          });\n        }\n        if (baseArgs.top_p != null) {\n          baseArgs.top_p = void 0;\n          warnings.push({\n            type: \"unsupported\",\n            feature: \"topP\",\n            details: \"topP is not supported for reasoning models\"\n          });\n        }\n      }\n    } else {\n      if ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"reasoningEffort\",\n          details: \"reasoningEffort is not supported for non-reasoning models\"\n        });\n      }\n      if ((openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"reasoningSummary\",\n          details: \"reasoningSummary is not supported for non-reasoning models\"\n        });\n      }\n      if ((openaiOptions == null ? void 0 : openaiOptions.reasoningMode) != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"reasoningMode\",\n          details: \"reasoningMode is not supported for non-reasoning models\"\n        });\n      }\n      if ((openaiOptions == null ? void 0 : openaiOptions.reasoningContext) != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"reasoningContext\",\n          details: \"reasoningContext is not supported for non-reasoning models\"\n        });\n      }\n    }\n    if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === \"flex\" && !modelCapabilities.supportsFlexProcessing) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"serviceTier\",\n        details: \"flex processing is only available for o3, o4-mini, and gpt-5 models\"\n      });\n      delete baseArgs.service_tier;\n    }\n    if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === \"priority\" && !modelCapabilities.supportsPriorityProcessing) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"serviceTier\",\n        details: \"priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported\"\n      });\n      delete baseArgs.service_tier;\n    }\n    const shellToolEnvType = (_k = (_j = (_i = tools == null ? void 0 : tools.find(\n      (tool) => tool.type === \"provider\" && tool.id === \"openai.shell\"\n    )) == null ? void 0 : _i.args) == null ? void 0 : _j.environment) == null ? void 0 : _k.type;\n    const isShellProviderExecuted = shellToolEnvType === \"containerAuto\" || shellToolEnvType === \"containerReference\";\n    return {\n      webSearchToolName,\n      args: {\n        ...baseArgs,\n        tools: openaiTools2,\n        tool_choice: openaiToolChoice\n      },\n      warnings: [...warnings, ...toolWarnings],\n      store,\n      toolNameMapping,\n      providerOptionsName,\n      isShellProviderExecuted\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C;\n    const {\n      args: body,\n      warnings,\n      webSearchToolName,\n      toolNameMapping,\n      providerOptionsName,\n      isShellProviderExecuted\n    } = await this.getArgs(options);\n    const url = this.config.url({\n      path: \"/responses\",\n      modelId: this.modelId\n    });\n    const approvalRequestIdToDummyToolCallIdFromPrompt = extractApprovalRequestIdToToolCallIdMapping(options.prompt);\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi5({\n      url,\n      headers: combineHeaders5(this.config.headers(), options.headers),\n      body,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler5(\n        openaiResponsesResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    if (response.error) {\n      throw new APICallError2({\n        message: response.error.message,\n        url,\n        requestBodyValues: body,\n        statusCode: 400,\n        responseHeaders,\n        responseBody: rawResponse,\n        isRetryable: false\n      });\n    }\n    const content = [];\n    const logprobs = [];\n    let hasFunctionCall = false;\n    const hostedToolSearchCallIds = [];\n    for (const part of response.output) {\n      switch (part.type) {\n        case \"reasoning\": {\n          if (part.summary.length === 0) {\n            part.summary.push({ type: \"summary_text\", text: \"\" });\n          }\n          for (const summary of part.summary) {\n            content.push({\n              type: \"reasoning\",\n              text: summary.text,\n              providerMetadata: {\n                [providerOptionsName]: {\n                  itemId: part.id,\n                  reasoningEncryptedContent: (_a = part.encrypted_content) != null ? _a : null\n                }\n              }\n            });\n          }\n          break;\n        }\n        case \"image_generation_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"image_generation\"),\n            input: \"{}\",\n            providerExecuted: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"image_generation\"),\n            result: {\n              result: part.result\n            }\n          });\n          break;\n        }\n        case \"tool_search_call\": {\n          const toolCallId = (_b = part.call_id) != null ? _b : part.id;\n          const isHosted = part.execution === \"server\";\n          if (isHosted) {\n            hostedToolSearchCallIds.push(toolCallId);\n          }\n          content.push({\n            type: \"tool-call\",\n            toolCallId,\n            toolName: toolNameMapping.toCustomToolName(\"tool_search\"),\n            input: JSON.stringify({\n              arguments: part.arguments,\n              call_id: part.call_id\n            }),\n            ...isHosted ? { providerExecuted: true } : {},\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"tool_search_output\": {\n          const toolCallId = (_d = (_c = part.call_id) != null ? _c : hostedToolSearchCallIds.shift()) != null ? _d : part.id;\n          content.push({\n            type: \"tool-result\",\n            toolCallId,\n            toolName: toolNameMapping.toCustomToolName(\"tool_search\"),\n            result: {\n              tools: part.tools\n            },\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"local_shell_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.call_id,\n            toolName: toolNameMapping.toCustomToolName(\"local_shell\"),\n            input: JSON.stringify({\n              action: part.action\n            }),\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"shell_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.call_id,\n            toolName: toolNameMapping.toCustomToolName(\"shell\"),\n            input: JSON.stringify({\n              action: {\n                commands: part.action.commands\n              }\n            }),\n            ...isShellProviderExecuted && { providerExecuted: true },\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"shell_call_output\": {\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.call_id,\n            toolName: toolNameMapping.toCustomToolName(\"shell\"),\n            result: {\n              output: part.output.map((item) => ({\n                stdout: item.stdout,\n                stderr: item.stderr,\n                outcome: item.outcome.type === \"exit\" ? {\n                  type: \"exit\",\n                  exitCode: item.outcome.exit_code\n                } : { type: \"timeout\" }\n              }))\n            }\n          });\n          break;\n        }\n        case \"message\": {\n          for (const contentPart of part.content) {\n            if (((_f = (_e = options.providerOptions) == null ? void 0 : _e[providerOptionsName]) == null ? void 0 : _f.logprobs) && contentPart.logprobs) {\n              logprobs.push(contentPart.logprobs);\n            }\n            const providerMetadata2 = {\n              itemId: part.id,\n              ...part.phase != null && { phase: part.phase },\n              ...contentPart.annotations.length > 0 && {\n                annotations: contentPart.annotations\n              }\n            };\n            content.push({\n              type: \"text\",\n              text: contentPart.text,\n              providerMetadata: {\n                [providerOptionsName]: providerMetadata2\n              }\n            });\n            for (const annotation of contentPart.annotations) {\n              if (annotation.type === \"url_citation\") {\n                content.push({\n                  type: \"source\",\n                  sourceType: \"url\",\n                  id: (_i = (_h = (_g = this.config).generateId) == null ? void 0 : _h.call(_g)) != null ? _i : generateId2(),\n                  url: annotation.url,\n                  title: annotation.title\n                });\n              } else if (annotation.type === \"file_citation\") {\n                content.push({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_l = (_k = (_j = this.config).generateId) == null ? void 0 : _k.call(_j)) != null ? _l : generateId2(),\n                  mediaType: \"text/plain\",\n                  title: annotation.filename,\n                  filename: annotation.filename,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: annotation.type,\n                      fileId: annotation.file_id,\n                      index: annotation.index\n                    }\n                  }\n                });\n              } else if (annotation.type === \"container_file_citation\") {\n                content.push({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_o = (_n = (_m = this.config).generateId) == null ? void 0 : _n.call(_m)) != null ? _o : generateId2(),\n                  mediaType: \"text/plain\",\n                  title: annotation.filename,\n                  filename: annotation.filename,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: annotation.type,\n                      fileId: annotation.file_id,\n                      containerId: annotation.container_id\n                    }\n                  }\n                });\n              } else if (annotation.type === \"file_path\") {\n                content.push({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_r = (_q = (_p = this.config).generateId) == null ? void 0 : _q.call(_p)) != null ? _r : generateId2(),\n                  mediaType: \"application/octet-stream\",\n                  title: annotation.file_id,\n                  filename: annotation.file_id,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: annotation.type,\n                      fileId: annotation.file_id,\n                      index: annotation.index\n                    }\n                  }\n                });\n              }\n            }\n          }\n          break;\n        }\n        case \"function_call\": {\n          hasFunctionCall = true;\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.call_id,\n            toolName: part.name,\n            input: part.arguments,\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id,\n                ...part.namespace != null && { namespace: part.namespace }\n              }\n            }\n          });\n          break;\n        }\n        case \"custom_tool_call\": {\n          hasFunctionCall = true;\n          const toolName = toolNameMapping.toCustomToolName(part.name);\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.call_id,\n            toolName,\n            input: JSON.stringify(part.input),\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"web_search_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\n              webSearchToolName != null ? webSearchToolName : \"web_search\"\n            ),\n            input: JSON.stringify({}),\n            providerExecuted: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\n              webSearchToolName != null ? webSearchToolName : \"web_search\"\n            ),\n            result: mapWebSearchOutput(part.action)\n          });\n          break;\n        }\n        case \"mcp_call\": {\n          const toolCallId = part.approval_request_id != null ? (_s = approvalRequestIdToDummyToolCallIdFromPrompt[part.approval_request_id]) != null ? _s : part.id : part.id;\n          const toolName = `mcp.${part.name}`;\n          content.push({\n            type: \"tool-call\",\n            toolCallId,\n            toolName,\n            input: part.arguments,\n            providerExecuted: true,\n            dynamic: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId,\n            toolName,\n            result: {\n              type: \"call\",\n              serverLabel: part.server_label,\n              name: part.name,\n              arguments: part.arguments,\n              ...part.output != null ? { output: part.output } : {},\n              ...part.error != null ? { error: part.error } : {}\n            },\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n        case \"mcp_list_tools\": {\n          break;\n        }\n        case \"mcp_approval_request\": {\n          const approvalRequestId = (_t = part.approval_request_id) != null ? _t : part.id;\n          const dummyToolCallId = (_w = (_v = (_u = this.config).generateId) == null ? void 0 : _v.call(_u)) != null ? _w : generateId2();\n          const toolName = `mcp.${part.name}`;\n          content.push({\n            type: \"tool-call\",\n            toolCallId: dummyToolCallId,\n            toolName,\n            input: part.arguments,\n            providerExecuted: true,\n            dynamic: true\n          });\n          content.push({\n            type: \"tool-approval-request\",\n            approvalId: approvalRequestId,\n            toolCallId: dummyToolCallId\n          });\n          break;\n        }\n        case \"computer_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n            input: \"\",\n            providerExecuted: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n            result: {\n              type: \"computer_use_tool_result\",\n              status: part.status || \"completed\"\n            }\n          });\n          break;\n        }\n        case \"file_search_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"file_search\"),\n            input: \"{}\",\n            providerExecuted: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"file_search\"),\n            result: {\n              queries: part.queries,\n              results: (_y = (_x = part.results) == null ? void 0 : _x.map((result) => ({\n                attributes: result.attributes,\n                fileId: result.file_id,\n                filename: result.filename,\n                score: result.score,\n                text: result.text\n              }))) != null ? _y : null\n            }\n          });\n          break;\n        }\n        case \"code_interpreter_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n            input: JSON.stringify({\n              code: part.code,\n              containerId: part.container_id\n            }),\n            providerExecuted: true\n          });\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.id,\n            toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n            result: {\n              outputs: part.outputs\n            }\n          });\n          break;\n        }\n        case \"apply_patch_call\": {\n          content.push({\n            type: \"tool-call\",\n            toolCallId: part.call_id,\n            toolName: toolNameMapping.toCustomToolName(\"apply_patch\"),\n            input: JSON.stringify({\n              callId: part.call_id,\n              operation: part.operation\n            }),\n            providerMetadata: {\n              [providerOptionsName]: {\n                itemId: part.id\n              }\n            }\n          });\n          break;\n        }\n      }\n    }\n    const providerMetadata = {\n      [providerOptionsName]: {\n        responseId: response.id,\n        ...logprobs.length > 0 ? { logprobs } : {},\n        ...typeof response.service_tier === \"string\" ? { serviceTier: response.service_tier } : {},\n        ...((_z = response.reasoning) == null ? void 0 : _z.context) != null ? { reasoningContext: response.reasoning.context } : {}\n      }\n    };\n    const usage = response.usage;\n    return {\n      content,\n      finishReason: {\n        unified: mapOpenAIResponseFinishReason({\n          finishReason: (_A = response.incomplete_details) == null ? void 0 : _A.reason,\n          hasFunctionCall\n        }),\n        raw: (_C = (_B = response.incomplete_details) == null ? void 0 : _B.reason) != null ? _C : void 0\n      },\n      usage: convertOpenAIResponsesUsage(usage),\n      request: { body },\n      response: {\n        id: response.id,\n        timestamp: new Date(response.created_at * 1e3),\n        modelId: response.model,\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      providerMetadata,\n      warnings\n    };\n  }\n  async doStream(options) {\n    const {\n      args: body,\n      warnings,\n      webSearchToolName,\n      toolNameMapping,\n      store,\n      providerOptionsName,\n      isShellProviderExecuted\n    } = await this.getArgs(options);\n    const url = this.config.url({\n      path: \"/responses\",\n      modelId: this.modelId\n    });\n    const { responseHeaders, value: response } = await postJsonToApi5({\n      url,\n      headers: combineHeaders5(this.config.headers(), options.headers),\n      body: {\n        ...body,\n        stream: true\n      },\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler3(\n        openaiResponsesChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const checkedResponse = await throwIfOpenAIStreamErrorBeforeOutput({\n      stream: response,\n      getError: (chunk) => isErrorChunk(chunk) || isResponseFailedChunk(chunk) && chunk.response.error != null ? chunk : void 0,\n      isOutputChunk: isResponseOutputChunk,\n      url,\n      requestBodyValues: body,\n      responseHeaders\n    });\n    const self = this;\n    const approvalRequestIdToDummyToolCallIdFromPrompt = extractApprovalRequestIdToToolCallIdMapping(options.prompt);\n    const approvalRequestIdToDummyToolCallIdFromStream = /* @__PURE__ */ new Map();\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    let usage = void 0;\n    const logprobs = [];\n    let responseId = null;\n    const ongoingToolCalls = {};\n    const ongoingAnnotations = [];\n    let activeMessagePhase;\n    let hasFunctionCall = false;\n    const activeReasoning = {};\n    let serviceTier;\n    let reasoningContext;\n    const hostedToolSearchCallIds = [];\n    let encounteredStreamError = false;\n    const result = {\n      stream: checkedResponse.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              const error = isOpenAIChatCompletionChunk(chunk.rawValue) ? createOpenAIResponsesChatCompletionsMismatchError({\n                value: chunk.rawValue,\n                cause: chunk.error,\n                url,\n                requestBodyValues: body,\n                responseHeaders\n              }) : chunk.error;\n              finishReason = { unified: \"error\", raw: void 0 };\n              controller.enqueue({ type: \"error\", error });\n              return;\n            }\n            const value = chunk.value;\n            if (isResponseOutputItemAddedChunk(value)) {\n              if (value.item.type === \"function_call\") {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: value.item.name,\n                  toolCallId: value.item.call_id\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: value.item.call_id,\n                  toolName: value.item.name\n                });\n              } else if (value.item.type === \"custom_tool_call\") {\n                const toolName = toolNameMapping.toCustomToolName(\n                  value.item.name\n                );\n                ongoingToolCalls[value.output_index] = {\n                  toolName,\n                  toolCallId: value.item.call_id\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: value.item.call_id,\n                  toolName\n                });\n              } else if (value.item.type === \"web_search_call\") {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: toolNameMapping.toCustomToolName(\n                    webSearchToolName != null ? webSearchToolName : \"web_search\"\n                  ),\n                  toolCallId: value.item.id\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\n                    webSearchToolName != null ? webSearchToolName : \"web_search\"\n                  ),\n                  providerExecuted: true\n                });\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: value.item.id\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\n                    webSearchToolName != null ? webSearchToolName : \"web_search\"\n                  ),\n                  input: JSON.stringify({}),\n                  providerExecuted: true\n                });\n              } else if (value.item.type === \"computer_call\") {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n                  toolCallId: value.item.id\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n                  providerExecuted: true\n                });\n              } else if (value.item.type === \"code_interpreter_call\") {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n                  toolCallId: value.item.id,\n                  codeInterpreter: {\n                    containerId: value.item.container_id\n                  }\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n                  providerExecuted: true\n                });\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: value.item.id,\n                  delta: `{\"containerId\":\"${value.item.container_id}\",\"code\":\"`\n                });\n              } else if (value.item.type === \"file_search_call\") {\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"file_search\"),\n                  input: \"{}\",\n                  providerExecuted: true\n                });\n              } else if (value.item.type === \"image_generation_call\") {\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"image_generation\"),\n                  input: \"{}\",\n                  providerExecuted: true\n                });\n              } else if (value.item.type === \"tool_search_call\") {\n                const toolCallId = value.item.id;\n                const toolName = toolNameMapping.toCustomToolName(\"tool_search\");\n                const isHosted = value.item.execution === \"server\";\n                ongoingToolCalls[value.output_index] = {\n                  toolName,\n                  toolCallId,\n                  toolSearchExecution: (_a = value.item.execution) != null ? _a : \"server\"\n                };\n                if (isHosted) {\n                  controller.enqueue({\n                    type: \"tool-input-start\",\n                    id: toolCallId,\n                    toolName,\n                    providerExecuted: true\n                  });\n                }\n              } else if (value.item.type === \"tool_search_output\") {\n              } else if (value.item.type === \"mcp_call\" || value.item.type === \"mcp_list_tools\" || value.item.type === \"mcp_approval_request\") {\n              } else if (value.item.type === \"apply_patch_call\") {\n                const { call_id: callId, operation } = value.item;\n                ongoingToolCalls[value.output_index] = {\n                  toolName: toolNameMapping.toCustomToolName(\"apply_patch\"),\n                  toolCallId: callId,\n                  applyPatch: {\n                    // delete_file doesn't have diff\n                    hasDiff: operation.type === \"delete_file\",\n                    endEmitted: operation.type === \"delete_file\"\n                  }\n                };\n                controller.enqueue({\n                  type: \"tool-input-start\",\n                  id: callId,\n                  toolName: toolNameMapping.toCustomToolName(\"apply_patch\")\n                });\n                if (operation.type === \"delete_file\") {\n                  const inputString = JSON.stringify({\n                    callId,\n                    operation\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-delta\",\n                    id: callId,\n                    delta: inputString\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-end\",\n                    id: callId\n                  });\n                } else {\n                  controller.enqueue({\n                    type: \"tool-input-delta\",\n                    id: callId,\n                    delta: `{\"callId\":\"${escapeJSONDelta(callId)}\",\"operation\":{\"type\":\"${escapeJSONDelta(operation.type)}\",\"path\":\"${escapeJSONDelta(operation.path)}\",\"diff\":\"`\n                  });\n                }\n              } else if (value.item.type === \"shell_call\") {\n                ongoingToolCalls[value.output_index] = {\n                  toolName: toolNameMapping.toCustomToolName(\"shell\"),\n                  toolCallId: value.item.call_id\n                };\n              } else if (value.item.type === \"shell_call_output\") {\n              } else if (value.item.type === \"message\") {\n                ongoingAnnotations.splice(0, ongoingAnnotations.length);\n                activeMessagePhase = (_b = value.item.phase) != null ? _b : void 0;\n                controller.enqueue({\n                  type: \"text-start\",\n                  id: value.item.id,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id,\n                      ...value.item.phase != null && {\n                        phase: value.item.phase\n                      }\n                    }\n                  }\n                });\n              } else if (isResponseOutputItemAddedChunk(value) && value.item.type === \"reasoning\") {\n                activeReasoning[value.item.id] = {\n                  encryptedContent: value.item.encrypted_content,\n                  summaryParts: { 0: \"active\" }\n                };\n                controller.enqueue({\n                  type: \"reasoning-start\",\n                  id: `${value.item.id}:0`,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id,\n                      reasoningEncryptedContent: (_c = value.item.encrypted_content) != null ? _c : null\n                    }\n                  }\n                });\n              }\n            } else if (isResponseOutputItemDoneChunk(value)) {\n              if (value.item.type === \"message\") {\n                const phase = (_d = value.item.phase) != null ? _d : activeMessagePhase;\n                activeMessagePhase = void 0;\n                controller.enqueue({\n                  type: \"text-end\",\n                  id: value.item.id,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id,\n                      ...phase != null && { phase },\n                      ...ongoingAnnotations.length > 0 && {\n                        annotations: ongoingAnnotations\n                      }\n                    }\n                  }\n                });\n              } else if (value.item.type === \"function_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                hasFunctionCall = true;\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: value.item.call_id,\n                  ...value.item.namespace != null && {\n                    providerMetadata: {\n                      [providerOptionsName]: {\n                        namespace: value.item.namespace\n                      }\n                    }\n                  }\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.call_id,\n                  toolName: value.item.name,\n                  input: value.item.arguments,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id,\n                      ...value.item.namespace != null && {\n                        namespace: value.item.namespace\n                      }\n                    }\n                  }\n                });\n              } else if (value.item.type === \"custom_tool_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                hasFunctionCall = true;\n                const toolName = toolNameMapping.toCustomToolName(\n                  value.item.name\n                );\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: value.item.call_id\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.call_id,\n                  toolName,\n                  input: JSON.stringify(value.item.input),\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id\n                    }\n                  }\n                });\n              } else if (value.item.type === \"web_search_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\n                    webSearchToolName != null ? webSearchToolName : \"web_search\"\n                  ),\n                  result: mapWebSearchOutput(value.item.action)\n                });\n              } else if (value.item.type === \"computer_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: value.item.id\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n                  input: \"\",\n                  providerExecuted: true\n                });\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"computer_use\"),\n                  result: {\n                    type: \"computer_use_tool_result\",\n                    status: value.item.status || \"completed\"\n                  }\n                });\n              } else if (value.item.type === \"file_search_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"file_search\"),\n                  result: {\n                    queries: value.item.queries,\n                    results: (_f = (_e = value.item.results) == null ? void 0 : _e.map((result2) => ({\n                      attributes: result2.attributes,\n                      fileId: result2.file_id,\n                      filename: result2.filename,\n                      score: result2.score,\n                      text: result2.text\n                    }))) != null ? _f : null\n                  }\n                });\n              } else if (value.item.type === \"code_interpreter_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n                  result: {\n                    outputs: value.item.outputs\n                  }\n                });\n              } else if (value.item.type === \"image_generation_call\") {\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.id,\n                  toolName: toolNameMapping.toCustomToolName(\"image_generation\"),\n                  result: {\n                    result: value.item.result\n                  }\n                });\n              } else if (value.item.type === \"tool_search_call\") {\n                const toolCall = ongoingToolCalls[value.output_index];\n                const isHosted = value.item.execution === \"server\";\n                if (toolCall != null) {\n                  const toolCallId = isHosted ? toolCall.toolCallId : (_g = value.item.call_id) != null ? _g : value.item.id;\n                  if (isHosted) {\n                    hostedToolSearchCallIds.push(toolCallId);\n                  } else {\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: toolCallId,\n                      toolName: toolCall.toolName\n                    });\n                  }\n                  controller.enqueue({\n                    type: \"tool-input-end\",\n                    id: toolCallId\n                  });\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId,\n                    toolName: toolCall.toolName,\n                    input: JSON.stringify({\n                      arguments: value.item.arguments,\n                      call_id: isHosted ? null : toolCallId\n                    }),\n                    ...isHosted ? { providerExecuted: true } : {},\n                    providerMetadata: {\n                      [providerOptionsName]: {\n                        itemId: value.item.id\n                      }\n                    }\n                  });\n                }\n                ongoingToolCalls[value.output_index] = void 0;\n              } else if (value.item.type === \"tool_search_output\") {\n                const toolCallId = (_i = (_h = value.item.call_id) != null ? _h : hostedToolSearchCallIds.shift()) != null ? _i : value.item.id;\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId,\n                  toolName: toolNameMapping.toCustomToolName(\"tool_search\"),\n                  result: {\n                    tools: value.item.tools\n                  },\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id\n                    }\n                  }\n                });\n              } else if (value.item.type === \"mcp_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                const approvalRequestId = (_j = value.item.approval_request_id) != null ? _j : void 0;\n                const aliasedToolCallId = approvalRequestId != null ? (_l = (_k = approvalRequestIdToDummyToolCallIdFromStream.get(\n                  approvalRequestId\n                )) != null ? _k : approvalRequestIdToDummyToolCallIdFromPrompt[approvalRequestId]) != null ? _l : value.item.id : value.item.id;\n                const toolName = `mcp.${value.item.name}`;\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: aliasedToolCallId,\n                  toolName,\n                  input: value.item.arguments,\n                  providerExecuted: true,\n                  dynamic: true\n                });\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: aliasedToolCallId,\n                  toolName,\n                  result: {\n                    type: \"call\",\n                    serverLabel: value.item.server_label,\n                    name: value.item.name,\n                    arguments: value.item.arguments,\n                    ...value.item.output != null ? { output: value.item.output } : {},\n                    ...value.item.error != null ? { error: value.item.error } : {}\n                  },\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item.id\n                    }\n                  }\n                });\n              } else if (value.item.type === \"mcp_list_tools\") {\n                ongoingToolCalls[value.output_index] = void 0;\n              } else if (value.item.type === \"apply_patch_call\") {\n                const toolCall = ongoingToolCalls[value.output_index];\n                if ((toolCall == null ? void 0 : toolCall.applyPatch) && !toolCall.applyPatch.endEmitted && value.item.operation.type !== \"delete_file\") {\n                  if (!toolCall.applyPatch.hasDiff) {\n                    controller.enqueue({\n                      type: \"tool-input-delta\",\n                      id: toolCall.toolCallId,\n                      delta: escapeJSONDelta(value.item.operation.diff)\n                    });\n                  }\n                  controller.enqueue({\n                    type: \"tool-input-delta\",\n                    id: toolCall.toolCallId,\n                    delta: '\"}}'\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-end\",\n                    id: toolCall.toolCallId\n                  });\n                  toolCall.applyPatch.endEmitted = true;\n                }\n                if (toolCall && value.item.status === \"completed\") {\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId: toolCall.toolCallId,\n                    toolName: toolNameMapping.toCustomToolName(\"apply_patch\"),\n                    input: JSON.stringify({\n                      callId: value.item.call_id,\n                      operation: value.item.operation\n                    }),\n                    providerMetadata: {\n                      [providerOptionsName]: {\n                        itemId: value.item.id\n                      }\n                    }\n                  });\n                }\n                ongoingToolCalls[value.output_index] = void 0;\n              } else if (value.item.type === \"mcp_approval_request\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                const dummyToolCallId = (_o = (_n = (_m = self.config).generateId) == null ? void 0 : _n.call(_m)) != null ? _o : generateId2();\n                const approvalRequestId = (_p = value.item.approval_request_id) != null ? _p : value.item.id;\n                approvalRequestIdToDummyToolCallIdFromStream.set(\n                  approvalRequestId,\n                  dummyToolCallId\n                );\n                const toolName = `mcp.${value.item.name}`;\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: dummyToolCallId,\n                  toolName,\n                  input: value.item.arguments,\n                  providerExecuted: true,\n                  dynamic: true\n                });\n                controller.enqueue({\n                  type: \"tool-approval-request\",\n                  approvalId: approvalRequestId,\n                  toolCallId: dummyToolCallId\n                });\n              } else if (value.item.type === \"local_shell_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.call_id,\n                  toolName: toolNameMapping.toCustomToolName(\"local_shell\"),\n                  input: JSON.stringify({\n                    action: {\n                      type: \"exec\",\n                      command: value.item.action.command,\n                      timeoutMs: value.item.action.timeout_ms,\n                      user: value.item.action.user,\n                      workingDirectory: value.item.action.working_directory,\n                      env: value.item.action.env\n                    }\n                  }),\n                  providerMetadata: {\n                    [providerOptionsName]: { itemId: value.item.id }\n                  }\n                });\n              } else if (value.item.type === \"shell_call\") {\n                ongoingToolCalls[value.output_index] = void 0;\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: value.item.call_id,\n                  toolName: toolNameMapping.toCustomToolName(\"shell\"),\n                  input: JSON.stringify({\n                    action: {\n                      commands: value.item.action.commands\n                    }\n                  }),\n                  ...isShellProviderExecuted && {\n                    providerExecuted: true\n                  },\n                  providerMetadata: {\n                    [providerOptionsName]: { itemId: value.item.id }\n                  }\n                });\n              } else if (value.item.type === \"shell_call_output\") {\n                controller.enqueue({\n                  type: \"tool-result\",\n                  toolCallId: value.item.call_id,\n                  toolName: toolNameMapping.toCustomToolName(\"shell\"),\n                  result: {\n                    output: value.item.output.map(\n                      (item) => ({\n                        stdout: item.stdout,\n                        stderr: item.stderr,\n                        outcome: item.outcome.type === \"exit\" ? {\n                          type: \"exit\",\n                          exitCode: item.outcome.exit_code\n                        } : { type: \"timeout\" }\n                      })\n                    )\n                  }\n                });\n              } else if (value.item.type === \"reasoning\") {\n                const activeReasoningPart = activeReasoning[value.item.id];\n                const summaryPartIndices = Object.entries(\n                  activeReasoningPart.summaryParts\n                ).filter(\n                  ([_, status]) => status === \"active\" || status === \"can-conclude\"\n                ).map(([summaryIndex]) => summaryIndex);\n                for (const summaryIndex of summaryPartIndices) {\n                  controller.enqueue({\n                    type: \"reasoning-end\",\n                    id: `${value.item.id}:${summaryIndex}`,\n                    providerMetadata: {\n                      [providerOptionsName]: {\n                        itemId: value.item.id,\n                        reasoningEncryptedContent: (_q = value.item.encrypted_content) != null ? _q : null\n                      }\n                    }\n                  });\n                }\n                delete activeReasoning[value.item.id];\n              }\n            } else if (isResponseFunctionCallArgumentsDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: value.delta\n                });\n              }\n            } else if (isResponseCustomToolCallInputDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: value.delta\n                });\n              }\n            } else if (isResponseApplyPatchCallOperationDiffDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if (toolCall == null ? void 0 : toolCall.applyPatch) {\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: escapeJSONDelta(value.delta)\n                });\n                toolCall.applyPatch.hasDiff = true;\n              }\n            } else if (isResponseApplyPatchCallOperationDiffDoneChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if ((toolCall == null ? void 0 : toolCall.applyPatch) && !toolCall.applyPatch.endEmitted) {\n                if (!toolCall.applyPatch.hasDiff) {\n                  controller.enqueue({\n                    type: \"tool-input-delta\",\n                    id: toolCall.toolCallId,\n                    delta: escapeJSONDelta(value.diff)\n                  });\n                  toolCall.applyPatch.hasDiff = true;\n                }\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: '\"}}'\n                });\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: toolCall.toolCallId\n                });\n                toolCall.applyPatch.endEmitted = true;\n              }\n            } else if (isResponseImageGenerationCallPartialImageChunk(value)) {\n              controller.enqueue({\n                type: \"tool-result\",\n                toolCallId: value.item_id,\n                toolName: toolNameMapping.toCustomToolName(\"image_generation\"),\n                result: {\n                  result: value.partial_image_b64\n                },\n                preliminary: true\n              });\n            } else if (isResponseCodeInterpreterCallCodeDeltaChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: escapeJSONDelta(value.delta)\n                });\n              }\n            } else if (isResponseCodeInterpreterCallCodeDoneChunk(value)) {\n              const toolCall = ongoingToolCalls[value.output_index];\n              if (toolCall != null) {\n                controller.enqueue({\n                  type: \"tool-input-delta\",\n                  id: toolCall.toolCallId,\n                  delta: '\"}'\n                });\n                controller.enqueue({\n                  type: \"tool-input-end\",\n                  id: toolCall.toolCallId\n                });\n                controller.enqueue({\n                  type: \"tool-call\",\n                  toolCallId: toolCall.toolCallId,\n                  toolName: toolNameMapping.toCustomToolName(\"code_interpreter\"),\n                  input: JSON.stringify({\n                    code: value.code,\n                    containerId: toolCall.codeInterpreter.containerId\n                  }),\n                  providerExecuted: true\n                });\n              }\n            } else if (isResponseCreatedChunk(value)) {\n              responseId = value.response.id;\n              controller.enqueue({\n                type: \"response-metadata\",\n                id: value.response.id,\n                timestamp: new Date(value.response.created_at * 1e3),\n                modelId: value.response.model\n              });\n            } else if (isTextDeltaChunk(value)) {\n              controller.enqueue({\n                type: \"text-delta\",\n                id: value.item_id,\n                delta: value.delta\n              });\n              if (((_s = (_r = options.providerOptions) == null ? void 0 : _r[providerOptionsName]) == null ? void 0 : _s.logprobs) && value.logprobs) {\n                logprobs.push(value.logprobs);\n              }\n            } else if (value.type === \"response.reasoning_summary_part.added\") {\n              if (value.summary_index > 0) {\n                const activeReasoningPart = activeReasoning[value.item_id];\n                activeReasoningPart.summaryParts[value.summary_index] = \"active\";\n                for (const summaryIndex of Object.keys(\n                  activeReasoningPart.summaryParts\n                )) {\n                  if (activeReasoningPart.summaryParts[summaryIndex] === \"can-conclude\") {\n                    controller.enqueue({\n                      type: \"reasoning-end\",\n                      id: `${value.item_id}:${summaryIndex}`,\n                      providerMetadata: {\n                        [providerOptionsName]: {\n                          itemId: value.item_id\n                        }\n                      }\n                    });\n                    activeReasoningPart.summaryParts[summaryIndex] = \"concluded\";\n                  }\n                }\n                controller.enqueue({\n                  type: \"reasoning-start\",\n                  id: `${value.item_id}:${value.summary_index}`,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item_id,\n                      reasoningEncryptedContent: (_u = (_t = activeReasoning[value.item_id]) == null ? void 0 : _t.encryptedContent) != null ? _u : null\n                    }\n                  }\n                });\n              }\n            } else if (value.type === \"response.reasoning_summary_text.delta\") {\n              controller.enqueue({\n                type: \"reasoning-delta\",\n                id: `${value.item_id}:${value.summary_index}`,\n                delta: value.delta,\n                providerMetadata: {\n                  [providerOptionsName]: {\n                    itemId: value.item_id\n                  }\n                }\n              });\n            } else if (value.type === \"response.reasoning_summary_part.done\") {\n              if (store) {\n                controller.enqueue({\n                  type: \"reasoning-end\",\n                  id: `${value.item_id}:${value.summary_index}`,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      itemId: value.item_id\n                    }\n                  }\n                });\n                activeReasoning[value.item_id].summaryParts[value.summary_index] = \"concluded\";\n              } else {\n                activeReasoning[value.item_id].summaryParts[value.summary_index] = \"can-conclude\";\n              }\n            } else if (isResponseFinishedChunk(value)) {\n              finishReason = {\n                unified: mapOpenAIResponseFinishReason({\n                  finishReason: (_v = value.response.incomplete_details) == null ? void 0 : _v.reason,\n                  hasFunctionCall\n                }),\n                raw: (_x = (_w = value.response.incomplete_details) == null ? void 0 : _w.reason) != null ? _x : void 0\n              };\n              usage = value.response.usage;\n              if (typeof value.response.service_tier === \"string\") {\n                serviceTier = value.response.service_tier;\n              }\n              if (((_y = value.response.reasoning) == null ? void 0 : _y.context) != null) {\n                reasoningContext = value.response.reasoning.context;\n              }\n            } else if (isResponseFailedChunk(value)) {\n              const incompleteReason = (_z = value.response.incomplete_details) == null ? void 0 : _z.reason;\n              finishReason = {\n                unified: incompleteReason ? mapOpenAIResponseFinishReason({\n                  finishReason: incompleteReason,\n                  hasFunctionCall\n                }) : \"error\",\n                raw: incompleteReason != null ? incompleteReason : \"error\"\n              };\n              usage = (_A = value.response.usage) != null ? _A : void 0;\n              if (((_B = value.response.reasoning) == null ? void 0 : _B.context) != null) {\n                reasoningContext = value.response.reasoning.context;\n              }\n              if (!encounteredStreamError && value.response.error != null) {\n                encounteredStreamError = true;\n                controller.enqueue({\n                  type: \"error\",\n                  error: {\n                    type: \"response.failed\",\n                    sequence_number: value.sequence_number,\n                    response: {\n                      error: value.response.error,\n                      incomplete_details: value.response.incomplete_details,\n                      service_tier: value.response.service_tier\n                    }\n                  }\n                });\n              }\n            } else if (isResponseAnnotationAddedChunk(value)) {\n              ongoingAnnotations.push(value.annotation);\n              if (value.annotation.type === \"url_citation\") {\n                controller.enqueue({\n                  type: \"source\",\n                  sourceType: \"url\",\n                  id: (_E = (_D = (_C = self.config).generateId) == null ? void 0 : _D.call(_C)) != null ? _E : generateId2(),\n                  url: value.annotation.url,\n                  title: value.annotation.title\n                });\n              } else if (value.annotation.type === \"file_citation\") {\n                controller.enqueue({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_H = (_G = (_F = self.config).generateId) == null ? void 0 : _G.call(_F)) != null ? _H : generateId2(),\n                  mediaType: \"text/plain\",\n                  title: value.annotation.filename,\n                  filename: value.annotation.filename,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: value.annotation.type,\n                      fileId: value.annotation.file_id,\n                      index: value.annotation.index\n                    }\n                  }\n                });\n              } else if (value.annotation.type === \"container_file_citation\") {\n                controller.enqueue({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_K = (_J = (_I = self.config).generateId) == null ? void 0 : _J.call(_I)) != null ? _K : generateId2(),\n                  mediaType: \"text/plain\",\n                  title: value.annotation.filename,\n                  filename: value.annotation.filename,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: value.annotation.type,\n                      fileId: value.annotation.file_id,\n                      containerId: value.annotation.container_id\n                    }\n                  }\n                });\n              } else if (value.annotation.type === \"file_path\") {\n                controller.enqueue({\n                  type: \"source\",\n                  sourceType: \"document\",\n                  id: (_N = (_M = (_L = self.config).generateId) == null ? void 0 : _M.call(_L)) != null ? _N : generateId2(),\n                  mediaType: \"application/octet-stream\",\n                  title: value.annotation.file_id,\n                  filename: value.annotation.file_id,\n                  providerMetadata: {\n                    [providerOptionsName]: {\n                      type: value.annotation.type,\n                      fileId: value.annotation.file_id,\n                      index: value.annotation.index\n                    }\n                  }\n                });\n              }\n            } else if (isErrorChunk(value)) {\n              encounteredStreamError = true;\n              finishReason = { unified: \"error\", raw: \"error\" };\n              controller.enqueue({ type: \"error\", error: value });\n            }\n          },\n          flush(controller) {\n            const providerMetadata = {\n              [providerOptionsName]: {\n                responseId,\n                ...logprobs.length > 0 ? { logprobs } : {},\n                ...serviceTier !== void 0 ? { serviceTier } : {},\n                ...reasoningContext !== void 0 ? { reasoningContext } : {}\n              }\n            };\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              usage: convertOpenAIResponsesUsage(usage),\n              providerMetadata\n            });\n          }\n        })\n      ),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n    return result;\n  }\n};\nfunction isTextDeltaChunk(chunk) {\n  return chunk.type === \"response.output_text.delta\";\n}\nfunction isOpenAIChatCompletionChunk(value) {\n  const chunk = asRecord2(value);\n  return chunk != null && Array.isArray(chunk.choices) && typeof chunk.type !== \"string\";\n}\nfunction createOpenAIResponsesChatCompletionsMismatchError({\n  value,\n  cause,\n  url,\n  requestBodyValues,\n  responseHeaders\n}) {\n  return new APICallError2({\n    message: \"Received a Chat Completions stream while using the OpenAI Responses API. The default OpenAI provider model uses the Responses API. If your custom baseURL targets a Chat Completions-compatible endpoint, use openai.chat('model-id') or createOpenAI(...).chat('model-id') instead. You can also use @ai-sdk/openai-compatible for OpenAI-compatible providers.\",\n    url,\n    requestBodyValues,\n    responseHeaders,\n    responseBody: JSON.stringify(value),\n    cause,\n    data: value,\n    isRetryable: false\n  });\n}\nfunction asRecord2(value) {\n  return typeof value === \"object\" && value != null ? value : void 0;\n}\nfunction isResponseOutputItemDoneChunk(chunk) {\n  return chunk.type === \"response.output_item.done\";\n}\nfunction isResponseFinishedChunk(chunk) {\n  return chunk.type === \"response.completed\" || chunk.type === \"response.incomplete\";\n}\nfunction isResponseFailedChunk(chunk) {\n  return chunk.type === \"response.failed\";\n}\nfunction isResponseCreatedChunk(chunk) {\n  return chunk.type === \"response.created\";\n}\nfunction isResponseFunctionCallArgumentsDeltaChunk(chunk) {\n  return chunk.type === \"response.function_call_arguments.delta\";\n}\nfunction isResponseCustomToolCallInputDeltaChunk(chunk) {\n  return chunk.type === \"response.custom_tool_call_input.delta\";\n}\nfunction isResponseImageGenerationCallPartialImageChunk(chunk) {\n  return chunk.type === \"response.image_generation_call.partial_image\";\n}\nfunction isResponseCodeInterpreterCallCodeDeltaChunk(chunk) {\n  return chunk.type === \"response.code_interpreter_call_code.delta\";\n}\nfunction isResponseCodeInterpreterCallCodeDoneChunk(chunk) {\n  return chunk.type === \"response.code_interpreter_call_code.done\";\n}\nfunction isResponseApplyPatchCallOperationDiffDeltaChunk(chunk) {\n  return chunk.type === \"response.apply_patch_call_operation_diff.delta\";\n}\nfunction isResponseApplyPatchCallOperationDiffDoneChunk(chunk) {\n  return chunk.type === \"response.apply_patch_call_operation_diff.done\";\n}\nfunction isResponseOutputItemAddedChunk(chunk) {\n  return chunk.type === \"response.output_item.added\";\n}\nfunction isResponseAnnotationAddedChunk(chunk) {\n  return chunk.type === \"response.output_text.annotation.added\";\n}\nfunction isErrorChunk(chunk) {\n  return chunk.type === \"error\";\n}\nfunction isResponseOutputChunk(chunk) {\n  return !(chunk.type === \"response.created\" || chunk.type === \"response.failed\" || chunk.type === \"error\" || chunk.type === \"unknown_chunk\");\n}\nfunction mapWebSearchOutput(action) {\n  var _a;\n  if (action == null) {\n    return {};\n  }\n  switch (action.type) {\n    case \"search\":\n      return {\n        action: {\n          type: \"search\",\n          query: (_a = action.query) != null ? _a : void 0,\n          ...action.queries != null && { queries: action.queries }\n        },\n        // include sources when provided by the Responses API (behind include flag)\n        ...action.sources != null && { sources: action.sources }\n      };\n    case \"open_page\":\n      return { action: { type: \"openPage\", url: action.url } };\n    case \"find_in_page\":\n      return {\n        action: {\n          type: \"findInPage\",\n          url: action.url,\n          pattern: action.pattern\n        }\n      };\n  }\n}\nfunction escapeJSONDelta(delta) {\n  return JSON.stringify(delta).slice(1, -1);\n}\n\n// src/speech/openai-speech-model.ts\nimport {\n  combineHeaders as combineHeaders6,\n  createBinaryResponseHandler,\n  parseProviderOptions as parseProviderOptions7,\n  postJsonToApi as postJsonToApi6\n} from \"@ai-sdk/provider-utils\";\n\n// src/speech/openai-speech-options.ts\nimport {\n  lazySchema as lazySchema22,\n  zodSchema as zodSchema22\n} from \"@ai-sdk/provider-utils\";\nimport { z as z24 } from \"zod/v4\";\nvar openaiSpeechModelOptionsSchema = lazySchema22(\n  () => zodSchema22(\n    z24.object({\n      instructions: z24.string().nullish(),\n      speed: z24.number().min(0.25).max(4).default(1).nullish()\n    })\n  )\n);\n\n// src/speech/openai-speech-model.ts\nvar OpenAISpeechModel = class {\n  constructor(modelId, config) {\n    this.modelId = modelId;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async getArgs({\n    text,\n    voice = \"alloy\",\n    outputFormat = \"mp3\",\n    speed,\n    instructions,\n    language,\n    providerOptions\n  }) {\n    const warnings = [];\n    const openAIOptions = await parseProviderOptions7({\n      provider: \"openai\",\n      providerOptions,\n      schema: openaiSpeechModelOptionsSchema\n    });\n    const requestBody = {\n      model: this.modelId,\n      input: text,\n      voice,\n      response_format: \"mp3\",\n      speed,\n      instructions\n    };\n    if (outputFormat) {\n      if ([\"mp3\", \"opus\", \"aac\", \"flac\", \"wav\", \"pcm\"].includes(outputFormat)) {\n        requestBody.response_format = outputFormat;\n      } else {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"outputFormat\",\n          details: `Unsupported output format: ${outputFormat}. Using mp3 instead.`\n        });\n      }\n    }\n    if (openAIOptions) {\n      const speechModelOptions = {};\n      for (const key in speechModelOptions) {\n        const value = speechModelOptions[key];\n        if (value !== void 0) {\n          requestBody[key] = value;\n        }\n      }\n    }\n    if (language) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"language\",\n        details: `OpenAI speech models do not support language selection. Language parameter \"${language}\" was ignored.`\n      });\n    }\n    return {\n      requestBody,\n      warnings\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c;\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    const { requestBody, warnings } = await this.getArgs(options);\n    const {\n      value: audio,\n      responseHeaders,\n      rawValue: rawResponse\n    } = await postJsonToApi6({\n      url: this.config.url({\n        path: \"/audio/speech\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders6(this.config.headers(), options.headers),\n      body: requestBody,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createBinaryResponseHandler(),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      audio,\n      warnings,\n      request: {\n        body: JSON.stringify(requestBody)\n      },\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n        body: rawResponse\n      }\n    };\n  }\n};\n\n// src/transcription/openai-transcription-model.ts\nimport {\n  combineHeaders as combineHeaders7,\n  convertBase64ToUint8Array as convertBase64ToUint8Array2,\n  createJsonResponseHandler as createJsonResponseHandler6,\n  mediaTypeToExtension,\n  parseProviderOptions as parseProviderOptions8,\n  postFormDataToApi as postFormDataToApi2\n} from \"@ai-sdk/provider-utils\";\n\n// src/transcription/openai-transcription-api.ts\nimport { lazySchema as lazySchema23, zodSchema as zodSchema23 } from \"@ai-sdk/provider-utils\";\nimport { z as z25 } from \"zod/v4\";\nvar openaiTranscriptionResponseSchema = lazySchema23(\n  () => zodSchema23(\n    z25.object({\n      text: z25.string(),\n      language: z25.string().nullish(),\n      duration: z25.number().nullish(),\n      words: z25.array(\n        z25.object({\n          word: z25.string(),\n          start: z25.number(),\n          end: z25.number()\n        })\n      ).nullish(),\n      segments: z25.array(\n        z25.object({\n          id: z25.number(),\n          seek: z25.number(),\n          start: z25.number(),\n          end: z25.number(),\n          text: z25.string(),\n          tokens: z25.array(z25.number()),\n          temperature: z25.number(),\n          avg_logprob: z25.number(),\n          compression_ratio: z25.number(),\n          no_speech_prob: z25.number()\n        })\n      ).nullish()\n    })\n  )\n);\n\n// src/transcription/openai-transcription-options.ts\nimport {\n  lazySchema as lazySchema24,\n  zodSchema as zodSchema24\n} from \"@ai-sdk/provider-utils\";\nimport { z as z26 } from \"zod/v4\";\nvar openAITranscriptionModelOptions = lazySchema24(\n  () => zodSchema24(\n    z26.object({\n      /**\n       * Additional information to include in the transcription response.\n       */\n      include: z26.array(z26.string()).optional(),\n      /**\n       * The language of the input audio in ISO-639-1 format.\n       */\n      language: z26.string().optional(),\n      /**\n       * An optional text to guide the model's style or continue a previous audio segment.\n       */\n      prompt: z26.string().optional(),\n      /**\n       * The sampling temperature, between 0 and 1.\n       * @default 0\n       */\n      temperature: z26.number().min(0).max(1).default(0).optional(),\n      /**\n       * The timestamp granularities to populate for this transcription.\n       * @default ['segment']\n       */\n      timestampGranularities: z26.array(z26.enum([\"word\", \"segment\"])).default([\"segment\"]).optional()\n    })\n  )\n);\n\n// src/transcription/openai-transcription-model.ts\nvar languageMap = {\n  afrikaans: \"af\",\n  arabic: \"ar\",\n  armenian: \"hy\",\n  azerbaijani: \"az\",\n  belarusian: \"be\",\n  bosnian: \"bs\",\n  bulgarian: \"bg\",\n  catalan: \"ca\",\n  chinese: \"zh\",\n  croatian: \"hr\",\n  czech: \"cs\",\n  danish: \"da\",\n  dutch: \"nl\",\n  english: \"en\",\n  estonian: \"et\",\n  finnish: \"fi\",\n  french: \"fr\",\n  galician: \"gl\",\n  german: \"de\",\n  greek: \"el\",\n  hebrew: \"he\",\n  hindi: \"hi\",\n  hungarian: \"hu\",\n  icelandic: \"is\",\n  indonesian: \"id\",\n  italian: \"it\",\n  japanese: \"ja\",\n  kannada: \"kn\",\n  kazakh: \"kk\",\n  korean: \"ko\",\n  latvian: \"lv\",\n  lithuanian: \"lt\",\n  macedonian: \"mk\",\n  malay: \"ms\",\n  marathi: \"mr\",\n  maori: \"mi\",\n  nepali: \"ne\",\n  norwegian: \"no\",\n  persian: \"fa\",\n  polish: \"pl\",\n  portuguese: \"pt\",\n  romanian: \"ro\",\n  russian: \"ru\",\n  serbian: \"sr\",\n  slovak: \"sk\",\n  slovenian: \"sl\",\n  spanish: \"es\",\n  swahili: \"sw\",\n  swedish: \"sv\",\n  tagalog: \"tl\",\n  tamil: \"ta\",\n  thai: \"th\",\n  turkish: \"tr\",\n  ukrainian: \"uk\",\n  urdu: \"ur\",\n  vietnamese: \"vi\",\n  welsh: \"cy\"\n};\nvar OpenAITranscriptionModel = class {\n  constructor(modelId, config) {\n    this.modelId = modelId;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async getArgs({\n    audio,\n    mediaType,\n    providerOptions\n  }) {\n    const warnings = [];\n    const openAIOptions = await parseProviderOptions8({\n      provider: \"openai\",\n      providerOptions,\n      schema: openAITranscriptionModelOptions\n    });\n    const formData = new FormData();\n    const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array2(audio)]);\n    formData.append(\"model\", this.modelId);\n    const fileExtension = mediaTypeToExtension(mediaType);\n    formData.append(\n      \"file\",\n      new File([blob], \"audio\", { type: mediaType }),\n      `audio.${fileExtension}`\n    );\n    if (openAIOptions) {\n      const transcriptionModelOptions = {\n        include: openAIOptions.include,\n        language: openAIOptions.language,\n        prompt: openAIOptions.prompt,\n        // https://platform.openai.com/docs/api-reference/audio/createTranscription#audio_createtranscription-response_format\n        // prefer verbose_json to get segments for models that support it\n        response_format: [\n          \"gpt-4o-transcribe\",\n          \"gpt-4o-mini-transcribe\"\n        ].includes(this.modelId) ? \"json\" : \"verbose_json\",\n        temperature: openAIOptions.temperature,\n        timestamp_granularities: openAIOptions.timestampGranularities\n      };\n      for (const [key, value] of Object.entries(transcriptionModelOptions)) {\n        if (value != null) {\n          if (Array.isArray(value)) {\n            for (const item of value) {\n              formData.append(`${key}[]`, String(item));\n            }\n          } else {\n            formData.append(key, String(value));\n          }\n        }\n      }\n    }\n    return {\n      formData,\n      warnings\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    const { formData, warnings } = await this.getArgs(options);\n    const {\n      value: response,\n      responseHeaders,\n      rawValue: rawResponse\n    } = await postFormDataToApi2({\n      url: this.config.url({\n        path: \"/audio/transcriptions\",\n        modelId: this.modelId\n      }),\n      headers: combineHeaders7(this.config.headers(), options.headers),\n      formData,\n      failedResponseHandler: openaiFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler6(\n        openaiTranscriptionResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const language = response.language != null && response.language in languageMap ? languageMap[response.language] : void 0;\n    return {\n      text: response.text,\n      segments: (_g = (_f = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n        text: segment.text,\n        startSecond: segment.start,\n        endSecond: segment.end\n      }))) != null ? _f : (_e = response.words) == null ? void 0 : _e.map((word) => ({\n        text: word.word,\n        startSecond: word.start,\n        endSecond: word.end\n      }))) != null ? _g : [],\n      language,\n      durationInSeconds: (_h = response.duration) != null ? _h : void 0,\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n        body: rawResponse\n      }\n    };\n  }\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.88\" : \"0.0.0-test\";\n\n// src/openai-provider.ts\nfunction createOpenAI(options = {}) {\n  var _a, _b;\n  const baseURL = (_a = withoutTrailingSlash(\n    loadOptionalSetting({\n      settingValue: options.baseURL,\n      environmentVariableName: \"OPENAI_BASE_URL\"\n    })\n  )) != null ? _a : \"https://api.openai.com/v1\";\n  const providerName = (_b = options.name) != null ? _b : \"openai\";\n  const getHeaders = () => withUserAgentSuffix(\n    {\n      Authorization: `Bearer ${loadApiKey({\n        apiKey: options.apiKey,\n        environmentVariableName: \"OPENAI_API_KEY\",\n        description: \"OpenAI\"\n      })}`,\n      \"OpenAI-Organization\": options.organization,\n      \"OpenAI-Project\": options.project,\n      ...options.headers\n    },\n    `ai-sdk/openai/${VERSION}`\n  );\n  const createChatModel = (modelId) => new OpenAIChatLanguageModel(modelId, {\n    provider: `${providerName}.chat`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createCompletionModel = (modelId) => new OpenAICompletionLanguageModel(modelId, {\n    provider: `${providerName}.completion`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createEmbeddingModel = (modelId) => new OpenAIEmbeddingModel(modelId, {\n    provider: `${providerName}.embedding`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createImageModel = (modelId) => new OpenAIImageModel(modelId, {\n    provider: `${providerName}.image`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createTranscriptionModel = (modelId) => new OpenAITranscriptionModel(modelId, {\n    provider: `${providerName}.transcription`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createSpeechModel = (modelId) => new OpenAISpeechModel(modelId, {\n    provider: `${providerName}.speech`,\n    url: ({ path }) => `${baseURL}${path}`,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createLanguageModel = (modelId) => {\n    if (new.target) {\n      throw new Error(\n        \"The OpenAI model function cannot be called with the new keyword.\"\n      );\n    }\n    return createResponsesModel(modelId);\n  };\n  const createResponsesModel = (modelId) => {\n    return new OpenAIResponsesLanguageModel(modelId, {\n      provider: `${providerName}.responses`,\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      fetch: options.fetch,\n      fileIdPrefixes: [\"file-\"]\n    });\n  };\n  const provider = function(modelId) {\n    return createLanguageModel(modelId);\n  };\n  provider.specificationVersion = \"v3\";\n  provider.languageModel = createLanguageModel;\n  provider.chat = createChatModel;\n  provider.completion = createCompletionModel;\n  provider.responses = createResponsesModel;\n  provider.embedding = createEmbeddingModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.transcription = createTranscriptionModel;\n  provider.transcriptionModel = createTranscriptionModel;\n  provider.speech = createSpeechModel;\n  provider.speechModel = createSpeechModel;\n  provider.tools = openaiTools;\n  return provider;\n}\nvar openai = createOpenAI();\nexport {\n  VERSION,\n  createOpenAI,\n  openai\n};\n//# sourceMappingURL=index.mjs.map","/**\n * Base class for model gateway providers\n * Gateways fetch provider configurations and build URLs for model access\n */\n\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport type { LanguageModelV3 } from '@ai-sdk/provider-v6';\nimport type { LanguageModelV4 } from '@ai-sdk/provider-v7';\nimport type { StreamTransport } from '../../../stream/types';\nimport type { OpenAITransport, ResponsesWebSocketOptions } from '../provider-options.js';\n\n/**\n * Per-model provider override sourced from a models.dev model's `provider` block.\n * Lets a single provider serve individual models over a different endpoint / request\n * shape / SDK than the provider default (e.g. a model served over the OpenAI\n * Responses API while the provider default is chat-completions).\n */\nexport interface ModelProviderOverride {\n  api?: string; // Base API URL for this model (may contain ${ENV} templates)\n  shape?: 'responses' | 'completions'; // Request shape to use for this model\n  npm?: string; // SDK package to use for this model\n}\n\nexport interface ProviderConfig {\n  url?: string;\n  apiKeyHeader?: string;\n  apiKeyEnvVar: string | string[];\n  name: string;\n  models: string[];\n  docUrl?: string; // Optional documentation URL\n  gateway: string;\n  npm?: string; // NPM package name from models.dev (e.g., \"@ai-sdk/anthropic\")\n  // Per-model overrides (endpoint/shape/SDK) keyed by model id, when a provider\n  // serves some models differently than its default (models.dev model `provider`).\n  modelOverrides?: Record<string, ModelProviderOverride>;\n  // Model ids the upstream provider has marked deprecated. These stay in `models`\n  // so existing configs keep type-checking and keep their capability/override data;\n  // surfaces that offer models for *new* selection should de-emphasize or hide them.\n  deprecatedModels?: string[];\n}\n\n/**\n * Compact capability data collected from gateways during generation.\n * Each provider maps to a list of model IDs that support a capability.\n */\nexport type AttachmentCapabilities = Record<string, string[]>;\nexport type TemperatureCapabilities = Record<string, string[]>;\nexport type StructuredOutputCapabilities = Record<string, string[]>;\n\n/**\n * Union type for language models that can be returned by gateways.\n * Supports AI SDK v5 (LanguageModelV2), v6 (LanguageModelV3), and v7 (LanguageModelV4).\n */\nexport type GatewayLanguageModel = LanguageModelV2 | LanguageModelV3 | LanguageModelV4;\nexport type GatewayStreamTransportHandle = Pick<StreamTransport, 'type' | 'close'>;\n\n/** @internal Stream transport handle attached by gateways that own custom streaming transports. */\nexport const MASTRA_GATEWAY_STREAM_TRANSPORT = Symbol.for('@mastra/core.gatewayStreamTransport');\n\nexport type GatewayLanguageModelWithStreamTransport = GatewayLanguageModel & {\n  [MASTRA_GATEWAY_STREAM_TRANSPORT]?: GatewayStreamTransportHandle;\n};\n\nexport type GatewayAuthSource = 'explicit' | 'gateway' | 'legacy';\n\nexport type GatewayAuthRequest = {\n  gatewayId: string;\n  providerId: string;\n  modelId: string;\n  routerId: string;\n};\n\nexport type GatewayAuthResult = {\n  apiKey?: string;\n  bearerToken?: string;\n  headers?: Record<string, string>;\n  source?: GatewayAuthSource;\n};\n\nexport interface MastraModelGatewayInterface {\n  /**\n   * Unique identifier for the gateway\n   * This ID is used as the prefix for all providers from this gateway (e.g., \"netlify/anthropic\")\n   * Exception: models.dev is a provider registry and doesn't use a prefix\n   */\n  readonly id: string;\n\n  /**\n   * Name of the gateway provider\n   */\n  readonly name: string;\n\n  /**\n   * Get the gateway ID. Optional for plain object gateways; defaults to `id`.\n   * @deprecated Use `id` instead.\n   * @returns The gateway ID.\n   */\n  getId?(): string;\n\n  /**\n   * Whether this gateway should be enabled for the current runtime.\n   * Disabled gateways are skipped when syncing and filtered out when reading cached registry data.\n   * Optional for plain object gateways; defaults to `true`.\n   */\n  shouldEnable?(): boolean;\n\n  /**\n   * Whether this gateway claims the given model/router id even when the id is\n   * not prefixed with the gateway's own id (e.g. a bare `anthropic/...` id that\n   * this gateway can authenticate via OAuth/stored credentials).\n   * Checked after exact prefix matching but before the models.dev registry\n   * fallback. Optional; defaults to `false`.\n   */\n  handlesModel?(modelId: string): boolean;\n\n  /**\n   * Fetch provider configurations from the gateway.\n   * Should return providers in the standard format.\n   */\n  fetchProviders(): Promise<Record<string, ProviderConfig>>;\n\n  /**\n   * Build the URL for a specific model/provider combination\n   * @param modelId Full model ID (e.g., \"openai/gpt-4o\" or \"netlify/openai/gpt-4o\")\n   * @param envVars Environment variables available\n   * @returns URL string if this gateway can handle the model, false otherwise\n   */\n  buildUrl(modelId: string, envVars: Record<string, string>): string | undefined | Promise<string | undefined>;\n\n  getApiKey(modelId: string): Promise<string>;\n\n  /**\n   * Resolve auth before falling back to getApiKey/env behavior.\n   */\n  resolveAuth?(request: GatewayAuthRequest): Promise<GatewayAuthResult | undefined> | GatewayAuthResult | undefined;\n\n  /**\n   * Resolve a language model from the gateway.\n   * Supports returning LanguageModelV2 (AI SDK v5), LanguageModelV3 (AI SDK v6), or LanguageModelV4 (AI SDK v7).\n   */\n  resolveLanguageModel(args: {\n    modelId: string;\n    providerId: string;\n    apiKey: string;\n    headers?: Record<string, string>;\n    transport?: OpenAITransport;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): Promise<GatewayLanguageModel> | GatewayLanguageModel;\n\n  /**\n   * Custom serialization for tracing/observability spans.\n   * Gateways typically hold credentials (apiKey, OAuth tokens, customFetch\n   * closures that capture secrets). The base implementation exposes only\n   * the gateway identity so subclasses are safe by default.\n   */\n  serializeForSpan?(): { id: string; name: string } & Record<string, unknown>;\n}\n\nexport abstract class MastraModelGateway implements MastraModelGatewayInterface {\n  abstract readonly id: string;\n  abstract readonly name: string;\n\n  getId(): string {\n    return this.id;\n  }\n\n  shouldEnable(): boolean {\n    return true;\n  }\n\n  handlesModel(_modelId: string): boolean {\n    return false;\n  }\n\n  abstract fetchProviders(): Promise<Record<string, ProviderConfig>>;\n\n  abstract buildUrl(modelId: string, envVars: Record<string, string>): string | undefined | Promise<string | undefined>;\n\n  abstract getApiKey(modelId: string): Promise<string>;\n\n  abstract resolveLanguageModel(args: {\n    modelId: string;\n    providerId: string;\n    apiKey: string;\n    headers?: Record<string, string>;\n    transport?: OpenAITransport;\n    responsesWebSocket?: ResponsesWebSocketOptions;\n  }): Promise<GatewayLanguageModel> | GatewayLanguageModel;\n\n  serializeForSpan(): { id: string; name: string } {\n    return { id: this.id, name: this.name };\n  }\n}\n","// src/anthropic-provider.ts\nimport {\n  InvalidArgumentError,\n  NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n  generateId as generateId2,\n  loadApiKey,\n  loadOptionalSetting,\n  withoutTrailingSlash,\n  withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"3.0.103\" : \"0.0.0-test\";\n\n// src/anthropic-messages-language-model.ts\nimport {\n  APICallError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  createToolNameMapping,\n  generateId,\n  parseProviderOptions as parseProviderOptions2,\n  postJsonToApi,\n  resolve,\n  secureJsonParse as secureJsonParse2\n} from \"@ai-sdk/provider-utils\";\n\n// src/anthropic-error.ts\nimport {\n  createJsonErrorResponseHandler,\n  lazySchema,\n  zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar anthropicErrorDataSchema = lazySchema(\n  () => zodSchema(\n    z.object({\n      type: z.literal(\"error\"),\n      error: z.object({\n        type: z.string(),\n        message: z.string()\n      })\n    })\n  )\n);\nvar anthropicFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: anthropicErrorDataSchema,\n  errorToMessage: (data) => data.error.message\n});\n\n// src/anthropic-messages-api.ts\nimport {\n  lazySchema as lazySchema2,\n  zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar anthropicStopDetailsSchema = z2.object({\n  type: z2.string(),\n  category: z2.string().nullish(),\n  explanation: z2.string().nullish(),\n  recommended_model: z2.string().nullish()\n});\nvar anthropicMessagesResponseSchema = lazySchema2(\n  () => zodSchema2(\n    z2.object({\n      type: z2.literal(\"message\"),\n      id: z2.string().nullish(),\n      model: z2.string().nullish(),\n      content: z2.array(\n        z2.discriminatedUnion(\"type\", [\n          z2.object({\n            type: z2.literal(\"text\"),\n            text: z2.string(),\n            citations: z2.array(\n              z2.discriminatedUnion(\"type\", [\n                z2.object({\n                  type: z2.literal(\"web_search_result_location\"),\n                  cited_text: z2.string(),\n                  url: z2.string(),\n                  title: z2.string(),\n                  encrypted_index: z2.string()\n                }),\n                z2.object({\n                  type: z2.literal(\"page_location\"),\n                  cited_text: z2.string(),\n                  document_index: z2.number(),\n                  document_title: z2.string().nullable(),\n                  start_page_number: z2.number(),\n                  end_page_number: z2.number()\n                }),\n                z2.object({\n                  type: z2.literal(\"char_location\"),\n                  cited_text: z2.string(),\n                  document_index: z2.number(),\n                  document_title: z2.string().nullable(),\n                  start_char_index: z2.number(),\n                  end_char_index: z2.number()\n                })\n              ])\n            ).optional()\n          }),\n          z2.object({\n            type: z2.literal(\"thinking\"),\n            thinking: z2.string(),\n            signature: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"redacted_thinking\"),\n            data: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"compaction\"),\n            content: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            input: z2.unknown(),\n            // Programmatic tool calling: caller info when triggered from code execution\n            caller: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_20250825\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"code_execution_20260120\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"direct\")\n              })\n            ]).optional()\n          }),\n          z2.object({\n            type: z2.literal(\"server_tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            input: z2.record(z2.string(), z2.unknown()).nullish(),\n            caller: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_20260120\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"direct\")\n              })\n            ]).optional()\n          }),\n          z2.object({\n            type: z2.literal(\"mcp_tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            input: z2.unknown(),\n            server_name: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"mcp_tool_result\"),\n            tool_use_id: z2.string(),\n            is_error: z2.boolean(),\n            content: z2.array(\n              z2.union([\n                z2.string(),\n                z2.object({ type: z2.literal(\"text\"), text: z2.string() })\n              ])\n            )\n          }),\n          z2.object({\n            type: z2.literal(\"web_fetch_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"web_fetch_result\"),\n                url: z2.string(),\n                retrieved_at: z2.string(),\n                content: z2.object({\n                  type: z2.literal(\"document\"),\n                  title: z2.string().nullable(),\n                  citations: z2.object({ enabled: z2.boolean() }).optional(),\n                  source: z2.union([\n                    z2.object({\n                      type: z2.literal(\"base64\"),\n                      media_type: z2.literal(\"application/pdf\"),\n                      data: z2.string()\n                    }),\n                    z2.object({\n                      type: z2.literal(\"text\"),\n                      media_type: z2.literal(\"text/plain\"),\n                      data: z2.string()\n                    })\n                  ])\n                })\n              }),\n              z2.object({\n                type: z2.literal(\"web_fetch_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          z2.object({\n            type: z2.literal(\"web_search_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.array(\n                z2.object({\n                  type: z2.literal(\"web_search_result\"),\n                  url: z2.string(),\n                  title: z2.string(),\n                  encrypted_content: z2.string(),\n                  page_age: z2.string().nullish()\n                })\n              ),\n              z2.object({\n                type: z2.literal(\"web_search_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // code execution results for code_execution_20250522 tool:\n          z2.object({\n            type: z2.literal(\"code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_result\"),\n                stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number(),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ).optional().default([])\n              }),\n              z2.object({\n                type: z2.literal(\"encrypted_code_execution_result\"),\n                encrypted_stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number(),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ).optional().default([])\n              }),\n              z2.object({\n                type: z2.literal(\"code_execution_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // bash code execution results for code_execution_20250825 tool:\n          z2.object({\n            type: z2.literal(\"bash_code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"bash_code_execution_result\"),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"bash_code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ),\n                stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number()\n              }),\n              z2.object({\n                type: z2.literal(\"bash_code_execution_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // text editor code execution results for code_execution_20250825 tool:\n          z2.object({\n            type: z2.literal(\"text_editor_code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_tool_result_error\"),\n                error_code: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_view_result\"),\n                content: z2.string(),\n                file_type: z2.string(),\n                num_lines: z2.number().nullable(),\n                start_line: z2.number().nullable(),\n                total_lines: z2.number().nullable()\n              }),\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_create_result\"),\n                is_file_update: z2.boolean()\n              }),\n              z2.object({\n                type: z2.literal(\n                  \"text_editor_code_execution_str_replace_result\"\n                ),\n                lines: z2.array(z2.string()).nullable(),\n                new_lines: z2.number().nullable(),\n                new_start: z2.number().nullable(),\n                old_lines: z2.number().nullable(),\n                old_start: z2.number().nullable()\n              })\n            ])\n          }),\n          // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119:\n          z2.object({\n            type: z2.literal(\"tool_search_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"tool_search_tool_search_result\"),\n                tool_references: z2.array(\n                  z2.object({\n                    type: z2.literal(\"tool_reference\"),\n                    tool_name: z2.string()\n                  })\n                )\n              }),\n              z2.object({\n                type: z2.literal(\"tool_search_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // advisor results for advisor_20260301:\n          z2.object({\n            type: z2.literal(\"advisor_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"advisor_result\"),\n                text: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"advisor_redacted_result\"),\n                encrypted_content: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"advisor_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // Server-side fallback marker. Parsed so the response validates, but\n          // dropped from the content output (the AI SDK has no model-hop\n          // primitive). The hop remains observable via usage.iterations.\n          z2.object({\n            type: z2.literal(\"fallback\")\n          })\n        ])\n      ),\n      stop_reason: z2.string().nullish(),\n      stop_sequence: z2.string().nullish(),\n      stop_details: anthropicStopDetailsSchema.nullish(),\n      usage: z2.looseObject({\n        input_tokens: z2.number(),\n        output_tokens: z2.number(),\n        output_tokens_details: z2.object({\n          thinking_tokens: z2.number().nullish()\n        }).nullish(),\n        cache_creation_input_tokens: z2.number().nullish(),\n        cache_read_input_tokens: z2.number().nullish(),\n        iterations: z2.array(\n          z2.object({\n            type: z2.union([\n              z2.literal(\"compaction\"),\n              z2.literal(\"message\"),\n              z2.literal(\"advisor_message\"),\n              z2.literal(\"fallback_message\")\n            ]),\n            model: z2.string().nullish(),\n            input_tokens: z2.number(),\n            output_tokens: z2.number(),\n            cache_creation_input_tokens: z2.number().nullish(),\n            cache_read_input_tokens: z2.number().nullish()\n          })\n        ).nullish()\n      }),\n      container: z2.object({\n        expires_at: z2.string(),\n        id: z2.string(),\n        skills: z2.array(\n          z2.object({\n            type: z2.union([z2.literal(\"anthropic\"), z2.literal(\"custom\")]),\n            skill_id: z2.string(),\n            version: z2.string()\n          })\n        ).nullish()\n      }).nullish(),\n      context_management: z2.object({\n        applied_edits: z2.array(\n          z2.union([\n            z2.object({\n              type: z2.literal(\"clear_tool_uses_20250919\"),\n              cleared_tool_uses: z2.number(),\n              cleared_input_tokens: z2.number()\n            }),\n            z2.object({\n              type: z2.literal(\"clear_thinking_20251015\"),\n              cleared_thinking_turns: z2.number(),\n              cleared_input_tokens: z2.number()\n            }),\n            z2.object({\n              type: z2.literal(\"compact_20260112\")\n            })\n          ])\n        )\n      }).nullish()\n    })\n  )\n);\nvar anthropicMessagesChunkSchema = lazySchema2(\n  () => zodSchema2(\n    z2.discriminatedUnion(\"type\", [\n      z2.object({\n        type: z2.literal(\"message_start\"),\n        message: z2.object({\n          id: z2.string().nullish(),\n          model: z2.string().nullish(),\n          role: z2.string().nullish(),\n          usage: z2.looseObject({\n            input_tokens: z2.number(),\n            cache_creation_input_tokens: z2.number().nullish(),\n            cache_read_input_tokens: z2.number().nullish()\n          }),\n          // Programmatic tool calling: content may be pre-populated for deferred tool calls\n          content: z2.array(\n            z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"tool_use\"),\n                id: z2.string(),\n                name: z2.string(),\n                input: z2.unknown(),\n                caller: z2.union([\n                  z2.object({\n                    type: z2.literal(\"code_execution_20250825\"),\n                    tool_id: z2.string()\n                  }),\n                  z2.object({\n                    type: z2.literal(\"code_execution_20260120\"),\n                    tool_id: z2.string()\n                  }),\n                  z2.object({\n                    type: z2.literal(\"direct\")\n                  })\n                ]).optional()\n              })\n            ])\n          ).nullish(),\n          stop_reason: z2.string().nullish(),\n          container: z2.object({\n            expires_at: z2.string(),\n            id: z2.string()\n          }).nullish()\n        })\n      }),\n      z2.object({\n        type: z2.literal(\"content_block_start\"),\n        index: z2.number(),\n        content_block: z2.discriminatedUnion(\"type\", [\n          z2.object({\n            type: z2.literal(\"text\"),\n            text: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"thinking\"),\n            thinking: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            // Programmatic tool calling: input may be present directly for deferred tool calls\n            input: z2.record(z2.string(), z2.unknown()).optional(),\n            // Programmatic tool calling: caller info when triggered from code execution\n            caller: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_20250825\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"code_execution_20260120\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"direct\")\n              })\n            ]).optional()\n          }),\n          z2.object({\n            type: z2.literal(\"redacted_thinking\"),\n            data: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"compaction\"),\n            content: z2.string().nullish()\n          }),\n          z2.object({\n            type: z2.literal(\"server_tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            input: z2.record(z2.string(), z2.unknown()).nullish(),\n            caller: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_20260120\"),\n                tool_id: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"direct\")\n              })\n            ]).optional()\n          }),\n          z2.object({\n            type: z2.literal(\"mcp_tool_use\"),\n            id: z2.string(),\n            name: z2.string(),\n            input: z2.unknown(),\n            server_name: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"mcp_tool_result\"),\n            tool_use_id: z2.string(),\n            is_error: z2.boolean(),\n            content: z2.array(\n              z2.union([\n                z2.string(),\n                z2.object({ type: z2.literal(\"text\"), text: z2.string() })\n              ])\n            )\n          }),\n          z2.object({\n            type: z2.literal(\"web_fetch_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"web_fetch_result\"),\n                url: z2.string(),\n                retrieved_at: z2.string(),\n                content: z2.object({\n                  type: z2.literal(\"document\"),\n                  title: z2.string().nullable(),\n                  citations: z2.object({ enabled: z2.boolean() }).optional(),\n                  source: z2.union([\n                    z2.object({\n                      type: z2.literal(\"base64\"),\n                      media_type: z2.literal(\"application/pdf\"),\n                      data: z2.string()\n                    }),\n                    z2.object({\n                      type: z2.literal(\"text\"),\n                      media_type: z2.literal(\"text/plain\"),\n                      data: z2.string()\n                    })\n                  ])\n                })\n              }),\n              z2.object({\n                type: z2.literal(\"web_fetch_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          z2.object({\n            type: z2.literal(\"web_search_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.array(\n                z2.object({\n                  type: z2.literal(\"web_search_result\"),\n                  url: z2.string(),\n                  title: z2.string(),\n                  encrypted_content: z2.string(),\n                  page_age: z2.string().nullish()\n                })\n              ),\n              z2.object({\n                type: z2.literal(\"web_search_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // code execution results for code_execution_20250522 tool:\n          z2.object({\n            type: z2.literal(\"code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"code_execution_result\"),\n                stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number(),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ).optional().default([])\n              }),\n              z2.object({\n                type: z2.literal(\"encrypted_code_execution_result\"),\n                encrypted_stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number(),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ).optional().default([])\n              }),\n              z2.object({\n                type: z2.literal(\"code_execution_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // bash code execution results for code_execution_20250825 tool:\n          z2.object({\n            type: z2.literal(\"bash_code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"bash_code_execution_result\"),\n                content: z2.array(\n                  z2.object({\n                    type: z2.literal(\"bash_code_execution_output\"),\n                    file_id: z2.string()\n                  })\n                ),\n                stdout: z2.string(),\n                stderr: z2.string(),\n                return_code: z2.number()\n              }),\n              z2.object({\n                type: z2.literal(\"bash_code_execution_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // text editor code execution results for code_execution_20250825 tool:\n          z2.object({\n            type: z2.literal(\"text_editor_code_execution_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_tool_result_error\"),\n                error_code: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_view_result\"),\n                content: z2.string(),\n                file_type: z2.string(),\n                num_lines: z2.number().nullable(),\n                start_line: z2.number().nullable(),\n                total_lines: z2.number().nullable()\n              }),\n              z2.object({\n                type: z2.literal(\"text_editor_code_execution_create_result\"),\n                is_file_update: z2.boolean()\n              }),\n              z2.object({\n                type: z2.literal(\n                  \"text_editor_code_execution_str_replace_result\"\n                ),\n                lines: z2.array(z2.string()).nullable(),\n                new_lines: z2.number().nullable(),\n                new_start: z2.number().nullable(),\n                old_lines: z2.number().nullable(),\n                old_start: z2.number().nullable()\n              })\n            ])\n          }),\n          // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119:\n          z2.object({\n            type: z2.literal(\"tool_search_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.union([\n              z2.object({\n                type: z2.literal(\"tool_search_tool_search_result\"),\n                tool_references: z2.array(\n                  z2.object({\n                    type: z2.literal(\"tool_reference\"),\n                    tool_name: z2.string()\n                  })\n                )\n              }),\n              z2.object({\n                type: z2.literal(\"tool_search_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // advisor results for advisor_20260301:\n          z2.object({\n            type: z2.literal(\"advisor_tool_result\"),\n            tool_use_id: z2.string(),\n            content: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"advisor_result\"),\n                text: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"advisor_redacted_result\"),\n                encrypted_content: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"advisor_tool_result_error\"),\n                error_code: z2.string()\n              })\n            ])\n          }),\n          // Server-side fallback marker; dropped from content output (see the\n          // response schema). The hop remains observable via usage.iterations.\n          z2.object({\n            type: z2.literal(\"fallback\")\n          })\n        ])\n      }),\n      z2.object({\n        type: z2.literal(\"content_block_delta\"),\n        index: z2.number(),\n        delta: z2.discriminatedUnion(\"type\", [\n          z2.object({\n            type: z2.literal(\"input_json_delta\"),\n            partial_json: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"text_delta\"),\n            text: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"thinking_delta\"),\n            thinking: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"signature_delta\"),\n            signature: z2.string()\n          }),\n          z2.object({\n            type: z2.literal(\"compaction_delta\"),\n            content: z2.string().nullish()\n          }),\n          z2.object({\n            type: z2.literal(\"citations_delta\"),\n            citation: z2.discriminatedUnion(\"type\", [\n              z2.object({\n                type: z2.literal(\"web_search_result_location\"),\n                cited_text: z2.string(),\n                url: z2.string(),\n                title: z2.string(),\n                encrypted_index: z2.string()\n              }),\n              z2.object({\n                type: z2.literal(\"page_location\"),\n                cited_text: z2.string(),\n                document_index: z2.number(),\n                document_title: z2.string().nullable(),\n                start_page_number: z2.number(),\n                end_page_number: z2.number()\n              }),\n              z2.object({\n                type: z2.literal(\"char_location\"),\n                cited_text: z2.string(),\n                document_index: z2.number(),\n                document_title: z2.string().nullable(),\n                start_char_index: z2.number(),\n                end_char_index: z2.number()\n              })\n            ])\n          })\n        ])\n      }),\n      z2.object({\n        type: z2.literal(\"content_block_stop\"),\n        index: z2.number()\n      }),\n      z2.object({\n        type: z2.literal(\"error\"),\n        error: z2.object({\n          type: z2.string(),\n          message: z2.string()\n        })\n      }),\n      z2.object({\n        type: z2.literal(\"message_delta\"),\n        delta: z2.object({\n          stop_reason: z2.string().nullish(),\n          stop_sequence: z2.string().nullish(),\n          stop_details: anthropicStopDetailsSchema.nullish(),\n          container: z2.object({\n            expires_at: z2.string(),\n            id: z2.string(),\n            skills: z2.array(\n              z2.object({\n                type: z2.union([\n                  z2.literal(\"anthropic\"),\n                  z2.literal(\"custom\")\n                ]),\n                skill_id: z2.string(),\n                version: z2.string()\n              })\n            ).nullish()\n          }).nullish()\n        }),\n        usage: z2.looseObject({\n          input_tokens: z2.number().nullish(),\n          output_tokens: z2.number(),\n          output_tokens_details: z2.object({\n            thinking_tokens: z2.number().nullish()\n          }).nullish(),\n          cache_creation_input_tokens: z2.number().nullish(),\n          cache_read_input_tokens: z2.number().nullish(),\n          iterations: z2.array(\n            z2.object({\n              type: z2.union([\n                z2.literal(\"compaction\"),\n                z2.literal(\"message\"),\n                z2.literal(\"advisor_message\"),\n                z2.literal(\"fallback_message\")\n              ]),\n              model: z2.string().nullish(),\n              input_tokens: z2.number(),\n              output_tokens: z2.number(),\n              cache_creation_input_tokens: z2.number().nullish(),\n              cache_read_input_tokens: z2.number().nullish()\n            })\n          ).nullish()\n        }),\n        context_management: z2.object({\n          applied_edits: z2.array(\n            z2.union([\n              z2.object({\n                type: z2.literal(\"clear_tool_uses_20250919\"),\n                cleared_tool_uses: z2.number(),\n                cleared_input_tokens: z2.number()\n              }),\n              z2.object({\n                type: z2.literal(\"clear_thinking_20251015\"),\n                cleared_thinking_turns: z2.number(),\n                cleared_input_tokens: z2.number()\n              }),\n              z2.object({\n                type: z2.literal(\"compact_20260112\")\n              })\n            ])\n          )\n        }).nullish()\n      }),\n      z2.object({\n        type: z2.literal(\"message_stop\")\n      }),\n      z2.object({\n        type: z2.literal(\"ping\")\n      })\n    ])\n  )\n);\nvar anthropicReasoningMetadataSchema = lazySchema2(\n  () => zodSchema2(\n    z2.object({\n      signature: z2.string().optional(),\n      redactedData: z2.string().optional()\n    })\n  )\n);\n\n// src/anthropic-messages-options.ts\nimport { z as z3 } from \"zod/v4\";\nvar anthropicFilePartProviderOptions = z3.object({\n  /**\n   * Citation configuration for this document.\n   * When enabled, this document will generate citations in the response.\n   */\n  citations: z3.object({\n    /**\n     * Enable citations for this document\n     */\n    enabled: z3.boolean()\n  }).optional(),\n  /**\n   * Custom title for the document.\n   * If not provided, the filename will be used.\n   */\n  title: z3.string().optional(),\n  /**\n   * Context about the document that will be passed to the model\n   * but not used towards cited content.\n   * Useful for storing document metadata as text or stringified JSON.\n   */\n  context: z3.string().optional()\n});\nvar anthropicSystemMessageProviderOptions = z3.object({\n  /**\n   * Mid-conversation tool changes. Adds or removes tools from the\n   * conversation's tool set between turns without invalidating the prompt\n   * cache.\n   *\n   * Only supported on system messages that appear mid-conversation (not the\n   * initial system prompt). A system message carrying tool changes must come\n   * right before an assistant message or at the end of the messages.\n   *\n   * Tools referenced by a `tool_addition` must be declared in the `tools`\n   * option (typically with `deferLoading: true` so they are not loaded until\n   * the addition surfaces them). The required\n   * `mid-conversation-tool-changes-2026-07-01` beta is added automatically.\n   */\n  toolChanges: z3.array(\n    z3.discriminatedUnion(\"type\", [\n      z3.object({\n        type: z3.literal(\"tool_addition\"),\n        toolName: z3.string()\n      }),\n      z3.object({\n        type: z3.literal(\"tool_removal\"),\n        toolName: z3.string()\n      })\n    ])\n  ).optional()\n});\nvar anthropicLanguageModelOptions = z3.object({\n  /**\n   * Whether to send reasoning to the model.\n   *\n   * This allows you to deactivate reasoning inputs for models that do not support them.\n   */\n  sendReasoning: z3.boolean().optional(),\n  /**\n   * Determines how structured outputs are generated.\n   *\n   * - `outputFormat`: Use the `output_config.format` parameter to specify the structured output format.\n   * - `jsonTool`: Use a special 'json' tool to specify the structured output format.\n   * - `auto`: Use 'outputFormat' when supported, otherwise use 'jsonTool' (default).\n   */\n  structuredOutputMode: z3.enum([\"outputFormat\", \"jsonTool\", \"auto\"]).optional(),\n  /**\n   * Configuration for enabling Claude's extended thinking.\n   *\n   * When enabled, responses include thinking content blocks showing Claude's thinking process before the final answer.\n   * Requires a minimum budget of 1,024 tokens and counts towards the `max_tokens` limit.\n   */\n  thinking: z3.discriminatedUnion(\"type\", [\n    z3.object({\n      /** for Sonnet 4.6, Opus 4.6, and newer models */\n      type: z3.literal(\"adaptive\"),\n      /**\n       * Controls whether thinking content is included in the response.\n       * - `\"omitted\"`: Thinking blocks are present but text is empty (default for Opus 4.7+).\n       * - `\"summarized\"`: Thinking content is returned. Required to see reasoning output.\n       */\n      display: z3.enum([\"omitted\", \"summarized\"]).optional()\n    }),\n    z3.object({\n      /** for models before Opus 4.6, except Sonnet 4.6 still supports it */\n      type: z3.literal(\"enabled\"),\n      budgetTokens: z3.number().optional()\n    }),\n    z3.object({\n      type: z3.literal(\"disabled\")\n    })\n  ]).optional(),\n  /**\n   * Whether to disable parallel function calling during tool use. Default is false.\n   * When set to true, Claude will use at most one tool per response.\n   */\n  disableParallelToolUse: z3.boolean().optional(),\n  /**\n   * Cache control settings for this message.\n   * See https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching\n   */\n  cacheControl: z3.object({\n    type: z3.literal(\"ephemeral\"),\n    ttl: z3.union([z3.literal(\"5m\"), z3.literal(\"1h\")]).optional()\n  }).optional(),\n  /**\n   * Metadata to include with the request.\n   *\n   * See https://platform.claude.com/docs/en/api/messages/create for details.\n   */\n  metadata: z3.object({\n    /**\n     * An external identifier for the user associated with the request.\n     *\n     * Should be a UUID, hash value, or other opaque identifier.\n     * Must not contain PII (name, email, phone number, etc.).\n     */\n    userId: z3.string().optional()\n  }).optional(),\n  /**\n   * MCP servers to be utilized in this request.\n   */\n  mcpServers: z3.array(\n    z3.object({\n      type: z3.literal(\"url\"),\n      name: z3.string(),\n      url: z3.string(),\n      authorizationToken: z3.string().nullish(),\n      toolConfiguration: z3.object({\n        enabled: z3.boolean().nullish(),\n        allowedTools: z3.array(z3.string()).nullish()\n      }).nullish()\n    })\n  ).optional(),\n  /**\n   * Agent Skills configuration. Skills enable Claude to perform specialized tasks\n   * like document processing (PPTX, DOCX, PDF, XLSX) and data analysis.\n   * Requires code execution tool to be enabled.\n   */\n  container: z3.object({\n    id: z3.string().optional(),\n    skills: z3.array(\n      z3.object({\n        type: z3.union([z3.literal(\"anthropic\"), z3.literal(\"custom\")]),\n        skillId: z3.string(),\n        version: z3.string().optional()\n      })\n    ).optional()\n  }).optional(),\n  /**\n   * Whether to enable fine-grained (eager) streaming of tool call inputs\n   * and structured outputs for every function tool in the request. When\n   * true (the default), each function tool receives a default of\n   * `eager_input_streaming: true` unless it explicitly sets\n   * `providerOptions.anthropic.eagerInputStreaming`.\n   *\n   * @default true\n   */\n  toolStreaming: z3.boolean().optional(),\n  /**\n   * @default 'high'\n   */\n  effort: z3.enum([\"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n  /**\n   * Task budget for agentic turns. Informs the model of the total token budget\n   * available for the current task, allowing it to prioritize work and wind down\n   * gracefully as the budget is consumed.\n   *\n   * Advisory only — does not enforce a hard token limit.\n   */\n  taskBudget: z3.object({\n    type: z3.literal(\"tokens\"),\n    total: z3.number().int().min(2e4),\n    remaining: z3.number().int().min(0).optional()\n  }).optional(),\n  /**\n   * Enable fast mode for faster inference (2.5x faster output token speeds).\n   * Only supported with claude-opus-4-6.\n   */\n  speed: z3.enum([\"fast\", \"standard\"]).optional(),\n  /**\n   * Controls where model inference runs for this request.\n   *\n   * - `\"global\"`: Inference may run in any available geography (default).\n   * - `\"us\"`: Inference runs only in US-based infrastructure.\n   *\n   * See https://platform.claude.com/docs/en/build-with-claude/data-residency\n   */\n  inferenceGeo: z3.enum([\"us\", \"global\"]).optional(),\n  /**\n   * Server-side fallback configuration.\n   *\n   * When the primary model's safety classifiers block a turn, the API\n   * automatically retries it server-side on a fallback model. A\n   * `content-filter` finish reason means the fallback(s) refused as well.\n   *\n   * - `'default'` (recommended): the API routes the retry to Anthropic's\n   *   recommended fallback model based on the refusal category. Requires the\n   *   `server-side-fallback-2026-07-01` beta, which is added automatically.\n   * - Array form: an explicit fallback chain. Each entry is merged into the\n   *   request as a direct request to that entry's model, so it must be\n   *   formatted accordingly: `model` is required, and an entry may\n   *   additionally override `max_tokens`, `thinking`, `output_config`, and\n   *   `speed` for that attempt only (`speed` additionally requires the speed\n   *   beta). The value is passed through to the API as-is, and the\n   *   `server-side-fallback-2026-06-01` beta is added automatically.\n   */\n  fallbacks: z3.union([\n    z3.literal(\"default\"),\n    z3.array(\n      z3.object({\n        model: z3.string(),\n        max_tokens: z3.number().int().optional(),\n        thinking: z3.record(z3.string(), z3.unknown()).optional(),\n        output_config: z3.record(z3.string(), z3.unknown()).optional(),\n        speed: z3.enum([\"fast\", \"standard\"]).optional()\n      })\n    )\n  ]).optional(),\n  /**\n   * A set of beta features to enable.\n   * Allow a provider to receive the full `betas` set if it needs it.\n   */\n  anthropicBeta: z3.array(z3.string()).optional(),\n  contextManagement: z3.object({\n    edits: z3.array(\n      z3.discriminatedUnion(\"type\", [\n        z3.object({\n          type: z3.literal(\"clear_tool_uses_20250919\"),\n          trigger: z3.discriminatedUnion(\"type\", [\n            z3.object({\n              type: z3.literal(\"input_tokens\"),\n              value: z3.number()\n            }),\n            z3.object({\n              type: z3.literal(\"tool_uses\"),\n              value: z3.number()\n            })\n          ]).optional(),\n          keep: z3.object({\n            type: z3.literal(\"tool_uses\"),\n            value: z3.number()\n          }).optional(),\n          clearAtLeast: z3.object({\n            type: z3.literal(\"input_tokens\"),\n            value: z3.number()\n          }).optional(),\n          clearToolInputs: z3.boolean().optional(),\n          excludeTools: z3.array(z3.string()).optional()\n        }),\n        z3.object({\n          type: z3.literal(\"clear_thinking_20251015\"),\n          keep: z3.union([\n            z3.literal(\"all\"),\n            z3.object({\n              type: z3.literal(\"thinking_turns\"),\n              value: z3.number()\n            })\n          ]).optional()\n        }),\n        z3.object({\n          type: z3.literal(\"compact_20260112\"),\n          trigger: z3.object({\n            type: z3.literal(\"input_tokens\"),\n            value: z3.number()\n          }).optional(),\n          pauseAfterCompaction: z3.boolean().optional(),\n          instructions: z3.string().optional()\n        })\n      ])\n    )\n  }).optional()\n});\n\n// src/anthropic-prepare-tools.ts\nimport {\n  UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\n\n// src/get-cache-control.ts\nvar MAX_CACHE_BREAKPOINTS = 4;\nfunction getCacheControl(providerMetadata) {\n  var _a;\n  const anthropic2 = providerMetadata == null ? void 0 : providerMetadata.anthropic;\n  const cacheControlValue = (_a = anthropic2 == null ? void 0 : anthropic2.cacheControl) != null ? _a : anthropic2 == null ? void 0 : anthropic2.cache_control;\n  return cacheControlValue;\n}\nvar CacheControlValidator = class {\n  constructor() {\n    this.breakpointCount = 0;\n    this.warnings = [];\n  }\n  getCacheControl(providerMetadata, context) {\n    const cacheControlValue = getCacheControl(providerMetadata);\n    if (!cacheControlValue) {\n      return void 0;\n    }\n    if (!context.canCache) {\n      this.warnings.push({\n        type: \"unsupported\",\n        feature: \"cache_control on non-cacheable context\",\n        details: `cache_control cannot be set on ${context.type}. It will be ignored.`\n      });\n      return void 0;\n    }\n    this.breakpointCount++;\n    if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) {\n      this.warnings.push({\n        type: \"unsupported\",\n        feature: \"cacheControl breakpoint limit\",\n        details: `Maximum ${MAX_CACHE_BREAKPOINTS} cache breakpoints exceeded (found ${this.breakpointCount}). This breakpoint will be ignored.`\n      });\n      return void 0;\n    }\n    return cacheControlValue;\n  }\n  getWarnings() {\n    return this.warnings;\n  }\n};\n\n// src/tool/advisor_20260301.ts\nimport {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema as lazySchema3,\n  zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar advisor_20260301ArgsSchema = lazySchema3(\n  () => zodSchema3(\n    z4.object({\n      model: z4.string(),\n      maxUses: z4.number().optional(),\n      caching: z4.object({\n        type: z4.literal(\"ephemeral\"),\n        ttl: z4.union([z4.literal(\"5m\"), z4.literal(\"1h\")])\n      }).optional()\n    })\n  )\n);\nvar advisor_20260301OutputSchema = lazySchema3(\n  () => zodSchema3(\n    z4.discriminatedUnion(\"type\", [\n      z4.object({\n        type: z4.literal(\"advisor_result\"),\n        text: z4.string()\n      }),\n      z4.object({\n        type: z4.literal(\"advisor_redacted_result\"),\n        encryptedContent: z4.string()\n      }),\n      z4.object({\n        type: z4.literal(\"advisor_tool_result_error\"),\n        errorCode: z4.string()\n      })\n    ])\n  )\n);\nvar advisor_20260301InputSchema = lazySchema3(\n  () => zodSchema3(z4.object({}).strict())\n);\nvar factory = createProviderToolFactoryWithOutputSchema({\n  id: \"anthropic.advisor_20260301\",\n  inputSchema: advisor_20260301InputSchema,\n  outputSchema: advisor_20260301OutputSchema,\n  supportsDeferredResults: true\n});\nvar advisor_20260301 = (args) => {\n  return factory(args);\n};\n\n// src/tool/text-editor_20250728.ts\nimport {\n  createProviderToolFactory,\n  lazySchema as lazySchema4,\n  zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar textEditor_20250728ArgsSchema = lazySchema4(\n  () => zodSchema4(\n    z5.object({\n      maxCharacters: z5.number().optional()\n    })\n  )\n);\nvar textEditor_20250728InputSchema = lazySchema4(\n  () => zodSchema4(\n    z5.object({\n      command: z5.enum([\"view\", \"create\", \"str_replace\", \"insert\"]),\n      path: z5.string(),\n      file_text: z5.string().optional(),\n      insert_line: z5.number().int().optional(),\n      new_str: z5.string().optional(),\n      insert_text: z5.string().optional(),\n      old_str: z5.string().optional(),\n      view_range: z5.array(z5.number().int()).optional()\n    })\n  )\n);\nvar factory2 = createProviderToolFactory({\n  id: \"anthropic.text_editor_20250728\",\n  inputSchema: textEditor_20250728InputSchema\n});\nvar textEditor_20250728 = (args = {}) => {\n  return factory2(args);\n};\n\n// src/tool/web-search_20260209.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema2,\n  lazySchema as lazySchema5,\n  zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar webSearch_20260209ArgsSchema = lazySchema5(\n  () => zodSchema5(\n    z6.object({\n      maxUses: z6.number().optional(),\n      allowedDomains: z6.array(z6.string()).optional(),\n      blockedDomains: z6.array(z6.string()).optional(),\n      userLocation: z6.object({\n        type: z6.literal(\"approximate\"),\n        city: z6.string().optional(),\n        region: z6.string().optional(),\n        country: z6.string().optional(),\n        timezone: z6.string().optional()\n      }).optional()\n    })\n  )\n);\nvar webSearch_20260209OutputSchema = lazySchema5(\n  () => zodSchema5(\n    z6.array(\n      z6.object({\n        url: z6.string(),\n        title: z6.string().nullable(),\n        pageAge: z6.string().nullable(),\n        encryptedContent: z6.string(),\n        type: z6.literal(\"web_search_result\")\n      })\n    )\n  )\n);\nvar webSearch_20260209InputSchema = lazySchema5(\n  () => zodSchema5(\n    z6.object({\n      query: z6.string()\n    })\n  )\n);\nvar factory3 = createProviderToolFactoryWithOutputSchema2({\n  id: \"anthropic.web_search_20260209\",\n  inputSchema: webSearch_20260209InputSchema,\n  outputSchema: webSearch_20260209OutputSchema,\n  supportsDeferredResults: true\n});\nvar webSearch_20260209 = (args = {}) => {\n  return factory3(args);\n};\n\n// src/tool/web-search_20250305.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema3,\n  lazySchema as lazySchema6,\n  zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar webSearch_20250305ArgsSchema = lazySchema6(\n  () => zodSchema6(\n    z7.object({\n      maxUses: z7.number().optional(),\n      allowedDomains: z7.array(z7.string()).optional(),\n      blockedDomains: z7.array(z7.string()).optional(),\n      userLocation: z7.object({\n        type: z7.literal(\"approximate\"),\n        city: z7.string().optional(),\n        region: z7.string().optional(),\n        country: z7.string().optional(),\n        timezone: z7.string().optional()\n      }).optional()\n    })\n  )\n);\nvar webSearch_20250305OutputSchema = lazySchema6(\n  () => zodSchema6(\n    z7.array(\n      z7.object({\n        url: z7.string(),\n        title: z7.string().nullable(),\n        pageAge: z7.string().nullable(),\n        encryptedContent: z7.string(),\n        type: z7.literal(\"web_search_result\")\n      })\n    )\n  )\n);\nvar webSearch_20250305InputSchema = lazySchema6(\n  () => zodSchema6(\n    z7.object({\n      query: z7.string()\n    })\n  )\n);\nvar factory4 = createProviderToolFactoryWithOutputSchema3({\n  id: \"anthropic.web_search_20250305\",\n  inputSchema: webSearch_20250305InputSchema,\n  outputSchema: webSearch_20250305OutputSchema,\n  supportsDeferredResults: true\n});\nvar webSearch_20250305 = (args = {}) => {\n  return factory4(args);\n};\n\n// src/tool/web-fetch-20260209.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema4,\n  lazySchema as lazySchema7,\n  zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar webFetch_20260209ArgsSchema = lazySchema7(\n  () => zodSchema7(\n    z8.object({\n      maxUses: z8.number().optional(),\n      allowedDomains: z8.array(z8.string()).optional(),\n      blockedDomains: z8.array(z8.string()).optional(),\n      citations: z8.object({ enabled: z8.boolean() }).optional(),\n      maxContentTokens: z8.number().optional()\n    })\n  )\n);\nvar webFetch_20260209OutputSchema = lazySchema7(\n  () => zodSchema7(\n    z8.object({\n      type: z8.literal(\"web_fetch_result\"),\n      url: z8.string(),\n      content: z8.object({\n        type: z8.literal(\"document\"),\n        title: z8.string().nullable(),\n        citations: z8.object({ enabled: z8.boolean() }).optional(),\n        source: z8.union([\n          z8.object({\n            type: z8.literal(\"base64\"),\n            mediaType: z8.literal(\"application/pdf\"),\n            data: z8.string()\n          }),\n          z8.object({\n            type: z8.literal(\"text\"),\n            mediaType: z8.literal(\"text/plain\"),\n            data: z8.string()\n          })\n        ])\n      }),\n      retrievedAt: z8.string().nullable()\n    })\n  )\n);\nvar webFetch_20260209InputSchema = lazySchema7(\n  () => zodSchema7(\n    z8.object({\n      url: z8.string()\n    })\n  )\n);\nvar factory5 = createProviderToolFactoryWithOutputSchema4({\n  id: \"anthropic.web_fetch_20260209\",\n  inputSchema: webFetch_20260209InputSchema,\n  outputSchema: webFetch_20260209OutputSchema,\n  supportsDeferredResults: true\n});\nvar webFetch_20260209 = (args = {}) => {\n  return factory5(args);\n};\n\n// src/tool/web-fetch-20250910.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema5,\n  lazySchema as lazySchema8,\n  zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar webFetch_20250910ArgsSchema = lazySchema8(\n  () => zodSchema8(\n    z9.object({\n      maxUses: z9.number().optional(),\n      allowedDomains: z9.array(z9.string()).optional(),\n      blockedDomains: z9.array(z9.string()).optional(),\n      citations: z9.object({ enabled: z9.boolean() }).optional(),\n      maxContentTokens: z9.number().optional()\n    })\n  )\n);\nvar webFetch_20250910OutputSchema = lazySchema8(\n  () => zodSchema8(\n    z9.object({\n      type: z9.literal(\"web_fetch_result\"),\n      url: z9.string(),\n      content: z9.object({\n        type: z9.literal(\"document\"),\n        title: z9.string().nullable(),\n        citations: z9.object({ enabled: z9.boolean() }).optional(),\n        source: z9.union([\n          z9.object({\n            type: z9.literal(\"base64\"),\n            mediaType: z9.literal(\"application/pdf\"),\n            data: z9.string()\n          }),\n          z9.object({\n            type: z9.literal(\"text\"),\n            mediaType: z9.literal(\"text/plain\"),\n            data: z9.string()\n          })\n        ])\n      }),\n      retrievedAt: z9.string().nullable()\n    })\n  )\n);\nvar webFetch_20250910InputSchema = lazySchema8(\n  () => zodSchema8(\n    z9.object({\n      url: z9.string()\n    })\n  )\n);\nvar factory6 = createProviderToolFactoryWithOutputSchema5({\n  id: \"anthropic.web_fetch_20250910\",\n  inputSchema: webFetch_20250910InputSchema,\n  outputSchema: webFetch_20250910OutputSchema,\n  supportsDeferredResults: true\n});\nvar webFetch_20250910 = (args = {}) => {\n  return factory6(args);\n};\n\n// src/anthropic-prepare-tools.ts\nimport { validateTypes } from \"@ai-sdk/provider-utils\";\nasync function prepareTools({\n  tools,\n  toolChoice,\n  disableParallelToolUse,\n  cacheControlValidator,\n  supportsStructuredOutput,\n  supportsStrictTools,\n  defaultEagerInputStreaming = false\n}) {\n  var _a, _b;\n  tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  const toolWarnings = [];\n  const betas = /* @__PURE__ */ new Set();\n  const validator = cacheControlValidator || new CacheControlValidator();\n  if (tools == null) {\n    return { tools: void 0, toolChoice: void 0, toolWarnings, betas };\n  }\n  const anthropicTools2 = [];\n  for (const tool of tools) {\n    switch (tool.type) {\n      case \"function\": {\n        const cacheControl = validator.getCacheControl(tool.providerOptions, {\n          type: \"tool definition\",\n          canCache: true\n        });\n        const anthropicOptions = (_a = tool.providerOptions) == null ? void 0 : _a.anthropic;\n        const eagerInputStreaming = (_b = anthropicOptions == null ? void 0 : anthropicOptions.eagerInputStreaming) != null ? _b : defaultEagerInputStreaming;\n        const deferLoading = anthropicOptions == null ? void 0 : anthropicOptions.deferLoading;\n        const allowedCallers = anthropicOptions == null ? void 0 : anthropicOptions.allowedCallers;\n        if (!supportsStrictTools && tool.strict != null) {\n          toolWarnings.push({\n            type: \"unsupported\",\n            feature: \"strict\",\n            details: `Tool '${tool.name}' has strict: ${tool.strict}, but strict mode is not supported by this provider. The strict property will be ignored.`\n          });\n        }\n        anthropicTools2.push({\n          name: tool.name,\n          description: tool.description,\n          input_schema: tool.inputSchema,\n          cache_control: cacheControl,\n          ...eagerInputStreaming ? { eager_input_streaming: true } : {},\n          ...supportsStrictTools === true && tool.strict != null ? { strict: tool.strict } : {},\n          ...deferLoading != null ? { defer_loading: deferLoading } : {},\n          ...allowedCallers != null ? { allowed_callers: allowedCallers } : {},\n          ...tool.inputExamples != null ? {\n            input_examples: tool.inputExamples.map(\n              (example) => example.input\n            )\n          } : {}\n        });\n        if (supportsStructuredOutput === true) {\n          betas.add(\"structured-outputs-2025-11-13\");\n        }\n        if (tool.inputExamples != null || allowedCallers != null) {\n          betas.add(\"advanced-tool-use-2025-11-20\");\n        }\n        break;\n      }\n      case \"provider\": {\n        switch (tool.id) {\n          case \"anthropic.code_execution_20250522\": {\n            betas.add(\"code-execution-2025-05-22\");\n            anthropicTools2.push({\n              type: \"code_execution_20250522\",\n              name: \"code_execution\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.code_execution_20250825\": {\n            betas.add(\"code-execution-2025-08-25\");\n            anthropicTools2.push({\n              type: \"code_execution_20250825\",\n              name: \"code_execution\"\n            });\n            break;\n          }\n          case \"anthropic.code_execution_20260120\": {\n            anthropicTools2.push({\n              type: \"code_execution_20260120\",\n              name: \"code_execution\"\n            });\n            break;\n          }\n          case \"anthropic.computer_20250124\": {\n            betas.add(\"computer-use-2025-01-24\");\n            anthropicTools2.push({\n              name: \"computer\",\n              type: \"computer_20250124\",\n              display_width_px: tool.args.displayWidthPx,\n              display_height_px: tool.args.displayHeightPx,\n              display_number: tool.args.displayNumber,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.computer_20251124\": {\n            betas.add(\"computer-use-2025-11-24\");\n            anthropicTools2.push({\n              name: \"computer\",\n              type: \"computer_20251124\",\n              display_width_px: tool.args.displayWidthPx,\n              display_height_px: tool.args.displayHeightPx,\n              display_number: tool.args.displayNumber,\n              enable_zoom: tool.args.enableZoom,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.computer_20241022\": {\n            betas.add(\"computer-use-2024-10-22\");\n            anthropicTools2.push({\n              name: \"computer\",\n              type: \"computer_20241022\",\n              display_width_px: tool.args.displayWidthPx,\n              display_height_px: tool.args.displayHeightPx,\n              display_number: tool.args.displayNumber,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.text_editor_20250124\": {\n            betas.add(\"computer-use-2025-01-24\");\n            anthropicTools2.push({\n              name: \"str_replace_editor\",\n              type: \"text_editor_20250124\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.text_editor_20241022\": {\n            betas.add(\"computer-use-2024-10-22\");\n            anthropicTools2.push({\n              name: \"str_replace_editor\",\n              type: \"text_editor_20241022\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.text_editor_20250429\": {\n            betas.add(\"computer-use-2025-01-24\");\n            anthropicTools2.push({\n              name: \"str_replace_based_edit_tool\",\n              type: \"text_editor_20250429\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.text_editor_20250728\": {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: textEditor_20250728ArgsSchema\n            });\n            anthropicTools2.push({\n              name: \"str_replace_based_edit_tool\",\n              type: \"text_editor_20250728\",\n              max_characters: args.maxCharacters,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.bash_20250124\": {\n            betas.add(\"computer-use-2025-01-24\");\n            anthropicTools2.push({\n              name: \"bash\",\n              type: \"bash_20250124\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.bash_20241022\": {\n            betas.add(\"computer-use-2024-10-22\");\n            anthropicTools2.push({\n              name: \"bash\",\n              type: \"bash_20241022\",\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.memory_20250818\": {\n            betas.add(\"context-management-2025-06-27\");\n            anthropicTools2.push({\n              name: \"memory\",\n              type: \"memory_20250818\"\n            });\n            break;\n          }\n          case \"anthropic.web_fetch_20250910\": {\n            betas.add(\"web-fetch-2025-09-10\");\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webFetch_20250910ArgsSchema\n            });\n            anthropicTools2.push({\n              type: \"web_fetch_20250910\",\n              name: \"web_fetch\",\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              citations: args.citations,\n              max_content_tokens: args.maxContentTokens,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.web_fetch_20260209\": {\n            betas.add(\"code-execution-web-tools-2026-02-09\");\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webFetch_20260209ArgsSchema\n            });\n            anthropicTools2.push({\n              type: \"web_fetch_20260209\",\n              name: \"web_fetch\",\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              citations: args.citations,\n              max_content_tokens: args.maxContentTokens,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.web_search_20250305\": {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearch_20250305ArgsSchema\n            });\n            anthropicTools2.push({\n              type: \"web_search_20250305\",\n              name: \"web_search\",\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              user_location: args.userLocation,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.web_search_20260209\": {\n            betas.add(\"code-execution-web-tools-2026-02-09\");\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearch_20260209ArgsSchema\n            });\n            anthropicTools2.push({\n              type: \"web_search_20260209\",\n              name: \"web_search\",\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              user_location: args.userLocation,\n              cache_control: void 0\n            });\n            break;\n          }\n          case \"anthropic.tool_search_regex_20251119\": {\n            anthropicTools2.push({\n              type: \"tool_search_tool_regex_20251119\",\n              name: \"tool_search_tool_regex\"\n            });\n            break;\n          }\n          case \"anthropic.tool_search_bm25_20251119\": {\n            anthropicTools2.push({\n              type: \"tool_search_tool_bm25_20251119\",\n              name: \"tool_search_tool_bm25\"\n            });\n            break;\n          }\n          case \"anthropic.advisor_20260301\": {\n            betas.add(\"advisor-tool-2026-03-01\");\n            const args = await validateTypes({\n              value: tool.args,\n              schema: advisor_20260301ArgsSchema\n            });\n            anthropicTools2.push({\n              type: \"advisor_20260301\",\n              name: \"advisor\",\n              model: args.model,\n              ...args.maxUses !== void 0 && { max_uses: args.maxUses },\n              ...args.caching !== void 0 && { caching: args.caching }\n            });\n            break;\n          }\n          default: {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`\n            });\n            break;\n          }\n        }\n        break;\n      }\n      default: {\n        toolWarnings.push({\n          type: \"unsupported\",\n          feature: `tool ${tool}`\n        });\n        break;\n      }\n    }\n  }\n  if (toolChoice == null) {\n    return {\n      tools: anthropicTools2,\n      toolChoice: disableParallelToolUse ? { type: \"auto\", disable_parallel_tool_use: disableParallelToolUse } : void 0,\n      toolWarnings,\n      betas\n    };\n  }\n  const type = toolChoice.type;\n  switch (type) {\n    case \"auto\":\n      return {\n        tools: anthropicTools2,\n        toolChoice: {\n          type: \"auto\",\n          disable_parallel_tool_use: disableParallelToolUse\n        },\n        toolWarnings,\n        betas\n      };\n    case \"required\":\n      return {\n        tools: anthropicTools2,\n        toolChoice: {\n          type: \"any\",\n          disable_parallel_tool_use: disableParallelToolUse\n        },\n        toolWarnings,\n        betas\n      };\n    case \"none\":\n      return { tools: void 0, toolChoice: void 0, toolWarnings, betas };\n    case \"tool\":\n      return {\n        tools: anthropicTools2,\n        toolChoice: {\n          type: \"tool\",\n          name: toolChoice.toolName,\n          disable_parallel_tool_use: disableParallelToolUse\n        },\n        toolWarnings,\n        betas\n      };\n    default: {\n      const _exhaustiveCheck = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`\n      });\n    }\n  }\n}\n\n// src/convert-anthropic-messages-usage.ts\nfunction convertAnthropicMessagesUsage({\n  usage,\n  rawUsage\n}) {\n  var _a, _b, _c, _d, _e;\n  const cacheCreationTokens = (_a = usage.cache_creation_input_tokens) != null ? _a : 0;\n  const cacheReadTokens = (_b = usage.cache_read_input_tokens) != null ? _b : 0;\n  const reasoningTokens = (_d = (_c = usage.output_tokens_details) == null ? void 0 : _c.thinking_tokens) != null ? _d : void 0;\n  let inputTokens;\n  let outputTokens;\n  const servedByFallback = (_e = usage.iterations) == null ? void 0 : _e.some(\n    (iter) => iter.type === \"fallback_message\"\n  );\n  if (usage.iterations && usage.iterations.length > 0 && !servedByFallback) {\n    const executorIterations = usage.iterations.filter(\n      (iter) => iter.type === \"compaction\" || iter.type === \"message\"\n    );\n    if (executorIterations.length > 0) {\n      const totals = executorIterations.reduce(\n        (acc, iter) => ({\n          input: acc.input + iter.input_tokens,\n          output: acc.output + iter.output_tokens\n        }),\n        { input: 0, output: 0 }\n      );\n      inputTokens = totals.input;\n      outputTokens = totals.output;\n    } else {\n      inputTokens = usage.input_tokens;\n      outputTokens = usage.output_tokens;\n    }\n  } else {\n    inputTokens = usage.input_tokens;\n    outputTokens = usage.output_tokens;\n  }\n  return {\n    inputTokens: {\n      total: inputTokens + cacheCreationTokens + cacheReadTokens,\n      noCache: inputTokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: cacheCreationTokens\n    },\n    outputTokens: {\n      total: outputTokens,\n      text: reasoningTokens == null ? void 0 : outputTokens - reasoningTokens,\n      reasoning: reasoningTokens\n    },\n    raw: rawUsage != null ? rawUsage : usage\n  };\n}\n\n// src/convert-to-anthropic-messages-prompt.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nimport {\n  convertBase64ToUint8Array,\n  convertToBase64,\n  parseProviderOptions,\n  safeParseJSON,\n  isNonNullable,\n  secureJsonParse,\n  validateTypes as validateTypes2\n} from \"@ai-sdk/provider-utils\";\n\n// src/tool/code-execution_20250522.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema6,\n  lazySchema as lazySchema9,\n  zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar codeExecution_20250522OutputSchema = lazySchema9(\n  () => zodSchema9(\n    z10.object({\n      type: z10.literal(\"code_execution_result\"),\n      stdout: z10.string(),\n      stderr: z10.string(),\n      return_code: z10.number(),\n      content: z10.array(\n        z10.object({\n          type: z10.literal(\"code_execution_output\"),\n          file_id: z10.string()\n        })\n      ).optional().default([])\n    })\n  )\n);\nvar codeExecution_20250522InputSchema = lazySchema9(\n  () => zodSchema9(\n    z10.object({\n      code: z10.string()\n    })\n  )\n);\nvar factory7 = createProviderToolFactoryWithOutputSchema6({\n  id: \"anthropic.code_execution_20250522\",\n  inputSchema: codeExecution_20250522InputSchema,\n  outputSchema: codeExecution_20250522OutputSchema\n});\nvar codeExecution_20250522 = (args = {}) => {\n  return factory7(args);\n};\n\n// src/tool/code-execution_20250825.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema7,\n  lazySchema as lazySchema10,\n  zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar codeExecution_20250825OutputSchema = lazySchema10(\n  () => zodSchema10(\n    z11.discriminatedUnion(\"type\", [\n      z11.object({\n        type: z11.literal(\"code_execution_result\"),\n        stdout: z11.string(),\n        stderr: z11.string(),\n        return_code: z11.number(),\n        content: z11.array(\n          z11.object({\n            type: z11.literal(\"code_execution_output\"),\n            file_id: z11.string()\n          })\n        ).optional().default([])\n      }),\n      z11.object({\n        type: z11.literal(\"bash_code_execution_result\"),\n        content: z11.array(\n          z11.object({\n            type: z11.literal(\"bash_code_execution_output\"),\n            file_id: z11.string()\n          })\n        ),\n        stdout: z11.string(),\n        stderr: z11.string(),\n        return_code: z11.number()\n      }),\n      z11.object({\n        type: z11.literal(\"bash_code_execution_tool_result_error\"),\n        error_code: z11.string()\n      }),\n      z11.object({\n        type: z11.literal(\"text_editor_code_execution_tool_result_error\"),\n        error_code: z11.string()\n      }),\n      z11.object({\n        type: z11.literal(\"text_editor_code_execution_view_result\"),\n        content: z11.string(),\n        file_type: z11.string(),\n        num_lines: z11.number().nullable(),\n        start_line: z11.number().nullable(),\n        total_lines: z11.number().nullable()\n      }),\n      z11.object({\n        type: z11.literal(\"text_editor_code_execution_create_result\"),\n        is_file_update: z11.boolean()\n      }),\n      z11.object({\n        type: z11.literal(\"text_editor_code_execution_str_replace_result\"),\n        lines: z11.array(z11.string()).nullable(),\n        new_lines: z11.number().nullable(),\n        new_start: z11.number().nullable(),\n        old_lines: z11.number().nullable(),\n        old_start: z11.number().nullable()\n      })\n    ])\n  )\n);\nvar codeExecution_20250825InputSchema = lazySchema10(\n  () => zodSchema10(\n    z11.discriminatedUnion(\"type\", [\n      // Programmatic tool calling format (mapped from { code } by AI SDK)\n      z11.object({\n        type: z11.literal(\"programmatic-tool-call\"),\n        code: z11.string()\n      }),\n      z11.object({\n        type: z11.literal(\"bash_code_execution\"),\n        command: z11.string()\n      }),\n      z11.discriminatedUnion(\"command\", [\n        z11.object({\n          type: z11.literal(\"text_editor_code_execution\"),\n          command: z11.literal(\"view\"),\n          path: z11.string()\n        }),\n        z11.object({\n          type: z11.literal(\"text_editor_code_execution\"),\n          command: z11.literal(\"create\"),\n          path: z11.string(),\n          file_text: z11.string().nullish()\n        }),\n        z11.object({\n          type: z11.literal(\"text_editor_code_execution\"),\n          command: z11.literal(\"str_replace\"),\n          path: z11.string(),\n          old_str: z11.string(),\n          new_str: z11.string()\n        })\n      ])\n    ])\n  )\n);\nvar factory8 = createProviderToolFactoryWithOutputSchema7({\n  id: \"anthropic.code_execution_20250825\",\n  inputSchema: codeExecution_20250825InputSchema,\n  outputSchema: codeExecution_20250825OutputSchema,\n  // Programmatic tool calling: tool results may be deferred to a later turn\n  // when code execution triggers a client-executed tool that needs to be\n  // resolved before the code execution result can be returned.\n  supportsDeferredResults: true\n});\nvar codeExecution_20250825 = (args = {}) => {\n  return factory8(args);\n};\n\n// src/tool/code-execution_20260120.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema8,\n  lazySchema as lazySchema11,\n  zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar codeExecution_20260120OutputSchema = lazySchema11(\n  () => zodSchema11(\n    z12.discriminatedUnion(\"type\", [\n      z12.object({\n        type: z12.literal(\"code_execution_result\"),\n        stdout: z12.string(),\n        stderr: z12.string(),\n        return_code: z12.number(),\n        content: z12.array(\n          z12.object({\n            type: z12.literal(\"code_execution_output\"),\n            file_id: z12.string()\n          })\n        ).optional().default([])\n      }),\n      z12.object({\n        type: z12.literal(\"encrypted_code_execution_result\"),\n        encrypted_stdout: z12.string(),\n        stderr: z12.string(),\n        return_code: z12.number(),\n        content: z12.array(\n          z12.object({\n            type: z12.literal(\"code_execution_output\"),\n            file_id: z12.string()\n          })\n        ).optional().default([])\n      }),\n      z12.object({\n        type: z12.literal(\"bash_code_execution_result\"),\n        content: z12.array(\n          z12.object({\n            type: z12.literal(\"bash_code_execution_output\"),\n            file_id: z12.string()\n          })\n        ),\n        stdout: z12.string(),\n        stderr: z12.string(),\n        return_code: z12.number()\n      }),\n      z12.object({\n        type: z12.literal(\"bash_code_execution_tool_result_error\"),\n        error_code: z12.string()\n      }),\n      z12.object({\n        type: z12.literal(\"text_editor_code_execution_tool_result_error\"),\n        error_code: z12.string()\n      }),\n      z12.object({\n        type: z12.literal(\"text_editor_code_execution_view_result\"),\n        content: z12.string(),\n        file_type: z12.string(),\n        num_lines: z12.number().nullable(),\n        start_line: z12.number().nullable(),\n        total_lines: z12.number().nullable()\n      }),\n      z12.object({\n        type: z12.literal(\"text_editor_code_execution_create_result\"),\n        is_file_update: z12.boolean()\n      }),\n      z12.object({\n        type: z12.literal(\"text_editor_code_execution_str_replace_result\"),\n        lines: z12.array(z12.string()).nullable(),\n        new_lines: z12.number().nullable(),\n        new_start: z12.number().nullable(),\n        old_lines: z12.number().nullable(),\n        old_start: z12.number().nullable()\n      })\n    ])\n  )\n);\nvar codeExecution_20260120InputSchema = lazySchema11(\n  () => zodSchema11(\n    z12.discriminatedUnion(\"type\", [\n      z12.object({\n        type: z12.literal(\"programmatic-tool-call\"),\n        code: z12.string()\n      }),\n      z12.object({\n        type: z12.literal(\"bash_code_execution\"),\n        command: z12.string()\n      }),\n      z12.discriminatedUnion(\"command\", [\n        z12.object({\n          type: z12.literal(\"text_editor_code_execution\"),\n          command: z12.literal(\"view\"),\n          path: z12.string()\n        }),\n        z12.object({\n          type: z12.literal(\"text_editor_code_execution\"),\n          command: z12.literal(\"create\"),\n          path: z12.string(),\n          file_text: z12.string().nullish()\n        }),\n        z12.object({\n          type: z12.literal(\"text_editor_code_execution\"),\n          command: z12.literal(\"str_replace\"),\n          path: z12.string(),\n          old_str: z12.string(),\n          new_str: z12.string()\n        })\n      ])\n    ])\n  )\n);\nvar factory9 = createProviderToolFactoryWithOutputSchema8({\n  id: \"anthropic.code_execution_20260120\",\n  inputSchema: codeExecution_20260120InputSchema,\n  outputSchema: codeExecution_20260120OutputSchema,\n  supportsDeferredResults: true\n});\nvar codeExecution_20260120 = (args = {}) => {\n  return factory9(args);\n};\n\n// src/tool/tool-search-regex_20251119.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema9,\n  lazySchema as lazySchema12,\n  zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar toolSearchRegex_20251119OutputSchema = lazySchema12(\n  () => zodSchema12(\n    z13.array(\n      z13.object({\n        type: z13.literal(\"tool_reference\"),\n        toolName: z13.string()\n      })\n    )\n  )\n);\nvar toolSearchRegex_20251119InputSchema = lazySchema12(\n  () => zodSchema12(\n    z13.object({\n      /**\n       * A regex pattern to search for tools.\n       * Uses Python re.search() syntax. Maximum 200 characters.\n       *\n       * Examples:\n       * - \"weather\" - matches tool names/descriptions containing \"weather\"\n       * - \"get_.*_data\" - matches tools like get_user_data, get_weather_data\n       * - \"database.*query|query.*database\" - OR patterns for flexibility\n       * - \"(?i)slack\" - case-insensitive search\n       */\n      pattern: z13.string(),\n      /**\n       * Maximum number of tools to return. Optional.\n       */\n      limit: z13.number().optional()\n    })\n  )\n);\nvar factory10 = createProviderToolFactoryWithOutputSchema9({\n  id: \"anthropic.tool_search_regex_20251119\",\n  inputSchema: toolSearchRegex_20251119InputSchema,\n  outputSchema: toolSearchRegex_20251119OutputSchema,\n  supportsDeferredResults: true\n});\nvar toolSearchRegex_20251119 = (args = {}) => {\n  return factory10(args);\n};\n\n// src/convert-to-anthropic-messages-prompt.ts\nfunction convertToString(data) {\n  if (typeof data === \"string\") {\n    return new TextDecoder().decode(convertBase64ToUint8Array(data));\n  }\n  if (data instanceof Uint8Array) {\n    return new TextDecoder().decode(data);\n  }\n  if (data instanceof URL) {\n    throw new UnsupportedFunctionalityError2({\n      functionality: \"URL-based text documents are not supported for citations\"\n    });\n  }\n  throw new UnsupportedFunctionalityError2({\n    functionality: `unsupported data type for text documents: ${typeof data}`\n  });\n}\nfunction isUrlData(data) {\n  return data instanceof URL || isUrlString(data);\n}\nfunction isUrlString(data) {\n  return typeof data === \"string\" && /^https?:\\/\\//i.test(data);\n}\nfunction getUrlString(data) {\n  return data instanceof URL ? data.toString() : data;\n}\nasync function extractErrorValue(value) {\n  if (typeof value === \"string\") {\n    const result = await safeParseJSON({ text: value });\n    if (result.success && typeof result.value === \"object\" && result.value !== null) {\n      return result.value;\n    }\n    return {\n      errorCode: \"unavailable\"\n    };\n  }\n  if (typeof value === \"object\" && value !== null) {\n    return value;\n  }\n  return {};\n}\nasync function convertToAnthropicMessagesPrompt({\n  prompt,\n  sendReasoning,\n  warnings,\n  cacheControlValidator,\n  toolNameMapping\n}) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;\n  const betas = /* @__PURE__ */ new Set();\n  const blocks = groupIntoBlocks(prompt);\n  const validator = cacheControlValidator || new CacheControlValidator();\n  let system = void 0;\n  const messages = [];\n  async function shouldEnableCitations(providerMetadata) {\n    var _a2, _b2;\n    const anthropicOptions = await parseProviderOptions({\n      provider: \"anthropic\",\n      providerOptions: providerMetadata,\n      schema: anthropicFilePartProviderOptions\n    });\n    return (_b2 = (_a2 = anthropicOptions == null ? void 0 : anthropicOptions.citations) == null ? void 0 : _a2.enabled) != null ? _b2 : false;\n  }\n  async function getDocumentMetadata(providerMetadata) {\n    const anthropicOptions = await parseProviderOptions({\n      provider: \"anthropic\",\n      providerOptions: providerMetadata,\n      schema: anthropicFilePartProviderOptions\n    });\n    return {\n      title: anthropicOptions == null ? void 0 : anthropicOptions.title,\n      context: anthropicOptions == null ? void 0 : anthropicOptions.context\n    };\n  }\n  for (let i = 0; i < blocks.length; i++) {\n    const block = blocks[i];\n    const isLastBlock = i === blocks.length - 1;\n    const type = block.type;\n    switch (type) {\n      case \"system\": {\n        const content = [];\n        let toolChangeCount = 0;\n        for (const { content: text, providerOptions } of block.messages) {\n          const systemMessageOptions = await parseProviderOptions({\n            provider: \"anthropic\",\n            providerOptions,\n            schema: anthropicSystemMessageProviderOptions\n          });\n          const toolChanges = (_a = systemMessageOptions == null ? void 0 : systemMessageOptions.toolChanges) != null ? _a : [];\n          if (text !== \"\" || toolChanges.length === 0) {\n            content.push({\n              type: \"text\",\n              text,\n              cache_control: validator.getCacheControl(providerOptions, {\n                type: \"system message\",\n                canCache: true\n              })\n            });\n          }\n          for (const toolChange of toolChanges) {\n            toolChangeCount++;\n            content.push({\n              type: toolChange.type,\n              tool: {\n                type: \"tool_reference\",\n                name: toolNameMapping.toProviderToolName(toolChange.toolName)\n              }\n            });\n          }\n        }\n        if (i === 0 || system == null && toolChangeCount === 0) {\n          if (toolChangeCount > 0) {\n            warnings.push({\n              type: \"other\",\n              message: \"tool changes on the initial system message are not supported by Anthropic. Configure the initial tool set via the tools option instead. The tool changes have been ignored.\"\n            });\n          }\n          system = content.filter(\n            (part) => part.type === \"text\"\n          );\n        } else {\n          messages.push({ role: \"system\", content });\n          betas.add(\"mid-conversation-system-2026-04-07\");\n          if (toolChangeCount > 0) {\n            betas.add(\"mid-conversation-tool-changes-2026-07-01\");\n          }\n        }\n        break;\n      }\n      case \"user\": {\n        const anthropicContent = [];\n        for (const message of block.messages) {\n          const { role, content } = message;\n          switch (role) {\n            case \"user\": {\n              for (let j = 0; j < content.length; j++) {\n                const part = content[j];\n                const isLastPart = j === content.length - 1;\n                const cacheControl = (_b = validator.getCacheControl(part.providerOptions, {\n                  type: \"user message part\",\n                  canCache: true\n                })) != null ? _b : isLastPart ? validator.getCacheControl(message.providerOptions, {\n                  type: \"user message\",\n                  canCache: true\n                }) : void 0;\n                switch (part.type) {\n                  case \"text\": {\n                    anthropicContent.push({\n                      type: \"text\",\n                      text: part.text,\n                      cache_control: cacheControl\n                    });\n                    break;\n                  }\n                  case \"file\": {\n                    if (part.mediaType.startsWith(\"image/\")) {\n                      anthropicContent.push({\n                        type: \"image\",\n                        source: isUrlData(part.data) ? {\n                          type: \"url\",\n                          url: getUrlString(part.data)\n                        } : {\n                          type: \"base64\",\n                          media_type: part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType,\n                          data: convertToBase64(part.data)\n                        },\n                        cache_control: cacheControl\n                      });\n                    } else if (part.mediaType === \"application/pdf\") {\n                      betas.add(\"pdfs-2024-09-25\");\n                      const enableCitations = await shouldEnableCitations(\n                        part.providerOptions\n                      );\n                      const metadata = await getDocumentMetadata(\n                        part.providerOptions\n                      );\n                      anthropicContent.push({\n                        type: \"document\",\n                        source: isUrlData(part.data) ? {\n                          type: \"url\",\n                          url: getUrlString(part.data)\n                        } : {\n                          type: \"base64\",\n                          media_type: \"application/pdf\",\n                          data: convertToBase64(part.data)\n                        },\n                        title: (_c = metadata.title) != null ? _c : part.filename,\n                        ...metadata.context && { context: metadata.context },\n                        ...enableCitations && {\n                          citations: { enabled: true }\n                        },\n                        cache_control: cacheControl\n                      });\n                    } else if (part.mediaType === \"text/plain\") {\n                      const enableCitations = await shouldEnableCitations(\n                        part.providerOptions\n                      );\n                      const metadata = await getDocumentMetadata(\n                        part.providerOptions\n                      );\n                      anthropicContent.push({\n                        type: \"document\",\n                        source: isUrlData(part.data) ? {\n                          type: \"url\",\n                          url: getUrlString(part.data)\n                        } : {\n                          type: \"text\",\n                          media_type: \"text/plain\",\n                          data: convertToString(part.data)\n                        },\n                        title: (_d = metadata.title) != null ? _d : part.filename,\n                        ...metadata.context && { context: metadata.context },\n                        ...enableCitations && {\n                          citations: { enabled: true }\n                        },\n                        cache_control: cacheControl\n                      });\n                    } else {\n                      throw new UnsupportedFunctionalityError2({\n                        functionality: `media type: ${part.mediaType}`\n                      });\n                    }\n                    break;\n                  }\n                }\n              }\n              break;\n            }\n            case \"tool\": {\n              for (let i2 = 0; i2 < content.length; i2++) {\n                const part = content[i2];\n                if (part.type === \"tool-approval-response\") {\n                  continue;\n                }\n                const output = part.output;\n                const outputProviderOptions = \"providerOptions\" in output ? output.providerOptions : output.type === \"content\" ? (_e = output.value.find(\n                  (contentPart) => contentPart.providerOptions != null\n                )) == null ? void 0 : _e.providerOptions : void 0;\n                const isLastPart = i2 === content.length - 1;\n                const cacheControl = (_g = (_f = validator.getCacheControl(part.providerOptions, {\n                  type: \"tool result part\",\n                  canCache: true\n                })) != null ? _f : validator.getCacheControl(outputProviderOptions, {\n                  type: \"tool result output\",\n                  canCache: true\n                })) != null ? _g : isLastPart ? validator.getCacheControl(message.providerOptions, {\n                  type: \"tool result message\",\n                  canCache: true\n                }) : void 0;\n                let contentValue;\n                switch (output.type) {\n                  case \"content\":\n                    contentValue = output.value.map((contentPart) => {\n                      var _a2;\n                      switch (contentPart.type) {\n                        case \"text\":\n                          return {\n                            type: \"text\",\n                            text: contentPart.text\n                          };\n                        case \"image-data\": {\n                          return {\n                            type: \"image\",\n                            source: {\n                              type: \"base64\",\n                              media_type: contentPart.mediaType,\n                              data: contentPart.data\n                            }\n                          };\n                        }\n                        case \"image-url\": {\n                          return {\n                            type: \"image\",\n                            source: {\n                              type: \"url\",\n                              url: contentPart.url\n                            }\n                          };\n                        }\n                        case \"file-url\": {\n                          return {\n                            type: \"document\",\n                            source: {\n                              type: \"url\",\n                              url: contentPart.url\n                            }\n                          };\n                        }\n                        case \"file-data\": {\n                          if (contentPart.mediaType === \"application/pdf\") {\n                            betas.add(\"pdfs-2024-09-25\");\n                            return {\n                              type: \"document\",\n                              source: {\n                                type: \"base64\",\n                                media_type: contentPart.mediaType,\n                                data: contentPart.data\n                              }\n                            };\n                          }\n                          warnings.push({\n                            type: \"other\",\n                            message: `unsupported tool content part type: ${contentPart.type} with media type: ${contentPart.mediaType}`\n                          });\n                          return void 0;\n                        }\n                        case \"custom\": {\n                          const anthropicOptions = (_a2 = contentPart.providerOptions) == null ? void 0 : _a2.anthropic;\n                          if ((anthropicOptions == null ? void 0 : anthropicOptions.type) === \"tool-reference\") {\n                            return {\n                              type: \"tool_reference\",\n                              tool_name: anthropicOptions.toolName\n                            };\n                          }\n                          warnings.push({\n                            type: \"other\",\n                            message: `unsupported custom tool content part`\n                          });\n                          return void 0;\n                        }\n                        default: {\n                          warnings.push({\n                            type: \"other\",\n                            message: `unsupported tool content part type: ${contentPart.type}`\n                          });\n                          return void 0;\n                        }\n                      }\n                    }).filter(isNonNullable);\n                    break;\n                  case \"text\":\n                  case \"error-text\":\n                    contentValue = output.value;\n                    break;\n                  case \"execution-denied\":\n                    contentValue = (_h = output.reason) != null ? _h : \"Tool call execution denied.\";\n                    break;\n                  case \"json\":\n                  case \"error-json\":\n                  default:\n                    contentValue = JSON.stringify(output.value);\n                    break;\n                }\n                anthropicContent.push({\n                  type: \"tool_result\",\n                  tool_use_id: part.toolCallId,\n                  content: contentValue,\n                  is_error: output.type === \"error-text\" || output.type === \"error-json\" ? true : void 0,\n                  cache_control: cacheControl\n                });\n              }\n              break;\n            }\n            default: {\n              const _exhaustiveCheck = role;\n              throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n            }\n          }\n        }\n        messages.push({ role: \"user\", content: anthropicContent });\n        break;\n      }\n      case \"assistant\": {\n        const anthropicContent = [];\n        const mcpToolUseIds = /* @__PURE__ */ new Set();\n        for (let j = 0; j < block.messages.length; j++) {\n          const message = block.messages[j];\n          const isLastMessage = j === block.messages.length - 1;\n          const { content } = message;\n          for (let k = 0; k < content.length; k++) {\n            const part = content[k];\n            const isLastContentPart = k === content.length - 1;\n            const cacheControl = (_i = validator.getCacheControl(part.providerOptions, {\n              type: \"assistant message part\",\n              canCache: true\n            })) != null ? _i : isLastContentPart ? validator.getCacheControl(message.providerOptions, {\n              type: \"assistant message\",\n              canCache: true\n            }) : void 0;\n            switch (part.type) {\n              case \"text\": {\n                const textMetadata = (_j = part.providerOptions) == null ? void 0 : _j.anthropic;\n                if ((textMetadata == null ? void 0 : textMetadata.type) === \"compaction\") {\n                  anthropicContent.push({\n                    type: \"compaction\",\n                    content: part.text,\n                    cache_control: cacheControl\n                  });\n                } else {\n                  anthropicContent.push({\n                    type: \"text\",\n                    text: (\n                      // trim the last text part if it's the last message in the block\n                      // because Anthropic does not allow trailing whitespace\n                      // in pre-filled assistant responses\n                      isLastBlock && isLastMessage && isLastContentPart ? part.text.trim() : part.text\n                    ),\n                    ...(textMetadata == null ? void 0 : textMetadata.citations) != null && {\n                      citations: textMetadata.citations\n                    },\n                    cache_control: cacheControl\n                  });\n                }\n                break;\n              }\n              case \"reasoning\": {\n                if (sendReasoning) {\n                  const reasoningMetadata = await parseProviderOptions({\n                    provider: \"anthropic\",\n                    providerOptions: part.providerOptions,\n                    schema: anthropicReasoningMetadataSchema\n                  });\n                  if (reasoningMetadata != null) {\n                    if (reasoningMetadata.signature != null) {\n                      validator.getCacheControl(part.providerOptions, {\n                        type: \"thinking block\",\n                        canCache: false\n                      });\n                      anthropicContent.push({\n                        type: \"thinking\",\n                        thinking: part.text,\n                        signature: reasoningMetadata.signature\n                      });\n                    } else if (reasoningMetadata.redactedData != null) {\n                      validator.getCacheControl(part.providerOptions, {\n                        type: \"redacted thinking block\",\n                        canCache: false\n                      });\n                      anthropicContent.push({\n                        type: \"redacted_thinking\",\n                        data: reasoningMetadata.redactedData\n                      });\n                    } else {\n                      warnings.push({\n                        type: \"other\",\n                        message: \"unsupported reasoning metadata\"\n                      });\n                    }\n                  } else {\n                    warnings.push({\n                      type: \"other\",\n                      message: \"unsupported reasoning metadata\"\n                    });\n                  }\n                } else {\n                  warnings.push({\n                    type: \"other\",\n                    message: \"sending reasoning content is disabled for this model\"\n                  });\n                }\n                break;\n              }\n              case \"tool-call\": {\n                if (part.providerExecuted) {\n                  const providerToolName = toolNameMapping.toProviderToolName(\n                    part.toolName\n                  );\n                  const isMcpToolUse = ((_l = (_k = part.providerOptions) == null ? void 0 : _k.anthropic) == null ? void 0 : _l.type) === \"mcp-tool-use\";\n                  if (isMcpToolUse) {\n                    mcpToolUseIds.add(part.toolCallId);\n                    const serverName = (_n = (_m = part.providerOptions) == null ? void 0 : _m.anthropic) == null ? void 0 : _n.serverName;\n                    if (serverName == null || typeof serverName !== \"string\") {\n                      warnings.push({\n                        type: \"other\",\n                        message: \"mcp tool use server name is required and must be a string\"\n                      });\n                      break;\n                    }\n                    anthropicContent.push({\n                      type: \"mcp_tool_use\",\n                      id: part.toolCallId,\n                      name: part.toolName,\n                      input: part.input,\n                      server_name: serverName,\n                      cache_control: cacheControl\n                    });\n                  } else if (\n                    // code execution 20250825:\n                    providerToolName === \"code_execution\" && part.input != null && typeof part.input === \"object\" && \"type\" in part.input && typeof part.input.type === \"string\" && (part.input.type === \"bash_code_execution\" || part.input.type === \"text_editor_code_execution\")\n                  ) {\n                    anthropicContent.push({\n                      type: \"server_tool_use\",\n                      id: part.toolCallId,\n                      name: part.input.type,\n                      // map back to subtool name\n                      input: part.input,\n                      cache_control: cacheControl\n                    });\n                  } else if (\n                    // code execution 20250825 programmatic tool calling:\n                    // Strip the fake 'programmatic-tool-call' type before sending to Anthropic\n                    providerToolName === \"code_execution\" && part.input != null && typeof part.input === \"object\" && \"type\" in part.input && part.input.type === \"programmatic-tool-call\"\n                  ) {\n                    const { type: _, ...inputWithoutType } = part.input;\n                    anthropicContent.push({\n                      type: \"server_tool_use\",\n                      id: part.toolCallId,\n                      name: \"code_execution\",\n                      input: inputWithoutType,\n                      cache_control: cacheControl\n                    });\n                  } else {\n                    if (providerToolName === \"code_execution\" || // code execution 20250522\n                    providerToolName === \"web_fetch\" || providerToolName === \"web_search\") {\n                      anthropicContent.push({\n                        type: \"server_tool_use\",\n                        id: part.toolCallId,\n                        name: providerToolName,\n                        input: part.input,\n                        cache_control: cacheControl\n                      });\n                    } else if (providerToolName === \"tool_search_tool_regex\" || providerToolName === \"tool_search_tool_bm25\") {\n                      anthropicContent.push({\n                        type: \"server_tool_use\",\n                        id: part.toolCallId,\n                        name: providerToolName,\n                        input: part.input,\n                        cache_control: cacheControl\n                      });\n                    } else if (providerToolName === \"advisor\") {\n                      anthropicContent.push({\n                        type: \"server_tool_use\",\n                        id: part.toolCallId,\n                        name: \"advisor\",\n                        input: {},\n                        cache_control: cacheControl\n                      });\n                    } else {\n                      warnings.push({\n                        type: \"other\",\n                        message: `provider executed tool call for tool ${part.toolName} is not supported`\n                      });\n                    }\n                  }\n                  break;\n                }\n                const callerOptions = (_o = part.providerOptions) == null ? void 0 : _o.anthropic;\n                const caller = (callerOptions == null ? void 0 : callerOptions.caller) ? (callerOptions.caller.type === \"code_execution_20250825\" || callerOptions.caller.type === \"code_execution_20260120\") && callerOptions.caller.toolId ? {\n                  type: callerOptions.caller.type,\n                  tool_id: callerOptions.caller.toolId\n                } : callerOptions.caller.type === \"direct\" ? { type: \"direct\" } : void 0 : void 0;\n                anthropicContent.push({\n                  type: \"tool_use\",\n                  id: part.toolCallId,\n                  name: part.toolName,\n                  input: part.input,\n                  ...caller && { caller },\n                  cache_control: cacheControl\n                });\n                break;\n              }\n              case \"tool-result\": {\n                const providerToolName = toolNameMapping.toProviderToolName(\n                  part.toolName\n                );\n                if (mcpToolUseIds.has(part.toolCallId)) {\n                  const output = part.output;\n                  if (output.type !== \"json\" && output.type !== \"error-json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  anthropicContent.push({\n                    type: \"mcp_tool_result\",\n                    tool_use_id: part.toolCallId,\n                    is_error: output.type === \"error-json\",\n                    content: output.value,\n                    cache_control: cacheControl\n                  });\n                } else if (providerToolName === \"code_execution\") {\n                  const output = part.output;\n                  if (output.type === \"error-text\" || output.type === \"error-json\") {\n                    let errorInfo = {};\n                    try {\n                      if (typeof output.value === \"string\") {\n                        errorInfo = secureJsonParse(output.value);\n                      } else if (typeof output.value === \"object\" && output.value !== null) {\n                        errorInfo = output.value;\n                      }\n                    } catch (e) {\n                    }\n                    if (errorInfo.type === \"code_execution_tool_result_error\") {\n                      anthropicContent.push({\n                        type: \"code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        content: {\n                          type: \"code_execution_tool_result_error\",\n                          error_code: (_p = errorInfo.errorCode) != null ? _p : \"unknown\"\n                        },\n                        cache_control: cacheControl\n                      });\n                    } else {\n                      anthropicContent.push({\n                        type: \"bash_code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        cache_control: cacheControl,\n                        content: {\n                          type: \"bash_code_execution_tool_result_error\",\n                          error_code: (_q = errorInfo.errorCode) != null ? _q : \"unknown\"\n                        }\n                      });\n                    }\n                    break;\n                  }\n                  if (output.type !== \"json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  if (output.value == null || typeof output.value !== \"object\" || !(\"type\" in output.value) || typeof output.value.type !== \"string\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output value is not a valid code execution result for tool ${part.toolName}`\n                    });\n                    break;\n                  }\n                  if (output.value.type === \"code_execution_result\") {\n                    const codeExecutionOutput = await validateTypes2({\n                      value: output.value,\n                      schema: codeExecution_20250522OutputSchema\n                    });\n                    anthropicContent.push({\n                      type: \"code_execution_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: codeExecutionOutput.type,\n                        stdout: codeExecutionOutput.stdout,\n                        stderr: codeExecutionOutput.stderr,\n                        return_code: codeExecutionOutput.return_code,\n                        content: (_r = codeExecutionOutput.content) != null ? _r : []\n                      },\n                      cache_control: cacheControl\n                    });\n                  } else if (output.value.type === \"encrypted_code_execution_result\") {\n                    const codeExecutionOutput = await validateTypes2({\n                      value: output.value,\n                      schema: codeExecution_20260120OutputSchema\n                    });\n                    if (codeExecutionOutput.type === \"encrypted_code_execution_result\") {\n                      anthropicContent.push({\n                        type: \"code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        content: {\n                          type: codeExecutionOutput.type,\n                          encrypted_stdout: codeExecutionOutput.encrypted_stdout,\n                          stderr: codeExecutionOutput.stderr,\n                          return_code: codeExecutionOutput.return_code,\n                          content: (_s = codeExecutionOutput.content) != null ? _s : []\n                        },\n                        cache_control: cacheControl\n                      });\n                    }\n                  } else {\n                    const codeExecutionOutput = await validateTypes2({\n                      value: output.value,\n                      schema: codeExecution_20250825OutputSchema\n                    });\n                    if (codeExecutionOutput.type === \"code_execution_result\") {\n                      anthropicContent.push({\n                        type: \"code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        content: {\n                          type: codeExecutionOutput.type,\n                          stdout: codeExecutionOutput.stdout,\n                          stderr: codeExecutionOutput.stderr,\n                          return_code: codeExecutionOutput.return_code,\n                          content: (_t = codeExecutionOutput.content) != null ? _t : []\n                        },\n                        cache_control: cacheControl\n                      });\n                    } else if (codeExecutionOutput.type === \"bash_code_execution_result\" || codeExecutionOutput.type === \"bash_code_execution_tool_result_error\") {\n                      anthropicContent.push({\n                        type: \"bash_code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        cache_control: cacheControl,\n                        content: codeExecutionOutput\n                      });\n                    } else {\n                      anthropicContent.push({\n                        type: \"text_editor_code_execution_tool_result\",\n                        tool_use_id: part.toolCallId,\n                        cache_control: cacheControl,\n                        content: codeExecutionOutput\n                      });\n                    }\n                  }\n                  break;\n                }\n                if (providerToolName === \"web_fetch\") {\n                  const output = part.output;\n                  if (output.type === \"error-json\") {\n                    anthropicContent.push({\n                      type: \"web_fetch_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: \"web_fetch_tool_result_error\",\n                        error_code: (_u = (await extractErrorValue(output.value)).errorCode) != null ? _u : \"unavailable\"\n                      },\n                      cache_control: cacheControl\n                    });\n                    break;\n                  }\n                  if (output.type !== \"json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  const webFetchOutput = await validateTypes2({\n                    value: output.value,\n                    schema: webFetch_20250910OutputSchema\n                  });\n                  anthropicContent.push({\n                    type: \"web_fetch_tool_result\",\n                    tool_use_id: part.toolCallId,\n                    content: {\n                      type: \"web_fetch_result\",\n                      url: webFetchOutput.url,\n                      retrieved_at: webFetchOutput.retrievedAt,\n                      content: {\n                        type: \"document\",\n                        title: webFetchOutput.content.title,\n                        citations: webFetchOutput.content.citations,\n                        source: {\n                          type: webFetchOutput.content.source.type,\n                          media_type: webFetchOutput.content.source.mediaType,\n                          data: webFetchOutput.content.source.data\n                        }\n                      }\n                    },\n                    cache_control: cacheControl\n                  });\n                  break;\n                }\n                if (providerToolName === \"web_search\") {\n                  const output = part.output;\n                  if (output.type === \"error-json\") {\n                    anthropicContent.push({\n                      type: \"web_search_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: \"web_search_tool_result_error\",\n                        error_code: (_v = (await extractErrorValue(output.value)).errorCode) != null ? _v : \"unavailable\"\n                      },\n                      cache_control: cacheControl\n                    });\n                    break;\n                  }\n                  if (output.type !== \"json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  const webSearchOutput = await validateTypes2({\n                    value: output.value,\n                    schema: webSearch_20250305OutputSchema\n                  });\n                  anthropicContent.push({\n                    type: \"web_search_tool_result\",\n                    tool_use_id: part.toolCallId,\n                    content: webSearchOutput.map((result) => ({\n                      url: result.url,\n                      title: result.title,\n                      page_age: result.pageAge,\n                      encrypted_content: result.encryptedContent,\n                      type: result.type\n                    })),\n                    cache_control: cacheControl\n                  });\n                  break;\n                }\n                if (providerToolName === \"tool_search_tool_regex\" || providerToolName === \"tool_search_tool_bm25\") {\n                  const output = part.output;\n                  if (output.type !== \"json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  const toolSearchOutput = await validateTypes2({\n                    value: output.value,\n                    schema: toolSearchRegex_20251119OutputSchema\n                  });\n                  const toolReferences = toolSearchOutput.map((ref) => ({\n                    type: \"tool_reference\",\n                    tool_name: ref.toolName\n                  }));\n                  anthropicContent.push({\n                    type: \"tool_search_tool_result\",\n                    tool_use_id: part.toolCallId,\n                    content: {\n                      type: \"tool_search_tool_search_result\",\n                      tool_references: toolReferences\n                    },\n                    cache_control: cacheControl\n                  });\n                  break;\n                }\n                if (providerToolName === \"advisor\") {\n                  const output = part.output;\n                  if (output.type !== \"json\" && output.type !== \"error-json\") {\n                    warnings.push({\n                      type: \"other\",\n                      message: `provider executed tool result output type ${output.type} for tool ${part.toolName} is not supported`\n                    });\n                    break;\n                  }\n                  const advisorOutput = await validateTypes2({\n                    value: output.value,\n                    schema: advisor_20260301OutputSchema\n                  });\n                  if (advisorOutput.type === \"advisor_result\") {\n                    anthropicContent.push({\n                      type: \"advisor_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: \"advisor_result\",\n                        text: advisorOutput.text\n                      },\n                      cache_control: cacheControl\n                    });\n                  } else if (advisorOutput.type === \"advisor_redacted_result\") {\n                    anthropicContent.push({\n                      type: \"advisor_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: \"advisor_redacted_result\",\n                        encrypted_content: advisorOutput.encryptedContent\n                      },\n                      cache_control: cacheControl\n                    });\n                  } else {\n                    anthropicContent.push({\n                      type: \"advisor_tool_result\",\n                      tool_use_id: part.toolCallId,\n                      content: {\n                        type: \"advisor_tool_result_error\",\n                        error_code: advisorOutput.errorCode\n                      },\n                      cache_control: cacheControl\n                    });\n                  }\n                  break;\n                }\n                warnings.push({\n                  type: \"other\",\n                  message: `provider executed tool result for tool ${part.toolName} is not supported`\n                });\n                break;\n              }\n            }\n          }\n        }\n        messages.push({\n          role: \"assistant\",\n          content: moveToolUseBlocksToEnd(anthropicContent)\n        });\n        break;\n      }\n      default: {\n        const _exhaustiveCheck = type;\n        throw new Error(`content type: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  return {\n    prompt: { system, messages },\n    betas\n  };\n}\nfunction groupIntoBlocks(prompt) {\n  const blocks = [];\n  let currentBlock = void 0;\n  for (const message of prompt) {\n    const { role } = message;\n    switch (role) {\n      case \"system\": {\n        if ((currentBlock == null ? void 0 : currentBlock.type) !== \"system\") {\n          currentBlock = { type: \"system\", messages: [] };\n          blocks.push(currentBlock);\n        }\n        currentBlock.messages.push(message);\n        break;\n      }\n      case \"assistant\": {\n        if ((currentBlock == null ? void 0 : currentBlock.type) !== \"assistant\") {\n          currentBlock = { type: \"assistant\", messages: [] };\n          blocks.push(currentBlock);\n        }\n        currentBlock.messages.push(message);\n        break;\n      }\n      case \"user\": {\n        if ((currentBlock == null ? void 0 : currentBlock.type) !== \"user\") {\n          currentBlock = { type: \"user\", messages: [] };\n          blocks.push(currentBlock);\n        }\n        currentBlock.messages.push(message);\n        break;\n      }\n      case \"tool\": {\n        if ((currentBlock == null ? void 0 : currentBlock.type) !== \"user\") {\n          currentBlock = { type: \"user\", messages: [] };\n          blocks.push(currentBlock);\n        }\n        currentBlock.messages.push(message);\n        break;\n      }\n      default: {\n        const _exhaustiveCheck = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n  return blocks;\n}\nfunction moveToolUseBlocksToEnd(content) {\n  const result = [];\n  let segment = [];\n  function flushSegment() {\n    result.push(\n      ...segment.filter((part) => part.type !== \"tool_use\"),\n      ...segment.filter((part) => part.type === \"tool_use\")\n    );\n    segment = [];\n  }\n  for (const part of content) {\n    if (part.type === \"thinking\" || part.type === \"redacted_thinking\") {\n      flushSegment();\n      result.push(part);\n    } else {\n      segment.push(part);\n    }\n  }\n  flushSegment();\n  return result;\n}\n\n// src/map-anthropic-stop-reason.ts\nfunction mapAnthropicStopReason({\n  finishReason,\n  isJsonResponseFromTool\n}) {\n  switch (finishReason) {\n    case \"pause_turn\":\n    case \"end_turn\":\n    case \"stop_sequence\":\n      return \"stop\";\n    case \"refusal\":\n      return \"content-filter\";\n    case \"tool_use\":\n      return isJsonResponseFromTool ? \"stop\" : \"tool-calls\";\n    case \"max_tokens\":\n    case \"model_context_window_exceeded\":\n      return \"length\";\n    case \"compaction\":\n      return \"other\";\n    default:\n      return \"other\";\n  }\n}\n\n// src/sanitize-json-schema.ts\nvar SUPPORTED_STRING_FORMATS = /* @__PURE__ */ new Set([\n  \"date-time\",\n  \"time\",\n  \"date\",\n  \"duration\",\n  \"email\",\n  \"hostname\",\n  \"uri\",\n  \"ipv4\",\n  \"ipv6\",\n  \"uuid\"\n]);\nvar DESCRIPTION_CONSTRAINT_KEYS = [\n  \"minimum\",\n  \"maximum\",\n  \"exclusiveMinimum\",\n  \"exclusiveMaximum\",\n  \"multipleOf\",\n  \"minLength\",\n  \"maxLength\",\n  \"pattern\",\n  \"minItems\",\n  \"maxItems\",\n  \"uniqueItems\",\n  \"minProperties\",\n  \"maxProperties\",\n  \"not\"\n];\nfunction sanitizeJsonSchema(schema) {\n  return sanitizeSchema(schema);\n}\nfunction sanitizeDefinition(definition) {\n  if (typeof definition === \"boolean\" || !isPlainObject(definition)) {\n    return definition;\n  }\n  return sanitizeSchema(definition);\n}\nfunction sanitizeSchema(schema) {\n  const result = {};\n  const schemaWithDefs = schema;\n  if (schema.$ref != null) {\n    return { $ref: schema.$ref };\n  }\n  if (schema.$schema != null) {\n    result.$schema = schema.$schema;\n  }\n  if (schema.$id != null) {\n    result.$id = schema.$id;\n  }\n  if (schema.title != null) {\n    result.title = schema.title;\n  }\n  if (schema.description != null) {\n    result.description = schema.description;\n  }\n  if (schema.default !== void 0) {\n    result.default = schema.default;\n  }\n  if (schema.const !== void 0) {\n    result.const = schema.const;\n  }\n  if (schema.enum != null) {\n    result.enum = schema.enum;\n  }\n  if (schema.type != null) {\n    result.type = schema.type;\n  }\n  if (schema.anyOf != null) {\n    result.anyOf = schema.anyOf.map(sanitizeDefinition);\n  } else if (schema.oneOf != null) {\n    result.anyOf = schema.oneOf.map(sanitizeDefinition);\n  }\n  if (schema.allOf != null) {\n    result.allOf = schema.allOf.map(sanitizeDefinition);\n  }\n  if (schema.definitions != null) {\n    result.definitions = Object.fromEntries(\n      Object.entries(schema.definitions).map(([name, definition]) => [\n        name,\n        sanitizeDefinition(definition)\n      ])\n    );\n  }\n  if (schemaWithDefs.$defs != null) {\n    const resultWithDefs = result;\n    resultWithDefs.$defs = Object.fromEntries(\n      Object.entries(schemaWithDefs.$defs).map(([name, definition]) => [\n        name,\n        sanitizeDefinition(definition)\n      ])\n    );\n  }\n  if (schema.type === \"object\" || schema.properties != null) {\n    if (schema.properties != null) {\n      result.properties = Object.fromEntries(\n        Object.entries(schema.properties).map(([name, definition]) => [\n          name,\n          sanitizeDefinition(definition)\n        ])\n      );\n    }\n    result.additionalProperties = false;\n    if (schema.required != null) {\n      result.required = schema.required;\n    }\n  }\n  if (schema.items != null) {\n    result.items = Array.isArray(schema.items) ? schema.items.map(sanitizeDefinition) : sanitizeDefinition(schema.items);\n  }\n  if (typeof schema.format === \"string\" && SUPPORTED_STRING_FORMATS.has(schema.format)) {\n    result.format = schema.format;\n  }\n  const constraintDescription = getConstraintDescription(schema);\n  if (constraintDescription != null) {\n    result.description = result.description == null ? constraintDescription : `${result.description}\n${constraintDescription}`;\n  }\n  return result;\n}\nfunction getConstraintDescription(schema) {\n  const descriptions = DESCRIPTION_CONSTRAINT_KEYS.flatMap((key) => {\n    const value = schema[key];\n    if (value == null || value === false) {\n      return [];\n    }\n    return `${formatConstraintName(key)}: ${formatConstraintValue(value)}`;\n  });\n  if (typeof schema.format === \"string\" && !SUPPORTED_STRING_FORMATS.has(schema.format)) {\n    descriptions.push(`format: ${schema.format}`);\n  }\n  return descriptions.length === 0 ? void 0 : `${descriptions.join(\"; \")}.`;\n}\nfunction formatConstraintName(key) {\n  return key.replace(/[A-Z]/g, (match) => ` ${match.toLowerCase()}`);\n}\nfunction formatConstraintValue(value) {\n  if (typeof value === \"string\") {\n    return value;\n  }\n  return JSON.stringify(value);\n}\nfunction isPlainObject(value) {\n  return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n// src/anthropic-messages-language-model.ts\nfunction createCitationSource(citation, citationDocuments, generateId3) {\n  var _a;\n  if (citation.type === \"web_search_result_location\") {\n    return {\n      type: \"source\",\n      sourceType: \"url\",\n      id: generateId3(),\n      url: citation.url,\n      title: citation.title,\n      providerMetadata: {\n        anthropic: {\n          citedText: citation.cited_text,\n          encryptedIndex: citation.encrypted_index\n        }\n      }\n    };\n  }\n  if (citation.type !== \"page_location\" && citation.type !== \"char_location\") {\n    return;\n  }\n  const documentInfo = citationDocuments[citation.document_index];\n  if (!documentInfo) {\n    return;\n  }\n  return {\n    type: \"source\",\n    sourceType: \"document\",\n    id: generateId3(),\n    mediaType: documentInfo.mediaType,\n    title: (_a = citation.document_title) != null ? _a : documentInfo.title,\n    filename: documentInfo.filename,\n    providerMetadata: {\n      anthropic: citation.type === \"page_location\" ? {\n        citedText: citation.cited_text,\n        startPageNumber: citation.start_page_number,\n        endPageNumber: citation.end_page_number\n      } : {\n        citedText: citation.cited_text,\n        startCharIndex: citation.start_char_index,\n        endCharIndex: citation.end_char_index\n      }\n    }\n  };\n}\nvar AnthropicMessagesLanguageModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    var _a;\n    this.modelId = modelId;\n    this.config = config;\n    this.generateId = (_a = config.generateId) != null ? _a : generateId;\n  }\n  supportsUrl(url) {\n    return url.protocol === \"https:\";\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  /**\n   * Extracts the dynamic provider name from the config.provider string.\n   * e.g., 'my-custom-anthropic.messages' -> 'my-custom-anthropic'\n   */\n  get providerOptionsName() {\n    const provider = this.config.provider;\n    const dotIndex = provider.indexOf(\".\");\n    return dotIndex === -1 ? provider : provider.substring(0, dotIndex);\n  }\n  get supportedUrls() {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n  }\n  async getArgs({\n    userSuppliedBetas,\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions,\n    stream\n  }) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n    const warnings = [];\n    if (frequencyPenalty != null) {\n      warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n    }\n    if (presencePenalty != null) {\n      warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n    }\n    if (seed != null) {\n      warnings.push({ type: \"unsupported\", feature: \"seed\" });\n    }\n    if (temperature != null && temperature > 1) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"temperature\",\n        details: `${temperature} exceeds anthropic maximum of 1.0. clamped to 1.0`\n      });\n      temperature = 1;\n    } else if (temperature != null && temperature < 0) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"temperature\",\n        details: `${temperature} is below anthropic minimum of 0. clamped to 0`\n      });\n      temperature = 0;\n    }\n    if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\") {\n      if (responseFormat.schema == null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"responseFormat\",\n          details: \"JSON response format requires a schema. The response format is ignored.\"\n        });\n      }\n    }\n    const providerOptionsName = this.providerOptionsName;\n    const canonicalOptions = await parseProviderOptions2({\n      provider: \"anthropic\",\n      providerOptions,\n      schema: anthropicLanguageModelOptions\n    });\n    const customProviderOptions = providerOptionsName !== \"anthropic\" ? await parseProviderOptions2({\n      provider: providerOptionsName,\n      providerOptions,\n      schema: anthropicLanguageModelOptions\n    }) : null;\n    const usedCustomProviderKey = customProviderOptions != null;\n    const anthropicOptions = Object.assign(\n      {},\n      canonicalOptions != null ? canonicalOptions : {},\n      customProviderOptions != null ? customProviderOptions : {}\n    );\n    const {\n      maxOutputTokens: maxOutputTokensForModel,\n      supportsStructuredOutput: modelSupportsStructuredOutput,\n      rejectsSamplingParameters,\n      rejectsThinkingDisabledAboveHighEffort,\n      isKnownModel\n    } = getModelCapabilities(this.modelId);\n    if (!isKnownModel && maxOutputTokens == null) {\n      warnings.push({\n        type: \"compatibility\",\n        feature: \"maxOutputTokens\",\n        details: `The model \"${this.modelId}\" is unknown. The max output tokens have been limited to ${maxOutputTokensForModel}. Set maxOutputTokens explicitly to override this limit.`\n      });\n    }\n    if (rejectsSamplingParameters) {\n      if (temperature != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"temperature\",\n          details: `temperature is not supported by ${this.modelId} and will be ignored`\n        });\n        temperature = void 0;\n      }\n      if (topK != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"topK\",\n          details: `topK is not supported by ${this.modelId} and will be ignored`\n        });\n        topK = void 0;\n      }\n      if (topP != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"topP\",\n          details: `topP is not supported by ${this.modelId} and will be ignored`\n        });\n        topP = void 0;\n      }\n    }\n    const isAnthropicModel = isKnownModel || this.modelId.includes(\"claude-\");\n    const supportsStructuredOutput = ((_a = this.config.supportsNativeStructuredOutput) != null ? _a : true) && modelSupportsStructuredOutput;\n    const supportsStrictTools = ((_b = this.config.supportsStrictTools) != null ? _b : true) && modelSupportsStructuredOutput;\n    const structureOutputMode = (_c = anthropicOptions == null ? void 0 : anthropicOptions.structuredOutputMode) != null ? _c : \"auto\";\n    const useStructuredOutput = structureOutputMode === \"outputFormat\" || structureOutputMode === \"auto\" && supportsStructuredOutput;\n    const jsonResponseTool = (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !useStructuredOutput ? {\n      type: \"function\",\n      name: \"json\",\n      description: \"Respond with a JSON object.\",\n      inputSchema: responseFormat.schema\n    } : void 0;\n    if (jsonResponseTool != null && (anthropicOptions == null ? void 0 : anthropicOptions.disableParallelToolUse) === false) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"providerOptions.anthropic.disableParallelToolUse\",\n        details: \"`disableParallelToolUse: false` is ignored when using the JSON response tool. Parallel tool use is disabled to ensure a single coherent JSON tool call.\"\n      });\n    }\n    const contextManagement = anthropicOptions == null ? void 0 : anthropicOptions.contextManagement;\n    const cacheControlValidator = new CacheControlValidator();\n    const toolNameMapping = createToolNameMapping({\n      tools,\n      providerToolNames: {\n        \"anthropic.code_execution_20250522\": \"code_execution\",\n        \"anthropic.code_execution_20250825\": \"code_execution\",\n        \"anthropic.code_execution_20260120\": \"code_execution\",\n        \"anthropic.computer_20241022\": \"computer\",\n        \"anthropic.computer_20250124\": \"computer\",\n        \"anthropic.text_editor_20241022\": \"str_replace_editor\",\n        \"anthropic.text_editor_20250124\": \"str_replace_editor\",\n        \"anthropic.text_editor_20250429\": \"str_replace_based_edit_tool\",\n        \"anthropic.text_editor_20250728\": \"str_replace_based_edit_tool\",\n        \"anthropic.bash_20241022\": \"bash\",\n        \"anthropic.bash_20250124\": \"bash\",\n        \"anthropic.memory_20250818\": \"memory\",\n        \"anthropic.web_search_20250305\": \"web_search\",\n        \"anthropic.web_search_20260209\": \"web_search\",\n        \"anthropic.web_fetch_20250910\": \"web_fetch\",\n        \"anthropic.web_fetch_20260209\": \"web_fetch\",\n        \"anthropic.tool_search_regex_20251119\": \"tool_search_tool_regex\",\n        \"anthropic.tool_search_bm25_20251119\": \"tool_search_tool_bm25\",\n        \"anthropic.advisor_20260301\": \"advisor\"\n      }\n    });\n    const { prompt: messagesPrompt, betas } = await convertToAnthropicMessagesPrompt({\n      prompt,\n      sendReasoning: (_d = anthropicOptions == null ? void 0 : anthropicOptions.sendReasoning) != null ? _d : true,\n      warnings,\n      cacheControlValidator,\n      toolNameMapping\n    });\n    if (rejectsThinkingDisabledAboveHighEffort && ((_e = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _e.type) === \"disabled\" && (anthropicOptions.effort === \"xhigh\" || anthropicOptions.effort === \"max\")) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"providerOptions.anthropic.effort\",\n        details: `effort '${anthropicOptions.effort}' is not supported by ${this.modelId} when thinking is disabled. The effort has been lowered to 'high'.`\n      });\n      anthropicOptions.effort = \"high\";\n    }\n    const thinkingType = (_f = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _f.type;\n    const isThinking = thinkingType === \"enabled\" || thinkingType === \"adaptive\";\n    const sendThinking = isThinking || thinkingType === \"disabled\";\n    let thinkingBudget = thinkingType === \"enabled\" ? (_g = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _g.budgetTokens : void 0;\n    const thinkingDisplay = thinkingType === \"adaptive\" ? (_h = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _h.display : void 0;\n    const maxTokens = maxOutputTokens != null ? maxOutputTokens : maxOutputTokensForModel;\n    const baseArgs = {\n      // model id:\n      model: this.modelId,\n      // standardized settings:\n      max_tokens: maxTokens,\n      temperature,\n      top_k: topK,\n      top_p: topP,\n      stop_sequences: stopSequences,\n      // provider specific settings:\n      ...sendThinking && {\n        thinking: {\n          type: thinkingType,\n          ...thinkingBudget != null && { budget_tokens: thinkingBudget },\n          ...thinkingDisplay != null && { display: thinkingDisplay }\n        }\n      },\n      ...((anthropicOptions == null ? void 0 : anthropicOptions.effort) || (anthropicOptions == null ? void 0 : anthropicOptions.taskBudget) || useStructuredOutput && (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null) && {\n        output_config: {\n          ...(anthropicOptions == null ? void 0 : anthropicOptions.effort) && {\n            effort: anthropicOptions.effort\n          },\n          ...(anthropicOptions == null ? void 0 : anthropicOptions.taskBudget) && {\n            task_budget: {\n              type: anthropicOptions.taskBudget.type,\n              total: anthropicOptions.taskBudget.total,\n              ...anthropicOptions.taskBudget.remaining != null && {\n                remaining: anthropicOptions.taskBudget.remaining\n              }\n            }\n          },\n          ...useStructuredOutput && (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && {\n            format: {\n              type: \"json_schema\",\n              schema: sanitizeJsonSchema(responseFormat.schema)\n            }\n          }\n        }\n      },\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.speed) && {\n        speed: anthropicOptions.speed\n      },\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.inferenceGeo) && {\n        inference_geo: anthropicOptions.inferenceGeo\n      },\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.fallbacks) != null && (anthropicOptions.fallbacks === \"default\" || anthropicOptions.fallbacks.length > 0) && {\n        fallbacks: anthropicOptions.fallbacks\n      },\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.cacheControl) && {\n        cache_control: anthropicOptions.cacheControl\n      },\n      ...((_i = anthropicOptions == null ? void 0 : anthropicOptions.metadata) == null ? void 0 : _i.userId) != null && {\n        metadata: { user_id: anthropicOptions.metadata.userId }\n      },\n      // mcp servers:\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.mcpServers) && anthropicOptions.mcpServers.length > 0 && {\n        mcp_servers: anthropicOptions.mcpServers.map((server) => ({\n          type: server.type,\n          name: server.name,\n          url: server.url,\n          authorization_token: server.authorizationToken,\n          tool_configuration: server.toolConfiguration ? {\n            allowed_tools: server.toolConfiguration.allowedTools,\n            enabled: server.toolConfiguration.enabled\n          } : void 0\n        }))\n      },\n      // container: For programmatic tool calling (just an ID string) or agent skills (object with id and skills)\n      ...(anthropicOptions == null ? void 0 : anthropicOptions.container) && {\n        container: anthropicOptions.container.skills && anthropicOptions.container.skills.length > 0 ? (\n          // Object format when skills are provided (agent skills feature)\n          {\n            id: anthropicOptions.container.id,\n            skills: anthropicOptions.container.skills.map((skill) => ({\n              type: skill.type,\n              skill_id: skill.skillId,\n              version: skill.version\n            }))\n          }\n        ) : (\n          // String format for container ID only (programmatic tool calling)\n          anthropicOptions.container.id\n        )\n      },\n      // prompt:\n      system: messagesPrompt.system,\n      messages: messagesPrompt.messages,\n      ...contextManagement && {\n        context_management: {\n          edits: contextManagement.edits.map((edit) => {\n            const strategy = edit.type;\n            switch (strategy) {\n              case \"clear_tool_uses_20250919\":\n                return {\n                  type: edit.type,\n                  ...edit.trigger !== void 0 && {\n                    trigger: edit.trigger\n                  },\n                  ...edit.keep !== void 0 && { keep: edit.keep },\n                  ...edit.clearAtLeast !== void 0 && {\n                    clear_at_least: edit.clearAtLeast\n                  },\n                  ...edit.clearToolInputs !== void 0 && {\n                    clear_tool_inputs: edit.clearToolInputs\n                  },\n                  ...edit.excludeTools !== void 0 && {\n                    exclude_tools: edit.excludeTools\n                  }\n                };\n              case \"clear_thinking_20251015\":\n                return {\n                  type: edit.type,\n                  ...edit.keep !== void 0 && { keep: edit.keep }\n                };\n              case \"compact_20260112\":\n                return {\n                  type: edit.type,\n                  ...edit.trigger !== void 0 && {\n                    trigger: edit.trigger\n                  },\n                  ...edit.pauseAfterCompaction !== void 0 && {\n                    pause_after_compaction: edit.pauseAfterCompaction\n                  },\n                  ...edit.instructions !== void 0 && {\n                    instructions: edit.instructions\n                  }\n                };\n              default:\n                warnings.push({\n                  type: \"other\",\n                  message: `Unknown context management strategy: ${strategy}`\n                });\n                return void 0;\n            }\n          }).filter((edit) => edit !== void 0)\n        }\n      }\n    };\n    if (isThinking) {\n      if (thinkingType === \"enabled\" && thinkingBudget == null) {\n        warnings.push({\n          type: \"compatibility\",\n          feature: \"extended thinking\",\n          details: \"thinking budget is required when thinking is enabled. using default budget of 1024 tokens.\"\n        });\n        baseArgs.thinking = {\n          type: \"enabled\",\n          budget_tokens: 1024\n        };\n        thinkingBudget = 1024;\n      }\n      if (baseArgs.temperature != null) {\n        baseArgs.temperature = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"temperature\",\n          details: \"temperature is not supported when thinking is enabled\"\n        });\n      }\n      if (topK != null) {\n        baseArgs.top_k = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"topK\",\n          details: \"topK is not supported when thinking is enabled\"\n        });\n      }\n      if (topP != null) {\n        baseArgs.top_p = void 0;\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"topP\",\n          details: \"topP is not supported when thinking is enabled\"\n        });\n      }\n      baseArgs.max_tokens = maxTokens + (thinkingBudget != null ? thinkingBudget : 0);\n    } else {\n      if (isAnthropicModel && topP != null && temperature != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"topP\",\n          details: `topP is not supported when temperature is set. topP is ignored.`\n        });\n        baseArgs.top_p = void 0;\n      }\n    }\n    if (isKnownModel && baseArgs.max_tokens > maxOutputTokensForModel) {\n      if (maxOutputTokens != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"maxOutputTokens\",\n          details: `${baseArgs.max_tokens} (maxOutputTokens + thinkingBudget) is greater than ${this.modelId} ${maxOutputTokensForModel} max output tokens. The max output tokens have been limited to ${maxOutputTokensForModel}.`\n        });\n      }\n      baseArgs.max_tokens = maxOutputTokensForModel;\n    }\n    if ((anthropicOptions == null ? void 0 : anthropicOptions.mcpServers) && anthropicOptions.mcpServers.length > 0) {\n      betas.add(\"mcp-client-2025-04-04\");\n    }\n    if (contextManagement) {\n      betas.add(\"context-management-2025-06-27\");\n      if (contextManagement.edits.some((e) => e.type === \"compact_20260112\")) {\n        betas.add(\"compact-2026-01-12\");\n      }\n    }\n    if ((anthropicOptions == null ? void 0 : anthropicOptions.container) && anthropicOptions.container.skills && anthropicOptions.container.skills.length > 0) {\n      betas.add(\"code-execution-2025-08-25\");\n      betas.add(\"skills-2025-10-02\");\n      betas.add(\"files-api-2025-04-14\");\n      if (!(tools == null ? void 0 : tools.some(\n        (tool) => tool.type === \"provider\" && (tool.id === \"anthropic.code_execution_20250825\" || tool.id === \"anthropic.code_execution_20260120\")\n      ))) {\n        warnings.push({\n          type: \"other\",\n          message: \"code execution tool is required when using skills\"\n        });\n      }\n    }\n    if (anthropicOptions == null ? void 0 : anthropicOptions.taskBudget) {\n      betas.add(\"task-budgets-2026-03-13\");\n    }\n    if ((anthropicOptions == null ? void 0 : anthropicOptions.speed) === \"fast\") {\n      betas.add(\"fast-mode-2026-02-01\");\n    }\n    if ((anthropicOptions == null ? void 0 : anthropicOptions.fallbacks) === \"default\") {\n      betas.add(\"server-side-fallback-2026-07-01\");\n    } else if ((anthropicOptions == null ? void 0 : anthropicOptions.fallbacks) && anthropicOptions.fallbacks.length > 0) {\n      betas.add(\"server-side-fallback-2026-06-01\");\n    }\n    const defaultEagerInputStreaming = stream && ((_j = anthropicOptions == null ? void 0 : anthropicOptions.toolStreaming) != null ? _j : true);\n    const {\n      tools: anthropicTools2,\n      toolChoice: anthropicToolChoice,\n      toolWarnings,\n      betas: toolsBetas\n    } = await prepareTools(\n      jsonResponseTool != null ? {\n        tools: [...tools != null ? tools : [], jsonResponseTool],\n        toolChoice: { type: \"required\" },\n        disableParallelToolUse: true,\n        cacheControlValidator,\n        supportsStructuredOutput: false,\n        supportsStrictTools,\n        defaultEagerInputStreaming\n      } : {\n        tools: tools != null ? tools : [],\n        toolChoice,\n        disableParallelToolUse: anthropicOptions == null ? void 0 : anthropicOptions.disableParallelToolUse,\n        cacheControlValidator,\n        supportsStructuredOutput,\n        supportsStrictTools,\n        defaultEagerInputStreaming\n      }\n    );\n    const cacheWarnings = cacheControlValidator.getWarnings();\n    return {\n      args: {\n        ...baseArgs,\n        tools: anthropicTools2,\n        tool_choice: anthropicToolChoice,\n        stream: stream === true ? true : void 0\n        // do not send when not streaming\n      },\n      warnings: [...warnings, ...toolWarnings, ...cacheWarnings],\n      betas: /* @__PURE__ */ new Set([\n        ...betas,\n        ...toolsBetas,\n        ...userSuppliedBetas,\n        ...(_k = anthropicOptions == null ? void 0 : anthropicOptions.anthropicBeta) != null ? _k : []\n      ]),\n      usesJsonResponseTool: jsonResponseTool != null,\n      toolNameMapping,\n      providerOptionsName,\n      usedCustomProviderKey\n    };\n  }\n  async getHeaders({\n    betas,\n    headers\n  }) {\n    return combineHeaders(\n      await resolve(this.config.headers),\n      headers,\n      betas.size > 0 ? { \"anthropic-beta\": Array.from(betas).join(\",\") } : {}\n    );\n  }\n  async getBetasFromHeaders(requestHeaders) {\n    var _a, _b;\n    const configHeaders = await resolve(this.config.headers);\n    const configBetaHeader = (_a = configHeaders[\"anthropic-beta\"]) != null ? _a : \"\";\n    const requestBetaHeader = (_b = requestHeaders == null ? void 0 : requestHeaders[\"anthropic-beta\"]) != null ? _b : \"\";\n    return new Set(\n      [\n        ...configBetaHeader.toLowerCase().split(\",\"),\n        ...requestBetaHeader.toLowerCase().split(\",\")\n      ].map((beta) => beta.trim()).filter((beta) => beta !== \"\")\n    );\n  }\n  buildRequestUrl(isStreaming) {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).buildRequestUrl) == null ? void 0 : _b.call(_a, this.config.baseURL, isStreaming)) != null ? _c : `${this.config.baseURL}/messages`;\n  }\n  transformRequestBody(args, betas) {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).transformRequestBody) == null ? void 0 : _b.call(_a, args, betas)) != null ? _c : args;\n  }\n  extractCitationDocuments(prompt) {\n    const isCitationPart = (part) => {\n      var _a, _b;\n      if (part.type !== \"file\") {\n        return false;\n      }\n      if (part.mediaType !== \"application/pdf\" && part.mediaType !== \"text/plain\") {\n        return false;\n      }\n      const anthropic2 = (_a = part.providerOptions) == null ? void 0 : _a.anthropic;\n      const citationsConfig = anthropic2 == null ? void 0 : anthropic2.citations;\n      return (_b = citationsConfig == null ? void 0 : citationsConfig.enabled) != null ? _b : false;\n    };\n    return prompt.filter((message) => message.role === \"user\").flatMap((message) => message.content).filter(isCitationPart).map((part) => {\n      var _a;\n      const filePart = part;\n      return {\n        title: (_a = filePart.filename) != null ? _a : \"Untitled Document\",\n        filename: filePart.filename,\n        mediaType: filePart.mediaType\n      };\n    });\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const {\n      args,\n      warnings,\n      betas,\n      usesJsonResponseTool,\n      toolNameMapping,\n      providerOptionsName,\n      usedCustomProviderKey\n    } = await this.getArgs({\n      ...options,\n      stream: false,\n      userSuppliedBetas: await this.getBetasFromHeaders(options.headers)\n    });\n    const citationDocuments = [\n      ...this.extractCitationDocuments(options.prompt)\n    ];\n    const markCodeExecutionDynamic = hasWebTool20260209WithoutCodeExecution(\n      args.tools\n    );\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi({\n      url: this.buildRequestUrl(false),\n      headers: await this.getHeaders({ betas, headers: options.headers }),\n      body: this.transformRequestBody(args, betas),\n      failedResponseHandler: anthropicFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        anthropicMessagesResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const content = [];\n    const mcpToolCalls = {};\n    const serverToolCalls = {};\n    let isJsonResponseFromTool = false;\n    for (const part of response.content) {\n      switch (part.type) {\n        case \"text\": {\n          if (!usesJsonResponseTool) {\n            const webSearchCitations = (_a = part.citations) == null ? void 0 : _a.filter(\n              (citation) => citation.type === \"web_search_result_location\"\n            );\n            content.push({\n              type: \"text\",\n              text: part.text,\n              ...webSearchCitations != null && webSearchCitations.length > 0 && {\n                providerMetadata: {\n                  anthropic: {\n                    citations: webSearchCitations\n                  }\n                }\n              }\n            });\n            if (part.citations) {\n              for (const citation of part.citations) {\n                const source = createCitationSource(\n                  citation,\n                  citationDocuments,\n                  this.generateId\n                );\n                if (source) {\n                  content.push(source);\n                }\n              }\n            }\n          }\n          break;\n        }\n        case \"thinking\": {\n          content.push({\n            type: \"reasoning\",\n            text: part.thinking,\n            providerMetadata: {\n              anthropic: {\n                signature: part.signature\n              }\n            }\n          });\n          break;\n        }\n        case \"redacted_thinking\": {\n          content.push({\n            type: \"reasoning\",\n            text: \"\",\n            providerMetadata: {\n              anthropic: {\n                redactedData: part.data\n              }\n            }\n          });\n          break;\n        }\n        case \"compaction\": {\n          content.push({\n            type: \"text\",\n            text: part.content,\n            providerMetadata: {\n              anthropic: {\n                type: \"compaction\"\n              }\n            }\n          });\n          break;\n        }\n        case \"tool_use\": {\n          const isJsonResponseTool = usesJsonResponseTool && part.name === \"json\";\n          if (isJsonResponseTool) {\n            isJsonResponseFromTool = true;\n            content.push({\n              type: \"text\",\n              text: JSON.stringify(part.input)\n            });\n          } else {\n            const caller = part.caller;\n            const callerInfo = caller ? {\n              type: caller.type,\n              toolId: \"tool_id\" in caller ? caller.tool_id : void 0\n            } : void 0;\n            content.push({\n              type: \"tool-call\",\n              toolCallId: part.id,\n              toolName: part.name,\n              input: JSON.stringify(part.input),\n              ...callerInfo && {\n                providerMetadata: {\n                  anthropic: {\n                    caller: callerInfo\n                  }\n                }\n              }\n            });\n          }\n          break;\n        }\n        case \"server_tool_use\": {\n          if (part.name === \"text_editor_code_execution\" || part.name === \"bash_code_execution\") {\n            const providerToolName = \"code_execution\";\n            content.push({\n              type: \"tool-call\",\n              toolCallId: part.id,\n              toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n              input: JSON.stringify({ type: part.name, ...part.input }),\n              providerExecuted: true,\n              // Specific 'web_fetch' or 'web_search' tools may need code execution, which the Anthropic API\n              // implicitly allows. In this scenario, we need to allow 'code_execution' tool calls even if the\n              // tool was not explicitly provided. We therefore bypass the general validation by marking the\n              // tool as dynamic.\n              ...markCodeExecutionDynamic && providerToolName === \"code_execution\" ? { dynamic: true } : {}\n            });\n          } else if (part.name === \"web_search\" || part.name === \"code_execution\" || part.name === \"web_fetch\") {\n            const inputToSerialize = part.name === \"code_execution\" && part.input != null && typeof part.input === \"object\" && \"code\" in part.input && !(\"type\" in part.input) ? { type: \"programmatic-tool-call\", ...part.input } : part.input;\n            content.push({\n              type: \"tool-call\",\n              toolCallId: part.id,\n              toolName: toolNameMapping.toCustomToolName(part.name),\n              input: JSON.stringify(inputToSerialize),\n              providerExecuted: true,\n              // Specific 'web_fetch' or 'web_search' tools may need code execution, which the Anthropic API\n              // implicitly allows. In this scenario, we need to allow 'code_execution' tool calls even if the\n              // tool was not explicitly provided. We therefore bypass the general validation by marking the\n              // tool as dynamic.\n              ...markCodeExecutionDynamic && part.name === \"code_execution\" ? { dynamic: true } : {}\n            });\n          } else if (part.name === \"tool_search_tool_regex\" || part.name === \"tool_search_tool_bm25\") {\n            serverToolCalls[part.id] = part.name;\n            content.push({\n              type: \"tool-call\",\n              toolCallId: part.id,\n              toolName: toolNameMapping.toCustomToolName(part.name),\n              input: JSON.stringify(part.input),\n              providerExecuted: true\n            });\n          } else if (part.name === \"advisor\") {\n            content.push({\n              type: \"tool-call\",\n              toolCallId: part.id,\n              toolName: toolNameMapping.toCustomToolName(\"advisor\"),\n              input: JSON.stringify(part.input),\n              providerExecuted: true\n            });\n          }\n          break;\n        }\n        case \"mcp_tool_use\": {\n          mcpToolCalls[part.id] = {\n            type: \"tool-call\",\n            toolCallId: part.id,\n            toolName: part.name,\n            input: JSON.stringify(part.input),\n            providerExecuted: true,\n            dynamic: true,\n            providerMetadata: {\n              anthropic: {\n                type: \"mcp-tool-use\",\n                serverName: part.server_name\n              }\n            }\n          };\n          content.push(mcpToolCalls[part.id]);\n          break;\n        }\n        case \"mcp_tool_result\": {\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.tool_use_id,\n            toolName: mcpToolCalls[part.tool_use_id].toolName,\n            isError: part.is_error,\n            result: part.content,\n            dynamic: true,\n            providerMetadata: mcpToolCalls[part.tool_use_id].providerMetadata\n          });\n          break;\n        }\n        case \"web_fetch_tool_result\": {\n          if (part.content.type === \"web_fetch_result\") {\n            citationDocuments.push({\n              title: (_b = part.content.content.title) != null ? _b : part.content.url,\n              mediaType: part.content.content.source.media_type\n            });\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"web_fetch\"),\n              result: {\n                type: \"web_fetch_result\",\n                url: part.content.url,\n                retrievedAt: part.content.retrieved_at,\n                content: {\n                  type: part.content.content.type,\n                  title: part.content.content.title,\n                  citations: part.content.content.citations,\n                  source: {\n                    type: part.content.content.source.type,\n                    mediaType: part.content.content.source.media_type,\n                    data: part.content.content.source.data\n                  }\n                }\n              }\n            });\n          } else if (part.content.type === \"web_fetch_tool_result_error\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"web_fetch\"),\n              isError: true,\n              result: {\n                type: \"web_fetch_tool_result_error\",\n                errorCode: part.content.error_code\n              }\n            });\n          }\n          break;\n        }\n        case \"web_search_tool_result\": {\n          if (Array.isArray(part.content)) {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"web_search\"),\n              result: part.content.map((result) => {\n                var _a2;\n                return {\n                  url: result.url,\n                  title: result.title,\n                  pageAge: (_a2 = result.page_age) != null ? _a2 : null,\n                  encryptedContent: result.encrypted_content,\n                  type: result.type\n                };\n              })\n            });\n            for (const result of part.content) {\n              content.push({\n                type: \"source\",\n                sourceType: \"url\",\n                id: this.generateId(),\n                url: result.url,\n                title: result.title,\n                providerMetadata: {\n                  anthropic: {\n                    pageAge: (_c = result.page_age) != null ? _c : null\n                  }\n                }\n              });\n            }\n          } else {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"web_search\"),\n              isError: true,\n              result: {\n                type: \"web_search_tool_result_error\",\n                errorCode: part.content.error_code\n              }\n            });\n          }\n          break;\n        }\n        // code execution 20250522:\n        case \"code_execution_tool_result\": {\n          if (part.content.type === \"code_execution_result\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n              result: {\n                type: part.content.type,\n                stdout: part.content.stdout,\n                stderr: part.content.stderr,\n                return_code: part.content.return_code,\n                content: (_d = part.content.content) != null ? _d : []\n              }\n            });\n          } else if (part.content.type === \"encrypted_code_execution_result\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n              result: {\n                type: part.content.type,\n                encrypted_stdout: part.content.encrypted_stdout,\n                stderr: part.content.stderr,\n                return_code: part.content.return_code,\n                content: (_e = part.content.content) != null ? _e : []\n              }\n            });\n          } else if (part.content.type === \"code_execution_tool_result_error\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n              isError: true,\n              result: {\n                type: \"code_execution_tool_result_error\",\n                errorCode: part.content.error_code\n              }\n            });\n          }\n          break;\n        }\n        // code execution 20250825:\n        case \"bash_code_execution_tool_result\":\n        case \"text_editor_code_execution_tool_result\": {\n          content.push({\n            type: \"tool-result\",\n            toolCallId: part.tool_use_id,\n            toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n            result: part.content\n          });\n          break;\n        }\n        // tool search tool results:\n        case \"tool_search_tool_result\": {\n          let providerToolName = serverToolCalls[part.tool_use_id];\n          if (providerToolName == null) {\n            const bm25CustomName = toolNameMapping.toCustomToolName(\n              \"tool_search_tool_bm25\"\n            );\n            const regexCustomName = toolNameMapping.toCustomToolName(\n              \"tool_search_tool_regex\"\n            );\n            if (bm25CustomName !== \"tool_search_tool_bm25\") {\n              providerToolName = \"tool_search_tool_bm25\";\n            } else if (regexCustomName !== \"tool_search_tool_regex\") {\n              providerToolName = \"tool_search_tool_regex\";\n            } else {\n              providerToolName = \"tool_search_tool_regex\";\n            }\n          }\n          if (part.content.type === \"tool_search_tool_search_result\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(providerToolName),\n              result: part.content.tool_references.map((ref) => ({\n                type: ref.type,\n                toolName: ref.tool_name\n              }))\n            });\n          } else {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: toolNameMapping.toCustomToolName(providerToolName),\n              isError: true,\n              result: {\n                type: \"tool_search_tool_result_error\",\n                errorCode: part.content.error_code\n              }\n            });\n          }\n          break;\n        }\n        // advisor results for advisor_20260301:\n        case \"advisor_tool_result\": {\n          const advisorToolName = toolNameMapping.toCustomToolName(\"advisor\");\n          if (part.content.type === \"advisor_result\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: advisorToolName,\n              result: {\n                type: \"advisor_result\",\n                text: part.content.text\n              }\n            });\n          } else if (part.content.type === \"advisor_redacted_result\") {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: advisorToolName,\n              result: {\n                type: \"advisor_redacted_result\",\n                encryptedContent: part.content.encrypted_content\n              }\n            });\n          } else {\n            content.push({\n              type: \"tool-result\",\n              toolCallId: part.tool_use_id,\n              toolName: advisorToolName,\n              isError: true,\n              result: {\n                type: \"advisor_tool_result_error\",\n                errorCode: part.content.error_code\n              }\n            });\n          }\n          break;\n        }\n        // Server-side fallback marker: the AI SDK has no content primitive for\n        // a model hop, so drop it. The hop is still observable via\n        // usage.iterations.\n        case \"fallback\": {\n          break;\n        }\n      }\n    }\n    return {\n      content,\n      finishReason: {\n        unified: mapAnthropicStopReason({\n          finishReason: response.stop_reason,\n          isJsonResponseFromTool\n        }),\n        raw: (_f = response.stop_reason) != null ? _f : void 0\n      },\n      usage: convertAnthropicMessagesUsage({ usage: response.usage }),\n      request: { body: args },\n      response: {\n        id: (_g = response.id) != null ? _g : void 0,\n        modelId: (_h = response.model) != null ? _h : void 0,\n        headers: responseHeaders,\n        body: rawResponse\n      },\n      warnings,\n      providerMetadata: (() => {\n        var _a2, _b2, _c2, _d2, _e2;\n        const stopDetails = mapAnthropicStopDetails(response.stop_details);\n        const anthropicMetadata = {\n          usage: response.usage,\n          cacheCreationInputTokens: (_a2 = response.usage.cache_creation_input_tokens) != null ? _a2 : null,\n          stopSequence: (_b2 = response.stop_sequence) != null ? _b2 : null,\n          ...stopDetails != null ? { stopDetails } : {},\n          iterations: response.usage.iterations ? response.usage.iterations.map(\n            (iter) => ({\n              type: iter.type,\n              ...iter.model != null ? { model: iter.model } : {},\n              inputTokens: iter.input_tokens,\n              outputTokens: iter.output_tokens,\n              ...iter.cache_creation_input_tokens ? {\n                cacheCreationInputTokens: iter.cache_creation_input_tokens\n              } : {},\n              ...iter.cache_read_input_tokens ? {\n                cacheReadInputTokens: iter.cache_read_input_tokens\n              } : {}\n            })\n          ) : null,\n          container: response.container ? {\n            expiresAt: response.container.expires_at,\n            id: response.container.id,\n            skills: (_d2 = (_c2 = response.container.skills) == null ? void 0 : _c2.map((skill) => ({\n              type: skill.type,\n              skillId: skill.skill_id,\n              version: skill.version\n            }))) != null ? _d2 : null\n          } : null,\n          contextManagement: (_e2 = mapAnthropicResponseContextManagement(\n            response.context_management\n          )) != null ? _e2 : null\n        };\n        const providerMetadata = {\n          anthropic: anthropicMetadata\n        };\n        if (usedCustomProviderKey && providerOptionsName !== \"anthropic\") {\n          providerMetadata[providerOptionsName] = anthropicMetadata;\n        }\n        return providerMetadata;\n      })()\n    };\n  }\n  async doStream(options) {\n    var _a, _b;\n    const {\n      args: body,\n      warnings,\n      betas,\n      usesJsonResponseTool,\n      toolNameMapping,\n      providerOptionsName,\n      usedCustomProviderKey\n    } = await this.getArgs({\n      ...options,\n      stream: true,\n      userSuppliedBetas: await this.getBetasFromHeaders(options.headers)\n    });\n    const citationDocuments = [\n      ...this.extractCitationDocuments(options.prompt)\n    ];\n    const markCodeExecutionDynamic = hasWebTool20260209WithoutCodeExecution(\n      body.tools\n    );\n    const url = this.buildRequestUrl(true);\n    const { responseHeaders, value: response } = await postJsonToApi({\n      url,\n      headers: await this.getHeaders({ betas, headers: options.headers }),\n      body: this.transformRequestBody(body, betas),\n      failedResponseHandler: anthropicFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        anthropicMessagesChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    const usage = {\n      input_tokens: 0,\n      output_tokens: 0,\n      cache_creation_input_tokens: 0,\n      cache_read_input_tokens: 0,\n      iterations: null\n    };\n    const contentBlocks = {};\n    const mcpToolCalls = {};\n    const serverToolCalls = {};\n    let contextManagement = null;\n    let rawUsage = void 0;\n    let cacheCreationInputTokens = null;\n    let stopSequence = null;\n    let stopDetails = void 0;\n    let container = null;\n    let isJsonResponseFromTool = false;\n    let blockType = void 0;\n    const generateId3 = this.generateId;\n    const transformedStream = response.pipeThrough(\n      new TransformStream({\n        start(controller) {\n          controller.enqueue({ type: \"stream-start\", warnings });\n        },\n        transform(chunk, controller) {\n          var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n          if (options.includeRawChunks) {\n            controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n          }\n          if (!chunk.success) {\n            controller.enqueue({ type: \"error\", error: chunk.error });\n            return;\n          }\n          const value = chunk.value;\n          switch (value.type) {\n            case \"ping\": {\n              return;\n            }\n            case \"content_block_start\": {\n              const part = value.content_block;\n              const contentBlockType = part.type;\n              if (contentBlockType === \"fallback\") {\n                return;\n              }\n              blockType = contentBlockType;\n              switch (contentBlockType) {\n                case \"text\": {\n                  if (usesJsonResponseTool) {\n                    return;\n                  }\n                  contentBlocks[value.index] = {\n                    type: \"text\",\n                    citations: []\n                  };\n                  controller.enqueue({\n                    type: \"text-start\",\n                    id: String(value.index)\n                  });\n                  return;\n                }\n                case \"thinking\": {\n                  contentBlocks[value.index] = { type: \"reasoning\" };\n                  controller.enqueue({\n                    type: \"reasoning-start\",\n                    id: String(value.index)\n                  });\n                  return;\n                }\n                case \"redacted_thinking\": {\n                  contentBlocks[value.index] = { type: \"reasoning\" };\n                  controller.enqueue({\n                    type: \"reasoning-start\",\n                    id: String(value.index),\n                    providerMetadata: {\n                      anthropic: {\n                        redactedData: part.data\n                      }\n                    }\n                  });\n                  return;\n                }\n                case \"compaction\": {\n                  contentBlocks[value.index] = {\n                    type: \"text\",\n                    citations: []\n                  };\n                  controller.enqueue({\n                    type: \"text-start\",\n                    id: String(value.index),\n                    providerMetadata: {\n                      anthropic: {\n                        type: \"compaction\"\n                      }\n                    }\n                  });\n                  return;\n                }\n                case \"tool_use\": {\n                  const isJsonResponseTool = usesJsonResponseTool && part.name === \"json\";\n                  if (isJsonResponseTool) {\n                    isJsonResponseFromTool = true;\n                    contentBlocks[value.index] = {\n                      type: \"text\",\n                      citations: []\n                    };\n                    controller.enqueue({\n                      type: \"text-start\",\n                      id: String(value.index)\n                    });\n                  } else {\n                    const caller = part.caller;\n                    const callerInfo = caller ? {\n                      type: caller.type,\n                      toolId: \"tool_id\" in caller ? caller.tool_id : void 0\n                    } : void 0;\n                    const hasNonEmptyInput = part.input && Object.keys(part.input).length > 0;\n                    const initialInput = hasNonEmptyInput ? JSON.stringify(part.input) : \"\";\n                    contentBlocks[value.index] = {\n                      type: \"tool-call\",\n                      toolCallId: part.id,\n                      toolName: part.name,\n                      input: initialInput,\n                      firstDelta: initialInput.length === 0,\n                      ...callerInfo && { caller: callerInfo }\n                    };\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: part.id,\n                      toolName: part.name\n                    });\n                  }\n                  return;\n                }\n                case \"server_tool_use\": {\n                  if ([\n                    \"web_fetch\",\n                    \"web_search\",\n                    // code execution 20250825:\n                    \"code_execution\",\n                    // code execution 20250825 text editor:\n                    \"text_editor_code_execution\",\n                    // code execution 20250825 bash:\n                    \"bash_code_execution\"\n                  ].includes(part.name)) {\n                    const providerToolName = part.name === \"text_editor_code_execution\" || part.name === \"bash_code_execution\" ? \"code_execution\" : part.name;\n                    const providerToolInputType = part.name === \"text_editor_code_execution\" || part.name === \"bash_code_execution\" ? part.name : part.name === \"code_execution\" ? \"programmatic-tool-call\" : void 0;\n                    const customToolName = toolNameMapping.toCustomToolName(providerToolName);\n                    const finalInput = part.input != null && typeof part.input === \"object\" && Object.keys(part.input).length > 0 ? JSON.stringify(part.input) : \"\";\n                    contentBlocks[value.index] = {\n                      type: \"tool-call\",\n                      toolCallId: part.id,\n                      toolName: customToolName,\n                      input: finalInput,\n                      providerExecuted: true,\n                      // Specific 'web_fetch' or 'web_search' tools may need code execution, which the Anthropic API\n                      // implicitly allows. In this scenario, we need to allow 'code_execution' tool calls even if the\n                      // tool was not explicitly provided. We therefore bypass the general validation by marking the\n                      // tool as dynamic.\n                      ...markCodeExecutionDynamic && providerToolName === \"code_execution\" ? { dynamic: true } : {},\n                      firstDelta: finalInput.length === 0,\n                      providerToolName,\n                      providerToolInputType\n                    };\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: part.id,\n                      toolName: customToolName,\n                      providerExecuted: true,\n                      // Specific 'web_fetch' or 'web_search' tools may need code execution, which the Anthropic API\n                      // implicitly allows. In this scenario, we need to allow 'code_execution' tool calls even if the\n                      // tool was not explicitly provided. We therefore bypass the general validation by marking the\n                      // tool as dynamic.\n                      ...markCodeExecutionDynamic && providerToolName === \"code_execution\" ? { dynamic: true } : {}\n                    });\n                  } else if (part.name === \"tool_search_tool_regex\" || part.name === \"tool_search_tool_bm25\") {\n                    serverToolCalls[part.id] = part.name;\n                    const customToolName = toolNameMapping.toCustomToolName(\n                      part.name\n                    );\n                    contentBlocks[value.index] = {\n                      type: \"tool-call\",\n                      toolCallId: part.id,\n                      toolName: customToolName,\n                      input: \"\",\n                      providerExecuted: true,\n                      firstDelta: true,\n                      providerToolName: part.name\n                    };\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: part.id,\n                      toolName: customToolName,\n                      providerExecuted: true\n                    });\n                  } else if (part.name === \"advisor\") {\n                    const customToolName = toolNameMapping.toCustomToolName(\"advisor\");\n                    contentBlocks[value.index] = {\n                      type: \"tool-call\",\n                      toolCallId: part.id,\n                      toolName: customToolName,\n                      input: \"{}\",\n                      providerExecuted: true,\n                      firstDelta: true,\n                      providerToolName: part.name\n                    };\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: part.id,\n                      toolName: customToolName,\n                      providerExecuted: true\n                    });\n                  }\n                  return;\n                }\n                case \"web_fetch_tool_result\": {\n                  if (part.content.type === \"web_fetch_result\") {\n                    citationDocuments.push({\n                      title: (_a2 = part.content.content.title) != null ? _a2 : part.content.url,\n                      mediaType: part.content.content.source.media_type\n                    });\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"web_fetch\"),\n                      result: {\n                        type: \"web_fetch_result\",\n                        url: part.content.url,\n                        retrievedAt: part.content.retrieved_at,\n                        content: {\n                          type: part.content.content.type,\n                          title: part.content.content.title,\n                          citations: part.content.content.citations,\n                          source: {\n                            type: part.content.content.source.type,\n                            mediaType: part.content.content.source.media_type,\n                            data: part.content.content.source.data\n                          }\n                        }\n                      }\n                    });\n                  } else if (part.content.type === \"web_fetch_tool_result_error\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"web_fetch\"),\n                      isError: true,\n                      result: {\n                        type: \"web_fetch_tool_result_error\",\n                        errorCode: part.content.error_code\n                      }\n                    });\n                  }\n                  return;\n                }\n                case \"web_search_tool_result\": {\n                  if (Array.isArray(part.content)) {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"web_search\"),\n                      result: part.content.map((result) => {\n                        var _a3;\n                        return {\n                          url: result.url,\n                          title: result.title,\n                          pageAge: (_a3 = result.page_age) != null ? _a3 : null,\n                          encryptedContent: result.encrypted_content,\n                          type: result.type\n                        };\n                      })\n                    });\n                    for (const result of part.content) {\n                      controller.enqueue({\n                        type: \"source\",\n                        sourceType: \"url\",\n                        id: generateId3(),\n                        url: result.url,\n                        title: result.title,\n                        providerMetadata: {\n                          anthropic: {\n                            pageAge: (_b2 = result.page_age) != null ? _b2 : null\n                          }\n                        }\n                      });\n                    }\n                  } else {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"web_search\"),\n                      isError: true,\n                      result: {\n                        type: \"web_search_tool_result_error\",\n                        errorCode: part.content.error_code\n                      }\n                    });\n                  }\n                  return;\n                }\n                // code execution 20250522:\n                case \"code_execution_tool_result\": {\n                  if (part.content.type === \"code_execution_result\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n                      result: {\n                        type: part.content.type,\n                        stdout: part.content.stdout,\n                        stderr: part.content.stderr,\n                        return_code: part.content.return_code,\n                        content: (_c = part.content.content) != null ? _c : []\n                      }\n                    });\n                  } else if (part.content.type === \"encrypted_code_execution_result\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n                      result: {\n                        type: part.content.type,\n                        encrypted_stdout: part.content.encrypted_stdout,\n                        stderr: part.content.stderr,\n                        return_code: part.content.return_code,\n                        content: (_d = part.content.content) != null ? _d : []\n                      }\n                    });\n                  } else if (part.content.type === \"code_execution_tool_result_error\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n                      isError: true,\n                      result: {\n                        type: \"code_execution_tool_result_error\",\n                        errorCode: part.content.error_code\n                      }\n                    });\n                  }\n                  return;\n                }\n                // code execution 20250825:\n                case \"bash_code_execution_tool_result\":\n                case \"text_editor_code_execution_tool_result\": {\n                  controller.enqueue({\n                    type: \"tool-result\",\n                    toolCallId: part.tool_use_id,\n                    toolName: toolNameMapping.toCustomToolName(\"code_execution\"),\n                    result: part.content\n                  });\n                  return;\n                }\n                // tool search tool results:\n                case \"tool_search_tool_result\": {\n                  let providerToolName = serverToolCalls[part.tool_use_id];\n                  if (providerToolName == null) {\n                    const bm25CustomName = toolNameMapping.toCustomToolName(\n                      \"tool_search_tool_bm25\"\n                    );\n                    const regexCustomName = toolNameMapping.toCustomToolName(\n                      \"tool_search_tool_regex\"\n                    );\n                    if (bm25CustomName !== \"tool_search_tool_bm25\") {\n                      providerToolName = \"tool_search_tool_bm25\";\n                    } else if (regexCustomName !== \"tool_search_tool_regex\") {\n                      providerToolName = \"tool_search_tool_regex\";\n                    } else {\n                      providerToolName = \"tool_search_tool_regex\";\n                    }\n                  }\n                  if (part.content.type === \"tool_search_tool_search_result\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(providerToolName),\n                      result: part.content.tool_references.map((ref) => ({\n                        type: ref.type,\n                        toolName: ref.tool_name\n                      }))\n                    });\n                  } else {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: toolNameMapping.toCustomToolName(providerToolName),\n                      isError: true,\n                      result: {\n                        type: \"tool_search_tool_result_error\",\n                        errorCode: part.content.error_code\n                      }\n                    });\n                  }\n                  return;\n                }\n                // advisor results for advisor_20260301:\n                // arrives fully formed in a single content_block_start (no deltas).\n                case \"advisor_tool_result\": {\n                  const advisorToolName = toolNameMapping.toCustomToolName(\"advisor\");\n                  if (part.content.type === \"advisor_result\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: advisorToolName,\n                      result: {\n                        type: \"advisor_result\",\n                        text: part.content.text\n                      }\n                    });\n                  } else if (part.content.type === \"advisor_redacted_result\") {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: advisorToolName,\n                      result: {\n                        type: \"advisor_redacted_result\",\n                        encryptedContent: part.content.encrypted_content\n                      }\n                    });\n                  } else {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId: part.tool_use_id,\n                      toolName: advisorToolName,\n                      isError: true,\n                      result: {\n                        type: \"advisor_tool_result_error\",\n                        errorCode: part.content.error_code\n                      }\n                    });\n                  }\n                  return;\n                }\n                case \"mcp_tool_use\": {\n                  mcpToolCalls[part.id] = {\n                    type: \"tool-call\",\n                    toolCallId: part.id,\n                    toolName: part.name,\n                    input: JSON.stringify(part.input),\n                    providerExecuted: true,\n                    dynamic: true,\n                    providerMetadata: {\n                      anthropic: {\n                        type: \"mcp-tool-use\",\n                        serverName: part.server_name\n                      }\n                    }\n                  };\n                  controller.enqueue(mcpToolCalls[part.id]);\n                  return;\n                }\n                case \"mcp_tool_result\": {\n                  controller.enqueue({\n                    type: \"tool-result\",\n                    toolCallId: part.tool_use_id,\n                    toolName: mcpToolCalls[part.tool_use_id].toolName,\n                    isError: part.is_error,\n                    result: part.content,\n                    dynamic: true,\n                    providerMetadata: mcpToolCalls[part.tool_use_id].providerMetadata\n                  });\n                  return;\n                }\n                default: {\n                  const _exhaustiveCheck = contentBlockType;\n                  throw new Error(\n                    `Unsupported content block type: ${_exhaustiveCheck}`\n                  );\n                }\n              }\n            }\n            case \"content_block_stop\": {\n              if (contentBlocks[value.index] != null) {\n                const contentBlock = contentBlocks[value.index];\n                switch (contentBlock.type) {\n                  case \"text\": {\n                    controller.enqueue({\n                      type: \"text-end\",\n                      id: String(value.index),\n                      ...contentBlock.citations.length > 0 && {\n                        providerMetadata: {\n                          anthropic: {\n                            citations: contentBlock.citations\n                          }\n                        }\n                      }\n                    });\n                    break;\n                  }\n                  case \"reasoning\": {\n                    controller.enqueue({\n                      type: \"reasoning-end\",\n                      id: String(value.index)\n                    });\n                    break;\n                  }\n                  case \"tool-call\":\n                    const isJsonResponseTool = usesJsonResponseTool && contentBlock.toolName === \"json\";\n                    if (!isJsonResponseTool) {\n                      controller.enqueue({\n                        type: \"tool-input-end\",\n                        id: contentBlock.toolCallId\n                      });\n                      let finalInput = contentBlock.input === \"\" ? \"{}\" : contentBlock.input;\n                      if (contentBlock.providerToolName === \"code_execution\") {\n                        try {\n                          const parsed = secureJsonParse2(finalInput);\n                          if (parsed != null && typeof parsed === \"object\" && \"code\" in parsed && !(\"type\" in parsed)) {\n                            finalInput = JSON.stringify({\n                              type: \"programmatic-tool-call\",\n                              ...parsed\n                            });\n                          }\n                        } catch (e) {\n                        }\n                      }\n                      controller.enqueue({\n                        type: \"tool-call\",\n                        toolCallId: contentBlock.toolCallId,\n                        toolName: contentBlock.toolName,\n                        input: finalInput,\n                        providerExecuted: contentBlock.providerExecuted,\n                        // Specific 'web_fetch' or 'web_search' tools may need code execution, which the Anthropic API\n                        // implicitly allows. In this scenario, we need to allow 'code_execution' tool calls even if the\n                        // tool was not explicitly provided. We therefore bypass the general validation by marking the\n                        // tool as dynamic.\n                        ...markCodeExecutionDynamic && contentBlock.providerToolName === \"code_execution\" ? { dynamic: true } : {},\n                        ...contentBlock.caller && {\n                          providerMetadata: {\n                            anthropic: {\n                              caller: contentBlock.caller\n                            }\n                          }\n                        }\n                      });\n                    }\n                    break;\n                }\n                delete contentBlocks[value.index];\n              }\n              blockType = void 0;\n              return;\n            }\n            case \"content_block_delta\": {\n              const deltaType = value.delta.type;\n              switch (deltaType) {\n                case \"text_delta\": {\n                  if (usesJsonResponseTool) {\n                    return;\n                  }\n                  controller.enqueue({\n                    type: \"text-delta\",\n                    id: String(value.index),\n                    delta: value.delta.text\n                  });\n                  return;\n                }\n                case \"thinking_delta\": {\n                  controller.enqueue({\n                    type: \"reasoning-delta\",\n                    id: String(value.index),\n                    delta: value.delta.thinking\n                  });\n                  return;\n                }\n                case \"signature_delta\": {\n                  if (blockType === \"thinking\") {\n                    controller.enqueue({\n                      type: \"reasoning-delta\",\n                      id: String(value.index),\n                      delta: \"\",\n                      providerMetadata: {\n                        anthropic: {\n                          signature: value.delta.signature\n                        }\n                      }\n                    });\n                  }\n                  return;\n                }\n                case \"compaction_delta\": {\n                  if (value.delta.content != null) {\n                    controller.enqueue({\n                      type: \"text-delta\",\n                      id: String(value.index),\n                      delta: value.delta.content\n                    });\n                  }\n                  return;\n                }\n                case \"input_json_delta\": {\n                  const contentBlock = contentBlocks[value.index];\n                  let delta = value.delta.partial_json;\n                  if (delta.length === 0) {\n                    return;\n                  }\n                  if (isJsonResponseFromTool) {\n                    if ((contentBlock == null ? void 0 : contentBlock.type) !== \"text\") {\n                      return;\n                    }\n                    controller.enqueue({\n                      type: \"text-delta\",\n                      id: String(value.index),\n                      delta\n                    });\n                  } else {\n                    if ((contentBlock == null ? void 0 : contentBlock.type) !== \"tool-call\") {\n                      return;\n                    }\n                    if (contentBlock.firstDelta && contentBlock.providerToolInputType != null) {\n                      delta = `{\"type\": \"${contentBlock.providerToolInputType}\",${delta.substring(1)}`;\n                    }\n                    controller.enqueue({\n                      type: \"tool-input-delta\",\n                      id: contentBlock.toolCallId,\n                      delta\n                    });\n                    contentBlock.input += delta;\n                    contentBlock.firstDelta = false;\n                  }\n                  return;\n                }\n                case \"citations_delta\": {\n                  const citation = value.delta.citation;\n                  const contentBlock = contentBlocks[value.index];\n                  if ((contentBlock == null ? void 0 : contentBlock.type) === \"text\" && citation.type === \"web_search_result_location\") {\n                    contentBlock.citations.push(citation);\n                  }\n                  const source = createCitationSource(\n                    citation,\n                    citationDocuments,\n                    generateId3\n                  );\n                  if (source) {\n                    controller.enqueue(source);\n                  }\n                  return;\n                }\n                default: {\n                  const _exhaustiveCheck = deltaType;\n                  throw new Error(\n                    `Unsupported delta type: ${_exhaustiveCheck}`\n                  );\n                }\n              }\n            }\n            case \"message_start\": {\n              usage.input_tokens = value.message.usage.input_tokens;\n              usage.cache_read_input_tokens = (_e = value.message.usage.cache_read_input_tokens) != null ? _e : 0;\n              usage.cache_creation_input_tokens = (_f = value.message.usage.cache_creation_input_tokens) != null ? _f : 0;\n              rawUsage = {\n                ...value.message.usage\n              };\n              cacheCreationInputTokens = (_g = value.message.usage.cache_creation_input_tokens) != null ? _g : null;\n              if (value.message.container != null) {\n                container = {\n                  expiresAt: value.message.container.expires_at,\n                  id: value.message.container.id,\n                  skills: null\n                };\n              }\n              if (value.message.stop_reason != null) {\n                finishReason = {\n                  unified: mapAnthropicStopReason({\n                    finishReason: value.message.stop_reason,\n                    isJsonResponseFromTool\n                  }),\n                  raw: value.message.stop_reason\n                };\n              }\n              controller.enqueue({\n                type: \"response-metadata\",\n                id: (_h = value.message.id) != null ? _h : void 0,\n                modelId: (_i = value.message.model) != null ? _i : void 0\n              });\n              if (value.message.content != null) {\n                for (let contentIndex = 0; contentIndex < value.message.content.length; contentIndex++) {\n                  const part = value.message.content[contentIndex];\n                  if (part.type === \"tool_use\") {\n                    const caller = part.caller;\n                    const callerInfo = caller ? {\n                      type: caller.type,\n                      toolId: \"tool_id\" in caller ? caller.tool_id : void 0\n                    } : void 0;\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: part.id,\n                      toolName: part.name\n                    });\n                    const inputStr = JSON.stringify((_j = part.input) != null ? _j : {});\n                    controller.enqueue({\n                      type: \"tool-input-delta\",\n                      id: part.id,\n                      delta: inputStr\n                    });\n                    controller.enqueue({\n                      type: \"tool-input-end\",\n                      id: part.id\n                    });\n                    controller.enqueue({\n                      type: \"tool-call\",\n                      toolCallId: part.id,\n                      toolName: part.name,\n                      input: inputStr,\n                      ...callerInfo && {\n                        providerMetadata: {\n                          anthropic: {\n                            caller: callerInfo\n                          }\n                        }\n                      }\n                    });\n                  }\n                }\n              }\n              return;\n            }\n            case \"message_delta\": {\n              if (value.usage.input_tokens != null && usage.input_tokens !== value.usage.input_tokens) {\n                usage.input_tokens = value.usage.input_tokens;\n              }\n              usage.output_tokens = value.usage.output_tokens;\n              if (value.usage.output_tokens_details != null) {\n                usage.output_tokens_details = value.usage.output_tokens_details;\n              }\n              if (value.usage.cache_read_input_tokens != null) {\n                usage.cache_read_input_tokens = value.usage.cache_read_input_tokens;\n              }\n              if (value.usage.cache_creation_input_tokens != null) {\n                usage.cache_creation_input_tokens = value.usage.cache_creation_input_tokens;\n                cacheCreationInputTokens = value.usage.cache_creation_input_tokens;\n              }\n              if (value.usage.iterations != null) {\n                usage.iterations = value.usage.iterations;\n              }\n              finishReason = {\n                unified: mapAnthropicStopReason({\n                  finishReason: value.delta.stop_reason,\n                  isJsonResponseFromTool\n                }),\n                raw: (_k = value.delta.stop_reason) != null ? _k : void 0\n              };\n              stopSequence = (_l = value.delta.stop_sequence) != null ? _l : null;\n              stopDetails = mapAnthropicStopDetails(value.delta.stop_details);\n              container = value.delta.container != null ? {\n                expiresAt: value.delta.container.expires_at,\n                id: value.delta.container.id,\n                skills: (_n = (_m = value.delta.container.skills) == null ? void 0 : _m.map((skill) => ({\n                  type: skill.type,\n                  skillId: skill.skill_id,\n                  version: skill.version\n                }))) != null ? _n : null\n              } : null;\n              if (value.context_management) {\n                contextManagement = mapAnthropicResponseContextManagement(\n                  value.context_management\n                );\n              }\n              rawUsage = {\n                ...rawUsage,\n                ...value.usage\n              };\n              return;\n            }\n            case \"message_stop\": {\n              const anthropicMetadata = {\n                usage: rawUsage != null ? rawUsage : null,\n                cacheCreationInputTokens,\n                stopSequence,\n                ...stopDetails != null ? { stopDetails } : {},\n                iterations: usage.iterations ? usage.iterations.map(\n                  (iter) => ({\n                    type: iter.type,\n                    ...iter.model != null ? { model: iter.model } : {},\n                    inputTokens: iter.input_tokens,\n                    outputTokens: iter.output_tokens,\n                    ...iter.cache_creation_input_tokens ? {\n                      cacheCreationInputTokens: iter.cache_creation_input_tokens\n                    } : {},\n                    ...iter.cache_read_input_tokens ? {\n                      cacheReadInputTokens: iter.cache_read_input_tokens\n                    } : {}\n                  })\n                ) : null,\n                container,\n                contextManagement\n              };\n              const providerMetadata = {\n                anthropic: anthropicMetadata\n              };\n              if (usedCustomProviderKey && providerOptionsName !== \"anthropic\") {\n                providerMetadata[providerOptionsName] = anthropicMetadata;\n              }\n              controller.enqueue({\n                type: \"finish\",\n                finishReason,\n                usage: convertAnthropicMessagesUsage({ usage, rawUsage }),\n                providerMetadata\n              });\n              return;\n            }\n            case \"error\": {\n              controller.enqueue({ type: \"error\", error: value.error });\n              return;\n            }\n            default: {\n              const _exhaustiveCheck = value;\n              throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n            }\n          }\n        }\n      })\n    );\n    const [streamForFirstChunk, streamForConsumer] = transformedStream.tee();\n    const firstChunkReader = streamForFirstChunk.getReader();\n    try {\n      await firstChunkReader.read();\n      let result = await firstChunkReader.read();\n      if (((_a = result.value) == null ? void 0 : _a.type) === \"raw\") {\n        result = await firstChunkReader.read();\n      }\n      if (((_b = result.value) == null ? void 0 : _b.type) === \"error\") {\n        const error = result.value.error;\n        throw new APICallError({\n          message: error.message,\n          url,\n          requestBodyValues: body,\n          statusCode: error.type === \"overloaded_error\" ? 529 : 500,\n          responseHeaders,\n          responseBody: JSON.stringify(error),\n          isRetryable: error.type === \"overloaded_error\"\n        });\n      }\n    } finally {\n      firstChunkReader.cancel().catch(() => {\n      });\n      firstChunkReader.releaseLock();\n    }\n    return {\n      stream: streamForConsumer,\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n  }\n};\nfunction getModelCapabilities(modelId) {\n  if (modelId.includes(\"claude-opus-5\")) {\n    return {\n      maxOutputTokens: 128e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: true,\n      rejectsThinkingDisabledAboveHighEffort: true,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-opus-4-8\") || modelId.includes(\"claude-opus-4-7\") || modelId.includes(\"claude-fable-5\") || modelId.includes(\"claude-sonnet-5\")) {\n    return {\n      maxOutputTokens: 128e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: true,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-sonnet-4-6\") || modelId.includes(\"claude-opus-4-6\")) {\n    return {\n      maxOutputTokens: 128e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-sonnet-4-5\") || modelId.includes(\"claude-opus-4-5\") || modelId.includes(\"claude-haiku-4-5\")) {\n    return {\n      maxOutputTokens: 64e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-opus-4-1\")) {\n    return {\n      maxOutputTokens: 32e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-sonnet-4-\")) {\n    return {\n      maxOutputTokens: 64e3,\n      supportsStructuredOutput: false,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-opus-4-\")) {\n    return {\n      maxOutputTokens: 32e3,\n      supportsStructuredOutput: false,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (modelId.includes(\"claude-3-haiku\")) {\n    return {\n      maxOutputTokens: 4096,\n      supportsStructuredOutput: false,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: true\n    };\n  } else if (/claude-(?:instant(?:-|$)|v?2(?=$|[-.:])|3(?=$|[-.]))/.test(modelId)) {\n    return {\n      maxOutputTokens: 4096,\n      supportsStructuredOutput: false,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: false\n    };\n  } else if (modelId.includes(\"claude-\")) {\n    return {\n      maxOutputTokens: 128e3,\n      supportsStructuredOutput: true,\n      rejectsSamplingParameters: true,\n      rejectsThinkingDisabledAboveHighEffort: true,\n      isKnownModel: false\n    };\n  } else {\n    return {\n      maxOutputTokens: 4096,\n      supportsStructuredOutput: false,\n      rejectsSamplingParameters: false,\n      rejectsThinkingDisabledAboveHighEffort: false,\n      isKnownModel: false\n    };\n  }\n}\nfunction hasWebTool20260209WithoutCodeExecution(tools) {\n  if (!tools) {\n    return false;\n  }\n  let hasWebTool20260209 = false;\n  let hasCodeExecutionTool = false;\n  for (const tool of tools) {\n    if (\"type\" in tool && (tool.type === \"web_fetch_20260209\" || tool.type === \"web_search_20260209\")) {\n      hasWebTool20260209 = true;\n      continue;\n    }\n    if (tool.name === \"code_execution\") {\n      hasCodeExecutionTool = true;\n      break;\n    }\n  }\n  return hasWebTool20260209 && !hasCodeExecutionTool;\n}\nfunction mapAnthropicResponseContextManagement(contextManagement) {\n  return contextManagement ? {\n    appliedEdits: contextManagement.applied_edits.map((edit) => {\n      const strategy = edit.type;\n      switch (strategy) {\n        case \"clear_tool_uses_20250919\":\n          return {\n            type: edit.type,\n            clearedToolUses: edit.cleared_tool_uses,\n            clearedInputTokens: edit.cleared_input_tokens\n          };\n        case \"clear_thinking_20251015\":\n          return {\n            type: edit.type,\n            clearedThinkingTurns: edit.cleared_thinking_turns,\n            clearedInputTokens: edit.cleared_input_tokens\n          };\n        case \"compact_20260112\":\n          return {\n            type: edit.type\n          };\n      }\n    }).filter((edit) => edit !== void 0)\n  } : null;\n}\nfunction mapAnthropicStopDetails(stopDetails) {\n  if (stopDetails == null) {\n    return void 0;\n  }\n  return {\n    type: stopDetails.type,\n    ...stopDetails.category != null ? { category: stopDetails.category } : {},\n    ...stopDetails.explanation != null ? { explanation: stopDetails.explanation } : {},\n    ...stopDetails.recommended_model != null ? { recommendedModel: stopDetails.recommended_model } : {}\n  };\n}\n\n// src/tool/bash_20241022.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory2,\n  lazySchema as lazySchema13,\n  zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar bash_20241022InputSchema = lazySchema13(\n  () => zodSchema13(\n    z14.object({\n      command: z14.string(),\n      restart: z14.boolean().optional()\n    })\n  )\n);\nvar bash_20241022 = createProviderToolFactory2({\n  id: \"anthropic.bash_20241022\",\n  inputSchema: bash_20241022InputSchema\n});\n\n// src/tool/bash_20250124.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory3,\n  lazySchema as lazySchema14,\n  zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar bash_20250124InputSchema = lazySchema14(\n  () => zodSchema14(\n    z15.object({\n      command: z15.string(),\n      restart: z15.boolean().optional()\n    })\n  )\n);\nvar bash_20250124 = createProviderToolFactory3({\n  id: \"anthropic.bash_20250124\",\n  inputSchema: bash_20250124InputSchema\n});\n\n// src/tool/computer_20241022.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory4,\n  lazySchema as lazySchema15,\n  zodSchema as zodSchema15\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar computer_20241022InputSchema = lazySchema15(\n  () => zodSchema15(\n    z16.object({\n      action: z16.enum([\n        \"key\",\n        \"type\",\n        \"mouse_move\",\n        \"left_click\",\n        \"left_click_drag\",\n        \"right_click\",\n        \"middle_click\",\n        \"double_click\",\n        \"screenshot\",\n        \"cursor_position\"\n      ]),\n      coordinate: z16.array(z16.number().int()).optional(),\n      text: z16.string().optional()\n    })\n  )\n);\nvar computer_20241022 = createProviderToolFactory4({\n  id: \"anthropic.computer_20241022\",\n  inputSchema: computer_20241022InputSchema\n});\n\n// src/tool/computer_20250124.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory5,\n  lazySchema as lazySchema16,\n  zodSchema as zodSchema16\n} from \"@ai-sdk/provider-utils\";\nimport { z as z17 } from \"zod/v4\";\nvar computer_20250124InputSchema = lazySchema16(\n  () => zodSchema16(\n    z17.object({\n      action: z17.enum([\n        \"key\",\n        \"hold_key\",\n        \"type\",\n        \"cursor_position\",\n        \"mouse_move\",\n        \"left_mouse_down\",\n        \"left_mouse_up\",\n        \"left_click\",\n        \"left_click_drag\",\n        \"right_click\",\n        \"middle_click\",\n        \"double_click\",\n        \"triple_click\",\n        \"scroll\",\n        \"wait\",\n        \"screenshot\"\n      ]),\n      coordinate: z17.tuple([z17.number().int(), z17.number().int()]).optional(),\n      duration: z17.number().optional(),\n      scroll_amount: z17.number().optional(),\n      scroll_direction: z17.enum([\"up\", \"down\", \"left\", \"right\"]).optional(),\n      start_coordinate: z17.tuple([z17.number().int(), z17.number().int()]).optional(),\n      text: z17.string().optional()\n    })\n  )\n);\nvar computer_20250124 = createProviderToolFactory5({\n  id: \"anthropic.computer_20250124\",\n  inputSchema: computer_20250124InputSchema\n});\n\n// src/tool/computer_20251124.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory6,\n  lazySchema as lazySchema17,\n  zodSchema as zodSchema17\n} from \"@ai-sdk/provider-utils\";\nimport { z as z18 } from \"zod/v4\";\nvar computer_20251124InputSchema = lazySchema17(\n  () => zodSchema17(\n    z18.object({\n      action: z18.enum([\n        \"key\",\n        \"hold_key\",\n        \"type\",\n        \"cursor_position\",\n        \"mouse_move\",\n        \"left_mouse_down\",\n        \"left_mouse_up\",\n        \"left_click\",\n        \"left_click_drag\",\n        \"right_click\",\n        \"middle_click\",\n        \"double_click\",\n        \"triple_click\",\n        \"scroll\",\n        \"wait\",\n        \"screenshot\",\n        \"zoom\"\n      ]),\n      coordinate: z18.tuple([z18.number().int(), z18.number().int()]).optional(),\n      duration: z18.number().optional(),\n      region: z18.tuple([\n        z18.number().int(),\n        z18.number().int(),\n        z18.number().int(),\n        z18.number().int()\n      ]).optional(),\n      scroll_amount: z18.number().optional(),\n      scroll_direction: z18.enum([\"up\", \"down\", \"left\", \"right\"]).optional(),\n      start_coordinate: z18.tuple([z18.number().int(), z18.number().int()]).optional(),\n      text: z18.string().optional()\n    })\n  )\n);\nvar computer_20251124 = createProviderToolFactory6({\n  id: \"anthropic.computer_20251124\",\n  inputSchema: computer_20251124InputSchema\n});\n\n// src/tool/memory_20250818.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory7,\n  lazySchema as lazySchema18,\n  zodSchema as zodSchema18\n} from \"@ai-sdk/provider-utils\";\nimport { z as z19 } from \"zod/v4\";\nvar memory_20250818InputSchema = lazySchema18(\n  () => zodSchema18(\n    z19.discriminatedUnion(\"command\", [\n      z19.object({\n        command: z19.literal(\"view\"),\n        path: z19.string(),\n        view_range: z19.tuple([z19.number(), z19.number()]).optional()\n      }),\n      z19.object({\n        command: z19.literal(\"create\"),\n        path: z19.string(),\n        file_text: z19.string()\n      }),\n      z19.object({\n        command: z19.literal(\"str_replace\"),\n        path: z19.string(),\n        old_str: z19.string(),\n        new_str: z19.string()\n      }),\n      z19.object({\n        command: z19.literal(\"insert\"),\n        path: z19.string(),\n        insert_line: z19.number(),\n        insert_text: z19.string()\n      }),\n      z19.object({\n        command: z19.literal(\"delete\"),\n        path: z19.string()\n      }),\n      z19.object({\n        command: z19.literal(\"rename\"),\n        old_path: z19.string(),\n        new_path: z19.string()\n      })\n    ])\n  )\n);\nvar memory_20250818 = createProviderToolFactory7({\n  id: \"anthropic.memory_20250818\",\n  inputSchema: memory_20250818InputSchema\n});\n\n// src/tool/text-editor_20241022.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory8,\n  lazySchema as lazySchema19,\n  zodSchema as zodSchema19\n} from \"@ai-sdk/provider-utils\";\nimport { z as z20 } from \"zod/v4\";\nvar textEditor_20241022InputSchema = lazySchema19(\n  () => zodSchema19(\n    z20.object({\n      command: z20.enum([\"view\", \"create\", \"str_replace\", \"insert\", \"undo_edit\"]),\n      path: z20.string(),\n      file_text: z20.string().optional(),\n      insert_line: z20.number().int().optional(),\n      new_str: z20.string().optional(),\n      insert_text: z20.string().optional(),\n      old_str: z20.string().optional(),\n      view_range: z20.array(z20.number().int()).optional()\n    })\n  )\n);\nvar textEditor_20241022 = createProviderToolFactory8({\n  id: \"anthropic.text_editor_20241022\",\n  inputSchema: textEditor_20241022InputSchema\n});\n\n// src/tool/text-editor_20250124.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory9,\n  lazySchema as lazySchema20,\n  zodSchema as zodSchema20\n} from \"@ai-sdk/provider-utils\";\nimport { z as z21 } from \"zod/v4\";\nvar textEditor_20250124InputSchema = lazySchema20(\n  () => zodSchema20(\n    z21.object({\n      command: z21.enum([\"view\", \"create\", \"str_replace\", \"insert\", \"undo_edit\"]),\n      path: z21.string(),\n      file_text: z21.string().optional(),\n      insert_line: z21.number().int().optional(),\n      new_str: z21.string().optional(),\n      insert_text: z21.string().optional(),\n      old_str: z21.string().optional(),\n      view_range: z21.array(z21.number().int()).optional()\n    })\n  )\n);\nvar textEditor_20250124 = createProviderToolFactory9({\n  id: \"anthropic.text_editor_20250124\",\n  inputSchema: textEditor_20250124InputSchema\n});\n\n// src/tool/text-editor_20250429.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory10,\n  lazySchema as lazySchema21,\n  zodSchema as zodSchema21\n} from \"@ai-sdk/provider-utils\";\nimport { z as z22 } from \"zod/v4\";\nvar textEditor_20250429InputSchema = lazySchema21(\n  () => zodSchema21(\n    z22.object({\n      command: z22.enum([\"view\", \"create\", \"str_replace\", \"insert\"]),\n      path: z22.string(),\n      file_text: z22.string().optional(),\n      insert_line: z22.number().int().optional(),\n      new_str: z22.string().optional(),\n      insert_text: z22.string().optional(),\n      old_str: z22.string().optional(),\n      view_range: z22.array(z22.number().int()).optional()\n    })\n  )\n);\nvar textEditor_20250429 = createProviderToolFactory10({\n  id: \"anthropic.text_editor_20250429\",\n  inputSchema: textEditor_20250429InputSchema\n});\n\n// src/tool/tool-search-bm25_20251119.ts\nimport {\n  createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema10,\n  lazySchema as lazySchema22,\n  zodSchema as zodSchema22\n} from \"@ai-sdk/provider-utils\";\nimport { z as z23 } from \"zod/v4\";\nvar toolSearchBm25_20251119OutputSchema = lazySchema22(\n  () => zodSchema22(\n    z23.array(\n      z23.object({\n        type: z23.literal(\"tool_reference\"),\n        toolName: z23.string()\n      })\n    )\n  )\n);\nvar toolSearchBm25_20251119InputSchema = lazySchema22(\n  () => zodSchema22(\n    z23.object({\n      /**\n       * A natural language query to search for tools.\n       * Claude will use BM25 text search to find relevant tools.\n       */\n      query: z23.string(),\n      /**\n       * Maximum number of tools to return. Optional.\n       */\n      limit: z23.number().optional()\n    })\n  )\n);\nvar factory11 = createProviderToolFactoryWithOutputSchema10({\n  id: \"anthropic.tool_search_bm25_20251119\",\n  inputSchema: toolSearchBm25_20251119InputSchema,\n  outputSchema: toolSearchBm25_20251119OutputSchema,\n  supportsDeferredResults: true\n});\nvar toolSearchBm25_20251119 = (args = {}) => {\n  return factory11(args);\n};\n\n// src/anthropic-tools.ts\nvar anthropicTools = {\n  /**\n   * Pairs a faster executor model with a higher-intelligence advisor model\n   * that provides strategic guidance mid-generation.\n   *\n   * The advisor lets a faster, lower-cost executor model consult a\n   * higher-intelligence advisor model server-side. The advisor reads the\n   * executor's full transcript and produces a plan or course correction;\n   * the executor continues with the task, informed by the advice. All of\n   * this happens inside a single `/v1/messages` request.\n   *\n   * Beta header `advisor-tool-2026-03-01` is added automatically when this\n   * tool is included.\n   *\n   * Multi-turn conversations: pass the full assistant content (including\n   * `advisor_tool_result` blocks) back to the API on subsequent turns. If\n   * you omit the advisor tool from `tools` on a follow-up turn while the\n   * message history still contains `advisor_tool_result` blocks, the API\n   * returns a `400 invalid_request_error`.\n   *\n   * Supported executor models: Claude Haiku 4.5, Sonnet 4.6, Opus 4.6,\n   * Opus 4.7. The advisor must be at least as capable as the executor.\n   *\n   * @param model - The advisor model ID (required), e.g. `\"claude-opus-4-8\"`.\n   * @param maxUses - Maximum advisor calls per request (per-request cap).\n   * @param caching - Enables prompt caching for the advisor's transcript\n   * across calls within a conversation. Worthwhile from ~3 advisor calls\n   * per conversation.\n   */\n  advisor_20260301,\n  /**\n   * The bash tool enables Claude to execute shell commands in a persistent bash session,\n   * allowing system operations, script execution, and command-line automation.\n   *\n   * Image results are supported.\n   */\n  bash_20241022,\n  /**\n   * The bash tool enables Claude to execute shell commands in a persistent bash session,\n   * allowing system operations, script execution, and command-line automation.\n   *\n   * Image results are supported.\n   */\n  bash_20250124,\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   */\n  codeExecution_20250522,\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run both Python and Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   *\n   * This is the latest version with enhanced Bash support and file operations.\n   */\n  codeExecution_20250825,\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run both Python and Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   *\n   * This is the recommended version. Does not require a beta header.\n   *\n   * Supported models: Claude Opus 4.6, Sonnet 4.6, Sonnet 4.5, Opus 4.5\n   */\n  codeExecution_20260120,\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * Image results are supported.\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   */\n  computer_20241022,\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * Image results are supported.\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   */\n  computer_20250124,\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * This version adds the zoom action for detailed screen region inspection.\n   *\n   * Image results are supported.\n   *\n   * Supported models: Claude Opus 4.5\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   * @param enableZoom - Enable zoom action. Set to true to allow Claude to zoom into specific screen regions. Default: false.\n   */\n  computer_20251124,\n  /**\n   * The memory tool enables Claude to store and retrieve information across conversations through a memory file directory.\n   * Claude can create, read, update, and delete files that persist between sessions,\n   * allowing it to build knowledge over time without keeping everything in the context window.\n   * The memory tool operates client-side—you control where and how the data is stored through your own infrastructure.\n   *\n   * Supported models: Claude Sonnet 4.5, Claude Sonnet 4, Claude Opus 4.1, Claude Opus 4.\n   */\n  memory_20250818,\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Supported models: Claude Sonnet 3.5\n   */\n  textEditor_20241022,\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Supported models: Claude Sonnet 3.7\n   */\n  textEditor_20250124,\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Note: This version does not support the \"undo_edit\" command.\n   *\n   * @deprecated Use textEditor_20250728 instead\n   */\n  textEditor_20250429,\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Note: This version does not support the \"undo_edit\" command and adds optional max_characters parameter.\n   *\n   * Supported models: Claude Sonnet 4, Opus 4, and Opus 4.1\n   *\n   * @param maxCharacters - Optional maximum number of characters to view in the file\n   */\n  textEditor_20250728,\n  /**\n   * Creates a web fetch tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - The max_uses parameter limits the number of web fetches performed\n   * @param allowedDomains - Only fetch from these domains\n   * @param blockedDomains - Never fetch from these domains\n   * @param citations - Unlike web search where citations are always enabled, citations are optional for web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages from fetched documents.\n   * @param maxContentTokens - The max_content_tokens parameter limits the amount of content that will be included in the context.\n   */\n  webFetch_20250910,\n  /**\n   * Creates a web fetch tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - The max_uses parameter limits the number of web fetches performed\n   * @param allowedDomains - Only fetch from these domains\n   * @param blockedDomains - Never fetch from these domains\n   * @param citations - Unlike web search where citations are always enabled, citations are optional for web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages from fetched documents.\n   * @param maxContentTokens - The max_content_tokens parameter limits the amount of content that will be included in the context.\n   */\n  webFetch_20260209,\n  /**\n   * Creates a web search tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - Maximum number of web searches Claude can perform during the conversation.\n   * @param allowedDomains - Optional list of domains that Claude is allowed to search.\n   * @param blockedDomains - Optional list of domains that Claude should avoid when searching.\n   * @param userLocation - Optional user location information to provide geographically relevant search results.\n   */\n  webSearch_20250305,\n  /**\n   * Creates a web search tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - Maximum number of web searches Claude can perform during the conversation.\n   * @param allowedDomains - Optional list of domains that Claude is allowed to search.\n   * @param blockedDomains - Optional list of domains that Claude should avoid when searching.\n   * @param userLocation - Optional user location information to provide geographically relevant search results.\n   */\n  webSearch_20260209,\n  /**\n   * Creates a tool search tool that uses regex patterns to find tools.\n   *\n   * The tool search tool enables Claude to work with hundreds or thousands of tools\n   * by dynamically discovering and loading them on-demand. Instead of loading all\n   * tool definitions into the context window upfront, Claude searches your tool\n   * catalog and loads only the tools it needs.\n   *\n   * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools\n   * to mark them for deferred loading.\n   *\n   * Supported models: Claude Opus 4.5, Claude Sonnet 4.5\n   */\n  toolSearchRegex_20251119,\n  /**\n   * Creates a tool search tool that uses BM25 (natural language) to find tools.\n   *\n   * The tool search tool enables Claude to work with hundreds or thousands of tools\n   * by dynamically discovering and loading them on-demand. Instead of loading all\n   * tool definitions into the context window upfront, Claude searches your tool\n   * catalog and loads only the tools it needs.\n   *\n   * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools\n   * to mark them for deferred loading.\n   *\n   * Supported models: Claude Opus 4.5, Claude Sonnet 4.5\n   */\n  toolSearchBm25_20251119\n};\n\n// src/anthropic-provider.ts\nvar ANTHROPIC_API_URL = \"https://api.anthropic.com\";\nvar ANTHROPIC_API_VERSIONED_URL = `${ANTHROPIC_API_URL}/v1`;\nfunction normalizeBaseURL(baseURL) {\n  const baseURLWithoutTrailingSlash = withoutTrailingSlash(baseURL);\n  return baseURLWithoutTrailingSlash === ANTHROPIC_API_URL ? ANTHROPIC_API_VERSIONED_URL : baseURLWithoutTrailingSlash;\n}\nfunction createAnthropic(options = {}) {\n  var _a, _b;\n  const baseURL = (_a = normalizeBaseURL(\n    loadOptionalSetting({\n      settingValue: options.baseURL,\n      environmentVariableName: \"ANTHROPIC_BASE_URL\"\n    })\n  )) != null ? _a : ANTHROPIC_API_VERSIONED_URL;\n  const providerName = (_b = options.name) != null ? _b : \"anthropic.messages\";\n  if (options.apiKey && options.authToken) {\n    throw new InvalidArgumentError({\n      argument: \"apiKey/authToken\",\n      message: \"Both apiKey and authToken were provided. Please use only one authentication method.\"\n    });\n  }\n  const getHeaders = () => {\n    const authHeaders = options.authToken ? { Authorization: `Bearer ${options.authToken}` } : {\n      \"x-api-key\": loadApiKey({\n        apiKey: options.apiKey,\n        environmentVariableName: \"ANTHROPIC_API_KEY\",\n        description: \"Anthropic\"\n      })\n    };\n    return withUserAgentSuffix(\n      {\n        \"anthropic-version\": \"2023-06-01\",\n        ...authHeaders,\n        ...options.headers\n      },\n      `ai-sdk/anthropic/${VERSION}`\n    );\n  };\n  const createChatModel = (modelId) => {\n    var _a2;\n    return new AnthropicMessagesLanguageModel(modelId, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n      supportedUrls: () => ({\n        \"image/*\": [/^https?:\\/\\/.*$/],\n        \"application/pdf\": [/^https?:\\/\\/.*$/]\n      })\n    });\n  };\n  const provider = function(modelId) {\n    if (new.target) {\n      throw new Error(\n        \"The Anthropic model function cannot be called with the new keyword.\"\n      );\n    }\n    return createChatModel(modelId);\n  };\n  provider.specificationVersion = \"v3\";\n  provider.languageModel = createChatModel;\n  provider.chat = createChatModel;\n  provider.messages = createChatModel;\n  provider.embeddingModel = (modelId) => {\n    throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n  };\n  provider.textEmbeddingModel = provider.embeddingModel;\n  provider.imageModel = (modelId) => {\n    throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n  };\n  provider.tools = anthropicTools;\n  return provider;\n}\nvar anthropic = createAnthropic();\n\n// src/forward-anthropic-container-id-from-last-step.ts\nfunction forwardAnthropicContainerIdFromLastStep({\n  steps\n}) {\n  var _a, _b, _c;\n  for (let i = steps.length - 1; i >= 0; i--) {\n    const containerId = (_c = (_b = (_a = steps[i].providerMetadata) == null ? void 0 : _a.anthropic) == null ? void 0 : _b.container) == null ? void 0 : _c.id;\n    if (containerId) {\n      return {\n        providerOptions: {\n          anthropic: {\n            container: { id: containerId }\n          }\n        }\n      };\n    }\n  }\n  return void 0;\n}\nexport {\n  VERSION,\n  anthropic,\n  createAnthropic,\n  forwardAnthropicContainerIdFromLastStep\n};\n//# sourceMappingURL=index.mjs.map","declare const __MASTRA_VERSION__: string;\n\nexport const MASTRA_USER_AGENT = typeof __MASTRA_VERSION__ !== 'undefined' ? `mastra/${__MASTRA_VERSION__}` : 'mastra';\n\n// anything in this list will use the corresponding ai sdk package instead of using openai-compat endpoints\nexport const PROVIDERS_WITH_INSTALLED_PACKAGES = [\n  'anthropic',\n  'cerebras',\n  'deepinfra',\n  'deepseek',\n  'google',\n  'groq',\n  'mistral',\n  'openai',\n  'openrouter',\n  'perplexity',\n  'togetherai',\n  'vercel',\n  'xai',\n];\n\n// anything here doesn't show up in model router. for now that's just copilot which requires a special oauth flow\nexport const EXCLUDED_PROVIDERS = ['github-copilot'];\n\n// Header used to pass gateway API key when Authorization is occupied by an OAuth token\nexport const GATEWAY_AUTH_HEADER = 'X-Memory-Gateway-Authorization';\n","// src/google-provider.ts\nimport {\n  generateId as generateId2,\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix as withUserAgentSuffix2\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"3.0.101\" : \"0.0.0-test\";\n\n// src/google-generative-ai-embedding-model.ts\nimport {\n  TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders,\n  createJsonResponseHandler,\n  lazySchema as lazySchema3,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/google-error.ts\nimport {\n  createJsonErrorResponseHandler,\n  lazySchema,\n  zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar googleErrorDataSchema = lazySchema(\n  () => zodSchema(\n    z.object({\n      error: z.object({\n        code: z.number().nullable(),\n        message: z.string(),\n        status: z.string()\n      })\n    })\n  )\n);\nvar googleFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: googleErrorDataSchema,\n  errorToMessage: (data) => data.error.message\n});\n\n// src/google-generative-ai-embedding-options.ts\nimport {\n  lazySchema as lazySchema2,\n  zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar googleEmbeddingContentPartSchema = z2.union([\n  z2.object({ text: z2.string() }),\n  z2.object({\n    inlineData: z2.object({\n      mimeType: z2.string(),\n      data: z2.string()\n    })\n  }),\n  z2.object({\n    fileData: z2.object({\n      fileUri: z2.string(),\n      mimeType: z2.string()\n    })\n  })\n]);\nvar googleEmbeddingModelOptions = lazySchema2(\n  () => zodSchema2(\n    z2.object({\n      /**\n       * Optional. Optional reduced dimension for the output embedding.\n       * If set, excessive values in the output embedding are truncated from the end.\n       */\n      outputDimensionality: z2.number().optional(),\n      /**\n       * Optional. Specifies the task type for generating embeddings.\n       * Supported task types:\n       * - SEMANTIC_SIMILARITY: Optimized for text similarity.\n       * - CLASSIFICATION: Optimized for text classification.\n       * - CLUSTERING: Optimized for clustering texts based on similarity.\n       * - RETRIEVAL_DOCUMENT: Optimized for document retrieval.\n       * - RETRIEVAL_QUERY: Optimized for query-based retrieval.\n       * - QUESTION_ANSWERING: Optimized for answering questions.\n       * - FACT_VERIFICATION: Optimized for verifying factual information.\n       * - CODE_RETRIEVAL_QUERY: Optimized for retrieving code blocks based on natural language queries.\n       */\n      taskType: z2.enum([\n        \"SEMANTIC_SIMILARITY\",\n        \"CLASSIFICATION\",\n        \"CLUSTERING\",\n        \"RETRIEVAL_DOCUMENT\",\n        \"RETRIEVAL_QUERY\",\n        \"QUESTION_ANSWERING\",\n        \"FACT_VERIFICATION\",\n        \"CODE_RETRIEVAL_QUERY\"\n      ]).optional(),\n      /**\n       * Optional. Per-value multimodal content parts for embedding non-text\n       * content (images, video, PDF, audio). Each entry corresponds to the\n       * embedding value at the same index and its parts are merged with the\n       * text value in the request. Use `null` for entries that are text-only.\n       *\n       * The array length must match the number of values being embedded. In\n       * the case of a single embedding, the array length must be 1.\n       */\n      content: z2.array(z2.array(googleEmbeddingContentPartSchema).min(1).nullable()).optional()\n    })\n  )\n);\n\n// src/google-generative-ai-embedding-model.ts\nvar GoogleGenerativeAIEmbeddingModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    this.maxEmbeddingsPerCall = 100;\n    this.supportsParallelCalls = true;\n    this.modelId = modelId;\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions\n  }) {\n    const googleOptions = await parseProviderOptions({\n      provider: \"google\",\n      providerOptions,\n      schema: googleEmbeddingModelOptions\n    });\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values\n      });\n    }\n    const mergedHeaders = combineHeaders(\n      await resolve(this.config.headers),\n      headers\n    );\n    const multimodalContent = googleOptions == null ? void 0 : googleOptions.content;\n    if (multimodalContent != null && multimodalContent.length !== values.length) {\n      throw new Error(\n        `The number of multimodal content entries (${multimodalContent.length}) must match the number of values (${values.length}).`\n      );\n    }\n    if (values.length === 1) {\n      const valueParts = multimodalContent == null ? void 0 : multimodalContent[0];\n      const textPart = values[0] ? [{ text: values[0] }] : [];\n      const parts = valueParts != null ? [...textPart, ...valueParts] : [{ text: values[0] }];\n      const {\n        responseHeaders: responseHeaders2,\n        value: response2,\n        rawValue: rawValue2\n      } = await postJsonToApi({\n        url: `${this.config.baseURL}/models/${this.modelId}:embedContent`,\n        headers: mergedHeaders,\n        body: {\n          model: `models/${this.modelId}`,\n          content: {\n            parts\n          },\n          outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n          taskType: googleOptions == null ? void 0 : googleOptions.taskType\n        },\n        failedResponseHandler: googleFailedResponseHandler,\n        successfulResponseHandler: createJsonResponseHandler(\n          googleGenerativeAISingleEmbeddingResponseSchema\n        ),\n        abortSignal,\n        fetch: this.config.fetch\n      });\n      return {\n        warnings: [],\n        embeddings: [response2.embedding.values],\n        usage: void 0,\n        response: { headers: responseHeaders2, body: rawValue2 }\n      };\n    }\n    const {\n      responseHeaders,\n      value: response,\n      rawValue\n    } = await postJsonToApi({\n      url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,\n      headers: mergedHeaders,\n      body: {\n        requests: values.map((value, index) => {\n          const valueParts = multimodalContent == null ? void 0 : multimodalContent[index];\n          const textPart = value ? [{ text: value }] : [];\n          return {\n            model: `models/${this.modelId}`,\n            content: {\n              role: \"user\",\n              parts: valueParts != null ? [...textPart, ...valueParts] : [{ text: value }]\n            },\n            outputDimensionality: googleOptions == null ? void 0 : googleOptions.outputDimensionality,\n            taskType: googleOptions == null ? void 0 : googleOptions.taskType\n          };\n        })\n      },\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        googleGenerativeAITextEmbeddingResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      warnings: [],\n      embeddings: response.embeddings.map((item) => item.values),\n      usage: void 0,\n      response: { headers: responseHeaders, body: rawValue }\n    };\n  }\n};\nvar googleGenerativeAITextEmbeddingResponseSchema = lazySchema3(\n  () => zodSchema3(\n    z3.object({\n      embeddings: z3.array(z3.object({ values: z3.array(z3.number()) }))\n    })\n  )\n);\nvar googleGenerativeAISingleEmbeddingResponseSchema = lazySchema3(\n  () => zodSchema3(\n    z3.object({\n      embedding: z3.object({ values: z3.array(z3.number()) })\n    })\n  )\n);\n\n// src/google-generative-ai-language-model.ts\nimport {\n  combineHeaders as combineHeaders2,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler as createJsonResponseHandler2,\n  generateId,\n  lazySchema as lazySchema5,\n  parseProviderOptions as parseProviderOptions2,\n  postJsonToApi as postJsonToApi2,\n  resolve as resolve2,\n  zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/convert-google-generative-ai-usage.ts\nfunction convertGoogleGenerativeAIUsage(usage) {\n  var _a, _b, _c, _d;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const promptTokens = (_a = usage.promptTokenCount) != null ? _a : 0;\n  const candidatesTokens = (_b = usage.candidatesTokenCount) != null ? _b : 0;\n  const cachedContentTokens = (_c = usage.cachedContentTokenCount) != null ? _c : 0;\n  const thoughtsTokens = (_d = usage.thoughtsTokenCount) != null ? _d : 0;\n  return {\n    inputTokens: {\n      total: promptTokens,\n      noCache: promptTokens - cachedContentTokens,\n      cacheRead: cachedContentTokens,\n      cacheWrite: void 0\n    },\n    outputTokens: {\n      total: candidatesTokens + thoughtsTokens,\n      text: candidatesTokens,\n      reasoning: thoughtsTokens\n    },\n    raw: usage\n  };\n}\n\n// src/convert-json-schema-to-openapi-schema.ts\nfunction convertJSONSchemaToOpenAPISchema(jsonSchema, isRoot = true) {\n  if (jsonSchema == null) {\n    return void 0;\n  }\n  if (isEmptyObjectSchema(jsonSchema)) {\n    if (isRoot) {\n      return void 0;\n    }\n    if (typeof jsonSchema === \"object\" && jsonSchema.description) {\n      return { type: \"object\", description: jsonSchema.description };\n    }\n    return { type: \"object\" };\n  }\n  if (typeof jsonSchema === \"boolean\") {\n    return { type: \"boolean\", properties: {} };\n  }\n  const {\n    type,\n    description,\n    required,\n    properties,\n    items,\n    allOf,\n    anyOf,\n    oneOf,\n    format,\n    const: constValue,\n    minLength,\n    enum: enumValues\n  } = jsonSchema;\n  const result = {};\n  if (description) result.description = description;\n  if (required) result.required = required;\n  if (format) result.format = format;\n  if (constValue !== void 0) {\n    result.enum = [constValue];\n  }\n  if (type) {\n    if (Array.isArray(type)) {\n      const hasNull = type.includes(\"null\");\n      const nonNullTypes = type.filter((t) => t !== \"null\");\n      if (nonNullTypes.length === 0) {\n        result.type = \"null\";\n      } else {\n        result.anyOf = nonNullTypes.map((t) => ({ type: t }));\n        if (hasNull) {\n          result.nullable = true;\n        }\n      }\n    } else {\n      result.type = type;\n    }\n  }\n  if (enumValues !== void 0) {\n    result.enum = enumValues;\n  }\n  if (properties != null) {\n    result.properties = Object.entries(properties).reduce(\n      (acc, [key, value]) => {\n        acc[key] = convertJSONSchemaToOpenAPISchema(value, false);\n        return acc;\n      },\n      {}\n    );\n  }\n  if (items) {\n    result.items = Array.isArray(items) ? items.map((item) => convertJSONSchemaToOpenAPISchema(item, false)) : convertJSONSchemaToOpenAPISchema(items, false);\n  }\n  if (allOf) {\n    result.allOf = allOf.map(\n      (item) => convertJSONSchemaToOpenAPISchema(item, false)\n    );\n  }\n  if (anyOf) {\n    if (anyOf.some(\n      (schema) => typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\"\n    )) {\n      const nonNullSchemas = anyOf.filter(\n        (schema) => !(typeof schema === \"object\" && (schema == null ? void 0 : schema.type) === \"null\")\n      );\n      if (nonNullSchemas.length === 1) {\n        const converted = convertJSONSchemaToOpenAPISchema(\n          nonNullSchemas[0],\n          false\n        );\n        if (typeof converted === \"object\") {\n          result.nullable = true;\n          Object.assign(result, converted);\n        }\n      } else {\n        result.anyOf = nonNullSchemas.map(\n          (item) => convertJSONSchemaToOpenAPISchema(item, false)\n        );\n        result.nullable = true;\n      }\n    } else {\n      result.anyOf = anyOf.map(\n        (item) => convertJSONSchemaToOpenAPISchema(item, false)\n      );\n    }\n  }\n  if (oneOf) {\n    result.oneOf = oneOf.map(\n      (item) => convertJSONSchemaToOpenAPISchema(item, false)\n    );\n  }\n  if (minLength !== void 0) {\n    result.minLength = minLength;\n  }\n  return result;\n}\nfunction isEmptyObjectSchema(jsonSchema) {\n  return jsonSchema != null && typeof jsonSchema === \"object\" && jsonSchema.type === \"object\" && (jsonSchema.properties == null || Object.keys(jsonSchema.properties).length === 0) && !jsonSchema.additionalProperties;\n}\n\n// src/convert-to-google-generative-ai-messages.ts\nimport {\n  UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64, secureJsonParse } from \"@ai-sdk/provider-utils\";\nvar SKIP_THOUGHT_SIGNATURE_VALIDATOR = \"skip_thought_signature_validator\";\nfunction getGoogleProviderOptions(providerOptions, providerOptionsName) {\n  const namespaces = [\n    providerOptionsName,\n    \"google\",\n    \"googleVertex\",\n    \"vertex\"\n  ].filter((namespace, index, allNamespaces) => {\n    return allNamespaces.indexOf(namespace) === index;\n  });\n  for (const namespace of namespaces) {\n    const options = providerOptions == null ? void 0 : providerOptions[namespace];\n    if (options != null) {\n      return options;\n    }\n  }\n}\nvar dataUrlRegex = /^data:([^;,]+);base64,(.+)$/s;\nfunction parseBase64DataUrl(value) {\n  const match = dataUrlRegex.exec(value);\n  if (match == null) {\n    return void 0;\n  }\n  return {\n    mediaType: match[1],\n    data: match[2]\n  };\n}\nfunction convertUrlToolResultPart(url) {\n  const parsedDataUrl = parseBase64DataUrl(url);\n  if (parsedDataUrl == null) {\n    return void 0;\n  }\n  return {\n    inlineData: {\n      mimeType: parsedDataUrl.mediaType,\n      data: parsedDataUrl.data\n    }\n  };\n}\nfunction appendToolResultParts(parts, toolName, outputValue, toolCallId, includeFunctionCallIds = true) {\n  const functionResponseParts = [];\n  const responseTextParts = [];\n  for (const contentPart of outputValue) {\n    switch (contentPart.type) {\n      case \"text\": {\n        responseTextParts.push(contentPart.text);\n        break;\n      }\n      case \"image-data\":\n      case \"file-data\": {\n        functionResponseParts.push({\n          inlineData: {\n            mimeType: contentPart.mediaType,\n            data: contentPart.data\n          }\n        });\n        break;\n      }\n      case \"image-url\":\n      case \"file-url\": {\n        const functionResponsePart = convertUrlToolResultPart(\n          contentPart.url\n        );\n        if (functionResponsePart != null) {\n          functionResponseParts.push(functionResponsePart);\n        } else {\n          responseTextParts.push(JSON.stringify(contentPart));\n        }\n        break;\n      }\n      default: {\n        responseTextParts.push(JSON.stringify(contentPart));\n        break;\n      }\n    }\n  }\n  parts.push({\n    functionResponse: {\n      ...includeFunctionCallIds && toolCallId != null ? { id: toolCallId } : {},\n      name: toolName,\n      response: {\n        name: toolName,\n        content: responseTextParts.length > 0 ? responseTextParts.join(\"\\n\") : \"Tool executed successfully.\"\n      },\n      ...functionResponseParts.length > 0 ? { parts: functionResponseParts } : {}\n    }\n  });\n}\nfunction appendLegacyToolResultParts(parts, toolName, outputValue, toolCallId, includeFunctionCallIds = true) {\n  for (const contentPart of outputValue) {\n    switch (contentPart.type) {\n      case \"text\":\n        parts.push({\n          functionResponse: {\n            ...includeFunctionCallIds && toolCallId != null ? { id: toolCallId } : {},\n            name: toolName,\n            response: {\n              name: toolName,\n              content: contentPart.text\n            }\n          }\n        });\n        break;\n      case \"image-data\":\n      case \"file-data\": {\n        const topLevelMediaType = String(contentPart.mediaType).split(\"/\")[0];\n        parts.push(\n          {\n            inlineData: {\n              mimeType: String(contentPart.mediaType),\n              data: String(contentPart.data)\n            }\n          },\n          {\n            text: `Tool executed successfully and returned this ${topLevelMediaType === \"image\" ? \"image\" : \"file\"} as a response`\n          }\n        );\n        break;\n      }\n      default:\n        parts.push({ text: JSON.stringify(contentPart) });\n        break;\n    }\n  }\n}\nfunction convertToGoogleGenerativeAIMessages(prompt, options) {\n  var _a, _b, _c, _d, _e, _f;\n  const systemInstructionParts = [];\n  const contents = [];\n  let systemMessagesAllowed = true;\n  const isGemmaModel = (_a = options == null ? void 0 : options.isGemmaModel) != null ? _a : false;\n  const isGemini3Model = (_b = options == null ? void 0 : options.isGemini3Model) != null ? _b : false;\n  const providerOptionsName = (_c = options == null ? void 0 : options.providerOptionsName) != null ? _c : \"google\";\n  const supportsFunctionResponseParts = (_d = options == null ? void 0 : options.supportsFunctionResponseParts) != null ? _d : true;\n  const onWarning = options == null ? void 0 : options.onWarning;\n  const includeFunctionCallIds = (_e = options == null ? void 0 : options.includeFunctionCallIds) != null ? _e : true;\n  let sentinelInjected = false;\n  const missingSignatureToolNames = [];\n  const injectSkipSignature = (toolName) => {\n    missingSignatureToolNames.push(toolName);\n    sentinelInjected = true;\n    return SKIP_THOUGHT_SIGNATURE_VALIDATOR;\n  };\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case \"system\": {\n        if (!systemMessagesAllowed) {\n          throw new UnsupportedFunctionalityError({\n            functionality: \"system messages are only supported at the beginning of the conversation\"\n          });\n        }\n        systemInstructionParts.push({ text: content });\n        break;\n      }\n      case \"user\": {\n        systemMessagesAllowed = false;\n        const parts = [];\n        for (const part of content) {\n          switch (part.type) {\n            case \"text\": {\n              parts.push({ text: part.text });\n              break;\n            }\n            case \"file\": {\n              const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n              parts.push(\n                part.data instanceof URL ? {\n                  fileData: {\n                    mimeType: mediaType,\n                    fileUri: part.data.toString()\n                  }\n                } : {\n                  inlineData: {\n                    mimeType: mediaType,\n                    data: convertToBase64(part.data)\n                  }\n                }\n              );\n              break;\n            }\n          }\n        }\n        contents.push({ role: \"user\", parts });\n        break;\n      }\n      case \"assistant\": {\n        systemMessagesAllowed = false;\n        let modelResponseHasSignedFunctionCall = false;\n        contents.push({\n          role: \"model\",\n          parts: content.map((part) => {\n            const providerOpts = getGoogleProviderOptions(\n              part.providerOptions,\n              providerOptionsName\n            );\n            const thoughtSignature = (providerOpts == null ? void 0 : providerOpts.thoughtSignature) != null ? String(providerOpts.thoughtSignature) : void 0;\n            switch (part.type) {\n              case \"text\": {\n                return part.text.length === 0 ? void 0 : {\n                  text: part.text,\n                  thoughtSignature\n                };\n              }\n              case \"reasoning\": {\n                return part.text.length === 0 ? void 0 : {\n                  text: part.text,\n                  thought: true,\n                  thoughtSignature\n                };\n              }\n              case \"file\": {\n                if (part.data instanceof URL) {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: \"File data URLs in assistant messages are not supported\"\n                  });\n                }\n                return {\n                  inlineData: {\n                    mimeType: part.mediaType,\n                    data: convertToBase64(part.data)\n                  },\n                  ...(providerOpts == null ? void 0 : providerOpts.thought) === true ? { thought: true } : {},\n                  thoughtSignature\n                };\n              }\n              case \"tool-call\": {\n                const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n                const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n                const isServerToolCall = serverToolCallId != null && serverToolType != null;\n                const shouldSkipMissingSignatureMitigation = (\n                  // Gemini 3 returns a single signature for a parallel\n                  // function-call response on the first standard function\n                  // call. Subsequent standard function calls in the same\n                  // model response legitimately have no signature.\n                  !isServerToolCall && thoughtSignature == null && modelResponseHasSignedFunctionCall\n                );\n                const effectiveThoughtSignature = thoughtSignature != null ? thoughtSignature : isGemini3Model && !shouldSkipMissingSignatureMitigation ? injectSkipSignature(part.toolName) : void 0;\n                if (!isServerToolCall && thoughtSignature != null) {\n                  modelResponseHasSignedFunctionCall = true;\n                }\n                if (isServerToolCall) {\n                  return {\n                    toolCall: {\n                      toolType: serverToolType,\n                      args: typeof part.input === \"string\" ? secureJsonParse(part.input) : part.input,\n                      id: serverToolCallId\n                    },\n                    thoughtSignature: effectiveThoughtSignature\n                  };\n                }\n                return {\n                  functionCall: {\n                    ...includeFunctionCallIds && part.toolCallId != null ? { id: part.toolCallId } : {},\n                    name: part.toolName,\n                    args: part.input\n                  },\n                  thoughtSignature: effectiveThoughtSignature\n                };\n              }\n              case \"tool-result\": {\n                const serverToolCallId = (providerOpts == null ? void 0 : providerOpts.serverToolCallId) != null ? String(providerOpts.serverToolCallId) : void 0;\n                const serverToolType = (providerOpts == null ? void 0 : providerOpts.serverToolType) != null ? String(providerOpts.serverToolType) : void 0;\n                if (serverToolCallId && serverToolType) {\n                  return {\n                    toolResponse: {\n                      toolType: serverToolType,\n                      response: part.output.type === \"json\" ? part.output.value : {},\n                      id: serverToolCallId\n                    },\n                    thoughtSignature\n                  };\n                }\n                return void 0;\n              }\n            }\n          }).filter((part) => part !== void 0)\n        });\n        break;\n      }\n      case \"tool\": {\n        systemMessagesAllowed = false;\n        const parts = [];\n        for (const part of content) {\n          if (part.type === \"tool-approval-response\") {\n            continue;\n          }\n          const partProviderOpts = getGoogleProviderOptions(\n            part.providerOptions,\n            providerOptionsName\n          );\n          const serverToolCallId = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolCallId) != null ? String(partProviderOpts.serverToolCallId) : void 0;\n          const serverToolType = (partProviderOpts == null ? void 0 : partProviderOpts.serverToolType) != null ? String(partProviderOpts.serverToolType) : void 0;\n          if (serverToolCallId && serverToolType) {\n            const serverThoughtSignature = (partProviderOpts == null ? void 0 : partProviderOpts.thoughtSignature) != null ? String(partProviderOpts.thoughtSignature) : void 0;\n            if (contents.length > 0) {\n              const lastContent = contents[contents.length - 1];\n              if (lastContent.role === \"model\") {\n                lastContent.parts.push({\n                  toolResponse: {\n                    toolType: serverToolType,\n                    response: part.output.type === \"json\" ? part.output.value : {},\n                    id: serverToolCallId\n                  },\n                  thoughtSignature: serverThoughtSignature\n                });\n                continue;\n              }\n            }\n          }\n          const output = part.output;\n          if (output.type === \"content\") {\n            if (supportsFunctionResponseParts) {\n              appendToolResultParts(\n                parts,\n                part.toolName,\n                output.value,\n                part.toolCallId,\n                includeFunctionCallIds\n              );\n            } else {\n              appendLegacyToolResultParts(\n                parts,\n                part.toolName,\n                output.value,\n                part.toolCallId,\n                includeFunctionCallIds\n              );\n            }\n          } else {\n            parts.push({\n              functionResponse: {\n                ...includeFunctionCallIds && part.toolCallId != null ? { id: part.toolCallId } : {},\n                name: part.toolName,\n                response: {\n                  name: part.toolName,\n                  content: output.type === \"execution-denied\" ? (_f = output.reason) != null ? _f : \"Tool call execution denied.\" : output.value\n                }\n              }\n            });\n          }\n        }\n        contents.push({\n          role: \"user\",\n          parts\n        });\n        break;\n      }\n    }\n  }\n  if (isGemmaModel && systemInstructionParts.length > 0 && contents.length > 0 && contents[0].role === \"user\") {\n    const systemText = systemInstructionParts.map((part) => part.text).join(\"\\n\\n\");\n    contents[0].parts.unshift({ text: systemText + \"\\n\\n\" });\n  }\n  if (sentinelInjected && onWarning != null) {\n    const uniqueToolNames = Array.from(new Set(missingSignatureToolNames));\n    onWarning({\n      type: \"other\",\n      message: `Replayed ${missingSignatureToolNames.length} \\`functionCall\\` part(s) for a Gemini 3 model without a \\`thoughtSignature\\` (tools: ${uniqueToolNames.map((name) => `\\`${name}\\``).join(\", \")}). Injected the documented \\`skip_thought_signature_validator\\` sentinel to keep the request from failing with HTTP 400. The likely cause is application code that drops \\`providerOptions.google.thoughtSignature\\` when persisting or serializing assistant tool-call messages. See https://ai.google.dev/gemini-api/docs/thought-signatures.`\n    });\n  }\n  return {\n    systemInstruction: systemInstructionParts.length > 0 && !isGemmaModel ? { parts: systemInstructionParts } : void 0,\n    contents\n  };\n}\n\n// src/get-model-path.ts\nfunction getModelPath(modelId) {\n  return modelId.includes(\"/\") ? modelId : `models/${modelId}`;\n}\n\n// src/google-generative-ai-options.ts\nimport {\n  lazySchema as lazySchema4,\n  zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar googleLanguageModelOptions = lazySchema4(\n  () => zodSchema4(\n    z4.object({\n      responseModalities: z4.array(z4.enum([\"TEXT\", \"IMAGE\"])).optional(),\n      thinkingConfig: z4.object({\n        thinkingBudget: z4.number().optional(),\n        includeThoughts: z4.boolean().optional(),\n        // https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#thinking_level\n        thinkingLevel: z4.enum([\"minimal\", \"low\", \"medium\", \"high\"]).optional()\n      }).optional(),\n      /**\n       * Optional.\n       * The name of the cached content used as context to serve the prediction.\n       * Format: cachedContents/{cachedContent}\n       */\n      cachedContent: z4.string().optional(),\n      /**\n       * Optional. Enable structured output. Default is true.\n       *\n       * This is useful when the JSON Schema contains elements that are\n       * not supported by the OpenAPI schema version that\n       * Google Generative AI uses. You can use this to disable\n       * structured outputs if you need to.\n       */\n      structuredOutputs: z4.boolean().optional(),\n      /**\n       * Optional. A list of unique safety settings for blocking unsafe content.\n       */\n      safetySettings: z4.array(\n        z4.object({\n          category: z4.enum([\n            \"HARM_CATEGORY_UNSPECIFIED\",\n            \"HARM_CATEGORY_HATE_SPEECH\",\n            \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n            \"HARM_CATEGORY_HARASSMENT\",\n            \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n            \"HARM_CATEGORY_CIVIC_INTEGRITY\"\n          ]),\n          threshold: z4.enum([\n            \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n            \"BLOCK_LOW_AND_ABOVE\",\n            \"BLOCK_MEDIUM_AND_ABOVE\",\n            \"BLOCK_ONLY_HIGH\",\n            \"BLOCK_NONE\",\n            \"OFF\"\n          ])\n        })\n      ).optional(),\n      threshold: z4.enum([\n        \"HARM_BLOCK_THRESHOLD_UNSPECIFIED\",\n        \"BLOCK_LOW_AND_ABOVE\",\n        \"BLOCK_MEDIUM_AND_ABOVE\",\n        \"BLOCK_ONLY_HIGH\",\n        \"BLOCK_NONE\",\n        \"OFF\"\n      ]).optional(),\n      /**\n       * Optional. Enables timestamp understanding for audio-only files.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/audio-understanding\n       */\n      audioTimestamp: z4.boolean().optional(),\n      /**\n       * Optional. Defines labels used in billing reports. Available on Vertex AI only.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/add-labels-to-api-calls\n       */\n      labels: z4.record(z4.string(), z4.string()).optional(),\n      /**\n       * Optional. If specified, the media resolution specified will be used.\n       *\n       * https://ai.google.dev/api/generate-content#MediaResolution\n       */\n      mediaResolution: z4.enum([\n        \"MEDIA_RESOLUTION_UNSPECIFIED\",\n        \"MEDIA_RESOLUTION_LOW\",\n        \"MEDIA_RESOLUTION_MEDIUM\",\n        \"MEDIA_RESOLUTION_HIGH\"\n      ]).optional(),\n      /**\n       * Optional. Configures the image generation aspect ratio for Gemini models.\n       *\n       * https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios\n       */\n      imageConfig: z4.object({\n        aspectRatio: z4.enum([\n          \"1:1\",\n          \"2:3\",\n          \"3:2\",\n          \"3:4\",\n          \"4:3\",\n          \"4:5\",\n          \"5:4\",\n          \"9:16\",\n          \"16:9\",\n          \"21:9\",\n          \"1:8\",\n          \"8:1\",\n          \"1:4\",\n          \"4:1\"\n        ]).optional(),\n        imageSize: z4.enum([\"1K\", \"2K\", \"4K\", \"512\"]).optional(),\n        /**\n         * Optional. Controls the generation of people in images.\n         * Vertex AI only.\n         */\n        personGeneration: z4.enum([\n          \"PERSON_GENERATION_UNSPECIFIED\",\n          \"ALLOW_ALL\",\n          \"ALLOW_ADULT\",\n          \"ALLOW_NONE\"\n        ]).optional(),\n        /**\n         * Optional. Controls whether generation of prominent people\n         * (celebrities) is allowed. When set together with\n         * `personGeneration`, `personGeneration` takes precedence.\n         * Vertex AI only.\n         *\n         * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerationConfig\n         */\n        prominentPeople: z4.enum([\n          \"PROMINENT_PEOPLE_UNSPECIFIED\",\n          \"ALLOW_PROMINENT_PEOPLE\",\n          \"BLOCK_PROMINENT_PEOPLE\"\n        ]).optional(),\n        /**\n         * Optional. The image output format for generated images.\n         * Vertex AI only.\n         */\n        imageOutputOptions: z4.object({\n          mimeType: z4.enum([\"image/jpeg\", \"image/png\"]).optional(),\n          compressionQuality: z4.number().optional()\n        }).optional()\n      }).optional(),\n      /**\n       * Optional. Configuration for grounding retrieval.\n       * Used to provide location context for Google Maps and Google Search grounding.\n       *\n       * https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n       */\n      retrievalConfig: z4.object({\n        latLng: z4.object({\n          latitude: z4.number(),\n          longitude: z4.number()\n        }).optional()\n      }).optional(),\n      /**\n       * Optional. When set to true, function call arguments will be streamed\n       * incrementally via partialArgs in streaming responses. Only supported\n       * on the Vertex AI API (not the Gemini API) and only for Gemini 3+\n       * models.\n       *\n       * @default false\n       *\n       * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc\n       */\n      streamFunctionCallArguments: z4.boolean().optional(),\n      /**\n       * Optional. The service tier to use for the request. Sent as the\n       * `serviceTier` body field. Gemini API only.\n       */\n      serviceTier: z4.enum([\"standard\", \"flex\", \"priority\"]).optional(),\n      /**\n       * Optional. Vertex AI only. Sent as the\n       * `X-Vertex-AI-LLM-Shared-Request-Type` request header to select a\n       * shared (PayGo) tier. With Provisioned Throughput allocated and\n       * `requestType` unset, the request falls back to this tier only if\n       * PT capacity is exhausted.\n       *\n       * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo\n       * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/flex-paygo\n       */\n      sharedRequestType: z4.enum([\"priority\", \"flex\", \"standard\"]).optional(),\n      /**\n       * Optional. Vertex AI only. Sent as the `X-Vertex-AI-LLM-Request-Type`\n       * request header. Set to `'shared'` together with `sharedRequestType`\n       * to bypass Provisioned Throughput entirely.\n       *\n       * https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo\n       */\n      requestType: z4.enum([\"shared\"]).optional()\n    })\n  )\n);\n\n// src/google-model-capabilities.ts\nvar gemini1ModelPattern = /(^|\\/)gemini-1(?:[.-]|$)/i;\nvar gemini2ModelPattern = /(^|\\/)gemini-2(?:[.-]|$)/i;\nvar gemini25ModelPattern = /(^|\\/)gemini-2\\.5(?:[.-]|$)/i;\nvar geminiModelPattern = /(^|\\/)gemini-/i;\nfunction isKnownPreGemini2Model(modelId) {\n  return gemini1ModelPattern.test(modelId) || /(^|\\/)gemini-pro(?:-vision)?$/i.test(modelId) || /(^|\\/)gemini-robotics-er-1\\.5(?:[.-]|$)/i.test(modelId);\n}\nfunction getGoogleModelCapabilities(modelId) {\n  const isGeminiModel2 = geminiModelPattern.test(modelId);\n  const isGemini2Model = gemini2ModelPattern.test(modelId);\n  const isKnownPreGemini2 = isKnownPreGemini2Model(modelId);\n  const isKnownOlderModel = isKnownPreGemini2 || isGemini2Model;\n  const usesGemini3Features = isGeminiModel2 && !isKnownOlderModel;\n  return {\n    supportsGemini2Tools: isGeminiModel2 && !isKnownPreGemini2 || modelId.toLowerCase().includes(\"nano-banana\"),\n    supportsFileSearch: gemini25ModelPattern.test(modelId) || usesGemini3Features,\n    usesGemini3Features\n  };\n}\n\n// src/google-prepare-tools.ts\nimport {\n  UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n  tools,\n  toolChoice,\n  modelId,\n  isVertexProvider = false\n}) {\n  var _a, _b;\n  tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  const toolWarnings = [];\n  const { supportsGemini2Tools, supportsFileSearch, usesGemini3Features } = getGoogleModelCapabilities(modelId);\n  if (tools == null) {\n    return { tools: void 0, toolConfig: void 0, toolWarnings };\n  }\n  const hasFunctionTools = tools.some((tool) => tool.type === \"function\");\n  const hasProviderTools = tools.some((tool) => tool.type === \"provider\");\n  if (hasFunctionTools && hasProviderTools && !usesGemini3Features) {\n    toolWarnings.push({\n      type: \"unsupported\",\n      feature: `combination of function and provider-defined tools`\n    });\n  }\n  if (hasProviderTools) {\n    const googleTools2 = [];\n    const ProviderTools = tools.filter((tool) => tool.type === \"provider\");\n    ProviderTools.forEach((tool) => {\n      switch (tool.id) {\n        case \"google.google_search\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({ googleSearch: { ...tool.args } });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"Google Search requires Gemini 2.0 or newer.\"\n            });\n          }\n          break;\n        case \"google.enterprise_web_search\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({ enterpriseWebSearch: {} });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"Enterprise Web Search requires Gemini 2.0 or newer.\"\n            });\n          }\n          break;\n        case \"google.url_context\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({ urlContext: {} });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"The URL context tool is not supported with other Gemini models than Gemini 2.\"\n            });\n          }\n          break;\n        case \"google.code_execution\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({ codeExecution: {} });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"The code execution tool is not supported with other Gemini models than Gemini 2.\"\n            });\n          }\n          break;\n        case \"google.file_search\":\n          if (supportsFileSearch) {\n            googleTools2.push({ fileSearch: { ...tool.args } });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"The file search tool is only supported with Gemini 2.5 models and Gemini 3 models.\"\n            });\n          }\n          break;\n        case \"google.vertex_rag_store\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({\n              retrieval: {\n                vertex_rag_store: {\n                  rag_resources: {\n                    rag_corpus: tool.args.ragCorpus\n                  },\n                  similarity_top_k: tool.args.topK\n                }\n              }\n            });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"The RAG store tool is not supported with other Gemini models than Gemini 2.\"\n            });\n          }\n          break;\n        case \"google.google_maps\":\n          if (supportsGemini2Tools) {\n            googleTools2.push({ googleMaps: {} });\n          } else {\n            toolWarnings.push({\n              type: \"unsupported\",\n              feature: `provider-defined tool ${tool.id}`,\n              details: \"The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer.\"\n            });\n          }\n          break;\n        default:\n          toolWarnings.push({\n            type: \"unsupported\",\n            feature: `provider-defined tool ${tool.id}`\n          });\n          break;\n      }\n    });\n    if (hasFunctionTools && usesGemini3Features && googleTools2.length > 0) {\n      const functionDeclarations2 = [];\n      for (const tool of tools) {\n        if (tool.type === \"function\") {\n          functionDeclarations2.push({\n            name: tool.name,\n            description: (_a = tool.description) != null ? _a : \"\",\n            parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n          });\n        }\n      }\n      const combinedToolConfig = {\n        functionCallingConfig: { mode: \"VALIDATED\" },\n        ...!isVertexProvider && {\n          includeServerSideToolInvocations: true\n        }\n      };\n      if (toolChoice != null) {\n        switch (toolChoice.type) {\n          case \"auto\":\n            break;\n          case \"none\":\n            combinedToolConfig.functionCallingConfig = { mode: \"NONE\" };\n            break;\n          case \"required\":\n            combinedToolConfig.functionCallingConfig = { mode: \"ANY\" };\n            break;\n          case \"tool\":\n            combinedToolConfig.functionCallingConfig = {\n              mode: \"ANY\",\n              allowedFunctionNames: [toolChoice.toolName]\n            };\n            break;\n        }\n      }\n      return {\n        tools: [...googleTools2, { functionDeclarations: functionDeclarations2 }],\n        toolConfig: combinedToolConfig,\n        toolWarnings\n      };\n    }\n    return {\n      tools: googleTools2.length > 0 ? googleTools2 : void 0,\n      toolConfig: void 0,\n      toolWarnings\n    };\n  }\n  const functionDeclarations = [];\n  let hasStrictTools = false;\n  for (const tool of tools) {\n    switch (tool.type) {\n      case \"function\":\n        functionDeclarations.push({\n          name: tool.name,\n          description: (_b = tool.description) != null ? _b : \"\",\n          parameters: convertJSONSchemaToOpenAPISchema(tool.inputSchema)\n        });\n        if (tool.strict === true) {\n          hasStrictTools = true;\n        }\n        break;\n      default:\n        toolWarnings.push({\n          type: \"unsupported\",\n          feature: `function tool ${tool.name}`\n        });\n        break;\n    }\n  }\n  if (toolChoice == null) {\n    return {\n      tools: [{ functionDeclarations }],\n      toolConfig: hasStrictTools ? { functionCallingConfig: { mode: \"VALIDATED\" } } : void 0,\n      toolWarnings\n    };\n  }\n  const type = toolChoice.type;\n  switch (type) {\n    case \"auto\":\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? \"VALIDATED\" : \"AUTO\"\n          }\n        },\n        toolWarnings\n      };\n    case \"none\":\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: { functionCallingConfig: { mode: \"NONE\" } },\n        toolWarnings\n      };\n    case \"required\":\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? \"VALIDATED\" : \"ANY\"\n          }\n        },\n        toolWarnings\n      };\n    case \"tool\":\n      return {\n        tools: [{ functionDeclarations }],\n        toolConfig: {\n          functionCallingConfig: {\n            mode: hasStrictTools ? \"VALIDATED\" : \"ANY\",\n            allowedFunctionNames: [toolChoice.toolName]\n          }\n        },\n        toolWarnings\n      };\n    default: {\n      const _exhaustiveCheck = type;\n      throw new UnsupportedFunctionalityError2({\n        functionality: `tool choice type: ${_exhaustiveCheck}`\n      });\n    }\n  }\n}\n\n// src/google-json-accumulator.ts\nvar GoogleJSONAccumulator = class {\n  constructor() {\n    this.accumulatedArgs = {};\n    this.jsonText = \"\";\n    /**\n     * Stack representing the currently \"open\" containers in the JSON output.\n     * Entry 0 is always the root `{` object once the first value is written.\n     */\n    this.pathStack = [];\n    /**\n     * Whether a string value is currently \"open\" (willContinue was true),\n     * meaning the closing quote has not yet been emitted.\n     */\n    this.stringOpen = false;\n  }\n  /**\n   * Input: [{jsonPath:\"$.brightness\",numberValue:50}]\n   * Output: { currentJSON:{brightness:50}, textDelta:'{\"brightness\":50' }\n   */\n  processPartialArgs(partialArgs) {\n    let delta = \"\";\n    for (const arg of partialArgs) {\n      const rawPath = arg.jsonPath.replace(/^\\$\\./, \"\");\n      if (!rawPath) continue;\n      const segments = parsePath(rawPath);\n      const existingValue = getNestedValue(this.accumulatedArgs, segments);\n      const isStringContinuation = arg.stringValue != null && existingValue !== void 0;\n      if (isStringContinuation) {\n        const escaped = JSON.stringify(arg.stringValue).slice(1, -1);\n        setNestedValue(\n          this.accumulatedArgs,\n          segments,\n          existingValue + arg.stringValue\n        );\n        delta += escaped;\n        continue;\n      }\n      const resolved = resolvePartialArgValue(arg);\n      if (resolved == null) continue;\n      setNestedValue(this.accumulatedArgs, segments, resolved.value);\n      delta += this.emitNavigationTo(segments, arg, resolved.json);\n    }\n    this.jsonText += delta;\n    return {\n      currentJSON: this.accumulatedArgs,\n      textDelta: delta\n    };\n  }\n  /**\n   * Input: jsonText='{\"brightness\":50', accumulatedArgs={brightness:50}\n   * Output: { finalJSON:'{\"brightness\":50}', closingDelta:'}' }\n   */\n  finalize() {\n    const finalArgs = JSON.stringify(this.accumulatedArgs);\n    const closingDelta = finalArgs.slice(this.jsonText.length);\n    return { finalJSON: finalArgs, closingDelta };\n  }\n  /**\n   * Input: pathStack=[] (first call) or pathStack=[root,...] (subsequent calls)\n   * Output: '{' (first call) or '' (subsequent calls)\n   */\n  ensureRoot() {\n    if (this.pathStack.length === 0) {\n      this.pathStack.push({ segment: \"\", isArray: false, childCount: 0 });\n      return \"{\";\n    }\n    return \"\";\n  }\n  /**\n   * Emits the JSON text fragment needed to navigate from the current open\n   * path to the new leaf at `targetSegments`, then writes the value.\n   *\n   * Input: targetSegments=[\"recipe\",\"name\"], arg={jsonPath:\"$.recipe.name\",stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n   * Output: '{\"recipe\":{\"name\":\"Lasagna\"'\n   */\n  emitNavigationTo(targetSegments, arg, valueJson) {\n    let fragment = \"\";\n    if (this.stringOpen) {\n      fragment += '\"';\n      this.stringOpen = false;\n    }\n    fragment += this.ensureRoot();\n    const targetContainerSegments = targetSegments.slice(0, -1);\n    const leafSegment = targetSegments[targetSegments.length - 1];\n    const commonDepth = this.findCommonStackDepth(targetContainerSegments);\n    fragment += this.closeDownTo(commonDepth);\n    fragment += this.openDownTo(targetContainerSegments, leafSegment);\n    fragment += this.emitLeaf(leafSegment, arg, valueJson);\n    return fragment;\n  }\n  /**\n   * Returns the stack depth to preserve when navigating to a new target\n   * container path. Always >= 1 (the root is never popped).\n   *\n   * Input: stack=[root,\"recipe\",\"ingredients\",0], target=[\"recipe\",\"ingredients\",1]\n   * Output: 3 (keep root+\"recipe\"+\"ingredients\")\n   */\n  findCommonStackDepth(targetContainer) {\n    const maxDepth = Math.min(\n      this.pathStack.length - 1,\n      targetContainer.length\n    );\n    let common = 0;\n    for (let i = 0; i < maxDepth; i++) {\n      if (this.pathStack[i + 1].segment === targetContainer[i]) {\n        common++;\n      } else {\n        break;\n      }\n    }\n    return common + 1;\n  }\n  /**\n   * Closes containers from the current stack depth back down to `targetDepth`.\n   *\n   * Input: this.pathStack=[root,\"recipe\",\"ingredients\",0], targetDepth=3\n   * Output: '}'\n   */\n  closeDownTo(targetDepth) {\n    let fragment = \"\";\n    while (this.pathStack.length > targetDepth) {\n      const entry = this.pathStack.pop();\n      fragment += entry.isArray ? \"]\" : \"}\";\n    }\n    return fragment;\n  }\n  /**\n   * Opens containers from the current stack depth down to the full target\n   * container path, emitting opening `{`, `[`, keys, and commas as needed.\n   * `leafSegment` is used to determine if the innermost container is an array.\n   *\n   * Input: this.pathStack=[root], targetContainer=[\"recipe\",\"ingredients\"], leafSegment=0\n   * Output: '\"recipe\":{\"ingredients\":['\n   */\n  openDownTo(targetContainer, leafSegment) {\n    let fragment = \"\";\n    const startIdx = this.pathStack.length - 1;\n    for (let i = startIdx; i < targetContainer.length; i++) {\n      const seg = targetContainer[i];\n      const parentEntry = this.pathStack[this.pathStack.length - 1];\n      if (parentEntry.childCount > 0) {\n        fragment += \",\";\n      }\n      parentEntry.childCount++;\n      if (typeof seg === \"string\") {\n        fragment += `${JSON.stringify(seg)}:`;\n      }\n      const childSeg = i + 1 < targetContainer.length ? targetContainer[i + 1] : leafSegment;\n      const isArray = typeof childSeg === \"number\";\n      fragment += isArray ? \"[\" : \"{\";\n      this.pathStack.push({ segment: seg, isArray, childCount: 0 });\n    }\n    return fragment;\n  }\n  /**\n   * Emits the comma, key, and value for a leaf entry in the current container.\n   *\n   * Input: leafSegment=\"name\", arg={stringValue:\"Lasagna\"}, valueJson='\"Lasagna\"'\n   * Output: '\"name\":\"Lasagna\"' (or ',\"name\":\"Lasagna\"' if container.childCount > 0)\n   */\n  emitLeaf(leafSegment, arg, valueJson) {\n    let fragment = \"\";\n    const container = this.pathStack[this.pathStack.length - 1];\n    if (container.childCount > 0) {\n      fragment += \",\";\n    }\n    container.childCount++;\n    if (typeof leafSegment === \"string\") {\n      fragment += `${JSON.stringify(leafSegment)}:`;\n    }\n    if (arg.stringValue != null && arg.willContinue) {\n      fragment += valueJson.slice(0, -1);\n      this.stringOpen = true;\n    } else {\n      fragment += valueJson;\n    }\n    return fragment;\n  }\n};\nfunction parsePath(rawPath) {\n  const segments = [];\n  for (const part of rawPath.split(\".\")) {\n    const bracketIdx = part.indexOf(\"[\");\n    if (bracketIdx === -1) {\n      segments.push(part);\n    } else {\n      if (bracketIdx > 0) segments.push(part.slice(0, bracketIdx));\n      for (const m of part.matchAll(/\\[(\\d+)\\]/g)) {\n        segments.push(parseInt(m[1], 10));\n      }\n    }\n  }\n  return segments;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction hasOwnProperty(obj, key) {\n  return hasOwn.call(obj, key);\n}\nfunction defineOwnProperty(obj, key, value) {\n  Object.defineProperty(obj, key, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: true\n  });\n}\nfunction getNestedValue(obj, segments) {\n  let current = obj;\n  for (const seg of segments) {\n    if (current == null || typeof current !== \"object\") return void 0;\n    const currentRecord = current;\n    if (!hasOwnProperty(currentRecord, seg)) return void 0;\n    current = currentRecord[seg];\n  }\n  return current;\n}\nfunction setNestedValue(obj, segments, value) {\n  let current = obj;\n  for (let i = 0; i < segments.length - 1; i++) {\n    const seg = segments[i];\n    const nextSeg = segments[i + 1];\n    if (!hasOwnProperty(current, seg) || current[seg] == null) {\n      defineOwnProperty(current, seg, typeof nextSeg === \"number\" ? [] : {});\n    }\n    current = current[seg];\n  }\n  defineOwnProperty(current, segments[segments.length - 1], value);\n}\nfunction resolvePartialArgValue(arg) {\n  var _a, _b;\n  const value = (_b = (_a = arg.stringValue) != null ? _a : arg.numberValue) != null ? _b : arg.boolValue;\n  if (value != null) return { value, json: JSON.stringify(value) };\n  if (\"nullValue\" in arg) return { value: null, json: \"null\" };\n  return void 0;\n}\n\n// src/map-google-generative-ai-finish-reason.ts\nfunction mapGoogleGenerativeAIFinishReason({\n  finishReason,\n  hasToolCalls\n}) {\n  switch (finishReason) {\n    case \"STOP\":\n      return hasToolCalls ? \"tool-calls\" : \"stop\";\n    case \"MAX_TOKENS\":\n      return \"length\";\n    case \"IMAGE_SAFETY\":\n    case \"RECITATION\":\n    case \"SAFETY\":\n    case \"BLOCKLIST\":\n    case \"PROHIBITED_CONTENT\":\n    case \"SPII\":\n      return \"content-filter\";\n    case \"MALFORMED_FUNCTION_CALL\":\n      return \"error\";\n    case \"FINISH_REASON_UNSPECIFIED\":\n    case \"OTHER\":\n    default:\n      return \"other\";\n  }\n}\n\n// src/google-generative-ai-language-model.ts\nvar configurableSafetySettingCategories = [\n  \"HARM_CATEGORY_HATE_SPEECH\",\n  \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n  \"HARM_CATEGORY_HARASSMENT\",\n  \"HARM_CATEGORY_SEXUALLY_EXPLICIT\"\n];\nvar GoogleGenerativeAILanguageModel = class {\n  constructor(modelId, config) {\n    this.specificationVersion = \"v3\";\n    var _a;\n    this.modelId = modelId;\n    this.config = config;\n    this.generateId = (_a = config.generateId) != null ? _a : generateId;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get supportedUrls() {\n    var _a, _b, _c;\n    return (_c = (_b = (_a = this.config).supportedUrls) == null ? void 0 : _b.call(_a)) != null ? _c : {};\n  }\n  async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions\n  }, { isStreaming = false } = {}) {\n    var _a, _b, _c;\n    const warnings = [];\n    const providerOptionsName = this.config.provider.includes(\"vertex\") ? \"vertex\" : \"google\";\n    let googleOptions = await parseProviderOptions2({\n      provider: providerOptionsName,\n      providerOptions,\n      schema: googleLanguageModelOptions\n    });\n    if (googleOptions == null && providerOptionsName !== \"google\") {\n      googleOptions = await parseProviderOptions2({\n        provider: \"google\",\n        providerOptions,\n        schema: googleLanguageModelOptions\n      });\n    }\n    const isVertexProvider = this.config.provider.startsWith(\"google.vertex.\");\n    if ((tools == null ? void 0 : tools.some(\n      (tool) => tool.type === \"provider\" && tool.id === \"google.vertex_rag_store\"\n    )) && !isVertexProvider) {\n      warnings.push({\n        type: \"other\",\n        message: `The 'vertex_rag_store' tool is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`\n      });\n    }\n    if ((googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) && !isVertexProvider) {\n      warnings.push({\n        type: \"other\",\n        message: `'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${this.config.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`\n      });\n    }\n    if ((googleOptions == null ? void 0 : googleOptions.serviceTier) && isVertexProvider) {\n      warnings.push({\n        type: \"other\",\n        message: \"'serviceTier' is a Gemini API option and is not supported on Vertex AI. Use 'sharedRequestType' (and optionally 'requestType') instead. See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo\"\n      });\n    }\n    if (((googleOptions == null ? void 0 : googleOptions.sharedRequestType) || (googleOptions == null ? void 0 : googleOptions.requestType)) && !isVertexProvider) {\n      warnings.push({\n        type: \"other\",\n        message: `'sharedRequestType' and 'requestType' are Vertex AI options and are ignored with the current Google provider (${this.config.provider}).`\n      });\n    }\n    const vertexPaygoHeaders = isVertexProvider && ((googleOptions == null ? void 0 : googleOptions.sharedRequestType) || (googleOptions == null ? void 0 : googleOptions.requestType)) ? {\n      ...googleOptions.sharedRequestType && {\n        \"X-Vertex-AI-LLM-Shared-Request-Type\": googleOptions.sharedRequestType\n      },\n      ...googleOptions.requestType && {\n        \"X-Vertex-AI-LLM-Request-Type\": googleOptions.requestType\n      }\n    } : void 0;\n    const bodyServiceTier = isVertexProvider ? void 0 : googleOptions == null ? void 0 : googleOptions.serviceTier;\n    let imageConfig = googleOptions == null ? void 0 : googleOptions.imageConfig;\n    if (imageConfig != null && !isVertexProvider) {\n      const {\n        personGeneration,\n        prominentPeople,\n        imageOutputOptions,\n        ...geminiApiImageConfig\n      } = imageConfig;\n      const droppedImageConfigFields = Object.entries({\n        personGeneration,\n        prominentPeople,\n        imageOutputOptions\n      }).filter(([, value]) => value != null).map(([key]) => `'imageConfig.${key}'`);\n      if (droppedImageConfigFields.length > 0) {\n        warnings.push({\n          type: \"other\",\n          message: `${droppedImageConfigFields.join(\", \")} ${droppedImageConfigFields.length === 1 ? \"is a Vertex AI option and is\" : \"are Vertex AI options and are\"} ignored with the current Google provider (${this.config.provider}).`\n        });\n        imageConfig = geminiApiImageConfig;\n      }\n    }\n    const isGemmaModel = this.modelId.toLowerCase().startsWith(\"gemma-\");\n    const { usesGemini3Features } = getGoogleModelCapabilities(this.modelId);\n    const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(\n      prompt,\n      {\n        isGemmaModel,\n        isGemini3Model: usesGemini3Features,\n        providerOptionsName,\n        supportsFunctionResponseParts: usesGemini3Features,\n        onWarning: (warning) => warnings.push(warning),\n        includeFunctionCallIds: !isVertexProvider\n      }\n    );\n    const {\n      tools: googleTools2,\n      toolConfig: googleToolConfig,\n      toolWarnings\n    } = prepareTools({\n      tools,\n      toolChoice,\n      modelId: this.modelId,\n      isVertexProvider\n    });\n    const streamFunctionCallArguments = isStreaming && isVertexProvider ? (_a = googleOptions == null ? void 0 : googleOptions.streamFunctionCallArguments) != null ? _a : false : void 0;\n    const safetyThreshold = googleOptions == null ? void 0 : googleOptions.threshold;\n    const safetySettings = (_b = googleOptions == null ? void 0 : googleOptions.safetySettings) != null ? _b : safetyThreshold != null ? configurableSafetySettingCategories.map((category) => ({\n      category,\n      threshold: safetyThreshold\n    })) : void 0;\n    const toolConfig = googleToolConfig || streamFunctionCallArguments || (googleOptions == null ? void 0 : googleOptions.retrievalConfig) ? {\n      ...googleToolConfig,\n      ...streamFunctionCallArguments && {\n        functionCallingConfig: {\n          ...googleToolConfig == null ? void 0 : googleToolConfig.functionCallingConfig,\n          streamFunctionCallArguments: true\n        }\n      },\n      ...(googleOptions == null ? void 0 : googleOptions.retrievalConfig) && {\n        retrievalConfig: googleOptions.retrievalConfig\n      }\n    } : void 0;\n    return {\n      args: {\n        generationConfig: {\n          // standardized settings:\n          maxOutputTokens,\n          temperature,\n          topK,\n          topP,\n          frequencyPenalty,\n          presencePenalty,\n          stopSequences,\n          seed,\n          // response format:\n          responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? \"application/json\" : void 0,\n          responseSchema: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && // Google GenAI does not support all OpenAPI Schema features,\n          // so this is needed as an escape hatch:\n          // TODO convert into provider option\n          ((_c = googleOptions == null ? void 0 : googleOptions.structuredOutputs) != null ? _c : true) ? convertJSONSchemaToOpenAPISchema(responseFormat.schema) : void 0,\n          ...(googleOptions == null ? void 0 : googleOptions.audioTimestamp) && {\n            audioTimestamp: googleOptions.audioTimestamp\n          },\n          // provider options:\n          responseModalities: googleOptions == null ? void 0 : googleOptions.responseModalities,\n          thinkingConfig: googleOptions == null ? void 0 : googleOptions.thinkingConfig,\n          ...(googleOptions == null ? void 0 : googleOptions.mediaResolution) && {\n            mediaResolution: googleOptions.mediaResolution\n          },\n          ...imageConfig && { imageConfig }\n        },\n        contents,\n        systemInstruction: isGemmaModel ? void 0 : systemInstruction,\n        safetySettings,\n        tools: googleTools2,\n        toolConfig,\n        cachedContent: googleOptions == null ? void 0 : googleOptions.cachedContent,\n        labels: googleOptions == null ? void 0 : googleOptions.labels,\n        serviceTier: bodyServiceTier\n      },\n      warnings: [...warnings, ...toolWarnings],\n      providerOptionsName,\n      extraHeaders: vertexPaygoHeaders\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;\n    const { args, warnings, providerOptionsName, extraHeaders } = await this.getArgs(options);\n    const mergedHeaders = combineHeaders2(\n      await resolve2(this.config.headers),\n      options.headers,\n      extraHeaders\n    );\n    const {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = await postJsonToApi2({\n      url: `${this.config.baseURL}/${getModelPath(\n        this.modelId\n      )}:generateContent`,\n      headers: mergedHeaders,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler2(responseSchema),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const candidate = response.candidates[0];\n    const content = [];\n    const parts = (_b = (_a = candidate.content) == null ? void 0 : _a.parts) != null ? _b : [];\n    const usageMetadata = response.usageMetadata;\n    let lastCodeExecutionToolCallId;\n    let lastServerToolCallId;\n    for (const part of parts) {\n      if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n        const toolCallId = this.config.generateId();\n        lastCodeExecutionToolCallId = toolCallId;\n        content.push({\n          type: \"tool-call\",\n          toolCallId,\n          toolName: \"code_execution\",\n          input: JSON.stringify(part.executableCode),\n          providerExecuted: true\n        });\n      } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n        content.push({\n          type: \"tool-result\",\n          // Results correspond to the most recent executable code part.\n          toolCallId: lastCodeExecutionToolCallId,\n          toolName: \"code_execution\",\n          result: {\n            outcome: part.codeExecutionResult.outcome,\n            output: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n          }\n        });\n      } else if (\"text\" in part && part.text != null) {\n        const thoughtSignatureMetadata = part.thoughtSignature ? {\n          [providerOptionsName]: {\n            thoughtSignature: part.thoughtSignature\n          }\n        } : void 0;\n        if (part.text.length === 0) {\n          if (thoughtSignatureMetadata != null && content.length > 0) {\n            const lastContent = content[content.length - 1];\n            lastContent.providerMetadata = thoughtSignatureMetadata;\n          }\n        } else {\n          content.push({\n            type: part.thought === true ? \"reasoning\" : \"text\",\n            text: part.text,\n            providerMetadata: thoughtSignatureMetadata\n          });\n        }\n      } else if (\"functionCall\" in part && part.functionCall.name != null) {\n        content.push({\n          type: \"tool-call\",\n          toolCallId: (_e = part.functionCall.id) != null ? _e : this.config.generateId(),\n          toolName: part.functionCall.name,\n          input: JSON.stringify((_f = part.functionCall.args) != null ? _f : {}),\n          providerMetadata: part.thoughtSignature ? {\n            [providerOptionsName]: {\n              thoughtSignature: part.thoughtSignature\n            }\n          } : void 0\n        });\n      } else if (\"inlineData\" in part) {\n        const hasThought = part.thought === true;\n        const hasThoughtSignature = !!part.thoughtSignature;\n        content.push({\n          type: \"file\",\n          data: part.inlineData.data,\n          mediaType: part.inlineData.mimeType,\n          providerMetadata: hasThought || hasThoughtSignature ? {\n            [providerOptionsName]: {\n              ...hasThought ? { thought: true } : {},\n              ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n            }\n          } : void 0\n        });\n      } else if (\"toolCall\" in part && part.toolCall) {\n        const toolCallId = (_g = part.toolCall.id) != null ? _g : this.config.generateId();\n        lastServerToolCallId = toolCallId;\n        content.push({\n          type: \"tool-call\",\n          toolCallId,\n          toolName: `server:${part.toolCall.toolType}`,\n          input: JSON.stringify((_h = part.toolCall.args) != null ? _h : {}),\n          providerExecuted: true,\n          dynamic: true,\n          providerMetadata: part.thoughtSignature ? {\n            [providerOptionsName]: {\n              thoughtSignature: part.thoughtSignature,\n              serverToolCallId: toolCallId,\n              serverToolType: part.toolCall.toolType\n            }\n          } : {\n            [providerOptionsName]: {\n              serverToolCallId: toolCallId,\n              serverToolType: part.toolCall.toolType\n            }\n          }\n        });\n      } else if (\"toolResponse\" in part && part.toolResponse) {\n        const responseToolCallId = (_i = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _i : this.config.generateId();\n        content.push({\n          type: \"tool-result\",\n          toolCallId: responseToolCallId,\n          toolName: `server:${part.toolResponse.toolType}`,\n          result: (_j = part.toolResponse.response) != null ? _j : {},\n          providerMetadata: part.thoughtSignature ? {\n            [providerOptionsName]: {\n              thoughtSignature: part.thoughtSignature,\n              serverToolCallId: responseToolCallId,\n              serverToolType: part.toolResponse.toolType\n            }\n          } : {\n            [providerOptionsName]: {\n              serverToolCallId: responseToolCallId,\n              serverToolType: part.toolResponse.toolType\n            }\n          }\n        });\n        lastServerToolCallId = void 0;\n      }\n    }\n    const sources = (_k = extractSources({\n      groundingMetadata: candidate.groundingMetadata,\n      generateId: this.config.generateId\n    })) != null ? _k : [];\n    for (const source of sources) {\n      content.push(source);\n    }\n    return {\n      content,\n      finishReason: {\n        unified: mapGoogleGenerativeAIFinishReason({\n          finishReason: candidate.finishReason,\n          // Only count client-executed tool calls for finish reason determination.\n          hasToolCalls: content.some(\n            (part) => part.type === \"tool-call\" && !part.providerExecuted\n          )\n        }),\n        raw: (_l = candidate.finishReason) != null ? _l : void 0\n      },\n      usage: convertGoogleGenerativeAIUsage(usageMetadata),\n      warnings,\n      providerMetadata: {\n        [providerOptionsName]: {\n          promptFeedback: (_m = response.promptFeedback) != null ? _m : null,\n          groundingMetadata: (_n = candidate.groundingMetadata) != null ? _n : null,\n          urlContextMetadata: (_o = candidate.urlContextMetadata) != null ? _o : null,\n          safetyRatings: (_p = candidate.safetyRatings) != null ? _p : null,\n          usageMetadata: usageMetadata != null ? usageMetadata : null,\n          finishMessage: (_q = candidate.finishMessage) != null ? _q : null,\n          serviceTier: (_r = usageMetadata == null ? void 0 : usageMetadata.serviceTier) != null ? _r : null\n        }\n      },\n      request: { body: args },\n      response: {\n        // TODO timestamp, model id\n        id: (_s = response.responseId) != null ? _s : void 0,\n        headers: responseHeaders,\n        body: rawResponse\n      }\n    };\n  }\n  async doStream(options) {\n    const { args, warnings, providerOptionsName, extraHeaders } = await this.getArgs(options, { isStreaming: true });\n    const headers = combineHeaders2(\n      await resolve2(this.config.headers),\n      options.headers,\n      extraHeaders\n    );\n    const { responseHeaders, value: response } = await postJsonToApi2({\n      url: `${this.config.baseURL}/${getModelPath(\n        this.modelId\n      )}:streamGenerateContent?alt=sse`,\n      headers,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(chunkSchema),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    let finishReason = {\n      unified: \"other\",\n      raw: void 0\n    };\n    let usage = void 0;\n    let providerMetadata = void 0;\n    let lastGroundingMetadata = null;\n    let lastUrlContextMetadata = null;\n    const generateId3 = this.config.generateId;\n    let hasToolCalls = false;\n    let hasEmittedResponseMetadata = false;\n    let currentTextBlockId = null;\n    let currentReasoningBlockId = null;\n    let blockCounter = 0;\n    const emittedSourceUrls = /* @__PURE__ */ new Set();\n    let lastCodeExecutionToolCallId;\n    let lastServerToolCallId;\n    const activeStreamingToolCalls = [];\n    const finishActiveStreamingToolCall = (controller) => {\n      const active = activeStreamingToolCalls.pop();\n      if (active == null) {\n        return;\n      }\n      const { finalJSON, closingDelta } = active.accumulator.finalize();\n      if (closingDelta.length > 0) {\n        controller.enqueue({\n          type: \"tool-input-delta\",\n          id: active.toolCallId,\n          delta: closingDelta,\n          providerMetadata: active.providerMetadata\n        });\n      }\n      controller.enqueue({\n        type: \"tool-input-end\",\n        id: active.toolCallId,\n        providerMetadata: active.providerMetadata\n      });\n      controller.enqueue({\n        type: \"tool-call\",\n        toolCallId: active.toolCallId,\n        toolName: active.toolName,\n        input: finalJSON,\n        providerMetadata: active.providerMetadata\n      });\n      hasToolCalls = true;\n    };\n    return {\n      stream: response.pipeThrough(\n        new TransformStream({\n          start(controller) {\n            controller.enqueue({ type: \"stream-start\", warnings });\n          },\n          transform(chunk, controller) {\n            var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n            }\n            if (!chunk.success) {\n              controller.enqueue({ type: \"error\", error: chunk.error });\n              return;\n            }\n            const value = chunk.value;\n            if (!hasEmittedResponseMetadata && value.responseId != null) {\n              hasEmittedResponseMetadata = true;\n              controller.enqueue({\n                type: \"response-metadata\",\n                id: value.responseId\n              });\n            }\n            const usageMetadata = value.usageMetadata;\n            if (usageMetadata != null) {\n              usage = usageMetadata;\n            }\n            const candidate = (_a = value.candidates) == null ? void 0 : _a[0];\n            if (candidate == null) {\n              return;\n            }\n            const content = candidate.content;\n            if (candidate.groundingMetadata != null) {\n              lastGroundingMetadata = candidate.groundingMetadata;\n            }\n            if (candidate.urlContextMetadata != null) {\n              lastUrlContextMetadata = candidate.urlContextMetadata;\n            }\n            const sources = extractSources({\n              groundingMetadata: candidate.groundingMetadata,\n              generateId: generateId3\n            });\n            if (sources != null) {\n              for (const source of sources) {\n                if (source.sourceType === \"url\" && !emittedSourceUrls.has(source.url)) {\n                  emittedSourceUrls.add(source.url);\n                  controller.enqueue(source);\n                }\n              }\n            }\n            if (content != null) {\n              const parts = (_b = content.parts) != null ? _b : [];\n              for (const part of parts) {\n                if (\"executableCode\" in part && ((_c = part.executableCode) == null ? void 0 : _c.code)) {\n                  const toolCallId = generateId3();\n                  lastCodeExecutionToolCallId = toolCallId;\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId,\n                    toolName: \"code_execution\",\n                    input: JSON.stringify(part.executableCode),\n                    providerExecuted: true\n                  });\n                } else if (\"codeExecutionResult\" in part && part.codeExecutionResult) {\n                  const toolCallId = lastCodeExecutionToolCallId;\n                  if (toolCallId) {\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallId,\n                      toolName: \"code_execution\",\n                      result: {\n                        outcome: part.codeExecutionResult.outcome,\n                        output: (_d = part.codeExecutionResult.output) != null ? _d : \"\"\n                      }\n                    });\n                  }\n                } else if (\"text\" in part && part.text != null) {\n                  const thoughtSignatureMetadata = part.thoughtSignature ? {\n                    [providerOptionsName]: {\n                      thoughtSignature: part.thoughtSignature\n                    }\n                  } : void 0;\n                  if (part.text.length === 0) {\n                    if (thoughtSignatureMetadata != null && currentTextBlockId !== null) {\n                      controller.enqueue({\n                        type: \"text-delta\",\n                        id: currentTextBlockId,\n                        delta: \"\",\n                        providerMetadata: thoughtSignatureMetadata\n                      });\n                    }\n                  } else if (part.thought === true) {\n                    if (currentTextBlockId !== null) {\n                      controller.enqueue({\n                        type: \"text-end\",\n                        id: currentTextBlockId\n                      });\n                      currentTextBlockId = null;\n                    }\n                    if (currentReasoningBlockId === null) {\n                      currentReasoningBlockId = String(blockCounter++);\n                      controller.enqueue({\n                        type: \"reasoning-start\",\n                        id: currentReasoningBlockId,\n                        providerMetadata: thoughtSignatureMetadata\n                      });\n                    }\n                    controller.enqueue({\n                      type: \"reasoning-delta\",\n                      id: currentReasoningBlockId,\n                      delta: part.text,\n                      providerMetadata: thoughtSignatureMetadata\n                    });\n                  } else {\n                    if (currentReasoningBlockId !== null) {\n                      controller.enqueue({\n                        type: \"reasoning-end\",\n                        id: currentReasoningBlockId\n                      });\n                      currentReasoningBlockId = null;\n                    }\n                    if (currentTextBlockId === null) {\n                      currentTextBlockId = String(blockCounter++);\n                      controller.enqueue({\n                        type: \"text-start\",\n                        id: currentTextBlockId,\n                        providerMetadata: thoughtSignatureMetadata\n                      });\n                    }\n                    controller.enqueue({\n                      type: \"text-delta\",\n                      id: currentTextBlockId,\n                      delta: part.text,\n                      providerMetadata: thoughtSignatureMetadata\n                    });\n                  }\n                } else if (\"inlineData\" in part) {\n                  if (currentTextBlockId !== null) {\n                    controller.enqueue({\n                      type: \"text-end\",\n                      id: currentTextBlockId\n                    });\n                    currentTextBlockId = null;\n                  }\n                  if (currentReasoningBlockId !== null) {\n                    controller.enqueue({\n                      type: \"reasoning-end\",\n                      id: currentReasoningBlockId\n                    });\n                    currentReasoningBlockId = null;\n                  }\n                  const hasThought = part.thought === true;\n                  const hasThoughtSignature = !!part.thoughtSignature;\n                  const fileMeta = hasThought || hasThoughtSignature ? {\n                    [providerOptionsName]: {\n                      ...hasThought ? { thought: true } : {},\n                      ...hasThoughtSignature ? { thoughtSignature: part.thoughtSignature } : {}\n                    }\n                  } : void 0;\n                  controller.enqueue({\n                    type: \"file\",\n                    mediaType: part.inlineData.mimeType,\n                    data: part.inlineData.data,\n                    providerMetadata: fileMeta\n                  });\n                } else if (\"toolCall\" in part && part.toolCall) {\n                  const toolCallId = (_e = part.toolCall.id) != null ? _e : generateId3();\n                  lastServerToolCallId = toolCallId;\n                  const serverMeta = {\n                    [providerOptionsName]: {\n                      ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n                      serverToolCallId: toolCallId,\n                      serverToolType: part.toolCall.toolType\n                    }\n                  };\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId,\n                    toolName: `server:${part.toolCall.toolType}`,\n                    input: JSON.stringify((_f = part.toolCall.args) != null ? _f : {}),\n                    providerExecuted: true,\n                    dynamic: true,\n                    providerMetadata: serverMeta\n                  });\n                } else if (\"toolResponse\" in part && part.toolResponse) {\n                  const responseToolCallId = (_g = lastServerToolCallId != null ? lastServerToolCallId : part.toolResponse.id) != null ? _g : generateId3();\n                  const serverMeta = {\n                    [providerOptionsName]: {\n                      ...part.thoughtSignature ? { thoughtSignature: part.thoughtSignature } : {},\n                      serverToolCallId: responseToolCallId,\n                      serverToolType: part.toolResponse.toolType\n                    }\n                  };\n                  controller.enqueue({\n                    type: \"tool-result\",\n                    toolCallId: responseToolCallId,\n                    toolName: `server:${part.toolResponse.toolType}`,\n                    result: (_h = part.toolResponse.response) != null ? _h : {},\n                    providerMetadata: serverMeta\n                  });\n                  lastServerToolCallId = void 0;\n                }\n              }\n              for (const part of parts) {\n                if (!(\"functionCall\" in part)) continue;\n                const providerMeta = part.thoughtSignature ? {\n                  [providerOptionsName]: {\n                    thoughtSignature: part.thoughtSignature\n                  }\n                } : void 0;\n                const isStreamingChunk = part.functionCall.partialArgs != null || part.functionCall.name != null && part.functionCall.willContinue === true;\n                const isTerminalChunk = part.functionCall.name == null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue == null;\n                const isCompleteCall = part.functionCall.name != null && part.functionCall.args != null && part.functionCall.partialArgs == null;\n                const isNoArgsCompleteCall = part.functionCall.name != null && part.functionCall.args == null && part.functionCall.partialArgs == null && part.functionCall.willContinue !== true;\n                if (isStreamingChunk) {\n                  if (part.functionCall.name != null) {\n                    const toolCallId = (_i = part.functionCall.id) != null ? _i : generateId3();\n                    const accumulator = new GoogleJSONAccumulator();\n                    activeStreamingToolCalls.push({\n                      toolCallId,\n                      toolName: part.functionCall.name,\n                      accumulator,\n                      providerMetadata: providerMeta\n                    });\n                    controller.enqueue({\n                      type: \"tool-input-start\",\n                      id: toolCallId,\n                      toolName: part.functionCall.name,\n                      providerMetadata: providerMeta\n                    });\n                    if (part.functionCall.partialArgs != null) {\n                      const partialArgs = part.functionCall.partialArgs;\n                      const { textDelta } = accumulator.processPartialArgs(partialArgs);\n                      if (textDelta.length > 0) {\n                        controller.enqueue({\n                          type: \"tool-input-delta\",\n                          id: toolCallId,\n                          delta: textDelta,\n                          providerMetadata: providerMeta\n                        });\n                      }\n                      if (part.functionCall.willContinue !== true && partialArgs.every((arg) => arg.willContinue !== true)) {\n                        finishActiveStreamingToolCall(controller);\n                      }\n                    }\n                  } else if (part.functionCall.partialArgs != null && activeStreamingToolCalls.length > 0) {\n                    const active = activeStreamingToolCalls[activeStreamingToolCalls.length - 1];\n                    const partialArgs = part.functionCall.partialArgs;\n                    const { textDelta } = active.accumulator.processPartialArgs(partialArgs);\n                    if (textDelta.length > 0) {\n                      controller.enqueue({\n                        type: \"tool-input-delta\",\n                        id: active.toolCallId,\n                        delta: textDelta,\n                        providerMetadata: providerMeta\n                      });\n                    }\n                    if (part.functionCall.willContinue !== true && partialArgs.every((arg) => arg.willContinue !== true)) {\n                      finishActiveStreamingToolCall(controller);\n                    }\n                  }\n                } else if (isTerminalChunk && activeStreamingToolCalls.length > 0) {\n                  finishActiveStreamingToolCall(controller);\n                } else if (isCompleteCall) {\n                  const toolCallId = (_j = part.functionCall.id) != null ? _j : generateId3();\n                  const toolName = part.functionCall.name;\n                  const args2 = typeof part.functionCall.args === \"string\" ? part.functionCall.args : JSON.stringify((_k = part.functionCall.args) != null ? _k : {});\n                  controller.enqueue({\n                    type: \"tool-input-start\",\n                    id: toolCallId,\n                    toolName,\n                    providerMetadata: providerMeta\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-delta\",\n                    id: toolCallId,\n                    delta: args2,\n                    providerMetadata: providerMeta\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-end\",\n                    id: toolCallId,\n                    providerMetadata: providerMeta\n                  });\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId,\n                    toolName,\n                    input: args2,\n                    providerMetadata: providerMeta\n                  });\n                  hasToolCalls = true;\n                } else if (isNoArgsCompleteCall) {\n                  const toolCallId = (_l = part.functionCall.id) != null ? _l : generateId3();\n                  const toolName = part.functionCall.name;\n                  controller.enqueue({\n                    type: \"tool-input-start\",\n                    id: toolCallId,\n                    toolName,\n                    providerMetadata: providerMeta\n                  });\n                  controller.enqueue({\n                    type: \"tool-input-end\",\n                    id: toolCallId,\n                    providerMetadata: providerMeta\n                  });\n                  controller.enqueue({\n                    type: \"tool-call\",\n                    toolCallId,\n                    toolName,\n                    input: \"{}\",\n                    providerMetadata: providerMeta\n                  });\n                  hasToolCalls = true;\n                }\n              }\n            }\n            if (candidate.finishReason != null) {\n              finishReason = {\n                unified: mapGoogleGenerativeAIFinishReason({\n                  finishReason: candidate.finishReason,\n                  hasToolCalls\n                }),\n                raw: candidate.finishReason\n              };\n              providerMetadata = {\n                [providerOptionsName]: {\n                  promptFeedback: (_m = value.promptFeedback) != null ? _m : null,\n                  groundingMetadata: lastGroundingMetadata,\n                  urlContextMetadata: lastUrlContextMetadata,\n                  safetyRatings: (_n = candidate.safetyRatings) != null ? _n : null,\n                  usageMetadata: usageMetadata != null ? usageMetadata : null,\n                  finishMessage: (_o = candidate.finishMessage) != null ? _o : null,\n                  serviceTier: (_p = usage == null ? void 0 : usage.serviceTier) != null ? _p : null\n                }\n              };\n            }\n          },\n          flush(controller) {\n            if (currentTextBlockId !== null) {\n              controller.enqueue({\n                type: \"text-end\",\n                id: currentTextBlockId\n              });\n            }\n            if (currentReasoningBlockId !== null) {\n              controller.enqueue({\n                type: \"reasoning-end\",\n                id: currentReasoningBlockId\n              });\n            }\n            controller.enqueue({\n              type: \"finish\",\n              finishReason,\n              usage: convertGoogleGenerativeAIUsage(usage),\n              providerMetadata\n            });\n          }\n        })\n      ),\n      response: { headers: responseHeaders },\n      request: { body: args }\n    };\n  }\n};\nfunction extractSources({\n  groundingMetadata,\n  generateId: generateId3\n}) {\n  var _a, _b, _c, _d, _e, _f;\n  if (!(groundingMetadata == null ? void 0 : groundingMetadata.groundingChunks)) {\n    return void 0;\n  }\n  const sources = [];\n  for (const chunk of groundingMetadata.groundingChunks) {\n    if (chunk.web != null) {\n      sources.push({\n        type: \"source\",\n        sourceType: \"url\",\n        id: generateId3(),\n        url: chunk.web.uri,\n        title: (_a = chunk.web.title) != null ? _a : void 0\n      });\n    } else if (chunk.image != null) {\n      sources.push({\n        type: \"source\",\n        sourceType: \"url\",\n        id: generateId3(),\n        // Google requires attribution to the source URI, not the actual image URI.\n        // TODO: add another type in v7 to allow both the image and source URL to be included separately\n        url: chunk.image.sourceUri,\n        title: (_b = chunk.image.title) != null ? _b : void 0\n      });\n    } else if (chunk.retrievedContext != null) {\n      const uri = chunk.retrievedContext.uri;\n      const fileSearchStore = chunk.retrievedContext.fileSearchStore;\n      if (uri && (uri.startsWith(\"http://\") || uri.startsWith(\"https://\"))) {\n        sources.push({\n          type: \"source\",\n          sourceType: \"url\",\n          id: generateId3(),\n          url: uri,\n          title: (_c = chunk.retrievedContext.title) != null ? _c : void 0\n        });\n      } else if (uri) {\n        const title = (_d = chunk.retrievedContext.title) != null ? _d : \"Unknown Document\";\n        let mediaType = \"application/octet-stream\";\n        let filename = void 0;\n        if (uri.endsWith(\".pdf\")) {\n          mediaType = \"application/pdf\";\n          filename = uri.split(\"/\").pop();\n        } else if (uri.endsWith(\".txt\")) {\n          mediaType = \"text/plain\";\n          filename = uri.split(\"/\").pop();\n        } else if (uri.endsWith(\".docx\")) {\n          mediaType = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n          filename = uri.split(\"/\").pop();\n        } else if (uri.endsWith(\".doc\")) {\n          mediaType = \"application/msword\";\n          filename = uri.split(\"/\").pop();\n        } else if (uri.match(/\\.(md|markdown)$/)) {\n          mediaType = \"text/markdown\";\n          filename = uri.split(\"/\").pop();\n        } else {\n          filename = uri.split(\"/\").pop();\n        }\n        sources.push({\n          type: \"source\",\n          sourceType: \"document\",\n          id: generateId3(),\n          mediaType,\n          title,\n          filename\n        });\n      } else if (fileSearchStore) {\n        const title = (_e = chunk.retrievedContext.title) != null ? _e : \"Unknown Document\";\n        sources.push({\n          type: \"source\",\n          sourceType: \"document\",\n          id: generateId3(),\n          mediaType: \"application/octet-stream\",\n          title,\n          filename: fileSearchStore.split(\"/\").pop()\n        });\n      }\n    } else if (chunk.maps != null) {\n      if (chunk.maps.uri) {\n        sources.push({\n          type: \"source\",\n          sourceType: \"url\",\n          id: generateId3(),\n          url: chunk.maps.uri,\n          title: (_f = chunk.maps.title) != null ? _f : void 0\n        });\n      }\n    }\n  }\n  return sources.length > 0 ? sources : void 0;\n}\nvar getGroundingMetadataSchema = () => z5.object({\n  webSearchQueries: z5.array(z5.string()).nullish(),\n  imageSearchQueries: z5.array(z5.string()).nullish(),\n  retrievalQueries: z5.array(z5.string()).nullish(),\n  searchEntryPoint: z5.object({ renderedContent: z5.string() }).nullish(),\n  groundingChunks: z5.array(\n    z5.object({\n      web: z5.object({ uri: z5.string(), title: z5.string().nullish() }).nullish(),\n      image: z5.object({\n        sourceUri: z5.string(),\n        imageUri: z5.string(),\n        title: z5.string().nullish(),\n        domain: z5.string().nullish()\n      }).nullish(),\n      retrievedContext: z5.object({\n        uri: z5.string().nullish(),\n        title: z5.string().nullish(),\n        text: z5.string().nullish(),\n        fileSearchStore: z5.string().nullish()\n      }).nullish(),\n      maps: z5.object({\n        uri: z5.string().nullish(),\n        title: z5.string().nullish(),\n        text: z5.string().nullish(),\n        placeId: z5.string().nullish()\n      }).nullish()\n    })\n  ).nullish(),\n  groundingSupports: z5.array(\n    z5.object({\n      segment: z5.object({\n        startIndex: z5.number().nullish(),\n        endIndex: z5.number().nullish(),\n        text: z5.string().nullish()\n      }).nullish(),\n      segment_text: z5.string().nullish(),\n      groundingChunkIndices: z5.array(z5.number()).nullish(),\n      supportChunkIndices: z5.array(z5.number()).nullish(),\n      confidenceScores: z5.array(z5.number()).nullish(),\n      confidenceScore: z5.array(z5.number()).nullish()\n    })\n  ).nullish(),\n  retrievalMetadata: z5.union([\n    z5.object({\n      webDynamicRetrievalScore: z5.number()\n    }),\n    z5.object({})\n  ]).nullish()\n});\nvar partialArgSchema = z5.object({\n  jsonPath: z5.string(),\n  stringValue: z5.string().nullish(),\n  numberValue: z5.number().nullish(),\n  boolValue: z5.boolean().nullish(),\n  nullValue: z5.unknown().nullish(),\n  willContinue: z5.boolean().nullish()\n});\nvar getContentSchema = () => z5.object({\n  parts: z5.array(\n    z5.union([\n      // note: order matters since text can be fully empty\n      z5.object({\n        functionCall: z5.object({\n          id: z5.string().nullish(),\n          name: z5.string().nullish(),\n          args: z5.unknown().nullish(),\n          partialArgs: z5.array(partialArgSchema).nullish(),\n          willContinue: z5.boolean().nullish()\n        }),\n        thoughtSignature: z5.string().nullish()\n      }),\n      z5.object({\n        inlineData: z5.object({\n          mimeType: z5.string(),\n          data: z5.string()\n        }),\n        thought: z5.boolean().nullish(),\n        thoughtSignature: z5.string().nullish()\n      }),\n      z5.object({\n        toolCall: z5.object({\n          toolType: z5.string(),\n          args: z5.unknown().nullish(),\n          id: z5.string()\n        }),\n        thoughtSignature: z5.string().nullish()\n      }),\n      z5.object({\n        toolResponse: z5.object({\n          toolType: z5.string(),\n          response: z5.unknown().nullish(),\n          id: z5.string()\n        }),\n        thoughtSignature: z5.string().nullish()\n      }),\n      z5.object({\n        executableCode: z5.object({\n          language: z5.string(),\n          code: z5.string()\n        }).nullish(),\n        codeExecutionResult: z5.object({\n          outcome: z5.string(),\n          output: z5.string().nullish()\n        }).nullish(),\n        text: z5.string().nullish(),\n        thought: z5.boolean().nullish(),\n        thoughtSignature: z5.string().nullish()\n      })\n    ])\n  ).nullish()\n});\nvar getSafetyRatingSchema = () => z5.object({\n  category: z5.string().nullish(),\n  probability: z5.string().nullish(),\n  probabilityScore: z5.number().nullish(),\n  severity: z5.string().nullish(),\n  severityScore: z5.number().nullish(),\n  blocked: z5.boolean().nullish()\n});\nvar tokenDetailsSchema = z5.array(\n  z5.object({\n    modality: z5.string(),\n    tokenCount: z5.number()\n  })\n).nullish();\nvar usageSchema = z5.object({\n  cachedContentTokenCount: z5.number().nullish(),\n  thoughtsTokenCount: z5.number().nullish(),\n  promptTokenCount: z5.number().nullish(),\n  candidatesTokenCount: z5.number().nullish(),\n  totalTokenCount: z5.number().nullish(),\n  // https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/GenerateContentResponse#TrafficType\n  trafficType: z5.string().nullish(),\n  serviceTier: z5.string().nullish(),\n  // https://ai.google.dev/api/generate-content#Modality\n  promptTokensDetails: tokenDetailsSchema,\n  candidatesTokensDetails: tokenDetailsSchema\n});\nvar getUrlContextMetadataSchema = () => z5.object({\n  urlMetadata: z5.array(\n    z5.object({\n      retrievedUrl: z5.string(),\n      urlRetrievalStatus: z5.string()\n    })\n  ).nullish()\n});\nvar responseSchema = lazySchema5(\n  () => zodSchema5(\n    z5.object({\n      responseId: z5.string().nullish(),\n      candidates: z5.array(\n        z5.object({\n          content: getContentSchema().nullish().or(z5.object({}).strict()),\n          finishReason: z5.string().nullish(),\n          finishMessage: z5.string().nullish(),\n          safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n          groundingMetadata: getGroundingMetadataSchema().nullish(),\n          urlContextMetadata: getUrlContextMetadataSchema().nullish()\n        })\n      ),\n      usageMetadata: usageSchema.nullish(),\n      promptFeedback: z5.object({\n        blockReason: z5.string().nullish(),\n        safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n      }).nullish()\n    })\n  )\n);\nvar chunkSchema = lazySchema5(\n  () => zodSchema5(\n    z5.object({\n      responseId: z5.string().nullish(),\n      candidates: z5.array(\n        z5.object({\n          content: getContentSchema().nullish(),\n          finishReason: z5.string().nullish(),\n          finishMessage: z5.string().nullish(),\n          safetyRatings: z5.array(getSafetyRatingSchema()).nullish(),\n          groundingMetadata: getGroundingMetadataSchema().nullish(),\n          urlContextMetadata: getUrlContextMetadataSchema().nullish()\n        })\n      ).nullish(),\n      usageMetadata: usageSchema.nullish(),\n      promptFeedback: z5.object({\n        blockReason: z5.string().nullish(),\n        safetyRatings: z5.array(getSafetyRatingSchema()).nullish()\n      }).nullish()\n    })\n  )\n);\n\n// src/tool/code-execution.ts\nimport { createProviderToolFactoryWithOutputSchema } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar codeExecution = createProviderToolFactoryWithOutputSchema({\n  id: \"google.code_execution\",\n  inputSchema: z6.object({\n    language: z6.string().describe(\"The programming language of the code.\"),\n    code: z6.string().describe(\"The code to be executed.\")\n  }),\n  outputSchema: z6.object({\n    outcome: z6.string().describe('The outcome of the execution (e.g., \"OUTCOME_OK\").'),\n    output: z6.string().describe(\"The output from the code execution.\")\n  })\n});\n\n// src/tool/enterprise-web-search.ts\nimport {\n  createProviderToolFactory,\n  lazySchema as lazySchema6,\n  zodSchema as zodSchema6\n} from \"@ai-sdk/provider-utils\";\nimport { z as z7 } from \"zod/v4\";\nvar enterpriseWebSearch = createProviderToolFactory({\n  id: \"google.enterprise_web_search\",\n  inputSchema: lazySchema6(() => zodSchema6(z7.object({})))\n});\n\n// src/tool/file-search.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory2,\n  lazySchema as lazySchema7,\n  zodSchema as zodSchema7\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar fileSearchArgsBaseSchema = z8.object({\n  /** The names of the file_search_stores to retrieve from.\n   *  Example: `fileSearchStores/my-file-search-store-123`\n   */\n  fileSearchStoreNames: z8.array(z8.string()).describe(\n    \"The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`\"\n  ),\n  /** The number of file search retrieval chunks to retrieve. */\n  topK: z8.number().int().positive().describe(\"The number of file search retrieval chunks to retrieve.\").optional(),\n  /** Metadata filter to apply to the file search retrieval documents.\n   *  See https://google.aip.dev/160 for the syntax of the filter expression.\n   */\n  metadataFilter: z8.string().describe(\n    \"Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.\"\n  ).optional()\n}).passthrough();\nvar fileSearchArgsSchema = lazySchema7(\n  () => zodSchema7(fileSearchArgsBaseSchema)\n);\nvar fileSearch = createProviderToolFactory2({\n  id: \"google.file_search\",\n  inputSchema: fileSearchArgsSchema\n});\n\n// src/tool/google-maps.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory3,\n  lazySchema as lazySchema8,\n  zodSchema as zodSchema8\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar googleMaps = createProviderToolFactory3({\n  id: \"google.google_maps\",\n  inputSchema: lazySchema8(() => zodSchema8(z9.object({})))\n});\n\n// src/tool/google-search.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory4,\n  lazySchema as lazySchema9,\n  zodSchema as zodSchema9\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar googleSearchToolArgsBaseSchema = z10.object({\n  searchTypes: z10.object({\n    webSearch: z10.object({}).optional(),\n    imageSearch: z10.object({}).optional()\n  }).optional(),\n  timeRangeFilter: z10.object({\n    startTime: z10.string(),\n    endTime: z10.string()\n  }).optional()\n}).passthrough();\nvar googleSearchToolArgsSchema = lazySchema9(\n  () => zodSchema9(googleSearchToolArgsBaseSchema)\n);\nvar googleSearch = createProviderToolFactory4(\n  {\n    id: \"google.google_search\",\n    inputSchema: googleSearchToolArgsSchema\n  }\n);\n\n// src/tool/url-context.ts\nimport {\n  createProviderToolFactory as createProviderToolFactory5,\n  lazySchema as lazySchema10,\n  zodSchema as zodSchema10\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar urlContext = createProviderToolFactory5({\n  id: \"google.url_context\",\n  inputSchema: lazySchema10(() => zodSchema10(z11.object({})))\n});\n\n// src/tool/vertex-rag-store.ts\nimport { createProviderToolFactory as createProviderToolFactory6 } from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar vertexRagStore = createProviderToolFactory6({\n  id: \"google.vertex_rag_store\",\n  inputSchema: z12.object({\n    ragCorpus: z12.string(),\n    topK: z12.number().optional()\n  })\n});\n\n// src/google-tools.ts\nvar googleTools = {\n  /**\n   * Creates a Google search tool that gives Google direct access to real-time web content.\n   * Must have name \"google_search\".\n   */\n  googleSearch,\n  /**\n   * Creates an Enterprise Web Search tool for grounding responses using a compliance-focused web index.\n   * Designed for highly-regulated industries (finance, healthcare, public sector).\n   * Does not log customer data and supports VPC service controls.\n   * Must have name \"enterprise_web_search\".\n   *\n   * @note Only available on Vertex AI. Requires Gemini 2.0 or newer.\n   *\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/web-grounding-enterprise\n   */\n  enterpriseWebSearch,\n  /**\n   * Creates a Google Maps grounding tool that gives the model access to Google Maps data.\n   * Must have name \"google_maps\".\n   *\n   * @see https://ai.google.dev/gemini-api/docs/maps-grounding\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-maps\n   */\n  googleMaps,\n  /**\n   * Creates a URL context tool that gives Google direct access to real-time web content.\n   * Must have name \"url_context\".\n   */\n  urlContext,\n  /**\n   * Enables Retrieval Augmented Generation (RAG) via the Gemini File Search tool.\n   * Must have name \"file_search\".\n   *\n   * @param fileSearchStoreNames - Fully-qualified File Search store resource names.\n   * @param metadataFilter - Optional filter expression to restrict the files that can be retrieved.\n   * @param topK - Optional result limit for the number of chunks returned from File Search.\n   *\n   * @see https://ai.google.dev/gemini-api/docs/file-search\n   */\n  fileSearch,\n  /**\n   * A tool that enables the model to generate and run Python code.\n   * Must have name \"code_execution\".\n   *\n   * @note Ensure the selected model supports Code Execution.\n   * Multi-tool usage with the code execution tool is typically compatible with Gemini >=2 models.\n   *\n   * @see https://ai.google.dev/gemini-api/docs/code-execution (Google AI)\n   * @see https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/code-execution-api (Vertex AI)\n   */\n  codeExecution,\n  /**\n   * Creates a Vertex RAG Store tool that enables the model to perform RAG searches against a Vertex RAG Store.\n   * Must have name \"vertex_rag_store\".\n   */\n  vertexRagStore\n};\n\n// src/google-generative-ai-image-model.ts\nimport {\n  combineHeaders as combineHeaders3,\n  convertToBase64 as convertToBase642,\n  createJsonResponseHandler as createJsonResponseHandler3,\n  generateId as defaultGenerateId,\n  lazySchema as lazySchema11,\n  parseProviderOptions as parseProviderOptions3,\n  postJsonToApi as postJsonToApi3,\n  resolve as resolve3,\n  zodSchema as zodSchema11\n} from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar GoogleGenerativeAIImageModel = class {\n  constructor(modelId, settings, config) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n  }\n  get maxImagesPerCall() {\n    if (this.settings.maxImagesPerCall != null) {\n      return this.settings.maxImagesPerCall;\n    }\n    if (isGeminiModel(this.modelId)) {\n      return 10;\n    }\n    return 4;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  async doGenerate(options) {\n    if (isGeminiModel(this.modelId)) {\n      return this.doGenerateGemini(options);\n    }\n    return this.doGenerateImagen(options);\n  }\n  async doGenerateImagen(options) {\n    var _a, _b, _c;\n    const {\n      prompt,\n      n = 1,\n      size,\n      aspectRatio = \"1:1\",\n      seed,\n      providerOptions,\n      headers,\n      abortSignal,\n      files,\n      mask\n    } = options;\n    const warnings = [];\n    if (files != null && files.length > 0) {\n      throw new Error(\n        \"Google Generative AI does not support image editing with Imagen models. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.\"\n      );\n    }\n    if (mask != null) {\n      throw new Error(\n        \"Google Generative AI does not support image editing with masks. Use Google Vertex AI (@ai-sdk/google-vertex) for image editing capabilities.\"\n      );\n    }\n    if (size != null) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"size\",\n        details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n      });\n    }\n    if (seed != null) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"seed\",\n        details: \"This model does not support the `seed` option through this provider.\"\n      });\n    }\n    const googleOptions = await parseProviderOptions3({\n      provider: \"google\",\n      providerOptions,\n      schema: googleImageModelOptionsSchema\n    });\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    const parameters = {\n      sampleCount: n\n    };\n    if (aspectRatio != null) {\n      parameters.aspectRatio = aspectRatio;\n    }\n    if (googleOptions) {\n      const { googleSearch: imagenGoogleSearch, ...imagenOptions } = googleOptions;\n      if (imagenGoogleSearch != null) {\n        warnings.push({\n          type: \"unsupported\",\n          feature: \"googleSearch\",\n          details: \"Google Search grounding is only supported on Gemini image models.\"\n        });\n      }\n      Object.assign(parameters, imagenOptions);\n    }\n    const body = {\n      instances: [{ prompt }],\n      parameters\n    };\n    const { responseHeaders, value: response } = await postJsonToApi3({\n      url: `${this.config.baseURL}/models/${this.modelId}:predict`,\n      headers: combineHeaders3(await resolve3(this.config.headers), headers),\n      body,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler3(\n        googleImageResponseSchema\n      ),\n      abortSignal,\n      fetch: this.config.fetch\n    });\n    return {\n      images: response.predictions.map(\n        (p) => p.bytesBase64Encoded\n      ),\n      warnings,\n      providerMetadata: {\n        google: {\n          images: response.predictions.map(() => ({\n            // Add any prediction-specific metadata here\n          }))\n        }\n      },\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders\n      }\n    };\n  }\n  async doGenerateGemini(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n    const {\n      prompt,\n      n,\n      size,\n      aspectRatio,\n      seed,\n      providerOptions,\n      headers,\n      abortSignal,\n      files,\n      mask\n    } = options;\n    const warnings = [];\n    if (mask != null) {\n      throw new Error(\n        \"Gemini image models do not support mask-based image editing.\"\n      );\n    }\n    if (n != null && n > 1) {\n      throw new Error(\n        \"Gemini image models do not support generating a set number of images per call. Use n=1 or omit the n parameter.\"\n      );\n    }\n    if (size != null) {\n      warnings.push({\n        type: \"unsupported\",\n        feature: \"size\",\n        details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n      });\n    }\n    const userContent = [];\n    if (prompt != null) {\n      userContent.push({ type: \"text\", text: prompt });\n    }\n    if (files != null && files.length > 0) {\n      for (const file of files) {\n        if (file.type === \"url\") {\n          userContent.push({\n            type: \"file\",\n            data: new URL(file.url),\n            mediaType: \"image/*\"\n          });\n        } else {\n          userContent.push({\n            type: \"file\",\n            data: typeof file.data === \"string\" ? file.data : new Uint8Array(file.data),\n            mediaType: file.mediaType\n          });\n        }\n      }\n    }\n    const languageModelPrompt = [\n      { role: \"user\", content: userContent }\n    ];\n    const googleImageOptions = await parseProviderOptions3({\n      provider: \"google\",\n      providerOptions,\n      schema: googleImageModelOptionsSchema\n    });\n    const { googleSearch: _strippedGoogleSearch, ...passthroughGoogleOptions } = (_a = providerOptions == null ? void 0 : providerOptions.google) != null ? _a : {};\n    const languageModel = new GoogleGenerativeAILanguageModel(this.modelId, {\n      provider: this.config.provider,\n      baseURL: this.config.baseURL,\n      headers: (_b = this.config.headers) != null ? _b : {},\n      fetch: this.config.fetch,\n      generateId: (_c = this.config.generateId) != null ? _c : defaultGenerateId\n    });\n    const result = await languageModel.doGenerate({\n      prompt: languageModelPrompt,\n      seed,\n      providerOptions: {\n        google: {\n          responseModalities: [\"IMAGE\"],\n          imageConfig: aspectRatio ? {\n            aspectRatio\n          } : void 0,\n          ...passthroughGoogleOptions\n        }\n      },\n      tools: (googleImageOptions == null ? void 0 : googleImageOptions.googleSearch) != null ? [\n        {\n          type: \"provider\",\n          id: \"google.google_search\",\n          name: \"google_search\",\n          args: googleImageOptions.googleSearch\n        }\n      ] : void 0,\n      headers,\n      abortSignal\n    });\n    const currentDate = (_f = (_e = (_d = this.config._internal) == null ? void 0 : _d.currentDate) == null ? void 0 : _e.call(_d)) != null ? _f : /* @__PURE__ */ new Date();\n    const images = [];\n    for (const part of result.content) {\n      if (part.type === \"file\" && part.mediaType.startsWith(\"image/\")) {\n        images.push(convertToBase642(part.data));\n      }\n    }\n    const languageModelGoogleMetadata = (_h = (_g = result.providerMetadata) == null ? void 0 : _g.google) != null ? _h : {};\n    return {\n      images,\n      warnings,\n      providerMetadata: {\n        google: {\n          ...languageModelGoogleMetadata,\n          images: images.map(() => ({}))\n        }\n      },\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: (_i = result.response) == null ? void 0 : _i.headers\n      },\n      usage: result.usage ? {\n        inputTokens: result.usage.inputTokens.total,\n        outputTokens: result.usage.outputTokens.total,\n        totalTokens: ((_j = result.usage.inputTokens.total) != null ? _j : 0) + ((_k = result.usage.outputTokens.total) != null ? _k : 0)\n      } : void 0\n    };\n  }\n};\nfunction isGeminiModel(modelId) {\n  return modelId.startsWith(\"gemini-\");\n}\nvar googleImageResponseSchema = lazySchema11(\n  () => zodSchema11(\n    z13.object({\n      predictions: z13.array(z13.object({ bytesBase64Encoded: z13.string() })).default([])\n    })\n  )\n);\nvar googleImageModelOptionsSchema = lazySchema11(\n  () => zodSchema11(\n    z13.object({\n      personGeneration: z13.enum([\"dont_allow\", \"allow_adult\", \"allow_all\"]).nullish(),\n      aspectRatio: z13.enum([\"1:1\", \"3:4\", \"4:3\", \"9:16\", \"16:9\"]).nullish(),\n      /**\n       * Enable Google Search grounding for Gemini image models. The value is\n       * forwarded as the args of the `google.tools.googleSearch` provider\n       * tool on the underlying language-model call. Pass `{}` for defaults.\n       *\n       * `generateImage` does not accept a `tools` parameter, so this is the\n       * dedicated escape hatch for grounding image generation the same way\n       * `generateText` does.\n       */\n      googleSearch: googleSearchToolArgsBaseSchema.optional()\n    })\n  )\n);\n\n// src/google-generative-ai-video-model.ts\nimport {\n  AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n  combineHeaders as combineHeaders4,\n  convertUint8ArrayToBase64,\n  createJsonResponseHandler as createJsonResponseHandler4,\n  delay,\n  getFromApi,\n  isSameOrigin,\n  lazySchema as lazySchema12,\n  parseProviderOptions as parseProviderOptions4,\n  postJsonToApi as postJsonToApi4,\n  resolve as resolve4,\n  zodSchema as zodSchema12\n} from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nfunction getFirstFrameImage(options) {\n  var _a, _b;\n  return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"first_frame\")) == null ? void 0 : _b.image;\n}\nfunction resolveStartImage(options) {\n  var _a;\n  return (_a = getFirstFrameImage(options)) != null ? _a : options.image;\n}\nfunction getLastFrameImage(options) {\n  var _a, _b;\n  return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"last_frame\")) == null ? void 0 : _b.image;\n}\nfunction getInputReferences(options) {\n  if (options.frameImages != null && options.frameImages.length > 0) {\n    return void 0;\n  }\n  return options.inputReferences != null && options.inputReferences.length > 0 ? options.inputReferences : void 0;\n}\nfunction convertFileToGoogleImage(file, warnings) {\n  if (file.type === \"url\") {\n    if (file.url.startsWith(\"gs://\")) {\n      return {\n        gcsUri: file.url,\n        mimeType: \"image/png\"\n      };\n    }\n    warnings.push({\n      type: \"unsupported\",\n      feature: \"URL-based image input\",\n      details: \"Google Generative AI video models require base64-encoded images or GCS URIs. URL will be ignored.\"\n    });\n    return void 0;\n  }\n  const base64Data = typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data);\n  return {\n    bytesBase64Encoded: base64Data,\n    mimeType: file.mediaType || \"image/png\"\n  };\n}\nfunction convertProviderReferenceImage(refImg) {\n  if (refImg.bytesBase64Encoded) {\n    return {\n      image: {\n        bytesBase64Encoded: refImg.bytesBase64Encoded,\n        mimeType: \"image/png\"\n      }\n    };\n  }\n  if (refImg.gcsUri) {\n    return {\n      image: {\n        gcsUri: refImg.gcsUri,\n        mimeType: \"image/png\"\n      }\n    };\n  }\n  return refImg;\n}\nfunction convertInputReferenceImage(file, warnings) {\n  const image = convertFileToGoogleImage(file, warnings);\n  return image != null ? { image } : void 0;\n}\nvar GoogleGenerativeAIVideoModel = class {\n  constructor(modelId, config) {\n    this.modelId = modelId;\n    this.config = config;\n    this.specificationVersion = \"v3\";\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get maxVideosPerCall() {\n    return 4;\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n    const warnings = [];\n    const googleOptions = await parseProviderOptions4({\n      provider: \"google\",\n      providerOptions: options.providerOptions,\n      schema: googleVideoModelOptionsSchema\n    });\n    const instances = [{}];\n    const instance = instances[0];\n    if (options.prompt != null) {\n      instance.prompt = options.prompt;\n    }\n    const startImage = resolveStartImage(options);\n    if (startImage != null) {\n      const image = convertFileToGoogleImage(startImage, warnings);\n      if (image != null) {\n        instance.image = image;\n      }\n    }\n    const lastFrameImage = getLastFrameImage(options);\n    if (lastFrameImage != null) {\n      const lastFrame = convertFileToGoogleImage(lastFrameImage, warnings);\n      if (lastFrame != null) {\n        instance.lastFrame = lastFrame;\n      }\n    }\n    const inputReferences = getInputReferences(options);\n    if (inputReferences != null) {\n      instance.referenceImages = inputReferences.flatMap((reference) => {\n        const converted = convertInputReferenceImage(reference, warnings);\n        return converted != null ? [converted] : [];\n      });\n    } else if ((googleOptions == null ? void 0 : googleOptions.referenceImages) != null) {\n      instance.referenceImages = googleOptions.referenceImages.map(\n        (refImg) => convertProviderReferenceImage(refImg)\n      );\n    }\n    const parameters = {\n      sampleCount: options.n\n    };\n    if (options.aspectRatio) {\n      parameters.aspectRatio = options.aspectRatio;\n    }\n    if (options.resolution) {\n      const resolutionMap = {\n        \"1280x720\": \"720p\",\n        \"1920x1080\": \"1080p\",\n        \"3840x2160\": \"4k\"\n      };\n      parameters.resolution = resolutionMap[options.resolution] || options.resolution;\n    }\n    if (options.duration) {\n      parameters.durationSeconds = options.duration;\n    }\n    if (options.seed) {\n      parameters.seed = options.seed;\n    }\n    if (googleOptions != null) {\n      const opts = googleOptions;\n      if (opts.personGeneration !== void 0 && opts.personGeneration !== null) {\n        parameters.personGeneration = opts.personGeneration;\n      }\n      if (opts.negativePrompt !== void 0 && opts.negativePrompt !== null) {\n        parameters.negativePrompt = opts.negativePrompt;\n      }\n      for (const [key, value] of Object.entries(opts)) {\n        if (![\n          \"pollIntervalMs\",\n          \"pollTimeoutMs\",\n          \"personGeneration\",\n          \"negativePrompt\",\n          \"referenceImages\"\n        ].includes(key)) {\n          parameters[key] = value;\n        }\n      }\n    }\n    const { value: operation } = await postJsonToApi4({\n      url: `${this.config.baseURL}/models/${this.modelId}:predictLongRunning`,\n      headers: combineHeaders4(\n        await resolve4(this.config.headers),\n        options.headers\n      ),\n      body: {\n        instances,\n        parameters\n      },\n      successfulResponseHandler: createJsonResponseHandler4(\n        googleOperationSchema\n      ),\n      failedResponseHandler: googleFailedResponseHandler,\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const operationName = operation.name;\n    if (!operationName) {\n      throw new AISDKError({\n        name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n        message: \"No operation name returned from API\"\n      });\n    }\n    const pollIntervalMs = (_d = googleOptions == null ? void 0 : googleOptions.pollIntervalMs) != null ? _d : 1e4;\n    const pollTimeoutMs = (_e = googleOptions == null ? void 0 : googleOptions.pollTimeoutMs) != null ? _e : 6e5;\n    const startTime = Date.now();\n    let finalOperation = operation;\n    let responseHeaders;\n    while (!finalOperation.done) {\n      if (Date.now() - startTime > pollTimeoutMs) {\n        throw new AISDKError({\n          name: \"GOOGLE_VIDEO_GENERATION_TIMEOUT\",\n          message: `Video generation timed out after ${pollTimeoutMs}ms`\n        });\n      }\n      await delay(pollIntervalMs);\n      if ((_f = options.abortSignal) == null ? void 0 : _f.aborted) {\n        throw new AISDKError({\n          name: \"GOOGLE_VIDEO_GENERATION_ABORTED\",\n          message: \"Video generation request was aborted\"\n        });\n      }\n      const { value: statusOperation, responseHeaders: pollHeaders } = await getFromApi({\n        url: `${this.config.baseURL}/${operationName}`,\n        headers: combineHeaders4(\n          await resolve4(this.config.headers),\n          options.headers\n        ),\n        successfulResponseHandler: createJsonResponseHandler4(\n          googleOperationSchema\n        ),\n        failedResponseHandler: googleFailedResponseHandler,\n        abortSignal: options.abortSignal,\n        fetch: this.config.fetch\n      });\n      finalOperation = statusOperation;\n      responseHeaders = pollHeaders;\n    }\n    if (finalOperation.error) {\n      throw new AISDKError({\n        name: \"GOOGLE_VIDEO_GENERATION_FAILED\",\n        message: `Video generation failed: ${finalOperation.error.message}`\n      });\n    }\n    const response = finalOperation.response;\n    if (!((_g = response == null ? void 0 : response.generateVideoResponse) == null ? void 0 : _g.generatedSamples) || response.generateVideoResponse.generatedSamples.length === 0) {\n      throw new AISDKError({\n        name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n        message: `No videos in response. Response: ${JSON.stringify(finalOperation)}`\n      });\n    }\n    const videos = [];\n    const videoMetadata = [];\n    const resolvedHeaders = await resolve4(this.config.headers);\n    const apiKey = resolvedHeaders == null ? void 0 : resolvedHeaders[\"x-goog-api-key\"];\n    for (const generatedSample of response.generateVideoResponse.generatedSamples) {\n      if ((_h = generatedSample.video) == null ? void 0 : _h.uri) {\n        const urlWithAuth = apiKey && isSameOrigin(generatedSample.video.uri, this.config.baseURL) ? `${generatedSample.video.uri}${generatedSample.video.uri.includes(\"?\") ? \"&\" : \"?\"}key=${apiKey}` : generatedSample.video.uri;\n        videos.push({\n          type: \"url\",\n          url: urlWithAuth,\n          mediaType: \"video/mp4\"\n        });\n        videoMetadata.push({\n          uri: generatedSample.video.uri\n        });\n      }\n    }\n    if (videos.length === 0) {\n      throw new AISDKError({\n        name: \"GOOGLE_VIDEO_GENERATION_ERROR\",\n        message: \"No valid videos in response\"\n      });\n    }\n    return {\n      videos,\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders\n      },\n      providerMetadata: {\n        google: {\n          videos: videoMetadata\n        }\n      }\n    };\n  }\n};\nvar googleOperationSchema = z14.object({\n  name: z14.string().nullish(),\n  done: z14.boolean().nullish(),\n  error: z14.object({\n    code: z14.number().nullish(),\n    message: z14.string(),\n    status: z14.string().nullish()\n  }).nullish(),\n  response: z14.object({\n    generateVideoResponse: z14.object({\n      generatedSamples: z14.array(\n        z14.object({\n          video: z14.object({\n            uri: z14.string().nullish()\n          }).nullish()\n        })\n      ).nullish()\n    }).nullish()\n  }).nullish()\n});\nvar googleVideoModelOptionsSchema = lazySchema12(\n  () => zodSchema12(\n    z14.object({\n      pollIntervalMs: z14.number().positive().nullish(),\n      pollTimeoutMs: z14.number().positive().nullish(),\n      personGeneration: z14.enum([\"dont_allow\", \"allow_adult\", \"allow_all\"]).nullish(),\n      negativePrompt: z14.string().nullish(),\n      referenceImages: z14.array(\n        z14.object({\n          bytesBase64Encoded: z14.string().nullish(),\n          gcsUri: z14.string().nullish()\n        })\n      ).nullish()\n    }).passthrough()\n  )\n);\n\n// src/interactions/google-interactions-language-model.ts\nimport {\n  combineHeaders as combineHeaders6,\n  createEventSourceResponseHandler as createEventSourceResponseHandler3,\n  createJsonResponseHandler as createJsonResponseHandler6,\n  generateId as defaultGenerateId2,\n  parseProviderOptions as parseProviderOptions5,\n  postJsonToApi as postJsonToApi5,\n  resolve as resolve5\n} from \"@ai-sdk/provider-utils\";\n\n// src/interactions/convert-google-interactions-usage.ts\nfunction convertGoogleInteractionsUsage(usage) {\n  var _a, _b, _c, _d, _e, _f, _g, _h;\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: void 0,\n        noCache: void 0,\n        cacheRead: void 0,\n        cacheWrite: void 0\n      },\n      outputTokens: {\n        total: void 0,\n        text: void 0,\n        reasoning: void 0\n      },\n      raw: void 0\n    };\n  }\n  const totalInput = (_a = usage.total_input_tokens) != null ? _a : 0;\n  const totalOutput = (_b = usage.total_output_tokens) != null ? _b : 0;\n  const totalThought = (_c = usage.total_thought_tokens) != null ? _c : 0;\n  const totalCached = (_d = usage.total_cached_tokens) != null ? _d : 0;\n  return {\n    inputTokens: {\n      total: (_e = usage.total_input_tokens) != null ? _e : void 0,\n      noCache: usage.total_input_tokens == null ? void 0 : totalInput - totalCached,\n      cacheRead: (_f = usage.total_cached_tokens) != null ? _f : void 0,\n      cacheWrite: void 0\n    },\n    outputTokens: {\n      total: usage.total_output_tokens == null && usage.total_thought_tokens == null ? void 0 : totalOutput + totalThought,\n      text: (_g = usage.total_output_tokens) != null ? _g : void 0,\n      reasoning: (_h = usage.total_thought_tokens) != null ? _h : void 0\n    },\n    raw: usage\n  };\n}\nfunction getGoogleInteractionsOutputTokensByModality(usage) {\n  const byModality = usage == null ? void 0 : usage.output_tokens_by_modality;\n  if (byModality == null) {\n    return void 0;\n  }\n  const result = {};\n  for (const entry of byModality) {\n    if ((entry == null ? void 0 : entry.modality) != null && entry.tokens != null) {\n      result[entry.modality] = entry.tokens;\n    }\n  }\n  return Object.keys(result).length > 0 ? result : void 0;\n}\n\n// src/interactions/extract-google-interactions-sources.ts\nvar KNOWN_DOC_EXTENSIONS = {\n  pdf: \"application/pdf\",\n  txt: \"text/plain\",\n  md: \"text/markdown\",\n  markdown: \"text/markdown\",\n  doc: \"application/msword\",\n  docx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n};\nfunction inferDocMediaType(uriOrName) {\n  const lower = uriOrName.toLowerCase();\n  for (const [ext, media] of Object.entries(KNOWN_DOC_EXTENSIONS)) {\n    if (lower.endsWith(`.${ext}`)) return media;\n  }\n  return \"application/octet-stream\";\n}\nfunction basename(uriOrName) {\n  const parts = uriOrName.split(\"/\");\n  const last = parts[parts.length - 1];\n  return last && last.length > 0 ? last : void 0;\n}\nfunction annotationToSource({\n  annotation,\n  generateId: generateId3\n}) {\n  var _a, _b, _c, _d, _e;\n  switch (annotation.type) {\n    case \"url_citation\": {\n      const a = annotation;\n      if (a.url == null || a.url.length === 0) return void 0;\n      return {\n        type: \"source\",\n        sourceType: \"url\",\n        id: generateId3(),\n        url: a.url,\n        ...a.title != null ? { title: a.title } : {}\n      };\n    }\n    case \"file_citation\": {\n      const a = annotation;\n      const uri = (_b = (_a = a.url) != null ? _a : a.document_uri) != null ? _b : a.file_name;\n      if (uri == null || uri.length === 0) return void 0;\n      if (uri.startsWith(\"http://\") || uri.startsWith(\"https://\")) {\n        return {\n          type: \"source\",\n          sourceType: \"url\",\n          id: generateId3(),\n          url: uri,\n          ...a.file_name != null ? { title: a.file_name } : {}\n        };\n      }\n      const filename = (_c = a.file_name) != null ? _c : basename(uri);\n      const mediaType = inferDocMediaType(uri);\n      return {\n        type: \"source\",\n        sourceType: \"document\",\n        id: generateId3(),\n        mediaType,\n        title: (_e = (_d = a.file_name) != null ? _d : filename) != null ? _e : uri,\n        ...filename != null ? { filename } : {}\n      };\n    }\n    case \"place_citation\": {\n      const a = annotation;\n      if (a.url == null || a.url.length === 0) return void 0;\n      return {\n        type: \"source\",\n        sourceType: \"url\",\n        id: generateId3(),\n        url: a.url,\n        ...a.name != null ? { title: a.name } : {}\n      };\n    }\n    default:\n      return void 0;\n  }\n}\nfunction builtinToolResultToSources({\n  block,\n  generateId: generateId3\n}) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n  const sources = [];\n  switch (block.type) {\n    case \"url_context_result\": {\n      const result = (_a = block.result) != null ? _a : [];\n      for (const entry of result) {\n        if ((entry == null ? void 0 : entry.url) == null || entry.url.length === 0) continue;\n        if (entry.status != null && entry.status !== \"success\") continue;\n        sources.push({\n          type: \"source\",\n          sourceType: \"url\",\n          id: generateId3(),\n          url: entry.url\n        });\n      }\n      break;\n    }\n    case \"google_search_result\": {\n      const result = (_b = block.result) != null ? _b : [];\n      for (const entry of result) {\n        const url = entry == null ? void 0 : entry.url;\n        if (url == null || url.length === 0) continue;\n        sources.push({\n          type: \"source\",\n          sourceType: \"url\",\n          id: generateId3(),\n          url,\n          ...entry.title != null ? { title: entry.title } : {}\n        });\n      }\n      break;\n    }\n    case \"google_maps_result\": {\n      const result = (_c = block.result) != null ? _c : [];\n      for (const entry of result) {\n        for (const place of (_d = entry.places) != null ? _d : []) {\n          if (place.url == null || place.url.length === 0) continue;\n          sources.push({\n            type: \"source\",\n            sourceType: \"url\",\n            id: generateId3(),\n            url: place.url,\n            ...place.name != null ? { title: place.name } : {}\n          });\n        }\n      }\n      break;\n    }\n    case \"file_search_result\": {\n      const result = (_e = block.result) != null ? _e : [];\n      for (const raw of result) {\n        if (raw == null || typeof raw !== \"object\") continue;\n        const entry = raw;\n        const uri = (_g = (_f = entry.url) != null ? _f : entry.document_uri) != null ? _g : entry.file_name;\n        if (uri == null || uri.length === 0) continue;\n        if (uri.startsWith(\"http://\") || uri.startsWith(\"https://\")) {\n          sources.push({\n            type: \"source\",\n            sourceType: \"url\",\n            id: generateId3(),\n            url: uri,\n            ...entry.title != null ? { title: entry.title } : {}\n          });\n          continue;\n        }\n        const filename = (_h = entry.file_name) != null ? _h : basename(uri);\n        const mediaType = inferDocMediaType(uri);\n        sources.push({\n          type: \"source\",\n          sourceType: \"document\",\n          id: generateId3(),\n          mediaType,\n          title: (_k = (_j = (_i = entry.title) != null ? _i : entry.file_name) != null ? _j : filename) != null ? _k : uri,\n          ...filename != null ? { filename } : {}\n        });\n      }\n      break;\n    }\n    default:\n      break;\n  }\n  return sources;\n}\nfunction annotationsToSources({\n  annotations,\n  generateId: generateId3\n}) {\n  var _a;\n  if (annotations == null) return [];\n  const seen = /* @__PURE__ */ new Set();\n  const sources = [];\n  for (const annotation of annotations) {\n    const source = annotationToSource({ annotation, generateId: generateId3 });\n    if (source == null) continue;\n    const key = source.sourceType === \"url\" ? `url:${source.url}` : `doc:${(_a = source.filename) != null ? _a : source.title}`;\n    if (seen.has(key)) continue;\n    seen.add(key);\n    sources.push(source);\n  }\n  return sources;\n}\n\n// src/interactions/map-google-interactions-finish-reason.ts\nfunction mapGoogleInteractionsFinishReason({\n  status,\n  hasFunctionCall\n}) {\n  switch (status) {\n    case \"completed\":\n      return hasFunctionCall ? \"tool-calls\" : \"stop\";\n    case \"requires_action\":\n      return \"tool-calls\";\n    case \"failed\":\n      return \"error\";\n    case \"incomplete\":\n      return \"length\";\n    case \"cancelled\":\n      return \"other\";\n    case \"in_progress\":\n    default:\n      return \"other\";\n  }\n}\n\n// src/interactions/build-google-interactions-stream-transform.ts\nvar BUILTIN_TOOL_CALL_TYPES = /* @__PURE__ */ new Set([\n  \"google_search_call\",\n  \"code_execution_call\",\n  \"url_context_call\",\n  \"file_search_call\",\n  \"google_maps_call\",\n  \"mcp_server_tool_call\"\n]);\nvar BUILTIN_TOOL_RESULT_TYPES = /* @__PURE__ */ new Set([\n  \"google_search_result\",\n  \"code_execution_result\",\n  \"url_context_result\",\n  \"file_search_result\",\n  \"google_maps_result\",\n  \"mcp_server_tool_result\"\n]);\nfunction builtinToolNameFromCallType(type) {\n  return type.replace(/_call$/, \"\");\n}\nfunction builtinToolNameFromResultType(type) {\n  return type.replace(/_result$/, \"\");\n}\nfunction buildGoogleInteractionsStreamTransform({\n  warnings,\n  generateId: generateId3,\n  includeRawChunks,\n  serviceTier: headerServiceTier\n}) {\n  let interactionId;\n  let usage;\n  let serviceTier = headerServiceTier;\n  let finishStatus;\n  let hasFunctionCall = false;\n  const openBlocks = /* @__PURE__ */ new Map();\n  const emittedSourceKeys = /* @__PURE__ */ new Set();\n  function sourceKey(source) {\n    var _a;\n    return source.sourceType === \"url\" ? `url:${source.url}` : `doc:${(_a = source.filename) != null ? _a : source.title}`;\n  }\n  return new TransformStream({\n    start(controller) {\n      controller.enqueue({ type: \"stream-start\", warnings });\n    },\n    transform(chunk, controller) {\n      var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;\n      if (includeRawChunks) {\n        controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n      }\n      if (!chunk.success) {\n        finishStatus = \"failed\";\n        controller.enqueue({ type: \"error\", error: chunk.error });\n        return;\n      }\n      const value = chunk.value;\n      const eventType = value.event_type;\n      switch (eventType) {\n        case \"interaction.created\": {\n          const event = value;\n          const interaction = event.interaction;\n          interactionId = (interaction == null ? void 0 : interaction.id) != null && interaction.id.length > 0 ? interaction.id : void 0;\n          const created = interaction == null ? void 0 : interaction.created;\n          let timestamp;\n          if (typeof created === \"string\") {\n            const parsed = new Date(created);\n            if (!Number.isNaN(parsed.getTime())) {\n              timestamp = parsed;\n            }\n          }\n          controller.enqueue({\n            type: \"response-metadata\",\n            ...interactionId != null ? { id: interactionId } : {},\n            modelId: interaction == null ? void 0 : interaction.model,\n            ...timestamp ? { timestamp } : {}\n          });\n          break;\n        }\n        case \"step.start\": {\n          const event = value;\n          const step = event.step;\n          const index = event.index;\n          const blockId = `${interactionId != null ? interactionId : \"interaction\"}:${index}`;\n          const stepType = step == null ? void 0 : step.type;\n          if (stepType === \"model_output\") {\n            const initial = (_a = step == null ? void 0 : step.content) == null ? void 0 : _a[0];\n            if ((initial == null ? void 0 : initial.type) === \"text\") {\n              openBlocks.set(index, {\n                kind: \"text\",\n                id: blockId,\n                emittedSourceKeys: /* @__PURE__ */ new Set()\n              });\n              controller.enqueue({ type: \"text-start\", id: blockId });\n              const initialSources = annotationsToSources({\n                annotations: initial.annotations,\n                generateId: generateId3\n              });\n              for (const source of initialSources) {\n                const key = sourceKey(source);\n                if (emittedSourceKeys.has(key)) continue;\n                emittedSourceKeys.add(key);\n                controller.enqueue(source);\n              }\n            } else if ((initial == null ? void 0 : initial.type) === \"image\") {\n              openBlocks.set(index, {\n                kind: \"image\",\n                id: blockId,\n                ...initial.data != null ? { data: initial.data } : {},\n                ...initial.mime_type != null ? { mimeType: initial.mime_type } : {},\n                ...initial.uri != null ? { uri: initial.uri } : {}\n              });\n            } else {\n              openBlocks.set(index, {\n                kind: \"pending_model_output\",\n                id: blockId\n              });\n            }\n          } else if (stepType === \"thought\") {\n            const signature = step == null ? void 0 : step.signature;\n            openBlocks.set(index, {\n              kind: \"reasoning\",\n              id: blockId,\n              ...signature != null ? { signature } : {}\n            });\n            controller.enqueue({ type: \"reasoning-start\", id: blockId });\n            if (Array.isArray(step == null ? void 0 : step.summary)) {\n              for (const item of step.summary) {\n                if ((item == null ? void 0 : item.type) === \"text\" && typeof item.text === \"string\") {\n                  controller.enqueue({\n                    type: \"reasoning-delta\",\n                    id: blockId,\n                    delta: item.text\n                  });\n                }\n              }\n            }\n          } else if (stepType === \"function_call\") {\n            const toolCallId = (_b = step == null ? void 0 : step.id) != null ? _b : blockId;\n            const toolName = (_c = step == null ? void 0 : step.name) != null ? _c : \"unknown\";\n            hasFunctionCall = true;\n            const state = {\n              kind: \"function_call\",\n              id: blockId,\n              toolCallId,\n              toolName,\n              argumentsAccum: \"\",\n              ...(step == null ? void 0 : step.signature) != null ? { signature: step.signature } : {}\n            };\n            openBlocks.set(index, state);\n            controller.enqueue({\n              type: \"tool-input-start\",\n              id: toolCallId,\n              toolName\n            });\n          } else if (stepType != null && BUILTIN_TOOL_CALL_TYPES.has(stepType)) {\n            const toolName = stepType === \"mcp_server_tool_call\" ? (_d = step == null ? void 0 : step.name) != null ? _d : \"mcp_server_tool\" : builtinToolNameFromCallType(stepType);\n            const toolCallId = (_e = step == null ? void 0 : step.id) != null ? _e : blockId;\n            const state = {\n              kind: \"builtin_tool_call\",\n              id: blockId,\n              blockType: stepType,\n              toolCallId,\n              toolName,\n              arguments: (_f = step == null ? void 0 : step.arguments) != null ? _f : {},\n              callEmitted: false\n            };\n            openBlocks.set(index, state);\n          } else if (stepType != null && BUILTIN_TOOL_RESULT_TYPES.has(stepType)) {\n            const toolName = stepType === \"mcp_server_tool_result\" ? (_g = step == null ? void 0 : step.name) != null ? _g : \"mcp_server_tool\" : builtinToolNameFromResultType(stepType);\n            const callId = (_h = step == null ? void 0 : step.call_id) != null ? _h : blockId;\n            const state = {\n              kind: \"builtin_tool_result\",\n              id: blockId,\n              blockType: stepType,\n              callId,\n              toolName,\n              result: (_i = step == null ? void 0 : step.result) != null ? _i : null,\n              ...(step == null ? void 0 : step.is_error) != null ? { isError: step.is_error } : {},\n              resultEmitted: false\n            };\n            openBlocks.set(index, state);\n          } else {\n            openBlocks.set(index, { kind: \"unknown\", id: blockId });\n          }\n          break;\n        }\n        case \"step.delta\": {\n          const event = value;\n          let open = openBlocks.get(event.index);\n          if (open == null) break;\n          const dtype = (_j = event.delta) == null ? void 0 : _j.type;\n          if (open.kind === \"pending_model_output\") {\n            if (dtype === \"text\" || dtype === \"text_annotation\" || dtype === \"text_annotation_delta\") {\n              const promoted = {\n                kind: \"text\",\n                id: open.id,\n                emittedSourceKeys: /* @__PURE__ */ new Set()\n              };\n              openBlocks.set(event.index, promoted);\n              open = promoted;\n              controller.enqueue({ type: \"text-start\", id: promoted.id });\n            }\n          }\n          if (dtype === \"image\" && (open.kind === \"pending_model_output\" || open.kind === \"text\" || open.kind === \"image\")) {\n            const img = event.delta;\n            const google2 = {};\n            if (interactionId != null) google2.interactionId = interactionId;\n            const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n            if ((img == null ? void 0 : img.data) != null && img.data.length > 0) {\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_k = img.mime_type) != null ? _k : \"image/png\",\n                data: img.data,\n                ...providerMetadata ? { providerMetadata } : {}\n              });\n            } else if ((img == null ? void 0 : img.uri) != null && img.uri.length > 0) {\n              const uriProviderMetadata = {\n                google: {\n                  ...interactionId != null ? { interactionId } : {},\n                  imageUri: img.uri\n                }\n              };\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_l = img.mime_type) != null ? _l : \"image/png\",\n                data: \"\",\n                providerMetadata: uriProviderMetadata\n              });\n            }\n            if (open.kind === \"image\") {\n              open.data = void 0;\n              open.uri = void 0;\n            }\n            break;\n          }\n          if (dtype === \"video\" && (open.kind === \"pending_model_output\" || open.kind === \"text\")) {\n            const videoDelta = event.delta;\n            const google2 = {};\n            if (interactionId != null) google2.interactionId = interactionId;\n            const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n            if ((videoDelta == null ? void 0 : videoDelta.data) != null && videoDelta.data.length > 0) {\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_m = videoDelta.mime_type) != null ? _m : \"video/mp4\",\n                data: videoDelta.data,\n                ...providerMetadata ? { providerMetadata } : {}\n              });\n            } else if ((videoDelta == null ? void 0 : videoDelta.uri) != null && videoDelta.uri.length > 0) {\n              const uriProviderMetadata = {\n                google: {\n                  ...interactionId != null ? { interactionId } : {},\n                  videoUri: videoDelta.uri\n                }\n              };\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_n = videoDelta.mime_type) != null ? _n : \"video/mp4\",\n                data: \"\",\n                providerMetadata: uriProviderMetadata\n              });\n            }\n            break;\n          }\n          const delta = event.delta;\n          if (open.kind === \"text\" && (delta == null ? void 0 : delta.type) === \"text\") {\n            const text = (_o = delta.text) != null ? _o : \"\";\n            if (text.length > 0) {\n              controller.enqueue({\n                type: \"text-delta\",\n                id: open.id,\n                delta: text\n              });\n            }\n          } else if (open.kind === \"text\" && ((delta == null ? void 0 : delta.type) === \"text_annotation\" || (delta == null ? void 0 : delta.type) === \"text_annotation_delta\")) {\n            const sources = annotationsToSources({\n              annotations: delta.annotations,\n              generateId: generateId3\n            });\n            for (const source of sources) {\n              const key = sourceKey(source);\n              if (emittedSourceKeys.has(key)) continue;\n              emittedSourceKeys.add(key);\n              open.emittedSourceKeys.add(key);\n              controller.enqueue(source);\n            }\n          } else if (open.kind === \"image\" && (delta == null ? void 0 : delta.type) === \"image\") {\n            if (delta.data != null) open.data = delta.data;\n            if (delta.mime_type != null) open.mimeType = delta.mime_type;\n            if (delta.uri != null) open.uri = delta.uri;\n          } else if (open.kind === \"reasoning\") {\n            if ((delta == null ? void 0 : delta.type) === \"thought_summary\") {\n              const item = delta.content;\n              if ((item == null ? void 0 : item.type) === \"text\" && typeof item.text === \"string\") {\n                controller.enqueue({\n                  type: \"reasoning-delta\",\n                  id: open.id,\n                  delta: item.text\n                });\n              }\n            } else if ((delta == null ? void 0 : delta.type) === \"thought_signature\") {\n              const signature = delta.signature;\n              if (signature != null) {\n                open.signature = signature;\n              }\n            }\n          } else if (open.kind === \"function_call\" && (delta == null ? void 0 : delta.type) === \"arguments_delta\") {\n            const slice = typeof delta.arguments === \"string\" ? delta.arguments : \"\";\n            if (slice.length > 0) {\n              open.argumentsAccum += slice;\n              controller.enqueue({\n                type: \"tool-input-delta\",\n                id: open.toolCallId,\n                delta: slice\n              });\n            }\n            if (delta.id != null) {\n              open.toolCallId = delta.id;\n            }\n            if (delta.signature != null) {\n              open.signature = delta.signature;\n            }\n            hasFunctionCall = true;\n          } else if (open.kind === \"builtin_tool_call\" && (delta == null ? void 0 : delta.type) === open.blockType) {\n            if (delta.id != null) open.toolCallId = delta.id;\n            if (delta.arguments != null && typeof delta.arguments === \"object\") {\n              open.arguments = delta.arguments;\n            }\n            if (delta.name != null && open.blockType === \"mcp_server_tool_call\") {\n              open.toolName = delta.name;\n            }\n          } else if (open.kind === \"builtin_tool_result\" && (delta == null ? void 0 : delta.type) === open.blockType) {\n            if (delta.call_id != null) open.callId = delta.call_id;\n            if (delta.result !== void 0) open.result = delta.result;\n            if (delta.is_error != null) open.isError = delta.is_error;\n            if (delta.name != null && open.blockType === \"mcp_server_tool_result\") {\n              open.toolName = delta.name;\n            }\n          }\n          break;\n        }\n        case \"step.stop\": {\n          const event = value;\n          const open = openBlocks.get(event.index);\n          if (open == null) break;\n          if (open.kind === \"text\") {\n            const textProviderMetadata = interactionId != null ? { google: { interactionId } } : void 0;\n            controller.enqueue({\n              type: \"text-end\",\n              id: open.id,\n              ...textProviderMetadata ? { providerMetadata: textProviderMetadata } : {}\n            });\n          } else if (open.kind === \"reasoning\") {\n            const google2 = {};\n            if (open.signature != null) google2.signature = open.signature;\n            if (interactionId != null) google2.interactionId = interactionId;\n            const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n            controller.enqueue({\n              type: \"reasoning-end\",\n              id: open.id,\n              ...providerMetadata ? { providerMetadata } : {}\n            });\n          } else if (open.kind === \"image\") {\n            const google2 = {};\n            if (interactionId != null) google2.interactionId = interactionId;\n            const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n            if (open.data != null && open.data.length > 0) {\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_p = open.mimeType) != null ? _p : \"image/png\",\n                data: open.data,\n                ...providerMetadata ? { providerMetadata } : {}\n              });\n            } else if (open.uri != null && open.uri.length > 0) {\n              const uriProviderMetadata = {\n                google: {\n                  ...interactionId != null ? { interactionId } : {},\n                  imageUri: open.uri\n                }\n              };\n              controller.enqueue({\n                type: \"file\",\n                mediaType: (_q = open.mimeType) != null ? _q : \"image/png\",\n                data: \"\",\n                providerMetadata: uriProviderMetadata\n              });\n            }\n          } else if (open.kind === \"function_call\") {\n            const accumulated = open.argumentsAccum.length > 0 ? open.argumentsAccum : \"{}\";\n            controller.enqueue({\n              type: \"tool-input-end\",\n              id: open.toolCallId\n            });\n            const google2 = {};\n            if (open.signature != null) google2.signature = open.signature;\n            if (interactionId != null) google2.interactionId = interactionId;\n            const providerMetadata = Object.keys(google2).length > 0 ? { google: google2 } : void 0;\n            controller.enqueue({\n              type: \"tool-call\",\n              toolCallId: open.toolCallId,\n              toolName: open.toolName,\n              input: accumulated,\n              ...providerMetadata ? { providerMetadata } : {}\n            });\n          } else if (open.kind === \"builtin_tool_call\" && !open.callEmitted) {\n            controller.enqueue({\n              type: \"tool-call\",\n              toolCallId: open.toolCallId,\n              toolName: open.toolName,\n              input: JSON.stringify((_r = open.arguments) != null ? _r : {}),\n              providerExecuted: true\n            });\n            open.callEmitted = true;\n          } else if (open.kind === \"builtin_tool_result\" && !open.resultEmitted) {\n            controller.enqueue({\n              type: \"tool-result\",\n              toolCallId: open.callId,\n              toolName: open.toolName,\n              result: (_s = open.result) != null ? _s : null\n            });\n            open.resultEmitted = true;\n            const sources = builtinToolResultToSources({\n              block: {\n                type: open.blockType,\n                call_id: open.callId,\n                result: open.result\n              },\n              generateId: generateId3\n            });\n            for (const source of sources) {\n              const key = sourceKey(source);\n              if (emittedSourceKeys.has(key)) continue;\n              emittedSourceKeys.add(key);\n              controller.enqueue(source);\n            }\n          }\n          openBlocks.delete(event.index);\n          break;\n        }\n        case \"interaction.status_update\":\n        case \"interaction.in_progress\":\n        case \"interaction.requires_action\": {\n          const event = value;\n          if (event.status != null) {\n            finishStatus = event.status;\n          } else if (eventType === \"interaction.requires_action\") {\n            finishStatus = \"requires_action\";\n          } else {\n            finishStatus = \"in_progress\";\n          }\n          break;\n        }\n        case \"interaction.completed\": {\n          const event = value;\n          const interaction = event.interaction;\n          if ((interaction == null ? void 0 : interaction.id) != null && interaction.id.length > 0) {\n            interactionId = interaction.id;\n          }\n          if ((interaction == null ? void 0 : interaction.status) != null) {\n            finishStatus = interaction.status;\n          }\n          if ((interaction == null ? void 0 : interaction.usage) != null) {\n            usage = interaction.usage;\n          }\n          if ((interaction == null ? void 0 : interaction.service_tier) != null) {\n            serviceTier = interaction.service_tier;\n          }\n          break;\n        }\n        case \"error\": {\n          const event = value;\n          finishStatus = \"failed\";\n          const errorPayload = (_t = event.error) != null ? _t : {\n            message: \"Unknown interaction error\"\n          };\n          controller.enqueue({ type: \"error\", error: errorPayload });\n          break;\n        }\n        default:\n          break;\n      }\n    },\n    flush(controller) {\n      const finishReason = {\n        unified: mapGoogleInteractionsFinishReason({\n          status: finishStatus,\n          hasFunctionCall\n        }),\n        raw: finishStatus\n      };\n      const outputTokensByModality = getGoogleInteractionsOutputTokensByModality(usage);\n      const providerMetadata = {\n        google: {\n          ...interactionId != null ? { interactionId } : {},\n          ...serviceTier != null ? { serviceTier } : {},\n          ...outputTokensByModality != null ? { outputTokensByModality } : {}\n        }\n      };\n      controller.enqueue({\n        type: \"finish\",\n        finishReason,\n        usage: convertGoogleInteractionsUsage(usage),\n        providerMetadata\n      });\n    }\n  });\n}\n\n// src/interactions/convert-to-google-interactions-input.ts\nimport { convertToBase64 as convertToBase643, secureJsonParse as secureJsonParse2 } from \"@ai-sdk/provider-utils\";\nfunction getTopLevelMediaType(mediaType) {\n  const slashIndex = mediaType.indexOf(\"/\");\n  return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nfunction isFullMediaType(mediaType) {\n  const slashIndex = mediaType.indexOf(\"/\");\n  if (slashIndex === -1) {\n    return false;\n  }\n  const subtype = mediaType.substring(slashIndex + 1);\n  return subtype.length > 0 && subtype !== \"*\";\n}\nfunction convertToGoogleInteractionsInput({\n  prompt,\n  previousInteractionId,\n  store,\n  mediaResolution\n}) {\n  var _a, _b, _c, _d, _e, _f, _g;\n  const warnings = [];\n  const incoherentCombo = previousInteractionId != null && store === false;\n  const shouldCompact = previousInteractionId != null && store !== false;\n  if (incoherentCombo) {\n    warnings.push({\n      type: \"other\",\n      message: \"google.interactions: providerOptions.google.previousInteractionId was set together with store: false. These are incoherent (the prior interaction cannot be referenced when nothing was stored on the server); the full history will be sent and previous_interaction_id will still be emitted.\"\n    });\n  }\n  const compactedPrompt = shouldCompact ? compactPromptForPreviousInteraction({\n    prompt,\n    previousInteractionId\n  }) : prompt;\n  const systemTexts = [];\n  const steps = [];\n  for (const message of compactedPrompt) {\n    switch (message.role) {\n      case \"system\": {\n        systemTexts.push(message.content);\n        break;\n      }\n      case \"user\": {\n        const content = [];\n        for (const part of message.content) {\n          if (part.type === \"text\") {\n            content.push({ type: \"text\", text: part.text });\n          } else if (part.type === \"file\") {\n            const fileBlock = convertFilePartToContent({\n              part,\n              warnings,\n              mediaResolution\n            });\n            if (fileBlock != null) {\n              content.push(fileBlock);\n            }\n          }\n        }\n        const merged = mergeAdjacentTextContent(content);\n        if (merged.length > 0) {\n          steps.push({ type: \"user_input\", content: merged });\n        }\n        break;\n      }\n      case \"assistant\": {\n        let pendingModelOutput = [];\n        const flushModelOutput = () => {\n          if (pendingModelOutput.length > 0) {\n            steps.push({ type: \"model_output\", content: pendingModelOutput });\n            pendingModelOutput = [];\n          }\n        };\n        for (const part of message.content) {\n          if (part.type === \"text\") {\n            pendingModelOutput.push({ type: \"text\", text: part.text });\n          } else if (part.type === \"reasoning\") {\n            flushModelOutput();\n            const signature = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.signature;\n            steps.push({\n              type: \"thought\",\n              ...signature != null ? { signature } : {},\n              summary: part.text.length > 0 ? [{ type: \"text\", text: part.text }] : void 0\n            });\n          } else if (part.type === \"file\") {\n            const fileBlock = convertFilePartToContent({\n              part,\n              warnings,\n              mediaResolution\n            });\n            if (fileBlock != null) {\n              pendingModelOutput.push(fileBlock);\n            }\n          } else if (part.type === \"tool-call\") {\n            flushModelOutput();\n            const signature = (_d = (_c = part.providerOptions) == null ? void 0 : _c.google) == null ? void 0 : _d.signature;\n            const args = typeof part.input === \"string\" ? safeParseToolArgs(part.input) : (_e = part.input) != null ? _e : {};\n            steps.push({\n              type: \"function_call\",\n              id: part.toolCallId,\n              name: part.toolName,\n              arguments: args,\n              ...signature != null ? { signature } : {}\n            });\n          } else {\n            warnings.push({\n              type: \"other\",\n              message: `google.interactions: unsupported assistant content part type \"${part.type}\"; part dropped.`\n            });\n          }\n        }\n        flushModelOutput();\n        break;\n      }\n      case \"tool\": {\n        const content = [];\n        for (const part of message.content) {\n          if (part.type !== \"tool-result\") {\n            warnings.push({\n              type: \"other\",\n              message: `google.interactions: unsupported tool message part type \"${part.type}\"; part dropped.`\n            });\n            continue;\n          }\n          const block = convertToolResultPart({\n            toolCallId: part.toolCallId,\n            toolName: part.toolName,\n            output: part.output,\n            signature: (_g = (_f = part.providerOptions) == null ? void 0 : _f.google) == null ? void 0 : _g.signature,\n            warnings\n          });\n          content.push(block);\n        }\n        if (content.length > 0) {\n          steps.push({ type: \"user_input\", content });\n        }\n        break;\n      }\n    }\n  }\n  const systemInstruction = systemTexts.length > 0 ? systemTexts.join(\"\\n\\n\") : void 0;\n  return { input: steps, systemInstruction, warnings };\n}\nfunction convertFilePartToContent({\n  part,\n  warnings,\n  mediaResolution\n}) {\n  const topLevel = getTopLevelMediaType(part.mediaType);\n  let kind;\n  switch (topLevel) {\n    case \"image\":\n      kind = \"image\";\n      break;\n    case \"audio\":\n      kind = \"audio\";\n      break;\n    case \"video\":\n      kind = \"video\";\n      break;\n    case \"application\":\n      kind = \"document\";\n      break;\n    default:\n      kind = void 0;\n  }\n  if (kind == null) {\n    warnings.push({\n      type: \"other\",\n      message: `google.interactions: unsupported file media type \"${part.mediaType}\"; part dropped.`\n    });\n    return void 0;\n  }\n  const resolutionField = mediaResolution != null && (kind === \"image\" || kind === \"video\") ? { resolution: mediaResolution } : {};\n  if (part.data instanceof URL) {\n    return {\n      type: kind,\n      uri: part.data.toString(),\n      ...isFullMediaType(part.mediaType) ? { mime_type: part.mediaType } : {},\n      ...resolutionField\n    };\n  }\n  if (!isFullMediaType(part.mediaType)) {\n    warnings.push({\n      type: \"other\",\n      message: `google.interactions: inline file data requires a full IANA media type (e.g. \"image/png\"), got \"${part.mediaType}\"; part dropped.`\n    });\n    return void 0;\n  }\n  return {\n    type: kind,\n    data: convertToBase643(part.data),\n    mime_type: part.mediaType,\n    ...resolutionField\n  };\n}\nfunction compactPromptForPreviousInteraction({\n  prompt,\n  previousInteractionId\n}) {\n  const out = [];\n  const droppedToolCallIds = /* @__PURE__ */ new Set();\n  for (const message of prompt) {\n    if (message.role === \"assistant\") {\n      const matchesLinkedInteraction = message.content.some((part) => {\n        var _a, _b;\n        const partInteractionId = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.interactionId;\n        return partInteractionId === previousInteractionId;\n      });\n      if (matchesLinkedInteraction) {\n        for (const part of message.content) {\n          if (part.type === \"tool-call\") {\n            droppedToolCallIds.add(part.toolCallId);\n          }\n        }\n        continue;\n      }\n      out.push(message);\n      continue;\n    }\n    if (message.role === \"tool\") {\n      const remaining = message.content.filter((part) => {\n        if (part.type !== \"tool-result\") {\n          return true;\n        }\n        return !droppedToolCallIds.has(part.toolCallId);\n      });\n      if (remaining.length === 0) {\n        continue;\n      }\n      out.push({\n        ...message,\n        content: remaining\n      });\n      continue;\n    }\n    out.push(message);\n  }\n  return out;\n}\nfunction safeParseToolArgs(input) {\n  try {\n    const parsed = secureJsonParse2(input);\n    if (parsed != null && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n      return parsed;\n    }\n    return { value: parsed };\n  } catch (e) {\n    return { value: input };\n  }\n}\nfunction convertToolResultPart({\n  toolCallId,\n  toolName,\n  output,\n  signature,\n  warnings\n}) {\n  var _a;\n  const base = {\n    type: \"function_result\",\n    call_id: toolCallId,\n    name: toolName,\n    ...signature != null ? { signature } : {}\n  };\n  switch (output.type) {\n    case \"text\":\n      return { ...base, result: output.value };\n    case \"json\":\n      return { ...base, result: JSON.stringify(output.value) };\n    case \"error-text\":\n      return { ...base, is_error: true, result: output.value };\n    case \"error-json\":\n      return { ...base, is_error: true, result: JSON.stringify(output.value) };\n    case \"execution-denied\":\n      return {\n        ...base,\n        is_error: true,\n        result: (_a = output.reason) != null ? _a : \"Tool execution denied by user.\"\n      };\n    case \"content\": {\n      const blocks = [];\n      for (const item of output.value) {\n        if (item.type === \"text\") {\n          blocks.push({ type: \"text\", text: item.text });\n        } else if (item.type === \"image-data\") {\n          const imageBlock = filePartToImageBlock({\n            part: {\n              type: \"file\",\n              mediaType: item.mediaType,\n              data: item.data\n            },\n            warnings\n          });\n          if (imageBlock != null) {\n            blocks.push(imageBlock);\n          }\n        } else if (item.type === \"image-url\") {\n          const imageBlock = filePartToImageBlock({\n            part: {\n              type: \"file\",\n              mediaType: \"image/*\",\n              data: new URL(item.url)\n            },\n            warnings\n          });\n          if (imageBlock != null) {\n            blocks.push(imageBlock);\n          }\n        } else if (item.type === \"file-data\" || item.type === \"file-url\") {\n          const mediaType = item.type === \"file-data\" ? item.mediaType : \"application/*\";\n          const topLevel = getTopLevelMediaType(mediaType);\n          if (topLevel !== \"image\") {\n            warnings.push({\n              type: \"other\",\n              message: `google.interactions: tool-result file with mediaType \"${mediaType}\" is not supported (Interactions \\`function_result.result\\` accepts only text and image content); part dropped.`\n            });\n            continue;\n          }\n          const imageBlock = filePartToImageBlock({\n            part: item.type === \"file-data\" ? {\n              type: \"file\",\n              mediaType: item.mediaType,\n              data: item.data\n            } : {\n              type: \"file\",\n              mediaType,\n              data: new URL(item.url)\n            },\n            warnings\n          });\n          if (imageBlock != null) {\n            blocks.push(imageBlock);\n          }\n        } else {\n          warnings.push({\n            type: \"other\",\n            message: `google.interactions: tool-result content part type \"${item.type}\" is not supported; part dropped.`\n          });\n        }\n      }\n      return { ...base, result: blocks };\n    }\n  }\n}\nfunction filePartToImageBlock({\n  part,\n  warnings\n}) {\n  if (part.data instanceof URL) {\n    return {\n      type: \"image\",\n      uri: part.data.toString(),\n      ...isFullMediaType(part.mediaType) ? { mime_type: part.mediaType } : {}\n    };\n  }\n  if (!isFullMediaType(part.mediaType)) {\n    warnings.push({\n      type: \"other\",\n      message: `google.interactions: tool-result image part requires a full IANA media type (e.g. \"image/png\"), got \"${part.mediaType}\"; part dropped.`\n    });\n    return void 0;\n  }\n  return {\n    type: \"image\",\n    data: convertToBase643(part.data),\n    mime_type: part.mediaType\n  };\n}\nfunction mergeAdjacentTextContent(content) {\n  if (content.length < 2) {\n    return content;\n  }\n  const result = [];\n  for (const block of content) {\n    const last = result[result.length - 1];\n    if (block.type === \"text\" && last != null && last.type === \"text\" && last.annotations == null && block.annotations == null) {\n      const merged = {\n        type: \"text\",\n        text: `${last.text}\n\n${block.text}`\n      };\n      result[result.length - 1] = merged;\n      continue;\n    }\n    result.push(block);\n  }\n  return result;\n}\n\n// src/interactions/google-interactions-api.ts\nimport {\n  lazySchema as lazySchema13,\n  zodSchema as zodSchema13\n} from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar tokenByModalitySchema = () => z15.object({\n  modality: z15.string().nullish(),\n  tokens: z15.number().nullish()\n}).loose();\nvar usageSchema2 = () => z15.object({\n  total_input_tokens: z15.number().nullish(),\n  total_output_tokens: z15.number().nullish(),\n  total_thought_tokens: z15.number().nullish(),\n  total_cached_tokens: z15.number().nullish(),\n  total_tool_use_tokens: z15.number().nullish(),\n  total_tokens: z15.number().nullish(),\n  input_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n  output_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n  cached_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n  tool_use_tokens_by_modality: z15.array(tokenByModalitySchema()).nullish(),\n  grounding_tool_count: z15.array(\n    z15.object({\n      type: z15.string().nullish(),\n      count: z15.number().nullish()\n    }).loose()\n  ).nullish()\n}).loose();\nvar interactionStatusSchema = () => z15.enum([\n  \"in_progress\",\n  \"requires_action\",\n  \"completed\",\n  \"failed\",\n  \"cancelled\",\n  \"incomplete\"\n]);\nvar annotationSchema = () => {\n  const urlCitation = z15.object({\n    type: z15.literal(\"url_citation\"),\n    url: z15.string().nullish(),\n    title: z15.string().nullish(),\n    start_index: z15.number().nullish(),\n    end_index: z15.number().nullish()\n  }).loose();\n  const fileCitation = z15.object({\n    type: z15.literal(\"file_citation\"),\n    file_name: z15.string().nullish(),\n    document_uri: z15.string().nullish(),\n    url: z15.string().nullish(),\n    page_number: z15.number().nullish(),\n    media_id: z15.string().nullish(),\n    start_index: z15.number().nullish(),\n    end_index: z15.number().nullish(),\n    custom_metadata: z15.record(z15.string(), z15.unknown()).nullish()\n  }).loose();\n  const placeCitation = z15.object({\n    type: z15.literal(\"place_citation\"),\n    name: z15.string().nullish(),\n    url: z15.string().nullish(),\n    place_id: z15.string().nullish(),\n    start_index: z15.number().nullish(),\n    end_index: z15.number().nullish()\n  }).loose();\n  return z15.union([\n    urlCitation,\n    fileCitation,\n    placeCitation,\n    z15.object({ type: z15.string() }).loose()\n  ]);\n};\nvar thoughtSummaryItemSchema = () => z15.object({\n  type: z15.string(),\n  text: z15.string().nullish(),\n  data: z15.string().nullish(),\n  mime_type: z15.string().nullish()\n}).loose();\nvar contentBlockSchema = () => {\n  const textContent = z15.object({\n    type: z15.literal(\"text\"),\n    text: z15.string(),\n    annotations: z15.array(annotationSchema()).nullish()\n  }).loose();\n  const imageContent = z15.object({\n    type: z15.literal(\"image\"),\n    data: z15.string().nullish(),\n    mime_type: z15.string().nullish(),\n    resolution: z15.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n    uri: z15.string().nullish()\n  }).loose();\n  const videoContent = z15.object({\n    type: z15.literal(\"video\"),\n    data: z15.string().nullish(),\n    mime_type: z15.string().nullish(),\n    uri: z15.string().nullish()\n  }).loose();\n  return z15.union([\n    textContent,\n    imageContent,\n    videoContent,\n    z15.object({ type: z15.string() }).loose()\n  ]);\n};\nvar BUILTIN_TOOL_CALL_STEP_TYPES = [\n  \"google_search_call\",\n  \"code_execution_call\",\n  \"url_context_call\",\n  \"file_search_call\",\n  \"google_maps_call\",\n  \"mcp_server_tool_call\"\n];\nvar BUILTIN_TOOL_RESULT_STEP_TYPES = [\n  \"google_search_result\",\n  \"code_execution_result\",\n  \"url_context_result\",\n  \"file_search_result\",\n  \"google_maps_result\",\n  \"mcp_server_tool_result\"\n];\nvar stepSchema = () => {\n  const userInputStep = z15.object({\n    type: z15.literal(\"user_input\"),\n    content: z15.array(contentBlockSchema()).nullish()\n  }).loose();\n  const modelOutputStep = z15.object({\n    type: z15.literal(\"model_output\"),\n    content: z15.array(contentBlockSchema()).nullish()\n  }).loose();\n  const functionCallStep = z15.object({\n    type: z15.literal(\"function_call\"),\n    id: z15.string(),\n    name: z15.string(),\n    arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n    signature: z15.string().nullish()\n  }).loose();\n  const thoughtStep = z15.object({\n    type: z15.literal(\"thought\"),\n    signature: z15.string().nullish(),\n    summary: z15.array(thoughtSummaryItemSchema()).nullish()\n  }).loose();\n  const builtinToolCallStep = z15.object({\n    type: z15.enum(BUILTIN_TOOL_CALL_STEP_TYPES),\n    id: z15.string(),\n    arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n    name: z15.string().nullish(),\n    server_name: z15.string().nullish(),\n    search_type: z15.string().nullish(),\n    signature: z15.string().nullish()\n  }).loose();\n  const builtinToolResultStep = z15.object({\n    type: z15.enum(BUILTIN_TOOL_RESULT_STEP_TYPES),\n    call_id: z15.string(),\n    result: z15.unknown().nullish(),\n    is_error: z15.boolean().nullish(),\n    name: z15.string().nullish(),\n    server_name: z15.string().nullish(),\n    signature: z15.string().nullish()\n  }).loose();\n  return z15.union([\n    userInputStep,\n    modelOutputStep,\n    functionCallStep,\n    thoughtStep,\n    builtinToolCallStep,\n    builtinToolResultStep,\n    z15.object({ type: z15.string() }).loose()\n  ]);\n};\nvar googleInteractionsResponseSchema = lazySchema13(\n  () => zodSchema13(\n    z15.object({\n      /*\n       * `id` is omitted from the response body when `store: false` (fully\n       * stateless mode) — there is no server-side interaction record for the\n       * client to reference. `nullish` lets the schema accept that shape.\n       */\n      id: z15.string().nullish(),\n      created: z15.string().nullish(),\n      updated: z15.string().nullish(),\n      status: interactionStatusSchema(),\n      model: z15.string().nullish(),\n      agent: z15.string().nullish(),\n      steps: z15.array(stepSchema()).nullish(),\n      usage: usageSchema2().nullish(),\n      service_tier: z15.string().nullish(),\n      previous_interaction_id: z15.string().nullish(),\n      response_modalities: z15.array(z15.string()).nullish()\n    }).loose()\n  )\n);\nvar googleInteractionsEventSchema = lazySchema13(\n  () => zodSchema13(\n    (() => {\n      const status = interactionStatusSchema();\n      const annotation = annotationSchema();\n      const thoughtSummaryItem = thoughtSummaryItemSchema();\n      const interactionCreatedEvent = z15.object({\n        event_type: z15.literal(\"interaction.created\"),\n        event_id: z15.string().nullish(),\n        interaction: z15.object({\n          /*\n           * `id` is omitted when `store: false` (fully stateless mode);\n           * see the matching note on `googleInteractionsResponseSchema.id`.\n           */\n          id: z15.string().nullish(),\n          created: z15.string().nullish(),\n          model: z15.string().nullish(),\n          agent: z15.string().nullish(),\n          status: status.nullish()\n        }).loose()\n      }).loose();\n      const stepStartEvent = z15.object({\n        event_type: z15.literal(\"step.start\"),\n        event_id: z15.string().nullish(),\n        index: z15.number(),\n        step: stepSchema()\n      }).loose();\n      const stepDeltaText = z15.object({\n        type: z15.literal(\"text\"),\n        text: z15.string()\n      }).loose();\n      const stepDeltaThoughtSummary = z15.object({\n        type: z15.literal(\"thought_summary\"),\n        content: thoughtSummaryItem.nullish()\n      }).loose();\n      const stepDeltaThoughtSignature = z15.object({\n        type: z15.literal(\"thought_signature\"),\n        signature: z15.string().nullish()\n      }).loose();\n      const stepDeltaArgumentsDelta = z15.object({\n        type: z15.literal(\"arguments_delta\"),\n        arguments: z15.string().nullish(),\n        id: z15.string().nullish(),\n        signature: z15.string().nullish()\n      }).loose();\n      const stepDeltaTextAnnotation = z15.object({\n        type: z15.enum([\"text_annotation_delta\", \"text_annotation\"]),\n        annotations: z15.array(annotation).nullish()\n      }).loose();\n      const stepDeltaImage = z15.object({\n        type: z15.literal(\"image\"),\n        data: z15.string().nullish(),\n        mime_type: z15.string().nullish(),\n        resolution: z15.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n        uri: z15.string().nullish()\n      }).loose();\n      const stepDeltaVideo = z15.object({\n        type: z15.literal(\"video\"),\n        data: z15.string().nullish(),\n        mime_type: z15.string().nullish(),\n        uri: z15.string().nullish()\n      }).loose();\n      const stepDeltaBuiltinToolCall = z15.object({\n        type: z15.enum(BUILTIN_TOOL_CALL_STEP_TYPES),\n        id: z15.string().nullish(),\n        arguments: z15.record(z15.string(), z15.unknown()).nullish(),\n        name: z15.string().nullish(),\n        server_name: z15.string().nullish(),\n        search_type: z15.string().nullish(),\n        signature: z15.string().nullish()\n      }).loose();\n      const stepDeltaBuiltinToolResult = z15.object({\n        type: z15.enum(BUILTIN_TOOL_RESULT_STEP_TYPES),\n        call_id: z15.string().nullish(),\n        result: z15.unknown().nullish(),\n        is_error: z15.boolean().nullish(),\n        name: z15.string().nullish(),\n        server_name: z15.string().nullish(),\n        signature: z15.string().nullish()\n      }).loose();\n      const stepDeltaUnknown = z15.object({ type: z15.string() }).loose();\n      const stepDeltaUnion = z15.union([\n        stepDeltaText,\n        stepDeltaImage,\n        stepDeltaVideo,\n        stepDeltaThoughtSummary,\n        stepDeltaThoughtSignature,\n        stepDeltaArgumentsDelta,\n        stepDeltaTextAnnotation,\n        stepDeltaBuiltinToolCall,\n        stepDeltaBuiltinToolResult,\n        stepDeltaUnknown\n      ]);\n      const stepDeltaEvent = z15.object({\n        event_type: z15.literal(\"step.delta\"),\n        event_id: z15.string().nullish(),\n        index: z15.number(),\n        delta: stepDeltaUnion\n      }).loose();\n      const stepStopEvent = z15.object({\n        event_type: z15.literal(\"step.stop\"),\n        event_id: z15.string().nullish(),\n        index: z15.number()\n      }).loose();\n      const interactionStatusUpdateEvent = z15.object({\n        event_type: z15.literal(\"interaction.status_update\"),\n        event_id: z15.string().nullish(),\n        interaction_id: z15.string().nullish(),\n        status: status.nullish()\n      }).loose();\n      const interactionInProgressEvent = z15.object({\n        event_type: z15.literal(\"interaction.in_progress\"),\n        event_id: z15.string().nullish(),\n        interaction_id: z15.string().nullish(),\n        status: status.nullish()\n      }).loose();\n      const interactionRequiresActionEvent = z15.object({\n        event_type: z15.literal(\"interaction.requires_action\"),\n        event_id: z15.string().nullish(),\n        interaction_id: z15.string().nullish(),\n        status: status.nullish()\n      }).loose();\n      const interactionCompletedEvent = z15.object({\n        event_type: z15.literal(\"interaction.completed\"),\n        event_id: z15.string().nullish(),\n        interaction: z15.object({\n          id: z15.string().nullish(),\n          status: status.nullish(),\n          usage: usageSchema2().nullish(),\n          service_tier: z15.string().nullish()\n        }).loose()\n      }).loose();\n      const errorEvent = z15.object({\n        event_type: z15.literal(\"error\"),\n        event_id: z15.string().nullish(),\n        error: z15.object({\n          code: z15.string().nullish(),\n          message: z15.string().nullish()\n        }).loose().nullish()\n      }).loose();\n      const unknownEvent = z15.object({ event_type: z15.string() }).loose();\n      return z15.union([\n        interactionCreatedEvent,\n        stepStartEvent,\n        stepDeltaEvent,\n        stepStopEvent,\n        interactionStatusUpdateEvent,\n        interactionInProgressEvent,\n        interactionRequiresActionEvent,\n        interactionCompletedEvent,\n        errorEvent,\n        unknownEvent\n      ]);\n    })()\n  )\n);\n\n// src/interactions/google-interactions-language-model-options.ts\nimport {\n  lazySchema as lazySchema14,\n  zodSchema as zodSchema14\n} from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar googleInteractionsLanguageModelOptions = lazySchema14(\n  () => zodSchema14(\n    z16.object({\n      previousInteractionId: z16.string().nullish(),\n      store: z16.boolean().nullish(),\n      agent: z16.string().nullish(),\n      agentConfig: z16.union([\n        z16.object({\n          type: z16.literal(\"dynamic\")\n        }).loose(),\n        z16.object({\n          type: z16.literal(\"deep-research\"),\n          thinkingSummaries: z16.enum([\"auto\", \"none\"]).nullish(),\n          visualization: z16.enum([\"off\", \"auto\"]).nullish(),\n          collaborativePlanning: z16.boolean().nullish()\n        })\n      ]).nullish(),\n      thinkingLevel: z16.enum([\"minimal\", \"low\", \"medium\", \"high\"]).nullish(),\n      thinkingSummaries: z16.enum([\"auto\", \"none\"]).nullish(),\n      /**\n       * Output-format entries that map directly to the API's `response_format`\n       * array. Use this to request image, audio, or non-JSON text outputs\n       * with full control over `mime_type`, `aspect_ratio`, and `image_size`.\n       *\n       * Entries are sent in order. The AI SDK call-level `responseFormat: {\n       * type: 'json', schema }` still drives JSON-mode and adds a matching\n       * text entry automatically; entries listed here are appended.\n       */\n      responseFormat: z16.array(\n        z16.union([\n          z16.object({\n            type: z16.literal(\"text\"),\n            mimeType: z16.string().nullish(),\n            schema: z16.unknown().nullish()\n          }).loose(),\n          z16.object({\n            type: z16.literal(\"image\"),\n            mimeType: z16.string().nullish(),\n            aspectRatio: z16.enum([\n              \"1:1\",\n              \"2:3\",\n              \"3:2\",\n              \"3:4\",\n              \"4:3\",\n              \"4:5\",\n              \"5:4\",\n              \"9:16\",\n              \"16:9\",\n              \"21:9\",\n              \"1:8\",\n              \"8:1\",\n              \"1:4\",\n              \"4:1\"\n            ]).nullish(),\n            imageSize: z16.enum([\"1K\", \"2K\", \"4K\", \"512\"]).nullish()\n          }).loose(),\n          z16.object({\n            type: z16.literal(\"audio\"),\n            mimeType: z16.string().nullish()\n          }).loose()\n        ])\n      ).nullish(),\n      /**\n       * @deprecated Use `responseFormat` with a `{ type: 'image', ... }`\n       * entry instead. Retained for backwards compatibility; the SDK\n       * translates it into a matching `response_format` image entry and\n       * emits a warning when set.\n       */\n      imageConfig: z16.object({\n        aspectRatio: z16.enum([\n          \"1:1\",\n          \"2:3\",\n          \"3:2\",\n          \"3:4\",\n          \"4:3\",\n          \"4:5\",\n          \"5:4\",\n          \"9:16\",\n          \"16:9\",\n          \"21:9\",\n          \"1:8\",\n          \"8:1\",\n          \"1:4\",\n          \"4:1\"\n        ]).nullish(),\n        imageSize: z16.enum([\"1K\", \"2K\", \"4K\", \"512\"]).nullish()\n      }).nullish(),\n      mediaResolution: z16.enum([\"low\", \"medium\", \"high\", \"ultra_high\"]).nullish(),\n      responseModalities: z16.array(z16.enum([\"text\", \"image\", \"audio\", \"video\", \"document\"])).nullish(),\n      serviceTier: z16.enum([\"flex\", \"standard\", \"priority\"]).nullish(),\n      /**\n       * Alternative to AI SDK `system` message. If both are set, the AI SDK\n       * `system` message wins and a warning is emitted.\n       */\n      systemInstruction: z16.string().nullish(),\n      /**\n       * Per-block signature for round-tripping `thought.signature` and\n       * `function_call.signature` blocks. Set by the SDK on output reasoning /\n       * tool-call parts; passed back unchanged on input parts so the API\n       * accepts the prior turn.\n       */\n      signature: z16.string().nullish(),\n      /**\n       * Set by the SDK on output assistant messages. The converter uses it to\n       * decide which messages to drop when compacting under\n       * `previousInteractionId`.\n       */\n      interactionId: z16.string().nullish(),\n      /**\n       * Maximum time, in milliseconds, to poll a background interaction (agent\n       * call) before giving up. Defaults to 30 minutes. Long-running agents\n       * such as deep research can take tens of minutes — increase if needed.\n       */\n      pollingTimeoutMs: z16.number().int().positive().nullish(),\n      /**\n       * Run the interaction in the background. Required for agents whose\n       * server-side workflow cannot complete within a single request/response.\n       * When `true`, the POST returns with a non-terminal status and the SDK\n       * polls `GET /interactions/{id}` until the work completes. Some agents\n       * reject `true`; see the agent's documentation for which mode it\n       * requires.\n       */\n      background: z16.boolean().nullish(),\n      /**\n       * Environment configuration for the agent sandbox. Only applies to agent\n       * calls (`google.interactions({ agent })`); ignored on model-id calls.\n       *\n       *   - `\"remote\"`: provision a fresh sandbox for this call.\n       *   - any other string: an existing `environment_id` to reuse.\n       *   - object: provision a fresh sandbox and optionally preload `sources`\n       *     and/or constrain outbound traffic via `network`.\n       */\n      environment: z16.union([\n        z16.string(),\n        z16.object({\n          type: z16.literal(\"remote\"),\n          sources: z16.array(\n            z16.union([\n              z16.object({\n                type: z16.literal(\"gcs\"),\n                source: z16.string(),\n                target: z16.string().nullish()\n              }),\n              z16.object({\n                type: z16.literal(\"repository\"),\n                source: z16.string(),\n                target: z16.string().nullish()\n              }),\n              z16.object({\n                type: z16.literal(\"inline\"),\n                content: z16.string(),\n                target: z16.string()\n              })\n            ])\n          ).nullish(),\n          network: z16.union([\n            z16.literal(\"disabled\"),\n            z16.object({\n              allowlist: z16.array(\n                z16.object({\n                  domain: z16.string(),\n                  transform: z16.array(z16.record(z16.string(), z16.string())).nullish()\n                })\n              )\n            })\n          ]).nullish()\n        })\n      ]).nullish()\n    })\n  )\n);\n\n// src/interactions/parse-google-interactions-outputs.ts\nfunction googleProviderMetadata({\n  signature,\n  interactionId\n}) {\n  const google2 = {};\n  if (signature != null) {\n    google2.signature = signature;\n  }\n  if (interactionId != null) {\n    google2.interactionId = interactionId;\n  }\n  return Object.keys(google2).length > 0 ? { providerMetadata: { google: google2 } } : {};\n}\nvar BUILTIN_TOOL_CALL_TYPES2 = /* @__PURE__ */ new Set([\n  \"google_search_call\",\n  \"code_execution_call\",\n  \"url_context_call\",\n  \"file_search_call\",\n  \"google_maps_call\",\n  \"mcp_server_tool_call\"\n]);\nvar BUILTIN_TOOL_RESULT_TYPES2 = /* @__PURE__ */ new Set([\n  \"google_search_result\",\n  \"code_execution_result\",\n  \"url_context_result\",\n  \"file_search_result\",\n  \"google_maps_result\",\n  \"mcp_server_tool_result\"\n]);\nfunction builtinToolNameFromCallType2(type) {\n  return type.replace(/_call$/, \"\");\n}\nfunction builtinToolNameFromResultType2(type) {\n  return type.replace(/_result$/, \"\");\n}\nfunction parseGoogleInteractionsOutputs({\n  steps,\n  generateId: generateId3,\n  interactionId\n}) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;\n  const content = [];\n  let hasFunctionCall = false;\n  if (steps == null) {\n    return { content, hasFunctionCall };\n  }\n  for (const step of steps) {\n    if (step == null || typeof step !== \"object\") continue;\n    const type = step.type;\n    if (typeof type !== \"string\") continue;\n    switch (type) {\n      case \"user_input\": {\n        break;\n      }\n      case \"model_output\": {\n        const blocks = (_a = step.content) != null ? _a : [];\n        for (const block of blocks) {\n          if (block == null || typeof block !== \"object\") continue;\n          const blockType = block.type;\n          if (blockType === \"text\") {\n            const text = (_b = block.text) != null ? _b : \"\";\n            const annotations = block.annotations;\n            content.push({\n              type: \"text\",\n              text,\n              ...googleProviderMetadata({ interactionId })\n            });\n            const sources = annotationsToSources({ annotations, generateId: generateId3 });\n            for (const source of sources) {\n              content.push(source);\n            }\n          } else if (blockType === \"image\") {\n            const image = block;\n            if (image.data != null && image.data.length > 0) {\n              content.push({\n                type: \"file\",\n                mediaType: (_c = image.mime_type) != null ? _c : \"image/png\",\n                data: image.data,\n                ...googleProviderMetadata({ interactionId })\n              });\n            } else if (image.uri != null && image.uri.length > 0) {\n              content.push({\n                type: \"file\",\n                mediaType: (_d = image.mime_type) != null ? _d : \"image/png\",\n                data: \"\",\n                providerMetadata: {\n                  google: {\n                    ...interactionId != null ? { interactionId } : {},\n                    imageUri: image.uri\n                  }\n                }\n              });\n            }\n          } else if (blockType === \"video\") {\n            const video = block;\n            if (video.data != null && video.data.length > 0) {\n              content.push({\n                type: \"file\",\n                mediaType: (_e = video.mime_type) != null ? _e : \"video/mp4\",\n                data: video.data,\n                ...googleProviderMetadata({ interactionId })\n              });\n            } else if (video.uri != null && video.uri.length > 0) {\n              content.push({\n                type: \"file\",\n                mediaType: (_f = video.mime_type) != null ? _f : \"video/mp4\",\n                data: \"\",\n                providerMetadata: {\n                  google: {\n                    ...interactionId != null ? { interactionId } : {},\n                    videoUri: video.uri\n                  }\n                }\n              });\n            }\n          }\n        }\n        break;\n      }\n      case \"thought\": {\n        const thought = step;\n        const summary = Array.isArray(thought.summary) ? thought.summary : [];\n        const text = summary.filter(\n          (item) => (item == null ? void 0 : item.type) === \"text\" && typeof item.text === \"string\"\n        ).map((item) => item.text).join(\"\\n\");\n        content.push({\n          type: \"reasoning\",\n          text,\n          ...googleProviderMetadata({\n            signature: thought.signature,\n            interactionId\n          })\n        });\n        break;\n      }\n      case \"function_call\": {\n        hasFunctionCall = true;\n        const call = step;\n        content.push({\n          type: \"tool-call\",\n          toolCallId: call.id,\n          toolName: call.name,\n          input: JSON.stringify((_g = call.arguments) != null ? _g : {}),\n          ...googleProviderMetadata({\n            signature: call.signature,\n            interactionId\n          })\n        });\n        break;\n      }\n      default: {\n        if (BUILTIN_TOOL_CALL_TYPES2.has(type)) {\n          const call = step;\n          const toolName = type === \"mcp_server_tool_call\" ? (_h = call.name) != null ? _h : \"mcp_server_tool\" : builtinToolNameFromCallType2(type);\n          const input = JSON.stringify((_i = call.arguments) != null ? _i : {});\n          content.push({\n            type: \"tool-call\",\n            toolCallId: (_j = call.id) != null ? _j : generateId3(),\n            toolName,\n            input,\n            providerExecuted: true\n          });\n        } else if (BUILTIN_TOOL_RESULT_TYPES2.has(type)) {\n          const result = step;\n          const toolName = type === \"mcp_server_tool_result\" ? (_k = result.name) != null ? _k : \"mcp_server_tool\" : builtinToolNameFromResultType2(type);\n          content.push({\n            type: \"tool-result\",\n            toolCallId: (_l = result.call_id) != null ? _l : generateId3(),\n            toolName,\n            result: (_m = result.result) != null ? _m : null\n          });\n          const sources = builtinToolResultToSources({\n            block: step,\n            generateId: generateId3\n          });\n          for (const source of sources) {\n            content.push(source);\n          }\n        }\n        break;\n      }\n    }\n  }\n  return { content, hasFunctionCall };\n}\n\n// src/interactions/poll-google-interactions.ts\nimport {\n  createJsonResponseHandler as createJsonResponseHandler5,\n  delay as delay2,\n  getFromApi as getFromApi2,\n  isAbortError\n} from \"@ai-sdk/provider-utils\";\n\n// src/interactions/cancel-google-interaction.ts\nimport {\n  combineHeaders as combineHeaders5,\n  getRuntimeEnvironmentUserAgent,\n  withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\nvar getOriginalFetch = () => globalThis.fetch;\nasync function cancelGoogleInteraction({\n  baseURL,\n  interactionId,\n  headers,\n  fetch = getOriginalFetch()\n}) {\n  if (interactionId == null || interactionId.length === 0) {\n    return;\n  }\n  const url = `${baseURL}/interactions/${encodeURIComponent(interactionId)}/cancel`;\n  try {\n    const response = await fetch(url, {\n      method: \"POST\",\n      headers: withUserAgentSuffix(\n        combineHeaders5({ \"Content-Type\": \"application/json\" }, headers),\n        getRuntimeEnvironmentUserAgent()\n      ),\n      body: \"{}\"\n    });\n    try {\n      await response.text();\n    } catch (e) {\n    }\n  } catch (e) {\n  }\n}\n\n// src/interactions/poll-google-interactions.ts\nvar TERMINAL_STATUSES = /* @__PURE__ */ new Set([\"completed\", \"failed\", \"cancelled\", \"incomplete\"]);\nfunction isTerminalStatus(status) {\n  return status != null && TERMINAL_STATUSES.has(status);\n}\nvar DEFAULT_INITIAL_DELAY_MS = 1e3;\nvar DEFAULT_MAX_DELAY_MS = 1e4;\nvar DEFAULT_TIMEOUT_MS = 30 * 60 * 1e3;\nasync function pollGoogleInteractionUntilTerminal({\n  baseURL,\n  interactionId,\n  headers,\n  fetch,\n  abortSignal,\n  initialDelayMs = DEFAULT_INITIAL_DELAY_MS,\n  maxDelayMs = DEFAULT_MAX_DELAY_MS,\n  timeoutMs = DEFAULT_TIMEOUT_MS\n}) {\n  if (interactionId == null || interactionId.length === 0) {\n    throw new Error(\n      \"google.interactions: cannot poll a background interaction without an id. The POST response did not include an interaction id.\"\n    );\n  }\n  const startedAt = Date.now();\n  let nextDelayMs = initialDelayMs;\n  const url = `${baseURL}/interactions/${encodeURIComponent(interactionId)}`;\n  const cancelOnServer = () => cancelGoogleInteraction({ baseURL, interactionId, headers, fetch });\n  try {\n    while (true) {\n      if (abortSignal == null ? void 0 : abortSignal.aborted) {\n        await cancelOnServer();\n        throw new DOMException(\"Polling was aborted\", \"AbortError\");\n      }\n      if (Date.now() - startedAt > timeoutMs) {\n        throw new Error(\n          `google.interactions: timed out polling interaction ${interactionId} after ${timeoutMs}ms.`\n        );\n      }\n      await delay2(nextDelayMs, { abortSignal });\n      const {\n        value: response,\n        rawValue: rawResponse,\n        responseHeaders\n      } = await getFromApi2({\n        url,\n        headers,\n        failedResponseHandler: googleFailedResponseHandler,\n        successfulResponseHandler: createJsonResponseHandler5(\n          googleInteractionsResponseSchema\n        ),\n        abortSignal,\n        fetch\n      });\n      if (isTerminalStatus(response.status)) {\n        return { response, rawResponse, responseHeaders };\n      }\n      nextDelayMs = Math.min(nextDelayMs * 2, maxDelayMs);\n    }\n  } catch (error) {\n    if (isAbortError(error)) {\n      await cancelOnServer();\n    }\n    throw error;\n  }\n}\n\n// src/interactions/prepare-google-interactions-tools.ts\nfunction prepareGoogleInteractionsTools({\n  tools,\n  toolChoice\n}) {\n  var _a, _b, _c, _d;\n  const toolWarnings = [];\n  const normalized = (tools == null ? void 0 : tools.length) ? tools : void 0;\n  if (normalized == null) {\n    return { tools: void 0, toolChoice: void 0, toolWarnings };\n  }\n  const interactionsTools = [];\n  for (const tool of normalized) {\n    if (tool.type === \"function\") {\n      interactionsTools.push({\n        type: \"function\",\n        name: tool.name,\n        description: (_a = tool.description) != null ? _a : \"\",\n        parameters: tool.inputSchema\n      });\n      continue;\n    }\n    if (tool.type === \"provider\") {\n      const args = (_b = tool.args) != null ? _b : {};\n      switch (tool.id) {\n        case \"google.google_search\": {\n          const searchTypesArg = args.searchTypes;\n          let search_types;\n          if (searchTypesArg != null && typeof searchTypesArg === \"object\") {\n            const list = [];\n            if (searchTypesArg.webSearch != null) list.push(\"web_search\");\n            if (searchTypesArg.imageSearch != null) list.push(\"image_search\");\n            if (list.length > 0) {\n              search_types = list;\n            }\n          }\n          interactionsTools.push({\n            type: \"google_search\",\n            ...search_types != null ? { search_types } : {}\n          });\n          break;\n        }\n        case \"google.code_execution\": {\n          interactionsTools.push({ type: \"code_execution\" });\n          break;\n        }\n        case \"google.url_context\": {\n          interactionsTools.push({ type: \"url_context\" });\n          break;\n        }\n        case \"google.file_search\": {\n          interactionsTools.push({\n            type: \"file_search\",\n            ...args.fileSearchStoreNames != null ? {\n              file_search_store_names: args.fileSearchStoreNames\n            } : {},\n            ...args.topK != null ? { top_k: args.topK } : {},\n            ...args.metadataFilter != null ? { metadata_filter: args.metadataFilter } : {}\n          });\n          break;\n        }\n        case \"google.google_maps\": {\n          interactionsTools.push({\n            type: \"google_maps\",\n            ...args.latitude != null ? { latitude: args.latitude } : {},\n            ...args.longitude != null ? { longitude: args.longitude } : {},\n            ...args.enableWidget != null ? { enable_widget: args.enableWidget } : {}\n          });\n          break;\n        }\n        case \"google.computer_use\": {\n          interactionsTools.push({\n            type: \"computer_use\",\n            environment: (_c = args.environment) != null ? _c : \"browser\",\n            ...args.excludedPredefinedFunctions != null ? {\n              excludedPredefinedFunctions: args.excludedPredefinedFunctions\n            } : {}\n          });\n          break;\n        }\n        case \"google.mcp_server\": {\n          interactionsTools.push({\n            type: \"mcp_server\",\n            ...args.name != null ? { name: args.name } : {},\n            ...args.url != null ? { url: args.url } : {},\n            ...args.headers != null ? { headers: args.headers } : {},\n            ...args.allowedTools != null ? { allowed_tools: args.allowedTools } : {}\n          });\n          break;\n        }\n        case \"google.retrieval\": {\n          const vertexAiSearchConfig = (_d = args.vertexAiSearchConfig) != null ? _d : void 0;\n          interactionsTools.push({\n            type: \"retrieval\",\n            ...args.retrievalTypes != null ? {\n              retrieval_types: args.retrievalTypes\n            } : { retrieval_types: [\"vertex_ai_search\"] },\n            ...vertexAiSearchConfig != null ? { vertex_ai_search_config: vertexAiSearchConfig } : {}\n          });\n          break;\n        }\n        default: {\n          toolWarnings.push({\n            type: \"unsupported\",\n            feature: `provider-defined tool ${tool.id}`,\n            details: `provider-defined tool ${tool.id} is not supported by google.interactions; tool dropped.`\n          });\n          break;\n        }\n      }\n      continue;\n    }\n    toolWarnings.push({\n      type: \"unsupported\",\n      feature: `tool of type ${tool.type}`,\n      details: \"Only function tools and google.* provider-defined tools are supported by google.interactions; tool dropped.\"\n    });\n  }\n  const hasFunctionTool = interactionsTools.some((t) => t.type === \"function\");\n  let mappedToolChoice;\n  if (toolChoice != null && hasFunctionTool) {\n    switch (toolChoice.type) {\n      case \"auto\":\n        mappedToolChoice = \"auto\";\n        break;\n      case \"required\":\n        mappedToolChoice = \"any\";\n        break;\n      case \"none\":\n        mappedToolChoice = \"none\";\n        break;\n      case \"tool\":\n        mappedToolChoice = {\n          allowed_tools: {\n            mode: \"validated\",\n            tools: [toolChoice.toolName]\n          }\n        };\n        break;\n    }\n  }\n  return {\n    tools: interactionsTools.length > 0 ? interactionsTools : void 0,\n    toolChoice: mappedToolChoice,\n    toolWarnings\n  };\n}\n\n// src/interactions/stream-google-interactions.ts\nimport {\n  createEventSourceResponseHandler as createEventSourceResponseHandler2,\n  delay as delay3,\n  getFromApi as getFromApi3,\n  isAbortError as isAbortError2\n} from \"@ai-sdk/provider-utils\";\nvar DEFAULT_MAX_RETRIES = 3;\nvar DEFAULT_RETRY_DELAY_MS = 500;\nfunction streamGoogleInteractionEvents({\n  baseURL,\n  interactionId,\n  headers,\n  fetch,\n  abortSignal,\n  maxRetries = DEFAULT_MAX_RETRIES,\n  retryDelayMs = DEFAULT_RETRY_DELAY_MS\n}) {\n  if (interactionId.length === 0) {\n    throw new Error(\n      \"google.interactions: cannot stream a background interaction without an id.\"\n    );\n  }\n  const eventSourceHeaders = {\n    ...headers,\n    accept: \"text/event-stream\"\n  };\n  let lastEventId;\n  let complete = false;\n  let attempt = 0;\n  let receivedAnyEventThisAttempt = false;\n  let currentReader;\n  const internalAbort = new AbortController();\n  const upstreamAbortHandler = () => internalAbort.abort();\n  if (abortSignal != null) {\n    if (abortSignal.aborted) {\n      internalAbort.abort();\n    } else {\n      abortSignal.addEventListener(\"abort\", upstreamAbortHandler, {\n        once: true\n      });\n    }\n  }\n  const effectiveSignal = internalAbort.signal;\n  function buildUrl() {\n    const base = `${baseURL}/interactions/${encodeURIComponent(interactionId)}`;\n    const params = new URLSearchParams({ stream: \"true\" });\n    if (lastEventId != null) {\n      params.set(\"last_event_id\", lastEventId);\n    }\n    return `${base}?${params.toString()}`;\n  }\n  async function openReader() {\n    const { value: stream } = await getFromApi3({\n      url: buildUrl(),\n      headers: eventSourceHeaders,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler2(\n        googleInteractionsEventSchema\n      ),\n      abortSignal: effectiveSignal,\n      fetch\n    });\n    return stream.getReader();\n  }\n  return new ReadableStream({\n    async start(controller) {\n      try {\n        while (!complete && !effectiveSignal.aborted) {\n          if (currentReader == null) {\n            try {\n              currentReader = await openReader();\n              receivedAnyEventThisAttempt = false;\n            } catch (error) {\n              if (isAbortError2(error) || effectiveSignal.aborted) {\n                controller.error(error);\n                return;\n              }\n              attempt++;\n              if (attempt >= maxRetries) {\n                controller.error(error);\n                return;\n              }\n              await delay3(retryDelayMs * attempt, {\n                abortSignal: effectiveSignal\n              });\n              continue;\n            }\n          }\n          try {\n            const { done, value } = await currentReader.read();\n            if (done) {\n              currentReader = void 0;\n              if (complete) break;\n              if (!receivedAnyEventThisAttempt) {\n                attempt++;\n                if (attempt >= maxRetries) {\n                  controller.error(\n                    new Error(\n                      \"google.interactions: SSE stream closed without producing any events.\"\n                    )\n                  );\n                  return;\n                }\n                await delay3(retryDelayMs * attempt, {\n                  abortSignal: effectiveSignal\n                });\n              } else {\n                attempt = 0;\n              }\n              continue;\n            }\n            receivedAnyEventThisAttempt = true;\n            if (value.success) {\n              const ev = value.value;\n              if (typeof ev.event_id === \"string\" && ev.event_id.length > 0) {\n                lastEventId = ev.event_id;\n              }\n              if (ev.event_type === \"interaction.completed\" || ev.event_type === \"error\") {\n                complete = true;\n              }\n            }\n            controller.enqueue(value);\n          } catch (error) {\n            if (isAbortError2(error) || effectiveSignal.aborted) {\n              controller.error(error);\n              return;\n            }\n            currentReader = void 0;\n            attempt++;\n            if (attempt >= maxRetries) {\n              controller.error(error);\n              return;\n            }\n            await delay3(retryDelayMs * attempt, {\n              abortSignal: effectiveSignal\n            });\n          }\n        }\n        controller.close();\n      } catch (error) {\n        controller.error(error);\n      } finally {\n        if (abortSignal != null) {\n          abortSignal.removeEventListener(\"abort\", upstreamAbortHandler);\n        }\n        currentReader == null ? void 0 : currentReader.cancel().catch(() => {\n        });\n        currentReader = void 0;\n        if (effectiveSignal.aborted && !complete) {\n          await cancelGoogleInteraction({\n            baseURL,\n            interactionId,\n            headers,\n            fetch\n          });\n        }\n      }\n    },\n    cancel() {\n      internalAbort.abort();\n      currentReader == null ? void 0 : currentReader.cancel().catch(() => {\n      });\n      currentReader = void 0;\n    }\n  });\n}\n\n// src/interactions/synthesize-google-interactions-agent-stream.ts\nfunction synthesizeGoogleInteractionsAgentStream({\n  response,\n  warnings,\n  generateId: generateId3,\n  includeRawChunks,\n  headerServiceTier\n}) {\n  return new ReadableStream({\n    start(controller) {\n      var _a, _b, _c;\n      controller.enqueue({ type: \"stream-start\", warnings });\n      const interactionId = typeof response.id === \"string\" && response.id.length > 0 ? response.id : void 0;\n      let timestamp;\n      const created = response.created;\n      if (typeof created === \"string\") {\n        const parsed = new Date(created);\n        if (!Number.isNaN(parsed.getTime())) {\n          timestamp = parsed;\n        }\n      }\n      controller.enqueue({\n        type: \"response-metadata\",\n        ...interactionId != null ? { id: interactionId } : {},\n        modelId: (_a = response.model) != null ? _a : void 0,\n        ...timestamp ? { timestamp } : {}\n      });\n      if (includeRawChunks) {\n        controller.enqueue({ type: \"raw\", rawValue: response });\n      }\n      const { content, hasFunctionCall } = parseGoogleInteractionsOutputs({\n        steps: (_b = response.steps) != null ? _b : null,\n        generateId: generateId3,\n        interactionId\n      });\n      let blockCounter = 0;\n      const nextBlockId = () => `${interactionId != null ? interactionId : \"agent\"}:${blockCounter++}`;\n      for (const part of content) {\n        switch (part.type) {\n          case \"text\": {\n            const id = nextBlockId();\n            const providerMetadata2 = part.providerMetadata;\n            controller.enqueue({ type: \"text-start\", id });\n            if (part.text.length > 0) {\n              controller.enqueue({ type: \"text-delta\", id, delta: part.text });\n            }\n            controller.enqueue({\n              type: \"text-end\",\n              id,\n              ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n            });\n            break;\n          }\n          case \"reasoning\": {\n            const id = nextBlockId();\n            const providerMetadata2 = part.providerMetadata;\n            controller.enqueue({ type: \"reasoning-start\", id });\n            if (part.text.length > 0) {\n              controller.enqueue({\n                type: \"reasoning-delta\",\n                id,\n                delta: part.text\n              });\n            }\n            controller.enqueue({\n              type: \"reasoning-end\",\n              id,\n              ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n            });\n            break;\n          }\n          case \"tool-call\": {\n            const providerMetadata2 = part.providerMetadata;\n            controller.enqueue({\n              type: \"tool-input-start\",\n              id: part.toolCallId,\n              toolName: part.toolName,\n              ...part.providerExecuted ? { providerExecuted: part.providerExecuted } : {}\n            });\n            controller.enqueue({\n              type: \"tool-input-delta\",\n              id: part.toolCallId,\n              delta: part.input\n            });\n            controller.enqueue({\n              type: \"tool-input-end\",\n              id: part.toolCallId\n            });\n            controller.enqueue({\n              type: \"tool-call\",\n              toolCallId: part.toolCallId,\n              toolName: part.toolName,\n              input: part.input,\n              ...part.providerExecuted ? { providerExecuted: part.providerExecuted } : {},\n              ...providerMetadata2 ? { providerMetadata: providerMetadata2 } : {}\n            });\n            break;\n          }\n          case \"tool-result\": {\n            controller.enqueue({\n              type: \"tool-result\",\n              toolCallId: part.toolCallId,\n              toolName: part.toolName,\n              result: part.result\n            });\n            break;\n          }\n          case \"source\":\n          case \"file\": {\n            controller.enqueue(part);\n            break;\n          }\n          default:\n            break;\n        }\n      }\n      const serviceTier = (_c = response.service_tier) != null ? _c : headerServiceTier;\n      const finishReason = {\n        unified: mapGoogleInteractionsFinishReason({\n          status: response.status,\n          hasFunctionCall\n        }),\n        raw: response.status\n      };\n      const providerMetadata = {\n        google: {\n          ...interactionId != null ? { interactionId } : {},\n          ...serviceTier != null ? { serviceTier } : {}\n        }\n      };\n      controller.enqueue({\n        type: \"finish\",\n        finishReason,\n        usage: convertGoogleInteractionsUsage(response.usage),\n        providerMetadata\n      });\n      controller.close();\n    }\n  });\n}\n\n// src/interactions/google-interactions-language-model.ts\nvar GoogleInteractionsLanguageModel = class {\n  constructor(modelOrAgent, config) {\n    this.specificationVersion = \"v3\";\n    if (typeof modelOrAgent === \"string\") {\n      this.modelId = modelOrAgent;\n      this.agent = void 0;\n    } else if (\"managedAgent\" in modelOrAgent) {\n      this.modelId = modelOrAgent.managedAgent;\n      this.agent = modelOrAgent.managedAgent;\n    } else {\n      this.modelId = modelOrAgent.agent;\n      this.agent = modelOrAgent.agent;\n    }\n    this.config = config;\n  }\n  get provider() {\n    return this.config.provider;\n  }\n  get supportedUrls() {\n    if (this.config.supportedUrls) {\n      return this.config.supportedUrls();\n    }\n    return {\n      \"image/*\": [/^https?:\\/\\/.+/],\n      \"application/pdf\": [/^https?:\\/\\/.+/],\n      \"audio/*\": [/^https?:\\/\\/.+/],\n      \"video/*\": [\n        /^https?:\\/\\/(www\\.)?youtube\\.com\\/watch\\?v=.+/,\n        /^https?:\\/\\/youtu\\.be\\/.+/,\n        /^gs:\\/\\/.+/\n      ]\n    };\n  }\n  async getArgs(options) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;\n    const warnings = [];\n    const opts = await parseProviderOptions5({\n      provider: \"google\",\n      providerOptions: options.providerOptions,\n      schema: googleInteractionsLanguageModelOptions\n    });\n    const isAgent = this.agent != null;\n    const hasTools = options.tools != null && options.tools.length > 0;\n    let toolsForBody;\n    let toolChoiceForBody;\n    if (hasTools) {\n      const prepared = prepareGoogleInteractionsTools({\n        tools: options.tools,\n        toolChoice: options.toolChoice\n      });\n      toolsForBody = prepared.tools;\n      toolChoiceForBody = prepared.toolChoice;\n      warnings.push(...prepared.toolWarnings);\n    }\n    const responseFormatEntries = [];\n    if (((_a = options.responseFormat) == null ? void 0 : _a.type) === \"json\") {\n      if (isAgent) {\n        warnings.push({\n          type: \"other\",\n          message: \"google.interactions: structured output (responseFormat) is not supported when an agent is set; responseFormat will be ignored.\"\n        });\n      } else {\n        const entry = {\n          type: \"text\",\n          mime_type: \"application/json\",\n          ...options.responseFormat.schema != null ? { schema: options.responseFormat.schema } : {}\n        };\n        responseFormatEntries.push(entry);\n      }\n    }\n    if ((opts == null ? void 0 : opts.responseFormat) != null) {\n      for (const entry of opts.responseFormat) {\n        if (entry.type === \"text\") {\n          responseFormatEntries.push(\n            pruneUndefined({\n              type: \"text\",\n              mime_type: (_b = entry.mimeType) != null ? _b : void 0,\n              schema: (_c = entry.schema) != null ? _c : void 0\n            })\n          );\n        } else if (entry.type === \"image\") {\n          responseFormatEntries.push(\n            pruneUndefined({\n              type: \"image\",\n              mime_type: (_d = entry.mimeType) != null ? _d : void 0,\n              aspect_ratio: (_e = entry.aspectRatio) != null ? _e : void 0,\n              image_size: (_f = entry.imageSize) != null ? _f : void 0\n            })\n          );\n        } else if (entry.type === \"audio\") {\n          responseFormatEntries.push(\n            pruneUndefined({\n              type: \"audio\",\n              mime_type: (_g = entry.mimeType) != null ? _g : void 0\n            })\n          );\n        }\n      }\n    }\n    const {\n      input,\n      systemInstruction: convertedSystemInstruction,\n      warnings: convWarnings\n    } = convertToGoogleInteractionsInput({\n      prompt: options.prompt,\n      previousInteractionId: (_h = opts == null ? void 0 : opts.previousInteractionId) != null ? _h : void 0,\n      store: (_i = opts == null ? void 0 : opts.store) != null ? _i : void 0,\n      mediaResolution: (_j = opts == null ? void 0 : opts.mediaResolution) != null ? _j : void 0\n    });\n    warnings.push(...convWarnings);\n    let systemInstruction = convertedSystemInstruction;\n    const optionSystemInstruction = (_k = opts == null ? void 0 : opts.systemInstruction) != null ? _k : void 0;\n    if (systemInstruction != null && optionSystemInstruction != null) {\n      warnings.push({\n        type: \"other\",\n        message: \"google.interactions: both AI SDK system message and providerOptions.google.systemInstruction were set; using the AI SDK system message.\"\n      });\n    } else if (systemInstruction == null && optionSystemInstruction != null) {\n      systemInstruction = optionSystemInstruction;\n    }\n    let generationConfig;\n    if (isAgent) {\n      const droppedFields = [];\n      if (options.temperature != null) droppedFields.push(\"temperature\");\n      if (options.topP != null) droppedFields.push(\"topP\");\n      if (options.seed != null) droppedFields.push(\"seed\");\n      if (options.stopSequences != null && options.stopSequences.length > 0) {\n        droppedFields.push(\"stopSequences\");\n      }\n      if (options.maxOutputTokens != null)\n        droppedFields.push(\"maxOutputTokens\");\n      if ((opts == null ? void 0 : opts.thinkingLevel) != null) droppedFields.push(\"thinkingLevel\");\n      if ((opts == null ? void 0 : opts.thinkingSummaries) != null) {\n        droppedFields.push(\"thinkingSummaries\");\n      }\n      if ((opts == null ? void 0 : opts.imageConfig) != null) droppedFields.push(\"imageConfig\");\n      if (droppedFields.length > 0) {\n        warnings.push({\n          type: \"other\",\n          message: `google.interactions: ${droppedFields.join(\", \")} ${droppedFields.length === 1 ? \"is\" : \"are\"} not supported when an agent is set; use providerOptions.google.agentConfig instead. Dropped from the request body.`\n        });\n      }\n      generationConfig = void 0;\n    } else {\n      generationConfig = pruneUndefined({\n        temperature: (_l = options.temperature) != null ? _l : void 0,\n        top_p: (_m = options.topP) != null ? _m : void 0,\n        seed: (_n = options.seed) != null ? _n : void 0,\n        stop_sequences: options.stopSequences != null && options.stopSequences.length > 0 ? options.stopSequences : void 0,\n        max_output_tokens: (_o = options.maxOutputTokens) != null ? _o : void 0,\n        thinking_level: (_p = opts == null ? void 0 : opts.thinkingLevel) != null ? _p : void 0,\n        thinking_summaries: (_q = opts == null ? void 0 : opts.thinkingSummaries) != null ? _q : void 0,\n        tool_choice: toolChoiceForBody\n      });\n      if ((opts == null ? void 0 : opts.imageConfig) != null) {\n        const alreadyHasImageEntry = responseFormatEntries.some(\n          (entry) => entry.type === \"image\"\n        );\n        warnings.push({\n          type: \"other\",\n          message: alreadyHasImageEntry ? \"google.interactions: providerOptions.google.imageConfig is deprecated and was ignored because providerOptions.google.responseFormat already supplies an image entry. Use responseFormat exclusively.\" : 'google.interactions: providerOptions.google.imageConfig is deprecated. Use providerOptions.google.responseFormat with a { type: \"image\", ... } entry instead.'\n        });\n        if (!alreadyHasImageEntry) {\n          responseFormatEntries.push({\n            type: \"image\",\n            mime_type: \"image/png\",\n            ...opts.imageConfig.aspectRatio != null ? { aspect_ratio: opts.imageConfig.aspectRatio } : {},\n            ...opts.imageConfig.imageSize != null ? { image_size: opts.imageConfig.imageSize } : {}\n          });\n        }\n      }\n    }\n    let agentConfig;\n    if (isAgent && (opts == null ? void 0 : opts.agentConfig) != null) {\n      const ac = opts.agentConfig;\n      if (ac.type === \"deep-research\") {\n        agentConfig = pruneUndefined({\n          type: \"deep-research\",\n          thinking_summaries: (_r = ac.thinkingSummaries) != null ? _r : void 0,\n          visualization: (_s = ac.visualization) != null ? _s : void 0,\n          collaborative_planning: (_t = ac.collaborativePlanning) != null ? _t : void 0\n        });\n      } else if (ac.type === \"dynamic\") {\n        agentConfig = { type: \"dynamic\" };\n      }\n    }\n    let environment;\n    if ((opts == null ? void 0 : opts.environment) != null) {\n      if (!isAgent) {\n        warnings.push({\n          type: \"other\",\n          message: \"google.interactions: environment is only supported when an agent is set; environment will be omitted from the request body.\"\n        });\n      } else if (typeof opts.environment === \"string\") {\n        environment = opts.environment;\n      } else {\n        const env = opts.environment;\n        const sources = (_u = env.sources) == null ? void 0 : _u.map((s) => {\n          var _a2;\n          if (s.type === \"inline\") {\n            return {\n              type: \"inline\",\n              content: s.content,\n              target: s.target\n            };\n          }\n          return pruneUndefined({\n            type: s.type,\n            source: s.source,\n            target: (_a2 = s.target) != null ? _a2 : void 0\n          });\n        });\n        let network;\n        if (env.network === \"disabled\") {\n          network = \"disabled\";\n        } else if (env.network != null) {\n          network = {\n            allowlist: env.network.allowlist.map(\n              (entry) => {\n                var _a2;\n                return pruneUndefined({\n                  domain: entry.domain,\n                  transform: (_a2 = entry.transform) != null ? _a2 : void 0\n                });\n              }\n            )\n          };\n        }\n        environment = pruneUndefined({\n          type: \"remote\",\n          sources: sources != null && sources.length > 0 ? sources : void 0,\n          network\n        });\n      }\n    }\n    const args = pruneUndefined({\n      ...isAgent ? { agent: this.agent } : { model: this.modelId },\n      input,\n      system_instruction: systemInstruction,\n      tools: toolsForBody,\n      response_format: responseFormatEntries.length > 0 ? responseFormatEntries : void 0,\n      response_modalities: (opts == null ? void 0 : opts.responseModalities) != null ? opts.responseModalities : void 0,\n      previous_interaction_id: (_v = opts == null ? void 0 : opts.previousInteractionId) != null ? _v : void 0,\n      service_tier: (_w = opts == null ? void 0 : opts.serviceTier) != null ? _w : void 0,\n      store: (_x = opts == null ? void 0 : opts.store) != null ? _x : void 0,\n      generation_config: generationConfig != null && Object.keys(generationConfig).length > 0 ? generationConfig : void 0,\n      agent_config: agentConfig,\n      environment,\n      background: (_y = opts == null ? void 0 : opts.background) != null ? _y : void 0\n    });\n    return {\n      args,\n      warnings,\n      isAgent,\n      isBackground: (opts == null ? void 0 : opts.background) === true,\n      pollingTimeoutMs: (_z = opts == null ? void 0 : opts.pollingTimeoutMs) != null ? _z : void 0\n    };\n  }\n  async doGenerate(options) {\n    var _a, _b, _c, _d, _e, _f;\n    const { args, warnings, isAgent, pollingTimeoutMs } = await this.getArgs(options);\n    const url = `${this.config.baseURL}/interactions`;\n    const mergedHeaders = combineHeaders6(\n      INTERACTIONS_API_REVISION_HEADER,\n      this.config.headers ? await resolve5(this.config.headers) : void 0,\n      options.headers\n    );\n    const postResult = await postJsonToApi5({\n      url,\n      headers: mergedHeaders,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler6(\n        googleInteractionsResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    let {\n      responseHeaders,\n      value: response,\n      rawValue: rawResponse\n    } = postResult;\n    if (isAgent && !isTerminalStatus(response.status)) {\n      const polled = await pollGoogleInteractionUntilTerminal({\n        baseURL: this.config.baseURL,\n        interactionId: response.id,\n        headers: mergedHeaders,\n        fetch: this.config.fetch,\n        abortSignal: options.abortSignal,\n        timeoutMs: pollingTimeoutMs\n      });\n      response = polled.response;\n      rawResponse = polled.rawResponse;\n      responseHeaders = (_a = polled.responseHeaders) != null ? _a : responseHeaders;\n    }\n    const interactionId = typeof response.id === \"string\" && response.id.length > 0 ? response.id : void 0;\n    const { content, hasFunctionCall } = parseGoogleInteractionsOutputs({\n      steps: (_b = response.steps) != null ? _b : null,\n      generateId: (_c = this.config.generateId) != null ? _c : defaultGenerateId2,\n      interactionId\n    });\n    const finishReason = {\n      unified: mapGoogleInteractionsFinishReason({\n        status: response.status,\n        hasFunctionCall\n      }),\n      raw: response.status\n    };\n    const serviceTier = (_e = (_d = response.service_tier) != null ? _d : responseHeaders == null ? void 0 : responseHeaders[\"x-gemini-service-tier\"]) != null ? _e : void 0;\n    const outputTokensByModality = getGoogleInteractionsOutputTokensByModality(\n      response.usage\n    );\n    const providerMetadata = {\n      google: {\n        ...interactionId != null ? { interactionId } : {},\n        ...serviceTier != null ? { serviceTier } : {},\n        ...outputTokensByModality != null ? { outputTokensByModality } : {}\n      }\n    };\n    let timestamp;\n    if (typeof response.created === \"string\") {\n      const parsed = new Date(response.created);\n      if (!Number.isNaN(parsed.getTime())) {\n        timestamp = parsed;\n      }\n    }\n    return {\n      content,\n      finishReason,\n      usage: convertGoogleInteractionsUsage(response.usage),\n      warnings,\n      providerMetadata,\n      request: { body: args },\n      response: {\n        headers: responseHeaders,\n        body: rawResponse,\n        ...interactionId != null ? { id: interactionId } : {},\n        ...timestamp ? { timestamp } : {},\n        modelId: (_f = response.model) != null ? _f : void 0\n      }\n    };\n  }\n  async doStream(options) {\n    var _a;\n    const { args, warnings, isBackground, pollingTimeoutMs } = await this.getArgs(options);\n    const url = `${this.config.baseURL}/interactions`;\n    const mergedHeaders = combineHeaders6(\n      INTERACTIONS_API_REVISION_HEADER,\n      this.config.headers ? await resolve5(this.config.headers) : void 0,\n      options.headers\n    );\n    if (isBackground) {\n      return this.doStreamBackground({\n        args,\n        warnings,\n        url,\n        mergedHeaders,\n        options,\n        pollingTimeoutMs\n      });\n    }\n    const body = { ...args, stream: true };\n    const { responseHeaders, value: response } = await postJsonToApi5({\n      url,\n      headers: mergedHeaders,\n      body,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler3(\n        googleInteractionsEventSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const headerServiceTier = responseHeaders == null ? void 0 : responseHeaders[\"x-gemini-service-tier\"];\n    const transform = buildGoogleInteractionsStreamTransform({\n      warnings,\n      generateId: (_a = this.config.generateId) != null ? _a : defaultGenerateId2,\n      includeRawChunks: options.includeRawChunks,\n      serviceTier: headerServiceTier\n    });\n    return {\n      stream: response.pipeThrough(transform),\n      request: { body },\n      response: { headers: responseHeaders }\n    };\n  }\n  /*\n   * Drive the streaming surface for agent calls. Agents require\n   * `background: true`, which is incompatible with `stream: true` on POST.\n   *\n   * Approach:\n   *   1. POST `/interactions` with `background: true`. The response includes\n   *      the interaction id and an initial (usually non-terminal) status.\n   *   2. If the POST status is already terminal (rare), synthesize a stream\n   *      from the polled outputs and we're done.\n   *   3. Otherwise open `GET /interactions/{id}?stream=true` and pipe the\n   *      SSE events through `buildGoogleInteractionsStreamTransform` so the\n   *      consumer receives text deltas / thinking summaries / tool events as\n   *      they happen instead of all at once at the end.\n   *\n   * The SSE connection can drop while the agent idles between events\n   * (`UND_ERR_BODY_TIMEOUT`); `streamGoogleInteractionEvents` handles the\n   * reconnect-with-`last_event_id` loop transparently.\n   */\n  async doStreamBackground({\n    args,\n    warnings,\n    url,\n    mergedHeaders,\n    options,\n    pollingTimeoutMs\n  }) {\n    var _a, _b;\n    const postResult = await postJsonToApi5({\n      url,\n      headers: mergedHeaders,\n      body: args,\n      failedResponseHandler: googleFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler6(\n        googleInteractionsResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch\n    });\n    const { responseHeaders: postHeaders, value: postResponse } = postResult;\n    const interactionId = postResponse.id;\n    if (interactionId == null || interactionId.length === 0) {\n      throw new Error(\n        \"google.interactions: background POST response did not include an interaction id; cannot stream the result.\"\n      );\n    }\n    const headerServiceTier = postHeaders == null ? void 0 : postHeaders[\"x-gemini-service-tier\"];\n    if (isTerminalStatus(postResponse.status)) {\n      const synthesized = synthesizeGoogleInteractionsAgentStream({\n        response: postResponse,\n        warnings,\n        generateId: (_a = this.config.generateId) != null ? _a : defaultGenerateId2,\n        includeRawChunks: options.includeRawChunks,\n        headerServiceTier\n      });\n      return {\n        stream: synthesized,\n        request: { body: args },\n        response: { headers: postHeaders }\n      };\n    }\n    void pollingTimeoutMs;\n    const events = streamGoogleInteractionEvents({\n      baseURL: this.config.baseURL,\n      interactionId,\n      headers: mergedHeaders,\n      fetch: this.config.fetch,\n      abortSignal: options.abortSignal\n    });\n    const transform = buildGoogleInteractionsStreamTransform({\n      warnings,\n      generateId: (_b = this.config.generateId) != null ? _b : defaultGenerateId2,\n      includeRawChunks: options.includeRawChunks,\n      serviceTier: headerServiceTier\n    });\n    return {\n      stream: events.pipeThrough(transform),\n      request: { body: args },\n      response: { headers: postHeaders }\n    };\n  }\n};\nvar INTERACTIONS_API_REVISION_HEADER = {\n  \"Api-Revision\": \"2026-05-20\"\n};\nfunction pruneUndefined(obj) {\n  const result = {};\n  for (const [key, value] of Object.entries(obj)) {\n    if (value === void 0) continue;\n    result[key] = value;\n  }\n  return result;\n}\n\n// src/google-provider.ts\nvar supportedExternalUrlMediaTypes = [\n  \"text/html\",\n  \"text/css\",\n  \"text/plain\",\n  \"text/xml\",\n  \"text/csv\",\n  \"text/rtf\",\n  \"text/javascript\",\n  \"application/json\",\n  \"application/pdf\",\n  \"image/bmp\",\n  \"image/jpeg\",\n  \"image/png\",\n  \"image/webp\",\n  \"video/mp4\",\n  \"video/mpeg\",\n  \"video/quicktime\",\n  \"video/avi\",\n  \"video/x-flv\",\n  \"video/mpg\",\n  \"video/webm\",\n  \"video/wmv\",\n  \"video/3gpp\"\n];\nvar externalHttpsUrlPattern = /^https:\\/\\/.*$/;\nfunction supportsExternalFileUrls(modelId) {\n  return /(^|\\/)gemini-/.test(modelId) && !/(^|\\/)gemini-2\\.0/.test(modelId);\n}\nfunction createGoogleGenerativeAI(options = {}) {\n  var _a, _b;\n  const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://generativelanguage.googleapis.com/v1beta\";\n  const providerName = (_b = options.name) != null ? _b : \"google.generative-ai\";\n  const getHeaders = () => withUserAgentSuffix2(\n    {\n      \"x-goog-api-key\": loadApiKey({\n        apiKey: options.apiKey,\n        environmentVariableName: \"GOOGLE_GENERATIVE_AI_API_KEY\",\n        description: \"Google Generative AI\"\n      }),\n      ...options.headers\n    },\n    `ai-sdk/google/${VERSION}`\n  );\n  const createChatModel = (modelId) => {\n    var _a2;\n    return new GoogleGenerativeAILanguageModel(modelId, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n      supportedUrls: () => ({\n        \"*\": [\n          // Google Generative Language \"files\" endpoint\n          // e.g. https://generativelanguage.googleapis.com/v1beta/files/...\n          new RegExp(`^${baseURL}/files/.*$`),\n          // YouTube URLs (public or unlisted videos)\n          new RegExp(\n            `^https://(?:www\\\\.)?youtube\\\\.com/watch\\\\?v=[\\\\w-]+(?:&[\\\\w=&.-]*)?$`\n          ),\n          new RegExp(`^https://youtu\\\\.be/[\\\\w-]+(?:\\\\?[\\\\w=&.-]*)?$`)\n        ],\n        ...supportsExternalFileUrls(modelId) ? Object.fromEntries(\n          supportedExternalUrlMediaTypes.map((mediaType) => [\n            mediaType,\n            [externalHttpsUrlPattern]\n          ])\n        ) : {}\n      }),\n      fetch: options.fetch\n    });\n  };\n  const createEmbeddingModel = (modelId) => new GoogleGenerativeAIEmbeddingModel(modelId, {\n    provider: providerName,\n    baseURL,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createImageModel = (modelId, settings = {}) => new GoogleGenerativeAIImageModel(modelId, settings, {\n    provider: providerName,\n    baseURL,\n    headers: getHeaders,\n    fetch: options.fetch\n  });\n  const createVideoModel = (modelId) => {\n    var _a2;\n    return new GoogleGenerativeAIVideoModel(modelId, {\n      provider: providerName,\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      generateId: (_a2 = options.generateId) != null ? _a2 : generateId2\n    });\n  };\n  const createInteractionsModel = (modelIdOrAgent) => {\n    var _a2;\n    return new GoogleInteractionsLanguageModel(\n      modelIdOrAgent,\n      {\n        provider: `${providerName}.interactions`,\n        baseURL,\n        headers: getHeaders,\n        generateId: (_a2 = options.generateId) != null ? _a2 : generateId2,\n        fetch: options.fetch\n      }\n    );\n  };\n  const provider = function(modelId) {\n    if (new.target) {\n      throw new Error(\n        \"The Google Generative AI model function cannot be called with the new keyword.\"\n      );\n    }\n    return createChatModel(modelId);\n  };\n  provider.specificationVersion = \"v3\";\n  provider.languageModel = createChatModel;\n  provider.chat = createChatModel;\n  provider.generativeAI = createChatModel;\n  provider.embedding = createEmbeddingModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.video = createVideoModel;\n  provider.videoModel = createVideoModel;\n  provider.interactions = createInteractionsModel;\n  provider.tools = googleTools;\n  return provider;\n}\nvar google = createGoogleGenerativeAI();\nexport {\n  VERSION,\n  createGoogleGenerativeAI,\n  google\n};\n//# sourceMappingURL=index.mjs.map"],"x_google_ignoreList":[0,1,2,3,4,5,7,9],"mappings":"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"}