{"version":3,"sources":["../src/gateway-provider.ts","../src/errors/as-gateway-error.ts","../src/errors/create-gateway-error.ts","../src/errors/gateway-error.ts","../src/errors/gateway-authentication-error.ts","../src/errors/gateway-invalid-request-error.ts","../src/errors/gateway-rate-limit-error.ts","../src/errors/gateway-model-not-found-error.ts","../src/errors/gateway-internal-server-error.ts","../src/errors/gateway-response-error.ts","../src/errors/gateway-timeout-error.ts","../src/errors/extract-api-call-response.ts","../src/errors/parse-auth-method.ts","../src/gateway-fetch-metadata.ts","../src/gateway-spend-report.ts","../src/gateway-generation-info.ts","../src/gateway-language-model.ts","../src/gateway-embedding-model.ts","../src/gateway-image-model.ts","../src/gateway-video-model.ts","../src/gateway-reranking-model.ts","../src/tool/parallel-search.ts","../src/tool/perplexity-search.ts","../src/gateway-tools.ts","../src/vercel-environment.ts","../src/version.ts"],"sourcesContent":["import {\n  loadOptionalSetting,\n  withoutTrailingSlash,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { asGatewayError, GatewayAuthenticationError } from './errors';\nimport {\n  GATEWAY_AUTH_METHOD_HEADER,\n  parseAuthMethod,\n} from './errors/parse-auth-method';\nimport {\n  GatewayFetchMetadata,\n  type GatewayFetchMetadataResponse,\n  type GatewayCreditsResponse,\n} from './gateway-fetch-metadata';\nimport {\n  GatewaySpendReport,\n  type GatewaySpendReportParams,\n  type GatewaySpendReportResponse,\n} from './gateway-spend-report';\nimport {\n  GatewayGenerationInfoFetcher,\n  type GatewayGenerationInfoParams,\n  type GatewayGenerationInfo,\n} from './gateway-generation-info';\nimport { GatewayLanguageModel } from './gateway-language-model';\nimport { GatewayEmbeddingModel } from './gateway-embedding-model';\nimport { GatewayImageModel } from './gateway-image-model';\nimport { GatewayVideoModel } from './gateway-video-model';\nimport { GatewayRerankingModel } from './gateway-reranking-model';\nimport type { GatewayEmbeddingModelId } from './gateway-embedding-model-settings';\nimport type { GatewayImageModelId } from './gateway-image-model-settings';\nimport type { GatewayRerankingModelId } from './gateway-reranking-model-settings';\nimport type { GatewayVideoModelId } from './gateway-video-model-settings';\nimport { gatewayTools } from './gateway-tools';\nimport { getVercelOidcToken, getVercelRequestId } from './vercel-environment';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport type {\n  LanguageModelV3,\n  EmbeddingModelV3,\n  ImageModelV3,\n  RerankingModelV3,\n  Experimental_VideoModelV3,\n  ProviderV3,\n} from '@ai-sdk/provider';\nimport { withUserAgentSuffix } from '@ai-sdk/provider-utils';\nimport { VERSION } from './version';\n\nexport interface GatewayProvider extends ProviderV3 {\n  (modelId: GatewayModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text generation.\n   */\n  chat(modelId: GatewayModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text generation.\n   */\n  languageModel(modelId: GatewayModelId): LanguageModelV3;\n\n  /**\n   * Returns available providers and models for use with the remote provider.\n   */\n  getAvailableModels(): Promise<GatewayFetchMetadataResponse>;\n\n  /**\n   * Returns credit information for the authenticated user.\n   */\n  getCredits(): Promise<GatewayCreditsResponse>;\n\n  /**\n   * Returns a spend report with cost, token, and request count data,\n   * aggregated by the specified dimension.\n   */\n  getSpendReport(\n    params: GatewaySpendReportParams,\n  ): Promise<GatewaySpendReportResponse>;\n\n  /**\n   * Returns detailed information about a specific generation by its ID,\n   * including cost, token usage, latency, and provider details.\n   */\n  getGenerationInfo(\n    params: GatewayGenerationInfoParams,\n  ): Promise<GatewayGenerationInfo>;\n\n  /**\n   * Creates a model for generating text embeddings.\n   */\n  embedding(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for generating text embeddings.\n   */\n  embeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for generating images.\n   */\n  image(modelId: GatewayImageModelId): ImageModelV3;\n\n  /**\n   * Creates a model for generating images.\n   */\n  imageModel(modelId: GatewayImageModelId): ImageModelV3;\n\n  /**\n   * Creates a model for generating videos.\n   */\n  video(modelId: GatewayVideoModelId): Experimental_VideoModelV3;\n\n  /**\n   * Creates a model for generating videos.\n   */\n  videoModel(modelId: GatewayVideoModelId): Experimental_VideoModelV3;\n\n  /**\n   * Creates a model for reranking documents.\n   */\n  reranking(modelId: GatewayRerankingModelId): RerankingModelV3;\n\n  /**\n   * Creates a model for reranking documents.\n   */\n  rerankingModel(modelId: GatewayRerankingModelId): RerankingModelV3;\n\n  /**\n   * Gateway-specific tools executed server-side.\n   */\n  tools: typeof gatewayTools;\n}\n\nexport interface GatewayProviderSettings {\n  /**\n   * The base URL prefix for API calls. Defaults to `https://ai-gateway.vercel.sh/v1/ai`.\n   */\n  baseURL?: string;\n\n  /**\n   * API key that is being sent using the `Authorization` header.\n   */\n  apiKey?: string;\n\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or to provide a custom fetch implementation for e.g. testing.\n   */\n  fetch?: FetchFunction;\n\n  /**\n   * How frequently to refresh the metadata cache in milliseconds.\n   */\n  metadataCacheRefreshMillis?: number;\n\n  /**\n   * @internal For testing purposes only\n   */\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nconst AI_GATEWAY_PROTOCOL_VERSION = '0.0.1';\n\n/**\n * Create a remote provider instance.\n */\nexport function createGatewayProvider(\n  options: GatewayProviderSettings = {},\n): GatewayProvider {\n  let pendingMetadata: Promise<GatewayFetchMetadataResponse> | null = null;\n  let metadataCache: GatewayFetchMetadataResponse | null = null;\n  const cacheRefreshMillis =\n    options.metadataCacheRefreshMillis ?? 1000 * 60 * 5;\n  let lastFetchTime = 0;\n\n  const baseURL =\n    withoutTrailingSlash(options.baseURL) ??\n    'https://ai-gateway.vercel.sh/v3/ai';\n\n  const getHeaders = async () => {\n    try {\n      const auth = await getGatewayAuthToken(options);\n      return withUserAgentSuffix(\n        {\n          Authorization: `Bearer ${auth.token}`,\n          'ai-gateway-protocol-version': AI_GATEWAY_PROTOCOL_VERSION,\n          [GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,\n          ...options.headers,\n        },\n        `ai-sdk/gateway/${VERSION}`,\n      );\n    } catch (error) {\n      throw GatewayAuthenticationError.createContextualError({\n        apiKeyProvided: false,\n        oidcTokenProvided: false,\n        statusCode: 401,\n        cause: error,\n      });\n    }\n  };\n\n  const createO11yHeaders = () => {\n    const deploymentId = loadOptionalSetting({\n      settingValue: undefined,\n      environmentVariableName: 'VERCEL_DEPLOYMENT_ID',\n    });\n    const environment = loadOptionalSetting({\n      settingValue: undefined,\n      environmentVariableName: 'VERCEL_ENV',\n    });\n    const region = loadOptionalSetting({\n      settingValue: undefined,\n      environmentVariableName: 'VERCEL_REGION',\n    });\n    const projectId = loadOptionalSetting({\n      settingValue: undefined,\n      environmentVariableName: 'VERCEL_PROJECT_ID',\n    });\n\n    return async () => {\n      const requestId = await getVercelRequestId();\n      return {\n        ...(deploymentId && { 'ai-o11y-deployment-id': deploymentId }),\n        ...(environment && { 'ai-o11y-environment': environment }),\n        ...(region && { 'ai-o11y-region': region }),\n        ...(requestId && { 'ai-o11y-request-id': requestId }),\n        ...(projectId && { 'ai-o11y-project-id': projectId }),\n      };\n    };\n  };\n\n  const createLanguageModel = (modelId: GatewayModelId) => {\n    return new GatewayLanguageModel(modelId, {\n      provider: 'gateway',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      o11yHeaders: createO11yHeaders(),\n    });\n  };\n\n  const getAvailableModels = async () => {\n    const now = options._internal?.currentDate?.().getTime() ?? Date.now();\n    if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {\n      lastFetchTime = now;\n\n      pendingMetadata = new GatewayFetchMetadata({\n        baseURL,\n        headers: getHeaders,\n        fetch: options.fetch,\n      })\n        .getAvailableModels()\n        .then(metadata => {\n          metadataCache = metadata;\n          return metadata;\n        })\n        .catch(async (error: unknown) => {\n          throw await asGatewayError(\n            error,\n            await parseAuthMethod(await getHeaders()),\n          );\n        });\n    }\n\n    return metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;\n  };\n\n  const getCredits = async () => {\n    return new GatewayFetchMetadata({\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    })\n      .getCredits()\n      .catch(async (error: unknown) => {\n        throw await asGatewayError(\n          error,\n          await parseAuthMethod(await getHeaders()),\n        );\n      });\n  };\n\n  const getSpendReport = async (params: GatewaySpendReportParams) => {\n    return new GatewaySpendReport({\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    })\n      .getSpendReport(params)\n      .catch(async (error: unknown) => {\n        throw await asGatewayError(\n          error,\n          await parseAuthMethod(await getHeaders()),\n        );\n      });\n  };\n\n  const getGenerationInfo = async (params: GatewayGenerationInfoParams) => {\n    return new GatewayGenerationInfoFetcher({\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n    })\n      .getGenerationInfo(params)\n      .catch(async (error: unknown) => {\n        throw await asGatewayError(\n          error,\n          await parseAuthMethod(await getHeaders()),\n        );\n      });\n  };\n\n  const provider = function (modelId: GatewayModelId) {\n    if (new.target) {\n      throw new Error(\n        'The Gateway Provider model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createLanguageModel(modelId);\n  };\n\n  provider.specificationVersion = 'v3' as const;\n  provider.getAvailableModels = getAvailableModels;\n  provider.getCredits = getCredits;\n  provider.getSpendReport = getSpendReport;\n  provider.getGenerationInfo = getGenerationInfo;\n  provider.imageModel = (modelId: GatewayImageModelId) => {\n    return new GatewayImageModel(modelId, {\n      provider: 'gateway',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      o11yHeaders: createO11yHeaders(),\n    });\n  };\n  provider.languageModel = createLanguageModel;\n  const createEmbeddingModel = (modelId: GatewayEmbeddingModelId) => {\n    return new GatewayEmbeddingModel(modelId, {\n      provider: 'gateway',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      o11yHeaders: createO11yHeaders(),\n    });\n  };\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.videoModel = (modelId: GatewayVideoModelId) => {\n    return new GatewayVideoModel(modelId, {\n      provider: 'gateway',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      o11yHeaders: createO11yHeaders(),\n    });\n  };\n  const createRerankingModel = (modelId: GatewayRerankingModelId) => {\n    return new GatewayRerankingModel(modelId, {\n      provider: 'gateway',\n      baseURL,\n      headers: getHeaders,\n      fetch: options.fetch,\n      o11yHeaders: createO11yHeaders(),\n    });\n  };\n  provider.rerankingModel = createRerankingModel;\n  provider.reranking = createRerankingModel;\n  provider.chat = provider.languageModel;\n  provider.embedding = provider.embeddingModel;\n  provider.image = provider.imageModel;\n  provider.video = provider.videoModel;\n  provider.tools = gatewayTools;\n  return provider;\n}\n\nexport const gateway = createGatewayProvider();\n\nexport async function getGatewayAuthToken(\n  options: GatewayProviderSettings,\n): Promise<{ token: string; authMethod: 'api-key' | 'oidc' }> {\n  const apiKey = loadOptionalSetting({\n    settingValue: options.apiKey,\n    environmentVariableName: 'AI_GATEWAY_API_KEY',\n  });\n\n  if (apiKey) {\n    return {\n      token: apiKey,\n      authMethod: 'api-key',\n    };\n  }\n\n  const oidcToken = await getVercelOidcToken();\n  return {\n    token: oidcToken,\n    authMethod: 'oidc',\n  };\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractApiCallResponse, GatewayError } from '.';\nimport { createGatewayErrorFromResponse } from './create-gateway-error';\nimport { GatewayTimeoutError } from './gateway-timeout-error';\n\n/**\n * Checks if an error is a timeout error from undici.\n * Only checks undici-specific error codes to avoid false positives.\n */\nfunction isTimeoutError(error: unknown): boolean {\n  if (!(error instanceof Error)) {\n    return false;\n  }\n\n  // Check for undici-specific timeout error codes\n  const errorCode = (error as any).code;\n  if (typeof errorCode === 'string') {\n    const undiciTimeoutCodes = [\n      'UND_ERR_HEADERS_TIMEOUT',\n      'UND_ERR_BODY_TIMEOUT',\n      'UND_ERR_CONNECT_TIMEOUT',\n    ];\n    return undiciTimeoutCodes.includes(errorCode);\n  }\n\n  return false;\n}\n\nexport async function asGatewayError(\n  error: unknown,\n  authMethod?: 'api-key' | 'oidc',\n) {\n  if (GatewayError.isInstance(error)) {\n    return error;\n  }\n\n  // Check if this is a timeout error (or has a timeout error in the cause chain)\n  if (isTimeoutError(error)) {\n    return GatewayTimeoutError.createTimeoutError({\n      originalMessage: error instanceof Error ? error.message : 'Unknown error',\n      cause: error,\n    });\n  }\n\n  // Check if this is an APICallError caused by a timeout\n  if (APICallError.isInstance(error)) {\n    // Check if the cause is a timeout error\n    if (error.cause && isTimeoutError(error.cause)) {\n      return GatewayTimeoutError.createTimeoutError({\n        originalMessage: error.message,\n        cause: error,\n      });\n    }\n\n    return await createGatewayErrorFromResponse({\n      response: extractApiCallResponse(error),\n      statusCode: error.statusCode ?? 500,\n      defaultMessage: 'Gateway request failed',\n      cause: error,\n      authMethod,\n    });\n  }\n\n  return await createGatewayErrorFromResponse({\n    response: {},\n    statusCode: 500,\n    defaultMessage:\n      error instanceof Error\n        ? `Gateway request failed: ${error.message}`\n        : 'Unknown Gateway error',\n    cause: error,\n    authMethod,\n  });\n}\n","import { z } from 'zod/v4';\nimport type { GatewayError } from './gateway-error';\nimport { GatewayAuthenticationError } from './gateway-authentication-error';\nimport { GatewayInvalidRequestError } from './gateway-invalid-request-error';\nimport { GatewayRateLimitError } from './gateway-rate-limit-error';\nimport {\n  GatewayModelNotFoundError,\n  modelNotFoundParamSchema,\n} from './gateway-model-not-found-error';\nimport { GatewayInternalServerError } from './gateway-internal-server-error';\nimport { GatewayResponseError } from './gateway-response-error';\nimport {\n  InferSchema,\n  lazySchema,\n  safeValidateTypes,\n  validateTypes,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\n\nexport async function createGatewayErrorFromResponse({\n  response,\n  statusCode,\n  defaultMessage = 'Gateway request failed',\n  cause,\n  authMethod,\n}: {\n  response: unknown;\n  statusCode: number;\n  defaultMessage?: string;\n  cause?: unknown;\n  authMethod?: 'api-key' | 'oidc';\n}): Promise<GatewayError> {\n  const parseResult = await safeValidateTypes({\n    value: response,\n    schema: gatewayErrorResponseSchema,\n  });\n\n  if (!parseResult.success) {\n    // Try to extract generationId even if validation failed\n    const rawGenerationId =\n      typeof response === 'object' &&\n      response !== null &&\n      'generationId' in response\n        ? (response as { generationId?: string }).generationId\n        : undefined;\n\n    return new GatewayResponseError({\n      message: `Invalid error response format: ${defaultMessage}`,\n      statusCode,\n      response,\n      validationError: parseResult.error,\n      cause,\n      generationId: rawGenerationId,\n    });\n  }\n\n  const validatedResponse: GatewayErrorResponse = parseResult.value;\n  const errorType = validatedResponse.error.type;\n  const message = validatedResponse.error.message;\n  const generationId = validatedResponse.generationId ?? undefined;\n\n  switch (errorType) {\n    case 'authentication_error':\n      return GatewayAuthenticationError.createContextualError({\n        apiKeyProvided: authMethod === 'api-key',\n        oidcTokenProvided: authMethod === 'oidc',\n        statusCode,\n        cause,\n        generationId,\n      });\n    case 'invalid_request_error':\n      return new GatewayInvalidRequestError({\n        message,\n        statusCode,\n        cause,\n        generationId,\n      });\n    case 'rate_limit_exceeded':\n      return new GatewayRateLimitError({\n        message,\n        statusCode,\n        cause,\n        generationId,\n      });\n    case 'model_not_found': {\n      const modelResult = await safeValidateTypes({\n        value: validatedResponse.error.param,\n        schema: modelNotFoundParamSchema,\n      });\n\n      return new GatewayModelNotFoundError({\n        message,\n        statusCode,\n        modelId: modelResult.success ? modelResult.value.modelId : undefined,\n        cause,\n        generationId,\n      });\n    }\n    case 'internal_server_error':\n      return new GatewayInternalServerError({\n        message,\n        statusCode,\n        cause,\n        generationId,\n      });\n    default:\n      return new GatewayInternalServerError({\n        message,\n        statusCode,\n        cause,\n        generationId,\n      });\n  }\n}\n\nconst gatewayErrorResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      error: z.object({\n        message: z.string(),\n        type: z.string().nullish(),\n        param: z.unknown().nullish(),\n        code: z.union([z.string(), z.number()]).nullish(),\n      }),\n      generationId: z.string().nullish(),\n    }),\n  ),\n);\n\nexport type GatewayErrorResponse = InferSchema<\n  typeof gatewayErrorResponseSchema\n>;\n","const marker = 'vercel.ai.gateway.error';\nconst symbol = Symbol.for(marker);\n\nexport abstract class GatewayError extends Error {\n  private readonly [symbol] = true; // used in isInstance\n\n  abstract readonly name: string;\n  abstract readonly type: string;\n  readonly statusCode: number;\n  readonly cause?: unknown;\n  readonly generationId?: string;\n\n  constructor({\n    message,\n    statusCode = 500,\n    cause,\n    generationId,\n  }: {\n    message: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  }) {\n    super(generationId ? `${message} [${generationId}]` : message);\n    this.statusCode = statusCode;\n    this.cause = cause;\n    this.generationId = generationId;\n  }\n\n  /**\n   * Checks if the given error is a Gateway Error.\n   * @param {unknown} error - The error to check.\n   * @returns {boolean} True if the error is a Gateway Error, false otherwise.\n   */\n  static isInstance(error: unknown): error is GatewayError {\n    return GatewayError.hasMarker(error);\n  }\n\n  static hasMarker(error: unknown): error is GatewayError {\n    return (\n      typeof error === 'object' &&\n      error !== null &&\n      symbol in error &&\n      (error as any)[symbol] === true\n    );\n  }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayAuthenticationError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Authentication failed - invalid API key or OIDC token\n */\nexport class GatewayAuthenticationError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'authentication_error';\n\n  constructor({\n    message = 'Authentication failed',\n    statusCode = 401,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n  }\n\n  static isInstance(error: unknown): error is GatewayAuthenticationError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n\n  /**\n   * Creates a contextual error message when authentication fails\n   */\n  static createContextualError({\n    apiKeyProvided,\n    oidcTokenProvided,\n    message = 'Authentication failed',\n    statusCode = 401,\n    cause,\n    generationId,\n  }: {\n    apiKeyProvided: boolean;\n    oidcTokenProvided: boolean;\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  }): GatewayAuthenticationError {\n    let contextualMessage: string;\n\n    if (apiKeyProvided) {\n      contextualMessage = `AI Gateway authentication failed: Invalid API key.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;\n    } else if (oidcTokenProvided) {\n      contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.\n\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.\n\nAlternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;\n    } else {\n      contextualMessage = `AI Gateway authentication failed: No authentication provided.\n\nOption 1 - API key:\nCreate an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.\n\nOption 2 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;\n    }\n\n    return new GatewayAuthenticationError({\n      message: contextualMessage,\n      statusCode,\n      cause,\n      generationId,\n    });\n  }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInvalidRequestError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Invalid request - missing headers, malformed data, etc.\n */\nexport class GatewayInvalidRequestError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'invalid_request_error';\n\n  constructor({\n    message = 'Invalid request',\n    statusCode = 400,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n  }\n\n  static isInstance(error: unknown): error is GatewayInvalidRequestError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayRateLimitError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Rate limit exceeded.\n */\nexport class GatewayRateLimitError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'rate_limit_exceeded';\n\n  constructor({\n    message = 'Rate limit exceeded',\n    statusCode = 429,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n  }\n\n  static isInstance(error: unknown): error is GatewayRateLimitError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n}\n","import { z } from 'zod/v4';\nimport { GatewayError } from './gateway-error';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\n\nconst name = 'GatewayModelNotFoundError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport const modelNotFoundParamSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      modelId: z.string(),\n    }),\n  ),\n);\n\n/**\n * Model not found or not available\n */\nexport class GatewayModelNotFoundError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'model_not_found';\n  readonly modelId?: string;\n\n  constructor({\n    message = 'Model not found',\n    statusCode = 404,\n    modelId,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    modelId?: string;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n    this.modelId = modelId;\n  }\n\n  static isInstance(error: unknown): error is GatewayModelNotFoundError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInternalServerError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Internal server error from the Gateway\n */\nexport class GatewayInternalServerError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'internal_server_error';\n\n  constructor({\n    message = 'Internal server error',\n    statusCode = 500,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n  }\n\n  static isInstance(error: unknown): error is GatewayInternalServerError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport { GatewayError } from './gateway-error';\n\nconst name = 'GatewayResponseError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Gateway response parsing error\n */\nexport class GatewayResponseError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'response_error';\n  readonly response?: unknown;\n  readonly validationError?: TypeValidationError;\n\n  constructor({\n    message = 'Invalid response from Gateway',\n    statusCode = 502,\n    response,\n    validationError,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    response?: unknown;\n    validationError?: TypeValidationError;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n    this.response = response;\n    this.validationError = validationError;\n  }\n\n  static isInstance(error: unknown): error is GatewayResponseError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayTimeoutError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Client request timed out before receiving a response.\n */\nexport class GatewayTimeoutError extends GatewayError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly name = name;\n  readonly type = 'timeout_error';\n\n  constructor({\n    message = 'Request timed out',\n    statusCode = 408,\n    cause,\n    generationId,\n  }: {\n    message?: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  } = {}) {\n    super({ message, statusCode, cause, generationId });\n  }\n\n  static isInstance(error: unknown): error is GatewayTimeoutError {\n    return GatewayError.hasMarker(error) && symbol in error;\n  }\n\n  /**\n   * Creates a helpful timeout error message with troubleshooting guidance\n   */\n  static createTimeoutError({\n    originalMessage,\n    statusCode = 408,\n    cause,\n    generationId,\n  }: {\n    originalMessage: string;\n    statusCode?: number;\n    cause?: unknown;\n    generationId?: string;\n  }): GatewayTimeoutError {\n    const message = `Gateway request timed out: ${originalMessage}\n\n    This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;\n\n    return new GatewayTimeoutError({\n      message,\n      statusCode,\n      cause,\n      generationId,\n    });\n  }\n}\n","import type { APICallError } from '@ai-sdk/provider';\n\nexport function extractApiCallResponse(error: APICallError): unknown {\n  if (error.data !== undefined) {\n    return error.data;\n  }\n  if (error.responseBody != null) {\n    try {\n      return JSON.parse(error.responseBody);\n    } catch {\n      return error.responseBody;\n    }\n  }\n  return {};\n}\n","import { z } from 'zod/v4';\nimport {\n  lazySchema,\n  safeValidateTypes,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\n\nexport const GATEWAY_AUTH_METHOD_HEADER = 'ai-gateway-auth-method' as const;\n\nexport async function parseAuthMethod(\n  headers: Record<string, string | undefined>,\n) {\n  const result = await safeValidateTypes({\n    value: headers[GATEWAY_AUTH_METHOD_HEADER],\n    schema: gatewayAuthMethodSchema,\n  });\n\n  return result.success ? result.value : undefined;\n}\n\nconst gatewayAuthMethodSchema = lazySchema(() =>\n  zodSchema(z.union([z.literal('api-key'), z.literal('oidc')])),\n);\n","import {\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  getFromApi,\n  lazySchema,\n  resolve,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\nimport type { GatewayLanguageModelEntry } from './gateway-model-entry';\n\ntype GatewayFetchMetadataConfig = GatewayConfig;\n\nexport interface GatewayFetchMetadataResponse {\n  models: GatewayLanguageModelEntry[];\n}\n\nexport interface GatewayCreditsResponse {\n  /** The remaining gateway credit balance available for API usage */\n  balance: string;\n  /** The total amount of gateway credits that have been consumed */\n  totalUsed: string;\n}\n\nexport class GatewayFetchMetadata {\n  constructor(private readonly config: GatewayFetchMetadataConfig) {}\n\n  async getAvailableModels(): Promise<GatewayFetchMetadataResponse> {\n    try {\n      const { value } = await getFromApi({\n        url: `${this.config.baseURL}/config`,\n        headers: await resolve(this.config.headers()),\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayAvailableModelsResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        fetch: this.config.fetch,\n      });\n\n      return value;\n    } catch (error) {\n      throw await asGatewayError(error);\n    }\n  }\n\n  async getCredits(): Promise<GatewayCreditsResponse> {\n    try {\n      const baseUrl = new URL(this.config.baseURL);\n\n      const { value } = await getFromApi({\n        url: `${baseUrl.origin}/v1/credits`,\n        headers: await resolve(this.config.headers()),\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayCreditsResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        fetch: this.config.fetch,\n      });\n\n      return value;\n    } catch (error) {\n      throw await asGatewayError(error);\n    }\n  }\n}\n\nconst gatewayAvailableModelsResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      models: z.array(\n        z.object({\n          id: z.string(),\n          name: z.string(),\n          description: z.string().nullish(),\n          pricing: z\n            .object({\n              input: z.string(),\n              output: z.string(),\n              input_cache_read: z.string().nullish(),\n              input_cache_write: z.string().nullish(),\n            })\n            .transform(\n              ({ input, output, input_cache_read, input_cache_write }) => ({\n                input,\n                output,\n                ...(input_cache_read\n                  ? { cachedInputTokens: input_cache_read }\n                  : {}),\n                ...(input_cache_write\n                  ? { cacheCreationInputTokens: input_cache_write }\n                  : {}),\n              }),\n            )\n            .nullish(),\n          specification: z.object({\n            specificationVersion: z.literal('v3'),\n            provider: z.string(),\n            modelId: z.string(),\n          }),\n          modelType: z\n            .enum(['embedding', 'image', 'language', 'video'])\n            .nullish(),\n        }),\n      ),\n    }),\n  ),\n);\n\nconst gatewayCreditsResponseSchema = lazySchema(() =>\n  zodSchema(\n    z\n      .object({\n        balance: z.string(),\n        total_used: z.string(),\n      })\n      .transform(({ balance, total_used }) => ({\n        balance,\n        totalUsed: total_used,\n      })),\n  ),\n);\n","import {\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  getFromApi,\n  lazySchema,\n  resolve,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewaySpendReportParams {\n  /** Start date in YYYY-MM-DD format (inclusive) */\n  startDate: string;\n  /** End date in YYYY-MM-DD format (inclusive) */\n  endDate: string;\n  /** Primary aggregation dimension. Defaults to 'day'. */\n  groupBy?: 'day' | 'user' | 'model' | 'tag' | 'provider' | 'credential_type';\n  /** Time granularity when groupBy is 'day'. */\n  datePart?: 'day' | 'hour';\n  /** Filter to a specific user's spend. */\n  userId?: string;\n  /** Filter to a specific model (e.g. 'anthropic/claude-sonnet-4.5'). */\n  model?: string;\n  /** Filter to a specific provider (e.g. 'anthropic'). */\n  provider?: string;\n  /** Filter to BYOK or system credentials. */\n  credentialType?: 'byok' | 'system';\n  /** Filter to requests with these tags. */\n  tags?: string[];\n}\n\nexport interface GatewaySpendReportRow {\n  /** Date string (present when groupBy is 'day') */\n  day?: string;\n  /** Hour timestamp (present when groupBy is 'day' and datePart is 'hour') */\n  hour?: string;\n  /** User identifier (present when groupBy is 'user') */\n  user?: string;\n  /** Model identifier (present when groupBy is 'model') */\n  model?: string;\n  /** Tag value (present when groupBy is 'tag') */\n  tag?: string;\n  /** Provider name (present when groupBy is 'provider') */\n  provider?: string;\n  /** Credential type (present when groupBy is 'credential_type') */\n  credentialType?: 'byok' | 'system';\n\n  /** Total cost in USD */\n  totalCost: number;\n  /** Market cost in USD */\n  marketCost?: number;\n  /** Number of input tokens */\n  inputTokens?: number;\n  /** Number of output tokens */\n  outputTokens?: number;\n  /** Number of cached input tokens */\n  cachedInputTokens?: number;\n  /** Number of cache creation input tokens */\n  cacheCreationInputTokens?: number;\n  /** Number of reasoning tokens */\n  reasoningTokens?: number;\n  /** Number of requests */\n  requestCount?: number;\n}\n\nexport interface GatewaySpendReportResponse {\n  results: GatewaySpendReportRow[];\n}\n\nexport class GatewaySpendReport {\n  constructor(private readonly config: GatewayConfig) {}\n\n  async getSpendReport(\n    params: GatewaySpendReportParams,\n  ): Promise<GatewaySpendReportResponse> {\n    try {\n      const baseUrl = new URL(this.config.baseURL);\n\n      const searchParams = new URLSearchParams();\n      searchParams.set('start_date', params.startDate);\n      searchParams.set('end_date', params.endDate);\n\n      if (params.groupBy) {\n        searchParams.set('group_by', params.groupBy);\n      }\n      if (params.datePart) {\n        searchParams.set('date_part', params.datePart);\n      }\n      if (params.userId) {\n        searchParams.set('user_id', params.userId);\n      }\n      if (params.model) {\n        searchParams.set('model', params.model);\n      }\n      if (params.provider) {\n        searchParams.set('provider', params.provider);\n      }\n      if (params.credentialType) {\n        searchParams.set('credential_type', params.credentialType);\n      }\n      if (params.tags && params.tags.length > 0) {\n        searchParams.set('tags', params.tags.join(','));\n      }\n\n      const { value } = await getFromApi({\n        url: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,\n        headers: await resolve(this.config.headers()),\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewaySpendReportResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        fetch: this.config.fetch,\n      });\n\n      return value;\n    } catch (error) {\n      throw await asGatewayError(error);\n    }\n  }\n}\n\nconst gatewaySpendReportResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      results: z.array(\n        z\n          .object({\n            day: z.string().optional(),\n            hour: z.string().optional(),\n            user: z.string().optional(),\n            model: z.string().optional(),\n            tag: z.string().optional(),\n            provider: z.string().optional(),\n            credential_type: z.enum(['byok', 'system']).optional(),\n            total_cost: z.number(),\n            market_cost: z.number().optional(),\n            input_tokens: z.number().optional(),\n            output_tokens: z.number().optional(),\n            cached_input_tokens: z.number().optional(),\n            cache_creation_input_tokens: z.number().optional(),\n            reasoning_tokens: z.number().optional(),\n            request_count: z.number().optional(),\n          })\n          .transform(\n            ({\n              credential_type,\n              total_cost,\n              market_cost,\n              input_tokens,\n              output_tokens,\n              cached_input_tokens,\n              cache_creation_input_tokens,\n              reasoning_tokens,\n              request_count,\n              ...rest\n            }) => ({\n              ...rest,\n              ...(credential_type !== undefined\n                ? { credentialType: credential_type }\n                : {}),\n              totalCost: total_cost,\n              ...(market_cost !== undefined ? { marketCost: market_cost } : {}),\n              ...(input_tokens !== undefined\n                ? { inputTokens: input_tokens }\n                : {}),\n              ...(output_tokens !== undefined\n                ? { outputTokens: output_tokens }\n                : {}),\n              ...(cached_input_tokens !== undefined\n                ? { cachedInputTokens: cached_input_tokens }\n                : {}),\n              ...(cache_creation_input_tokens !== undefined\n                ? { cacheCreationInputTokens: cache_creation_input_tokens }\n                : {}),\n              ...(reasoning_tokens !== undefined\n                ? { reasoningTokens: reasoning_tokens }\n                : {}),\n              ...(request_count !== undefined\n                ? { requestCount: request_count }\n                : {}),\n            }),\n          ),\n      ),\n    }),\n  ),\n);\n","import {\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  getFromApi,\n  lazySchema,\n  resolve,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewayGenerationInfoParams {\n  /** The generation ID to look up (format: gen_<ulid>) */\n  id: string;\n}\n\nexport interface GatewayGenerationInfo {\n  /** The generation ID */\n  id: string;\n  /** Total cost in USD */\n  totalCost: number;\n  /** Upstream inference cost in USD (BYOK only) */\n  upstreamInferenceCost: number;\n  /** Usage cost in USD (same as totalCost) */\n  usage: number;\n  /** ISO 8601 timestamp when the generation was created */\n  createdAt: string;\n  /** Model identifier */\n  model: string;\n  /** Whether BYOK credentials were used */\n  isByok: boolean;\n  /** Provider that served this generation */\n  providerName: string;\n  /** Whether streaming was used */\n  streamed: boolean;\n  /** Finish reason (e.g. 'stop') */\n  finishReason: string;\n  /** Time to first token in milliseconds */\n  latency: number;\n  /** Total generation time in milliseconds */\n  generationTime: number;\n  /** Number of prompt tokens */\n  promptTokens: number;\n  /** Number of completion tokens */\n  completionTokens: number;\n  /** Reasoning tokens used */\n  reasoningTokens: number;\n  /** Cached tokens used */\n  cachedTokens: number;\n  /** Cache creation input tokens */\n  cacheCreationTokens: number;\n  /** Billable web search calls */\n  billableWebSearchCalls: number;\n}\n\nexport class GatewayGenerationInfoFetcher {\n  constructor(private readonly config: GatewayConfig) {}\n\n  async getGenerationInfo(\n    params: GatewayGenerationInfoParams,\n  ): Promise<GatewayGenerationInfo> {\n    try {\n      const baseUrl = new URL(this.config.baseURL);\n\n      const { value } = await getFromApi({\n        url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,\n        headers: await resolve(this.config.headers()),\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayGenerationInfoResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        fetch: this.config.fetch,\n      });\n\n      return value;\n    } catch (error) {\n      throw await asGatewayError(error);\n    }\n  }\n}\n\nconst gatewayGenerationInfoResponseSchema = lazySchema(() =>\n  zodSchema(\n    z\n      .object({\n        data: z\n          .object({\n            id: z.string(),\n            total_cost: z.number(),\n            upstream_inference_cost: z.number(),\n            usage: z.number(),\n            created_at: z.string(),\n            model: z.string(),\n            is_byok: z.boolean(),\n            provider_name: z.string(),\n            streamed: z.boolean(),\n            finish_reason: z.string(),\n            latency: z.number(),\n            generation_time: z.number(),\n            native_tokens_prompt: z.number(),\n            native_tokens_completion: z.number(),\n            native_tokens_reasoning: z.number(),\n            native_tokens_cached: z.number(),\n            native_tokens_cache_creation: z.number(),\n            billable_web_search_calls: z.number(),\n          })\n          .transform(\n            ({\n              total_cost,\n              upstream_inference_cost,\n              created_at,\n              is_byok,\n              provider_name,\n              finish_reason,\n              generation_time,\n              native_tokens_prompt,\n              native_tokens_completion,\n              native_tokens_reasoning,\n              native_tokens_cached,\n              native_tokens_cache_creation,\n              billable_web_search_calls,\n              ...rest\n            }) => ({\n              ...rest,\n              totalCost: total_cost,\n              upstreamInferenceCost: upstream_inference_cost,\n              createdAt: created_at,\n              isByok: is_byok,\n              providerName: provider_name,\n              finishReason: finish_reason,\n              generationTime: generation_time,\n              promptTokens: native_tokens_prompt,\n              completionTokens: native_tokens_completion,\n              reasoningTokens: native_tokens_reasoning,\n              cachedTokens: native_tokens_cached,\n              cacheCreationTokens: native_tokens_cache_creation,\n              billableWebSearchCalls: billable_web_search_calls,\n            }),\n          ),\n      })\n      .transform(({ data }) => data),\n  ),\n);\n","import type {\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  SharedV3Warning,\n  LanguageModelV3FilePart,\n  LanguageModelV3StreamPart,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  postJsonToApi,\n  resolve,\n  type ParseResult,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\ntype GatewayChatConfig = GatewayConfig & {\n  provider: string;\n  o11yHeaders: Resolvable<Record<string, string>>;\n};\n\nexport class GatewayLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly supportedUrls = { '*/*': [/.*/] };\n\n  constructor(\n    readonly modelId: GatewayModelId,\n    private readonly config: GatewayChatConfig,\n  ) {}\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  private async getArgs(options: LanguageModelV3CallOptions) {\n    const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;\n\n    return {\n      args: this.maybeEncodeFileParts(optionsWithoutSignal),\n      warnings: [],\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const { args, warnings } = await this.getArgs(options);\n    const { abortSignal } = options;\n\n    const resolvedHeaders = await resolve(this.config.headers());\n\n    try {\n      const {\n        responseHeaders,\n        value: responseBody,\n        rawValue: rawResponse,\n      } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          options.headers,\n          this.getModelConfigHeaders(this.modelId, false),\n          await resolve(this.config.o11yHeaders),\n        ),\n        body: args,\n        successfulResponseHandler: createJsonResponseHandler(z.any()),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        ...responseBody,\n        request: { body: args },\n        response: { headers: responseHeaders, body: rawResponse },\n        warnings,\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const { args, warnings } = await this.getArgs(options);\n    const { abortSignal } = options;\n\n    const resolvedHeaders = await resolve(this.config.headers());\n\n    try {\n      const { value: response, responseHeaders } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          options.headers,\n          this.getModelConfigHeaders(this.modelId, true),\n          await resolve(this.config.o11yHeaders),\n        ),\n        body: args,\n        successfulResponseHandler: createEventSourceResponseHandler(z.any()),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        stream: response.pipeThrough(\n          new TransformStream<\n            ParseResult<LanguageModelV3StreamPart>,\n            LanguageModelV3StreamPart\n          >({\n            start(controller) {\n              if (warnings.length > 0) {\n                controller.enqueue({ type: 'stream-start', warnings });\n              }\n            },\n            transform(chunk, controller) {\n              if (chunk.success) {\n                const streamPart = chunk.value;\n\n                // Handle raw chunks: if this is a raw chunk from the gateway API,\n                // only emit it if includeRawChunks is true\n                if (streamPart.type === 'raw' && !options.includeRawChunks) {\n                  return; // Skip raw chunks if not requested\n                }\n\n                if (\n                  streamPart.type === 'response-metadata' &&\n                  streamPart.timestamp &&\n                  typeof streamPart.timestamp === 'string'\n                ) {\n                  streamPart.timestamp = new Date(streamPart.timestamp);\n                }\n\n                controller.enqueue(streamPart);\n              } else {\n                controller.error(\n                  (chunk as { success: false; error: unknown }).error,\n                );\n              }\n            },\n          }),\n        ),\n        request: { body: args },\n        response: { headers: responseHeaders },\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  private isFilePart(part: unknown) {\n    return (\n      part && typeof part === 'object' && 'type' in part && part.type === 'file'\n    );\n  }\n\n  /**\n   * Encodes file parts in the prompt to base64. Mutates the passed options\n   * instance directly to avoid copying the file data.\n   * @param options - The options to encode.\n   * @returns The options with the file parts encoded.\n   */\n  private maybeEncodeFileParts(options: LanguageModelV3CallOptions) {\n    for (const message of options.prompt) {\n      for (const part of message.content) {\n        if (this.isFilePart(part)) {\n          const filePart = part as LanguageModelV3FilePart;\n          // If the file part is a URL it will get cleanly converted to a string.\n          // If it's a binary file attachment we convert it to a data url.\n          // In either case, server-side we should only ever see URLs as strings.\n          if (filePart.data instanceof Uint8Array) {\n            const buffer = Uint8Array.from(filePart.data);\n            const base64Data = Buffer.from(buffer).toString('base64');\n            filePart.data = new URL(\n              `data:${filePart.mediaType || 'application/octet-stream'};base64,${base64Data}`,\n            );\n          }\n        }\n      }\n    }\n    return options;\n  }\n\n  private getUrl() {\n    return `${this.config.baseURL}/language-model`;\n  }\n\n  private getModelConfigHeaders(modelId: string, streaming: boolean) {\n    return {\n      'ai-language-model-specification-version': '3',\n      'ai-language-model-id': modelId,\n      'ai-language-model-streaming': String(streaming),\n    };\n  }\n}\n","import type {\n  EmbeddingModelV3,\n  SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  lazySchema,\n  postJsonToApi,\n  resolve,\n  zodSchema,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\nimport type { GatewayConfig } from './gateway-config';\n\nexport class GatewayEmbeddingModel implements EmbeddingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly maxEmbeddingsPerCall = 2048;\n  readonly supportsParallelCalls = true;\n\n  constructor(\n    readonly modelId: string,\n    private readonly config: GatewayConfig & {\n      provider: string;\n      o11yHeaders: Resolvable<Record<string, string>>;\n    },\n  ) {}\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<\n    Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>\n  > {\n    const resolvedHeaders = await resolve(this.config.headers());\n    try {\n      const {\n        responseHeaders,\n        value: responseBody,\n        rawValue,\n      } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          headers ?? {},\n          this.getModelConfigHeaders(),\n          await resolve(this.config.o11yHeaders),\n        ),\n        body: {\n          values,\n          ...(providerOptions ? { providerOptions } : {}),\n        },\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayEmbeddingResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        embeddings: responseBody.embeddings,\n        usage: responseBody.usage ?? undefined,\n        providerMetadata:\n          responseBody.providerMetadata as unknown as SharedV3ProviderMetadata,\n        response: { headers: responseHeaders, body: rawValue },\n        warnings: [],\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  private getUrl() {\n    return `${this.config.baseURL}/embedding-model`;\n  }\n\n  private getModelConfigHeaders() {\n    return {\n      'ai-embedding-model-specification-version': '3',\n      'ai-model-id': this.modelId,\n    };\n  }\n}\n\nconst gatewayEmbeddingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      embeddings: z.array(z.array(z.number())),\n      usage: z.object({ tokens: z.number() }).nullish(),\n      providerMetadata: z\n        .record(z.string(), z.record(z.string(), z.unknown()))\n        .optional(),\n    }),\n  ),\n);\n","import type {\n  ImageModelV3,\n  ImageModelV3File,\n  ImageModelV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertUint8ArrayToBase64,\n  createJsonResponseHandler,\n  createJsonErrorResponseHandler,\n  postJsonToApi,\n  resolve,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\nexport class GatewayImageModel implements ImageModelV3 {\n  readonly specificationVersion = 'v3' as const;\n  // Set a very large number to prevent client-side splitting of requests\n  readonly maxImagesPerCall = Number.MAX_SAFE_INTEGER;\n\n  constructor(\n    readonly modelId: string,\n    private readonly config: GatewayConfig & {\n      provider: string;\n      o11yHeaders: Resolvable<Record<string, string>>;\n    },\n  ) {}\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    files,\n    mask,\n    providerOptions,\n    headers,\n    abortSignal,\n  }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV3['doGenerate']>>\n  > {\n    const resolvedHeaders = await resolve(this.config.headers());\n    try {\n      const {\n        responseHeaders,\n        value: responseBody,\n        rawValue,\n      } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          headers ?? {},\n          this.getModelConfigHeaders(),\n          await resolve(this.config.o11yHeaders),\n        ),\n        body: {\n          prompt,\n          n,\n          ...(size && { size }),\n          ...(aspectRatio && { aspectRatio }),\n          ...(seed && { seed }),\n          ...(providerOptions && { providerOptions }),\n          ...(files && {\n            files: files.map(file => maybeEncodeImageFile(file)),\n          }),\n          ...(mask && { mask: maybeEncodeImageFile(mask) }),\n        },\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayImageResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        images: responseBody.images, // Always base64 strings from server\n        warnings: responseBody.warnings ?? [],\n        providerMetadata:\n          responseBody.providerMetadata as ImageModelV3ProviderMetadata,\n        response: {\n          timestamp: new Date(),\n          modelId: this.modelId,\n          headers: responseHeaders,\n        },\n        ...(responseBody.usage != null && {\n          usage: {\n            inputTokens: responseBody.usage.inputTokens ?? undefined,\n            outputTokens: responseBody.usage.outputTokens ?? undefined,\n            totalTokens: responseBody.usage.totalTokens ?? undefined,\n          },\n        }),\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  private getUrl() {\n    return `${this.config.baseURL}/image-model`;\n  }\n\n  private getModelConfigHeaders() {\n    return {\n      'ai-image-model-specification-version': '3',\n      'ai-model-id': this.modelId,\n    };\n  }\n}\n\nfunction maybeEncodeImageFile(file: ImageModelV3File) {\n  if (file.type === 'file' && file.data instanceof Uint8Array) {\n    return {\n      ...file,\n      data: convertUint8ArrayToBase64(file.data),\n    };\n  }\n  return file;\n}\n\nconst providerMetadataEntrySchema = z\n  .object({\n    images: z.array(z.unknown()).optional(),\n  })\n  .catchall(z.unknown());\n\nconst gatewayImageWarningSchema = z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('unsupported'),\n    feature: z.string(),\n    details: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('compatibility'),\n    feature: z.string(),\n    details: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('other'),\n    message: z.string(),\n  }),\n]);\n\nconst gatewayImageUsageSchema = z.object({\n  inputTokens: z.number().nullish(),\n  outputTokens: z.number().nullish(),\n  totalTokens: z.number().nullish(),\n});\n\nconst gatewayImageResponseSchema = z.object({\n  images: z.array(z.string()), // Always base64 strings over the wire\n  warnings: z.array(gatewayImageWarningSchema).optional(),\n  providerMetadata: z\n    .record(z.string(), providerMetadataEntrySchema)\n    .optional(),\n  usage: gatewayImageUsageSchema.optional(),\n});\n","import type {\n  Experimental_VideoModelV3,\n  Experimental_VideoModelV3CallOptions,\n  Experimental_VideoModelV3File,\n  Experimental_VideoModelV3VideoData,\n  SharedV3ProviderMetadata,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport { APICallError } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertUint8ArrayToBase64,\n  createJsonErrorResponseHandler,\n  parseJsonEventStream,\n  postJsonToApi,\n  resolve,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\nexport class GatewayVideoModel implements Experimental_VideoModelV3 {\n  readonly specificationVersion = 'v3' as const;\n  // Set a very large number to prevent client-side splitting of requests\n  readonly maxVideosPerCall = Number.MAX_SAFE_INTEGER;\n\n  constructor(\n    readonly modelId: string,\n    private readonly config: GatewayConfig & {\n      provider: string;\n      o11yHeaders: Resolvable<Record<string, string>>;\n    },\n  ) {}\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  async doGenerate({\n    prompt,\n    n,\n    aspectRatio,\n    resolution,\n    duration,\n    fps,\n    seed,\n    image,\n    providerOptions,\n    headers,\n    abortSignal,\n  }: Experimental_VideoModelV3CallOptions): Promise<{\n    videos: Array<Experimental_VideoModelV3VideoData>;\n    warnings: Array<SharedV3Warning>;\n    providerMetadata?: SharedV3ProviderMetadata;\n    response: {\n      timestamp: Date;\n      modelId: string;\n      headers: Record<string, string> | undefined;\n    };\n  }> {\n    const resolvedHeaders = await resolve(this.config.headers());\n    try {\n      const { responseHeaders, value: responseBody } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          headers ?? {},\n          this.getModelConfigHeaders(),\n          await resolve(this.config.o11yHeaders),\n          { accept: 'text/event-stream' },\n        ),\n        body: {\n          prompt,\n          n,\n          ...(aspectRatio && { aspectRatio }),\n          ...(resolution && { resolution }),\n          ...(duration && { duration }),\n          ...(fps && { fps }),\n          ...(seed && { seed }),\n          ...(providerOptions && { providerOptions }),\n          ...(image && { image: maybeEncodeVideoFile(image) }),\n        },\n        successfulResponseHandler: async ({\n          response,\n          url,\n          requestBodyValues,\n        }: {\n          url: string;\n          requestBodyValues: unknown;\n          response: Response;\n        }) => {\n          if (response.body == null) {\n            throw new APICallError({\n              message: 'SSE response body is empty',\n              url,\n              requestBodyValues,\n              statusCode: response.status,\n            });\n          }\n\n          const eventStream = parseJsonEventStream({\n            stream: response.body,\n            schema: gatewayVideoEventSchema,\n          });\n\n          const reader = eventStream.getReader();\n          const { done, value: parseResult } = await reader.read();\n          reader.releaseLock();\n\n          if (done || !parseResult) {\n            throw new APICallError({\n              message: 'SSE stream ended without a data event',\n              url,\n              requestBodyValues,\n              statusCode: response.status,\n            });\n          }\n\n          if (!parseResult.success) {\n            throw new APICallError({\n              message: 'Failed to parse video SSE event',\n              cause: parseResult.error,\n              url,\n              requestBodyValues,\n              statusCode: response.status,\n            });\n          }\n\n          const event = parseResult.value;\n\n          if (event.type === 'error') {\n            throw new APICallError({\n              message: event.message,\n              statusCode: event.statusCode,\n              url,\n              requestBodyValues,\n              responseHeaders: Object.fromEntries([...response.headers]),\n              responseBody: JSON.stringify(event),\n              data: {\n                error: {\n                  message: event.message,\n                  type: event.errorType,\n                  param: event.param,\n                },\n              },\n            });\n          }\n\n          // event.type === 'result'\n          return {\n            value: {\n              videos: event.videos,\n              warnings: event.warnings,\n              providerMetadata: event.providerMetadata,\n            },\n            responseHeaders: Object.fromEntries([...response.headers]),\n          };\n        },\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        videos: responseBody.videos,\n        warnings: responseBody.warnings ?? [],\n        providerMetadata:\n          responseBody.providerMetadata as SharedV3ProviderMetadata,\n        response: {\n          timestamp: new Date(),\n          modelId: this.modelId,\n          headers: responseHeaders,\n        },\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  private getUrl() {\n    return `${this.config.baseURL}/video-model`;\n  }\n\n  private getModelConfigHeaders() {\n    return {\n      'ai-video-model-specification-version': '3',\n      'ai-model-id': this.modelId,\n    };\n  }\n}\n\nfunction maybeEncodeVideoFile(file: Experimental_VideoModelV3File) {\n  if (file.type === 'file' && file.data instanceof Uint8Array) {\n    return {\n      ...file,\n      data: convertUint8ArrayToBase64(file.data),\n    };\n  }\n  return file;\n}\n\nconst providerMetadataEntrySchema = z\n  .object({\n    videos: z.array(z.unknown()).optional(),\n  })\n  .catchall(z.unknown());\n\nconst gatewayVideoDataSchema = z.union([\n  z.object({\n    type: z.literal('url'),\n    url: z.string(),\n    mediaType: z.string(),\n  }),\n  z.object({\n    type: z.literal('base64'),\n    data: z.string(),\n    mediaType: z.string(),\n  }),\n]);\n\nconst gatewayVideoWarningSchema = z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('unsupported'),\n    feature: z.string(),\n    details: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('compatibility'),\n    feature: z.string(),\n    details: z.string().optional(),\n  }),\n  z.object({\n    type: z.literal('other'),\n    message: z.string(),\n  }),\n]);\n\nconst gatewayVideoEventSchema = z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('result'),\n    videos: z.array(gatewayVideoDataSchema),\n    warnings: z.array(gatewayVideoWarningSchema).optional(),\n    providerMetadata: z\n      .record(z.string(), providerMetadataEntrySchema)\n      .optional(),\n  }),\n  z.object({\n    type: z.literal('error'),\n    message: z.string(),\n    errorType: z.string(),\n    statusCode: z.number(),\n    param: z.unknown().nullable(),\n  }),\n]);\n","import type {\n  RerankingModelV3,\n  SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  lazySchema,\n  postJsonToApi,\n  resolve,\n  zodSchema,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\nimport type { GatewayConfig } from './gateway-config';\n\nexport class GatewayRerankingModel implements RerankingModelV3 {\n  readonly specificationVersion = 'v3';\n\n  constructor(\n    readonly modelId: string,\n    private readonly config: GatewayConfig & {\n      provider: string;\n      o11yHeaders: Resolvable<Record<string, string>>;\n    },\n  ) {}\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  async doRerank({\n    documents,\n    query,\n    topN,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<RerankingModelV3['doRerank']>[0]): Promise<\n    Awaited<ReturnType<RerankingModelV3['doRerank']>>\n  > {\n    const resolvedHeaders = await resolve(this.config.headers());\n    try {\n      const {\n        responseHeaders,\n        value: responseBody,\n        rawValue,\n      } = await postJsonToApi({\n        url: this.getUrl(),\n        headers: combineHeaders(\n          resolvedHeaders,\n          headers ?? {},\n          this.getModelConfigHeaders(),\n          await resolve(this.config.o11yHeaders),\n        ),\n        body: {\n          documents,\n          query,\n          ...(topN != null ? { topN } : {}),\n          ...(providerOptions ? { providerOptions } : {}),\n        },\n        successfulResponseHandler: createJsonResponseHandler(\n          gatewayRerankingResponseSchema,\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: z.any(),\n          errorToMessage: data => data,\n        }),\n        ...(abortSignal && { abortSignal }),\n        fetch: this.config.fetch,\n      });\n\n      return {\n        ranking: responseBody.ranking,\n        providerMetadata:\n          responseBody.providerMetadata as unknown as SharedV3ProviderMetadata,\n        response: { headers: responseHeaders, body: rawValue },\n        warnings: [],\n      };\n    } catch (error) {\n      throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n    }\n  }\n\n  private getUrl() {\n    return `${this.config.baseURL}/reranking-model`;\n  }\n\n  private getModelConfigHeaders() {\n    return {\n      'ai-reranking-model-specification-version': '3',\n      'ai-model-id': this.modelId,\n    };\n  }\n}\n\nconst gatewayRerankingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      ranking: z.array(\n        z.object({\n          index: z.number(),\n          relevanceScore: z.number(),\n        }),\n      ),\n      providerMetadata: z\n        .record(z.string(), z.record(z.string(), z.unknown()))\n        .optional(),\n    }),\n  ),\n);\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface ParallelSearchSourcePolicy {\n  /**\n   * List of domains to include in search results.\n   * Example: ['wikipedia.org', 'nature.com']\n   */\n  includeDomains?: string[];\n\n  /**\n   * List of domains to exclude from search results.\n   * Example: ['reddit.com', 'twitter.com']\n   */\n  excludeDomains?: string[];\n\n  /**\n   * Only include results published after this date (ISO 8601 format).\n   * Example: '2024-01-01'\n   */\n  afterDate?: string;\n}\n\nexport interface ParallelSearchExcerpts {\n  /**\n   * Maximum characters per result.\n   */\n  maxCharsPerResult?: number;\n\n  /**\n   * Maximum total characters across all results.\n   */\n  maxCharsTotal?: number;\n}\n\nexport interface ParallelSearchFetchPolicy {\n  /**\n   * Maximum age in seconds for cached content.\n   * Set to 0 to always fetch fresh content.\n   */\n  maxAgeSeconds?: number;\n}\n\nexport interface ParallelSearchConfig {\n  /**\n   * Mode preset for different use cases:\n   * - \"one-shot\": Comprehensive results with longer excerpts for single-response answers (default)\n   * - \"agentic\": Concise, token-efficient results for multi-step agentic workflows\n   */\n  mode?: 'one-shot' | 'agentic';\n\n  /**\n   * Default maximum number of results to return (1-20).\n   * Defaults to 10 if not specified.\n   */\n  maxResults?: number;\n\n  /**\n   * Default source policy for controlling which domains to include/exclude.\n   */\n  sourcePolicy?: ParallelSearchSourcePolicy;\n\n  /**\n   * Default excerpt configuration for controlling result length.\n   */\n  excerpts?: ParallelSearchExcerpts;\n\n  /**\n   * Default fetch policy for controlling content freshness.\n   */\n  fetchPolicy?: ParallelSearchFetchPolicy;\n}\n\nexport interface ParallelSearchResult {\n  /** URL of the search result */\n  url: string;\n  /** Title of the search result */\n  title: string;\n  /** Extracted text excerpt/content from the page */\n  excerpt: string;\n  /** Publication date of the content (may be null) */\n  publishDate?: string | null;\n  /** Relevance score for the result */\n  relevanceScore?: number;\n}\n\nexport interface ParallelSearchResponse {\n  /** Unique identifier for this search request */\n  searchId: string;\n  /** Array of search results */\n  results: ParallelSearchResult[];\n}\n\nexport interface ParallelSearchError {\n  /** Error type */\n  error:\n    | 'api_error'\n    | 'rate_limit'\n    | 'timeout'\n    | 'invalid_input'\n    | 'configuration_error'\n    | 'unknown';\n  /** HTTP status code if applicable */\n  statusCode?: number;\n  /** Human-readable error message */\n  message: string;\n}\n\nexport interface ParallelSearchInput {\n  /**\n   * Natural-language description of the web research goal.\n   * Include source or freshness guidance and broader context from the task.\n   * Maximum 5000 characters.\n   */\n  objective: string;\n\n  /**\n   * Optional search queries to supplement the objective.\n   * Maximum 200 characters per query.\n   */\n  search_queries?: string[];\n\n  /**\n   * Mode preset for different use cases:\n   * - \"one-shot\": Comprehensive results with longer excerpts\n   * - \"agentic\": Concise, token-efficient results for multi-step workflows\n   */\n  mode?: 'one-shot' | 'agentic';\n\n  /**\n   * Maximum number of results to return (1-20).\n   * Defaults to 10 if not specified.\n   */\n  max_results?: number;\n\n  /**\n   * Source policy for controlling which domains to include/exclude.\n   */\n  source_policy?: {\n    include_domains?: string[];\n    exclude_domains?: string[];\n    after_date?: string;\n  };\n\n  /**\n   * Excerpt configuration for controlling result length.\n   */\n  excerpts?: {\n    max_chars_per_result?: number;\n    max_chars_total?: number;\n  };\n\n  /**\n   * Fetch policy for controlling content freshness.\n   */\n  fetch_policy?: {\n    max_age_seconds?: number;\n  };\n}\n\nexport type ParallelSearchOutput = ParallelSearchResponse | ParallelSearchError;\n\nconst parallelSearchInputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      objective: z\n        .string()\n        .describe(\n          'Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters.',\n        ),\n\n      search_queries: z\n        .array(z.string())\n        .optional()\n        .describe(\n          'Optional search queries to supplement the objective. Maximum 200 characters per query.',\n        ),\n\n      mode: z\n        .enum(['one-shot', 'agentic'])\n        .optional()\n        .describe(\n          'Mode preset: \"one-shot\" for comprehensive results with longer excerpts (default), \"agentic\" for concise, token-efficient results for multi-step workflows.',\n        ),\n\n      max_results: z\n        .number()\n        .optional()\n        .describe(\n          'Maximum number of results to return (1-20). Defaults to 10 if not specified.',\n        ),\n\n      source_policy: z\n        .object({\n          include_domains: z\n            .array(z.string())\n            .optional()\n            .describe('List of domains to include in search results.'),\n          exclude_domains: z\n            .array(z.string())\n            .optional()\n            .describe('List of domains to exclude from search results.'),\n          after_date: z\n            .string()\n            .optional()\n            .describe(\n              'Only include results published after this date (ISO 8601 format).',\n            ),\n        })\n        .optional()\n        .describe(\n          'Source policy for controlling which domains to include/exclude and freshness.',\n        ),\n\n      excerpts: z\n        .object({\n          max_chars_per_result: z\n            .number()\n            .optional()\n            .describe('Maximum characters per result.'),\n          max_chars_total: z\n            .number()\n            .optional()\n            .describe('Maximum total characters across all results.'),\n        })\n        .optional()\n        .describe('Excerpt configuration for controlling result length.'),\n\n      fetch_policy: z\n        .object({\n          max_age_seconds: z\n            .number()\n            .optional()\n            .describe(\n              'Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.',\n            ),\n        })\n        .optional()\n        .describe('Fetch policy for controlling content freshness.'),\n    }),\n  ),\n);\n\nconst parallelSearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.union([\n      // Success response\n      z.object({\n        searchId: z.string(),\n        results: z.array(\n          z.object({\n            url: z.string(),\n            title: z.string(),\n            excerpt: z.string(),\n            publishDate: z.string().nullable().optional(),\n            relevanceScore: z.number().optional(),\n          }),\n        ),\n      }),\n      // Error response\n      z.object({\n        error: z.enum([\n          'api_error',\n          'rate_limit',\n          'timeout',\n          'invalid_input',\n          'configuration_error',\n          'unknown',\n        ]),\n        statusCode: z.number().optional(),\n        message: z.string(),\n      }),\n    ]),\n  ),\n);\n\nexport const parallelSearchToolFactory =\n  createProviderToolFactoryWithOutputSchema<\n    ParallelSearchInput,\n    ParallelSearchOutput,\n    ParallelSearchConfig\n  >({\n    id: 'gateway.parallel_search',\n    inputSchema: parallelSearchInputSchema,\n    outputSchema: parallelSearchOutputSchema,\n  });\n\nexport const parallelSearch = (\n  config: ParallelSearchConfig = {},\n): ReturnType<typeof parallelSearchToolFactory> =>\n  parallelSearchToolFactory(config);\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface PerplexitySearchConfig {\n  /**\n   * Default maximum number of search results to return (1-20, default: 10).\n   */\n  maxResults?: number;\n\n  /**\n   * Default maximum tokens to extract per search result page (256-2048, default: 2048).\n   */\n  maxTokensPerPage?: number;\n\n  /**\n   * Default maximum total tokens across all search results (default: 25000, max: 1000000).\n   */\n  maxTokens?: number;\n\n  /**\n   * Default two-letter ISO 3166-1 alpha-2 country code for regional search results.\n   * Examples: 'US', 'GB', 'FR'\n   */\n  country?: string;\n\n  /**\n   * Default list of domains to include or exclude from search results (max 20).\n   * To include: ['nature.com', 'science.org']\n   * To exclude: ['-example.com', '-spam.net']\n   */\n  searchDomainFilter?: string[];\n\n  /**\n   * Default list of ISO 639-1 language codes to filter results (max 10, lowercase).\n   * Examples: ['en', 'fr', 'de']\n   */\n  searchLanguageFilter?: string[];\n\n  /**\n   * Default recency filter for results.\n   * Cannot be combined with searchAfterDate/searchBeforeDate at runtime.\n   */\n  searchRecencyFilter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport interface PerplexitySearchResult {\n  /** Title of the search result */\n  title: string;\n  /** URL of the search result */\n  url: string;\n  /** Text snippet/preview of the content */\n  snippet: string;\n  /** Publication date of the content */\n  date?: string;\n  /** Last updated date of the content */\n  lastUpdated?: string;\n}\n\nexport interface PerplexitySearchResponse {\n  /** Array of search results */\n  results: PerplexitySearchResult[];\n  /** Unique identifier for this search request */\n  id: string;\n}\n\nexport interface PerplexitySearchError {\n  /** Error type */\n  error: 'api_error' | 'rate_limit' | 'timeout' | 'invalid_input' | 'unknown';\n  /** HTTP status code if applicable */\n  statusCode?: number;\n  /** Human-readable error message */\n  message: string;\n}\n\nexport interface PerplexitySearchInput {\n  /**\n   * Search query (string) or multiple queries (array of up to 5 strings).\n   * Multi-query searches return combined results from all queries.\n   */\n  query: string | string[];\n\n  /**\n   * Maximum number of search results to return (1-20, default: 10).\n   */\n  max_results?: number;\n\n  /**\n   * Maximum number of tokens to extract per search result page (256-2048, default: 2048).\n   */\n  max_tokens_per_page?: number;\n\n  /**\n   * Maximum total tokens across all search results (default: 25000, max: 1000000).\n   */\n  max_tokens?: number;\n\n  /**\n   * Two-letter ISO 3166-1 alpha-2 country code for regional search results.\n   * Examples: 'US', 'GB', 'FR'\n   */\n  country?: string;\n\n  /**\n   * List of domains to include or exclude from search results (max 20).\n   * To include: ['nature.com', 'science.org']\n   * To exclude: ['-example.com', '-spam.net']\n   */\n  search_domain_filter?: string[];\n\n  /**\n   * List of ISO 639-1 language codes to filter results (max 10, lowercase).\n   * Examples: ['en', 'fr', 'de']\n   */\n  search_language_filter?: string[];\n\n  /**\n   * Include only results published after this date.\n   * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n   * Cannot be used with search_recency_filter.\n   */\n  search_after_date?: string;\n\n  /**\n   * Include only results published before this date.\n   * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n   * Cannot be used with search_recency_filter.\n   */\n  search_before_date?: string;\n\n  /**\n   * Include only results last updated after this date.\n   * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n   * Cannot be used with search_recency_filter.\n   */\n  last_updated_after_filter?: string;\n\n  /**\n   * Include only results last updated before this date.\n   * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n   * Cannot be used with search_recency_filter.\n   */\n  last_updated_before_filter?: string;\n\n  /**\n   * Filter results by relative time period.\n   * Cannot be used with search_after_date or search_before_date.\n   */\n  search_recency_filter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport type PerplexitySearchOutput =\n  | PerplexitySearchResponse\n  | PerplexitySearchError;\n\nconst perplexitySearchInputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      query: z\n        .union([z.string(), z.array(z.string())])\n        .describe(\n          'Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries.',\n        ),\n\n      max_results: z\n        .number()\n        .optional()\n        .describe(\n          'Maximum number of search results to return (1-20, default: 10)',\n        ),\n\n      max_tokens_per_page: z\n        .number()\n        .optional()\n        .describe(\n          'Maximum number of tokens to extract per search result page (256-2048, default: 2048)',\n        ),\n\n      max_tokens: z\n        .number()\n        .optional()\n        .describe(\n          'Maximum total tokens across all search results (default: 25000, max: 1000000)',\n        ),\n\n      country: z\n        .string()\n        .optional()\n        .describe(\n          \"Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')\",\n        ),\n\n      search_domain_filter: z\n        .array(z.string())\n        .optional()\n        .describe(\n          \"List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']\",\n        ),\n\n      search_language_filter: z\n        .array(z.string())\n        .optional()\n        .describe(\n          \"List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']\",\n        ),\n\n      search_after_date: z\n        .string()\n        .optional()\n        .describe(\n          \"Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n        ),\n\n      search_before_date: z\n        .string()\n        .optional()\n        .describe(\n          \"Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n        ),\n\n      last_updated_after_filter: z\n        .string()\n        .optional()\n        .describe(\n          \"Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n        ),\n\n      last_updated_before_filter: z\n        .string()\n        .optional()\n        .describe(\n          \"Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n        ),\n\n      search_recency_filter: z\n        .enum(['day', 'week', 'month', 'year'])\n        .optional()\n        .describe(\n          'Filter results by relative time period. Cannot be used with search_after_date or search_before_date.',\n        ),\n    }),\n  ),\n);\n\nconst perplexitySearchOutputSchema = lazySchema(() =>\n  zodSchema(\n    z.union([\n      // Success response\n      z.object({\n        results: z.array(\n          z.object({\n            title: z.string(),\n            url: z.string(),\n            snippet: z.string(),\n            date: z.string().optional(),\n            lastUpdated: z.string().optional(),\n          }),\n        ),\n        id: z.string(),\n      }),\n      // Error response\n      z.object({\n        error: z.enum([\n          'api_error',\n          'rate_limit',\n          'timeout',\n          'invalid_input',\n          'unknown',\n        ]),\n        statusCode: z.number().optional(),\n        message: z.string(),\n      }),\n    ]),\n  ),\n);\n\nexport const perplexitySearchToolFactory =\n  createProviderToolFactoryWithOutputSchema<\n    PerplexitySearchInput,\n    PerplexitySearchOutput,\n    PerplexitySearchConfig\n  >({\n    id: 'gateway.perplexity_search',\n    inputSchema: perplexitySearchInputSchema,\n    outputSchema: perplexitySearchOutputSchema,\n  });\n\nexport const perplexitySearch = (\n  config: PerplexitySearchConfig = {},\n): ReturnType<typeof perplexitySearchToolFactory> =>\n  perplexitySearchToolFactory(config);\n","import { parallelSearch } from './tool/parallel-search';\nimport { perplexitySearch } from './tool/perplexity-search';\n\n/**\n * Gateway-specific provider-defined tools.\n */\nexport const gatewayTools = {\n  /**\n   * Search the web using Parallel AI's Search API for LLM-optimized excerpts.\n   *\n   * Takes a natural language objective and returns relevant excerpts,\n   * replacing multiple keyword searches with a single call for broad\n   * or complex queries. Supports different search types for depth vs\n   * breadth tradeoffs.\n   */\n  parallelSearch,\n\n  /**\n   * Search the web using Perplexity's Search API for real-time information,\n   * news, research papers, and articles.\n   *\n   * Provides ranked search results with advanced filtering options including\n   * domain, language, date range, and recency filters.\n   */\n  perplexitySearch,\n};\n","import { getContext } from '@vercel/oidc';\nexport { getVercelOidcToken } from '@vercel/oidc';\n\nexport async function getVercelRequestId(): Promise<string | undefined> {\n  return getContext().headers?.['x-vercel-id'];\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n"],"mappings":"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","names":["z","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","lazySchema","zodSchema","_a","z","name","marker","symbol","_a","_b","_a","z","lazySchema","safeValidateTypes","zodSchema","lazySchema","zodSchema","z","z","lazySchema","zodSchema","createJsonErrorResponseHandler","createJsonResponseHandler","getFromApi","lazySchema","resolve","zodSchema","z","getFromApi","resolve","createJsonResponseHandler","createJsonErrorResponseHandler","z","lazySchema","zodSchema","createJsonErrorResponseHandler","createJsonResponseHandler","getFromApi","lazySchema","resolve","zodSchema","z","getFromApi","resolve","createJsonResponseHandler","createJsonErrorResponseHandler","z","lazySchema","zodSchema","createJsonErrorResponseHandler","createJsonResponseHandler","resolve","z","resolve","createJsonResponseHandler","z","createJsonErrorResponseHandler","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","lazySchema","postJsonToApi","resolve","zodSchema","z","_a","resolve","postJsonToApi","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","z","lazySchema","zodSchema","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","postJsonToApi","resolve","z","_a","_b","resolve","postJsonToApi","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","z","APICallError","combineHeaders","convertUint8ArrayToBase64","createJsonErrorResponseHandler","postJsonToApi","resolve","z","_a","resolve","postJsonToApi","combineHeaders","APICallError","createJsonErrorResponseHandler","z","convertUint8ArrayToBase64","providerMetadataEntrySchema","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","lazySchema","postJsonToApi","resolve","zodSchema","z","resolve","postJsonToApi","combineHeaders","createJsonResponseHandler","createJsonErrorResponseHandler","z","lazySchema","zodSchema","lazySchema","zodSchema","z","createProviderToolFactoryWithOutputSchema","lazySchema","zodSchema","z","_a","_a","_b"]}