/**
 * Minified by jsDelivr using Terser v5.48.0.
 * Original file: /npm/@ai-sdk/gateway@4.0.22/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
var GATEWAY_REALTIME_SUBPROTOCOL="ai-gateway-realtime.v1",GATEWAY_TRANSCRIPTION_SUBPROTOCOL="ai-gateway-transcription.v1",GATEWAY_AUTH_SUBPROTOCOL_PREFIX="ai-gateway-auth.",GATEWAY_TEAM_SUBPROTOCOL_PREFIX="ai-gateway-team.";function getGatewayRealtimeProtocols(e,a){return buildGatewayProtocols(GATEWAY_REALTIME_SUBPROTOCOL,e,a)}function getGatewayTranscriptionProtocols(e,a){return buildGatewayProtocols(GATEWAY_TRANSCRIPTION_SUBPROTOCOL,e,a)}function buildGatewayProtocols(e,a,r){const t=[e,`${GATEWAY_AUTH_SUBPROTOCOL_PREFIX}${a}`];return(null==r?void 0:r.teamIdOrSlug)&&t.push(`${GATEWAY_TEAM_SUBPROTOCOL_PREFIX}${encodeSubprotocolValue(r.teamIdOrSlug)}`),t}function getGatewayRealtimeAuthToken(e){var a;return(null==(a=findProtocol(e,GATEWAY_AUTH_SUBPROTOCOL_PREFIX))?void 0:a.slice(GATEWAY_AUTH_SUBPROTOCOL_PREFIX.length))||void 0}function getGatewayRealtimeTeamIdOrSlug(e){var a;const r=null==(a=findProtocol(e,GATEWAY_TEAM_SUBPROTOCOL_PREFIX))?void 0:a.slice(GATEWAY_TEAM_SUBPROTOCOL_PREFIX.length);if(r)try{return decodeSubprotocolValue(r)||void 0}catch(e){return}}function findProtocol(e,a){return null==e?void 0:e.split(",").map(e=>e.trim()).find(e=>e.startsWith(a))}function encodeSubprotocolValue(e){const a=(new TextEncoder).encode(e);let r="";for(const e of a)r+=String.fromCharCode(e);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/u,"")}function decodeSubprotocolValue(e){const a=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-a.length%4)%4),t=atob(`${a}${r}`),o=Uint8Array.from(t,e=>e.charCodeAt(0));return(new TextDecoder).decode(o)}import{createJsonErrorResponseHandler as createJsonErrorResponseHandler11,createJsonResponseHandler as createJsonResponseHandler10,loadOptionalSetting,postJsonToApi as postJsonToApi8,withoutTrailingSlash,withUserAgentSuffix}from"@ai-sdk/provider-utils";import{z as z18}from"zod/v4";import{APICallError}from"@ai-sdk/provider";import{z as z3}from"zod/v4";var _a,_b,_a2,_b2,_a3,_b3,_a4,_b4,marker="vercel.ai.gateway.error",symbol=Symbol.for(marker),GatewayError=class e extends(_b=Error,_a=symbol,_b){constructor({message:e,statusCode:a=500,cause:r,generationId:t,isRetryable:o=null!=a&&(408===a||409===a||429===a||a>=500)}){super(t?`${e} [${t}]`:e),this[_a]=!0,this.statusCode=a,this.cause=r,this.generationId=t,this.isRetryable=o}static isInstance(a){return e.hasMarker(a)}static hasMarker(e){return"object"==typeof e&&null!==e&&symbol in e&&!0===e[symbol]}},name="GatewayAuthenticationError",marker2=`vercel.ai.gateway.error.${name}`,symbol2=Symbol.for(marker2),GatewayAuthenticationError=class e extends(_b2=GatewayError,_a2=symbol2,_b2){constructor({message:e="Authentication failed",statusCode:a=401,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a2]=!0,this.name=name,this.type="authentication_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol2 in e}static createContextualError({apiKeyProvided:a,oidcTokenProvided:r,statusCode:t=401,cause:o,generationId:s}){let n;return n=a?"AI Gateway authentication failed: Invalid API key or token.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide an API key or Vercel access token via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.":r?"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\nor pass a Vercel access token via the 'apiKey' option.":"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 - Vercel access token:\nPass a Vercel personal access token or Vercel app access token via the 'apiKey' option.\n\nOption 3 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.",new e({message:n,statusCode:t,cause:o,generationId:s})}},name2="GatewayInvalidRequestError",marker3=`vercel.ai.gateway.error.${name2}`,symbol3=Symbol.for(marker3),GatewayInvalidRequestError=class extends(_b3=GatewayError,_a3=symbol3,_b3){constructor({message:e="Invalid request",statusCode:a=400,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a3]=!0,this.name=name2,this.type="invalid_request_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol3 in e}},name3="GatewayRateLimitError",marker4=`vercel.ai.gateway.error.${name3}`,symbol4=Symbol.for(marker4),GatewayRateLimitError=class extends(_b4=GatewayError,_a4=symbol4,_b4){constructor({message:e="Rate limit exceeded",statusCode:a=429,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a4]=!0,this.name=name3,this.type="rate_limit_exceeded"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol4 in e}};import{z}from"zod/v4";import{lazySchema,zodSchema}from"@ai-sdk/provider-utils";var _a5,_b5,_a6,_b6,_a7,_b7,name4="GatewayModelNotFoundError",marker5=`vercel.ai.gateway.error.${name4}`,symbol5=Symbol.for(marker5),modelNotFoundParamSchema=lazySchema(()=>zodSchema(z.object({modelId:z.string()}))),GatewayModelNotFoundError=class extends(_b5=GatewayError,_a5=symbol5,_b5){constructor({message:e="Model not found",statusCode:a=404,modelId:r,cause:t,generationId:o}={}){super({message:e,statusCode:a,cause:t,generationId:o}),this[_a5]=!0,this.name=name4,this.type="model_not_found",this.modelId=r}static isInstance(e){return GatewayError.hasMarker(e)&&symbol5 in e}},name5="GatewayInternalServerError",marker6=`vercel.ai.gateway.error.${name5}`,symbol6=Symbol.for(marker6),GatewayInternalServerError=class extends(_b6=GatewayError,_a6=symbol6,_b6){constructor({message:e="Internal server error",statusCode:a=500,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a6]=!0,this.name=name5,this.type="internal_server_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol6 in e}},name6="GatewayFailedDependencyError",marker7=`vercel.ai.gateway.error.${name6}`,symbol7=Symbol.for(marker7),GatewayFailedDependencyError=class extends(_b7=GatewayError,_a7=symbol7,_b7){constructor({message:e="Failed dependency",statusCode:a=424,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a7]=!0,this.name=name6,this.type="failed_dependency"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol7 in e}};import{z as z2}from"zod/v4";import{lazySchema as lazySchema2,zodSchema as zodSchema2}from"@ai-sdk/provider-utils";var _a8,_b8,_a9,_b9,name7="GatewayForbiddenError",marker8=`vercel.ai.gateway.error.${name7}`,symbol8=Symbol.for(marker8),forbiddenParamSchema=lazySchema2(()=>zodSchema2(z2.object({ruleId:z2.string()}))),GatewayForbiddenError=class extends(_b8=GatewayError,_a8=symbol8,_b8){constructor({message:e="Forbidden",statusCode:a=403,cause:r,generationId:t,ruleId:o}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a8]=!0,this.name=name7,this.type="forbidden",this.ruleId=o}static isInstance(e){return GatewayError.hasMarker(e)&&symbol8 in e}},name8="GatewayResponseError",marker9=`vercel.ai.gateway.error.${name8}`,symbol9=Symbol.for(marker9),GatewayResponseError=class extends(_b9=GatewayError,_a9=symbol9,_b9){constructor({message:e="Invalid response from Gateway",statusCode:a=502,response:r,validationError:t,cause:o,generationId:s}={}){super({message:e,statusCode:a,cause:o,generationId:s}),this[_a9]=!0,this.name=name8,this.type="response_error",this.response=r,this.validationError=t}static isInstance(e){return GatewayError.hasMarker(e)&&symbol9 in e}};import{lazySchema as lazySchema3,safeValidateTypes,zodSchema as zodSchema3}from"@ai-sdk/provider-utils";async function createGatewayErrorFromResponse({response:e,statusCode:a,defaultMessage:r="Gateway request failed",cause:t,authMethod:o}){var s;const n=await safeValidateTypes({value:e,schema:gatewayErrorResponseSchema});if(!n.success){const o="object"==typeof e&&null!==e&&"generationId"in e?e.generationId:void 0;return new GatewayResponseError({message:`Invalid error response format: ${r}`,statusCode:a,response:e,validationError:n.error,cause:t,generationId:o})}const i=n.value,l=i.error.type,c=i.error.message,d=null!=(s=i.generationId)?s:void 0;switch(l){case"authentication_error":return GatewayAuthenticationError.createContextualError({apiKeyProvided:"api-key"===o,oidcTokenProvided:"oidc"===o,statusCode:a,cause:t,generationId:d});case"invalid_request_error":return new GatewayInvalidRequestError({message:c,statusCode:a,cause:t,generationId:d});case"rate_limit_exceeded":return new GatewayRateLimitError({message:c,statusCode:a,cause:t,generationId:d});case"model_not_found":{const e=await safeValidateTypes({value:i.error.param,schema:modelNotFoundParamSchema});return new GatewayModelNotFoundError({message:c,statusCode:a,modelId:e.success?e.value.modelId:void 0,cause:t,generationId:d})}case"internal_server_error":default:return new GatewayInternalServerError({message:c,statusCode:a,cause:t,generationId:d});case"failed_dependency":return new GatewayFailedDependencyError({message:c,statusCode:a,cause:t,generationId:d});case"forbidden":{const e=await safeValidateTypes({value:i.error.param,schema:forbiddenParamSchema});return new GatewayForbiddenError({message:c,statusCode:a,cause:t,generationId:d,ruleId:e.success?e.value.ruleId:void 0})}}}var gatewayErrorResponseSchema=lazySchema3(()=>zodSchema3(z3.object({error:z3.object({message:z3.string(),type:z3.string().nullish(),param:z3.unknown().nullish(),code:z3.union([z3.string(),z3.number()]).nullish()}),generationId:z3.string().nullish()})));import{secureJsonParse}from"@ai-sdk/provider-utils";function extractApiCallResponse(e){if(void 0!==e.data)return e.data;if(null!=e.responseBody)try{return secureJsonParse(e.responseBody)}catch(a){return e.responseBody}return{}}var _a10,_b10,name9="GatewayTimeoutError",marker10=`vercel.ai.gateway.error.${name9}`,symbol10=Symbol.for(marker10),GatewayTimeoutError=class e extends(_b10=GatewayError,_a10=symbol10,_b10){constructor({message:e="Request timed out",statusCode:a=408,cause:r,generationId:t}={}){super({message:e,statusCode:a,cause:r,generationId:t}),this[_a10]=!0,this.name=name9,this.type="timeout_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol10 in e}static createTimeoutError({originalMessage:a,statusCode:r=408,cause:t,generationId:o}){return new e({message:`Gateway request timed out: ${a}\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`,statusCode:r,cause:t,generationId:o})}};function isTimeoutError(e){if(!(e instanceof Error))return!1;const a=e.code;if("string"==typeof a){return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(a)}return!1}async function asGatewayError(e,a){var r;return GatewayError.isInstance(e)?e:isTimeoutError(e)?GatewayTimeoutError.createTimeoutError({originalMessage:e instanceof Error?e.message:"Unknown error",cause:e}):APICallError.isInstance(e)?e.cause&&isTimeoutError(e.cause)?GatewayTimeoutError.createTimeoutError({originalMessage:e.message,cause:e}):await createGatewayErrorFromResponse({response:extractApiCallResponse(e),statusCode:null!=(r=e.statusCode)?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:a}):await createGatewayErrorFromResponse({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:a})}var GATEWAY_AUTH_METHOD_HEADER="ai-gateway-auth-method",VERCEL_AI_GATEWAY_TEAM_HEADER="x-vercel-ai-gateway-team";import{z as z4}from"zod/v4";import{lazySchema as lazySchema4,safeValidateTypes as safeValidateTypes2,zodSchema as zodSchema4}from"@ai-sdk/provider-utils";async function parseAuthMethod(e){const a=await safeValidateTypes2({value:e[GATEWAY_AUTH_METHOD_HEADER],schema:gatewayAuthMethodSchema});return a.success?a.value:void 0}var gatewayAuthMethodSchema=lazySchema4(()=>zodSchema4(z4.union([z4.literal("api-key"),z4.literal("oidc")])));import{createJsonErrorResponseHandler,createJsonResponseHandler,getFromApi,lazySchema as lazySchema5,resolve,zodSchema as zodSchema5}from"@ai-sdk/provider-utils";import{z as z5}from"zod/v4";var KNOWN_MODEL_TYPES=["embedding","image","language","realtime","reranking","speech","transcription","video"],GatewayFetchMetadata=class{constructor(e){this.config=e}async getAvailableModels(){try{const{value:e}=await getFromApi({url:`${this.config.baseURL}/config`,validateUrl:!1,headers:this.config.headers?await resolve(this.config.headers):void 0,successfulResponseHandler:createJsonResponseHandler(gatewayAvailableModelsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z5.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return e}catch(e){throw await asGatewayError(e)}}async getCredits(){try{const e=new URL(this.config.baseURL),{value:a}=await getFromApi({url:`${e.origin}/v1/credits`,validateUrl:!1,headers:this.config.headers?await resolve(this.config.headers):void 0,successfulResponseHandler:createJsonResponseHandler(gatewayCreditsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z5.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return a}catch(e){throw await asGatewayError(e)}}},gatewayAvailableModelsResponseSchema=lazySchema5(()=>zodSchema5(z5.object({models:z5.array(z5.object({id:z5.string(),name:z5.string(),description:z5.string().nullish(),pricing:z5.object({input:z5.string(),output:z5.string(),input_cache_read:z5.string().nullish(),input_cache_write:z5.string().nullish()}).transform(({input:e,output:a,input_cache_read:r,input_cache_write:t})=>({input:e,output:a,...r?{cachedInputTokens:r}:{},...t?{cacheCreationInputTokens:t}:{}})).nullish(),specification:z5.object({specificationVersion:z5.literal("v4"),provider:z5.string(),modelId:z5.string()}),modelType:z5.string().nullish()})).transform(e=>e.filter(e=>null==e.modelType||KNOWN_MODEL_TYPES.includes(e.modelType)))}))),gatewayCreditsResponseSchema=lazySchema5(()=>zodSchema5(z5.object({balance:z5.string(),total_used:z5.string()}).transform(({balance:e,total_used:a})=>({balance:e,totalUsed:a}))));import{createJsonErrorResponseHandler as createJsonErrorResponseHandler2,createJsonResponseHandler as createJsonResponseHandler2,getFromApi as getFromApi2,lazySchema as lazySchema6,resolve as resolve2,zodSchema as zodSchema6}from"@ai-sdk/provider-utils";import{z as z6}from"zod/v4";var GatewaySpendReport=class{constructor(e){this.config=e}async getSpendReport(e){try{const a=new URL(this.config.baseURL),r=new URLSearchParams;r.set("start_date",e.startDate),r.set("end_date",e.endDate),e.groupBy&&r.set("group_by",e.groupBy),e.datePart&&r.set("date_part",e.datePart),e.userId&&r.set("user_id",e.userId),e.model&&r.set("model",e.model),e.provider&&r.set("provider",e.provider),e.credentialType&&r.set("credential_type",e.credentialType),e.tags&&e.tags.length>0&&r.set("tags",e.tags.join(","));const{value:t}=await getFromApi2({url:`${a.origin}/v1/report?${r.toString()}`,validateUrl:!1,headers:this.config.headers?await resolve2(this.config.headers):void 0,successfulResponseHandler:createJsonResponseHandler2(gatewaySpendReportResponseSchema),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z6.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return t}catch(e){throw await asGatewayError(e)}}},gatewaySpendReportResponseSchema=lazySchema6(()=>zodSchema6(z6.object({results:z6.array(z6.object({day:z6.string().optional(),hour:z6.string().optional(),user:z6.string().optional(),model:z6.string().optional(),tag:z6.string().optional(),provider:z6.string().optional(),credential_type:z6.enum(["byok","system"]).optional(),total_cost:z6.number(),market_cost:z6.number().optional(),input_tokens:z6.number().optional(),output_tokens:z6.number().optional(),cached_input_tokens:z6.number().optional(),cache_creation_input_tokens:z6.number().optional(),reasoning_tokens:z6.number().optional(),request_count:z6.number().optional()}).transform(({credential_type:e,total_cost:a,market_cost:r,input_tokens:t,output_tokens:o,cached_input_tokens:s,cache_creation_input_tokens:n,reasoning_tokens:i,request_count:l,...c})=>({...c,...void 0!==e?{credentialType:e}:{},totalCost:a,...void 0!==r?{marketCost:r}:{},...void 0!==t?{inputTokens:t}:{},...void 0!==o?{outputTokens:o}:{},...void 0!==s?{cachedInputTokens:s}:{},...void 0!==n?{cacheCreationInputTokens:n}:{},...void 0!==i?{reasoningTokens:i}:{},...void 0!==l?{requestCount:l}:{}})))})));import{createJsonErrorResponseHandler as createJsonErrorResponseHandler3,createJsonResponseHandler as createJsonResponseHandler3,getFromApi as getFromApi3,lazySchema as lazySchema7,resolve as resolve3,zodSchema as zodSchema7}from"@ai-sdk/provider-utils";import{z as z7}from"zod/v4";var GatewayGenerationInfoFetcher=class{constructor(e){this.config=e}async getGenerationInfo(e){try{const a=new URL(this.config.baseURL),{value:r}=await getFromApi3({url:`${a.origin}/v1/generation?id=${encodeURIComponent(e.id)}`,validateUrl:!1,headers:this.config.headers?await resolve3(this.config.headers):void 0,successfulResponseHandler:createJsonResponseHandler3(gatewayGenerationInfoResponseSchema),failedResponseHandler:createJsonErrorResponseHandler3({errorSchema:z7.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return r}catch(e){throw await asGatewayError(e)}}},gatewayGenerationInfoResponseSchema=lazySchema7(()=>zodSchema7(z7.object({data:z7.object({id:z7.string(),total_cost:z7.number(),upstream_inference_cost:z7.number(),usage:z7.number(),created_at:z7.string(),model:z7.string(),is_byok:z7.boolean(),provider_name:z7.string(),streamed:z7.boolean(),finish_reason:z7.string(),latency:z7.number(),generation_time:z7.number(),native_tokens_prompt:z7.number(),native_tokens_completion:z7.number(),native_tokens_reasoning:z7.number(),native_tokens_cached:z7.number(),native_tokens_cache_creation:z7.number(),billable_web_search_calls:z7.number()}).transform(({total_cost:e,upstream_inference_cost:a,created_at:r,is_byok:t,provider_name:o,finish_reason:s,generation_time:n,native_tokens_prompt:i,native_tokens_completion:l,native_tokens_reasoning:c,native_tokens_cached:d,native_tokens_cache_creation:u,billable_web_search_calls:p,...m})=>({...m,totalCost:e,upstreamInferenceCost:a,createdAt:r,isByok:t,providerName:o,finishReason:s,generationTime:n,promptTokens:i,completionTokens:l,reasoningTokens:c,cachedTokens:d,cacheCreationTokens:u,billableWebSearchCalls:p}))}).transform(({data:e})=>e)));import{combineHeaders,createEventSourceResponseHandler,createJsonErrorResponseHandler as createJsonErrorResponseHandler4,createJsonResponseHandler as createJsonResponseHandler4,postJsonToApi,resolve as resolve4,serializeModelOptions,WORKFLOW_SERIALIZE,WORKFLOW_DESERIALIZE}from"@ai-sdk/provider-utils";import{z as z8}from"zod/v4";var GatewayLanguageModel=class e{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]}}static[WORKFLOW_SERIALIZE](e){return serializeModelOptions({modelId:e.modelId,config:e.config})}static[WORKFLOW_DESERIALIZE](a){return new e(a.modelId,a.config)}get provider(){return this.config.provider}async getArgs(e){const{abortSignal:a,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){const{args:a,warnings:r}=await this.getArgs(e),{abortSignal:t}=e,o=this.config.headers?await resolve4(this.config.headers):void 0;try{const{responseHeaders:s,value:n,rawValue:i}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(o,e.headers,this.getModelConfigHeaders(this.modelId,!1),await resolve4(this.config.o11yHeaders)),body:a,successfulResponseHandler:createJsonResponseHandler4(z8.any()),failedResponseHandler:createJsonErrorResponseHandler4({errorSchema:z8.any(),errorToMessage:e=>e}),...t&&{abortSignal:t},fetch:this.config.fetch});return{...n,request:{body:a},response:{headers:s,body:i},warnings:r}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=o?o:{}))}}async doStream(e){const{args:a,warnings:r}=await this.getArgs(e),{abortSignal:t}=e,o=this.config.headers?await resolve4(this.config.headers):void 0;try{const{value:s,responseHeaders:n}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(o,e.headers,this.getModelConfigHeaders(this.modelId,!0),await resolve4(this.config.o11yHeaders)),body:a,successfulResponseHandler:createEventSourceResponseHandler(z8.any()),failedResponseHandler:createJsonErrorResponseHandler4({errorSchema:z8.any(),errorToMessage:e=>e}),...t&&{abortSignal:t},fetch:this.config.fetch});return{stream:s.pipeThrough(new TransformStream({start(e){r.length>0&&e.enqueue({type:"stream-start",warnings:r})},transform(a,r){if(a.success){const t=a.value;if("raw"===t.type&&!e.includeRawChunks)return;"response-metadata"===t.type&&t.timestamp&&"string"==typeof t.timestamp&&(t.timestamp=new Date(t.timestamp)),r.enqueue(t)}else r.error(a.error)}})),request:{body:a},response:{headers:n}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=o?o:{}))}}maybeEncodeFileParts(e){for(const a of e.prompt)if(Array.isArray(a.content))for(const e of a.content)if("file"===e.type||"reasoning-file"===e.type)e.data=maybeBase64EncodeFileData(e.data);else if("tool-result"===e.type&&"content"===e.output.type)for(const a of e.output.value)"file"===a.type&&(a.data=maybeBase64EncodeFileData(a.data));return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,a){return{"ai-language-model-specification-version":"4","ai-language-model-id":e,"ai-language-model-streaming":String(a)}}};function maybeBase64EncodeFileData(e){if("data"===e.type){const a=e.data;if(a instanceof Uint8Array)return{...e,data:Buffer.from(a).toString("base64")}}return e}import{combineHeaders as combineHeaders2,createJsonErrorResponseHandler as createJsonErrorResponseHandler5,createJsonResponseHandler as createJsonResponseHandler5,lazySchema as lazySchema8,postJsonToApi as postJsonToApi2,resolve as resolve5,serializeModelOptions as serializeModelOptions2,WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE2,WORKFLOW_DESERIALIZE as WORKFLOW_DESERIALIZE2,zodSchema as zodSchema8}from"@ai-sdk/provider-utils";import{z as z9}from"zod/v4";var GatewayEmbeddingModel=class e{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}static[WORKFLOW_SERIALIZE2](e){return serializeModelOptions2({modelId:e.modelId,config:e.config})}static[WORKFLOW_DESERIALIZE2](a){return new e(a.modelId,a.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:a,abortSignal:r,providerOptions:t}){var o,s;const n=this.config.headers?await resolve5(this.config.headers):void 0;try{const{responseHeaders:i,value:l,rawValue:c}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(n,null!=a?a:{},this.getModelConfigHeaders(),await resolve5(this.config.o11yHeaders)),body:{values:e,...t?{providerOptions:t}:{}},successfulResponseHandler:createJsonResponseHandler5(gatewayEmbeddingResponseSchema),failedResponseHandler:createJsonErrorResponseHandler5({errorSchema:z9.any(),errorToMessage:e=>e}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:l.embeddings,usage:null!=(o=l.usage)?o:void 0,providerMetadata:l.providerMetadata,response:{headers:i,body:c},warnings:null!=(s=l.warnings)?s:[]}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=n?n:{}))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"4","ai-model-id":this.modelId}}},gatewayEmbeddingWarningSchema=z9.discriminatedUnion("type",[z9.object({type:z9.literal("unsupported"),feature:z9.string(),details:z9.string().optional()}),z9.object({type:z9.literal("compatibility"),feature:z9.string(),details:z9.string().optional()}),z9.object({type:z9.literal("deprecated"),setting:z9.string(),message:z9.string()}),z9.object({type:z9.literal("other"),message:z9.string()})]),gatewayEmbeddingResponseSchema=lazySchema8(()=>zodSchema8(z9.object({embeddings:z9.array(z9.array(z9.number())),usage:z9.object({tokens:z9.number()}).nullish(),warnings:z9.array(gatewayEmbeddingWarningSchema).optional(),providerMetadata:z9.record(z9.string(),z9.record(z9.string(),z9.unknown())).optional()})));import{combineHeaders as combineHeaders3,convertUint8ArrayToBase64,createJsonResponseHandler as createJsonResponseHandler6,createJsonErrorResponseHandler as createJsonErrorResponseHandler6,postJsonToApi as postJsonToApi3,resolve as resolve6,serializeModelOptions as serializeModelOptions3,WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE3,WORKFLOW_DESERIALIZE as WORKFLOW_DESERIALIZE3}from"@ai-sdk/provider-utils";import{z as z10}from"zod/v4";var GatewayImageModel=class e{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}static[WORKFLOW_SERIALIZE3](e){return serializeModelOptions3({modelId:e.modelId,config:e.config})}static[WORKFLOW_DESERIALIZE3](a){return new e(a.modelId,a.config)}get provider(){return this.config.provider}async doGenerate({prompt:e,n:a,size:r,aspectRatio:t,seed:o,files:s,mask:n,providerOptions:i,headers:l,abortSignal:c}){var d,u,p,m;const g=this.config.headers?await resolve6(this.config.headers):void 0;try{const{responseHeaders:h,value:y}=await postJsonToApi3({url:this.getUrl(),headers:combineHeaders3(g,null!=l?l:{},this.getModelConfigHeaders(),await resolve6(this.config.o11yHeaders)),body:{prompt:e,n:a,...r&&{size:r},...t&&{aspectRatio:t},...o&&{seed:o},...i&&{providerOptions:i},...s&&{files:s.map(e=>maybeEncodeImageFile(e))},...n&&{mask:maybeEncodeImageFile(n)}},successfulResponseHandler:createJsonResponseHandler6(gatewayImageResponseSchema),failedResponseHandler:createJsonErrorResponseHandler6({errorSchema:z10.any(),errorToMessage:e=>e}),...c&&{abortSignal:c},fetch:this.config.fetch});return{images:y.images,warnings:null!=(d=y.warnings)?d:[],providerMetadata:y.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:h},...null!=y.usage&&{usage:{inputTokens:null!=(u=y.usage.inputTokens)?u:void 0,outputTokens:null!=(p=y.usage.outputTokens)?p:void 0,totalTokens:null!=(m=y.usage.totalTokens)?m:void 0}}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=g?g:{}))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"4","ai-model-id":this.modelId}}};function maybeEncodeImageFile(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:convertUint8ArrayToBase64(e.data)}:e}var providerMetadataEntrySchema=z10.object({images:z10.array(z10.unknown()).optional()}).catchall(z10.unknown()),gatewayImageWarningSchema=z10.discriminatedUnion("type",[z10.object({type:z10.literal("unsupported"),feature:z10.string(),details:z10.string().optional()}),z10.object({type:z10.literal("compatibility"),feature:z10.string(),details:z10.string().optional()}),z10.object({type:z10.literal("deprecated"),setting:z10.string(),message:z10.string()}),z10.object({type:z10.literal("other"),message:z10.string()})]),gatewayImageUsageSchema=z10.object({inputTokens:z10.number().nullish(),outputTokens:z10.number().nullish(),totalTokens:z10.number().nullish()}),gatewayImageResponseSchema=z10.object({images:z10.array(z10.string()),warnings:z10.array(gatewayImageWarningSchema).optional(),providerMetadata:z10.record(z10.string(),providerMetadataEntrySchema).optional(),usage:gatewayImageUsageSchema.optional()});import{APICallError as APICallError2}from"@ai-sdk/provider";import{combineHeaders as combineHeaders4,convertUint8ArrayToBase64 as convertUint8ArrayToBase642,createJsonErrorResponseHandler as createJsonErrorResponseHandler7,parseJsonEventStream,postJsonToApi as postJsonToApi4,resolve as resolve7}from"@ai-sdk/provider-utils";import{z as z11}from"zod/v4";var GatewayVideoModel=class{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:e,n:a,aspectRatio:r,resolution:t,duration:o,fps:s,seed:n,generateAudio:i,image:l,frameImages:c,inputReferences:d,providerOptions:u,headers:p,abortSignal:m}){var g;const h=this.config.headers?await resolve7(this.config.headers):void 0;try{const{responseHeaders:y,value:z}=await postJsonToApi4({url:this.getUrl(),headers:combineHeaders4(h,null!=p?p:{},this.getModelConfigHeaders(),await resolve7(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:e,n:a,...r&&{aspectRatio:r},...t&&{resolution:t},...o&&{duration:o},...s&&{fps:s},...n&&{seed:n},...void 0!==i&&{generateAudio:i},...u&&{providerOptions:u},...l&&{image:maybeEncodeVideoFile(l)},...c&&{frameImages:c.map(e=>({...e,image:maybeEncodeVideoFile(e.image)}))},...d&&{inputReferences:d.map(e=>maybeEncodeVideoFile(e))}},successfulResponseHandler:async({response:e,url:a,requestBodyValues:r})=>{if(null==e.body)throw new APICallError2({message:"SSE response body is empty",url:a,requestBodyValues:r,statusCode:e.status});const t=parseJsonEventStream({stream:e.body,schema:gatewayVideoEventSchema}).getReader(),{done:o,value:s}=await t.read();if(t.releaseLock(),o||!s)throw new APICallError2({message:"SSE stream ended without a data event",url:a,requestBodyValues:r,statusCode:e.status});if(!s.success)throw new APICallError2({message:"Failed to parse video SSE event",cause:s.error,url:a,requestBodyValues:r,statusCode:e.status});const n=s.value;if("error"===n.type)throw new APICallError2({message:n.message,statusCode:n.statusCode,url:a,requestBodyValues:r,responseHeaders:Object.fromEntries([...e.headers]),responseBody:JSON.stringify(n),data:{error:{message:n.message,type:n.errorType,param:n.param}}});return{value:{videos:n.videos,warnings:n.warnings,providerMetadata:n.providerMetadata},responseHeaders:Object.fromEntries([...e.headers])}},failedResponseHandler:createJsonErrorResponseHandler7({errorSchema:z11.any(),errorToMessage:e=>e}),...m&&{abortSignal:m},fetch:this.config.fetch});return{videos:z.videos,warnings:null!=(g=z.warnings)?g:[],providerMetadata:z.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:y}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=h?h:{}))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"4","ai-model-id":this.modelId}}};function maybeEncodeVideoFile(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:convertUint8ArrayToBase642(e.data)}:e}var providerMetadataEntrySchema2=z11.object({videos:z11.array(z11.unknown()).optional()}).catchall(z11.unknown()),gatewayVideoDataSchema=z11.union([z11.object({type:z11.literal("url"),url:z11.string(),mediaType:z11.string()}),z11.object({type:z11.literal("base64"),data:z11.string(),mediaType:z11.string()})]),gatewayVideoWarningSchema=z11.discriminatedUnion("type",[z11.object({type:z11.literal("unsupported"),feature:z11.string(),details:z11.string().optional()}),z11.object({type:z11.literal("compatibility"),feature:z11.string(),details:z11.string().optional()}),z11.object({type:z11.literal("deprecated"),setting:z11.string(),message:z11.string()}),z11.object({type:z11.literal("other"),message:z11.string()})]),gatewayVideoEventSchema=z11.discriminatedUnion("type",[z11.object({type:z11.literal("result"),videos:z11.array(gatewayVideoDataSchema),warnings:z11.array(gatewayVideoWarningSchema).optional(),providerMetadata:z11.record(z11.string(),providerMetadataEntrySchema2).optional()}),z11.object({type:z11.literal("error"),message:z11.string(),errorType:z11.string(),statusCode:z11.number(),param:z11.unknown().nullable()})]);import{combineHeaders as combineHeaders5,createJsonErrorResponseHandler as createJsonErrorResponseHandler8,createJsonResponseHandler as createJsonResponseHandler7,lazySchema as lazySchema9,postJsonToApi as postJsonToApi5,resolve as resolve8,zodSchema as zodSchema9}from"@ai-sdk/provider-utils";import{z as z12}from"zod/v4";var GatewayRerankingModel=class{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4"}get provider(){return this.config.provider}async doRerank({documents:e,query:a,topN:r,headers:t,abortSignal:o,providerOptions:s}){var n;const i=this.config.headers?await resolve8(this.config.headers):void 0;try{const{responseHeaders:l,value:c,rawValue:d}=await postJsonToApi5({url:this.getUrl(),headers:combineHeaders5(i,null!=t?t:{},this.getModelConfigHeaders(),await resolve8(this.config.o11yHeaders)),body:{documents:e,query:a,...null!=r?{topN:r}:{},...s?{providerOptions:s}:{}},successfulResponseHandler:createJsonResponseHandler7(gatewayRerankingResponseSchema),failedResponseHandler:createJsonErrorResponseHandler8({errorSchema:z12.any(),errorToMessage:e=>e}),...o&&{abortSignal:o},fetch:this.config.fetch});return{ranking:c.ranking,providerMetadata:c.providerMetadata,response:{headers:l,body:d},warnings:null!=(n=c.warnings)?n:[]}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=i?i:{}))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"4","ai-model-id":this.modelId}}},gatewayRerankingWarningSchema=z12.discriminatedUnion("type",[z12.object({type:z12.literal("unsupported"),feature:z12.string(),details:z12.string().optional()}),z12.object({type:z12.literal("compatibility"),feature:z12.string(),details:z12.string().optional()}),z12.object({type:z12.literal("deprecated"),setting:z12.string(),message:z12.string()}),z12.object({type:z12.literal("other"),message:z12.string()})]),gatewayRerankingResponseSchema=lazySchema9(()=>zodSchema9(z12.object({ranking:z12.array(z12.object({index:z12.number(),relevanceScore:z12.number()})),warnings:z12.array(gatewayRerankingWarningSchema).optional(),providerMetadata:z12.record(z12.string(),z12.record(z12.string(),z12.unknown())).optional()})));import{combineHeaders as combineHeaders6,createJsonErrorResponseHandler as createJsonErrorResponseHandler9,createJsonResponseHandler as createJsonResponseHandler8,postJsonToApi as postJsonToApi6,resolve as resolve9}from"@ai-sdk/provider-utils";import{z as z13}from"zod/v4";var GatewaySpeechModel=class{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({text:e,voice:a,outputFormat:r,instructions:t,speed:o,language:s,providerOptions:n,headers:i,abortSignal:l}){var c;const d=this.config.headers?await resolve9(this.config.headers):void 0;try{const{responseHeaders:u,value:p,rawValue:m}=await postJsonToApi6({url:this.getUrl(),headers:combineHeaders6(d,null!=i?i:{},this.getModelConfigHeaders(),await resolve9(this.config.o11yHeaders)),body:{text:e,...a&&{voice:a},...r&&{outputFormat:r},...t&&{instructions:t},...null!=o&&{speed:o},...s&&{language:s},...n&&{providerOptions:n}},successfulResponseHandler:createJsonResponseHandler8(gatewaySpeechResponseSchema),failedResponseHandler:createJsonErrorResponseHandler9({errorSchema:z13.any(),errorToMessage:e=>e}),...l&&{abortSignal:l},fetch:this.config.fetch});return{audio:p.audio,warnings:null!=(c=p.warnings)?c:[],providerMetadata:p.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:u,body:m}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=d?d:{}))}}getUrl(){return`${this.config.baseURL}/speech-model`}getModelConfigHeaders(){return{"ai-speech-model-specification-version":"4","ai-model-id":this.modelId}}},providerMetadataEntrySchema3=z13.object({}).catchall(z13.unknown()),gatewaySpeechWarningSchema=z13.discriminatedUnion("type",[z13.object({type:z13.literal("unsupported"),feature:z13.string(),details:z13.string().optional()}),z13.object({type:z13.literal("compatibility"),feature:z13.string(),details:z13.string().optional()}),z13.object({type:z13.literal("deprecated"),setting:z13.string(),message:z13.string()}),z13.object({type:z13.literal("other"),message:z13.string()})]),gatewaySpeechResponseSchema=z13.object({audio:z13.string(),warnings:z13.array(gatewaySpeechWarningSchema).optional(),providerMetadata:z13.record(z13.string(),providerMetadataEntrySchema3).optional()});import{getErrorMessage}from"@ai-sdk/provider";import{combineHeaders as combineHeaders7,convertBase64ToUint8Array,convertUint8ArrayToBase64 as convertUint8ArrayToBase643,createJsonErrorResponseHandler as createJsonErrorResponseHandler10,createJsonResponseHandler as createJsonResponseHandler9,connectToWebSocket,normalizeHeaders,experimental_parseTranscriptionStreamPart as parseTranscriptionStreamPart,postJsonToApi as postJsonToApi7,resolve as resolve10,EXPERIMENTAL_TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE as TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE,waitForWebSocketBufferDrain,EXPERIMENTAL_TRANSCRIPTION_STREAM_START_FRAME_TYPE as TRANSCRIPTION_STREAM_START_FRAME_TYPE}from"@ai-sdk/provider-utils";import{z as z14}from"zod/v4";var GatewayTranscriptionModel=class{constructor(e,a){this.modelId=e,this.config=a,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({audio:e,mediaType:a,providerOptions:r,headers:t,abortSignal:o}){var s,n,i,l;const c=this.config.headers?await resolve10(this.config.headers):void 0;try{const{responseHeaders:d,value:u,rawValue:p}=await postJsonToApi7({url:this.getUrl(),headers:combineHeaders7(c,null!=t?t:{},this.getModelConfigHeaders(),await resolve10(this.config.o11yHeaders)),body:{audio:e instanceof Uint8Array?convertUint8ArrayToBase643(e):e,mediaType:a,...r&&{providerOptions:r}},successfulResponseHandler:createJsonResponseHandler9(gatewayTranscriptionResponseSchema),failedResponseHandler:createJsonErrorResponseHandler10({errorSchema:z14.any(),errorToMessage:e=>e}),...o&&{abortSignal:o},fetch:this.config.fetch});return{text:u.text,segments:null!=(s=u.segments)?s:[],language:null!=(n=u.language)?n:void 0,durationInSeconds:null!=(i=u.durationInSeconds)?i:void 0,warnings:null!=(l=u.warnings)?l:[],providerMetadata:u.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:d,body:p}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(null!=c?c:{}))}}async doStream(e){var a,r,t,o,s;const n=null!=(t=null==(r=null==(a=this.config._internal)?void 0:a.currentDate)?void 0:r.call(a))?t:new Date,i=combineHeaders7(await resolve10(null!=(o=this.config.headers)?o:{}),null!=(s=e.headers)?s:{},this.getModelConfigHeaders(),await resolve10(this.config.o11yHeaders)),l=await parseAuthMethod(i),c={type:TRANSCRIPTION_STREAM_START_FRAME_TYPE,inputAudioFormat:e.inputAudioFormat,...null!=e.providerOptions&&{providerOptions:e.providerOptions},...null!=e.includeRawChunks&&{includeRawChunks:e.includeRawChunks}};return{stream:createGatewayTranscriptionStream({webSocket:this.config.webSocket,url:toGatewayTranscriptionUrl(this.config.baseURL,this.modelId),protocols:getProtocolsFromHeaders(i),headers:i,startFrame:c,audio:e.audio,abortSignal:e.abortSignal,authMethod:l}),request:{body:c},response:{timestamp:n,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/transcription-model`}getModelConfigHeaders(){return{"ai-transcription-model-specification-version":"4","ai-model-id":this.modelId}}};function toGatewayTranscriptionUrl(e,a){const r=new URL(`${e.replace(/^http/,"ws")}/transcription-model`);return r.searchParams.set("ai-model-id",a),r.toString()}function getProtocolsFromHeaders(e){const a=normalizeHeaders(e),r=a.authorization,t=(null==r?void 0:r.startsWith("Bearer "))?r.slice(7):void 0;return null==t?[GATEWAY_TRANSCRIPTION_SUBPROTOCOL]:getGatewayTranscriptionProtocols(t,{teamIdOrSlug:a[VERCEL_AI_GATEWAY_TEAM_HEADER]})}var MAX_AUDIO_FRAME_BYTES=65536;function createGatewayTranscriptionStream({webSocket:e,url:a,protocols:r,headers:t,startFrame:o,audio:s,abortSignal:n,authMethod:i}){let l=!1,c=()=>{};return new ReadableStream({start:d=>{let u,p,m,g=!1,h=!1;c=e=>{null!=u?u.cancel().catch(()=>{}):s.cancel().catch(()=>{}),null==m||m.close(e)};const y=e=>{l||(l=!0,c(),errorControllerWithGatewayError(d,e,i))};m=connectToWebSocket({url:a,protocols:r,headers:t,webSocket:e,abortSignal:n,onAbort:e=>{l||(l=!0,c(),d.error(e))},onProcessingError:y,onOpen:e=>{e.send(JSON.stringify(o)),(async e=>{const a=s.getReader();u=a;try{for(;;){const{done:r,value:t}=await a.read();if(r||l)break;const o="string"==typeof t?convertBase64ToUint8Array(t):t;for(let a=0;a<o.length&&!l;a+=MAX_AUDIO_FRAME_BYTES)e.send(o.subarray(a,a+MAX_AUDIO_FRAME_BYTES)),await waitForWebSocketBufferDrain(e)}}finally{a.releaseLock(),u===a&&(u=void 0)}l||h||e.send(JSON.stringify({type:TRANSCRIPTION_STREAM_AUDIO_DONE_FRAME_TYPE}))})(e).catch(y)},onMessageText:e=>{if(l)return;const a=parseTranscriptionStreamPart(e);if(null!=a){if("finish"===a.type)return l=!0,d.enqueue(a),d.close(),void c(1e3);"error"===a.type&&(g=!0,p=a.error,h=!0,null!=u?(u.cancel().catch(()=>{}),u=void 0):s.cancel().catch(()=>{})),d.enqueue(a)}},onSocketError:()=>{y(new Error("Connection error on AI Gateway transcription stream"))},onClose:()=>{if(g){if(l)return;createErrorFromServerErrorPart(p,i).then(y)}else y(new Error("AI Gateway transcription stream closed before a finish part was received"))}})},cancel:()=>{l||(l=!0,c())}})}var providerMetadataEntrySchema4=z14.object({}).catchall(z14.unknown()),gatewayTranscriptionWarningSchema=z14.discriminatedUnion("type",[z14.object({type:z14.literal("unsupported"),feature:z14.string(),details:z14.string().optional()}),z14.object({type:z14.literal("compatibility"),feature:z14.string(),details:z14.string().optional()}),z14.object({type:z14.literal("deprecated"),setting:z14.string(),message:z14.string()}),z14.object({type:z14.literal("other"),message:z14.string()})]),gatewayTranscriptionResponseSchema=z14.object({text:z14.string(),segments:z14.array(z14.object({text:z14.string(),startSecond:z14.number(),endSecond:z14.number()})).optional(),language:z14.string().nullish(),durationInSeconds:z14.number().nullish(),warnings:z14.array(gatewayTranscriptionWarningSchema).optional(),providerMetadata:z14.record(z14.string(),providerMetadataEntrySchema4).optional()});async function errorControllerWithGatewayError(e,a,r){e.error(await asGatewayError(a,r))}function getServerErrorMessage(e){return null!=e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:getErrorMessage(e)}var SERVER_ERROR_STATUS_CODES={authentication_error:401,failed_dependency:424,forbidden:403,internal_server_error:500,invalid_request_error:400,model_not_found:404,rate_limit_exceeded:429};async function createErrorFromServerErrorPart(e,a){return"object"==typeof e&&null!=e&&"message"in e&&"string"==typeof e.message&&"type"in e&&"string"==typeof e.type&&e.type in SERVER_ERROR_STATUS_CODES?createGatewayErrorFromResponse({response:{error:{message:e.message,type:e.type}},statusCode:SERVER_ERROR_STATUS_CODES[e.type],authMethod:a}):new Error(`AI Gateway transcription stream failed: ${getServerErrorMessage(e)}`)}var GatewayRealtimeModel=class{constructor(e,a){this.specificationVersion="v4",this.modelId=e,this.provider=a.provider,this.config=a}async doCreateClientSecret(e){const a=await this.config.createClientSecret({modelId:this.modelId,...null!=(null==e?void 0:e.expiresAfterSeconds)&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:a.token,url:toGatewayRealtimeUrl(this.config.baseURL,this.modelId),...null!=a.expiresAt&&{expiresAt:a.expiresAt}}}getWebSocketConfig(e){return{url:e.url,protocols:getGatewayRealtimeProtocols(e.token,{teamIdOrSlug:this.config.teamIdOrSlug})}}parseServerEvent(e){return e}serializeClientEvent(e){return e}buildSessionConfig(e){return e}};function toGatewayRealtimeUrl(e,a){const r=new URL(`${e.replace(/^http/,"ws")}/realtime-model`);return r.searchParams.set("ai-model-id",a),r.toString()}import{createProviderExecutedToolFactory,lazySchema as lazySchema10,zodSchema as zodSchema10}from"@ai-sdk/provider-utils";import{z as z15}from"zod/v4";var exaSearchInputSchema=lazySchema10(()=>zodSchema10(z15.object({query:z15.string().describe("Natural-language web search query. This is required."),type:z15.enum(["auto","fast","instant"]).optional().describe("Search method. Use auto for the default balance of speed and quality."),num_results:z15.number().optional().describe("Maximum number of results to return (1-100, default: 10)."),category:z15.enum(["company","people","research paper","news","personal site","financial report"]).optional().describe("Optional content category to focus results."),user_location:z15.string().optional().describe("Two-letter ISO country code such as 'US'."),include_domains:z15.array(z15.string()).optional().describe("Only return results from these domains."),exclude_domains:z15.array(z15.string()).optional().describe("Exclude results from these domains."),start_published_date:z15.string().optional().describe("Only return links published after this ISO 8601 date."),end_published_date:z15.string().optional().describe("Only return links published before this ISO 8601 date."),contents:z15.object({text:z15.union([z15.boolean(),z15.object({max_characters:z15.number().optional(),include_html_tags:z15.boolean().optional(),verbosity:z15.enum(["compact","standard","full"]).optional(),include_sections:z15.array(z15.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional(),exclude_sections:z15.array(z15.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional()})]).optional(),highlights:z15.union([z15.boolean(),z15.object({query:z15.string().optional(),max_characters:z15.number().optional()})]).optional(),max_age_hours:z15.number().optional(),livecrawl_timeout:z15.number().optional(),subpages:z15.number().optional(),subpage_target:z15.union([z15.string(),z15.array(z15.string())]).optional(),extras:z15.object({links:z15.number().optional(),image_links:z15.number().optional()}).optional()}).optional().describe("Controls extracted page content and freshness.")}))),exaSearchOutputSchema=lazySchema10(()=>zodSchema10(z15.union([z15.object({requestId:z15.string(),searchType:z15.string().optional(),resolvedSearchType:z15.string().optional(),results:z15.array(z15.object({title:z15.string(),url:z15.string(),id:z15.string(),publishedDate:z15.string().nullable().optional(),author:z15.string().nullable().optional(),image:z15.string().nullable().optional(),favicon:z15.string().nullable().optional(),text:z15.string().optional(),highlights:z15.array(z15.string()).optional(),highlightScores:z15.array(z15.number()).optional(),summary:z15.string().optional(),subpages:z15.array(z15.any()).optional(),extras:z15.object({links:z15.array(z15.string()).optional(),imageLinks:z15.array(z15.string()).optional()}).optional()})),costDollars:z15.object({total:z15.number().optional(),search:z15.record(z15.string(),z15.number()).optional()}).optional()}),z15.object({error:z15.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","execution_error","unknown"]),statusCode:z15.number().optional(),message:z15.string()})]))),exaSearchToolFactory=createProviderExecutedToolFactory({id:"gateway.exa_search",inputSchema:exaSearchInputSchema,outputSchema:exaSearchOutputSchema}),exaSearch=(e={})=>exaSearchToolFactory(e);import{createProviderExecutedToolFactory as createProviderExecutedToolFactory2,lazySchema as lazySchema11,zodSchema as zodSchema11}from"@ai-sdk/provider-utils";import{z as z16}from"zod/v4";var parallelSearchInputSchema=lazySchema11(()=>zodSchema11(z16.object({objective:z16.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:z16.array(z16.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:z16.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:z16.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:z16.object({include_domains:z16.array(z16.string()).optional().describe("Limit results to these domains. Use plain domain names only — e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),exclude_domains:z16.array(z16.string()).optional().describe("Exclude results from these domains. Use plain domain names only — e.g. example.com or sub.example.gov, or a bare extension like .edu. Do not include a scheme, path, or port (e.g. not https://example.com/page)."),after_date:z16.string().optional().describe("Only include results published after this date. Use an ISO 8601 calendar date formatted YYYY-MM-DD (e.g. 2025-01-01); do not include a time.")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:z16.object({max_chars_per_result:z16.number().optional().describe("Maximum characters per result."),max_chars_total:z16.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:z16.object({max_age_seconds:z16.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),parallelSearchOutputSchema=lazySchema11(()=>zodSchema11(z16.union([z16.object({searchId:z16.string(),results:z16.array(z16.object({url:z16.string(),title:z16.string(),excerpt:z16.string(),publishDate:z16.string().nullable().optional(),relevanceScore:z16.number().optional()}))}),z16.object({error:z16.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:z16.number().optional(),message:z16.string()})]))),parallelSearchToolFactory=createProviderExecutedToolFactory2({id:"gateway.parallel_search",inputSchema:parallelSearchInputSchema,outputSchema:parallelSearchOutputSchema}),parallelSearch=(e={})=>parallelSearchToolFactory(e);import{createProviderExecutedToolFactory as createProviderExecutedToolFactory3,lazySchema as lazySchema12,zodSchema as zodSchema12}from"@ai-sdk/provider-utils";import{z as z17}from"zod/v4";var perplexitySearchInputSchema=lazySchema12(()=>zodSchema12(z17.object({query:z17.union([z17.string(),z17.array(z17.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:z17.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:z17.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:z17.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:z17.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:z17.array(z17.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:z17.array(z17.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:z17.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:z17.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:z17.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:z17.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:z17.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),perplexitySearchOutputSchema=lazySchema12(()=>zodSchema12(z17.union([z17.object({results:z17.array(z17.object({title:z17.string(),url:z17.string(),snippet:z17.string(),date:z17.string().optional(),lastUpdated:z17.string().optional()})),id:z17.string()}),z17.object({error:z17.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:z17.number().optional(),message:z17.string()})]))),perplexitySearchToolFactory=createProviderExecutedToolFactory3({id:"gateway.perplexity_search",inputSchema:perplexitySearchInputSchema,outputSchema:perplexitySearchOutputSchema}),perplexitySearch=(e={})=>perplexitySearchToolFactory(e),gatewayTools={exaSearch:exaSearch,parallelSearch:parallelSearch,perplexitySearch:perplexitySearch};import{getContext}from"@vercel/oidc";import{getVercelOidcToken}from"@vercel/oidc";async function getVercelRequestId(){var e;return null==(e=getContext().headers)?void 0:e["x-vercel-id"]}var VERSION="4.0.22",AI_GATEWAY_PROTOCOL_VERSION="0.0.1",gatewayClientSecretResponseSchema=z18.object({token:z18.string(),expiresAt:z18.number().nullish()});function createGateway(e={}){var a,r;let t=null,o=null;const s=null!=(a=e.metadataCacheRefreshMillis)?a:3e5;let n=0;const i=null!=(r=withoutTrailingSlash(e.baseURL))?r:"https://ai-gateway.vercel.sh/v4/ai",l=a=>withUserAgentSuffix({Authorization:`Bearer ${a.token}`,"ai-gateway-protocol-version":AI_GATEWAY_PROTOCOL_VERSION,[GATEWAY_AUTH_METHOD_HEADER]:a.authMethod,...null!=e.teamIdOrSlug?{[VERCEL_AI_GATEWAY_TEAM_HEADER]:e.teamIdOrSlug}:{},...e.headers},`ai-sdk/gateway/${VERSION}`),c=async()=>{try{return l(await getGatewayAuthToken(e))}catch(e){throw GatewayAuthenticationError.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},d=async a=>{assertGatewayClientSecretServerEnvironment();const r=await(async()=>{try{return await getGatewayAuthToken(e)}catch(e){throw GatewayAuthenticationError.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}})(),t=l(r),o=new URL("/v1/realtime/client-secrets",i).toString();try{const{value:r}=await postJsonToApi8({url:o,headers:t,body:{model:a.modelId,...null!=a.routeKind&&{routeKind:a.routeKind},...null!=a.expiresAfterSeconds&&{expiresIn:a.expiresAfterSeconds}},successfulResponseHandler:createJsonResponseHandler10(gatewayClientSecretResponseSchema),failedResponseHandler:createJsonErrorResponseHandler11({errorSchema:z18.any(),errorToMessage:e=>e}),fetch:e.fetch});return{token:r.token,...null!=r.expiresAt&&{expiresAt:r.expiresAt}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(t))}},u=()=>{const e=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),a=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),r=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),t=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{const o=await getVercelRequestId();return{...e&&{"ai-o11y-deployment-id":e},...a&&{"ai-o11y-environment":a},...r&&{"ai-o11y-region":r},...o&&{"ai-o11y-request-id":o},...t&&{"ai-o11y-project-id":t}}}},p=a=>new GatewayLanguageModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()}),m=function(e){if(new.target)throw new Error("The Gateway Provider model function cannot be called with the new keyword.");return p(e)};m.specificationVersion="v4",m.getAvailableModels=async()=>{var a,r,l;const d=null!=(l=null==(r=null==(a=e._internal)?void 0:a.currentDate)?void 0:r.call(a).getTime())?l:Date.now();return(!t||d-n>s)&&(n=d,t=new GatewayFetchMetadata({baseURL:i,headers:c,fetch:e.fetch}).getAvailableModels().then(e=>(o=e,e)).catch(async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))})),o?Promise.resolve(o):t},m.getCredits=async()=>new GatewayFetchMetadata({baseURL:i,headers:c,fetch:e.fetch}).getCredits().catch(async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))}),m.getSpendReport=async a=>new GatewaySpendReport({baseURL:i,headers:c,fetch:e.fetch}).getSpendReport(a).catch(async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))}),m.getGenerationInfo=async a=>new GatewayGenerationInfoFetcher({baseURL:i,headers:c,fetch:e.fetch}).getGenerationInfo(a).catch(async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))}),m.imageModel=a=>new GatewayImageModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()}),m.languageModel=p;const g=a=>new GatewayEmbeddingModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()});m.embeddingModel=g,m.textEmbeddingModel=g,m.videoModel=a=>new GatewayVideoModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()});const h=a=>new GatewayRerankingModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()});m.rerankingModel=h,m.reranking=h;const y=a=>new GatewaySpeechModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()});m.speechModel=y,m.speech=y;const z=a=>new GatewayTranscriptionModel(a,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u(),webSocket:e.webSocket});m.transcriptionModel=z,m.transcription=z,m.experimental_transcription=Object.assign(e=>z(e),{getToken:async e=>{const a=await d({modelId:e.model,routeKind:"transcription",...null!=e.expiresAfterSeconds&&{expiresAfterSeconds:e.expiresAfterSeconds}});return{token:a.token,url:toGatewayTranscriptionUrl(i,e.model),...null!=a.expiresAt&&{expiresAt:a.expiresAt}}}});const f=a=>new GatewayRealtimeModel(a,{provider:"gateway.realtime",baseURL:i,teamIdOrSlug:e.teamIdOrSlug,createClientSecret:d});return m.experimental_realtime=Object.assign(e=>f(e),{getToken:async e=>{const{model:a,...r}=e,t=f(a),o=await t.doCreateClientSecret(r);return{token:o.token,url:o.url,...null!=o.expiresAt&&{expiresAt:o.expiresAt}}}}),m.chat=m.languageModel,m.embedding=m.embeddingModel,m.image=m.imageModel,m.video=m.videoModel,m.tools=gatewayTools,m}var gateway=createGateway();async function getGatewayAuthToken(e){const a=loadOptionalSetting({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(a)return{token:a,authMethod:"api-key"};return{token:await getVercelOidcToken(),authMethod:"oidc"}}function assertGatewayClientSecretServerEnvironment(){if(void 0!==globalThis.window)throw new Error("AI Gateway client secrets must be minted server-side: minting needs your Gateway credential, which must never reach the browser. Call gateway.experimental_realtime.getToken() or gateway.experimental_transcription.getToken() from your server and pass the returned token to the client.")}export{GATEWAY_AUTH_SUBPROTOCOL_PREFIX,GATEWAY_REALTIME_SUBPROTOCOL,GATEWAY_TEAM_SUBPROTOCOL_PREFIX,GATEWAY_TRANSCRIPTION_SUBPROTOCOL,GatewayAuthenticationError,GatewayError,GatewayFailedDependencyError,GatewayForbiddenError,GatewayInternalServerError,GatewayInvalidRequestError,GatewayModelNotFoundError,GatewayRateLimitError,GatewayResponseError,VERSION,createGateway,createGateway as createGatewayProvider,gateway,getGatewayRealtimeAuthToken,getGatewayRealtimeProtocols,getGatewayRealtimeTeamIdOrSlug,getGatewayTranscriptionProtocols};
//# sourceMappingURL=/sm/20fbcc661e2c052e7e5f9ef814f271d560ca8a4b2e2d57b83df4117636cdc1e7.map