murmur-rag 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -19
- package/dist/cdn/{anthropic-dc7h9prc.js → anthropic-tw416spz.js} +2 -2
- package/dist/cdn/chunk-xyp6nm65.js +1 -0
- package/dist/cdn/{embed-fd96s8qk.js → embed-3am76qfd.js} +9 -9
- package/dist/cdn/embed-50pfy67v.js +83 -0
- package/dist/cdn/{embed-z32y952f.js → embed-cx1r66ch.js} +6 -6
- package/dist/cdn/{embed-ssqsb38w.js → embed-g0p6yc29.js} +2 -2
- package/dist/cdn/{embed-krrjjyf5.js → embed-q81wdr1z.js} +4 -4
- package/dist/cdn/embed-rjpq8psf.js +10 -0
- package/dist/cdn/{embed-acjpjh6t.js → embed-yz75savs.js} +3 -3
- package/dist/cdn/{google-yywkqdph.js → google-556tp13p.js} +8 -8
- package/dist/cdn/index-8r44b2wt.js +1 -0
- package/dist/cdn/index-a5j4aat5.js +1 -0
- package/dist/cdn/index-ft8r539a.js +1 -0
- package/dist/cdn/index-pjxy71n5.js +1 -0
- package/dist/cdn/{index-gyd02jvt.js → index-qpy1k923.js} +2 -2
- package/dist/cdn/mistral-25w1nsx5.js +3 -0
- package/dist/cdn/{murmur-j1ky5vmr.js → murmur-1a55et82.js} +3 -3
- package/dist/cdn/murmur.js +7 -7
- package/dist/cdn/openai-bjrbem49.js +18 -0
- package/dist/cdn/{openai-compatible-zhaj1r43.js → openai-compatible-sg25g0vj.js} +6 -6
- package/dist/cdn/retriever-06ybegpd.js +1 -0
- package/dist/cdn/{transformers.web-3kmbvcbt.js → transformers.web-49m0ht4a.js} +9 -9
- package/dist/lib/chunks/{index-92w507gk.js → index-4ftk20yq.js} +164 -50
- package/dist/lib/embed.js +10 -4
- package/dist/lib/llm/index.js +23 -0
- package/dist/lib/local/index.js +38 -2
- package/dist/lib/widget/index.js +2 -2
- package/dist/types/llm/index.d.ts +8 -0
- package/dist/types/local/index.d.ts +12 -0
- package/dist/types/widget/element.d.ts +4 -0
- package/dist/types/widget/i18n.d.ts +1 -0
- package/dist/types/widget/session.d.ts +56 -8
- package/dist/types/widget/styles.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cdn/chunk-hpx6rpea.js +0 -1
- package/dist/cdn/embed-6gef7ym5.js +0 -10
- package/dist/cdn/embed-jdraznwg.js +0 -83
- package/dist/cdn/index-bq0x71h1.js +0 -1
- package/dist/cdn/index-jt6n0d28.js +0 -1
- package/dist/cdn/index-nesgnf2n.js +0 -1
- package/dist/cdn/index-wgzgvzaf.js +0 -1
- package/dist/cdn/mistral-0mg4kk7s.js +0 -3
- package/dist/cdn/openai-g1685z9v.js +0 -18
- package/dist/cdn/retriever-dqxzjaqk.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{wn,At}from"./embed-cx1r66ch.js";import{m,w,A,b,ye,u,e,r,c,Je,ie,v,Ae,o,t,U,l,f,y,i,n,je,Xt,en,G,k,T,qe,d,ue,fe,ae,j,X,lt,Fe,ke,Z,ze,F,Te,K,ct,B,jt,qt,kt,Pe,V,R,Tt,sn,Qe,pe,ge,Q,a,Be,s,x,q,J,mt,h,g,S,_,ln,I,D,p,_e,E,dn,pn,mn,fn,hn,gn,_n,Y,zt,yn,Mt}from"./embed-50pfy67v.js";var ls=At(function(Wf,is){var{defineProperty:Xo,getOwnPropertyDescriptor:vc,getOwnPropertyNames:wc}=Object,bc=Object.prototype.hasOwnProperty,Sc=(M,C)=>{for(var O in C)Xo(M,O,{get:C[O],enumerable:!0})},Ic=(M,C,O,L)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let W of wc(C))if(!bc.call(M,W)&&W!==O)Xo(M,W,{get:()=>C[W],enumerable:!(L=vc(C,W))||L.enumerable})}return M},Tc=(M)=>Ic(Xo({},"__esModule",{value:!0}),M),ns={};Sc(ns,{SYMBOL_FOR_REQ_CONTEXT:()=>ss,getContext:()=>xc});is.exports=Tc(ns);var ss=Symbol.for("@vercel/request-context");function xc(){return globalThis[ss]?.get?.()??{}}});var ms=At(function(Hf,ps){var{defineProperty:Zo,getOwnPropertyDescriptor:Ec,getOwnPropertyNames:Mc}=Object,Cc=Object.prototype.hasOwnProperty,Rc=(M,C)=>{for(var O in C)Zo(M,O,{get:C[O],enumerable:!0})},_c=(M,C,O,L)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let W of Mc(C))if(!Cc.call(M,W)&&W!==O)Zo(M,W,{get:()=>C[W],enumerable:!(L=Ec(C,W))||L.enumerable})}return M},Ac=(M)=>_c(Zo({},"__esModule",{value:!0}),M),cs={};Rc(cs,{AccessTokenMissingError:()=>ds,RefreshAccessTokenFailedError:()=>us});ps.exports=Ac(cs);class ds extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class us extends Error{constructor(M){super("Failed to refresh authentication token.",{cause:M});this.name="RefreshAccessTokenFailedError"}}});var ys=At(function(zf,gs){var{defineProperty:tn,getOwnPropertyDescriptor:kc,getOwnPropertyNames:Pc}=Object,Oc=Object.prototype.hasOwnProperty,jc=(M,C)=>{for(var O in C)tn(M,O,{get:C[O],enumerable:!0})},Nc=(M,C,O,L)=>{if(C&&typeof C==="object"||typeof C==="function"){for(let W of Pc(C))if(!Oc.call(M,W)&&W!==O)tn(M,W,{get:()=>C[W],enumerable:!(L=kc(C,W))||L.enumerable})}return M},Dc=(M)=>Nc(tn({},"__esModule",{value:!0}),M),hs={};jc(hs,{AccessTokenMissingError:()=>fs.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>fs.RefreshAccessTokenFailedError,getContext:()=>qc.getContext,getVercelOidcToken:()=>$c,getVercelOidcTokenSync:()=>Uc,getVercelToken:()=>Lc});gs.exports=Dc(hs);var qc=ls(),fs=ms();async function $c(){return""}function Uc(){return""}async function Lc(){throw Error("getVercelToken is not supported in browser environments")}});var Co=wn(ys(),1),Fc="ai-gateway-realtime.v1",Bs="ai-gateway-transcription.v1",Ws="ai-gateway-speech.v1",Gc="ai-gateway-auth.",Vc="ai-gateway-team.";function Bc(M,C){return un(Fc,M,C)}function Wc(M,C){return un(Bs,M,C)}function Hc(M,C){return un(Ws,M,C)}function un(M,C,O){let L=[M,`${Gc}${C}`];if(O?.teamIdOrSlug)L.push(`${Vc}${zc(O.teamIdOrSlug)}`);return L}function zc(M){let C=new TextEncoder().encode(M),O="";for(let L of C)O+=String.fromCharCode(L);return btoa(O).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/u,"")}var P={any:ie,array:o,boolean:c,discriminatedUnion:f,enum:i,literal:n,json:G,number:r,object:t,record:y,string:e,union:l,unknown:v},rn=Symbol.for("vercel.ai.gateway.error"),ft=class M extends Error{constructor({message:C,statusCode:O=500,cause:L,generationId:W,isRetryable:ee=O!=null&&(O===408||O===409||O===429||O>=500)}){super(W?`${C} [${W}]`:C);this[rn]=!0,this.statusCode=O,this.cause=L,this.generationId=W,this.isRetryable=ee}static isInstance(C){return M.hasMarker(C)}static hasMarker(C){return typeof C==="object"&&C!==null&&rn in C&&C[rn]===!0}},Hs="GatewayAuthenticationError",Kc=`vercel.ai.gateway.error.${Hs}`,vs=Symbol.for(Kc),Qa=class M extends ft{constructor({message:C="Authentication failed",statusCode:O=401,cause:L,generationId:W}={}){super({message:C,statusCode:O,cause:L,generationId:W});this[vs]=!0,this.name=Hs,this.type="authentication_error"}static isInstance(C){return ft.hasMarker(C)&&vs in C}static createContextualError({apiKeyProvided:C,oidcTokenProvided:O,statusCode:L=401,cause:W,generationId:ee}){let H;if(C)H=`AI Gateway authentication failed: Invalid API key or token.
|
|
2
2
|
|
|
3
3
|
Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
4
4
|
|
|
@@ -17,9 +17,9 @@ Option 2 - Vercel access token:
|
|
|
17
17
|
Pass a Vercel personal access token or Vercel app access token via the 'apiKey' option.
|
|
18
18
|
|
|
19
19
|
Option 3 - OIDC token:
|
|
20
|
-
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;return new M({message:H,statusCode:
|
|
20
|
+
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;return new M({message:H,statusCode:L,cause:W,generationId:ee})}},zs="GatewayInvalidRequestError",Jc=`vercel.ai.gateway.error.${zs}`,ws=Symbol.for(Jc),Yc=class extends ft{constructor({message:M="Invalid request",statusCode:C=400,cause:O,generationId:L}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[ws]=!0,this.name=zs,this.type="invalid_request_error"}static isInstance(M){return ft.hasMarker(M)&&ws in M}},Ks="GatewayRateLimitError",Qc=`vercel.ai.gateway.error.${Ks}`,bs=Symbol.for(Qc),Xc=class extends ft{constructor({message:M="Rate limit exceeded",statusCode:C=429,cause:O,generationId:L}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[bs]=!0,this.name=Ks,this.type="rate_limit_exceeded"}static isInstance(M){return ft.hasMarker(M)&&bs in M}},Js="GatewayModelNotFoundError",Zc=`vercel.ai.gateway.error.${Js}`,Ss=Symbol.for(Zc),ed=a(()=>s(P.object({modelId:P.string()}))),td=class extends ft{constructor({message:M="Model not found",statusCode:C=404,modelId:O,cause:L,generationId:W}={}){super({message:M,statusCode:C,cause:L,generationId:W});this[Ss]=!0,this.name=Js,this.type="model_not_found",this.modelId=O}static isInstance(M){return ft.hasMarker(M)&&Ss in M}},Ys="GatewayNotFoundError",rd=`vercel.ai.gateway.error.${Ys}`,Is=Symbol.for(rd),ad=class extends ft{constructor({message:M="Resource not found",statusCode:C=404,cause:O,generationId:L}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[Is]=!0,this.name=Ys,this.type="not_found"}static isInstance(M){return ft.hasMarker(M)&&Is in M}},Qs="GatewayInternalServerError",od=`vercel.ai.gateway.error.${Qs}`,Ts=Symbol.for(od),xs=class extends ft{constructor({message:M="Internal server error",statusCode:C=500,cause:O,generationId:L}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[Ts]=!0,this.name=Qs,this.type="internal_server_error"}static isInstance(M){return ft.hasMarker(M)&&Ts in M}},Xs="GatewayFailedDependencyError",nd=`vercel.ai.gateway.error.${Xs}`,Es=Symbol.for(nd),sd=class extends ft{constructor({message:M="Failed dependency",statusCode:C=424,cause:O,generationId:L}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[Es]=!0,this.name=Xs,this.type="failed_dependency"}static isInstance(M){return ft.hasMarker(M)&&Es in M}},Zs="GatewayForbiddenError",id=`vercel.ai.gateway.error.${Zs}`,Ms=Symbol.for(id),ld=a(()=>s(P.object({ruleId:P.string()}))),cd=class extends ft{constructor({message:M="Forbidden",statusCode:C=403,cause:O,generationId:L,ruleId:W}={}){super({message:M,statusCode:C,cause:O,generationId:L});this[Ms]=!0,this.name=Zs,this.type="forbidden",this.ruleId=W}static isInstance(M){return ft.hasMarker(M)&&Ms in M}},ei="GatewayResponseError",dd=`vercel.ai.gateway.error.${ei}`,Cs=Symbol.for(dd),ud=class extends ft{constructor({message:M="Invalid response from Gateway",statusCode:C=502,response:O,validationError:L,cause:W,generationId:ee,isRetryable:H}={}){super({message:M,statusCode:C,cause:W,generationId:ee,isRetryable:H});this[Cs]=!0,this.name=ei,this.type="response_error",this.response=O,this.validationError=L}static isInstance(M){return ft.hasMarker(M)&&Cs in M}};async function on({response:M,statusCode:C,defaultMessage:O="Gateway request failed",cause:L,authMethod:W,isRetryable:ee}){let H=await q({value:M,schema:pd});if(!H.success){let oe=typeof M==="object"&&M!==null&&"generationId"in M?M.generationId:void 0;return new ud({message:`Invalid error response format: ${O}`,statusCode:C,response:M,validationError:H.error,cause:L,generationId:oe,isRetryable:ee})}let te=H.value,re=te.error.type,ne=te.error.message,z=te.generationId??void 0;switch(re){case"authentication_error":return Qa.createContextualError({apiKeyProvided:W==="api-key",oidcTokenProvided:W==="oidc",statusCode:C,cause:L,generationId:z});case"invalid_request_error":return new Yc({message:ne,statusCode:C,cause:L,generationId:z});case"rate_limit_exceeded":return new Xc({message:ne,statusCode:C,cause:L,generationId:z});case"model_not_found":{let oe=await q({value:te.error.param,schema:ed});return new td({message:ne,statusCode:C,modelId:oe.success?oe.value.modelId:void 0,cause:L,generationId:z})}case"not_found":return new ad({message:ne,statusCode:C,cause:L,generationId:z});case"internal_server_error":return new xs({message:ne,statusCode:C,cause:L,generationId:z});case"failed_dependency":return new sd({message:ne,statusCode:C,cause:L,generationId:z});case"forbidden":{let oe=await q({value:te.error.param,schema:ld});return new cd({message:ne,statusCode:C,cause:L,generationId:z,ruleId:oe.success?oe.value.ruleId:void 0})}default:return new xs({message:ne,statusCode:C,cause:L,generationId:z})}}var pd=a(()=>s(P.object({error:P.object({message:P.string(),type:P.string().nullish(),param:P.unknown().nullish(),code:P.union([P.string(),P.number()]).nullish()}),generationId:P.string().nullish()})));function md(M){if(M.data!==void 0)return M.data;if(M.responseBody!=null)try{return Q(M.responseBody)}catch{return M.responseBody}return{}}var ti="GatewayTimeoutError",fd=`vercel.ai.gateway.error.${ti}`,Rs=Symbol.for(fd),_s=class M extends ft{constructor({message:C="Request timed out",statusCode:O=408,cause:L,generationId:W}={}){super({message:C,statusCode:O,cause:L,generationId:W});this[Rs]=!0,this.name=ti,this.type="timeout_error"}static isInstance(C){return ft.hasMarker(C)&&Rs in C}static createTimeoutError({originalMessage:C,statusCode:O=408,cause:L,generationId:W}){let ee=`Gateway request timed out: ${C}
|
|
21
21
|
|
|
22
|
-
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`;return new M({message:ee,statusCode:O,cause:F,generationId:W})}};function As(M){if(!(M instanceof Error))return!1;let C=M.code;if(typeof C==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(C);return!1}async function pt(M,C){if(ft.isInstance(M))return M;if(As(M))return _s.createTimeoutError({originalMessage:M instanceof Error?M.message:"Unknown error",cause:M});if(w.isInstance(M)){if(M.cause&&As(M.cause))return _s.createTimeoutError({originalMessage:M.message,cause:M});return await sn({response:md(M),statusCode:M.statusCode??500,defaultMessage:"Gateway request failed",cause:M,authMethod:C,isRetryable:M.isRetryable&&(M.statusCode==null||M.statusCode<400)?!0:void 0})}return await sn({response:{},statusCode:500,defaultMessage:M instanceof Error?`Gateway request failed: ${M.message}`:"Unknown Gateway error",cause:M,authMethod:C})}var ri="ai-gateway-auth-method",ai="x-vercel-ai-gateway-team";async function yt(M){let C=await j({value:M[ri],schema:hd});return C.success?C.value:void 0}var hd=a(()=>s(P.union([P.literal("api-key"),P.literal("oidc")]))),gd=["embedding","decision","evaluation","image","language","realtime","reranking","speech","transcription","video"],ks=class{constructor(M){this.config=M}async getAvailableModels(){try{let{value:M}=await R({url:`${this.config.baseURL}/config`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(vd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(C)=>A(C)??"unknown error"}),fetch:this.config.fetch});return M}catch(M){throw await pt(M)}}async getCredits(){try{let M=new URL(this.config.baseURL),C=this.config.headers?await _(this.config.headers):void 0,O=new URL("/v1/credits",M.origin),F=yd(C);if(F)O.searchParams.set(F.startsWith("team_")?"teamId":"slug",F);let{value:W}=await R({url:O.toString(),validateUrl:!1,headers:C,successfulResponseHandler:p(wd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),fetch:this.config.fetch});return W}catch(M){throw await pt(M)}}};function yd(M){if(!M)return;for(let[C,O]of Object.entries(M))if(C.toLowerCase()==="x-vercel-ai-gateway-team")return O?.trim()||void 0}var vd=a(()=>s(P.object({models:P.array(P.object({id:P.string(),name:P.string(),description:P.string().nullish(),pricing:P.object({input:P.string(),output:P.string(),input_cache_read:P.string().nullish(),input_cache_write:P.string().nullish()}).transform(({input:M,output:C,input_cache_read:O,input_cache_write:F})=>({input:M,output:C,...O?{cachedInputTokens:O}:{},...F?{cacheCreationInputTokens:F}:{}})).nullish(),specification:P.object({specificationVersion:P.literal("v4"),provider:P.string(),modelId:P.string()}),modelType:P.string().nullish()})).transform((M)=>M.filter((C)=>C.modelType==null||gd.includes(C.modelType)))}))),wd=a(()=>s(P.object({balance:P.string(),total_used:P.string()}).transform(({balance:M,total_used:C})=>({balance:M,totalUsed:C})))),bd=class{constructor(M){this.config=M}async getSpendReport(M){try{let C=new URL(this.config.baseURL),O=new URLSearchParams;if(O.set("start_date",M.startDate),O.set("end_date",M.endDate),M.groupBy)O.set("group_by",M.groupBy);if(M.datePart)O.set("date_part",M.datePart);if(M.userId)O.set("user_id",M.userId);if(M.model)O.set("model",M.model);if(M.provider)O.set("provider",M.provider);if(M.credentialType)O.set("credential_type",M.credentialType);if(M.tags&&M.tags.length>0)O.set("tags",M.tags.join(","));let{value:F}=await R({url:`${C.origin}/v1/report?${O.toString()}`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(Sd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(W)=>A(W)??"unknown error"}),fetch:this.config.fetch});return F}catch(C){throw await pt(C)}}},Sd=a(()=>s(P.object({results:P.array(P.object({day:P.string().optional(),hour:P.string().optional(),user:P.string().optional(),model:P.string().optional(),tag:P.string().optional(),provider:P.string().optional(),credential_type:P.enum(["byok","system"]).optional(),total_cost:P.number(),market_cost:P.number().optional(),input_tokens:P.number().optional(),output_tokens:P.number().optional(),cached_input_tokens:P.number().optional(),cache_creation_input_tokens:P.number().optional(),reasoning_tokens:P.number().optional(),request_count:P.number().optional()}).transform(({credential_type:M,total_cost:C,market_cost:O,input_tokens:F,output_tokens:W,cached_input_tokens:ee,cache_creation_input_tokens:H,reasoning_tokens:te,request_count:re,...ne})=>({...ne,...M!==void 0?{credentialType:M}:{},totalCost:C,...O!==void 0?{marketCost:O}:{},...F!==void 0?{inputTokens:F}:{},...W!==void 0?{outputTokens:W}:{},...ee!==void 0?{cachedInputTokens:ee}:{},...H!==void 0?{cacheCreationInputTokens:H}:{},...te!==void 0?{reasoningTokens:te}:{},...re!==void 0?{requestCount:re}:{}})))}))),Id=class{constructor(M){this.config=M}async getGenerationInfo(M){try{let C=new URL(this.config.baseURL),{value:O}=await R({url:`${C.origin}/v1/generation?id=${encodeURIComponent(M.id)}`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(Td),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(F)=>A(F)??"unknown error"}),fetch:this.config.fetch});return O}catch(C){throw await pt(C)}}},Td=a(()=>s(P.object({data:P.object({id:P.string(),total_cost:P.number(),upstream_inference_cost:P.number(),usage:P.number(),created_at:P.string(),model:P.string(),is_byok:P.boolean(),provider_name:P.string(),streamed:P.boolean(),finish_reason:P.string(),latency:P.number(),generation_time:P.number(),native_tokens_prompt:P.number(),native_tokens_completion:P.number(),native_tokens_reasoning:P.number(),native_tokens_cached:P.number(),native_tokens_cache_creation:P.number(),billable_web_search_calls:P.number()}).transform(({total_cost:M,upstream_inference_cost:C,created_at:O,is_byok:F,provider_name:W,finish_reason:ee,generation_time:H,native_tokens_prompt:te,native_tokens_completion:re,native_tokens_reasoning:ne,native_tokens_cached:z,native_tokens_cache_creation:oe,billable_web_search_calls:se,...de})=>({...de,totalCost:M,upstreamInferenceCost:C,createdAt:O,isByok:F,providerName:W,finishReason:ee,generationTime:H,promptTokens:te,completionTokens:re,reasoningTokens:ne,cachedTokens:z,cacheCreationTokens:oe,billableWebSearchCalls:se}))}).transform(({data:M})=>M))),xd=class{constructor(M){this.config=M,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]},this.provider=`${M.provider}.batch`}async doStartBatch({requests:M,providerOptions:C,headers:O,abortSignal:F,webhookUrl:W}){Cd(M);let ee=Md(M),H=this.config.headers?await _(this.config.headers):void 0,te=Rd(C),re=_d(C);try{let{value:ne}=await g({url:this.getBatchUrl("start"),headers:d(H,O,{"ai-model-id":ee},await _(this.config.o11yHeaders),te!=null?{"idempotency-key":te}:void 0),body:{...W!=null&&{callbackUrl:W},requests:M.map((z)=>({id:z.id,type:z.type,modelId:z.modelId,options:Ed(z.options)})),...re!=null&&{providerOptions:re}},successfulResponseHandler:p(Nd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...F&&{abortSignal:F},fetch:this.config.fetch});return{batchId:ne.batchId,...Os(ne),warnings:ne.warnings??[]}}catch(ne){if(Mo(ne))throw ne;throw await pt(ne,await yt(H??{}))}}async doGetBatchStatus({batchId:M,headers:C,abortSignal:O}){let F=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("status"),headers:d(F,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:p(js),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return Os(W)}catch(W){if(Mo(W))throw W;throw await pt(W,await yt(F??{}))}}async doGetBatchResults({batchId:M,headers:C,abortSignal:O}){let F=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("results"),headers:d(F,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:_e(kd,{maxLineBytes:this.config.maxLineBytes}),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return ae(Ad(W))}catch(W){if(Mo(W))throw W;throw await pt(W,await yt(F??{}))}}async doCancelBatch({batchId:M,headers:C,abortSignal:O}){let F=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("cancel"),headers:d(F,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:p(js),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{...W.providerMetadata!=null&&{providerMetadata:W.providerMetadata}}}catch(W){if(Mo(W))throw W;throw await pt(W,await yt(F??{}))}}getBatchUrl(M){return`${this.config.baseURL}/batch/${M}`}};function Ed(M){for(let C of M.prompt){if(!Array.isArray(C.content))continue;for(let O of C.content)if(O.type==="file"||O.type==="reasoning-file")O.data=Ps(O.data);else if(O.type==="tool-result"&&O.output.type==="content"){for(let F of O.output.value)if(F.type==="file")F.data=Ps(F.data)}}return M}function Ps(M){if(M.type==="data"){let C=M.data;if(C instanceof Uint8Array)return{...M,data:Buffer.from(C).toString("base64")}}return M}function Md(M){let C=M[0]?.modelId;if(C==null)throw new b({argument:"requests",message:"The AI Gateway Batch API requires at least one request."});for(let O of M)if(O.modelId!==C)throw new b({argument:"requests",message:`The AI Gateway Batch API requires all requests in a batch to use the same model. Found "${C}" and "${O.modelId}".`});return C}function Cd(M){for(let C of M){let O=C.type;if(O!=="text")throw new u({functionality:`batch request type: ${O}`,message:`The AI Gateway Batch API does not support batch requests with type "${O}".`})}}function Rd(M){let C=M?.gateway;if(C==null||typeof C!=="object"||Array.isArray(C))return;let O=C.idempotencyKey;return typeof O==="string"&&O.length>0?O:void 0}function _d(M){let C=M?.gateway;if(C==null||typeof C!=="object"||Array.isArray(C)||!("idempotencyKey"in C))return M;let{idempotencyKey:O,...F}=C,W={...M};if(Object.keys(F).length===0)delete W.gateway;else W.gateway=F;if(Object.keys(W).length===0)return;return W}function Mo(M){if(!(M instanceof Error||M instanceof DOMException))return!1;return M.name==="AbortError"||M.name==="TimeoutError"}function Os(M){let C=ge({total:M.requestCounts?.total,pending:M.requestCounts?.pending,completed:M.requestCounts?.completed,failed:M.requestCounts?.failed});return{status:M.status,...M.rawStatus!=null&&{rawStatus:M.rawStatus},...C!=null&&{requestCounts:C},...M.error!=null&&{error:{message:M.error.message,...M.error.type!=null&&{type:M.error.type},...M.error.code!=null&&{code:M.error.code},...M.error.statusCode!=null&&{statusCode:M.error.statusCode}}},...M.createdAt!=null&&{createdAt:M.createdAt},...M.expiresAt!=null&&{expiresAt:M.expiresAt},...M.providerMetadata!=null&&{providerMetadata:M.providerMetadata}}}async function*Ad(M){for await(let C of M){let O=C;if(O.status==="succeeded"){let F=O.result?.response;if(F!==void 0&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp)}yield O}}var kd=a(()=>s(P.object({type:P.literal("text"),id:P.string(),status:P.enum(["cancelled","expired","failed","succeeded"])}).catchall(P.unknown()))),Pd=()=>P.object({message:P.string(),type:P.string().nullish(),code:P.string().nullish(),statusCode:P.number().nullish()}),Od=()=>P.object({total:P.number().nullish(),pending:P.number().nullish(),completed:P.number().nullish(),failed:P.number().nullish()}),jd=()=>P.record(P.string(),P.record(P.string(),P.unknown())),oi=()=>P.object({status:P.enum(["completed","failed","pending"]),rawStatus:P.string().nullish(),requestCounts:Od().nullish(),error:Pd().nullish(),createdAt:P.string().nullish(),expiresAt:P.string().nullish(),providerMetadata:jd().nullish()}),Nd=a(()=>s(oi().extend({batchId:P.string(),warnings:P.array(P.object({requestId:P.string().nullish(),warning:P.unknown()}).catchall(P.unknown())).nullish()}))),js=a(()=>s(oi())),Dd=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(C){let{abortSignal:O,...F}=C;return{args:this.maybeEncodeFileParts(F),warnings:[]}}async doGenerate(C){let{args:O,warnings:F}=await this.getArgs(C),{abortSignal:W}=C,ee=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:H,value:te,rawValue:re}=await g({url:this.getUrl(),headers:d(ee,C.headers,this.getModelConfigHeaders(this.modelId,!1),await _(this.config.o11yHeaders)),body:O,successfulResponseHandler:p(P.any()),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ne)=>A(ne)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{...te,request:{body:O},response:{headers:H,body:re},warnings:[...te.warnings??[],...F]}}catch(H){throw await pt(H,await yt(ee??{}))}}async doStream(C){let{args:O,warnings:F}=await this.getArgs(C),{abortSignal:W}=C,ee=this.config.headers?await _(this.config.headers):void 0;try{let{value:H,responseHeaders:te}=await g({url:this.getUrl(),headers:d(ee,C.headers,this.getModelConfigHeaders(this.modelId,!0),await _(this.config.o11yHeaders)),body:O,successfulResponseHandler:D(P.any()),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(re)=>A(re)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{stream:H.pipeThrough(new TransformStream({start(re){if(F.length>0)re.enqueue({type:"stream-start",warnings:F})},transform(re,ne){if(re.success){let z=re.value;if(z.type==="raw"&&!C.includeRawChunks)return;if(z.type==="response-metadata"&&z.timestamp&&typeof z.timestamp==="string")z.timestamp=new Date(z.timestamp);ne.enqueue(z)}else ne.error(re.error)}})),request:{body:O},response:{headers:te}}}catch(H){throw await pt(H,await yt(ee??{}))}}maybeEncodeFileParts(C){for(let O of C.prompt){if(!Array.isArray(O.content))continue;for(let F of O.content)if(F.type==="file"||F.type==="reasoning-file")F.data=Ns(F.data);else if(F.type==="tool-result"&&F.output.type==="content"){for(let W of F.output.value)if(W.type==="file")W.data=Ns(W.data)}}return C}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(C,O){return{"ai-language-model-specification-version":"4","ai-language-model-id":C,"ai-language-model-streaming":String(O)}}};function Ns(M){if(M.type==="data"){let C=M.data;if(C instanceof Uint8Array)return{...M,data:Buffer.from(C).toString("base64")}}return M}var qd=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:C,dimensions:O,headers:F,abortSignal:W,providerOptions:ee}){let H=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:te,value:re,rawValue:ne}=await g({url:this.getUrl(),headers:d(H,F??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{values:C,dimensions:O,...ee?{providerOptions:ee}:{}},successfulResponseHandler:p(Ud),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{embeddings:re.embeddings,usage:re.usage??void 0,providerMetadata:re.providerMetadata,response:{headers:te,body:ne},warnings:re.warnings??[]}}catch(te){throw await pt(te,await yt(H??{}))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"4","ai-model-id":this.modelId}}},$d=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Ud=a(()=>s(P.object({embeddings:P.array(P.array(P.number())),usage:P.object({tokens:P.number()}).nullish(),warnings:P.array($d()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()}))),Ld=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:C,n:O,size:F,aspectRatio:W,seed:ee,files:H,mask:te,providerOptions:re,headers:ne,abortSignal:z}){let oe=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:se,value:de}=await g({url:this.getUrl(),headers:d(oe,ne??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{prompt:C,n:O,...F&&{size:F},...W&&{aspectRatio:W},...ee&&{seed:ee},...re&&{providerOptions:re},...H&&{files:H.map((me)=>Ds(me))},...te&&{mask:Ds(te)}},successfulResponseHandler:p(Bd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(me)=>A(me)??"unknown error"}),...z&&{abortSignal:z},fetch:this.config.fetch});return{images:de.images,...de.isRetryable!=null&&{isRetryable:de.isRetryable},warnings:de.warnings??[],providerMetadata:de.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:se},...de.usage!=null&&{usage:{inputTokens:de.usage.inputTokens??void 0,outputTokens:de.usage.outputTokens??void 0,totalTokens:de.usage.totalTokens??void 0}}}}catch(se){throw await pt(se,await yt(oe??{}))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"4","ai-model-id":this.modelId}}};function Ds(M){if(M.type==="file"&&M.data instanceof Uint8Array)return{...M,data:X(M.data)};return M}var Fd=()=>P.object({images:P.array(P.unknown()).optional()}).catchall(P.unknown()),Gd=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Vd=()=>P.object({inputTokens:P.number().nullish(),outputTokens:P.number().nullish(),totalTokens:P.number().nullish()}),Bd=a(()=>s(P.object({images:P.array(P.string()),isRetryable:P.boolean().optional(),warnings:P.array(Gd()).optional(),providerMetadata:P.record(P.string(),Fd()).optional(),usage:Vd().optional()}))),Wd=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate(M){let{headers:C,abortSignal:O}=M,F=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:W,value:ee}=await g({url:this.getUrl(),headers:d(F,C??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders),{accept:"text/event-stream"}),body:this.buildRequestBody(M),successfulResponseHandler:async({response:H,url:te,requestBodyValues:re})=>{if(H.body==null)throw new w({message:"SSE response body is empty",url:te,requestBodyValues:re,statusCode:H.status});let ne=ut({stream:H.body,schema:Hd}).getReader(),{done:z,value:oe}=await ne.read();if(ne.releaseLock(),z||!oe)throw new w({message:"SSE stream ended without a data event",url:te,requestBodyValues:re,statusCode:H.status});if(!oe.success)throw new w({message:"Failed to parse video SSE event",cause:oe.error,url:te,requestBodyValues:re,statusCode:H.status});let se=oe.value;if(se.type==="error")throw new w({message:se.message,statusCode:se.statusCode,url:te,requestBodyValues:re,responseHeaders:Object.fromEntries([...H.headers]),responseBody:JSON.stringify(se),data:{error:{message:se.message,type:se.errorType,param:se.param}}});return{value:{videos:se.videos,warnings:se.warnings,providerMetadata:se.providerMetadata},responseHeaders:Object.fromEntries([...H.headers])}},failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(H)=>A(H)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{videos:ee.videos,warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:{timestamp:new Date,modelId:this.modelId,headers:W}}}catch(W){throw await pt(W,await yt(F??{}))}}async handleWebhookOption({webhook:M}){let{url:C,received:O}=await M();return{webhookUrl:C,received:O}}async doStart(M){let{headers:C,abortSignal:O,webhookUrl:F}=M,W=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:ee,value:H}=await g({url:this.getStartUrl(),headers:d(W,C??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{...this.buildRequestBody(M),...F&&{callbackUrl:F}},successfulResponseHandler:p(zd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(te)=>A(te)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{operation:H.operation,warnings:H.warnings??[],providerMetadata:H.providerMetadata??void 0,response:{timestamp:new Date,modelId:this.modelId,headers:ee}}}catch(ee){throw await pt(ee,await yt(W??{}))}}async doStatus({operation:M,abortSignal:C,headers:O}){let F=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:W,value:ee}=await g({url:this.getStatusUrl(),headers:d(F,O??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{operation:M},successfulResponseHandler:p(Kd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(te)=>A(te)??"unknown error"}),...C&&{abortSignal:C},fetch:this.config.fetch}),H={timestamp:new Date,modelId:this.modelId,headers:W};if(ee.status==="completed")return{status:"completed",videos:ee.videos,warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:H};if(ee.status==="error")return{status:"error",error:ee.error,providerMetadata:ee.providerMetadata??void 0,response:H};if(ee.status==="cancelled")return{status:"error",error:"Video generation was cancelled.",providerMetadata:ee.providerMetadata??void 0,response:H};return{status:"pending",warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:H}}catch(W){throw await pt(W,await yt(F??{}))}}buildRequestBody({prompt:M,n:C,aspectRatio:O,resolution:F,duration:W,fps:ee,seed:H,generateAudio:te,image:re,frameImages:ne,inputReferences:z,providerOptions:oe}){return{prompt:M,n:C,...O&&{aspectRatio:O},...F&&{resolution:F},...W&&{duration:W},...ee&&{fps:ee},...H&&{seed:H},...te!==void 0&&{generateAudio:te},...oe&&{providerOptions:oe},...re&&{image:an(re)},...ne&&{frameImages:ne.map((se)=>({...se,image:an(se.image)}))},...z&&{inputReferences:z.map((se)=>an(se))}}}getUrl(){return`${this.config.baseURL}/video-model`}getStartUrl(){return`${this.config.baseURL}/video-model/start`}getStatusUrl(){return`${this.config.baseURL}/video-model/status`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"4","ai-model-id":this.modelId}}};function an(M){if(M.type==="file"&&M.data instanceof Uint8Array)return{...M,data:X(M.data)};return M}var Ra=()=>P.object({videos:P.array(P.unknown()).optional()}).catchall(P.unknown()),ni=()=>P.union([P.object({type:P.literal("url"),url:P.string(),mediaType:P.string()}),P.object({type:P.literal("base64"),data:P.string(),mediaType:P.string()})]),Co=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Hd=a(()=>s(P.discriminatedUnion("type",[P.object({type:P.literal("result"),videos:P.array(ni()),warnings:P.array(Co()).optional(),providerMetadata:P.record(P.string(),Ra()).optional()}),P.object({type:P.literal("error"),message:P.string(),errorType:P.string(),statusCode:P.number(),param:P.unknown().nullable()})]))),zd=a(()=>s(P.object({operation:P.unknown(),warnings:P.array(Co()).nullish(),providerMetadata:P.record(P.string(),Ra()).nullish()}))),Kd=a(()=>s(P.discriminatedUnion("status",[P.object({status:P.literal("pending"),warnings:P.array(Co()).nullish(),providerMetadata:P.record(P.string(),Ra()).nullish()}),P.object({status:P.literal("completed"),videos:P.array(ni()),warnings:P.array(Co()).nullish(),providerMetadata:P.record(P.string(),Ra()).nullish()}),P.object({status:P.literal("error"),error:P.string(),providerMetadata:P.record(P.string(),Ra()).nullish()}),P.object({status:P.literal("cancelled"),providerMetadata:P.record(P.string(),Ra()).nullish()})]))),Jd=a(()=>s(P.object({models:Xd().optional()}).catchall(P.unknown()))),qs=()=>P.number().finite().min(0).max(1),$s=()=>P.string().min(1).max(256),Us=()=>P.union([P.object({question:$s().optional(),confidenceBelow:qs()}).strict(),P.object({question:$s().optional(),probabilityBetween:P.array(qs()).length(2).refine(([M,C])=>M<=C,{message:"probabilityBetween minimum must be less than or equal to maximum"})}).strict()]),Yd=()=>P.union([P.object({any:P.unknown()}),P.object({all:P.unknown()}),P.object({atLeast:P.unknown()})]).superRefine((M,C)=>{C.addIssue({code:"custom",message:"conditions can be nested at most 5 levels deep"})}),Qd=()=>P.object({model:P.string().min(1),when:si(1)}).strict(),Xd=()=>P.array(P.union([P.string(),Qd()])).superRefine((M,C)=>{let O=M.flatMap((F,W)=>typeof F==="string"?[]:[W]);if(O.length>1)C.addIssue({code:"custom",message:"models supports at most one conditional decision fallback"});if(O[0]!==void 0&&O[0]!==0)C.addIssue({code:"custom",message:"a conditional decision fallback must be the first models entry",path:[O[0]]})});function si(M){if(M===5)return P.union([Us(),Yd()]);let C=si(M+1),O=P.array(C).min(1).max(20);return P.union([Us(),P.object({any:O}).strict(),P.object({all:O}).strict(),P.object({atLeast:P.object({count:P.number().int().min(1),conditions:O}).strict().refine(({count:F,conditions:W})=>F<=W.length,{message:"atLeast count cannot exceed the number of conditions",path:["count"]})}).strict()])}var Zd=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4",this.supportedQuestionTypes=["choice","score","boolean"]}get provider(){return this.config.provider}doEvaluate(M){return this.doDecide(M)}async doDecide({state:M,questions:C,maxOutputTokens:O,reasoning:F,headers:W,abortSignal:ee,providerOptions:H}){let te=au(M),re=await h({provider:"gateway",providerOptions:H,schema:Jd}),ne=re==null?H:{...H,gateway:re},z=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:oe,value:se,rawValue:de}=await g({url:this.getUrl(),headers:d(z,W??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{stateParts:te,questions:C,maxOutputTokens:O,reasoning:F,...ne?{providerOptions:ne}:{}},successfulResponseHandler:p(ru),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(me)=>A(me)??"unknown error"}),...ee&&{abortSignal:ee},fetch:this.config.fetch});return{answers:se.answers,...se.rounding?{rounding:se.rounding}:{},...se.usage?{usage:se.usage}:{},warnings:se.warnings??[],providerMetadata:se.providerMetadata,response:{modelId:se.model??this.modelId,headers:oe,body:de}}}catch(oe){throw await pt(oe,await yt(z??{}))}}getUrl(){return`${this.config.baseURL}/decision-model`}getModelConfigHeaders(){return{"ai-decision-model-specification-version":"4","ai-model-id":this.modelId}}},eu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("choice"),choice:P.string(),probabilities:P.record(P.string(),P.number()).optional()}),P.object({type:P.literal("score"),score:P.number(),probabilities:P.record(P.string(),P.number()).optional()}),P.object({type:P.literal("boolean"),probability:P.number()}),P.object({type:P.literal("refusal")})]),tu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),ru=a(()=>s(P.object({answers:P.record(P.string(),eu()),model:P.string().optional(),rounding:P.object({probabilityDecimals:P.number().optional(),scoreDecimals:P.number().optional()}).optional(),usage:P.object({inputTokens:P.number().optional(),outputTokens:P.number().optional()}).optional(),warnings:P.array(tu()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()})));function au(M){return M.map((C)=>{if(C.type!=="file")return C;if(C.data.type!=="data")throw new u({functionality:`Gateway decision file input: ${C.data.type} data`});let{data:O}=C.data;return{...C,data:{type:"data",data:typeof O==="string"?O:X(O)}}})}var ou=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doRerank({documents:M,query:C,topN:O,headers:F,abortSignal:W,providerOptions:ee}){let H=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:te,value:re,rawValue:ne}=await g({url:this.getUrl(),headers:d(H,F??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{documents:M,query:C,...O!=null?{topN:O}:{},...ee?{providerOptions:ee}:{}},successfulResponseHandler:p(su),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{ranking:re.ranking,providerMetadata:re.providerMetadata,response:{headers:te,body:ne},warnings:re.warnings??[]}}catch(te){throw await pt(te,await yt(H??{}))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"4","ai-model-id":this.modelId}}},nu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),su=a(()=>s(P.object({ranking:P.array(P.object({index:P.number(),relevanceScore:P.number()})),warnings:P.array(nu()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()})));async function ii(M,C,O){M.error(await pt(C,O))}function iu(M){if(M!=null&&typeof M==="object"&&"message"in M&&typeof M.message==="string")return M.message;return A(M)}var Ls={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 gn(M,C,O="transcription"){if(typeof M==="object"&&M!=null&&"message"in M&&typeof M.message==="string"&&"type"in M&&typeof M.type==="string"&&M.type in Ls)return sn({response:{error:{message:M.message,type:M.type}},statusCode:Ls[M.type],authMethod:C});return Error(`AI Gateway ${O} stream failed: ${iu(M)}`)}var lu=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({audio:M,mediaType:C,providerOptions:O,headers:F,abortSignal:W}){let ee=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:H,value:te,rawValue:re}=await g({url:this.getUrl(),headers:d(ee,F??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{audio:M instanceof Uint8Array?X(M):M,mediaType:C,...O&&{providerOptions:O}},successfulResponseHandler:p(fu),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch}),ne=[...te.warnings??[]];if(cu(this.modelId)&&du(O)&&!yn(re))ne.push({type:"unsupported",feature:"providerOptions.xai.diarize",details:"AI Gateway does not currently expose xAI speaker diarization metadata."});return{text:te.text,segments:te.segments??[],language:te.language??void 0,durationInSeconds:te.durationInSeconds??void 0,warnings:ne,...te.usage!=null&&{usage:te.usage},providerMetadata:te.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:H,body:re}}}catch(H){throw await pt(H,await yt(ee??{}))}}async doStream(M){let C=this.config._internal?.currentDate?.()??new Date,O=d(await _(this.config.headers??{}),M.headers??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),F=await yt(O),W={type:pn,inputAudioFormat:M.inputAudioFormat,...M.providerOptions!=null&&{providerOptions:M.providerOptions},...M.includeRawChunks!=null&&{includeRawChunks:M.includeRawChunks}};return{stream:uu({webSocket:this.config.webSocket,url:li(this.config.baseURL,this.modelId),protocols:ci(O),headers:O,startFrame:W,audio:M.audio,abortSignal:M.abortSignal,authMethod:F}),request:{body:W},response:{timestamp:C,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/transcription-model`}getModelConfigHeaders(){return{"ai-transcription-model-specification-version":"4","ai-model-id":this.modelId}}};function cu(M){return M.startsWith("spacexai/")||M.startsWith("xai/")}function du(M){return M?.xai?.diarize===!0||M?.spacexai?.diarize===!0}function yn(M){if(Array.isArray(M))return M.some(yn);if(M==null||typeof M!=="object")return!1;return Object.entries(M).some(([C,O])=>C==="speaker"&&O!=null||yn(O))}function li(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/transcription-model`);return O.searchParams.set("ai-model-id",C),O.toString()}function ci(M,{marker:C=Bs,getProtocols:O=Wc}={}){let F=qe(M),W=F.authorization,ee=W?.startsWith("Bearer ")?W.slice(7):void 0;return ee==null?[C]:O(ee,{teamIdOrSlug:F[ai]})}var Fs=65536;function uu({webSocket:M,url:C,protocols:O,headers:F,startFrame:W,audio:ee,abortSignal:H,authMethod:te}){let re=!1,ne=()=>{};return new ReadableStream({start:(z)=>{let oe,se=!1,de,me=!1,Le;ne=(xe)=>{if(oe!=null)oe.cancel().catch(()=>{});else ee.cancel().catch(()=>{});Le?.close(xe)};let Ge=()=>{if(me=!0,oe!=null)oe.cancel().catch(()=>{}),oe=void 0;else ee.cancel().catch(()=>{})},be=(xe)=>{if(re)return;re=!0,ne(),ii(z,xe,te)},De=async(xe)=>{let we=ee.getReader();oe=we;try{while(!0){let{done:le,value:ve}=await we.read();if(le||re)break;let Se=typeof ve==="string"?N(ve):ve;for(let ce=0;ce<Se.length;ce+=Fs){if(re)break;xe.send(Se.subarray(ce,ce+Fs)),await ue(xe)}}}finally{if(we.releaseLock(),oe===we)oe=void 0}if(!re&&!me)xe.send(JSON.stringify({type:mn}))};Le=fe({url:C,protocols:O,headers:F,webSocket:M,abortSignal:H,onAbort:(xe)=>{if(re)return;re=!0,ne(),z.error(xe)},onProcessingError:be,onOpen:(xe)=>{xe.send(JSON.stringify(W)),De(xe).catch(be)},onMessageText:(xe)=>{if(re)return;let we=fn(xe);if(we==null)return;if(we.type==="finish"){re=!0,z.enqueue(we),z.close(),ne(1000);return}if(we.type==="error")se=!0,de=we.error,Ge();z.enqueue(we)},onSocketError:()=>{be(Error("Connection error on AI Gateway transcription stream"))},onClose:()=>{if(se){if(re)return;gn(de,te).then(be);return}be(Error("AI Gateway transcription stream closed before a finish part was received"))}})},cancel:()=>{if(re)return;re=!0,ne()}})}var pu=()=>P.object({}).catchall(P.unknown()),mu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),fu=a(()=>s(P.object({text:P.string(),segments:P.array(P.object({text:P.string(),startSecond:P.number(),endSecond:P.number()})).optional(),language:P.string().nullish(),durationInSeconds:P.number().nullish(),warnings:P.array(mu()).optional(),usage:P.record(P.string(),P.json()).optional(),providerMetadata:P.record(P.string(),pu()).optional()}))),hu=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({text:M,voice:C,outputFormat:O,instructions:F,speed:W,language:ee,providerOptions:H,headers:te,abortSignal:re}){let ne=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:z,value:oe,rawValue:se}=await g({url:this.getUrl(),headers:d(ne,te??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{text:M,...C&&{voice:C},...O&&{outputFormat:O},...F&&{instructions:F},...W!=null&&{speed:W},...ee&&{language:ee},...H&&{providerOptions:H}},successfulResponseHandler:p(Su),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(de)=>A(de)??"unknown error"}),...re&&{abortSignal:re},fetch:this.config.fetch});return{audio:oe.audio,warnings:oe.warnings??[],...oe.usage!=null&&{usage:oe.usage},providerMetadata:oe.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:z,body:se}}}catch(z){throw await pt(z,await yt(ne??{}))}}async doStream(M){let C=this.config._internal?.currentDate?.()??new Date,O=d(await _(this.config.headers??{}),M.headers??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),F=await yt(O),W={type:ln,...M.voice!=null&&{voice:M.voice},...M.outputFormat!=null&&{outputFormat:M.outputFormat},...M.instructions!=null&&{instructions:M.instructions},...M.speed!=null&&{speed:M.speed},...M.language!=null&&{language:M.language},...M.providerOptions!=null&&{providerOptions:M.providerOptions},...M.includeRawChunks!=null&&{includeRawChunks:M.includeRawChunks}};return{stream:vu({webSocket:this.config.webSocket,url:di(this.config.baseURL,this.modelId),protocols:ci(O,{marker:Ws,getProtocols:Hc}),headers:O,startFrame:W,text:M.text,abortSignal:M.abortSignal,authMethod:F}),request:{body:W},response:{timestamp:C,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/speech-model`}getModelConfigHeaders(){return{"ai-speech-model-specification-version":"4","ai-model-id":this.modelId}}};function di(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/speech-model`);return O.searchParams.set("ai-model-id",C),O.toString()}var gu=8192;function yu(M){let C=[],O=0;while(O<M.length){let F=Math.min(O+gu,M.length),W=M.charCodeAt(F-1);if(F<M.length&&W>=55296&&W<=56319)F--;C.push(M.slice(O,F)),O=F}return C}function vu({webSocket:M,url:C,protocols:O,headers:F,startFrame:W,text:ee,abortSignal:H,authMethod:te}){let re=!1,ne=()=>{};return new ReadableStream({start:(z)=>{let oe,se=!1,de,me=!1,Le,Ge=()=>{if(oe!=null)oe.cancel().catch(()=>{}),oe=void 0;else ee.cancel().catch(()=>{})};ne=(xe)=>{Ge(),Le?.close(xe)};let be=(xe)=>{if(re)return;re=!0,ne(),ii(z,xe,te)},De=async(xe)=>{let we=ee.getReader();oe=we;try{while(!0){let{done:le,value:ve}=await we.read();if(le||re||me)break;let Se=!0,ce=yu(ve.text);if(ce.length===0&&(ve.voice!=null||ve.providerOptions!=null))ce.push("");for(let Ie of ce){if(re||me)break;let He={type:cn,delta:Ie,...ve.voice!=null&&{voice:ve.voice},...Se&&ve.providerOptions!=null&&{providerOptions:ve.providerOptions}};Se=!1,xe.send(JSON.stringify(He)),await ue(xe)}}}finally{if(we.releaseLock(),oe===we)oe=void 0}if(!re&&!me)xe.send(JSON.stringify({type:un}))};Le=fe({url:C,protocols:O,headers:F,webSocket:M,abortSignal:H,onAbort:(xe)=>{if(re)return;re=!0,ne(),z.error(xe)},onProcessingError:be,onOpen:(xe)=>{xe.send(JSON.stringify(W)),De(xe).catch(be)},onMessageText:async(xe)=>{if(re)return;let we=dn(xe);if(we==null)return;if(we.type==="finish"){re=!0,z.enqueue(we),z.close(),ne(1000);return}if(we.type==="error"){if(se=!0,de=we.error,me=!0,Ge(),we.error=await gn(we.error,te,"speech"),re)return}z.enqueue(we)},onSocketError:()=>{be(Error("Connection error on AI Gateway speech stream"))},onClose:({code:xe,reason:we})=>{if(se){if(re)return;gn(de,te,"speech").then(be);return}be(Error("AI Gateway speech stream closed before a finish part was received"+(xe!=null?` (code ${xe}${we?`: ${we}`:""})`:"")+"."))}})},cancel:()=>{if(re)return;re=!0,ne()}})}var wu=()=>P.object({}).catchall(P.unknown()),bu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Su=a(()=>s(P.object({audio:P.string(),warnings:P.array(bu()).optional(),usage:P.record(P.string(),P.json()).optional(),providerMetadata:P.record(P.string(),wu()).optional()}))),Iu=class{constructor(M,C){this.specificationVersion="v4",this.modelId=M,this.provider=C.provider,this.config=C}async doCreateClientSecret(M){let C=await this.config.createClientSecret({modelId:this.modelId,...M?.expiresAfterSeconds!=null&&{expiresAfterSeconds:M.expiresAfterSeconds}});return{token:C.token,url:Tu(this.config.baseURL,this.modelId),...C.expiresAt!=null&&{expiresAt:C.expiresAt}}}getWebSocketConfig(M){return{url:M.url,protocols:Bc(M.token,{teamIdOrSlug:this.config.teamIdOrSlug})}}parseServerEvent(M){return M}serializeClientEvent(M){return M}buildSessionConfig(M){return M}};function Tu(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/realtime-model`);return O.searchParams.set("ai-model-id",C),O.toString()}var ui=()=>P.record(P.string(),P.unknown()),xu=a(()=>s(P.object({url:P.string().url().describe("URL of the page to fetch."),allow_redirects:P.boolean().optional().describe("Whether to follow HTTP redirects (default: false)."),allow_insecure_ssl:P.boolean().optional().describe("Whether to bypass TLS certificate verification (default: false). Only use for trusted hosts."),proxies:P.boolean().optional().describe("Whether to route the request through Browserbase proxies (default: false)."),format:P.enum(["raw","json","markdown"]).optional().describe("Output format. raw returns the response body unchanged, markdown returns page content as Markdown, and json returns structured content using schema."),schema:ui().optional().describe("JSON Schema for structured extraction. Only use with format set to json.")}))),Eu=a(()=>s(P.union([P.object({id:P.string(),content:P.union([P.string(),ui()]),contentType:P.string(),encoding:P.string(),headers:P.record(P.string(),P.string()),statusCode:P.number()}),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Mu=S({id:"gateway.browserbase_fetch",inputSchema:xu,outputSchema:Eu}),Cu=(M={})=>Mu(M),Ru=a(()=>s(P.object({query:P.string().min(1).max(200).describe("Web search query. Must be between 1 and 200 characters."),num_results:P.number().int().min(1).max(25).optional().describe("Maximum number of results to return (1-25, default: 10).")}))),_u=a(()=>s(P.union([P.object({query:P.string(),requestId:P.string(),results:P.array(P.object({id:P.string(),title:P.string(),url:P.string(),author:P.string().optional(),favicon:P.string().optional(),image:P.string().optional(),publishedDate:P.string().optional()}))}),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Au=S({id:"gateway.browserbase_search",inputSchema:Ru,outputSchema:_u}),ku=(M={})=>Au(M),Pu=a(()=>s(P.object({query:P.string().describe("Natural-language web search query. This is required."),type:P.enum(["auto","fast","instant"]).optional().describe("Search method. Use auto for the default balance of speed and quality."),num_results:P.number().optional().describe("Maximum number of results to return (1-100, default: 10)."),category:P.enum(["company","people","research paper","news","personal site","financial report"]).optional().describe("Optional content category to focus results."),user_location:P.string().optional().describe("Two-letter ISO country code such as 'US'."),include_domains:P.array(P.string()).optional().describe("Only return results from these domains."),exclude_domains:P.array(P.string()).optional().describe("Exclude results from these domains."),start_published_date:P.string().optional().describe("Only return links published after this ISO 8601 date."),end_published_date:P.string().optional().describe("Only return links published before this ISO 8601 date."),contents:P.object({text:P.union([P.boolean(),P.object({max_characters:P.number().optional(),include_html_tags:P.boolean().optional(),verbosity:P.enum(["compact","standard","full"]).optional(),include_sections:P.array(P.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional(),exclude_sections:P.array(P.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional()})]).optional(),highlights:P.union([P.boolean(),P.object({query:P.string().optional(),max_characters:P.number().optional()})]).optional(),max_age_hours:P.number().optional(),livecrawl_timeout:P.number().optional(),subpages:P.number().optional(),subpage_target:P.union([P.string(),P.array(P.string())]).optional(),extras:P.object({links:P.number().optional(),image_links:P.number().optional()}).optional()}).optional().describe("Controls extracted page content and freshness.")}))),Ou=a(()=>s(P.union([P.object({requestId:P.string(),searchType:P.string().optional(),resolvedSearchType:P.string().optional(),results:P.array(P.object({title:P.string(),url:P.string(),id:P.string(),publishedDate:P.string().nullable().optional(),author:P.string().nullable().optional(),image:P.string().nullable().optional(),favicon:P.string().nullable().optional(),text:P.string().optional(),highlights:P.array(P.string()).optional(),highlightScores:P.array(P.number()).optional(),summary:P.string().optional(),subpages:P.array(P.any()).optional(),extras:P.object({links:P.array(P.string()).optional(),imageLinks:P.array(P.string()).optional()}).optional()})),costDollars:P.object({total:P.number().optional(),search:P.record(P.string(),P.number()).optional()}).optional()}),P.object({error:P.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","execution_error","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),ju=S({id:"gateway.exa_search",inputSchema:Pu,outputSchema:Ou}),Nu=(M={})=>ju(M),Du=["turbo","fast","basic","advanced","one-shot","agentic"],qu=a(()=>s(P.object({objective:P.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:P.array(P.string()).optional().describe("Provide 2-3 concise keyword queries, 3-6 words each (max 5, 200 chars each). Strongly recommended; the search runs on these queries."),mode:P.enum(Du).optional().describe('Search mode: "turbo" and "fast" return quickly with shorter excerpts, "basic" is balanced (default), "advanced" is the most thorough. "turbo" supports English and Japanese only. "one-shot" and "agentic" are deprecated aliases of "basic" and "advanced".'),max_results:P.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:P.object({include_domains:P.array(P.string()).optional().describe("Domains or domain/path prefixes to restrict results to, without scheme or port. Example: ['wikipedia.org', 'docs.python.org/3']."),exclude_domains:P.array(P.string()).optional().describe("Domains or domain/path prefixes to exclude, without scheme or port. Example: ['reddit.com']."),after_date:P.string().optional().describe("Only include results published on or 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:P.object({max_chars_per_result:P.number().optional().describe("Maximum characters per result."),max_chars_total:P.number().optional().describe("Deprecated: use the top-level max_chars_total.")}).optional().describe("Excerpt configuration for controlling result length."),max_chars_total:P.number().optional().describe("Maximum total characters across all result excerpts."),fetch_policy:P.object({max_age_seconds:P.number().optional().describe("Maximum age of cached content in seconds before a live fetch, minimum 600."),timeout_seconds:P.number().optional().describe("Timeout in seconds for a live fetch when content is not cached. Capped by the gateway tool timeout."),disable_cache_fallback:P.boolean().optional().describe("Return an error instead of older cached content when a live fetch fails.")}).optional().describe("Fetch policy for controlling content freshness."),location:P.string().optional().describe('ISO 3166-1 alpha-2 country code to localize results, e.g. "us".')}))),$u=a(()=>s(P.union([P.object({search_id:P.string(),results:P.array(P.object({url:P.string(),title:P.string().nullable().optional(),publish_date:P.string().nullable().optional(),excerpts:P.array(P.string())})),warnings:P.array(P.object({type:P.string(),message:P.string(),detail:P.record(P.string(),P.unknown()).nullable().optional()})).nullable().optional(),usage:P.array(P.object({name:P.string(),count:P.number().optional()})).nullable().optional(),session_id:P.string().optional()}),P.object({error:P.enum(["api_error","configuration_error","execution_error","gateway_rate_limit","invalid_input","rate_limit","timeout","unknown","unknown_tool"]),statusCode:P.number().optional(),message:P.string()})]))),Uu=S({id:"gateway.parallel_search",inputSchema:qu,outputSchema:$u}),Lu=(M={})=>Uu(M),Fu=a(()=>s(P.object({query:P.union([P.string(),P.array(P.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:P.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:P.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:P.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:P.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:P.array(P.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:P.array(P.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:P.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:P.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:P.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:P.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:P.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),Gu=a(()=>s(P.union([P.object({results:P.array(P.object({title:P.string(),url:P.string(),snippet:P.string(),date:P.string().optional(),lastUpdated:P.string().optional()})),id:P.string()}),P.object({error:P.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Vu=S({id:"gateway.perplexity_search",inputSchema:Fu,outputSchema:Gu}),Bu=(M={})=>Vu(M),Wu=()=>P.object({count:P.number().optional().describe("Maximum number of data results to return (1-20). When include_contents is true, each additional result adds its own data surcharge."),include_contents:P.boolean().optional().describe("Inline rows for each data result. This adds a data surcharge based on row count and dataset source. To estimate cost, search with include_contents disabled and inspect cards.content.export_pricing. This applies to every returned card; limit sources.data.count and sources.data.max_rows to control cost."),mode:P.enum(["inline","url"]).optional().describe("Requested data delivery mode. Search card data is always inline."),content_format:P.enum(["card_json","csv","json_compact","json_records"]).optional().describe("Serialization for inlined card data."),max_rows:P.number().optional().describe("Maximum rows to inline per result. Omit to use the allowance in cards.content.export_pricing. A data surcharge applies per 1,000 exported rows; lower values reduce cost."),node_ids:P.array(P.string()).optional().describe("Data Graph node IDs to prioritize. Maximum 20."),strict:P.boolean().optional().describe("Only return cards matching node_ids. Requires a non-empty node_ids.")}),Hu=()=>P.object({count:P.number().optional().describe("Maximum number of web results to return (1-20)."),include_contents:P.boolean().optional().describe("Inline extracted web page text. This can add a data charge."),category:P.enum(["finance","news","sports"]).optional().describe("Optional web-result category filter."),include_domains:P.array(P.string()).optional().describe("Only return results from these bare domains."),exclude_domains:P.array(P.string()).optional().describe("Exclude results from these bare domains."),snippet_max_chars:P.number().optional().describe("Maximum characters in each web-result snippet."),highlights:P.boolean().optional().describe("Include highlighted passages in web results. Defaults to true in AI Gateway."),article_content_max_chars:P.number().optional().describe("Maximum extracted characters per web page when including contents."),published_after:P.string().optional().describe("Keep results published on or after this ISO date (YYYY-MM-DD)."),published_before:P.string().optional().describe("Keep results published on or before this ISO date (YYYY-MM-DD).")}),zu=a(()=>s(P.object({query:P.string().describe('Natural-language search query. Include the entity, metric, and time period. Quote a phrase to force it to one entity, for example "Tesla":PRODUCT price.'),effort:P.enum(["deep","fast","instant"]).optional().describe("Search effort. fast is the balanced default, instant favors cached results and low latency, and deep broadens retrieval with reranking at higher cost and latency."),sources:P.object({data:Wu().optional(),web:Hu().optional()}).optional().describe("Sources to search. Omit to search both curated data and the web. When provided, only keys present are searched."),location:P.object({latitude:P.number().describe("Latitude between -90 and 90."),longitude:P.number().describe("Longitude between -180 and 180.")}).optional().describe("End-user coordinates for localized results."),country_code:P.string().optional().describe("Two-letter ISO 3166-1 country code, such as 'US'."),locale:P.string().optional().describe("BCP-47 locale, such as 'en-US'."),timezone:P.string().optional().describe("IANA timezone, such as 'America/New_York'."),output_settings:P.object({image_dark_mode:P.boolean().optional().describe("Render card preview images in dark mode."),force_refresh:P.boolean().optional().describe("Instant-effort only. Request a refreshed instant result.")}).optional().describe("Controls card rendering in the search response."),include_related:P.number().optional().describe("Maximum related search suggestions to include (1-20).")}))),Gs=()=>P.union([P.boolean(),P.number(),P.string()]).nullable(),pi=()=>P.object({content_format:P.enum(["card_json","csv","json_compact","json_records"]).nullish(),cost:P.number().optional(),data:P.string().nullish(),records:P.array(P.record(P.string(),Gs())).nullish(),dataset:P.object({columns:P.array(P.object({name:P.string(),type:P.enum(["boolean","date","datetime","number","string"]),unit:P.string().nullish()})),rows:P.array(P.array(Gs())),total_rows:P.number(),truncated:P.boolean(),ref:P.string(),sources:P.array(P.object({name:P.string(),index:P.enum(["data","web"]).optional()})),provenance:P.enum(["query","web_extraction"]).optional()}).nullish(),card_data:P.object({}).passthrough().nullish(),card_data_schema:P.object({}).passthrough().nullish(),url:P.string().nullish(),expires_at:P.string().nullish(),total_rows:P.number().nullish(),truncated:P.boolean().optional(),export_pricing:P.object({baseline_usd:P.number(),free_rows:P.number(),max_rows_ceiling:P.number(),row_cpm_usd:P.number()}).nullish(),manifest:P.array(P.object({dtype:P.enum(["boolean","date","datetime","number","string"]).nullish(),entity:P.string().nullish(),metric:P.string().nullish(),name:P.string().nullish(),unit:P.string().nullish()})).nullish()}).passthrough(),Ku=()=>P.object({card_id:P.string().nullish(),title:P.string().nullish(),description:P.string().nullish(),semantic_description:P.string().nullish(),webpage_url:P.string().nullish(),image_url:P.string().nullish(),embed_url:P.string().nullish(),sources:P.array(P.object({source_name:P.string().nullish(),source_description:P.string().nullish(),source_index:P.enum(["data","web"]),source_text:P.string().nullish(),url:P.string().nullish()})).nullish(),methodologies:P.array(P.object({methodology_name:P.string().nullable(),methodology_description:P.string().nullable()})).nullish(),source_indexes:P.array(P.enum(["data","web"])).nullish(),card_type:P.string().nullish(),relevance:P.enum(["High","Low","Medium"]).nullish(),content:pi().nullish(),exportable:P.boolean().optional(),nodes:P.array(P.object({id:P.string(),type:P.enum(["entity","metric"]),name:P.string(),description:P.string().nullish()})).nullish(),metric_definitions:P.array(P.object({name:P.string(),definition:P.string()})).nullish(),data_freshness:P.object({coverage_end:P.string().nullish(),data_as_of:P.string().nullish(),last_updated:P.string().nullish()}).nullish()}).passthrough(),Ju=()=>P.object({title:P.string(),url:P.string(),snippet:P.string().nullish(),source_name:P.string().nullish(),publish_date:P.string().nullish(),content:pi().nullish()}).passthrough(),Yu=a(()=>s(P.union([P.object({request_id:P.string(),cards:P.array(Ku()).optional(),web_results:P.array(Ju()).optional(),usage:P.object({total_cost_usd:P.number(),compute:P.object({cost_usd:P.number()}).nullish(),data:P.object({cost_usd:P.number(),datasets:P.number()}).nullish()}).nullish(),related:P.array(P.object({}).passthrough()).nullish()}).passthrough(),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown_tool"]),statusCode:P.number().optional(),message:P.string()})]))),Qu=S({id:"gateway.tako_search",inputSchema:zu,outputSchema:Yu}),Xu=(M={})=>Qu(M),Zu={browserbaseFetch:Cu,browserbaseSearch:ku,exaSearch:Nu,parallelSearch:Lu,perplexitySearch:Bu,takoSearch:Xu};async function ep(){return Ro.getContext().headers?.["x-vercel-id"]}var tp="4.0.128",rp="0.0.1",ap=a(()=>s(P.object({token:P.string(),expiresAt:P.number().nullish()})));function mi(M={}){let C=null,O=null,F=M.metadataCacheRefreshMillis??300000,W=0,ee=Y(M.baseURL)??"https://ai-gateway.vercel.sh/v4/ai",H=(ce)=>q({Authorization:`Bearer ${ce.token}`,"ai-gateway-protocol-version":rp,[ri]:ce.authMethod,...M.teamIdOrSlug!=null?{[ai]:M.teamIdOrSlug}:{},...M.headers},`ai-sdk-gateway/${tp}`),te=async()=>{try{return H(await Vs(M))}catch(ce){throw Xa.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:ce})}},re=async()=>{try{return await Vs(M)}catch(ce){throw Xa.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:ce})}},ne=async(ce)=>{op();let Ie=await re(),He=H(Ie),tt=new URL("/v1/realtime/client-secrets",ee).toString();try{let{value:he}=await g({url:tt,headers:He,body:{model:ce.modelId,...ce.routeKind!=null&&{routeKind:ce.routeKind},...ce.expiresAfterSeconds!=null&&{expiresIn:ce.expiresAfterSeconds}},successfulResponseHandler:p(ap),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(Ke)=>A(Ke)??"unknown error"}),fetch:M.fetch});return{token:he.token,...he.expiresAt!=null&&{expiresAt:he.expiresAt}}}catch(he){throw await pt(he,await yt(He))}},z=()=>{let ce=pe({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),Ie=pe({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),He=pe({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),tt=pe({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let he=await ep();return{...ce&&{"ai-o11y-deployment-id":ce},...Ie&&{"ai-o11y-environment":Ie},...He&&{"ai-o11y-region":He},...he&&{"ai-o11y-request-id":he},...tt&&{"ai-o11y-project-id":tt}}}},oe=(ce)=>new Dd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),se=()=>new xd({provider:"gateway",maxLineBytes:M.batchResultDownloads?.maxLineBytes,baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),de=async()=>{let ce=M._internal?.currentDate?.().getTime()??Date.now();if(!C||ce-W>F)W=ce,C=new ks({baseURL:ee,headers:te,fetch:M.fetch}).getAvailableModels().then((Ie)=>(O=Ie,Ie)).catch(async(Ie)=>{throw await pt(Ie,await yt(await te()))});return O?Promise.resolve(O):C},me=async()=>new ks({baseURL:ee,headers:te,fetch:M.fetch}).getCredits().catch(async(ce)=>{throw await pt(ce,await yt(await te()))}),Le=async(ce)=>new bd({baseURL:ee,headers:te,fetch:M.fetch}).getSpendReport(ce).catch(async(Ie)=>{throw await pt(Ie,await yt(await te()))}),Ge=async(ce)=>new Id({baseURL:ee,headers:te,fetch:M.fetch}).getGenerationInfo(ce).catch(async(Ie)=>{throw await pt(Ie,await yt(await te()))}),be=function(ce){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return oe(ce)};be.specificationVersion="v4",be.getAvailableModels=de,be.getCredits=me,be.getSpendReport=Le,be.getGenerationInfo=Ge,be.imageModel=(ce)=>new Ld(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),be.languageModel=oe,be.experimental_batch=se;let De=(ce)=>new qd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.embeddingModel=De,be.textEmbeddingModel=De,be.videoModel=(ce)=>new Wd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});let xe=(ce)=>new ou(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.rerankingModel=xe,be.reranking=xe;let we=(ce)=>new Zd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.decisionModel=we,be.decision=we,be.evaluationModel=we,be.evaluation=we;let le=(ce)=>new hu(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z(),webSocket:M.webSocket});be.speechModel=le,be.speech=le,be.experimental_speech=Object.assign((ce)=>le(ce),{getToken:async(ce)=>{let Ie=await ne({modelId:ce.model,routeKind:"speech",...ce.expiresAfterSeconds!=null&&{expiresAfterSeconds:ce.expiresAfterSeconds}});return{token:Ie.token,url:di(ee,ce.model),...Ie.expiresAt!=null&&{expiresAt:Ie.expiresAt}}}});let ve=(ce)=>new lu(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z(),webSocket:M.webSocket});be.transcriptionModel=ve,be.transcription=ve,be.experimental_transcription=Object.assign((ce)=>ve(ce),{getToken:async(ce)=>{let Ie=await ne({modelId:ce.model,routeKind:"transcription",...ce.expiresAfterSeconds!=null&&{expiresAfterSeconds:ce.expiresAfterSeconds}});return{token:Ie.token,url:li(ee,ce.model),...Ie.expiresAt!=null&&{expiresAt:Ie.expiresAt}}}});let Se=(ce)=>new Iu(ce,{provider:"gateway.realtime",baseURL:ee,teamIdOrSlug:M.teamIdOrSlug,createClientSecret:ne});return be.experimental_realtime=Object.assign((ce)=>Se(ce),{getToken:async(ce)=>{let{model:Ie,...He}=ce,tt=await Se(Ie).doCreateClientSecret(He);return{token:tt.token,url:tt.url,...tt.expiresAt!=null&&{expiresAt:tt.expiresAt}}}}),be.chat=be.languageModel,be.embedding=be.embeddingModel,be.image=be.imageModel,be.video=be.videoModel,be.tools=Zu,be}var wn=mi();async function Vs(M){let C=pe({settingValue:M.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(C)return{token:C,authMethod:"api-key"};return{token:await Ro.getVercelOidcToken(),authMethod:"oidc"}}function op(){if(typeof globalThis.window<"u")throw 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(), gateway.experimental_transcription.getToken(), or gateway.experimental_speech.getToken() from your server and pass the returned token to the client.")}var qi="AI_InvalidArgumentError",$i=`vercel.ai.error.${qi}`,hp=Symbol.for($i),vr=class extends m{constructor({parameter:M,value:C,message:O}){super({name:qi,message:`Invalid argument for parameter ${M}: ${O}`});this[hp]=!0,this.parameter=M,this.value=C}static isInstance(M){return m.hasMarker(M,$i)}},gp="AI_InvalidStreamPartError",Dh=`vercel.ai.error.${gp}`;var Ui="AI_InvalidToolApprovalError",Li=`vercel.ai.error.${Ui}`,yp=Symbol.for(Li),vp=class extends m{constructor({approvalId:M}){super({name:Ui,message:`Tool approval response references unknown approvalId: "${M}". No matching tool-approval-request found in message history.`});this[yp]=!0,this.approvalId=M}static isInstance(M){return m.hasMarker(M,Li)}},Fi="AI_InvalidToolApprovalSignatureError",Gi=`vercel.ai.error.${Fi}`,wp=Symbol.for(Gi),fi=class extends m{constructor({approvalId:M,toolCallId:C,reason:O}){super({name:Fi,message:`Tool approval signature verification failed for approval "${M}" (tool call "${C}"): ${O}`});this[wp]=!0,this.approvalId=M,this.toolCallId=C}static isInstance(M){return m.hasMarker(M,Gi)}},Vi="AI_InvalidToolInputError",Bi=`vercel.ai.error.${Vi}`,bp=Symbol.for(Bi),Go=class extends m{constructor({toolInput:M,toolName:C,cause:O,message:F=`Invalid input for tool ${C}: ${A(O)}`}){super({name:Vi,message:F,cause:O});this[bp]=!0,this.toolInput=M,this.toolName=C}static isInstance(M){return m.hasMarker(M,Bi)}},Wi="AI_ToolCallNotFoundForApprovalError",Hi=`vercel.ai.error.${Wi}`,Sp=Symbol.for(Hi),$n=class extends m{constructor({toolCallId:M,approvalId:C}){super({name:Wi,message:`Tool call "${M}" not found for approval request "${C}".`});this[Sp]=!0,this.toolCallId=M,this.approvalId=C}static isInstance(M){return m.hasMarker(M,Hi)}},zi="AI_MissingToolResultsError",Ki=`vercel.ai.error.${zi}`,Ip=Symbol.for(Ki),hi=class extends m{constructor({toolCallIds:M}){super({name:zi,message:`Tool result${M.length>1?"s are":" is"} missing for tool call${M.length>1?"s":""} ${M.join(", ")}.`});this[Ip]=!0,this.toolCallIds=M}static isInstance(M){return m.hasMarker(M,Ki)}},Tp="AI_NoImageGeneratedError",qh=`vercel.ai.error.${Tp}`;var xp="AI_NoObjectGeneratedError",$h=`vercel.ai.error.${xp}`;var Ji="AI_NoOutputGeneratedError",Yi=`vercel.ai.error.${Ji}`,Ep=Symbol.for(Yi),Oo=class extends m{constructor({message:M="No output generated.",cause:C}={}){super({name:Ji,message:M,cause:C});this[Ep]=!0}static isInstance(M){return m.hasMarker(M,Yi)}},Mp="AI_NoSpeechGeneratedError",Uh=`vercel.ai.error.${Mp}`;var Cp="AI_NoTranscriptGeneratedError",Lh=`vercel.ai.error.${Cp}`;var Rp="AI_NoTranslationGeneratedError",Fh=`vercel.ai.error.${Rp}`;var _p="AI_NoVideoGeneratedError",Gh=`vercel.ai.error.${_p}`;var Qi="AI_NoSuchToolError",Xi=`vercel.ai.error.${Qi}`,Ap=Symbol.for(Xi),Mn=class extends m{constructor({toolName:M,availableTools:C=void 0,message:O=`Model tried to call unavailable tool '${M}'. ${C===void 0?"No tools are available.":`Available tools: ${C.join(", ")}.`}`}){super({name:Qi,message:O});this[Ap]=!0,this.toolName=M,this.availableTools=C}static isInstance(M){return m.hasMarker(M,Xi)}},Zi="AI_StreamProviderError",el=`vercel.ai.error.${Zi}`,kp=Symbol.for(el),gi=class extends m{constructor({message:M,type:C,code:O,statusCode:F,isRetryable:W=Pp(F),data:ee,cause:H}){super({name:Zi,message:M,cause:H});this[kp]=!0,this.type=C,this.code=O,this.statusCode=F,this.isRetryable=W,this.data=ee}static isInstance(M){return m.hasMarker(M,el)}};function Pp(M){return M!=null&&(M===408||M===409||M===429||M>=500)}var tl="AI_ToolCallRepairError",rl=`vercel.ai.error.${tl}`,Op=Symbol.for(rl),jp=class extends m{constructor({cause:M,originalError:C,message:O=`Error repairing tool call: ${A(M)}`}){super({name:tl,message:O,cause:M});this[Op]=!0,this.originalError=C}static isInstance(M){return m.hasMarker(M,rl)}},al="AI_ToolChoiceViolationError",ol=`vercel.ai.error.${al}`,Np=Symbol.for(ol),Un=class extends m{constructor({toolChoice:M,finishReason:C,provider:O,modelId:F,content:W,message:ee=M.type==="none"?"Model response contained a tool call even though tool choice was none.":M.type==="required"?"Model response did not contain a tool call even though tool choice was required.":`Model response did not contain a call to the required tool '${M.toolName}'.`}){super({name:al,message:ee});this[Np]=!0,this.toolChoice=M,this.finishReason=C,this.provider=O,this.modelId=F,this.content=W}static isInstance(M){return m.hasMarker(M,ol)}},Dp=class extends m{constructor(M){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${M.version} for provider "${M.provider}" and model "${M.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=M.version,this.provider=M.provider,this.modelId=M.modelId}},nl="AI_UIMessageStreamError",sl=`vercel.ai.error.${nl}`,qp=Symbol.for(sl),oa=class extends m{constructor({chunkType:M,chunkId:C,message:O}){super({name:nl,message:O});this[qp]=!0,this.chunkType=M,this.chunkId=C}static isInstance(M){return m.hasMarker(M,sl)}},il="AI_InvalidDataContentError",ll=`vercel.ai.error.${il}`,$p=Symbol.for(ll),cl=class extends m{constructor({content:M,cause:C,message:O=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof M}.`}){super({name:il,message:O,cause:C});this[$p]=!0,this.content=M}static isInstance(M){return m.hasMarker(M,ll)}},dl="AI_InvalidMessageRoleError",ul=`vercel.ai.error.${dl}`,Up=Symbol.for(ul),Lp=class extends m{constructor({role:M,message:C=`Invalid message role: '${M}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:dl,message:C});this[Up]=!0,this.role=M}static isInstance(M){return m.hasMarker(M,ul)}},Fp="AI_MessageConversionError",Vh=`vercel.ai.error.${Fp}`;var pl="AI_RetryError",ml=`vercel.ai.error.${pl}`,Gp=Symbol.for(ml),Vp=class extends m{constructor({message:M,reason:C,errors:O}){super({name:pl,message:M});this[Gp]=!0,this.reason=C,this.errors=O,this.lastError=O[O.length-1]}static isInstance(M){return m.hasMarker(M,ml)}};var Bp=new Map([["generateObject","AISDK_DEP_GENERATE_OBJECT"],["streamObject","AISDK_DEP_STREAM_OBJECT"],["experimental_generateSpeech","AISDK_DEP_EXPERIMENTAL_GENERATE_SPEECH"],["experimental_transcribe","AISDK_DEP_EXPERIMENTAL_TRANSCRIBE"],['"image" content part',"AISDK_DEP_IMAGE_CONTENT_PART"],['"tool-result" content of type "file-data"',"AISDK_DEP_TOOL_RESULT_FILE_DATA"],['"tool-result" content of type "file-url"',"AISDK_DEP_TOOL_RESULT_FILE_URL"],['"tool-result" content of type "file-id"',"AISDK_DEP_TOOL_RESULT_FILE_ID"],['"tool-result" content of type "file-reference"',"AISDK_DEP_TOOL_RESULT_FILE_REFERENCE"],['"tool-result" content of type "image-data"',"AISDK_DEP_TOOL_RESULT_IMAGE_DATA"],['"tool-result" content of type "image-url"',"AISDK_DEP_TOOL_RESULT_IMAGE_URL"],['"tool-result" content of type "image-file-id"',"AISDK_DEP_TOOL_RESULT_IMAGE_FILE_ID"],['"tool-result" content of type "image-file-reference"',"AISDK_DEP_TOOL_RESULT_IMAGE_FILE_REFERENCE"],["rawInput in output-error UI message parts","AISDK_DEP_UI_MESSAGE_RAW_INPUT"]]);function bn(M){return M.replace(/[^a-zA-Z0-9]/g,(C)=>`_${C.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")}`)}function Wp({setting:M,provider:C}){if(C==null)return Bp.get(M)??`AISDK_DEP_SETTING_${bn(M)}`;return`AISDK_DEP_PROVIDER_${bn(C)}__${bn(M)}`}function Hp({warning:M,provider:C,model:O}){let F=`AI SDK Warning${C!=null&&O!=null?` (${C} / ${O})`:""}:`;switch(M.type){case"unsupported":{let W=`${F} The feature "${M.feature}" is not supported.`;if(M.details)W+=` ${M.details}`;return W}case"compatibility":{let W=`${F} The feature "${M.feature}" is used in a compatibility mode.`;if(M.details)W+=` ${M.details}`;return W}case"deprecated":return`${F} Deprecated: "${M.setting}". ${M.message}`;case"other":return`${F} ${M.message}`;default:return`${F} ${JSON.stringify(M,null,2)}`}}var zp="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",yi=!1,vi=new Set;function wi({message:M,type:C,code:O}){if(typeof process<"u"&&typeof process.emitWarning==="function")process.emitWarning(M,O==null?{type:C}:{type:C,code:O});else console.warn(O==null?M:`[${O}] ${M}`)}var na=(M)=>{if(M.warnings.length===0)return;let C=globalThis.AI_SDK_LOG_WARNINGS;if(C===!1)return;if(typeof C==="function"){C(M);return}if(!yi)yi=!0,wi({message:zp,type:"Warning"});for(let O of M.warnings){let F=O.type==="deprecated"?Wp({setting:O.setting,provider:M.provider}):void 0;if(F!=null){if(vi.has(F))continue;vi.add(F)}wi({message:Hp({warning:O,provider:M.provider,model:M.model}),type:O.type==="deprecated"?"DeprecationWarning":"Warning",code:F})}};function uo({provider:M,modelId:C}){na({warnings:[{type:"compatibility",feature:"specificationVersion",details:"Using v2 specification compatibility mode. Some features may not be available."}],provider:M,model:C})}function fl(M){if(M.specificationVersion==="v3")return M;return uo({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function Kp(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?fl(M):M;return new Proxy(C,{get(O,F){if(F==="specificationVersion")return"v4";return O[F]}})}function hl(M){if(M.specificationVersion==="v3")return M;return uo({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function Jp(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?hl(M):M;return new Proxy(C,{get(O,F){if(F==="specificationVersion")return"v4";return O[F]}})}function gl(M){if(M.specificationVersion==="v3")return M;return uo({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){switch(O){case"specificationVersion":return"v3";case"doGenerate":return async(...F)=>{let W=await C.doGenerate(...F);return{...W,finishReason:yl(W.finishReason),usage:vl(W.usage)}};case"doStream":return async(...F)=>{let W=await C.doStream(...F);return{...W,stream:Yp(W.stream)}};default:return C[O]}}})}function Yp(M){return M.pipeThrough(new TransformStream({transform(C,O){switch(C.type){case"finish":O.enqueue({...C,finishReason:yl(C.finishReason),usage:vl(C.usage)});break;default:O.enqueue(C)}}}))}function yl(M){return{unified:M==="unknown"?"other":M,raw:void 0}}function vl(M){return{inputTokens:{total:M.inputTokens,noCache:void 0,cacheRead:M.cachedInputTokens,cacheWrite:void 0},outputTokens:{total:M.outputTokens,text:void 0,reasoning:M.reasoningTokens},raw:M.totalTokens==null?void 0:{totalTokens:M.totalTokens}}}function wl(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?gl(M):M;return new Proxy(C,{get(O,F){switch(F){case"specificationVersion":return"v4";case"doGenerate":return async(W)=>{let ee=await O.doGenerate({...W,prompt:bi(W.prompt)});return{...ee,content:ee.content.map(Zp)}};case"doStream":return async(W)=>{let ee=await O.doStream({...W,prompt:bi(W.prompt)});return{...ee,stream:em(ee.stream)}};default:return O[F]}}})}function bi(M){return M.map((C)=>{if(C.role==="system")return C;return{...C,content:C.content.map((O)=>{switch(O.type){case"file":return{...O,data:Qp(O.data)};case"tool-result":return{...O,output:Xp(O.output)};default:return O}})}})}function Qp(M){switch(M.type){case"data":return M.data;case"url":return M.url;case"reference":case"text":return M}}function Xp(M){if(M.type!=="content")return M;return{...M,value:M.value.map((C)=>{if(C.type!=="file")return C;switch(C.data.type){case"data":return{type:"file-data",data:typeof C.data.data==="string"?C.data.data:X(C.data.data),mediaType:C.mediaType,filename:C.filename,providerOptions:C.providerOptions};case"url":return{type:"file-url",url:C.data.url.toString(),providerOptions:C.providerOptions};case"reference":return{type:"file-id",fileId:C.data.reference,providerOptions:C.providerOptions};case"text":return C}})}}function Zp(M){return M.type==="file"?{...M,data:{type:"data",data:M.data}}:M}function em(M){return M.pipeThrough(new TransformStream({transform(C,O){O.enqueue(C.type==="file"?{...C,data:{type:"data",data:C.data}}:C)}}))}function tm(M){if(M.specificationVersion==="v4")return M;return new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v4";return C[O]}})}function bl(M){if(M.specificationVersion==="v3")return M;return uo({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function rm(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?bl(M):M;return new Proxy(C,{get(O,F){if(F==="specificationVersion")return"v4";return O[F]}})}function Sl(M){if(M.specificationVersion==="v3")return M;return uo({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function am(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?Sl(M):M;return new Proxy(C,{get(O,F){if(F==="specificationVersion")return"v4";return O[F]}})}function om(M){if("specificationVersion"in M&&M.specificationVersion==="v3")return M;let C=M;return{specificationVersion:"v3",languageModel:(O)=>gl(C.languageModel(O)),embeddingModel:(O)=>fl(C.textEmbeddingModel(O)),imageModel:(O)=>hl(C.imageModel(O)),transcriptionModel:C.transcriptionModel?(O)=>Sl(C.transcriptionModel(O)):void 0,speechModel:C.speechModel?(O)=>bl(C.speechModel(O)):void 0,rerankingModel:void 0}}function nm(M){if("specificationVersion"in M&&M.specificationVersion==="v4")return M;let C=!("specificationVersion"in M)||M.specificationVersion!=="v3"?om(M):M;return{specificationVersion:"v4",languageModel:(O)=>wl(C.languageModel(O)),embeddingModel:(O)=>Kp(C.embeddingModel(O)),imageModel:(O)=>Jp(C.imageModel(O)),transcriptionModel:C.transcriptionModel?(O)=>am(C.transcriptionModel(O)):void 0,speechModel:C.speechModel?(O)=>rm(C.speechModel(O)):void 0,rerankingModel:C.rerankingModel?(O)=>tm(C.rerankingModel(O)):void 0}}function so(M){if(typeof M==="string")return sm().languageModel(M);if(!["v4","v3","v2"].includes(M.specificationVersion)){let C=M;throw new Dp({version:C.specificationVersion,provider:C.provider,modelId:C.modelId})}return wl(M)}function sm(){return nm(globalThis.AI_SDK_DEFAULT_PROVIDER??wn)}function oo(M){return M.map((C)=>Cn(C))}function Cn(M){if(M instanceof URL)return new URL(M.href);if(Array.isArray(M))return M.map((C)=>Cn(C));if(M instanceof Uint8Array)return new Uint8Array(M);if(M instanceof ArrayBuffer)return M.slice(0);if(M instanceof Date)return new Date(M);if(M!=null&&typeof M==="object")return Object.fromEntries(Object.entries(M).map(([C,O])=>[C,Cn(O)]));return M}var Ln="7.0.155",Fn=async({url:M,maxBytes:C,abortSignal:O})=>{let F=M.toString();try{let W=q({},`ai-sdk/${Ln}`,ke()),ee=await Lt({url:F,headers:W,abortSignal:O});if(!ee.ok)throw await at(ee),new B({url:F,statusCode:ee.status,statusText:ee.statusText});return{data:await wt({response:ee,url:F,maxBytes:C??$t}),mediaType:ee.headers.get("content-type")??void 0}}catch(W){if(B.isInstance(W))throw W;throw new B({url:F,cause:W})}},im=(M=Fn,C)=>(O)=>Promise.all(O.map(async(F)=>F.isUrlSupportedByModel?null:await M({...F,abortSignal:C})));function ka(M,C){if(M===void 0&&C===void 0)return;if(M===void 0)return C;if(C===void 0)return M;let O={...M};for(let F in C){if(F==="__proto__"||F==="constructor"||F==="prototype")continue;if(Object.prototype.hasOwnProperty.call(C,F)){let W=C[F];if(W===void 0)continue;let ee=F in M?M[F]:void 0,H=W!==null&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp),te=ee!==null&&ee!==void 0&&typeof ee==="object"&&!Array.isArray(ee)&&!(ee instanceof Date)&&!(ee instanceof RegExp);if(H&&te)O[F]=ka(ee,W);else O[F]=W}}return O}function lm(M){try{let[C,O]=M.split(",");return{mediaType:C.split(";")[0].split(":")[1],base64Content:O}}catch{return{mediaType:void 0,base64Content:void 0}}}function cm(M){if(typeof M!=="object"||M===null)return!1;let C=M.type;return C==="data"||C==="url"||C==="reference"||C==="text"}function Rn(M,C){if(M.protocol==="data:"){let{mediaType:O,base64Content:F}=lm(M.toString());if(O==null||F==null)throw new cl({content:M,message:`Invalid data URL format in content ${M.toString()}`});return{data:{type:"data",data:F},mediaType:O}}return{data:{type:"url",url:M,...C!=null?{originalUrl:C}:{}},mediaType:void 0}}function dm(M){let C=Rn(new URL(M));if(C.data.type==="url"&&C.data.url.toString()!==M)C.data.originalUrl=M;return C}function Sn(M){if(M instanceof Uint8Array)return{data:{type:"data",data:M},mediaType:void 0};if(M instanceof ArrayBuffer)return{data:{type:"data",data:new Uint8Array(M)},mediaType:void 0};if(vt(M))return{data:{type:"data",data:new Uint8Array(M)},mediaType:void 0};return{data:{type:"data",data:M},mediaType:void 0}}function qo(M){if(cm(M))switch(M.type){case"data":if(typeof M.data==="string"&&M.data.startsWith("data:"))throw new cl({content:M.data,message:'Data URLs are not valid inline data. Pass them as { type: "url", url } instead.'});return Sn(M.data);case"url":return Rn(M.url,M.originalUrl);case"reference":return{data:{type:"reference",reference:M.reference},mediaType:void 0};case"text":return{data:{type:"text",text:M.text},mediaType:void 0}}if(M instanceof URL)return Rn(M);if(typeof M==="string")try{return dm(M)}catch{return Sn(M)}if(nn(M))return{data:{type:"reference",reference:M},mediaType:void 0};return Sn(M)}async function Il({prompt:M,supportedUrls:C,download:O,abortSignal:F,provider:W}){let ee=await pm(M.messages,O??im(void 0,F),C),H=[...M.instructions!=null?typeof M.instructions==="string"?[{role:"system",content:M.instructions}]:Ne(M.instructions).map((ne)=>({role:"system",content:ne.content,providerOptions:ne.providerOptions})):[],...M.messages.map((ne)=>um({message:ne,downloadedAssets:ee,provider:W}))],te=[];for(let ne of H){if(ne.role!=="tool"){te.push(ne);continue}let z=te.at(-1);if(z?.role==="tool"){let oe=z.content.at(-1);if(oe!=null&&z.providerOptions!=null)oe.providerOptions=ka(z.providerOptions,oe.providerOptions);z.content.push(...ne.content),z.providerOptions=oe==null?ka(z.providerOptions,ne.providerOptions):ne.providerOptions}else te.push(ne)}let re=new Set;for(let ne of te)switch(ne.role){case"assistant":for(let z of ne.content)if(z.type==="tool-call"&&!z.providerExecuted)re.add(z.toolCallId);break;case"tool":for(let z of ne.content)if(z.type==="tool-result")re.delete(z.toolCallId);break;case"user":case"system":if(re.size>0)throw new hi({toolCallIds:Array.from(re)})}if(re.size>0)throw new hi({toolCallIds:Array.from(re)});return te.filter((ne)=>ne.role!=="tool"||ne.content.length>0)}function um({message:M,downloadedAssets:C,provider:O}){let F=[],W=M.role;switch(W){case"system":return{role:"system",content:M.content,providerOptions:M.providerOptions};case"user":{if(typeof M.content==="string")return{role:"user",content:[{type:"text",text:M.content}],providerOptions:M.providerOptions};let ee={role:"user",content:M.content.map((H)=>{if(H.type==="image")F.push({type:"deprecated",setting:'"image" content part',message:`The "image" content part type is deprecated. Use a "file" part with mediaType: 'image' (or a more specific image/* subtype) instead.`});return Tl(H)}).map((H)=>xl(H,C)).filter((H)=>H.type!=="text"||H.text!==""),providerOptions:M.providerOptions};if(F.length>0)na({warnings:F});return ee}case"assistant":{if(typeof M.content==="string")return{role:"assistant",content:[{type:"text",text:M.content}],providerOptions:M.providerOptions};let ee={role:"assistant",content:M.content.filter((H)=>H.type!=="text"||H.text!==""||H.providerOptions!=null).filter((H)=>H.type!=="tool-approval-request").map((H)=>{let te=H.providerOptions;switch(H.type){case"custom":return{type:"custom",kind:H.kind,providerOptions:te};case"file":{let{data:re,mediaType:ne}=qo(H.data);return{type:"file",data:re,filename:H.filename,mediaType:ne??H.mediaType,providerOptions:te}}case"reasoning":return{type:"reasoning",text:H.text,providerOptions:te};case"reasoning-file":{let{data:re,mediaType:ne}=qo(H.data);if(re.type!=="data"&&re.type!=="url")throw Error(`Unsupported reasoning-file data type: ${re.type}`);return{type:"reasoning-file",data:re,mediaType:ne??H.mediaType,providerOptions:te}}case"text":return{type:"text",text:H.text,providerOptions:te};case"tool-call":return{type:"tool-call",toolCallId:H.toolCallId,toolName:H.toolName,input:H.input,providerExecuted:H.providerExecuted,providerOptions:te};case"tool-result":return{type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:Si({output:H.output,provider:O,warnings:F,downloadedAssets:C}),providerOptions:te}}}),providerOptions:M.providerOptions};if(F.length>0)na({warnings:F});return ee}case"tool":{let ee={role:"tool",content:M.content.filter((H)=>H.type!=="tool-approval-response"||H.providerExecuted).map((H)=>{switch(H.type){case"tool-result":return{type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:Si({output:H.output,provider:O,warnings:F,downloadedAssets:C}),providerOptions:H.providerOptions};case"tool-approval-response":return{type:"tool-approval-response",approvalId:H.approvalId,approved:H.approved,reason:H.reason}}}),providerOptions:M.providerOptions};if(F.length>0)na({warnings:F});return ee}default:throw new Lp({role:W})}}function Tl(M){if(M.type!=="image")return M;return{type:"file",data:M.image,mediaType:M.mediaType??"image",providerOptions:M.providerOptions}}async function pm(M,C,O){let F=[];for(let H of M){if(H.role==="user"&&Array.isArray(H.content))for(let te of H.content){let re=Tl(te);if(re.type==="file")F.push(re)}if(H.role==="tool")for(let te of H.content){if(te.type!=="tool-result")continue;if(te.output.type!=="content")continue;for(let re of te.output.value)if(re.type==="file")F.push(re)}if(H.role==="assistant"&&Array.isArray(H.content))for(let te of H.content){if(te.type!=="tool-result")continue;if(te.output.type!=="content")continue;for(let re of te.output.value)if(re.type==="file")F.push(re)}}let W=F.map((H)=>{let te=H.mediaType,{data:re}=qo(H.data);return{mediaType:te,data:re}}).filter((H)=>H.data.type==="url").map((H)=>({url:H.data.url,isUrlSupportedByModel:H.mediaType!=null&&Ze({url:H.data.url.toString(),mediaType:H.mediaType,supportedUrls:O})})),ee=await C(W);return Object.fromEntries(ee.map((H,te)=>H==null?null:[W[te].url.toString(),{data:H.data,mediaType:H.mediaType}]).filter((H)=>H!=null))}function xl(M,C){if(M.type==="text")return{type:"text",text:M.text,providerOptions:M.providerOptions};let{data:O,mediaType:F}=qo(M.data),W=F??M.mediaType,ee=O;if(ee.type==="url"){let H=C[ee.url.toString()];if(H){if(ee={type:"data",data:H.data},H.mediaType!=null&&(W==null||!K(W)))W=H.mediaType}}if(ee.type==="data"&&(ee.data instanceof Uint8Array||typeof ee.data==="string")){let H=Te({data:ee.data,topLevelType:"image"});if(H!=null)W=H}if(W==null)throw Error("Media type is missing for file part");return{type:"file",mediaType:W,filename:M.filename,data:ee,providerOptions:M.providerOptions}}function Si({output:M,provider:C,warnings:O=[],downloadedAssets:F}){if(M.type!=="content")return M;return{type:"content",value:M.value.map((W)=>{switch(W.type){case"file":{let ee=xl(W,F);if(ee.type!=="file")throw Error("Expected tool result file content to convert to file.");return ee}case"file-data":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-data"',message:`The "file-data" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'data', data } instead.`}),{type:"file",data:{type:"data",data:W.data},filename:W.filename,mediaType:W.mediaType,providerOptions:W.providerOptions};case"file-url":{let ee=W.mediaType??mm(W.url),H=new URL(W.url),te=`The "file-url" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'url', url } instead.`;if(!W.mediaType){let re=ee==="application/octet-stream"?"Unable to infer media type from URL. Defaulting to 'application/octet-stream'.":`Inferred media type '${ee}' from URL.`;te=`The "file-url" tool result content part with URL "${W.url}" is missing a "mediaType". ${re} ${te}`}return O.push({type:"deprecated",setting:'"tool-result" content of type "file-url"',message:te}),{type:"file",data:{type:"url",url:H,...H.toString()!==W.url?{originalUrl:W.url}:{}},mediaType:ee,providerOptions:W.providerOptions}}case"file-id":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-id"',message:`The "file-id" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:Ii({fileId:W.fileId,provider:C})},mediaType:"application",providerOptions:W.providerOptions};case"file-reference":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-reference"',message:`The "file-reference" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:W.providerReference},mediaType:"application",providerOptions:W.providerOptions};case"image-data":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-data"',message:`The "image-data" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'data', data } instead.`}),{type:"file",data:{type:"data",data:W.data},mediaType:W.mediaType,providerOptions:W.providerOptions};case"image-url":{let ee=new URL(W.url);return O.push({type:"deprecated",setting:'"tool-result" content of type "image-url"',message:`The "image-url" type for tool result content is deprecated. Use the "file" type with mediaType 'image' (or a specific image/* subtype) and { type: 'url', url } instead.`}),{type:"file",data:{type:"url",url:ee,...ee.toString()!==W.url?{originalUrl:W.url}:{}},mediaType:"image",providerOptions:W.providerOptions}}case"image-file-id":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-file-id"',message:`The "image-file-id" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:Ii({fileId:W.fileId,provider:C})},mediaType:"image",providerOptions:W.providerOptions};case"image-file-reference":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-file-reference"',message:`The "image-file-reference" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:W.providerReference},mediaType:"image",providerOptions:W.providerOptions};default:return W}})}}function Ii({fileId:M,provider:C}){if(typeof M==="object")return M;if(C==null)throw Error("Cannot convert string fileId to provider reference without a provider ID. Use a Record<string, string> fileId or switch to the file-reference type.");return{[C]:M}}var Ti={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",avif:"image/avif",heic:"image/heic",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff",pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg"};function mm(M,C="application/octet-stream"){try{let O=new URL(M).pathname.split(".").pop()?.toLowerCase();if(O&&Object.hasOwn(Ti,O))return Ti[O]}catch{}return C}async function sa({toolCallId:M,input:C,output:O,tool:F,errorMode:W}){if(W==="text")return{type:"error-text",value:A(O)};else if(W==="json")return{type:"error-json",value:xi(O)};if(F?.toModelOutput)return await F.toModelOutput({toolCallId:M,input:C,output:O});return typeof O==="string"?{type:"text",value:O}:{type:"json",value:xi(O)}}function xi(M){if(M===void 0)return null;let C=JSON.stringify(M);return C===void 0?null:JSON.parse(C)}function $o({maxOutputTokens:M,temperature:C,topP:O,topK:F,presencePenalty:W,frequencyPenalty:ee,seed:H,stopSequences:te,reasoning:re}){if(M!=null){if(!Number.isInteger(M))throw new vr({parameter:"maxOutputTokens",value:M,message:"maxOutputTokens must be an integer"});if(M<1)throw new vr({parameter:"maxOutputTokens",value:M,message:"maxOutputTokens must be >= 1"})}if(H!=null){if(!Number.isInteger(H))throw new vr({parameter:"seed",value:H,message:"seed must be an integer"})}return{maxOutputTokens:M,temperature:C,topP:O,topK:F,presencePenalty:W,frequencyPenalty:ee,stopSequences:te,seed:H,reasoning:re}}function Gn({toolChoice:M}){return M==null?{type:"auto"}:typeof M==="string"?{type:M}:{type:"tool",toolName:M.toolName}}function fm(M){return M!=null&&Object.keys(M).length>0}async function Vn({tools:M,toolOrder:C,toolsContext:O={},experimental_sandbox:F}){if(!fm(M))return;let W=[];for(let[ee,H]of hm({tools:M,toolOrder:C})){let te=H.type;switch(te){case void 0:case"dynamic":case"function":{let re=El({tool:H,toolName:ee,toolsContext:O,experimental_sandbox:F}),{providerOptions:ne,inputExamples:z,strict:oe}=H;W.push({type:"function",name:ee,inputSchema:await ze(H.inputSchema).jsonSchema,...re!=null?{description:re}:{},...z!=null?{inputExamples:z}:{},...ne!=null?{providerOptions:ne}:{},...oe!=null?{strict:oe}:{}});break}case"provider":W.push({type:"provider",name:ee,id:H.id,args:H.args});break;default:throw Error(`Unsupported tool type: ${te}`)}}return W}function hm({tools:M,toolOrder:C}){if(C==null)return Object.entries(M);let O=Object.entries(M),F=O.filter(([ee])=>C.includes(ee)).sort(([ee],[H])=>C.indexOf(ee)-C.indexOf(H)),W=O.filter(([ee])=>!C.includes(ee)).sort(([ee],[H])=>ee<H?-1:ee>H?1:0);return[...F,...W]}function El({tool:M,toolName:C,toolsContext:O,experimental_sandbox:F}){return M.description===void 0?void 0:typeof M.description==="string"?M.description:M.description({context:O[C],experimental_sandbox:F})}function Ml(M){if(M==null)return;if(typeof M==="number")return M;return M.totalMs}function Cl(M){if(M==null||typeof M==="number")return;return M.stepMs}function Rl(M){if(M==null||typeof M==="number")return;return M.firstChunkMs}function _l(M){if(M==null||typeof M==="number")return;return M.chunkMs}function gm(M,C){if(M==null||typeof M==="number")return;return M.tools?.[`${C}Ms`]??M.toolMs}async function Bn({allowSystemInMessages:M=!1,system:C,instructions:O=C,prompt:F,messages:W}){if(W=F==null?W:typeof F==="string"?[{role:"user",content:F}]:F,W.length===0)throw new ye({prompt:F,message:"messages must not be empty"});if(!M&&W.some((ee)=>ee.role==="system"))throw new ye({prompt:F,message:"System messages are not allowed in the prompt or messages fields. Use the instructions option instead."});return{messages:W,instructions:O}}function ro(M){if(!Xa.isInstance(M))return M;let C=process?.env.NODE_ENV==="production",O="https://ai-sdk.dev/unauthenticated-ai-gateway";if(C)return new m({name:"GatewayError",message:`Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${O}`});return Object.assign(Error(`\x1B[1m\x1B[31mUnauthenticated request to AI Gateway.\x1B[0m
|
|
22
|
+
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`;return new M({message:ee,statusCode:O,cause:L,generationId:W})}};function As(M){if(!(M instanceof Error))return!1;let C=M.code;if(typeof C==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(C);return!1}async function ut(M,C){if(ft.isInstance(M))return M;if(As(M))return _s.createTimeoutError({originalMessage:M instanceof Error?M.message:"Unknown error",cause:M});if(w.isInstance(M)){if(M.cause&&As(M.cause))return _s.createTimeoutError({originalMessage:M.message,cause:M});return await on({response:md(M),statusCode:M.statusCode??500,defaultMessage:"Gateway request failed",cause:M,authMethod:C,isRetryable:M.isRetryable&&(M.statusCode==null||M.statusCode<400)?!0:void 0})}return await on({response:{},statusCode:500,defaultMessage:M instanceof Error?`Gateway request failed: ${M.message}`:"Unknown Gateway error",cause:M,authMethod:C})}var ri="ai-gateway-auth-method",ai="x-vercel-ai-gateway-team";async function yt(M){let C=await q({value:M[ri],schema:hd});return C.success?C.value:void 0}var hd=a(()=>s(P.union([P.literal("api-key"),P.literal("oidc")]))),gd=["embedding","decision","evaluation","image","language","realtime","reranking","speech","transcription","video"],ks=class{constructor(M){this.config=M}async getAvailableModels(){try{let{value:M}=await R({url:`${this.config.baseURL}/config`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(vd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(C)=>A(C)??"unknown error"}),fetch:this.config.fetch});return M}catch(M){throw await ut(M)}}async getCredits(){try{let M=new URL(this.config.baseURL),C=this.config.headers?await _(this.config.headers):void 0,O=new URL("/v1/credits",M.origin),L=yd(C);if(L)O.searchParams.set(L.startsWith("team_")?"teamId":"slug",L);let{value:W}=await R({url:O.toString(),validateUrl:!1,headers:C,successfulResponseHandler:p(wd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),fetch:this.config.fetch});return W}catch(M){throw await ut(M)}}};function yd(M){if(!M)return;for(let[C,O]of Object.entries(M))if(C.toLowerCase()==="x-vercel-ai-gateway-team")return O?.trim()||void 0}var vd=a(()=>s(P.object({models:P.array(P.object({id:P.string(),name:P.string(),description:P.string().nullish(),pricing:P.object({input:P.string(),output:P.string(),input_cache_read:P.string().nullish(),input_cache_write:P.string().nullish()}).transform(({input:M,output:C,input_cache_read:O,input_cache_write:L})=>({input:M,output:C,...O?{cachedInputTokens:O}:{},...L?{cacheCreationInputTokens:L}:{}})).nullish(),specification:P.object({specificationVersion:P.literal("v4"),provider:P.string(),modelId:P.string()}),modelType:P.string().nullish()})).transform((M)=>M.filter((C)=>C.modelType==null||gd.includes(C.modelType)))}))),wd=a(()=>s(P.object({balance:P.string(),total_used:P.string()}).transform(({balance:M,total_used:C})=>({balance:M,totalUsed:C})))),bd=class{constructor(M){this.config=M}async getSpendReport(M){try{let C=new URL(this.config.baseURL),O=new URLSearchParams;if(O.set("start_date",M.startDate),O.set("end_date",M.endDate),M.groupBy)O.set("group_by",M.groupBy);if(M.datePart)O.set("date_part",M.datePart);if(M.userId)O.set("user_id",M.userId);if(M.model)O.set("model",M.model);if(M.provider)O.set("provider",M.provider);if(M.credentialType)O.set("credential_type",M.credentialType);if(M.tags&&M.tags.length>0)O.set("tags",M.tags.join(","));let{value:L}=await R({url:`${C.origin}/v1/report?${O.toString()}`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(Sd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(W)=>A(W)??"unknown error"}),fetch:this.config.fetch});return L}catch(C){throw await ut(C)}}},Sd=a(()=>s(P.object({results:P.array(P.object({day:P.string().optional(),hour:P.string().optional(),user:P.string().optional(),model:P.string().optional(),tag:P.string().optional(),provider:P.string().optional(),credential_type:P.enum(["byok","system"]).optional(),total_cost:P.number(),market_cost:P.number().optional(),input_tokens:P.number().optional(),output_tokens:P.number().optional(),cached_input_tokens:P.number().optional(),cache_creation_input_tokens:P.number().optional(),reasoning_tokens:P.number().optional(),request_count:P.number().optional()}).transform(({credential_type:M,total_cost:C,market_cost:O,input_tokens:L,output_tokens:W,cached_input_tokens:ee,cache_creation_input_tokens:H,reasoning_tokens:te,request_count:re,...ne})=>({...ne,...M!==void 0?{credentialType:M}:{},totalCost:C,...O!==void 0?{marketCost:O}:{},...L!==void 0?{inputTokens:L}:{},...W!==void 0?{outputTokens:W}:{},...ee!==void 0?{cachedInputTokens:ee}:{},...H!==void 0?{cacheCreationInputTokens:H}:{},...te!==void 0?{reasoningTokens:te}:{},...re!==void 0?{requestCount:re}:{}})))}))),Id=class{constructor(M){this.config=M}async getGenerationInfo(M){try{let C=new URL(this.config.baseURL),{value:O}=await R({url:`${C.origin}/v1/generation?id=${encodeURIComponent(M.id)}`,validateUrl:!1,headers:this.config.headers?await _(this.config.headers):void 0,successfulResponseHandler:p(Td),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(L)=>A(L)??"unknown error"}),fetch:this.config.fetch});return O}catch(C){throw await ut(C)}}},Td=a(()=>s(P.object({data:P.object({id:P.string(),total_cost:P.number(),upstream_inference_cost:P.number(),usage:P.number(),created_at:P.string(),model:P.string(),is_byok:P.boolean(),provider_name:P.string(),streamed:P.boolean(),finish_reason:P.string(),latency:P.number(),generation_time:P.number(),native_tokens_prompt:P.number(),native_tokens_completion:P.number(),native_tokens_reasoning:P.number(),native_tokens_cached:P.number(),native_tokens_cache_creation:P.number(),billable_web_search_calls:P.number()}).transform(({total_cost:M,upstream_inference_cost:C,created_at:O,is_byok:L,provider_name:W,finish_reason:ee,generation_time:H,native_tokens_prompt:te,native_tokens_completion:re,native_tokens_reasoning:ne,native_tokens_cached:z,native_tokens_cache_creation:oe,billable_web_search_calls:se,...de})=>({...de,totalCost:M,upstreamInferenceCost:C,createdAt:O,isByok:L,providerName:W,finishReason:ee,generationTime:H,promptTokens:te,completionTokens:re,reasoningTokens:ne,cachedTokens:z,cacheCreationTokens:oe,billableWebSearchCalls:se}))}).transform(({data:M})=>M))),xd=class{constructor(M){this.config=M,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]},this.provider=`${M.provider}.batch`}async doStartBatch({requests:M,providerOptions:C,headers:O,abortSignal:L,webhookUrl:W}){Cd(M);let ee=Md(M),H=this.config.headers?await _(this.config.headers):void 0,te=Rd(C),re=_d(C);try{let{value:ne}=await g({url:this.getBatchUrl("start"),headers:d(H,O,{"ai-model-id":ee},await _(this.config.o11yHeaders),te!=null?{"idempotency-key":te}:void 0),body:{...W!=null&&{callbackUrl:W},requests:M.map((z)=>({id:z.id,type:z.type,modelId:z.modelId,options:Ed(z.options)})),...re!=null&&{providerOptions:re}},successfulResponseHandler:p(Nd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...L&&{abortSignal:L},fetch:this.config.fetch});return{batchId:ne.batchId,...Os(ne),warnings:ne.warnings??[]}}catch(ne){if(Eo(ne))throw ne;throw await ut(ne,await yt(H??{}))}}async doGetBatchStatus({batchId:M,headers:C,abortSignal:O}){let L=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("status"),headers:d(L,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:p(js),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return Os(W)}catch(W){if(Eo(W))throw W;throw await ut(W,await yt(L??{}))}}async doGetBatchResults({batchId:M,headers:C,abortSignal:O}){let L=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("results"),headers:d(L,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:_e(kd,{maxLineBytes:this.config.maxLineBytes}),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return ae(Ad(W))}catch(W){if(Eo(W))throw W;throw await ut(W,await yt(L??{}))}}async doCancelBatch({batchId:M,headers:C,abortSignal:O}){let L=this.config.headers?await _(this.config.headers):void 0;try{let{value:W}=await g({url:this.getBatchUrl("cancel"),headers:d(L,C,await _(this.config.o11yHeaders)),body:{batchId:M},successfulResponseHandler:p(js),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ee)=>A(ee)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{...W.providerMetadata!=null&&{providerMetadata:W.providerMetadata}}}catch(W){if(Eo(W))throw W;throw await ut(W,await yt(L??{}))}}getBatchUrl(M){return`${this.config.baseURL}/batch/${M}`}};function Ed(M){for(let C of M.prompt){if(!Array.isArray(C.content))continue;for(let O of C.content)if(O.type==="file"||O.type==="reasoning-file")O.data=Ps(O.data);else if(O.type==="tool-result"&&O.output.type==="content"){for(let L of O.output.value)if(L.type==="file")L.data=Ps(L.data)}}return M}function Ps(M){if(M.type==="data"){let C=M.data;if(C instanceof Uint8Array)return{...M,data:Buffer.from(C).toString("base64")}}return M}function Md(M){let C=M[0]?.modelId;if(C==null)throw new b({argument:"requests",message:"The AI Gateway Batch API requires at least one request."});for(let O of M)if(O.modelId!==C)throw new b({argument:"requests",message:`The AI Gateway Batch API requires all requests in a batch to use the same model. Found "${C}" and "${O.modelId}".`});return C}function Cd(M){for(let C of M){let O=C.type;if(O!=="text")throw new u({functionality:`batch request type: ${O}`,message:`The AI Gateway Batch API does not support batch requests with type "${O}".`})}}function Rd(M){let C=M?.gateway;if(C==null||typeof C!=="object"||Array.isArray(C))return;let O=C.idempotencyKey;return typeof O==="string"&&O.length>0?O:void 0}function _d(M){let C=M?.gateway;if(C==null||typeof C!=="object"||Array.isArray(C)||!("idempotencyKey"in C))return M;let{idempotencyKey:O,...L}=C,W={...M};if(Object.keys(L).length===0)delete W.gateway;else W.gateway=L;if(Object.keys(W).length===0)return;return W}function Eo(M){if(!(M instanceof Error||M instanceof DOMException))return!1;return M.name==="AbortError"||M.name==="TimeoutError"}function Os(M){let C=ge({total:M.requestCounts?.total,pending:M.requestCounts?.pending,completed:M.requestCounts?.completed,failed:M.requestCounts?.failed});return{status:M.status,...M.rawStatus!=null&&{rawStatus:M.rawStatus},...C!=null&&{requestCounts:C},...M.error!=null&&{error:{message:M.error.message,...M.error.type!=null&&{type:M.error.type},...M.error.code!=null&&{code:M.error.code},...M.error.statusCode!=null&&{statusCode:M.error.statusCode}}},...M.createdAt!=null&&{createdAt:M.createdAt},...M.expiresAt!=null&&{expiresAt:M.expiresAt},...M.providerMetadata!=null&&{providerMetadata:M.providerMetadata}}}async function*Ad(M){for await(let C of M){let O=C;if(O.status==="succeeded"){let L=O.result?.response;if(L!==void 0&&typeof L.timestamp==="string")L.timestamp=new Date(L.timestamp)}yield O}}var kd=a(()=>s(P.object({type:P.literal("text"),id:P.string(),status:P.enum(["cancelled","expired","failed","succeeded"])}).catchall(P.unknown()))),Pd=()=>P.object({message:P.string(),type:P.string().nullish(),code:P.string().nullish(),statusCode:P.number().nullish()}),Od=()=>P.object({total:P.number().nullish(),pending:P.number().nullish(),completed:P.number().nullish(),failed:P.number().nullish()}),jd=()=>P.record(P.string(),P.record(P.string(),P.unknown())),oi=()=>P.object({status:P.enum(["completed","failed","pending"]),rawStatus:P.string().nullish(),requestCounts:Od().nullish(),error:Pd().nullish(),createdAt:P.string().nullish(),expiresAt:P.string().nullish(),providerMetadata:jd().nullish()}),Nd=a(()=>s(oi().extend({batchId:P.string(),warnings:P.array(P.object({requestId:P.string().nullish(),warning:P.unknown()}).catchall(P.unknown())).nullish()}))),js=a(()=>s(oi())),Dd=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(C){let{abortSignal:O,...L}=C;return{args:this.maybeEncodeFileParts(L),warnings:[]}}async doGenerate(C){let{args:O,warnings:L}=await this.getArgs(C),{abortSignal:W}=C,ee=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:H,value:te,rawValue:re}=await g({url:this.getUrl(),headers:d(ee,C.headers,this.getModelConfigHeaders(this.modelId,!1),await _(this.config.o11yHeaders)),body:O,successfulResponseHandler:p(P.any()),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(ne)=>A(ne)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{...te,request:{body:O},response:{headers:H,body:re},warnings:[...te.warnings??[],...L]}}catch(H){throw await ut(H,await yt(ee??{}))}}async doStream(C){let{args:O,warnings:L}=await this.getArgs(C),{abortSignal:W}=C,ee=this.config.headers?await _(this.config.headers):void 0;try{let{value:H,responseHeaders:te}=await g({url:this.getUrl(),headers:d(ee,C.headers,this.getModelConfigHeaders(this.modelId,!0),await _(this.config.o11yHeaders)),body:O,successfulResponseHandler:D(P.any()),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(re)=>A(re)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{stream:H.pipeThrough(new TransformStream({start(re){if(L.length>0)re.enqueue({type:"stream-start",warnings:L})},transform(re,ne){if(re.success){let z=re.value;if(z.type==="raw"&&!C.includeRawChunks)return;if(z.type==="response-metadata"&&z.timestamp&&typeof z.timestamp==="string")z.timestamp=new Date(z.timestamp);ne.enqueue(z)}else ne.error(re.error)}})),request:{body:O},response:{headers:te}}}catch(H){throw await ut(H,await yt(ee??{}))}}maybeEncodeFileParts(C){for(let O of C.prompt){if(!Array.isArray(O.content))continue;for(let L of O.content)if(L.type==="file"||L.type==="reasoning-file")L.data=Ns(L.data);else if(L.type==="tool-result"&&L.output.type==="content"){for(let W of L.output.value)if(W.type==="file")W.data=Ns(W.data)}}return C}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(C,O){return{"ai-language-model-specification-version":"4","ai-language-model-id":C,"ai-language-model-streaming":String(O)}}};function Ns(M){if(M.type==="data"){let C=M.data;if(C instanceof Uint8Array)return{...M,data:Buffer.from(C).toString("base64")}}return M}var qd=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:C,dimensions:O,headers:L,abortSignal:W,providerOptions:ee}){let H=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:te,value:re,rawValue:ne}=await g({url:this.getUrl(),headers:d(H,L??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{values:C,dimensions:O,...ee?{providerOptions:ee}:{}},successfulResponseHandler:p(Ud),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{embeddings:re.embeddings,usage:re.usage??void 0,providerMetadata:re.providerMetadata,response:{headers:te,body:ne},warnings:re.warnings??[]}}catch(te){throw await ut(te,await yt(H??{}))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"4","ai-model-id":this.modelId}}},$d=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Ud=a(()=>s(P.object({embeddings:P.array(P.array(P.number())),usage:P.object({tokens:P.number()}).nullish(),warnings:P.array($d()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()}))),Ld=class M{static[k](C){return E({modelId:C.modelId,config:C.config})}static[T](C){return new M(C.modelId,C.config)}constructor(C,O){this.modelId=C,this.config=O,this.specificationVersion="v4",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:C,n:O,size:L,aspectRatio:W,seed:ee,files:H,mask:te,providerOptions:re,headers:ne,abortSignal:z}){let oe=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:se,value:de}=await g({url:this.getUrl(),headers:d(oe,ne??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{prompt:C,n:O,...L&&{size:L},...W&&{aspectRatio:W},...ee&&{seed:ee},...re&&{providerOptions:re},...H&&{files:H.map((me)=>Ds(me))},...te&&{mask:Ds(te)}},successfulResponseHandler:p(Bd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(me)=>A(me)??"unknown error"}),...z&&{abortSignal:z},fetch:this.config.fetch});return{images:de.images,...de.isRetryable!=null&&{isRetryable:de.isRetryable},warnings:de.warnings??[],providerMetadata:de.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:se},...de.usage!=null&&{usage:{inputTokens:de.usage.inputTokens??void 0,outputTokens:de.usage.outputTokens??void 0,totalTokens:de.usage.totalTokens??void 0}}}}catch(se){throw await ut(se,await yt(oe??{}))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"4","ai-model-id":this.modelId}}};function Ds(M){if(M.type==="file"&&M.data instanceof Uint8Array)return{...M,data:X(M.data)};return M}var Fd=()=>P.object({images:P.array(P.unknown()).optional()}).catchall(P.unknown()),Gd=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Vd=()=>P.object({inputTokens:P.number().nullish(),outputTokens:P.number().nullish(),totalTokens:P.number().nullish()}),Bd=a(()=>s(P.object({images:P.array(P.string()),isRetryable:P.boolean().optional(),warnings:P.array(Gd()).optional(),providerMetadata:P.record(P.string(),Fd()).optional(),usage:Vd().optional()}))),Wd=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate(M){let{headers:C,abortSignal:O}=M,L=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:W,value:ee}=await g({url:this.getUrl(),headers:d(L,C??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders),{accept:"text/event-stream"}),body:this.buildRequestBody(M),successfulResponseHandler:async({response:H,url:te,requestBodyValues:re})=>{if(H.body==null)throw new w({message:"SSE response body is empty",url:te,requestBodyValues:re,statusCode:H.status});let ne=mt({stream:H.body,schema:Hd}).getReader(),{done:z,value:oe}=await ne.read();if(ne.releaseLock(),z||!oe)throw new w({message:"SSE stream ended without a data event",url:te,requestBodyValues:re,statusCode:H.status});if(!oe.success)throw new w({message:"Failed to parse video SSE event",cause:oe.error,url:te,requestBodyValues:re,statusCode:H.status});let se=oe.value;if(se.type==="error")throw new w({message:se.message,statusCode:se.statusCode,url:te,requestBodyValues:re,responseHeaders:Object.fromEntries([...H.headers]),responseBody:JSON.stringify(se),data:{error:{message:se.message,type:se.errorType,param:se.param}}});return{value:{videos:se.videos,warnings:se.warnings,providerMetadata:se.providerMetadata},responseHeaders:Object.fromEntries([...H.headers])}},failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(H)=>A(H)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{videos:ee.videos,warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:{timestamp:new Date,modelId:this.modelId,headers:W}}}catch(W){throw await ut(W,await yt(L??{}))}}async handleWebhookOption({webhook:M}){let{url:C,received:O}=await M();return{webhookUrl:C,received:O}}async doStart(M){let{headers:C,abortSignal:O,webhookUrl:L}=M,W=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:ee,value:H}=await g({url:this.getStartUrl(),headers:d(W,C??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{...this.buildRequestBody(M),...L&&{callbackUrl:L}},successfulResponseHandler:p(zd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(te)=>A(te)??"unknown error"}),...O&&{abortSignal:O},fetch:this.config.fetch});return{operation:H.operation,warnings:H.warnings??[],providerMetadata:H.providerMetadata??void 0,response:{timestamp:new Date,modelId:this.modelId,headers:ee}}}catch(ee){throw await ut(ee,await yt(W??{}))}}async doStatus({operation:M,abortSignal:C,headers:O}){let L=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:W,value:ee}=await g({url:this.getStatusUrl(),headers:d(L,O??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{operation:M},successfulResponseHandler:p(Kd),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(te)=>A(te)??"unknown error"}),...C&&{abortSignal:C},fetch:this.config.fetch}),H={timestamp:new Date,modelId:this.modelId,headers:W};if(ee.status==="completed")return{status:"completed",videos:ee.videos,warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:H};if(ee.status==="error")return{status:"error",error:ee.error,providerMetadata:ee.providerMetadata??void 0,response:H};if(ee.status==="cancelled")return{status:"error",error:"Video generation was cancelled.",providerMetadata:ee.providerMetadata??void 0,response:H};return{status:"pending",warnings:ee.warnings??[],providerMetadata:ee.providerMetadata??void 0,response:H}}catch(W){throw await ut(W,await yt(L??{}))}}buildRequestBody({prompt:M,n:C,aspectRatio:O,resolution:L,duration:W,fps:ee,seed:H,generateAudio:te,image:re,frameImages:ne,inputReferences:z,providerOptions:oe}){return{prompt:M,n:C,...O&&{aspectRatio:O},...L&&{resolution:L},...W&&{duration:W},...ee&&{fps:ee},...H&&{seed:H},...te!==void 0&&{generateAudio:te},...oe&&{providerOptions:oe},...re&&{image:an(re)},...ne&&{frameImages:ne.map((se)=>({...se,image:an(se.image)}))},...z&&{inputReferences:z.map((se)=>an(se))}}}getUrl(){return`${this.config.baseURL}/video-model`}getStartUrl(){return`${this.config.baseURL}/video-model/start`}getStatusUrl(){return`${this.config.baseURL}/video-model/status`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"4","ai-model-id":this.modelId}}};function an(M){if(M.type==="file"&&M.data instanceof Uint8Array)return{...M,data:X(M.data)};return M}var Ca=()=>P.object({videos:P.array(P.unknown()).optional()}).catchall(P.unknown()),ni=()=>P.union([P.object({type:P.literal("url"),url:P.string(),mediaType:P.string()}),P.object({type:P.literal("base64"),data:P.string(),mediaType:P.string()})]),Mo=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Hd=a(()=>s(P.discriminatedUnion("type",[P.object({type:P.literal("result"),videos:P.array(ni()),warnings:P.array(Mo()).optional(),providerMetadata:P.record(P.string(),Ca()).optional()}),P.object({type:P.literal("error"),message:P.string(),errorType:P.string(),statusCode:P.number(),param:P.unknown().nullable()})]))),zd=a(()=>s(P.object({operation:P.unknown(),warnings:P.array(Mo()).nullish(),providerMetadata:P.record(P.string(),Ca()).nullish()}))),Kd=a(()=>s(P.discriminatedUnion("status",[P.object({status:P.literal("pending"),warnings:P.array(Mo()).nullish(),providerMetadata:P.record(P.string(),Ca()).nullish()}),P.object({status:P.literal("completed"),videos:P.array(ni()),warnings:P.array(Mo()).nullish(),providerMetadata:P.record(P.string(),Ca()).nullish()}),P.object({status:P.literal("error"),error:P.string(),providerMetadata:P.record(P.string(),Ca()).nullish()}),P.object({status:P.literal("cancelled"),providerMetadata:P.record(P.string(),Ca()).nullish()})]))),Jd=a(()=>s(P.object({models:Xd().optional()}).catchall(P.unknown()))),qs=()=>P.number().finite().min(0).max(1),$s=()=>P.string().min(1).max(256),Us=()=>P.union([P.object({question:$s().optional(),confidenceBelow:qs()}).strict(),P.object({question:$s().optional(),probabilityBetween:P.array(qs()).length(2).refine(([M,C])=>M<=C,{message:"probabilityBetween minimum must be less than or equal to maximum"})}).strict()]),Yd=()=>P.union([P.object({any:P.unknown()}),P.object({all:P.unknown()}),P.object({atLeast:P.unknown()})]).superRefine((M,C)=>{C.addIssue({code:"custom",message:"conditions can be nested at most 5 levels deep"})}),Qd=()=>P.object({model:P.string().min(1),when:si(1)}).strict(),Xd=()=>P.array(P.union([P.string(),Qd()])).superRefine((M,C)=>{let O=M.flatMap((L,W)=>typeof L==="string"?[]:[W]);if(O.length>1)C.addIssue({code:"custom",message:"models supports at most one conditional decision fallback"});if(O[0]!==void 0&&O[0]!==0)C.addIssue({code:"custom",message:"a conditional decision fallback must be the first models entry",path:[O[0]]})});function si(M){if(M===5)return P.union([Us(),Yd()]);let C=si(M+1),O=P.array(C).min(1).max(20);return P.union([Us(),P.object({any:O}).strict(),P.object({all:O}).strict(),P.object({atLeast:P.object({count:P.number().int().min(1),conditions:O}).strict().refine(({count:L,conditions:W})=>L<=W.length,{message:"atLeast count cannot exceed the number of conditions",path:["count"]})}).strict()])}var Zd=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4",this.supportedQuestionTypes=["choice","score","boolean"]}get provider(){return this.config.provider}doEvaluate(M){return this.doDecide(M)}async doDecide({state:M,questions:C,maxOutputTokens:O,reasoning:L,headers:W,abortSignal:ee,providerOptions:H}){let te=au(M),re=await h({provider:"gateway",providerOptions:H,schema:Jd}),ne=re==null?H:{...H,gateway:re},z=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:oe,value:se,rawValue:de}=await g({url:this.getUrl(),headers:d(z,W??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{stateParts:te,questions:C,maxOutputTokens:O,reasoning:L,...ne?{providerOptions:ne}:{}},successfulResponseHandler:p(ru),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(me)=>A(me)??"unknown error"}),...ee&&{abortSignal:ee},fetch:this.config.fetch});return{answers:se.answers,...se.rounding?{rounding:se.rounding}:{},...se.usage?{usage:se.usage}:{},warnings:se.warnings??[],providerMetadata:se.providerMetadata,response:{modelId:se.model??this.modelId,headers:oe,body:de}}}catch(oe){throw await ut(oe,await yt(z??{}))}}getUrl(){return`${this.config.baseURL}/decision-model`}getModelConfigHeaders(){return{"ai-decision-model-specification-version":"4","ai-model-id":this.modelId}}},eu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("choice"),choice:P.string(),probabilities:P.record(P.string(),P.number()).optional()}),P.object({type:P.literal("score"),score:P.number(),probabilities:P.record(P.string(),P.number()).optional()}),P.object({type:P.literal("boolean"),probability:P.number()}),P.object({type:P.literal("refusal")})]),tu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),ru=a(()=>s(P.object({answers:P.record(P.string(),eu()),model:P.string().optional(),rounding:P.object({probabilityDecimals:P.number().optional(),scoreDecimals:P.number().optional()}).optional(),usage:P.object({inputTokens:P.number().optional(),outputTokens:P.number().optional()}).optional(),warnings:P.array(tu()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()})));function au(M){return M.map((C)=>{if(C.type!=="file")return C;if(C.data.type!=="data")throw new u({functionality:`Gateway decision file input: ${C.data.type} data`});let{data:O}=C.data;return{...C,data:{type:"data",data:typeof O==="string"?O:X(O)}}})}var ou=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doRerank({documents:M,query:C,topN:O,headers:L,abortSignal:W,providerOptions:ee}){let H=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:te,value:re,rawValue:ne}=await g({url:this.getUrl(),headers:d(H,L??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{documents:M,query:C,...O!=null?{topN:O}:{},...ee?{providerOptions:ee}:{}},successfulResponseHandler:p(su),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch});return{ranking:re.ranking,providerMetadata:re.providerMetadata,response:{headers:te,body:ne},warnings:re.warnings??[]}}catch(te){throw await ut(te,await yt(H??{}))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"4","ai-model-id":this.modelId}}},nu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),su=a(()=>s(P.object({ranking:P.array(P.object({index:P.number(),relevanceScore:P.number()})),warnings:P.array(nu()).optional(),providerMetadata:P.record(P.string(),P.record(P.string(),P.unknown())).optional()})));async function ii(M,C,O){M.error(await ut(C,O))}function iu(M){if(M!=null&&typeof M==="object"&&"message"in M&&typeof M.message==="string")return M.message;return A(M)}var Ls={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 nn(M,C,O="transcription"){if(typeof M==="object"&&M!=null&&"message"in M&&typeof M.message==="string"&&"type"in M&&typeof M.type==="string"&&M.type in Ls)return on({response:{error:{message:M.message,type:M.type}},statusCode:Ls[M.type],authMethod:C});return Error(`AI Gateway ${O} stream failed: ${iu(M)}`)}var lu=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({audio:M,mediaType:C,providerOptions:O,headers:L,abortSignal:W}){let ee=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:H,value:te,rawValue:re}=await g({url:this.getUrl(),headers:d(ee,L??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{audio:M instanceof Uint8Array?X(M):M,mediaType:C,...O&&{providerOptions:O}},successfulResponseHandler:p(fu),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(z)=>A(z)??"unknown error"}),...W&&{abortSignal:W},fetch:this.config.fetch}),ne=[...te.warnings??[]];if(cu(this.modelId)&&du(O)&&!cn(re))ne.push({type:"unsupported",feature:"providerOptions.xai.diarize",details:"AI Gateway does not currently expose xAI speaker diarization metadata."});return{text:te.text,segments:te.segments??[],language:te.language??void 0,durationInSeconds:te.durationInSeconds??void 0,warnings:ne,...te.usage!=null&&{usage:te.usage},providerMetadata:te.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:H,body:re}}}catch(H){throw await ut(H,await yt(ee??{}))}}async doStream(M){let C=this.config._internal?.currentDate?.()??new Date,O=d(await _(this.config.headers??{}),M.headers??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),L=await yt(O),W={type:hn,inputAudioFormat:M.inputAudioFormat,...M.providerOptions!=null&&{providerOptions:M.providerOptions},...M.includeRawChunks!=null&&{includeRawChunks:M.includeRawChunks}};return{stream:uu({webSocket:this.config.webSocket,url:li(this.config.baseURL,this.modelId),protocols:ci(O),headers:O,startFrame:W,audio:M.audio,abortSignal:M.abortSignal,authMethod:L}),request:{body:W},response:{timestamp:C,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/transcription-model`}getModelConfigHeaders(){return{"ai-transcription-model-specification-version":"4","ai-model-id":this.modelId}}};function cu(M){return M.startsWith("spacexai/")||M.startsWith("xai/")}function du(M){return M?.xai?.diarize===!0||M?.spacexai?.diarize===!0}function cn(M){if(Array.isArray(M))return M.some(cn);if(M==null||typeof M!=="object")return!1;return Object.entries(M).some(([C,O])=>C==="speaker"&&O!=null||cn(O))}function li(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/transcription-model`);return O.searchParams.set("ai-model-id",C),O.toString()}function ci(M,{marker:C=Bs,getProtocols:O=Wc}={}){let L=ze(M),W=L.authorization,ee=W?.startsWith("Bearer ")?W.slice(7):void 0;return ee==null?[C]:O(ee,{teamIdOrSlug:L[ai]})}var Fs=65536;function uu({webSocket:M,url:C,protocols:O,headers:L,startFrame:W,audio:ee,abortSignal:H,authMethod:te}){let re=!1,ne=()=>{};return new ReadableStream({start:(z)=>{let oe,se=!1,de,me=!1,$e;ne=(xe)=>{if(oe!=null)oe.cancel().catch(()=>{});else ee.cancel().catch(()=>{});$e?.close(xe)};let Le=()=>{if(me=!0,oe!=null)oe.cancel().catch(()=>{}),oe=void 0;else ee.cancel().catch(()=>{})},be=(xe)=>{if(re)return;re=!0,ne(),ii(z,xe,te)},Ne=async(xe)=>{let we=ee.getReader();oe=we;try{while(!0){let{done:le,value:ve}=await we.read();if(le||re)break;let Se=typeof ve==="string"?j(ve):ve;for(let ce=0;ce<Se.length;ce+=Fs){if(re)break;xe.send(Se.subarray(ce,ce+Fs)),await ue(xe)}}}finally{if(we.releaseLock(),oe===we)oe=void 0}if(!re&&!me)xe.send(JSON.stringify({type:gn}))};$e=fe({url:C,protocols:O,headers:L,webSocket:M,abortSignal:H,onAbort:(xe)=>{if(re)return;re=!0,ne(),z.error(xe)},onProcessingError:be,onOpen:(xe)=>{xe.send(JSON.stringify(W)),Ne(xe).catch(be)},onMessageText:(xe)=>{if(re)return;let we=_n(xe);if(we==null)return;if(we.type==="finish"){re=!0,z.enqueue(we),z.close(),ne(1000);return}if(we.type==="error")se=!0,de=we.error,Le();z.enqueue(we)},onSocketError:()=>{be(Error("Connection error on AI Gateway transcription stream"))},onClose:()=>{if(se){if(re)return;nn(de,te).then(be);return}be(Error("AI Gateway transcription stream closed before a finish part was received"))}})},cancel:()=>{if(re)return;re=!0,ne()}})}var pu=()=>P.object({}).catchall(P.unknown()),mu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),fu=a(()=>s(P.object({text:P.string(),segments:P.array(P.object({text:P.string(),startSecond:P.number(),endSecond:P.number()})).optional(),language:P.string().nullish(),durationInSeconds:P.number().nullish(),warnings:P.array(mu()).optional(),usage:P.record(P.string(),P.json()).optional(),providerMetadata:P.record(P.string(),pu()).optional()}))),hu=class{constructor(M,C){this.modelId=M,this.config=C,this.specificationVersion="v4"}get provider(){return this.config.provider}async doGenerate({text:M,voice:C,outputFormat:O,instructions:L,speed:W,language:ee,providerOptions:H,headers:te,abortSignal:re}){let ne=this.config.headers?await _(this.config.headers):void 0;try{let{responseHeaders:z,value:oe,rawValue:se}=await g({url:this.getUrl(),headers:d(ne,te??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),body:{text:M,...C&&{voice:C},...O&&{outputFormat:O},...L&&{instructions:L},...W!=null&&{speed:W},...ee&&{language:ee},...H&&{providerOptions:H}},successfulResponseHandler:p(Su),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(de)=>A(de)??"unknown error"}),...re&&{abortSignal:re},fetch:this.config.fetch});return{audio:oe.audio,warnings:oe.warnings??[],...oe.usage!=null&&{usage:oe.usage},providerMetadata:oe.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:z,body:se}}}catch(z){throw await ut(z,await yt(ne??{}))}}async doStream(M){let C=this.config._internal?.currentDate?.()??new Date,O=d(await _(this.config.headers??{}),M.headers??{},this.getModelConfigHeaders(),await _(this.config.o11yHeaders)),L=await yt(O),W={type:dn,...M.voice!=null&&{voice:M.voice},...M.outputFormat!=null&&{outputFormat:M.outputFormat},...M.instructions!=null&&{instructions:M.instructions},...M.speed!=null&&{speed:M.speed},...M.language!=null&&{language:M.language},...M.providerOptions!=null&&{providerOptions:M.providerOptions},...M.includeRawChunks!=null&&{includeRawChunks:M.includeRawChunks}};return{stream:vu({webSocket:this.config.webSocket,url:di(this.config.baseURL,this.modelId),protocols:ci(O,{marker:Ws,getProtocols:Hc}),headers:O,startFrame:W,text:M.text,abortSignal:M.abortSignal,authMethod:L}),request:{body:W},response:{timestamp:C,modelId:this.modelId}}}getUrl(){return`${this.config.baseURL}/speech-model`}getModelConfigHeaders(){return{"ai-speech-model-specification-version":"4","ai-model-id":this.modelId}}};function di(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/speech-model`);return O.searchParams.set("ai-model-id",C),O.toString()}var gu=8192;function yu(M){let C=[],O=0;while(O<M.length){let L=Math.min(O+gu,M.length),W=M.charCodeAt(L-1);if(L<M.length&&W>=55296&&W<=56319)L--;C.push(M.slice(O,L)),O=L}return C}function vu({webSocket:M,url:C,protocols:O,headers:L,startFrame:W,text:ee,abortSignal:H,authMethod:te}){let re=!1,ne=()=>{};return new ReadableStream({start:(z)=>{let oe,se=!1,de,me=!1,$e,Le=()=>{if(oe!=null)oe.cancel().catch(()=>{}),oe=void 0;else ee.cancel().catch(()=>{})};ne=(xe)=>{Le(),$e?.close(xe)};let be=(xe)=>{if(re)return;re=!0,ne(),ii(z,xe,te)},Ne=async(xe)=>{let we=ee.getReader();oe=we;try{while(!0){let{done:le,value:ve}=await we.read();if(le||re||me)break;let Se=!0,ce=yu(ve.text);if(ce.length===0&&(ve.voice!=null||ve.providerOptions!=null))ce.push("");for(let Ie of ce){if(re||me)break;let We={type:pn,delta:Ie,...ve.voice!=null&&{voice:ve.voice},...Se&&ve.providerOptions!=null&&{providerOptions:ve.providerOptions}};Se=!1,xe.send(JSON.stringify(We)),await ue(xe)}}}finally{if(we.releaseLock(),oe===we)oe=void 0}if(!re&&!me)xe.send(JSON.stringify({type:mn}))};$e=fe({url:C,protocols:O,headers:L,webSocket:M,abortSignal:H,onAbort:(xe)=>{if(re)return;re=!0,ne(),z.error(xe)},onProcessingError:be,onOpen:(xe)=>{xe.send(JSON.stringify(W)),Ne(xe).catch(be)},onMessageText:async(xe)=>{if(re)return;let we=fn(xe);if(we==null)return;if(we.type==="finish"){re=!0,z.enqueue(we),z.close(),ne(1000);return}if(we.type==="error"){if(se=!0,de=we.error,me=!0,Le(),we.error=await nn(we.error,te,"speech"),re)return}z.enqueue(we)},onSocketError:()=>{be(Error("Connection error on AI Gateway speech stream"))},onClose:({code:xe,reason:we})=>{if(se){if(re)return;nn(de,te,"speech").then(be);return}be(Error("AI Gateway speech stream closed before a finish part was received"+(xe!=null?` (code ${xe}${we?`: ${we}`:""})`:"")+"."))}})},cancel:()=>{if(re)return;re=!0,ne()}})}var wu=()=>P.object({}).catchall(P.unknown()),bu=()=>P.discriminatedUnion("type",[P.object({type:P.literal("unsupported"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("compatibility"),feature:P.string(),details:P.string().optional()}),P.object({type:P.literal("deprecated"),setting:P.string(),message:P.string()}),P.object({type:P.literal("other"),message:P.string()})]),Su=a(()=>s(P.object({audio:P.string(),warnings:P.array(bu()).optional(),usage:P.record(P.string(),P.json()).optional(),providerMetadata:P.record(P.string(),wu()).optional()}))),Iu=class{constructor(M,C){this.specificationVersion="v4",this.modelId=M,this.provider=C.provider,this.config=C}async doCreateClientSecret(M){let C=await this.config.createClientSecret({modelId:this.modelId,...M?.expiresAfterSeconds!=null&&{expiresAfterSeconds:M.expiresAfterSeconds}});return{token:C.token,url:Tu(this.config.baseURL,this.modelId),...C.expiresAt!=null&&{expiresAt:C.expiresAt}}}getWebSocketConfig(M){return{url:M.url,protocols:Bc(M.token,{teamIdOrSlug:this.config.teamIdOrSlug})}}parseServerEvent(M){return M}serializeClientEvent(M){return M}buildSessionConfig(M){return M}};function Tu(M,C){let O=new URL(`${M.replace(/^http/,"ws")}/realtime-model`);return O.searchParams.set("ai-model-id",C),O.toString()}var ui=()=>P.record(P.string(),P.unknown()),xu=a(()=>s(P.object({url:P.string().url().describe("URL of the page to fetch."),allow_redirects:P.boolean().optional().describe("Whether to follow HTTP redirects (default: false)."),allow_insecure_ssl:P.boolean().optional().describe("Whether to bypass TLS certificate verification (default: false). Only use for trusted hosts."),proxies:P.boolean().optional().describe("Whether to route the request through Browserbase proxies (default: false)."),format:P.enum(["raw","json","markdown"]).optional().describe("Output format. raw returns the response body unchanged, markdown returns page content as Markdown, and json returns structured content using schema."),schema:ui().optional().describe("JSON Schema for structured extraction. Only use with format set to json.")}))),Eu=a(()=>s(P.union([P.object({id:P.string(),content:P.union([P.string(),ui()]),contentType:P.string(),encoding:P.string(),headers:P.record(P.string(),P.string()),statusCode:P.number()}),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Mu=S({id:"gateway.browserbase_fetch",inputSchema:xu,outputSchema:Eu}),Cu=(M={})=>Mu(M),Ru=a(()=>s(P.object({query:P.string().min(1).max(200).describe("Web search query. Must be between 1 and 200 characters."),num_results:P.number().int().min(1).max(25).optional().describe("Maximum number of results to return (1-25, default: 10).")}))),_u=a(()=>s(P.union([P.object({query:P.string(),requestId:P.string(),results:P.array(P.object({id:P.string(),title:P.string(),url:P.string(),author:P.string().optional(),favicon:P.string().optional(),image:P.string().optional(),publishedDate:P.string().optional()}))}),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Au=S({id:"gateway.browserbase_search",inputSchema:Ru,outputSchema:_u}),ku=(M={})=>Au(M),Pu=a(()=>s(P.object({query:P.string().describe("Natural-language web search query. This is required."),type:P.enum(["auto","fast","instant"]).optional().describe("Search method. Use auto for the default balance of speed and quality."),num_results:P.number().optional().describe("Maximum number of results to return (1-100, default: 10)."),category:P.enum(["company","people","research paper","news","personal site","financial report"]).optional().describe("Optional content category to focus results."),user_location:P.string().optional().describe("Two-letter ISO country code such as 'US'."),include_domains:P.array(P.string()).optional().describe("Only return results from these domains."),exclude_domains:P.array(P.string()).optional().describe("Exclude results from these domains."),start_published_date:P.string().optional().describe("Only return links published after this ISO 8601 date."),end_published_date:P.string().optional().describe("Only return links published before this ISO 8601 date."),contents:P.object({text:P.union([P.boolean(),P.object({max_characters:P.number().optional(),include_html_tags:P.boolean().optional(),verbosity:P.enum(["compact","standard","full"]).optional(),include_sections:P.array(P.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional(),exclude_sections:P.array(P.enum(["header","navigation","banner","body","sidebar","footer","metadata"])).optional()})]).optional(),highlights:P.union([P.boolean(),P.object({query:P.string().optional(),max_characters:P.number().optional()})]).optional(),max_age_hours:P.number().optional(),livecrawl_timeout:P.number().optional(),subpages:P.number().optional(),subpage_target:P.union([P.string(),P.array(P.string())]).optional(),extras:P.object({links:P.number().optional(),image_links:P.number().optional()}).optional()}).optional().describe("Controls extracted page content and freshness.")}))),Ou=a(()=>s(P.union([P.object({requestId:P.string(),searchType:P.string().optional(),resolvedSearchType:P.string().optional(),results:P.array(P.object({title:P.string(),url:P.string(),id:P.string(),publishedDate:P.string().nullable().optional(),author:P.string().nullable().optional(),image:P.string().nullable().optional(),favicon:P.string().nullable().optional(),text:P.string().optional(),highlights:P.array(P.string()).optional(),highlightScores:P.array(P.number()).optional(),summary:P.string().optional(),subpages:P.array(P.any()).optional(),extras:P.object({links:P.array(P.string()).optional(),imageLinks:P.array(P.string()).optional()}).optional()})),costDollars:P.object({total:P.number().optional(),search:P.record(P.string(),P.number()).optional()}).optional()}),P.object({error:P.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","execution_error","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),ju=S({id:"gateway.exa_search",inputSchema:Pu,outputSchema:Ou}),Nu=(M={})=>ju(M),Du=["turbo","fast","basic","advanced","one-shot","agentic"],qu=a(()=>s(P.object({objective:P.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:P.array(P.string()).optional().describe("Provide 2-3 concise keyword queries, 3-6 words each (max 5, 200 chars each). Strongly recommended; the search runs on these queries."),mode:P.enum(Du).optional().describe('Search mode: "turbo" and "fast" return quickly with shorter excerpts, "basic" is balanced (default), "advanced" is the most thorough. "turbo" supports English and Japanese only. "one-shot" and "agentic" are deprecated aliases of "basic" and "advanced".'),max_results:P.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:P.object({include_domains:P.array(P.string()).optional().describe("Domains or domain/path prefixes to restrict results to, without scheme or port. Example: ['wikipedia.org', 'docs.python.org/3']."),exclude_domains:P.array(P.string()).optional().describe("Domains or domain/path prefixes to exclude, without scheme or port. Example: ['reddit.com']."),after_date:P.string().optional().describe("Only include results published on or 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:P.object({max_chars_per_result:P.number().optional().describe("Maximum characters per result."),max_chars_total:P.number().optional().describe("Deprecated: use the top-level max_chars_total.")}).optional().describe("Excerpt configuration for controlling result length."),max_chars_total:P.number().optional().describe("Maximum total characters across all result excerpts."),fetch_policy:P.object({max_age_seconds:P.number().optional().describe("Maximum age of cached content in seconds before a live fetch, minimum 600."),timeout_seconds:P.number().optional().describe("Timeout in seconds for a live fetch when content is not cached. Capped by the gateway tool timeout."),disable_cache_fallback:P.boolean().optional().describe("Return an error instead of older cached content when a live fetch fails.")}).optional().describe("Fetch policy for controlling content freshness."),location:P.string().optional().describe('ISO 3166-1 alpha-2 country code to localize results, e.g. "us".')}))),$u=a(()=>s(P.union([P.object({search_id:P.string(),results:P.array(P.object({url:P.string(),title:P.string().nullable().optional(),publish_date:P.string().nullable().optional(),excerpts:P.array(P.string())})),warnings:P.array(P.object({type:P.string(),message:P.string(),detail:P.record(P.string(),P.unknown()).nullable().optional()})).nullable().optional(),usage:P.array(P.object({name:P.string(),count:P.number().optional()})).nullable().optional(),session_id:P.string().optional()}),P.object({error:P.enum(["api_error","configuration_error","execution_error","gateway_rate_limit","invalid_input","rate_limit","timeout","unknown","unknown_tool"]),statusCode:P.number().optional(),message:P.string()})]))),Uu=S({id:"gateway.parallel_search",inputSchema:qu,outputSchema:$u}),Lu=(M={})=>Uu(M),Fu=a(()=>s(P.object({query:P.union([P.string(),P.array(P.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:P.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:P.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:P.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:P.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:P.array(P.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:P.array(P.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:P.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:P.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:P.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:P.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:P.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),Gu=a(()=>s(P.union([P.object({results:P.array(P.object({title:P.string(),url:P.string(),snippet:P.string(),date:P.string().optional(),lastUpdated:P.string().optional()})),id:P.string()}),P.object({error:P.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:P.number().optional(),message:P.string()})]))),Vu=S({id:"gateway.perplexity_search",inputSchema:Fu,outputSchema:Gu}),Bu=(M={})=>Vu(M),Wu=()=>P.object({count:P.number().optional().describe("Maximum number of data results to return (1-20). When include_contents is true, each additional result adds its own data surcharge."),include_contents:P.boolean().optional().describe("Inline rows for each data result. This adds a data surcharge based on row count and dataset source. To estimate cost, search with include_contents disabled and inspect cards.content.export_pricing. This applies to every returned card; limit sources.data.count and sources.data.max_rows to control cost."),mode:P.enum(["inline","url"]).optional().describe("Requested data delivery mode. Search card data is always inline."),content_format:P.enum(["card_json","csv","json_compact","json_records"]).optional().describe("Serialization for inlined card data."),max_rows:P.number().optional().describe("Maximum rows to inline per result. Omit to use the allowance in cards.content.export_pricing. A data surcharge applies per 1,000 exported rows; lower values reduce cost."),node_ids:P.array(P.string()).optional().describe("Data Graph node IDs to prioritize. Maximum 20."),strict:P.boolean().optional().describe("Only return cards matching node_ids. Requires a non-empty node_ids.")}),Hu=()=>P.object({count:P.number().optional().describe("Maximum number of web results to return (1-20)."),include_contents:P.boolean().optional().describe("Inline extracted web page text. This can add a data charge."),category:P.enum(["finance","news","sports"]).optional().describe("Optional web-result category filter."),include_domains:P.array(P.string()).optional().describe("Only return results from these bare domains."),exclude_domains:P.array(P.string()).optional().describe("Exclude results from these bare domains."),snippet_max_chars:P.number().optional().describe("Maximum characters in each web-result snippet."),highlights:P.boolean().optional().describe("Include highlighted passages in web results. Defaults to true in AI Gateway."),article_content_max_chars:P.number().optional().describe("Maximum extracted characters per web page when including contents."),published_after:P.string().optional().describe("Keep results published on or after this ISO date (YYYY-MM-DD)."),published_before:P.string().optional().describe("Keep results published on or before this ISO date (YYYY-MM-DD).")}),zu=a(()=>s(P.object({query:P.string().describe('Natural-language search query. Include the entity, metric, and time period. Quote a phrase to force it to one entity, for example "Tesla":PRODUCT price.'),effort:P.enum(["deep","fast","instant"]).optional().describe("Search effort. fast is the balanced default, instant favors cached results and low latency, and deep broadens retrieval with reranking at higher cost and latency."),sources:P.object({data:Wu().optional(),web:Hu().optional()}).optional().describe("Sources to search. Omit to search both curated data and the web. When provided, only keys present are searched."),location:P.object({latitude:P.number().describe("Latitude between -90 and 90."),longitude:P.number().describe("Longitude between -180 and 180.")}).optional().describe("End-user coordinates for localized results."),country_code:P.string().optional().describe("Two-letter ISO 3166-1 country code, such as 'US'."),locale:P.string().optional().describe("BCP-47 locale, such as 'en-US'."),timezone:P.string().optional().describe("IANA timezone, such as 'America/New_York'."),output_settings:P.object({image_dark_mode:P.boolean().optional().describe("Render card preview images in dark mode."),force_refresh:P.boolean().optional().describe("Instant-effort only. Request a refreshed instant result.")}).optional().describe("Controls card rendering in the search response."),include_related:P.number().optional().describe("Maximum related search suggestions to include (1-20).")}))),Gs=()=>P.union([P.boolean(),P.number(),P.string()]).nullable(),pi=()=>P.object({content_format:P.enum(["card_json","csv","json_compact","json_records"]).nullish(),cost:P.number().optional(),data:P.string().nullish(),records:P.array(P.record(P.string(),Gs())).nullish(),dataset:P.object({columns:P.array(P.object({name:P.string(),type:P.enum(["boolean","date","datetime","number","string"]),unit:P.string().nullish()})),rows:P.array(P.array(Gs())),total_rows:P.number(),truncated:P.boolean(),ref:P.string(),sources:P.array(P.object({name:P.string(),index:P.enum(["data","web"]).optional()})),provenance:P.enum(["query","web_extraction"]).optional()}).nullish(),card_data:P.object({}).passthrough().nullish(),card_data_schema:P.object({}).passthrough().nullish(),url:P.string().nullish(),expires_at:P.string().nullish(),total_rows:P.number().nullish(),truncated:P.boolean().optional(),export_pricing:P.object({baseline_usd:P.number(),free_rows:P.number(),max_rows_ceiling:P.number(),row_cpm_usd:P.number()}).nullish(),manifest:P.array(P.object({dtype:P.enum(["boolean","date","datetime","number","string"]).nullish(),entity:P.string().nullish(),metric:P.string().nullish(),name:P.string().nullish(),unit:P.string().nullish()})).nullish()}).passthrough(),Ku=()=>P.object({card_id:P.string().nullish(),title:P.string().nullish(),description:P.string().nullish(),semantic_description:P.string().nullish(),webpage_url:P.string().nullish(),image_url:P.string().nullish(),embed_url:P.string().nullish(),sources:P.array(P.object({source_name:P.string().nullish(),source_description:P.string().nullish(),source_index:P.enum(["data","web"]),source_text:P.string().nullish(),url:P.string().nullish()})).nullish(),methodologies:P.array(P.object({methodology_name:P.string().nullable(),methodology_description:P.string().nullable()})).nullish(),source_indexes:P.array(P.enum(["data","web"])).nullish(),card_type:P.string().nullish(),relevance:P.enum(["High","Low","Medium"]).nullish(),content:pi().nullish(),exportable:P.boolean().optional(),nodes:P.array(P.object({id:P.string(),type:P.enum(["entity","metric"]),name:P.string(),description:P.string().nullish()})).nullish(),metric_definitions:P.array(P.object({name:P.string(),definition:P.string()})).nullish(),data_freshness:P.object({coverage_end:P.string().nullish(),data_as_of:P.string().nullish(),last_updated:P.string().nullish()}).nullish()}).passthrough(),Ju=()=>P.object({title:P.string(),url:P.string(),snippet:P.string().nullish(),source_name:P.string().nullish(),publish_date:P.string().nullish(),content:pi().nullish()}).passthrough(),Yu=a(()=>s(P.union([P.object({request_id:P.string(),cards:P.array(Ku()).optional(),web_results:P.array(Ju()).optional(),usage:P.object({total_cost_usd:P.number(),compute:P.object({cost_usd:P.number()}).nullish(),data:P.object({cost_usd:P.number(),datasets:P.number()}).nullish()}).nullish(),related:P.array(P.object({}).passthrough()).nullish()}).passthrough(),P.object({error:P.enum(["api_error","configuration_error","execution_error","invalid_input","rate_limit","timeout","unknown_tool"]),statusCode:P.number().optional(),message:P.string()})]))),Qu=S({id:"gateway.tako_search",inputSchema:zu,outputSchema:Yu}),Xu=(M={})=>Qu(M),Zu={browserbaseFetch:Cu,browserbaseSearch:ku,exaSearch:Nu,parallelSearch:Lu,perplexitySearch:Bu,takoSearch:Xu};async function ep(){return Co.getContext().headers?.["x-vercel-id"]}var tp="4.0.128",rp="0.0.1",ap=a(()=>s(P.object({token:P.string(),expiresAt:P.number().nullish()})));function mi(M={}){let C=null,O=null,L=M.metadataCacheRefreshMillis??300000,W=0,ee=Y(M.baseURL)??"https://ai-gateway.vercel.sh/v4/ai",H=(ce)=>F({Authorization:`Bearer ${ce.token}`,"ai-gateway-protocol-version":rp,[ri]:ce.authMethod,...M.teamIdOrSlug!=null?{[ai]:M.teamIdOrSlug}:{},...M.headers},`ai-sdk-gateway/${tp}`),te=async()=>{try{return H(await Vs(M))}catch(ce){throw Qa.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:ce})}},re=async()=>{try{return await Vs(M)}catch(ce){throw Qa.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:ce})}},ne=async(ce)=>{op();let Ie=await re(),We=H(Ie),tt=new URL("/v1/realtime/client-secrets",ee).toString();try{let{value:he}=await g({url:tt,headers:We,body:{model:ce.modelId,...ce.routeKind!=null&&{routeKind:ce.routeKind},...ce.expiresAfterSeconds!=null&&{expiresIn:ce.expiresAfterSeconds}},successfulResponseHandler:p(ap),failedResponseHandler:I({errorSchema:P.any(),errorToMessage:(He)=>A(He)??"unknown error"}),fetch:M.fetch});return{token:he.token,...he.expiresAt!=null&&{expiresAt:he.expiresAt}}}catch(he){throw await ut(he,await yt(We))}},z=()=>{let ce=pe({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),Ie=pe({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),We=pe({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),tt=pe({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let he=await ep();return{...ce&&{"ai-o11y-deployment-id":ce},...Ie&&{"ai-o11y-environment":Ie},...We&&{"ai-o11y-region":We},...he&&{"ai-o11y-request-id":he},...tt&&{"ai-o11y-project-id":tt}}}},oe=(ce)=>new Dd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),se=()=>new xd({provider:"gateway",maxLineBytes:M.batchResultDownloads?.maxLineBytes,baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),de=async()=>{let ce=M._internal?.currentDate?.().getTime()??Date.now();if(!C||ce-W>L)W=ce,C=new ks({baseURL:ee,headers:te,fetch:M.fetch}).getAvailableModels().then((Ie)=>(O=Ie,Ie)).catch(async(Ie)=>{throw await ut(Ie,await yt(await te()))});return O?Promise.resolve(O):C},me=async()=>new ks({baseURL:ee,headers:te,fetch:M.fetch}).getCredits().catch(async(ce)=>{throw await ut(ce,await yt(await te()))}),$e=async(ce)=>new bd({baseURL:ee,headers:te,fetch:M.fetch}).getSpendReport(ce).catch(async(Ie)=>{throw await ut(Ie,await yt(await te()))}),Le=async(ce)=>new Id({baseURL:ee,headers:te,fetch:M.fetch}).getGenerationInfo(ce).catch(async(Ie)=>{throw await ut(Ie,await yt(await te()))}),be=function(ce){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return oe(ce)};be.specificationVersion="v4",be.getAvailableModels=de,be.getCredits=me,be.getSpendReport=$e,be.getGenerationInfo=Le,be.imageModel=(ce)=>new Ld(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()}),be.languageModel=oe,be.experimental_batch=se;let Ne=(ce)=>new qd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.embeddingModel=Ne,be.textEmbeddingModel=Ne,be.videoModel=(ce)=>new Wd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});let xe=(ce)=>new ou(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.rerankingModel=xe,be.reranking=xe;let we=(ce)=>new Zd(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z()});be.decisionModel=we,be.decision=we,be.evaluationModel=we,be.evaluation=we;let le=(ce)=>new hu(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z(),webSocket:M.webSocket});be.speechModel=le,be.speech=le,be.experimental_speech=Object.assign((ce)=>le(ce),{getToken:async(ce)=>{let Ie=await ne({modelId:ce.model,routeKind:"speech",...ce.expiresAfterSeconds!=null&&{expiresAfterSeconds:ce.expiresAfterSeconds}});return{token:Ie.token,url:di(ee,ce.model),...Ie.expiresAt!=null&&{expiresAt:Ie.expiresAt}}}});let ve=(ce)=>new lu(ce,{provider:"gateway",baseURL:ee,headers:te,fetch:M.fetch,o11yHeaders:z(),webSocket:M.webSocket});be.transcriptionModel=ve,be.transcription=ve,be.experimental_transcription=Object.assign((ce)=>ve(ce),{getToken:async(ce)=>{let Ie=await ne({modelId:ce.model,routeKind:"transcription",...ce.expiresAfterSeconds!=null&&{expiresAfterSeconds:ce.expiresAfterSeconds}});return{token:Ie.token,url:li(ee,ce.model),...Ie.expiresAt!=null&&{expiresAt:Ie.expiresAt}}}});let Se=(ce)=>new Iu(ce,{provider:"gateway.realtime",baseURL:ee,teamIdOrSlug:M.teamIdOrSlug,createClientSecret:ne});return be.experimental_realtime=Object.assign((ce)=>Se(ce),{getToken:async(ce)=>{let{model:Ie,...We}=ce,tt=await Se(Ie).doCreateClientSecret(We);return{token:tt.token,url:tt.url,...tt.expiresAt!=null&&{expiresAt:tt.expiresAt}}}}),be.chat=be.languageModel,be.embedding=be.embeddingModel,be.image=be.imageModel,be.video=be.videoModel,be.tools=Zu,be}var vn=mi();async function Vs(M){let C=pe({settingValue:M.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(C)return{token:C,authMethod:"api-key"};return{token:await Co.getVercelOidcToken(),authMethod:"oidc"}}function op(){if(typeof globalThis.window<"u")throw 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(), gateway.experimental_transcription.getToken(), or gateway.experimental_speech.getToken() from your server and pass the returned token to the client.")}var qi="AI_InvalidArgumentError",$i=`vercel.ai.error.${qi}`,hp=Symbol.for($i),yr=class extends m{constructor({parameter:M,value:C,message:O}){super({name:qi,message:`Invalid argument for parameter ${M}: ${O}`});this[hp]=!0,this.parameter=M,this.value=C}static isInstance(M){return m.hasMarker(M,$i)}},gp="AI_InvalidStreamPartError",Dh=`vercel.ai.error.${gp}`;var Ui="AI_InvalidToolApprovalError",Li=`vercel.ai.error.${Ui}`,yp=Symbol.for(Li),vp=class extends m{constructor({approvalId:M}){super({name:Ui,message:`Tool approval response references unknown approvalId: "${M}". No matching tool-approval-request found in message history.`});this[yp]=!0,this.approvalId=M}static isInstance(M){return m.hasMarker(M,Li)}},Fi="AI_InvalidToolApprovalSignatureError",Gi=`vercel.ai.error.${Fi}`,wp=Symbol.for(Gi),fi=class extends m{constructor({approvalId:M,toolCallId:C,reason:O}){super({name:Fi,message:`Tool approval signature verification failed for approval "${M}" (tool call "${C}"): ${O}`});this[wp]=!0,this.approvalId=M,this.toolCallId=C}static isInstance(M){return m.hasMarker(M,Gi)}},Vi="AI_InvalidToolInputError",Bi=`vercel.ai.error.${Vi}`,bp=Symbol.for(Bi),Fo=class extends m{constructor({toolInput:M,toolName:C,cause:O,message:L=`Invalid input for tool ${C}: ${A(O)}`}){super({name:Vi,message:L,cause:O});this[bp]=!0,this.toolInput=M,this.toolName=C}static isInstance(M){return m.hasMarker(M,Bi)}},Wi="AI_ToolCallNotFoundForApprovalError",Hi=`vercel.ai.error.${Wi}`,Sp=Symbol.for(Hi),$n=class extends m{constructor({toolCallId:M,approvalId:C}){super({name:Wi,message:`Tool call "${M}" not found for approval request "${C}".`});this[Sp]=!0,this.toolCallId=M,this.approvalId=C}static isInstance(M){return m.hasMarker(M,Hi)}},zi="AI_MissingToolResultsError",Ki=`vercel.ai.error.${zi}`,Ip=Symbol.for(Ki),hi=class extends m{constructor({toolCallIds:M}){super({name:zi,message:`Tool result${M.length>1?"s are":" is"} missing for tool call${M.length>1?"s":""} ${M.join(", ")}.`});this[Ip]=!0,this.toolCallIds=M}static isInstance(M){return m.hasMarker(M,Ki)}},Tp="AI_NoImageGeneratedError",qh=`vercel.ai.error.${Tp}`;var xp="AI_NoObjectGeneratedError",$h=`vercel.ai.error.${xp}`;var Ji="AI_NoOutputGeneratedError",Yi=`vercel.ai.error.${Ji}`,Ep=Symbol.for(Yi),Po=class extends m{constructor({message:M="No output generated.",cause:C}={}){super({name:Ji,message:M,cause:C});this[Ep]=!0}static isInstance(M){return m.hasMarker(M,Yi)}},Mp="AI_NoSpeechGeneratedError",Uh=`vercel.ai.error.${Mp}`;var Cp="AI_NoTranscriptGeneratedError",Lh=`vercel.ai.error.${Cp}`;var Rp="AI_NoTranslationGeneratedError",Fh=`vercel.ai.error.${Rp}`;var _p="AI_NoVideoGeneratedError",Gh=`vercel.ai.error.${_p}`;var Qi="AI_NoSuchToolError",Xi=`vercel.ai.error.${Qi}`,Ap=Symbol.for(Xi),En=class extends m{constructor({toolName:M,availableTools:C=void 0,message:O=`Model tried to call unavailable tool '${M}'. ${C===void 0?"No tools are available.":`Available tools: ${C.join(", ")}.`}`}){super({name:Qi,message:O});this[Ap]=!0,this.toolName=M,this.availableTools=C}static isInstance(M){return m.hasMarker(M,Xi)}},Zi="AI_StreamProviderError",el=`vercel.ai.error.${Zi}`,kp=Symbol.for(el),gi=class extends m{constructor({message:M,type:C,code:O,statusCode:L,isRetryable:W=Pp(L),data:ee,cause:H}){super({name:Zi,message:M,cause:H});this[kp]=!0,this.type=C,this.code=O,this.statusCode=L,this.isRetryable=W,this.data=ee}static isInstance(M){return m.hasMarker(M,el)}};function Pp(M){return M!=null&&(M===408||M===409||M===429||M>=500)}var tl="AI_ToolCallRepairError",rl=`vercel.ai.error.${tl}`,Op=Symbol.for(rl),jp=class extends m{constructor({cause:M,originalError:C,message:O=`Error repairing tool call: ${A(M)}`}){super({name:tl,message:O,cause:M});this[Op]=!0,this.originalError=C}static isInstance(M){return m.hasMarker(M,rl)}},al="AI_ToolChoiceViolationError",ol=`vercel.ai.error.${al}`,Np=Symbol.for(ol),Un=class extends m{constructor({toolChoice:M,finishReason:C,provider:O,modelId:L,content:W,message:ee=M.type==="none"?"Model response contained a tool call even though tool choice was none.":M.type==="required"?"Model response did not contain a tool call even though tool choice was required.":`Model response did not contain a call to the required tool '${M.toolName}'.`}){super({name:al,message:ee});this[Np]=!0,this.toolChoice=M,this.finishReason=C,this.provider=O,this.modelId=L,this.content=W}static isInstance(M){return m.hasMarker(M,ol)}},Dp=class extends m{constructor(M){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${M.version} for provider "${M.provider}" and model "${M.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=M.version,this.provider=M.provider,this.modelId=M.modelId}},nl="AI_UIMessageStreamError",sl=`vercel.ai.error.${nl}`,qp=Symbol.for(sl),aa=class extends m{constructor({chunkType:M,chunkId:C,message:O}){super({name:nl,message:O});this[qp]=!0,this.chunkType=M,this.chunkId=C}static isInstance(M){return m.hasMarker(M,sl)}},il="AI_InvalidDataContentError",ll=`vercel.ai.error.${il}`,$p=Symbol.for(ll),cl=class extends m{constructor({content:M,cause:C,message:O=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof M}.`}){super({name:il,message:O,cause:C});this[$p]=!0,this.content=M}static isInstance(M){return m.hasMarker(M,ll)}},dl="AI_InvalidMessageRoleError",ul=`vercel.ai.error.${dl}`,Up=Symbol.for(ul),Lp=class extends m{constructor({role:M,message:C=`Invalid message role: '${M}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:dl,message:C});this[Up]=!0,this.role=M}static isInstance(M){return m.hasMarker(M,ul)}},Fp="AI_MessageConversionError",Vh=`vercel.ai.error.${Fp}`;var pl="AI_RetryError",ml=`vercel.ai.error.${pl}`,Gp=Symbol.for(ml),Vp=class extends m{constructor({message:M,reason:C,errors:O}){super({name:pl,message:M});this[Gp]=!0,this.reason=C,this.errors=O,this.lastError=O[O.length-1]}static isInstance(M){return m.hasMarker(M,ml)}};var Bp=new Map([["generateObject","AISDK_DEP_GENERATE_OBJECT"],["streamObject","AISDK_DEP_STREAM_OBJECT"],["experimental_generateSpeech","AISDK_DEP_EXPERIMENTAL_GENERATE_SPEECH"],["experimental_transcribe","AISDK_DEP_EXPERIMENTAL_TRANSCRIBE"],['"image" content part',"AISDK_DEP_IMAGE_CONTENT_PART"],['"tool-result" content of type "file-data"',"AISDK_DEP_TOOL_RESULT_FILE_DATA"],['"tool-result" content of type "file-url"',"AISDK_DEP_TOOL_RESULT_FILE_URL"],['"tool-result" content of type "file-id"',"AISDK_DEP_TOOL_RESULT_FILE_ID"],['"tool-result" content of type "file-reference"',"AISDK_DEP_TOOL_RESULT_FILE_REFERENCE"],['"tool-result" content of type "image-data"',"AISDK_DEP_TOOL_RESULT_IMAGE_DATA"],['"tool-result" content of type "image-url"',"AISDK_DEP_TOOL_RESULT_IMAGE_URL"],['"tool-result" content of type "image-file-id"',"AISDK_DEP_TOOL_RESULT_IMAGE_FILE_ID"],['"tool-result" content of type "image-file-reference"',"AISDK_DEP_TOOL_RESULT_IMAGE_FILE_REFERENCE"],["rawInput in output-error UI message parts","AISDK_DEP_UI_MESSAGE_RAW_INPUT"]]);function bn(M){return M.replace(/[^a-zA-Z0-9]/g,(C)=>`_${C.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")}`)}function Wp({setting:M,provider:C}){if(C==null)return Bp.get(M)??`AISDK_DEP_SETTING_${bn(M)}`;return`AISDK_DEP_PROVIDER_${bn(C)}__${bn(M)}`}function Hp({warning:M,provider:C,model:O}){let L=`AI SDK Warning${C!=null&&O!=null?` (${C} / ${O})`:""}:`;switch(M.type){case"unsupported":{let W=`${L} The feature "${M.feature}" is not supported.`;if(M.details)W+=` ${M.details}`;return W}case"compatibility":{let W=`${L} The feature "${M.feature}" is used in a compatibility mode.`;if(M.details)W+=` ${M.details}`;return W}case"deprecated":return`${L} Deprecated: "${M.setting}". ${M.message}`;case"other":return`${L} ${M.message}`;default:return`${L} ${JSON.stringify(M,null,2)}`}}var zp="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",yi=!1,vi=new Set;function wi({message:M,type:C,code:O}){if(typeof process<"u"&&typeof process.emitWarning==="function")process.emitWarning(M,O==null?{type:C}:{type:C,code:O});else console.warn(O==null?M:`[${O}] ${M}`)}var oa=(M)=>{if(M.warnings.length===0)return;let C=globalThis.AI_SDK_LOG_WARNINGS;if(C===!1)return;if(typeof C==="function"){C(M);return}if(!yi)yi=!0,wi({message:zp,type:"Warning"});for(let O of M.warnings){let L=O.type==="deprecated"?Wp({setting:O.setting,provider:M.provider}):void 0;if(L!=null){if(vi.has(L))continue;vi.add(L)}wi({message:Hp({warning:O,provider:M.provider,model:M.model}),type:O.type==="deprecated"?"DeprecationWarning":"Warning",code:L})}};function co({provider:M,modelId:C}){oa({warnings:[{type:"compatibility",feature:"specificationVersion",details:"Using v2 specification compatibility mode. Some features may not be available."}],provider:M,model:C})}function fl(M){if(M.specificationVersion==="v3")return M;return co({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function Kp(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?fl(M):M;return new Proxy(C,{get(O,L){if(L==="specificationVersion")return"v4";return O[L]}})}function hl(M){if(M.specificationVersion==="v3")return M;return co({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function Jp(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?hl(M):M;return new Proxy(C,{get(O,L){if(L==="specificationVersion")return"v4";return O[L]}})}function gl(M){if(M.specificationVersion==="v3")return M;return co({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){switch(O){case"specificationVersion":return"v3";case"doGenerate":return async(...L)=>{let W=await C.doGenerate(...L);return{...W,finishReason:yl(W.finishReason),usage:vl(W.usage)}};case"doStream":return async(...L)=>{let W=await C.doStream(...L);return{...W,stream:Yp(W.stream)}};default:return C[O]}}})}function Yp(M){return M.pipeThrough(new TransformStream({transform(C,O){switch(C.type){case"finish":O.enqueue({...C,finishReason:yl(C.finishReason),usage:vl(C.usage)});break;default:O.enqueue(C)}}}))}function yl(M){return{unified:M==="unknown"?"other":M,raw:void 0}}function vl(M){return{inputTokens:{total:M.inputTokens,noCache:void 0,cacheRead:M.cachedInputTokens,cacheWrite:void 0},outputTokens:{total:M.outputTokens,text:void 0,reasoning:M.reasoningTokens},raw:M.totalTokens==null?void 0:{totalTokens:M.totalTokens}}}function wl(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?gl(M):M;return new Proxy(C,{get(O,L){switch(L){case"specificationVersion":return"v4";case"doGenerate":return async(W)=>{let ee=await O.doGenerate({...W,prompt:bi(W.prompt)});return{...ee,content:ee.content.map(Zp)}};case"doStream":return async(W)=>{let ee=await O.doStream({...W,prompt:bi(W.prompt)});return{...ee,stream:em(ee.stream)}};default:return O[L]}}})}function bi(M){return M.map((C)=>{if(C.role==="system")return C;return{...C,content:C.content.map((O)=>{switch(O.type){case"file":return{...O,data:Qp(O.data)};case"tool-result":return{...O,output:Xp(O.output)};default:return O}})}})}function Qp(M){switch(M.type){case"data":return M.data;case"url":return M.url;case"reference":case"text":return M}}function Xp(M){if(M.type!=="content")return M;return{...M,value:M.value.map((C)=>{if(C.type!=="file")return C;switch(C.data.type){case"data":return{type:"file-data",data:typeof C.data.data==="string"?C.data.data:X(C.data.data),mediaType:C.mediaType,filename:C.filename,providerOptions:C.providerOptions};case"url":return{type:"file-url",url:C.data.url.toString(),providerOptions:C.providerOptions};case"reference":return{type:"file-id",fileId:C.data.reference,providerOptions:C.providerOptions};case"text":return C}})}}function Zp(M){return M.type==="file"?{...M,data:{type:"data",data:M.data}}:M}function em(M){return M.pipeThrough(new TransformStream({transform(C,O){O.enqueue(C.type==="file"?{...C,data:{type:"data",data:C.data}}:C)}}))}function tm(M){if(M.specificationVersion==="v4")return M;return new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v4";return C[O]}})}function bl(M){if(M.specificationVersion==="v3")return M;return co({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function rm(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?bl(M):M;return new Proxy(C,{get(O,L){if(L==="specificationVersion")return"v4";return O[L]}})}function Sl(M){if(M.specificationVersion==="v3")return M;return co({provider:M.provider,modelId:M.modelId}),new Proxy(M,{get(C,O){if(O==="specificationVersion")return"v3";return C[O]}})}function am(M){if(M.specificationVersion==="v4")return M;let C=M.specificationVersion==="v2"?Sl(M):M;return new Proxy(C,{get(O,L){if(L==="specificationVersion")return"v4";return O[L]}})}function om(M){if("specificationVersion"in M&&M.specificationVersion==="v3")return M;let C=M;return{specificationVersion:"v3",languageModel:(O)=>gl(C.languageModel(O)),embeddingModel:(O)=>fl(C.textEmbeddingModel(O)),imageModel:(O)=>hl(C.imageModel(O)),transcriptionModel:C.transcriptionModel?(O)=>Sl(C.transcriptionModel(O)):void 0,speechModel:C.speechModel?(O)=>bl(C.speechModel(O)):void 0,rerankingModel:void 0}}function nm(M){if("specificationVersion"in M&&M.specificationVersion==="v4")return M;let C=!("specificationVersion"in M)||M.specificationVersion!=="v3"?om(M):M;return{specificationVersion:"v4",languageModel:(O)=>wl(C.languageModel(O)),embeddingModel:(O)=>Kp(C.embeddingModel(O)),imageModel:(O)=>Jp(C.imageModel(O)),transcriptionModel:C.transcriptionModel?(O)=>am(C.transcriptionModel(O)):void 0,speechModel:C.speechModel?(O)=>rm(C.speechModel(O)):void 0,rerankingModel:C.rerankingModel?(O)=>tm(C.rerankingModel(O)):void 0}}function no(M){if(typeof M==="string")return sm().languageModel(M);if(!["v4","v3","v2"].includes(M.specificationVersion)){let C=M;throw new Dp({version:C.specificationVersion,provider:C.provider,modelId:C.modelId})}return wl(M)}function sm(){return nm(globalThis.AI_SDK_DEFAULT_PROVIDER??vn)}function ao(M){return M.map((C)=>Cn(C))}function Cn(M){if(M instanceof URL)return new URL(M.href);if(Array.isArray(M))return M.map((C)=>Cn(C));if(M instanceof Uint8Array)return new Uint8Array(M);if(M instanceof ArrayBuffer)return M.slice(0);if(M instanceof Date)return new Date(M);if(M!=null&&typeof M==="object")return Object.fromEntries(Object.entries(M).map(([C,O])=>[C,Cn(O)]));return M}var Ln="7.0.155",Fn=async({url:M,maxBytes:C,abortSignal:O})=>{let L=M.toString();try{let W=F({},`ai-sdk/${Ln}`,ke()),ee=await jt({url:L,headers:W,abortSignal:O});if(!ee.ok)throw await ct(ee),new B({url:L,statusCode:ee.status,statusText:ee.statusText});return{data:await kt({response:ee,url:L,maxBytes:C??qt}),mediaType:ee.headers.get("content-type")??void 0}}catch(W){if(B.isInstance(W))throw W;throw new B({url:L,cause:W})}},im=(M=Fn,C)=>(O)=>Promise.all(O.map(async(L)=>L.isUrlSupportedByModel?null:await M({...L,abortSignal:C})));function Aa(M,C){if(M===void 0&&C===void 0)return;if(M===void 0)return C;if(C===void 0)return M;let O={...M};for(let L in C){if(L==="__proto__"||L==="constructor"||L==="prototype")continue;if(Object.prototype.hasOwnProperty.call(C,L)){let W=C[L];if(W===void 0)continue;let ee=L in M?M[L]:void 0,H=W!==null&&typeof W==="object"&&!Array.isArray(W)&&!(W instanceof Date)&&!(W instanceof RegExp),te=ee!==null&&ee!==void 0&&typeof ee==="object"&&!Array.isArray(ee)&&!(ee instanceof Date)&&!(ee instanceof RegExp);if(H&&te)O[L]=Aa(ee,W);else O[L]=W}}return O}function lm(M){try{let[C,O]=M.split(",");return{mediaType:C.split(";")[0].split(":")[1],base64Content:O}}catch{return{mediaType:void 0,base64Content:void 0}}}function cm(M){if(typeof M!=="object"||M===null)return!1;let C=M.type;return C==="data"||C==="url"||C==="reference"||C==="text"}function Rn(M,C){if(M.protocol==="data:"){let{mediaType:O,base64Content:L}=lm(M.toString());if(O==null||L==null)throw new cl({content:M,message:`Invalid data URL format in content ${M.toString()}`});return{data:{type:"data",data:L},mediaType:O}}return{data:{type:"url",url:M,...C!=null?{originalUrl:C}:{}},mediaType:void 0}}function dm(M){let C=Rn(new URL(M));if(C.data.type==="url"&&C.data.url.toString()!==M)C.data.originalUrl=M;return C}function Sn(M){if(M instanceof Uint8Array)return{data:{type:"data",data:M},mediaType:void 0};if(M instanceof ArrayBuffer)return{data:{type:"data",data:new Uint8Array(M)},mediaType:void 0};if(Tt(M))return{data:{type:"data",data:new Uint8Array(M)},mediaType:void 0};return{data:{type:"data",data:M},mediaType:void 0}}function Do(M){if(cm(M))switch(M.type){case"data":if(typeof M.data==="string"&&M.data.startsWith("data:"))throw new cl({content:M.data,message:'Data URLs are not valid inline data. Pass them as { type: "url", url } instead.'});return Sn(M.data);case"url":return Rn(M.url,M.originalUrl);case"reference":return{data:{type:"reference",reference:M.reference},mediaType:void 0};case"text":return{data:{type:"text",text:M.text},mediaType:void 0}}if(M instanceof URL)return Rn(M);if(typeof M==="string")try{return dm(M)}catch{return Sn(M)}if(sn(M))return{data:{type:"reference",reference:M},mediaType:void 0};return Sn(M)}async function Il({prompt:M,supportedUrls:C,download:O,abortSignal:L,provider:W}){let ee=await pm(M.messages,O??im(void 0,L),C),H=[...M.instructions!=null?typeof M.instructions==="string"?[{role:"system",content:M.instructions}]:qe(M.instructions).map((ne)=>({role:"system",content:ne.content,providerOptions:ne.providerOptions})):[],...M.messages.map((ne)=>um({message:ne,downloadedAssets:ee,provider:W}))],te=[];for(let ne of H){if(ne.role!=="tool"){te.push(ne);continue}let z=te.at(-1);if(z?.role==="tool"){let oe=z.content.at(-1);if(oe!=null&&z.providerOptions!=null)oe.providerOptions=Aa(z.providerOptions,oe.providerOptions);z.content.push(...ne.content),z.providerOptions=oe==null?Aa(z.providerOptions,ne.providerOptions):ne.providerOptions}else te.push(ne)}let re=new Set;for(let ne of te)switch(ne.role){case"assistant":for(let z of ne.content)if(z.type==="tool-call"&&!z.providerExecuted)re.add(z.toolCallId);break;case"tool":for(let z of ne.content)if(z.type==="tool-result")re.delete(z.toolCallId);break;case"user":case"system":if(re.size>0)throw new hi({toolCallIds:Array.from(re)})}if(re.size>0)throw new hi({toolCallIds:Array.from(re)});return te.filter((ne)=>ne.role!=="tool"||ne.content.length>0)}function um({message:M,downloadedAssets:C,provider:O}){let L=[],W=M.role;switch(W){case"system":return{role:"system",content:M.content,providerOptions:M.providerOptions};case"user":{if(typeof M.content==="string")return{role:"user",content:[{type:"text",text:M.content}],providerOptions:M.providerOptions};let ee={role:"user",content:M.content.map((H)=>{if(H.type==="image")L.push({type:"deprecated",setting:'"image" content part',message:`The "image" content part type is deprecated. Use a "file" part with mediaType: 'image' (or a more specific image/* subtype) instead.`});return Tl(H)}).map((H)=>xl(H,C)).filter((H)=>H.type!=="text"||H.text!==""),providerOptions:M.providerOptions};if(L.length>0)oa({warnings:L});return ee}case"assistant":{if(typeof M.content==="string")return{role:"assistant",content:[{type:"text",text:M.content}],providerOptions:M.providerOptions};let ee={role:"assistant",content:M.content.filter((H)=>H.type!=="text"||H.text!==""||H.providerOptions!=null).filter((H)=>H.type!=="tool-approval-request").map((H)=>{let te=H.providerOptions;switch(H.type){case"custom":return{type:"custom",kind:H.kind,providerOptions:te};case"file":{let{data:re,mediaType:ne}=Do(H.data);return{type:"file",data:re,filename:H.filename,mediaType:ne??H.mediaType,providerOptions:te}}case"reasoning":return{type:"reasoning",text:H.text,providerOptions:te};case"reasoning-file":{let{data:re,mediaType:ne}=Do(H.data);if(re.type!=="data"&&re.type!=="url")throw Error(`Unsupported reasoning-file data type: ${re.type}`);return{type:"reasoning-file",data:re,mediaType:ne??H.mediaType,providerOptions:te}}case"text":return{type:"text",text:H.text,providerOptions:te};case"tool-call":return{type:"tool-call",toolCallId:H.toolCallId,toolName:H.toolName,input:H.input,providerExecuted:H.providerExecuted,providerOptions:te};case"tool-result":return{type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:Si({output:H.output,provider:O,warnings:L,downloadedAssets:C}),providerOptions:te}}}),providerOptions:M.providerOptions};if(L.length>0)oa({warnings:L});return ee}case"tool":{let ee={role:"tool",content:M.content.filter((H)=>H.type!=="tool-approval-response"||H.providerExecuted).map((H)=>{switch(H.type){case"tool-result":return{type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:Si({output:H.output,provider:O,warnings:L,downloadedAssets:C}),providerOptions:H.providerOptions};case"tool-approval-response":return{type:"tool-approval-response",approvalId:H.approvalId,approved:H.approved,reason:H.reason}}}),providerOptions:M.providerOptions};if(L.length>0)oa({warnings:L});return ee}default:throw new Lp({role:W})}}function Tl(M){if(M.type!=="image")return M;return{type:"file",data:M.image,mediaType:M.mediaType??"image",providerOptions:M.providerOptions}}async function pm(M,C,O){let L=[];for(let H of M){if(H.role==="user"&&Array.isArray(H.content))for(let te of H.content){let re=Tl(te);if(re.type==="file")L.push(re)}if(H.role==="tool")for(let te of H.content){if(te.type!=="tool-result")continue;if(te.output.type!=="content")continue;for(let re of te.output.value)if(re.type==="file")L.push(re)}if(H.role==="assistant"&&Array.isArray(H.content))for(let te of H.content){if(te.type!=="tool-result")continue;if(te.output.type!=="content")continue;for(let re of te.output.value)if(re.type==="file")L.push(re)}}let W=L.map((H)=>{let te=H.mediaType,{data:re}=Do(H.data);return{mediaType:te,data:re}}).filter((H)=>H.data.type==="url").map((H)=>({url:H.data.url,isUrlSupportedByModel:H.mediaType!=null&&Qe({url:H.data.url.toString(),mediaType:H.mediaType,supportedUrls:O})})),ee=await C(W);return Object.fromEntries(ee.map((H,te)=>H==null?null:[W[te].url.toString(),{data:H.data,mediaType:H.mediaType}]).filter((H)=>H!=null))}function xl(M,C){if(M.type==="text")return{type:"text",text:M.text,providerOptions:M.providerOptions};let{data:O,mediaType:L}=Do(M.data),W=L??M.mediaType,ee=O;if(ee.type==="url"){let H=C[ee.url.toString()];if(H){if(ee={type:"data",data:H.data},H.mediaType!=null&&(W==null||!K(W)))W=H.mediaType}}if(ee.type==="data"&&(ee.data instanceof Uint8Array||typeof ee.data==="string")){let H=Te({data:ee.data,topLevelType:"image"});if(H!=null)W=H}if(W==null)throw Error("Media type is missing for file part");return{type:"file",mediaType:W,filename:M.filename,data:ee,providerOptions:M.providerOptions}}function Si({output:M,provider:C,warnings:O=[],downloadedAssets:L}){if(M.type!=="content")return M;return{type:"content",value:M.value.map((W)=>{switch(W.type){case"file":{let ee=xl(W,L);if(ee.type!=="file")throw Error("Expected tool result file content to convert to file.");return ee}case"file-data":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-data"',message:`The "file-data" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'data', data } instead.`}),{type:"file",data:{type:"data",data:W.data},filename:W.filename,mediaType:W.mediaType,providerOptions:W.providerOptions};case"file-url":{let ee=W.mediaType??mm(W.url),H=new URL(W.url),te=`The "file-url" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'url', url } instead.`;if(!W.mediaType){let re=ee==="application/octet-stream"?"Unable to infer media type from URL. Defaulting to 'application/octet-stream'.":`Inferred media type '${ee}' from URL.`;te=`The "file-url" tool result content part with URL "${W.url}" is missing a "mediaType". ${re} ${te}`}return O.push({type:"deprecated",setting:'"tool-result" content of type "file-url"',message:te}),{type:"file",data:{type:"url",url:H,...H.toString()!==W.url?{originalUrl:W.url}:{}},mediaType:ee,providerOptions:W.providerOptions}}case"file-id":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-id"',message:`The "file-id" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:Ii({fileId:W.fileId,provider:C})},mediaType:"application",providerOptions:W.providerOptions};case"file-reference":return O.push({type:"deprecated",setting:'"tool-result" content of type "file-reference"',message:`The "file-reference" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:W.providerReference},mediaType:"application",providerOptions:W.providerOptions};case"image-data":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-data"',message:`The "image-data" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'data', data } instead.`}),{type:"file",data:{type:"data",data:W.data},mediaType:W.mediaType,providerOptions:W.providerOptions};case"image-url":{let ee=new URL(W.url);return O.push({type:"deprecated",setting:'"tool-result" content of type "image-url"',message:`The "image-url" type for tool result content is deprecated. Use the "file" type with mediaType 'image' (or a specific image/* subtype) and { type: 'url', url } instead.`}),{type:"file",data:{type:"url",url:ee,...ee.toString()!==W.url?{originalUrl:W.url}:{}},mediaType:"image",providerOptions:W.providerOptions}}case"image-file-id":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-file-id"',message:`The "image-file-id" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:Ii({fileId:W.fileId,provider:C})},mediaType:"image",providerOptions:W.providerOptions};case"image-file-reference":return O.push({type:"deprecated",setting:'"tool-result" content of type "image-file-reference"',message:`The "image-file-reference" type for tool result content is deprecated. Use the "file" type with mediaType and { type: 'reference', reference } instead.`}),{type:"file",data:{type:"reference",reference:W.providerReference},mediaType:"image",providerOptions:W.providerOptions};default:return W}})}}function Ii({fileId:M,provider:C}){if(typeof M==="object")return M;if(C==null)throw Error("Cannot convert string fileId to provider reference without a provider ID. Use a Record<string, string> fileId or switch to the file-reference type.");return{[C]:M}}var Ti={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",avif:"image/avif",heic:"image/heic",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff",pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg"};function mm(M,C="application/octet-stream"){try{let O=new URL(M).pathname.split(".").pop()?.toLowerCase();if(O&&Object.hasOwn(Ti,O))return Ti[O]}catch{}return C}async function na({toolCallId:M,input:C,output:O,tool:L,errorMode:W}){if(W==="text")return{type:"error-text",value:A(O)};else if(W==="json")return{type:"error-json",value:xi(O)};if(L?.toModelOutput)return await L.toModelOutput({toolCallId:M,input:C,output:O});return typeof O==="string"?{type:"text",value:O}:{type:"json",value:xi(O)}}function xi(M){if(M===void 0)return null;let C=JSON.stringify(M);return C===void 0?null:JSON.parse(C)}function qo({maxOutputTokens:M,temperature:C,topP:O,topK:L,presencePenalty:W,frequencyPenalty:ee,seed:H,stopSequences:te,reasoning:re}){if(M!=null){if(!Number.isInteger(M))throw new yr({parameter:"maxOutputTokens",value:M,message:"maxOutputTokens must be an integer"});if(M<1)throw new yr({parameter:"maxOutputTokens",value:M,message:"maxOutputTokens must be >= 1"})}if(H!=null){if(!Number.isInteger(H))throw new yr({parameter:"seed",value:H,message:"seed must be an integer"})}return{maxOutputTokens:M,temperature:C,topP:O,topK:L,presencePenalty:W,frequencyPenalty:ee,stopSequences:te,seed:H,reasoning:re}}function Gn({toolChoice:M}){return M==null?{type:"auto"}:typeof M==="string"?{type:M}:{type:"tool",toolName:M.toolName}}function fm(M){return M!=null&&Object.keys(M).length>0}async function Vn({tools:M,toolOrder:C,toolsContext:O={},experimental_sandbox:L}){if(!fm(M))return;let W=[];for(let[ee,H]of hm({tools:M,toolOrder:C})){let te=H.type;switch(te){case void 0:case"dynamic":case"function":{let re=El({tool:H,toolName:ee,toolsContext:O,experimental_sandbox:L}),{providerOptions:ne,inputExamples:z,strict:oe}=H;W.push({type:"function",name:ee,inputSchema:await Be(H.inputSchema).jsonSchema,...re!=null?{description:re}:{},...z!=null?{inputExamples:z}:{},...ne!=null?{providerOptions:ne}:{},...oe!=null?{strict:oe}:{}});break}case"provider":W.push({type:"provider",name:ee,id:H.id,args:H.args});break;default:throw Error(`Unsupported tool type: ${te}`)}}return W}function hm({tools:M,toolOrder:C}){if(C==null)return Object.entries(M);let O=Object.entries(M),L=O.filter(([ee])=>C.includes(ee)).sort(([ee],[H])=>C.indexOf(ee)-C.indexOf(H)),W=O.filter(([ee])=>!C.includes(ee)).sort(([ee],[H])=>ee<H?-1:ee>H?1:0);return[...L,...W]}function El({tool:M,toolName:C,toolsContext:O,experimental_sandbox:L}){return M.description===void 0?void 0:typeof M.description==="string"?M.description:M.description({context:O[C],experimental_sandbox:L})}function Ml(M){if(M==null)return;if(typeof M==="number")return M;return M.totalMs}function Cl(M){if(M==null||typeof M==="number")return;return M.stepMs}function Rl(M){if(M==null||typeof M==="number")return;return M.firstChunkMs}function _l(M){if(M==null||typeof M==="number")return;return M.chunkMs}function gm(M,C){if(M==null||typeof M==="number")return;return M.tools?.[`${C}Ms`]??M.toolMs}async function Bn({allowSystemInMessages:M=!1,system:C,instructions:O=C,prompt:L,messages:W}){if(W=L==null?W:typeof L==="string"?[{role:"user",content:L}]:L,W.length===0)throw new ye({prompt:L,message:"messages must not be empty"});if(!M&&W.some((ee)=>ee.role==="system"))throw new ye({prompt:L,message:"System messages are not allowed in the prompt or messages fields. Use the instructions option instead."});return{messages:W,instructions:O}}function to(M){if(!Qa.isInstance(M))return M;let C=process?.env.NODE_ENV==="production",O="https://ai-sdk.dev/unauthenticated-ai-gateway";if(C)return new m({name:"GatewayError",message:`Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${O}`});return Object.assign(Error(`\x1B[1m\x1B[31mUnauthenticated request to AI Gateway.\x1B[0m
|
|
23
23
|
|
|
24
24
|
To authenticate, set the \x1B[33mAI_GATEWAY_API_KEY\x1B[0m environment variable with your API key.
|
|
25
25
|
|
|
@@ -27,18 +27,18 @@ Alternatively, you can use a provider module instead of the AI Gateway.
|
|
|
27
27
|
|
|
28
28
|
Learn more: \x1B[34m${O}\x1B[0m
|
|
29
29
|
|
|
30
|
-
`),{name:"GatewayAuthenticationError"})}function Al(M){return{inputTokens:M.inputTokens.total,inputTokenDetails:{noCacheTokens:M.inputTokens.noCache,cacheReadTokens:M.inputTokens.cacheRead,cacheWriteTokens:M.inputTokens.cacheWrite},outputTokens:M.outputTokens.total,outputTokenDetails:{textTokens:M.outputTokens.text,reasoningTokens:M.outputTokens.reasoning},totalTokens:Rr(M.inputTokens.total,M.outputTokens.total),raw:M.raw}}function _o(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function kl(M,C){let O=Ei(M)?C.raw:Ei(C)?M.raw:void 0;return{inputTokens:Rr(M.inputTokens,C.inputTokens),inputTokenDetails:{noCacheTokens:Rr(M.inputTokenDetails?.noCacheTokens,C.inputTokenDetails?.noCacheTokens),cacheReadTokens:Rr(M.inputTokenDetails?.cacheReadTokens,C.inputTokenDetails?.cacheReadTokens),cacheWriteTokens:Rr(M.inputTokenDetails?.cacheWriteTokens,C.inputTokenDetails?.cacheWriteTokens)},outputTokens:Rr(M.outputTokens,C.outputTokens),outputTokenDetails:{textTokens:Rr(M.outputTokenDetails?.textTokens,C.outputTokenDetails?.textTokens),reasoningTokens:Rr(M.outputTokenDetails?.reasoningTokens,C.outputTokenDetails?.reasoningTokens)},totalTokens:Rr(M.totalTokens,C.totalTokens),...O==null?{}:{raw:O}}}function Ei(M){return M.inputTokens==null&&M.inputTokenDetails?.noCacheTokens==null&&M.inputTokenDetails?.cacheReadTokens==null&&M.inputTokenDetails?.cacheWriteTokens==null&&M.outputTokens==null&&M.outputTokenDetails?.textTokens==null&&M.outputTokenDetails?.reasoningTokens==null&&M.totalTokens==null&&M.raw==null}function Rr(M,C){return M==null&&C==null?void 0:(M??0)+(C??0)}function et(M,C){return M!=null&&Object.hasOwn(M,C)?M[C]:void 0}function Wn(...M){let C=Pe(...M).map((O)=>typeof O==="number"?AbortSignal.timeout(O):O);return C.length===0?void 0:C.length===1?C[0]:AbortSignal.any(C)}function io(){return globalThis?.performance?.now()??Date.now()}async function lt(M){await Promise.all(Ne(M.callbacks).map(async(C)=>{try{await C?.(M.event)}catch{}}))}function ym({error:M,exponentialBackoffDelay:C}){let O=w.isInstance(M)?M.responseHeaders:w.isInstance(M.cause)?M.cause.responseHeaders:void 0;if(!O)return C;let F,W=O["retry-after-ms"];if(W){let H=parseFloat(W);if(!Number.isNaN(H))F=H}let ee=O["retry-after"];if(ee&&F===void 0){let H=parseFloat(ee);if(!Number.isNaN(H))F=H*1000;else F=Date.parse(ee)-Date.now()}if(F!=null&&!Number.isNaN(F)&&0<=F&&(F<60000||F<C))return F;return C}var vm=({maxRetries:M=2,initialDelayInMs:C=2000,backoffFactor:O=2,abortSignal:F,additionalRetryableError:W}={})=>on({maxRetries:M,initialDelayInMs:C,backoffFactor:O,abortSignal:F,shouldRetry:async(ee)=>ee instanceof Error&&(w.isInstance(ee)&&ee.isRetryable===!0||ft.isInstance(ee)&&ee.isRetryable===!0)||W!=null&&await W(ee),getDelayInMs:({error:ee,exponentialBackoffDelay:H})=>ym({error:ee,exponentialBackoffDelay:H}),createRetryError:({message:ee,reason:H,errors:te})=>new Vp({message:ee,reason:H,errors:te})});function jo({maxRetries:M,abortSignal:C,additionalRetryableError:O,parameter:F="maxRetries",defaultMaxRetries:W=2}){if(M!=null){if(!Number.isInteger(M))throw new vr({parameter:F,value:M,message:`${F} must be an integer`});if(M<0)throw new vr({parameter:F,value:M,message:`${F} must be >= 0`})}let ee=M??W;return{maxRetries:ee,retry:vm({maxRetries:ee,abortSignal:C,additionalRetryableError:O})}}function No({abortController:M,label:C,timeoutMs:O}){if(M==null||O==null)return;return setTimeout(()=>M.abort(new DOMException(`${C} timeout of ${O}ms exceeded`,"TimeoutError")),O)}function Vr({tokens:M,durationMs:C}){let O=1000*(M??0)/(C??0);return Number.isFinite(O)?O:0}function Pl({messages:M}){let C=M.at(-1);if(C?.role!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let O=Object.create(null),F=Object.create(null),W=0;for(let oe of M)if(oe.role==="assistant"&&typeof oe.content!=="string"){let se=oe.content;for(let de of se)if(de.type==="tool-call")O[de.toolCallId]=de,F[de.toolCallId]=W++}let ee=Object.create(null);for(let oe of M)if(oe.role==="assistant"&&typeof oe.content!=="string"){let se=oe.content;for(let de of se)if(de.type==="tool-approval-request")ee[de.approvalId]=de}let H=Object.create(null);for(let oe of C.content)if(oe.type==="tool-result")H[oe.toolCallId]=oe;let te=[],re=[],ne=new Set,z=C.content.filter((oe)=>oe.type==="tool-approval-response");for(let oe of z){let se=ee[oe.approvalId];if(se==null)throw new vp({approvalId:oe.approvalId});let de=H[se.toolCallId];if(de!=null&&(oe.approved||de.output.type!=="execution-denied"))continue;let me=O[se.toolCallId];if(me==null)throw new $n({toolCallId:se.toolCallId,approvalId:se.approvalId});if(ne.has(me.toolCallId))continue;ne.add(me.toolCallId);let Le={approvalRequest:se,approvalResponse:oe,toolCall:me,...de!=null?{existingToolResult:de}:{}};if(oe.approved)te.push(Le);else re.push(Le)}return te.sort((oe,se)=>F[oe.toolCall.toolCallId]-F[se.toolCall.toolCallId]),{approvedToolApprovals:te,deniedToolApprovals:re}}var Hn=class{constructor({data:M,mediaType:C,providerMetadata:O}){let F=M instanceof Uint8Array;this.base64Data=F?void 0:M,this.uint8ArrayData=F?M:void 0,this.mediaType=C,this.providerMetadata=O}get base64(){if(this.base64Data==null)this.base64Data=X(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=N(this.base64Data);return this.uint8ArrayData}},wm=class extends Hn{constructor(...M){super(...M);this.type="file"}};async function Ol({data:M,abortSignal:C,cache:O}){if(M.type==="data")return M.data;let F=O?.get(M);if(F!=null)return F;let W=(await Fn({url:M.url,abortSignal:C})).data;return O?.set(M,W),W}async function Mi({content:M,toolCalls:C,toolOutputs:O,toolApprovalRequests:F,toolApprovalResponses:W,tools:ee,abortSignal:H,generatedFileDataCache:te}){let re=[],ne=[],z=[],oe=new Set(W.map((se)=>se.toolCall.toolCallId));for(let se of M)switch(se.type){case"text":case"reasoning":case"custom":case"source":re.push(se);break;case"file":case"reasoning-file":re.push({type:se.type,file:new Hn({data:await Ol({data:se.data,abortSignal:H,cache:te}),mediaType:se.mediaType}),...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{}});break;case"tool-call":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null)throw Error(`Tool call ${se.toolCallId} not found.`);re.push(de);break}case"tool-result":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null){let me=et(ee,se.toolName);if(!(me?.type==="provider"&&me.supportsDeferredResults))throw Error(`Tool call ${se.toolCallId} not found.`);if(se.isError)re.push({type:"tool-error",toolCallId:se.toolCallId,toolName:se.toolName,input:void 0,error:se.result,providerExecuted:!0,dynamic:se.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...me?.metadata!=null?{toolMetadata:me.metadata}:{}});else re.push({type:"tool-result",toolCallId:se.toolCallId,toolName:se.toolName,input:void 0,output:se.result,providerExecuted:!0,dynamic:se.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...me?.metadata!=null?{toolMetadata:me.metadata}:{}});break}if(se.isError)re.push({type:"tool-error",toolCallId:se.toolCallId,toolName:se.toolName,input:de.input,error:se.result,providerExecuted:!0,dynamic:de.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...de.toolMetadata!=null?{toolMetadata:de.toolMetadata}:{}});else re.push({type:"tool-result",toolCallId:se.toolCallId,toolName:se.toolName,input:de.input,output:se.result,providerExecuted:!0,dynamic:de.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...de.toolMetadata!=null?{toolMetadata:de.toolMetadata}:{}});break}case"tool-approval-request":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null)throw new $n({toolCallId:se.toolCallId,approvalId:se.approvalId});re.push({type:"tool-approval-request",approvalId:se.approvalId,toolCall:de});break}}for(let se of O)if(oe.has(se.toolCallId))ne.push(se);else z.push(se);return[...re,...z,...F,...W,...ne]}function jl({tools:M,toolCallers:C}){if(M==null||C==null)return;let O={};for(let[F,W]of Object.entries(C)){if(!Object.prototype.hasOwnProperty.call(M,F))throw new vr({parameter:"experimental_toolCallers",value:C,message:`unknown tool "${F}".`});if(W!=null)O[F]=W}return O}function Nl({tools:M,toolCallers:C}){if(M==null||C==null)return{executionTools:M,modelTools:M,toolCallerMessages:[]};let O={...M},F={...M},W=new Map,ee=[];for(let[H,te]of Object.entries(C)){let re=O[H];if(re==null)continue;let ne=!1,z=!1,oe=re;for(let se of te){if(se==="AI_SDK_DIRECT_TOOL_CALL"){ne=!0;continue}let de=xt(O[se]);if(de==null)continue;if(de.type==="provider")z=!0,oe={...oe,providerOptions:de.prepareProviderOptions(oe.providerOptions)};else{let me=W.get(se)??{};me[H]=oe,W.set(se,me)}}if(O[H]=oe,ne||z)F[H]=oe;else delete F[H]}for(let[H,te]of Object.entries(O)){let re=xt(te);if(re?.type!=="local")continue;let ne=W.get(H)??{},z=re.bind(ne);if(O[H]=z,Object.prototype.hasOwnProperty.call(F,H))if(re.prepareModelMessage==null)F[H]=z;else{let oe=re.prepareModelMessage(ne);if(oe!=null)ee.push({role:"user",content:oe})}}return{executionTools:O,modelTools:F,toolCallerMessages:ee}}function Dl({messages:M,toolCallerMessages:C}){if(C.length===0)return M;let O=M.findLast((ee)=>ee.role==="user"&&typeof ee.content==="string")?.content,F=new Set(O==null?[]:[O]),W=C.filter((ee)=>{if(typeof ee.content!=="string"||F.has(ee.content))return!1;return F.add(ee.content),!0});return W.length===0?M:[...M,...W]}var bm=Symbol.for("vercel.ai.toolSearch"),Sm=Symbol.for("vercel.ai.toolSearch.search"),Im=Symbol.for("vercel.ai.toolSearch.maxResults");function Tm(M){return M[Im]??5}function xm(M){return M[Sm]}function Ao(M){return M[bm]===!0}function ql({tools:M,toolCallers:C}){let O=Object.entries(M??{}).filter(([,ee])=>ee.deferLoading||Ao(ee));if(O.length===0)return(ee)=>ee;let F=new Set,W=(ee)=>et(C,ee)??["AI_SDK_DIRECT_TOOL_CALL"];for(let[ee,H]of O)if(W(ee).some((te)=>{if(te==="AI_SDK_DIRECT_TOOL_CALL")return!1;let re=xt(M?.[te]);return re?.type!=="local"||re.prepareModelMessage==null})||Ao(H)&&H.deferLoading)throw new vr({parameter:"tools",value:ee,message:`tool "${ee}" must be callable directly or through code mode with toolDiscovery: 'conversation'. The search tool itself must not defer loading.`});return(ee,{toolsContext:H={},experimental_sandbox:te}={})=>{if(ee==null)return;let re=Object.entries(ee);return Object.fromEntries(re.filter(([ne,z])=>!z.deferLoading||F.has(ne)).map(([ne,z])=>{if(!Ao(z))return[ne,z];let oe=W(ne).filter((de)=>de==="AI_SDK_DIRECT_TOOL_CALL"||Object.hasOwn(ee,de)),se=re.filter(([de,me])=>me.deferLoading&&!Ao(me)&&oe.some((Le)=>W(de).includes(Le)));return[ne,{...z,execute:async({query:de})=>{let me=se.map(([we,le])=>{let ve=El({tool:le,toolName:we,toolsContext:H,experimental_sandbox:te});return{name:we,...ve==null?{}:{description:ve}}}),Le=new Map(me.map((we)=>[we.name,we])),Ge=xm(z),be=[...new Set(In(de))],De=Ge?await Ge({query:de,tools:me.map((we)=>({...we}))}):me.map(({name:we,description:le})=>{let ve=In(we),Se=In(le??"");return{name:we,score:be.reduce((ce,Ie)=>ce+(ve.includes(Ie)?2:0)+(Se.includes(Ie)?1:0),0)}}).filter((we)=>we.score>0).sort((we,le)=>le.score-we.score).map((we)=>we.name),xe=[...new Set(De)].flatMap((we)=>{let le=Le.get(we);return le==null?[]:[le]}).slice(0,Tm(z));for(let{name:we}of xe)F.add(we);return{tools:xe}}}]}))}}function In(M){return M.replace(/([a-z\d])([A-Z])/g,"$1 $2").toLowerCase().match(/[\p{L}\p{N}]+/gu)??[]}async function lo({toolName:M,context:C,contextSchema:O}){if(O==null)return C;return await x({value:C,schema:O,context:{field:"tool context",entityName:M}})}async function zn({toolCall:M,tools:C,toolsContext:O,callId:F,messages:W,abortSignal:ee,timeout:H,experimental_sandbox:te,onPreliminaryToolResult:re,onToolExecutionStart:ne,onToolExecutionEnd:z,executeToolInTelemetryContext:oe=async({execute:de})=>await de(),runInTracingChannelSpan:se=async({execute:de})=>await de()}){let{toolName:de,toolCallId:me,input:Le}=M,Ge=et(C,de);if(!jt(Ge))return;let be=await lo({toolName:de,context:et(O,de),contextSchema:Ge.contextSchema}),De={toolCall:M,messages:W,toolContext:be},xe={callId:F,...De};return await se({type:"executeTool",event:xe,execute:async()=>{let we;await lt({event:xe,callbacks:ne});let le=Wn(ee,gm(H,de)),ve=0;try{await oe({callId:F,toolCallId:me,...De,execute:async()=>{let ce=io();try{let Ie=hn({tool:Ge,input:Le,options:{toolCallId:me,messages:W,abortSignal:le,context:be,experimental_sandbox:te}});for await(let He of Ie)if(He.type==="preliminary")re?.({...M,type:"tool-result",output:He.output,preliminary:!0});else we=He.output}finally{ve=io()-ce}}})}catch(ce){let Ie={type:"tool-error",toolCallId:me,toolName:de,input:Le,error:ce,dynamic:Ge.type==="dynamic",...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{}};return await lt({event:{...xe,toolOutput:Ie,toolExecutionMs:ve},callbacks:z}),{output:Ie,toolExecutionMs:ve}}let Se={type:"tool-result",toolCallId:me,toolName:de,input:Le,output:we,dynamic:Ge.type==="dynamic",...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{}};return await lt({event:{...xe,toolOutput:Se,toolExecutionMs:ve},callbacks:z}),{output:Se,toolExecutionMs:ve}}})}function $l({tools:M,activeTools:C}){if(M==null||C==null)return M;return Object.fromEntries(Object.entries(M).filter(([O])=>C.includes(O)))}function Em(M){if(typeof M==="object"&&M!==null&&"type"in M)return M.type==="data"?M.data:M.url;return M}function Mm(M){return M.map((C)=>{if(C.type==="reasoning")return{type:"reasoning",text:C.text,...C.providerMetadata!=null?{providerOptions:C.providerMetadata}:{}};return{type:"reasoning-file",data:C.file.base64,mediaType:C.file.mediaType,...C.providerMetadata!=null?{providerOptions:C.providerMetadata}:{}}})}function Ul(M){return M.map((C)=>{if(C.type==="reasoning")return{type:"reasoning",text:C.text,...C.providerOptions!=null?{providerMetadata:C.providerOptions}:{}};let O=Em(C.data);return{type:"reasoning-file",file:new Hn({data:O instanceof ArrayBuffer?new Uint8Array(O):O instanceof URL?O.toString():O,mediaType:C.mediaType}),...C.providerOptions!=null?{providerMetadata:C.providerOptions}:{}}})}var Cm=class{constructor(M){this.initialResponseMessages=M.initialResponseMessages,this.steps=M.steps,this._output=M.output,this.totalUsage=M.totalUsage}get finalStep(){return this.steps.at(-1)}get content(){return this.steps.flatMap((M)=>M.content)}get text(){return this.finalStep.text}get files(){return this.steps.flatMap((M)=>M.files)}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return Ul(this.finalStep.reasoning)}get toolCalls(){return this.steps.flatMap((M)=>M.toolCalls)}get staticToolCalls(){return this.steps.flatMap((M)=>M.staticToolCalls)}get dynamicToolCalls(){return this.steps.flatMap((M)=>M.dynamicToolCalls)}get toolResults(){return this.steps.flatMap((M)=>M.toolResults)}get staticToolResults(){return this.steps.flatMap((M)=>M.staticToolResults)}get dynamicToolResults(){return this.steps.flatMap((M)=>M.dynamicToolResults)}get sources(){return this.steps.flatMap((M)=>M.sources)}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.steps.flatMap((M)=>M.warnings??[])}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get responseMessages(){return[...this.initialResponseMessages,...this.steps.flatMap((M)=>M.response.messages)]}get request(){return this.finalStep.request}get usage(){return this.totalUsage}get output(){if(this._output==null)throw new Oo;return this._output}};function Ll(M){return M==="stop"||M==="tool-calls"}function Rm(M){let C=["ROOT"],O=-1,F=null,W=0;function ee(z){return z>="0"&&z<="9"||z>="A"&&z<="F"||z>="a"&&z<="f"}function H(z,oe,se){switch(z){case'"':O=oe,C.pop(),C.push(se),C.push("INSIDE_STRING");break;case"f":case"t":case"n":O=oe,F=oe,C.pop(),C.push(se),C.push("INSIDE_LITERAL");break;case"-":C.pop(),C.push(se),C.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":O=oe,C.pop(),C.push(se),C.push("INSIDE_NUMBER");break;case"{":O=oe,C.pop(),C.push(se),C.push("INSIDE_OBJECT_START");break;case"[":O=oe,C.pop(),C.push(se),C.push("INSIDE_ARRAY_START")}}function te(z,oe){switch(z){case",":C.pop(),C.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":O=oe,C.pop()}}function re(z,oe){switch(z){case",":C.pop(),C.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":O=oe,C.pop()}}for(let z=0;z<M.length;z++){let oe=M[z];switch(C[C.length-1]){case"ROOT":H(oe,z,"FINISH");break;case"INSIDE_OBJECT_START":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_KEY");break;case"}":O=z,C.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_KEY")}break;case"INSIDE_OBJECT_KEY":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_AFTER_KEY")}break;case"INSIDE_OBJECT_AFTER_KEY":switch(oe){case":":C.pop(),C.push("INSIDE_OBJECT_BEFORE_VALUE")}break;case"INSIDE_OBJECT_BEFORE_VALUE":H(oe,z,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":te(oe,z);break;case"INSIDE_STRING":switch(oe){case'"':C.pop(),O=z;break;case"\\":C.push("INSIDE_STRING_ESCAPE");break;default:O=z}break;case"INSIDE_ARRAY_START":switch(oe){case"]":O=z,C.pop();break;default:O=z,H(oe,z,"INSIDE_ARRAY_AFTER_VALUE")}break;case"INSIDE_ARRAY_AFTER_VALUE":switch(oe){case",":C.pop(),C.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":O=z,C.pop();break;default:O=z}break;case"INSIDE_ARRAY_AFTER_COMMA":H(oe,z,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":if(C.pop(),oe==="u")W=0,C.push("INSIDE_STRING_UNICODE_ESCAPE");else O=z;break;case"INSIDE_STRING_UNICODE_ESCAPE":if(ee(oe)){if(W++,W===4)C.pop(),O=z}break;case"INSIDE_NUMBER":switch(oe){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":O=z;break;case"e":case"E":case"-":case".":break;case",":if(C.pop(),C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z);if(C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);break;case"}":if(C.pop(),C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);break;case"]":if(C.pop(),C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z);break;default:C.pop()}break;case"INSIDE_LITERAL":{let se=M.substring(F,z+1);if(!"false".startsWith(se)&&!"true".startsWith(se)&&!"null".startsWith(se)){if(C.pop(),C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);else if(C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z)}else O=z;break}}}let ne=M.slice(0,O+1);for(let z=C.length-1;z>=0;z--)switch(C[z]){case"INSIDE_STRING":ne+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":ne+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":ne+="]";break;case"INSIDE_LITERAL":{let oe=M.substring(F,M.length);if("true".startsWith(oe))ne+="true".slice(oe.length);else if("false".startsWith(oe))ne+="false".slice(oe.length);else if("null".startsWith(oe))ne+="null".slice(oe.length)}}return ne}async function _m(M){if(M===void 0)return{value:void 0,state:"undefined-input"};let C=await J({text:M});if(C.success)return{value:C.value,state:"successful-parse"};if(C=await J({text:Rm(M)}),C.success)return{value:C.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var An=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:M}){return M},async parsePartialOutput({text:M}){return{partial:M}},createElementStreamTransform(){}});var kn=Symbol("ai-sdk-tool-call-input-schema-input");function Fl(M,C){return Object.defineProperty(M,kn,{value:C}),M}function Kn(M){return kn in M?{value:M[kn]}:void 0}async function Gl({toolCall:M,tools:C,repairToolCall:O,refineToolInput:F,messages:W,instructions:ee,abortSignal:H}){try{if(C==null){if(M.providerExecuted&&M.dynamic)return await Do({toolCall:await Vl(M),refineToolInput:F});throw new Mn({toolName:M.toolName})}try{return await Do({toolCall:await Ci({toolCall:M,tools:C}),refineToolInput:F})}catch(te){if(O==null||!(Mn.isInstance(te)||Go.isInstance(te)))throw te;let re=null;try{H?.throwIfAborted(),re=await Am({promise:O({toolCall:M,tools:C,inputSchema:async({toolName:z})=>{let oe=et(C,z)?.inputSchema;return await ze(oe).jsonSchema},instructions:ee,system:ee,messages:W,error:te,abortSignal:H}),abortSignal:H})}catch(z){throw H?.throwIfAborted(),new jp({cause:z,originalError:te})}if(re==null)throw te;let ne=await Do({toolCall:await Ci({toolCall:re,tools:C}),refineToolInput:F});return H?.throwIfAborted(),ne}}catch(te){H?.throwIfAborted();let re=await J({text:M.input}),ne=re.success?re.value:M.input,z=et(C,M.toolName);return{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:ne,dynamic:!0,invalid:!0,error:te,title:z?.title,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...z?.metadata!=null?{toolMetadata:z.metadata}:{}}}}async function Am({promise:M,abortSignal:C}){if(C==null)return await M;return await new Promise((O,F)=>{let W=()=>{C.removeEventListener("abort",ee)},ee=()=>{W(),F(C.reason)};if(Promise.resolve(M).then((H)=>{W(),O(H)}).catch((H)=>{W(),F(H)}),C.addEventListener("abort",ee,{once:!0}),C.aborted)ee()})}async function Do({toolCall:M,refineToolInput:C}){let O=et(C,M.toolName);if(O==null)return M;let F={...M,input:await O(M.input)},W=Kn(M);return W==null?F:Fl(F,W.value)}async function Vl(M){let C=M.input.trim()===""?{success:!0,value:{}}:await J({text:M.input});if(C.success===!1)throw new Go({toolName:M.toolName,toolInput:M.input,cause:C.error});return{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:C.value,providerExecuted:!0,dynamic:!0,providerMetadata:M.providerMetadata}}async function Ci({toolCall:M,tools:C}){let O=M.toolName,F=et(C,O);if(F==null){if(M.providerExecuted&&M.dynamic)return await Vl(M);throw new Mn({toolName:M.toolName,availableTools:Object.keys(C)})}let W=ze(F.inputSchema),ee=M.input.trim()===""?await j({value:{},schema:W}):await J({text:M.input,schema:W});if(ee.success===!1)throw new Go({toolName:O,toolInput:M.input,cause:ee.error});return Fl(F.type==="dynamic"?{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:ee.value,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...F.metadata!=null?{toolMetadata:F.metadata}:{},dynamic:!0,title:F.title}:{type:"tool-call",toolCallId:M.toolCallId,toolName:O,input:ee.value,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...F.metadata!=null?{toolMetadata:F.metadata}:{},title:F.title},ee.rawValue)}function Bl({callSettings:M,stepSettings:C}){return $o({maxOutputTokens:C?.maxOutputTokens??M.maxOutputTokens,temperature:C?.temperature??M.temperature,topP:C?.topP??M.topP,topK:C?.topK??M.topK,presencePenalty:C?.presencePenalty??M.presencePenalty,frequencyPenalty:C?.frequencyPenalty??M.frequencyPenalty,stopSequences:C?.stopSequences??M.stopSequences,seed:C?.seed??M.seed,reasoning:C?.reasoning??M.reasoning})}async function Jn({tools:M,toolCall:C,toolApproval:O,messages:F,toolsContext:W,runtimeContext:ee}){if(O!=null&&typeof O==="function")return Ri(await O({toolCall:C,tools:M,toolsContext:W,messages:F,runtimeContext:ee}));let H=C.toolName,te=et(M,H),re=C.input,ne=et(O,H);if(ne!=null)return Ri(typeof ne==="function"?await ne(re,{toolCallId:C.toolCallId,messages:F,toolContext:await lo({toolName:H,context:et(W,H),contextSchema:te?.contextSchema}),runtimeContext:ee}):ne);if(te?.needsApproval==null)return{type:"not-applicable"};return(typeof te.needsApproval==="function"?await te.needsApproval(re,{toolCallId:C.toolCallId,messages:F,context:await lo({toolName:H,context:et(W,H),contextSchema:te?.contextSchema})}):te.needsApproval)?{type:"user-approval"}:{type:"not-applicable"}}function Ri(M){return M===void 0?{type:"not-applicable"}:typeof M==="string"?{type:M}:M}function Aa({context:M,includeContext:C}){if(M==null)return{};return Object.fromEntries(Object.entries(M).filter(([O])=>C?.[O]===!0))}function no({toolsContext:M,includeToolsContext:C}){if(C==null)return{};return Object.fromEntries(Object.entries(M).map(([O,F])=>[O,Uo({toolName:O,toolContext:F,includeToolsContext:C})]))}function Uo({toolName:M,toolContext:C,includeToolsContext:O}){let F=O?.[M];return Aa({context:C,includeContext:F})}function _i(...M){return async(C)=>{await Promise.allSettled(M.map(async(O)=>{await O?.(C)}))}}var Wl="ai:telemetry";function Hl(){return typeof process<"u"&&process.release?.name==="node"}var Tn;async function km(){if(!Hl())return;if(Tn==null)Tn=Promise.resolve(Pn("node:diagnostics_channel"));return Tn}function Pn(M){let C=globalThis.process;try{return C?.getBuiltinModule?.(M)}catch{return}}async function Ai(M,C){let O=(await km())?.tracingChannel?.(Wl);if(O==null||O.hasSubscribers===!1)return await C();let F,W,ee,H=!1,te=!1,re=()=>{try{F=Promise.resolve(C())}catch(ne){F=Promise.reject(ne)}return F=F.then((ne)=>(W=ne,H=!0,ne),(ne)=>{throw ee=ne,te=!0,ne}),F};try{return await O.tracePromise(re,M)}catch{if(te)throw ee;if(H)return W;if(F!=null)return await F;return await C()}}function Pm({message:M,completion:C}){if(!Hl()){Promise.resolve(C).catch(()=>{});return}let O=Pn("node:diagnostics_channel"),F=Pn("node:async_hooks"),W=O?.tracingChannel?.(Wl);if(W==null||W.hasSubscribers===!1||F==null){Promise.resolve(C).catch(()=>{});return}let ee=M,H,te=!1,re=(z)=>{try{z()}catch{}},ne=({result:z,error:oe})=>{if(te)return;if(te=!0,oe!==void 0)ee.error=oe,re(()=>W.error.publish(ee));if(z!==void 0)ee.result=z;re(()=>W.asyncEnd.publish(ee))};return re(()=>{W.start.runStores(ee,()=>{H=new F.AsyncResource("ai.telemetry")})}),re(()=>W.end.publish(ee)),Promise.resolve(C).then((z)=>ne({result:z}),(z)=>ne({error:z})),{run:(z)=>H==null?z():H.runInAsyncScope(z)}}function Om(){return globalThis.AI_SDK_TELEMETRY_INTEGRATIONS??[]}function Za(M,C,O=!1){let F=Object.assign(Object.create(Object.getPrototypeOf(M)),M,{recordInputs:C.recordInputs,recordOutputs:C.recordOutputs,functionId:C.functionId,aiVersion:Ln});if(O&&M!=null&&typeof M==="object"&&"runtimeContext"in M)F.runtimeContext=Aa({context:M.runtimeContext,includeContext:C.includeRuntimeContext});if(O&&M!=null&&typeof M==="object"){if("toolsContext"in M)F.toolsContext=no({toolsContext:M.toolsContext,includeToolsContext:C.includeToolsContext});else if("toolContext"in M&&M.toolContext!=null&&"toolCall"in M&&M.toolCall!=null&&typeof M.toolCall==="object"&&"toolName"in M.toolCall)F.toolContext=Uo({toolName:M.toolCall.toolName,toolContext:M.toolContext,includeToolsContext:C.includeToolsContext})}return F}function jm({telemetry:M}){if(M?.isEnabled===!1)return{};let C=M?.integrations,O=C!=null?Ne(C):Om(),F={recordInputs:M?.recordInputs,recordOutputs:M?.recordOutputs,functionId:M?.functionId,includeRuntimeContext:M?.includeRuntimeContext,includeToolsContext:M?.includeToolsContext},W=(ne,z)=>{let oe=O.map((de)=>{let me=de[ne]??(z==null?void 0:de[z]);return typeof me==="function"?me.bind(de):void 0}).filter(Boolean).map((de)=>(me)=>de(Za(me,F)));if(oe.length===0)return;let se=_i(...oe);return async(de)=>{await se(de)}},ee=W("onStepEnd"),H=W("onStepFinish"),te=O.map((ne)=>ne.executeLanguageModelCall?.bind(ne)).filter(Boolean),re=O.map((ne)=>ne.executeTool?.bind(ne)).filter(Boolean);return{runInTracingChannelSpan:async({type:ne,event:z,execute:oe})=>await Ai({type:ne,event:Za(z,F,!0)},oe),startTracingChannelContext:({type:ne,event:z,completion:oe})=>Pm({message:{type:ne,event:Za(z,F,!0)},completion:oe}),onStart:W("onStart"),onStepStart:W("onStepStart"),onLanguageModelCallStart:W("onLanguageModelCallStart"),onLanguageModelCallEnd:W("onLanguageModelCallEnd"),onToolExecutionStart:W("onToolExecutionStart"),onToolExecutionEnd:W("onToolExecutionEnd"),onStepEnd:ee==null&&H==null?void 0:_i(ee,H),onStepError:W("onStepError"),onObjectStepStart:W("onObjectStepStart"),onObjectStepEnd:W("onObjectStepEnd"),onEmbedStart:W("onEmbedStart"),onEmbedEnd:W("onEmbedEnd"),onRerankStart:W("onRerankStart"),onRerankEnd:W("onRerankEnd"),experimental_onDecideStart:W("experimental_onDecideStart","experimental_onEvaluateStart"),experimental_onDecisionModelCallStart:W("experimental_onDecisionModelCallStart","experimental_onEvaluationModelCallStart"),experimental_onDecisionModelCallEnd:W("experimental_onDecisionModelCallEnd","experimental_onEvaluationModelCallEnd"),experimental_onDecideEnd:W("experimental_onDecideEnd","experimental_onEvaluateEnd"),experimental_onStreamTranscriptionStart:W("experimental_onStreamTranscriptionStart"),experimental_onStreamTranscriptionEnd:W("experimental_onStreamTranscriptionEnd"),onEnd:W("onEnd"),onAbort:W("onAbort"),onError:W("onError"),executeLanguageModelCall:async({execute:ne,...z})=>{let oe=Za(z,F),se=ne;for(let de of te){let me=se;se=()=>de({...oe,execute:me})}return await Ai({type:"languageModelCall",event:oe},se)},executeTool:async({execute:ne,...z})=>{let oe=Za(z,F),se=ne;for(let de of re){let me=se;se=()=>de({...oe,execute:me})}return await se()}}}function Nm(M){let C=M.map((O)=>("text"in O)?O.text:"").join("");return C.length>0?C:void 0}var Yn=class{constructor({callId:M,stepNumber:C,provider:O,modelId:F,runtimeContext:W,toolsContext:ee,content:H,finishReason:te,rawFinishReason:re,usage:ne,performance:z,warnings:oe,request:se,response:de,providerMetadata:me,steeringMessages:Le}){if(this.callId=M,this.stepNumber=C,this.model={provider:O,modelId:F},this.runtimeContext=W,this.toolsContext=ee,this.content=H,this.finishReason=te,this.rawFinishReason=re,this.usage=ne,this.performance=z,this.warnings=oe,this.request=se,this.response=de,this.providerMetadata=me,Le!=null&&Le.length>0)this.experimental_steeringMessages=Le}get text(){return this.content.filter((M)=>M.type==="text").map((M)=>M.text).join("")}get reasoning(){return Mm(this.content.filter((M)=>M.type==="reasoning"||M.type==="reasoning-file"))}get reasoningText(){return Nm(this.reasoning)}get files(){return this.content.filter((M)=>M.type==="file").map((M)=>M.file)}get sources(){return this.content.filter((M)=>M.type==="source")}get toolCalls(){return this.content.filter((M)=>M.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((M)=>M.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((M)=>M.dynamic===!0)}get toolResults(){return this.content.filter((M)=>M.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((M)=>M.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((M)=>M.dynamic===!0)}};function eo({step:M,includeRuntimeContext:C,includeToolsContext:O}){return new Yn({callId:M.callId,stepNumber:M.stepNumber,provider:M.model.provider,modelId:M.model.modelId,runtimeContext:Aa({context:M.runtimeContext,includeContext:C}),toolsContext:no({toolsContext:M.toolsContext,includeToolsContext:O}),content:M.content,finishReason:M.finishReason,rawFinishReason:M.rawFinishReason,usage:M.usage,performance:M.performance,warnings:M.warnings,request:M.request,response:M.response,providerMetadata:M.providerMetadata,steeringMessages:M.experimental_steeringMessages})}function zl({telemetry:M,includeRuntimeContext:C,includeToolsContext:O}){let F=jm({telemetry:M}),W=(ee)=>({...ee,runtimeContext:Aa({context:ee.runtimeContext,includeContext:C}),steps:ee.steps.map((H)=>eo({step:H,includeRuntimeContext:C,includeToolsContext:O})),toolsContext:no({toolsContext:ee.toolsContext,includeToolsContext:O})});return{...F,onStart:(ee)=>F.onStart?.({...ee,runtimeContext:Aa({context:ee.runtimeContext,includeContext:C}),toolsContext:no({toolsContext:ee.toolsContext,includeToolsContext:O})}),onStepStart:(ee)=>F.onStepStart?.(W(ee)),onStepEnd:(ee)=>F.onStepEnd?.(eo({step:ee,includeRuntimeContext:C,includeToolsContext:O})),onStepFinish:(ee)=>F.onStepEnd?.(eo({step:ee,includeRuntimeContext:C,includeToolsContext:O})),onStepError:(ee)=>F.onStepError?.(W(ee)),onEnd:(ee)=>F.onEnd?.(((H)=>({...ee,runtimeContext:Aa({context:ee.runtimeContext,includeContext:C}),steps:H,finalStep:H.at(-1),toolsContext:no({toolsContext:ee.toolsContext,includeToolsContext:O})}))(ee.steps.map((H)=>eo({step:H,includeRuntimeContext:C,includeToolsContext:O})))),onAbort:(ee)=>F.onAbort?.({...ee,steps:ee.steps.map((H)=>eo({step:H,includeRuntimeContext:C,includeToolsContext:O}))}),onToolExecutionStart:(ee)=>F.onToolExecutionStart?.({...ee,toolContext:Uo({toolName:ee.toolCall.toolName,toolContext:ee.toolContext,includeToolsContext:O})}),onToolExecutionEnd:(ee)=>F.onToolExecutionEnd?.({...ee,toolContext:Uo({toolName:ee.toolCall.toolName,toolContext:ee.toolContext,includeToolsContext:O})})}}var Bh=V({prefix:"steer",size:24}),Dm=Symbol.for("vercel.ai.steering.start");function Kl(M){if(M==null)return;let C=M[Dm];if(typeof C!=="function")throw new vr({parameter:"experimental_steering",value:M,message:"The steering object must be created with experimental_createSteering()."});return C.call(M)}function Jl(M){return({steps:C})=>C.length===M}async function Yl({stopConditions:M,steps:C}){return(await Promise.all(M.map((O)=>O({steps:C})))).some((O)=>O)}function On(M,C){return M==null&&C==null?void 0:(M??0)+(C??0)}function co(M,C){if(M===C)return!0;if(M==null||C==null)return!1;if(typeof M!=="object"&&typeof C!=="object")return M===C;if(M.constructor!==C.constructor)return!1;if(M instanceof Date&&C instanceof Date)return M.getTime()===C.getTime();if(Array.isArray(M)){if(M.length!==C.length)return!1;for(let W=0;W<M.length;W++)if(!co(M[W],C[W]))return!1;return!0}let O=Object.keys(M),F=Object.keys(C);if(O.length!==F.length)return!1;for(let W of O){if(!F.includes(W))return!1;if(!co(M[W],C[W]))return!1}return!0}async function Ql({content:M,tools:C}){let O=[],F=new Map,W=[];for(let H of M){if(H.type==="source")continue;if((H.type==="tool-result"||H.type==="tool-error")&&!H.providerExecuted)continue;if(H.type==="text"&&H.text.length===0)continue;switch(H.type){case"text":W.push({type:"text",text:H.text,providerOptions:H.providerMetadata});break;case"custom":W.push({type:"custom",kind:H.kind,providerOptions:H.providerMetadata});break;case"reasoning":W.push({type:"reasoning",text:H.text,providerOptions:H.providerMetadata});break;case"file":W.push({type:"file",data:H.file.base64,mediaType:H.file.mediaType,providerOptions:H.providerMetadata});break;case"reasoning-file":W.push({type:"reasoning-file",data:H.file.base64,mediaType:H.file.mediaType,providerOptions:H.providerMetadata});break;case"tool-call":if(!F.has(H.toolCallId))F.set(H.toolCallId,F.size);W.push({type:"tool-call",toolCallId:H.toolCallId,toolName:H.toolName,input:H.invalid&&typeof H.input!=="object"?{}:H.input,providerExecuted:H.providerExecuted,providerOptions:H.providerMetadata});break;case"tool-result":{let re=await sa({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.output,errorMode:"none"});W.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:re,providerOptions:H.providerMetadata});break}case"tool-error":{let re=await sa({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.error,errorMode:"json"});W.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:re,providerOptions:H.providerMetadata});break}case"tool-approval-request":let te=Kn(H.toolCall);W.push({type:"tool-approval-request",approvalId:H.approvalId,toolCallId:H.toolCall.toolCallId,...H.reason!=null?{reason:H.reason}:{},isAutomatic:H.isAutomatic,...H.signature!=null?{signature:H.signature}:{},...te!=null&&!co(te.value,H.toolCall.input)?{inputSchemaInput:te.value}:{}})}}if(W.length>0)O.push({role:"assistant",content:W});let ee=[];for(let H of M){if(H.type!=="tool-approval-response"&&H.type!=="tool-result"&&H.type!=="tool-error")continue;if(H.type==="tool-approval-response"){if(ee.push({type:"tool-approval-response",approvalId:H.approvalId,approved:H.approved,reason:H.reason,providerExecuted:H.providerExecuted}),H.approved===!1)ee.push({type:"tool-result",toolCallId:H.toolCall.toolCallId,toolName:H.toolCall.toolName,output:{type:"execution-denied",reason:H.reason}});continue}if(H.providerExecuted)continue;let te=await sa({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.type==="tool-result"?H.output:H.error,errorMode:H.type==="tool-error"?"text":"none"});ee.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:te,...H.providerMetadata!=null?{providerOptions:H.providerMetadata}:{}})}if(ee.length>0)O.push({role:"tool",content:qm({toolResultContent:ee,toolCallOrder:F})});return O}function qm({toolResultContent:M,toolCallOrder:C}){let O=M.filter((W)=>W.type==="tool-result").map((W,ee)=>({part:W,index:ee})).sort((W,ee)=>{let H=C.get(W.part.toolCallId),te=C.get(ee.part.toolCallId);if(H==null&&te==null)return W.index-ee.index;if(H==null)return 1;if(te==null)return-1;return H-te||W.index-ee.index}).map(({part:W})=>W),F=0;return M.map((W)=>W.type==="tool-result"?O[F++]:W)}var $m=new TextEncoder;function jn(M){if(M===null||M===void 0)return JSON.stringify(M);if(typeof M!=="object")return JSON.stringify(M);if(Array.isArray(M))return`[${M.map((C)=>C===void 0?"null":jn(C)).join(",")}]`;return`{${Object.keys(M).sort().map((C)=>`${JSON.stringify(C)}:${jn(M[C])}`).join(",")}}`}function Xl(M){return X(M).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}async function Zl(M){let C=await crypto.subtle.digest("SHA-256",$m.encode(jn(M)));return Xl(new Uint8Array(C))}var Qn=new TextEncoder;function Um(M){return N(M)}async function ec(M){let C=typeof M==="string"?Qn.encode(M):M;return crypto.subtle.importKey("raw",C,{name:"HMAC",hash:"SHA-256"},!1,["sign","verify"])}function tc(M,C,O,F){return Qn.encode(JSON.stringify(["ai-sdk-tool-approval-v1",M,C,O,F]))}function Lm(M,C,O,F){return Qn.encode(`${M}
|
|
30
|
+
`),{name:"GatewayAuthenticationError"})}function Al(M){return{inputTokens:M.inputTokens.total,inputTokenDetails:{noCacheTokens:M.inputTokens.noCache,cacheReadTokens:M.inputTokens.cacheRead,cacheWriteTokens:M.inputTokens.cacheWrite},outputTokens:M.outputTokens.total,outputTokenDetails:{textTokens:M.outputTokens.text,reasoningTokens:M.outputTokens.reasoning},totalTokens:Cr(M.inputTokens.total,M.outputTokens.total),raw:M.raw}}function Ro(){return{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0,raw:void 0}}function kl(M,C){let O=Ei(M)?C.raw:Ei(C)?M.raw:void 0;return{inputTokens:Cr(M.inputTokens,C.inputTokens),inputTokenDetails:{noCacheTokens:Cr(M.inputTokenDetails?.noCacheTokens,C.inputTokenDetails?.noCacheTokens),cacheReadTokens:Cr(M.inputTokenDetails?.cacheReadTokens,C.inputTokenDetails?.cacheReadTokens),cacheWriteTokens:Cr(M.inputTokenDetails?.cacheWriteTokens,C.inputTokenDetails?.cacheWriteTokens)},outputTokens:Cr(M.outputTokens,C.outputTokens),outputTokenDetails:{textTokens:Cr(M.outputTokenDetails?.textTokens,C.outputTokenDetails?.textTokens),reasoningTokens:Cr(M.outputTokenDetails?.reasoningTokens,C.outputTokenDetails?.reasoningTokens)},totalTokens:Cr(M.totalTokens,C.totalTokens),...O==null?{}:{raw:O}}}function Ei(M){return M.inputTokens==null&&M.inputTokenDetails?.noCacheTokens==null&&M.inputTokenDetails?.cacheReadTokens==null&&M.inputTokenDetails?.cacheWriteTokens==null&&M.outputTokens==null&&M.outputTokenDetails?.textTokens==null&&M.outputTokenDetails?.reasoningTokens==null&&M.totalTokens==null&&M.raw==null}function Cr(M,C){return M==null&&C==null?void 0:(M??0)+(C??0)}function et(M,C){return M!=null&&Object.hasOwn(M,C)?M[C]:void 0}function Wn(...M){let C=Pe(...M).map((O)=>typeof O==="number"?AbortSignal.timeout(O):O);return C.length===0?void 0:C.length===1?C[0]:AbortSignal.any(C)}function so(){return globalThis?.performance?.now()??Date.now()}async function st(M){await Promise.all(qe(M.callbacks).map(async(C)=>{try{await C?.(M.event)}catch{}}))}function ym({error:M,exponentialBackoffDelay:C}){let O=w.isInstance(M)?M.responseHeaders:w.isInstance(M.cause)?M.cause.responseHeaders:void 0;if(!O)return C;let L,W=O["retry-after-ms"];if(W){let H=parseFloat(W);if(!Number.isNaN(H))L=H}let ee=O["retry-after"];if(ee&&L===void 0){let H=parseFloat(ee);if(!Number.isNaN(H))L=H*1000;else L=Date.parse(ee)-Date.now()}if(L!=null&&!Number.isNaN(L)&&0<=L&&(L<60000||L<C))return L;return C}var vm=({maxRetries:M=2,initialDelayInMs:C=2000,backoffFactor:O=2,abortSignal:L,additionalRetryableError:W}={})=>ln({maxRetries:M,initialDelayInMs:C,backoffFactor:O,abortSignal:L,shouldRetry:async(ee)=>ee instanceof Error&&(w.isInstance(ee)&&ee.isRetryable===!0||ft.isInstance(ee)&&ee.isRetryable===!0)||W!=null&&await W(ee),getDelayInMs:({error:ee,exponentialBackoffDelay:H})=>ym({error:ee,exponentialBackoffDelay:H}),createRetryError:({message:ee,reason:H,errors:te})=>new Vp({message:ee,reason:H,errors:te})});function Oo({maxRetries:M,abortSignal:C,additionalRetryableError:O,parameter:L="maxRetries",defaultMaxRetries:W=2}){if(M!=null){if(!Number.isInteger(M))throw new yr({parameter:L,value:M,message:`${L} must be an integer`});if(M<0)throw new yr({parameter:L,value:M,message:`${L} must be >= 0`})}let ee=M??W;return{maxRetries:ee,retry:vm({maxRetries:ee,abortSignal:C,additionalRetryableError:O})}}function jo({abortController:M,label:C,timeoutMs:O}){if(M==null||O==null)return;return setTimeout(()=>M.abort(new DOMException(`${C} timeout of ${O}ms exceeded`,"TimeoutError")),O)}function Gr({tokens:M,durationMs:C}){let O=1000*(M??0)/(C??0);return Number.isFinite(O)?O:0}function Pl({messages:M}){let C=M.at(-1);if(C?.role!="tool")return{approvedToolApprovals:[],deniedToolApprovals:[]};let O=Object.create(null),L=Object.create(null),W=0;for(let oe of M)if(oe.role==="assistant"&&typeof oe.content!=="string"){let se=oe.content;for(let de of se)if(de.type==="tool-call")O[de.toolCallId]=de,L[de.toolCallId]=W++}let ee=Object.create(null);for(let oe of M)if(oe.role==="assistant"&&typeof oe.content!=="string"){let se=oe.content;for(let de of se)if(de.type==="tool-approval-request")ee[de.approvalId]=de}let H=Object.create(null);for(let oe of C.content)if(oe.type==="tool-result")H[oe.toolCallId]=oe;let te=[],re=[],ne=new Set,z=C.content.filter((oe)=>oe.type==="tool-approval-response");for(let oe of z){let se=ee[oe.approvalId];if(se==null)throw new vp({approvalId:oe.approvalId});let de=H[se.toolCallId];if(de!=null&&(oe.approved||de.output.type!=="execution-denied"))continue;let me=O[se.toolCallId];if(me==null)throw new $n({toolCallId:se.toolCallId,approvalId:se.approvalId});if(ne.has(me.toolCallId))continue;ne.add(me.toolCallId);let $e={approvalRequest:se,approvalResponse:oe,toolCall:me,...de!=null?{existingToolResult:de}:{}};if(oe.approved)te.push($e);else re.push($e)}return te.sort((oe,se)=>L[oe.toolCall.toolCallId]-L[se.toolCall.toolCallId]),{approvedToolApprovals:te,deniedToolApprovals:re}}var Hn=class{constructor({data:M,mediaType:C,providerMetadata:O}){let L=M instanceof Uint8Array;this.base64Data=L?void 0:M,this.uint8ArrayData=L?M:void 0,this.mediaType=C,this.providerMetadata=O}get base64(){if(this.base64Data==null)this.base64Data=X(this.uint8ArrayData);return this.base64Data}get uint8Array(){if(this.uint8ArrayData==null)this.uint8ArrayData=j(this.base64Data);return this.uint8ArrayData}},wm=class extends Hn{constructor(...M){super(...M);this.type="file"}};async function Ol({data:M,abortSignal:C,cache:O}){if(M.type==="data")return M.data;let L=O?.get(M);if(L!=null)return L;let W=(await Fn({url:M.url,abortSignal:C})).data;return O?.set(M,W),W}async function Mi({content:M,toolCalls:C,toolOutputs:O,toolApprovalRequests:L,toolApprovalResponses:W,tools:ee,abortSignal:H,generatedFileDataCache:te}){let re=[],ne=[],z=[],oe=new Set(W.map((se)=>se.toolCall.toolCallId));for(let se of M)switch(se.type){case"text":case"reasoning":case"custom":case"source":re.push(se);break;case"file":case"reasoning-file":re.push({type:se.type,file:new Hn({data:await Ol({data:se.data,abortSignal:H,cache:te}),mediaType:se.mediaType}),...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{}});break;case"tool-call":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null)throw Error(`Tool call ${se.toolCallId} not found.`);re.push(de);break}case"tool-result":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null){let me=et(ee,se.toolName);if(!(me?.type==="provider"&&me.supportsDeferredResults))throw Error(`Tool call ${se.toolCallId} not found.`);if(se.isError)re.push({type:"tool-error",toolCallId:se.toolCallId,toolName:se.toolName,input:void 0,error:se.result,providerExecuted:!0,dynamic:se.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...me?.metadata!=null?{toolMetadata:me.metadata}:{}});else re.push({type:"tool-result",toolCallId:se.toolCallId,toolName:se.toolName,input:void 0,output:se.result,providerExecuted:!0,dynamic:se.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...me?.metadata!=null?{toolMetadata:me.metadata}:{}});break}if(se.isError)re.push({type:"tool-error",toolCallId:se.toolCallId,toolName:se.toolName,input:de.input,error:se.result,providerExecuted:!0,dynamic:de.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...de.toolMetadata!=null?{toolMetadata:de.toolMetadata}:{}});else re.push({type:"tool-result",toolCallId:se.toolCallId,toolName:se.toolName,input:de.input,output:se.result,providerExecuted:!0,dynamic:de.dynamic,...se.providerMetadata!=null?{providerMetadata:se.providerMetadata}:{},...de.toolMetadata!=null?{toolMetadata:de.toolMetadata}:{}});break}case"tool-approval-request":{let de=C.find((me)=>me.toolCallId===se.toolCallId);if(de==null)throw new $n({toolCallId:se.toolCallId,approvalId:se.approvalId});re.push({type:"tool-approval-request",approvalId:se.approvalId,toolCall:de});break}}for(let se of O)if(oe.has(se.toolCallId))ne.push(se);else z.push(se);return[...re,...z,...L,...W,...ne]}function jl({tools:M,toolCallers:C}){if(M==null||C==null)return;let O={};for(let[L,W]of Object.entries(C)){if(!Object.prototype.hasOwnProperty.call(M,L))throw new yr({parameter:"experimental_toolCallers",value:C,message:`unknown tool "${L}".`});if(W!=null)O[L]=W}return O}function Nl({tools:M,toolCallers:C}){if(M==null||C==null)return{executionTools:M,modelTools:M,toolCallerMessages:[]};let O={...M},L={...M},W=new Map,ee=[];for(let[H,te]of Object.entries(C)){let re=O[H];if(re==null)continue;let ne=!1,z=!1,oe=re;for(let se of te){if(se==="AI_SDK_DIRECT_TOOL_CALL"){ne=!0;continue}let de=Mt(O[se]);if(de==null)continue;if(de.type==="provider")z=!0,oe={...oe,providerOptions:de.prepareProviderOptions(oe.providerOptions)};else{let me=W.get(se)??{};me[H]=oe,W.set(se,me)}}if(O[H]=oe,ne||z)L[H]=oe;else delete L[H]}for(let[H,te]of Object.entries(O)){let re=Mt(te);if(re?.type!=="local")continue;let ne=W.get(H)??{},z=re.bind(ne);if(O[H]=z,Object.prototype.hasOwnProperty.call(L,H))if(re.prepareModelMessage==null)L[H]=z;else{let oe=re.prepareModelMessage(ne);if(oe!=null)ee.push({role:"user",content:oe})}}return{executionTools:O,modelTools:L,toolCallerMessages:ee}}function Dl({messages:M,toolCallerMessages:C}){if(C.length===0)return M;let O=M.findLast((ee)=>ee.role==="user"&&typeof ee.content==="string")?.content,L=new Set(O==null?[]:[O]),W=C.filter((ee)=>{if(typeof ee.content!=="string"||L.has(ee.content))return!1;return L.add(ee.content),!0});return W.length===0?M:[...M,...W]}var bm=Symbol.for("vercel.ai.toolSearch"),Sm=Symbol.for("vercel.ai.toolSearch.search"),Im=Symbol.for("vercel.ai.toolSearch.maxResults");function Tm(M){return M[Im]??5}function xm(M){return M[Sm]}function _o(M){return M[bm]===!0}function ql({tools:M,toolCallers:C}){let O=Object.entries(M??{}).filter(([,ee])=>ee.deferLoading||_o(ee));if(O.length===0)return(ee)=>ee;let L=new Set,W=(ee)=>et(C,ee)??["AI_SDK_DIRECT_TOOL_CALL"];for(let[ee,H]of O)if(W(ee).some((te)=>{if(te==="AI_SDK_DIRECT_TOOL_CALL")return!1;let re=Mt(M?.[te]);return re?.type!=="local"||re.prepareModelMessage==null})||_o(H)&&H.deferLoading)throw new yr({parameter:"tools",value:ee,message:`tool "${ee}" must be callable directly or through code mode with toolDiscovery: 'conversation'. The search tool itself must not defer loading.`});return(ee,{toolsContext:H={},experimental_sandbox:te}={})=>{if(ee==null)return;let re=Object.entries(ee);return Object.fromEntries(re.filter(([ne,z])=>!z.deferLoading||L.has(ne)).map(([ne,z])=>{if(!_o(z))return[ne,z];let oe=W(ne).filter((de)=>de==="AI_SDK_DIRECT_TOOL_CALL"||Object.hasOwn(ee,de)),se=re.filter(([de,me])=>me.deferLoading&&!_o(me)&&oe.some(($e)=>W(de).includes($e)));return[ne,{...z,execute:async({query:de})=>{let me=se.map(([we,le])=>{let ve=El({tool:le,toolName:we,toolsContext:H,experimental_sandbox:te});return{name:we,...ve==null?{}:{description:ve}}}),$e=new Map(me.map((we)=>[we.name,we])),Le=xm(z),be=[...new Set(In(de))],Ne=Le?await Le({query:de,tools:me.map((we)=>({...we}))}):me.map(({name:we,description:le})=>{let ve=In(we),Se=In(le??"");return{name:we,score:be.reduce((ce,Ie)=>ce+(ve.includes(Ie)?2:0)+(Se.includes(Ie)?1:0),0)}}).filter((we)=>we.score>0).sort((we,le)=>le.score-we.score).map((we)=>we.name),xe=[...new Set(Ne)].flatMap((we)=>{let le=$e.get(we);return le==null?[]:[le]}).slice(0,Tm(z));for(let{name:we}of xe)L.add(we);return{tools:xe}}}]}))}}function In(M){return M.replace(/([a-z\d])([A-Z])/g,"$1 $2").toLowerCase().match(/[\p{L}\p{N}]+/gu)??[]}async function io({toolName:M,context:C,contextSchema:O}){if(O==null)return C;return await x({value:C,schema:O,context:{field:"tool context",entityName:M}})}async function zn({toolCall:M,tools:C,toolsContext:O,callId:L,messages:W,abortSignal:ee,timeout:H,experimental_sandbox:te,onPreliminaryToolResult:re,onToolExecutionStart:ne,onToolExecutionEnd:z,executeToolInTelemetryContext:oe=async({execute:de})=>await de(),runInTracingChannelSpan:se=async({execute:de})=>await de()}){let{toolName:de,toolCallId:me,input:$e}=M,Le=et(C,de);if(!zt(Le))return;let be=await io({toolName:de,context:et(O,de),contextSchema:Le.contextSchema}),Ne={toolCall:M,messages:W,toolContext:be},xe={callId:L,...Ne};return await se({type:"executeTool",event:xe,execute:async()=>{let we;await st({event:xe,callbacks:ne});let le=Wn(ee,gm(H,de)),ve=0;try{await oe({callId:L,toolCallId:me,...Ne,execute:async()=>{let ce=so();try{let Ie=yn({tool:Le,input:$e,options:{toolCallId:me,messages:W,abortSignal:le,context:be,experimental_sandbox:te}});for await(let We of Ie)if(We.type==="preliminary")re?.({...M,type:"tool-result",output:We.output,preliminary:!0});else we=We.output}finally{ve=so()-ce}}})}catch(ce){let Ie={type:"tool-error",toolCallId:me,toolName:de,input:$e,error:ce,dynamic:Le.type==="dynamic",...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{}};return await st({event:{...xe,toolOutput:Ie,toolExecutionMs:ve},callbacks:z}),{output:Ie,toolExecutionMs:ve}}let Se={type:"tool-result",toolCallId:me,toolName:de,input:$e,output:we,dynamic:Le.type==="dynamic",...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{}};return await st({event:{...xe,toolOutput:Se,toolExecutionMs:ve},callbacks:z}),{output:Se,toolExecutionMs:ve}}})}function $l({tools:M,activeTools:C}){if(M==null||C==null)return M;return Object.fromEntries(Object.entries(M).filter(([O])=>C.includes(O)))}function Em(M){if(typeof M==="object"&&M!==null&&"type"in M)return M.type==="data"?M.data:M.url;return M}function Mm(M){return M.map((C)=>{if(C.type==="reasoning")return{type:"reasoning",text:C.text,...C.providerMetadata!=null?{providerOptions:C.providerMetadata}:{}};return{type:"reasoning-file",data:C.file.base64,mediaType:C.file.mediaType,...C.providerMetadata!=null?{providerOptions:C.providerMetadata}:{}}})}function Ul(M){return M.map((C)=>{if(C.type==="reasoning")return{type:"reasoning",text:C.text,...C.providerOptions!=null?{providerMetadata:C.providerOptions}:{}};let O=Em(C.data);return{type:"reasoning-file",file:new Hn({data:O instanceof ArrayBuffer?new Uint8Array(O):O instanceof URL?O.toString():O,mediaType:C.mediaType}),...C.providerOptions!=null?{providerMetadata:C.providerOptions}:{}}})}var Cm=class{constructor(M){this.initialResponseMessages=M.initialResponseMessages,this.steps=M.steps,this._output=M.output,this.totalUsage=M.totalUsage}get finalStep(){return this.steps.at(-1)}get content(){return this.steps.flatMap((M)=>M.content)}get text(){return this.finalStep.text}get files(){return this.steps.flatMap((M)=>M.files)}get reasoningText(){return this.finalStep.reasoningText}get reasoning(){return Ul(this.finalStep.reasoning)}get toolCalls(){return this.steps.flatMap((M)=>M.toolCalls)}get staticToolCalls(){return this.steps.flatMap((M)=>M.staticToolCalls)}get dynamicToolCalls(){return this.steps.flatMap((M)=>M.dynamicToolCalls)}get toolResults(){return this.steps.flatMap((M)=>M.toolResults)}get staticToolResults(){return this.steps.flatMap((M)=>M.staticToolResults)}get dynamicToolResults(){return this.steps.flatMap((M)=>M.dynamicToolResults)}get sources(){return this.steps.flatMap((M)=>M.sources)}get finishReason(){return this.finalStep.finishReason}get rawFinishReason(){return this.finalStep.rawFinishReason}get warnings(){return this.steps.flatMap((M)=>M.warnings??[])}get providerMetadata(){return this.finalStep.providerMetadata}get response(){return this.finalStep.response}get responseMessages(){return[...this.initialResponseMessages,...this.steps.flatMap((M)=>M.response.messages)]}get request(){return this.finalStep.request}get usage(){return this.totalUsage}get output(){if(this._output==null)throw new Po;return this._output}};function Ll(M){return M==="stop"||M==="tool-calls"}function Rm(M){let C=["ROOT"],O=-1,L=null,W=0;function ee(z){return z>="0"&&z<="9"||z>="A"&&z<="F"||z>="a"&&z<="f"}function H(z,oe,se){switch(z){case'"':O=oe,C.pop(),C.push(se),C.push("INSIDE_STRING");break;case"f":case"t":case"n":O=oe,L=oe,C.pop(),C.push(se),C.push("INSIDE_LITERAL");break;case"-":C.pop(),C.push(se),C.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":O=oe,C.pop(),C.push(se),C.push("INSIDE_NUMBER");break;case"{":O=oe,C.pop(),C.push(se),C.push("INSIDE_OBJECT_START");break;case"[":O=oe,C.pop(),C.push(se),C.push("INSIDE_ARRAY_START")}}function te(z,oe){switch(z){case",":C.pop(),C.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":O=oe,C.pop()}}function re(z,oe){switch(z){case",":C.pop(),C.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":O=oe,C.pop()}}for(let z=0;z<M.length;z++){let oe=M[z];switch(C[C.length-1]){case"ROOT":H(oe,z,"FINISH");break;case"INSIDE_OBJECT_START":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_KEY");break;case"}":O=z,C.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_KEY")}break;case"INSIDE_OBJECT_KEY":switch(oe){case'"':C.pop(),C.push("INSIDE_OBJECT_AFTER_KEY")}break;case"INSIDE_OBJECT_AFTER_KEY":switch(oe){case":":C.pop(),C.push("INSIDE_OBJECT_BEFORE_VALUE")}break;case"INSIDE_OBJECT_BEFORE_VALUE":H(oe,z,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":te(oe,z);break;case"INSIDE_STRING":switch(oe){case'"':C.pop(),O=z;break;case"\\":C.push("INSIDE_STRING_ESCAPE");break;default:O=z}break;case"INSIDE_ARRAY_START":switch(oe){case"]":O=z,C.pop();break;default:O=z,H(oe,z,"INSIDE_ARRAY_AFTER_VALUE")}break;case"INSIDE_ARRAY_AFTER_VALUE":switch(oe){case",":C.pop(),C.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":O=z,C.pop();break;default:O=z}break;case"INSIDE_ARRAY_AFTER_COMMA":H(oe,z,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":if(C.pop(),oe==="u")W=0,C.push("INSIDE_STRING_UNICODE_ESCAPE");else O=z;break;case"INSIDE_STRING_UNICODE_ESCAPE":if(ee(oe)){if(W++,W===4)C.pop(),O=z}break;case"INSIDE_NUMBER":switch(oe){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":O=z;break;case"e":case"E":case"-":case".":break;case",":if(C.pop(),C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z);if(C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);break;case"}":if(C.pop(),C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);break;case"]":if(C.pop(),C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z);break;default:C.pop()}break;case"INSIDE_LITERAL":{let se=M.substring(L,z+1);if(!"false".startsWith(se)&&!"true".startsWith(se)&&!"null".startsWith(se)){if(C.pop(),C[C.length-1]==="INSIDE_OBJECT_AFTER_VALUE")te(oe,z);else if(C[C.length-1]==="INSIDE_ARRAY_AFTER_VALUE")re(oe,z)}else O=z;break}}}let ne=M.slice(0,O+1);for(let z=C.length-1;z>=0;z--)switch(C[z]){case"INSIDE_STRING":ne+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":ne+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":ne+="]";break;case"INSIDE_LITERAL":{let oe=M.substring(L,M.length);if("true".startsWith(oe))ne+="true".slice(oe.length);else if("false".startsWith(oe))ne+="false".slice(oe.length);else if("null".startsWith(oe))ne+="null".slice(oe.length)}}return ne}async function _m(M){if(M===void 0)return{value:void 0,state:"undefined-input"};let C=await J({text:M});if(C.success)return{value:C.value,state:"successful-parse"};if(C=await J({text:Rm(M)}),C.success)return{value:C.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var An=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:M}){return M},async parsePartialOutput({text:M}){return{partial:M}},createElementStreamTransform(){}});var kn=Symbol("ai-sdk-tool-call-input-schema-input");function Fl(M,C){return Object.defineProperty(M,kn,{value:C}),M}function Kn(M){return kn in M?{value:M[kn]}:void 0}async function Gl({toolCall:M,tools:C,repairToolCall:O,refineToolInput:L,messages:W,instructions:ee,abortSignal:H}){try{if(C==null){if(M.providerExecuted&&M.dynamic)return await No({toolCall:await Vl(M),refineToolInput:L});throw new En({toolName:M.toolName})}try{return await No({toolCall:await Ci({toolCall:M,tools:C}),refineToolInput:L})}catch(te){if(O==null||!(En.isInstance(te)||Fo.isInstance(te)))throw te;let re=null;try{H?.throwIfAborted(),re=await Am({promise:O({toolCall:M,tools:C,inputSchema:async({toolName:z})=>{let oe=et(C,z)?.inputSchema;return await Be(oe).jsonSchema},instructions:ee,system:ee,messages:W,error:te,abortSignal:H}),abortSignal:H})}catch(z){throw H?.throwIfAborted(),new jp({cause:z,originalError:te})}if(re==null)throw te;let ne=await No({toolCall:await Ci({toolCall:re,tools:C}),refineToolInput:L});return H?.throwIfAborted(),ne}}catch(te){H?.throwIfAborted();let re=await J({text:M.input}),ne=re.success?re.value:M.input,z=et(C,M.toolName);return{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:ne,dynamic:!0,invalid:!0,error:te,title:z?.title,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...z?.metadata!=null?{toolMetadata:z.metadata}:{}}}}async function Am({promise:M,abortSignal:C}){if(C==null)return await M;return await new Promise((O,L)=>{let W=()=>{C.removeEventListener("abort",ee)},ee=()=>{W(),L(C.reason)};if(Promise.resolve(M).then((H)=>{W(),O(H)}).catch((H)=>{W(),L(H)}),C.addEventListener("abort",ee,{once:!0}),C.aborted)ee()})}async function No({toolCall:M,refineToolInput:C}){let O=et(C,M.toolName);if(O==null)return M;let L={...M,input:await O(M.input)},W=Kn(M);return W==null?L:Fl(L,W.value)}async function Vl(M){let C=M.input.trim()===""?{success:!0,value:{}}:await J({text:M.input});if(C.success===!1)throw new Fo({toolName:M.toolName,toolInput:M.input,cause:C.error});return{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:C.value,providerExecuted:!0,dynamic:!0,providerMetadata:M.providerMetadata}}async function Ci({toolCall:M,tools:C}){let O=M.toolName,L=et(C,O);if(L==null){if(M.providerExecuted&&M.dynamic)return await Vl(M);throw new En({toolName:M.toolName,availableTools:Object.keys(C)})}let W=Be(L.inputSchema),ee=M.input.trim()===""?await q({value:{},schema:W}):await J({text:M.input,schema:W});if(ee.success===!1)throw new Fo({toolName:O,toolInput:M.input,cause:ee.error});return Fl(L.type==="dynamic"?{type:"tool-call",toolCallId:M.toolCallId,toolName:M.toolName,input:ee.value,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...L.metadata!=null?{toolMetadata:L.metadata}:{},dynamic:!0,title:L.title}:{type:"tool-call",toolCallId:M.toolCallId,toolName:O,input:ee.value,providerExecuted:M.providerExecuted,providerMetadata:M.providerMetadata,...L.metadata!=null?{toolMetadata:L.metadata}:{},title:L.title},ee.rawValue)}function Bl({callSettings:M,stepSettings:C}){return qo({maxOutputTokens:C?.maxOutputTokens??M.maxOutputTokens,temperature:C?.temperature??M.temperature,topP:C?.topP??M.topP,topK:C?.topK??M.topK,presencePenalty:C?.presencePenalty??M.presencePenalty,frequencyPenalty:C?.frequencyPenalty??M.frequencyPenalty,stopSequences:C?.stopSequences??M.stopSequences,seed:C?.seed??M.seed,reasoning:C?.reasoning??M.reasoning})}async function Jn({tools:M,toolCall:C,toolApproval:O,messages:L,toolsContext:W,runtimeContext:ee}){if(O!=null&&typeof O==="function")return Ri(await O({toolCall:C,tools:M,toolsContext:W,messages:L,runtimeContext:ee}));let H=C.toolName,te=et(M,H),re=C.input,ne=et(O,H);if(ne!=null)return Ri(typeof ne==="function"?await ne(re,{toolCallId:C.toolCallId,messages:L,toolContext:await io({toolName:H,context:et(W,H),contextSchema:te?.contextSchema}),runtimeContext:ee}):ne);if(te?.needsApproval==null)return{type:"not-applicable"};return(typeof te.needsApproval==="function"?await te.needsApproval(re,{toolCallId:C.toolCallId,messages:L,context:await io({toolName:H,context:et(W,H),contextSchema:te?.contextSchema})}):te.needsApproval)?{type:"user-approval"}:{type:"not-applicable"}}function Ri(M){return M===void 0?{type:"not-applicable"}:typeof M==="string"?{type:M}:M}function _a({context:M,includeContext:C}){if(M==null)return{};return Object.fromEntries(Object.entries(M).filter(([O])=>C?.[O]===!0))}function oo({toolsContext:M,includeToolsContext:C}){if(C==null)return{};return Object.fromEntries(Object.entries(M).map(([O,L])=>[O,$o({toolName:O,toolContext:L,includeToolsContext:C})]))}function $o({toolName:M,toolContext:C,includeToolsContext:O}){let L=O?.[M];return _a({context:C,includeContext:L})}function _i(...M){return async(C)=>{await Promise.allSettled(M.map(async(O)=>{await O?.(C)}))}}var Wl="ai:telemetry";function Hl(){return typeof process<"u"&&process.release?.name==="node"}var Tn;async function km(){if(!Hl())return;if(Tn==null)Tn=Promise.resolve(Pn("node:diagnostics_channel"));return Tn}function Pn(M){let C=globalThis.process;try{return C?.getBuiltinModule?.(M)}catch{return}}async function Ai(M,C){let O=(await km())?.tracingChannel?.(Wl);if(O==null||O.hasSubscribers===!1)return await C();let L,W,ee,H=!1,te=!1,re=()=>{try{L=Promise.resolve(C())}catch(ne){L=Promise.reject(ne)}return L=L.then((ne)=>(W=ne,H=!0,ne),(ne)=>{throw ee=ne,te=!0,ne}),L};try{return await O.tracePromise(re,M)}catch{if(te)throw ee;if(H)return W;if(L!=null)return await L;return await C()}}function Pm({message:M,completion:C}){if(!Hl()){Promise.resolve(C).catch(()=>{});return}let O=Pn("node:diagnostics_channel"),L=Pn("node:async_hooks"),W=O?.tracingChannel?.(Wl);if(W==null||W.hasSubscribers===!1||L==null){Promise.resolve(C).catch(()=>{});return}let ee=M,H,te=!1,re=(z)=>{try{z()}catch{}},ne=({result:z,error:oe})=>{if(te)return;if(te=!0,oe!==void 0)ee.error=oe,re(()=>W.error.publish(ee));if(z!==void 0)ee.result=z;re(()=>W.asyncEnd.publish(ee))};return re(()=>{W.start.runStores(ee,()=>{H=new L.AsyncResource("ai.telemetry")})}),re(()=>W.end.publish(ee)),Promise.resolve(C).then((z)=>ne({result:z}),(z)=>ne({error:z})),{run:(z)=>H==null?z():H.runInAsyncScope(z)}}function Om(){return globalThis.AI_SDK_TELEMETRY_INTEGRATIONS??[]}function Xa(M,C,O=!1){let L=Object.assign(Object.create(Object.getPrototypeOf(M)),M,{recordInputs:C.recordInputs,recordOutputs:C.recordOutputs,functionId:C.functionId,aiVersion:Ln});if(O&&M!=null&&typeof M==="object"&&"runtimeContext"in M)L.runtimeContext=_a({context:M.runtimeContext,includeContext:C.includeRuntimeContext});if(O&&M!=null&&typeof M==="object"){if("toolsContext"in M)L.toolsContext=oo({toolsContext:M.toolsContext,includeToolsContext:C.includeToolsContext});else if("toolContext"in M&&M.toolContext!=null&&"toolCall"in M&&M.toolCall!=null&&typeof M.toolCall==="object"&&"toolName"in M.toolCall)L.toolContext=$o({toolName:M.toolCall.toolName,toolContext:M.toolContext,includeToolsContext:C.includeToolsContext})}return L}function jm({telemetry:M}){if(M?.isEnabled===!1)return{};let C=M?.integrations,O=C!=null?qe(C):Om(),L={recordInputs:M?.recordInputs,recordOutputs:M?.recordOutputs,functionId:M?.functionId,includeRuntimeContext:M?.includeRuntimeContext,includeToolsContext:M?.includeToolsContext},W=(ne,z)=>{let oe=O.map((de)=>{let me=de[ne]??(z==null?void 0:de[z]);return typeof me==="function"?me.bind(de):void 0}).filter(Boolean).map((de)=>(me)=>de(Xa(me,L)));if(oe.length===0)return;let se=_i(...oe);return async(de)=>{await se(de)}},ee=W("onStepEnd"),H=W("onStepFinish"),te=O.map((ne)=>ne.executeLanguageModelCall?.bind(ne)).filter(Boolean),re=O.map((ne)=>ne.executeTool?.bind(ne)).filter(Boolean);return{runInTracingChannelSpan:async({type:ne,event:z,execute:oe})=>await Ai({type:ne,event:Xa(z,L,!0)},oe),startTracingChannelContext:({type:ne,event:z,completion:oe})=>Pm({message:{type:ne,event:Xa(z,L,!0)},completion:oe}),onStart:W("onStart"),onStepStart:W("onStepStart"),onLanguageModelCallStart:W("onLanguageModelCallStart"),onLanguageModelCallEnd:W("onLanguageModelCallEnd"),onToolExecutionStart:W("onToolExecutionStart"),onToolExecutionEnd:W("onToolExecutionEnd"),onStepEnd:ee==null&&H==null?void 0:_i(ee,H),onStepError:W("onStepError"),onObjectStepStart:W("onObjectStepStart"),onObjectStepEnd:W("onObjectStepEnd"),onEmbedStart:W("onEmbedStart"),onEmbedEnd:W("onEmbedEnd"),onRerankStart:W("onRerankStart"),onRerankEnd:W("onRerankEnd"),experimental_onDecideStart:W("experimental_onDecideStart","experimental_onEvaluateStart"),experimental_onDecisionModelCallStart:W("experimental_onDecisionModelCallStart","experimental_onEvaluationModelCallStart"),experimental_onDecisionModelCallEnd:W("experimental_onDecisionModelCallEnd","experimental_onEvaluationModelCallEnd"),experimental_onDecideEnd:W("experimental_onDecideEnd","experimental_onEvaluateEnd"),experimental_onStreamTranscriptionStart:W("experimental_onStreamTranscriptionStart"),experimental_onStreamTranscriptionEnd:W("experimental_onStreamTranscriptionEnd"),onEnd:W("onEnd"),onAbort:W("onAbort"),onError:W("onError"),executeLanguageModelCall:async({execute:ne,...z})=>{let oe=Xa(z,L),se=ne;for(let de of te){let me=se;se=()=>de({...oe,execute:me})}return await Ai({type:"languageModelCall",event:oe},se)},executeTool:async({execute:ne,...z})=>{let oe=Xa(z,L),se=ne;for(let de of re){let me=se;se=()=>de({...oe,execute:me})}return await se()}}}function Nm(M){let C=M.map((O)=>("text"in O)?O.text:"").join("");return C.length>0?C:void 0}var Yn=class{constructor({callId:M,stepNumber:C,provider:O,modelId:L,runtimeContext:W,toolsContext:ee,content:H,finishReason:te,rawFinishReason:re,usage:ne,performance:z,warnings:oe,request:se,response:de,providerMetadata:me,steeringMessages:$e}){if(this.callId=M,this.stepNumber=C,this.model={provider:O,modelId:L},this.runtimeContext=W,this.toolsContext=ee,this.content=H,this.finishReason=te,this.rawFinishReason=re,this.usage=ne,this.performance=z,this.warnings=oe,this.request=se,this.response=de,this.providerMetadata=me,$e!=null&&$e.length>0)this.experimental_steeringMessages=$e}get text(){return this.content.filter((M)=>M.type==="text").map((M)=>M.text).join("")}get reasoning(){return Mm(this.content.filter((M)=>M.type==="reasoning"||M.type==="reasoning-file"))}get reasoningText(){return Nm(this.reasoning)}get files(){return this.content.filter((M)=>M.type==="file").map((M)=>M.file)}get sources(){return this.content.filter((M)=>M.type==="source")}get toolCalls(){return this.content.filter((M)=>M.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter((M)=>M.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter((M)=>M.dynamic===!0)}get toolResults(){return this.content.filter((M)=>M.type==="tool-result")}get staticToolResults(){return this.toolResults.filter((M)=>M.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter((M)=>M.dynamic===!0)}};function Za({step:M,includeRuntimeContext:C,includeToolsContext:O}){return new Yn({callId:M.callId,stepNumber:M.stepNumber,provider:M.model.provider,modelId:M.model.modelId,runtimeContext:_a({context:M.runtimeContext,includeContext:C}),toolsContext:oo({toolsContext:M.toolsContext,includeToolsContext:O}),content:M.content,finishReason:M.finishReason,rawFinishReason:M.rawFinishReason,usage:M.usage,performance:M.performance,warnings:M.warnings,request:M.request,response:M.response,providerMetadata:M.providerMetadata,steeringMessages:M.experimental_steeringMessages})}function zl({telemetry:M,includeRuntimeContext:C,includeToolsContext:O}){let L=jm({telemetry:M}),W=(ee)=>({...ee,runtimeContext:_a({context:ee.runtimeContext,includeContext:C}),steps:ee.steps.map((H)=>Za({step:H,includeRuntimeContext:C,includeToolsContext:O})),toolsContext:oo({toolsContext:ee.toolsContext,includeToolsContext:O})});return{...L,onStart:(ee)=>L.onStart?.({...ee,runtimeContext:_a({context:ee.runtimeContext,includeContext:C}),toolsContext:oo({toolsContext:ee.toolsContext,includeToolsContext:O})}),onStepStart:(ee)=>L.onStepStart?.(W(ee)),onStepEnd:(ee)=>L.onStepEnd?.(Za({step:ee,includeRuntimeContext:C,includeToolsContext:O})),onStepFinish:(ee)=>L.onStepEnd?.(Za({step:ee,includeRuntimeContext:C,includeToolsContext:O})),onStepError:(ee)=>L.onStepError?.(W(ee)),onEnd:(ee)=>L.onEnd?.(((H)=>({...ee,runtimeContext:_a({context:ee.runtimeContext,includeContext:C}),steps:H,finalStep:H.at(-1),toolsContext:oo({toolsContext:ee.toolsContext,includeToolsContext:O})}))(ee.steps.map((H)=>Za({step:H,includeRuntimeContext:C,includeToolsContext:O})))),onAbort:(ee)=>L.onAbort?.({...ee,steps:ee.steps.map((H)=>Za({step:H,includeRuntimeContext:C,includeToolsContext:O}))}),onToolExecutionStart:(ee)=>L.onToolExecutionStart?.({...ee,toolContext:$o({toolName:ee.toolCall.toolName,toolContext:ee.toolContext,includeToolsContext:O})}),onToolExecutionEnd:(ee)=>L.onToolExecutionEnd?.({...ee,toolContext:$o({toolName:ee.toolCall.toolName,toolContext:ee.toolContext,includeToolsContext:O})})}}var Bh=V({prefix:"steer",size:24}),Dm=Symbol.for("vercel.ai.steering.start");function Kl(M){if(M==null)return;let C=M[Dm];if(typeof C!=="function")throw new yr({parameter:"experimental_steering",value:M,message:"The steering object must be created with experimental_createSteering()."});return C.call(M)}function Jl(M){return({steps:C})=>C.length===M}async function Yl({stopConditions:M,steps:C}){return(await Promise.all(M.map((O)=>O({steps:C})))).some((O)=>O)}function On(M,C){return M==null&&C==null?void 0:(M??0)+(C??0)}function lo(M,C){if(M===C)return!0;if(M==null||C==null)return!1;if(typeof M!=="object"&&typeof C!=="object")return M===C;if(M.constructor!==C.constructor)return!1;if(M instanceof Date&&C instanceof Date)return M.getTime()===C.getTime();if(Array.isArray(M)){if(M.length!==C.length)return!1;for(let W=0;W<M.length;W++)if(!lo(M[W],C[W]))return!1;return!0}let O=Object.keys(M),L=Object.keys(C);if(O.length!==L.length)return!1;for(let W of O){if(!L.includes(W))return!1;if(!lo(M[W],C[W]))return!1}return!0}async function Ql({content:M,tools:C}){let O=[],L=new Map,W=[];for(let H of M){if(H.type==="source")continue;if((H.type==="tool-result"||H.type==="tool-error")&&!H.providerExecuted)continue;if(H.type==="text"&&H.text.length===0)continue;switch(H.type){case"text":W.push({type:"text",text:H.text,providerOptions:H.providerMetadata});break;case"custom":W.push({type:"custom",kind:H.kind,providerOptions:H.providerMetadata});break;case"reasoning":W.push({type:"reasoning",text:H.text,providerOptions:H.providerMetadata});break;case"file":W.push({type:"file",data:H.file.base64,mediaType:H.file.mediaType,providerOptions:H.providerMetadata});break;case"reasoning-file":W.push({type:"reasoning-file",data:H.file.base64,mediaType:H.file.mediaType,providerOptions:H.providerMetadata});break;case"tool-call":if(!L.has(H.toolCallId))L.set(H.toolCallId,L.size);W.push({type:"tool-call",toolCallId:H.toolCallId,toolName:H.toolName,input:H.invalid&&typeof H.input!=="object"?{}:H.input,providerExecuted:H.providerExecuted,providerOptions:H.providerMetadata});break;case"tool-result":{let re=await na({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.output,errorMode:"none"});W.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:re,providerOptions:H.providerMetadata});break}case"tool-error":{let re=await na({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.error,errorMode:"json"});W.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:re,providerOptions:H.providerMetadata});break}case"tool-approval-request":let te=Kn(H.toolCall);W.push({type:"tool-approval-request",approvalId:H.approvalId,toolCallId:H.toolCall.toolCallId,...H.reason!=null?{reason:H.reason}:{},isAutomatic:H.isAutomatic,...H.signature!=null?{signature:H.signature}:{},...te!=null&&!lo(te.value,H.toolCall.input)?{inputSchemaInput:te.value}:{}})}}if(W.length>0)O.push({role:"assistant",content:W});let ee=[];for(let H of M){if(H.type!=="tool-approval-response"&&H.type!=="tool-result"&&H.type!=="tool-error")continue;if(H.type==="tool-approval-response"){if(ee.push({type:"tool-approval-response",approvalId:H.approvalId,approved:H.approved,reason:H.reason,providerExecuted:H.providerExecuted}),H.approved===!1)ee.push({type:"tool-result",toolCallId:H.toolCall.toolCallId,toolName:H.toolCall.toolName,output:{type:"execution-denied",reason:H.reason}});continue}if(H.providerExecuted)continue;let te=await na({toolCallId:H.toolCallId,input:H.input,tool:et(C,H.toolName),output:H.type==="tool-result"?H.output:H.error,errorMode:H.type==="tool-error"?"text":"none"});ee.push({type:"tool-result",toolCallId:H.toolCallId,toolName:H.toolName,output:te,...H.providerMetadata!=null?{providerOptions:H.providerMetadata}:{}})}if(ee.length>0)O.push({role:"tool",content:qm({toolResultContent:ee,toolCallOrder:L})});return O}function qm({toolResultContent:M,toolCallOrder:C}){let O=M.filter((W)=>W.type==="tool-result").map((W,ee)=>({part:W,index:ee})).sort((W,ee)=>{let H=C.get(W.part.toolCallId),te=C.get(ee.part.toolCallId);if(H==null&&te==null)return W.index-ee.index;if(H==null)return 1;if(te==null)return-1;return H-te||W.index-ee.index}).map(({part:W})=>W),L=0;return M.map((W)=>W.type==="tool-result"?O[L++]:W)}var $m=new TextEncoder;function jn(M){if(M===null||M===void 0)return JSON.stringify(M);if(typeof M!=="object")return JSON.stringify(M);if(Array.isArray(M))return`[${M.map((C)=>C===void 0?"null":jn(C)).join(",")}]`;return`{${Object.keys(M).sort().map((C)=>`${JSON.stringify(C)}:${jn(M[C])}`).join(",")}}`}function Xl(M){return X(M).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}async function Zl(M){let C=await crypto.subtle.digest("SHA-256",$m.encode(jn(M)));return Xl(new Uint8Array(C))}var Qn=new TextEncoder;function Um(M){return j(M)}async function ec(M){let C=typeof M==="string"?Qn.encode(M):M;return crypto.subtle.importKey("raw",C,{name:"HMAC",hash:"SHA-256"},!1,["sign","verify"])}function tc(M,C,O,L){return Qn.encode(JSON.stringify(["ai-sdk-tool-approval-v1",M,C,O,L]))}function Lm(M,C,O,L){return Qn.encode(`${M}
|
|
31
31
|
${C}
|
|
32
32
|
${O}
|
|
33
|
-
${
|
|
34
|
-
`)&&!
|
|
33
|
+
${L}`)}async function Fm({secret:M,approvalId:C,toolCallId:O,toolName:L,input:W}){let ee=await ec(M),H=tc(C,O,L,await Zl(W)),te=await crypto.subtle.sign("HMAC",ee,H);return Xl(new Uint8Array(te))}async function Gm({secret:M,signature:C,approvalId:O,toolCallId:L,toolName:W,input:ee}){let H=await ec(M),te=await Zl(ee),re=Um(C),ne=tc(O,L,W,te);if(await crypto.subtle.verify("HMAC",H,re,ne))return!0;if(!O.includes(`
|
|
34
|
+
`)&&!L.includes(`
|
|
35
35
|
`)&&!W.includes(`
|
|
36
|
-
`)){let z=Lm(O,F,W,te);return crypto.subtle.verify("HMAC",H,re,z)}return!1}async function rc({secret:M,approvalId:C,toolCallId:O,toolName:F,input:W}){if(M==null)return;return Fm({secret:M,approvalId:C,toolCallId:O,toolName:F,input:W})}async function ac({approvedToolApprovals:M,tools:C,toolApproval:O,messages:F,toolsContext:W,runtimeContext:ee,toolApprovalSecret:H,refineToolInput:te}){let re=[],ne=[],z=[];for(let oe of M){let{approvalRequest:se,toolCall:de}=oe,me=et(C,de.toolName);if(H!=null){if(se.signature==null)throw new fi({approvalId:se.approvalId,toolCallId:de.toolCallId,reason:"missing signature"});if(!await Gm({secret:H,signature:se.signature,approvalId:se.approvalId,toolCallId:de.toolCallId,toolName:de.toolName,input:de.input}))throw new fi({approvalId:se.approvalId,toolCallId:de.toolCallId,reason:"invalid signature"})}if(jt(me)&&me.inputSchema!=null){let Ge=Object.prototype.hasOwnProperty.call(se,"inputSchemaInput"),be=await j({value:Ge?se.inputSchemaInput:de.input,schema:ze(me.inputSchema)}),De;if(!be.success)De=be.error;else try{let xe=await Do({toolCall:{...de,input:be.value},refineToolInput:te});if(!co(structuredClone(xe.input),structuredClone(de.input)))De=Error("Approved tool input does not match the validated schema output.")}catch(xe){De=xe}if(De!=null){z.push({...oe,error:new Go({toolName:de.toolName,toolInput:JSON.stringify(de.input),cause:De})});continue}}let Le=await Jn({tools:C,toolApproval:O,toolCall:de,messages:F,toolsContext:W,runtimeContext:ee});if(Le.type==="denied")ne.push({...oe,approvalResponse:{...oe.approvalResponse,approved:!1,reason:Le.reason??oe.approvalResponse.reason}});else re.push(oe)}return{approvedToolApprovals:re,deniedToolApprovals:ne,invalidToolApprovals:z}}function oc(M){if(M==null)return;if(!Number.isInteger(M))throw new vr({parameter:"toolCallConcurrency",value:M,message:"toolCallConcurrency must be an integer"});if(M<1)throw new vr({parameter:"toolCallConcurrency",value:M,message:"toolCallConcurrency must be >= 1"});return M}async function Xn({items:M,concurrency:C,abortSignal:O,execute:F}){if(C==null||C>=M.length)return Promise.all(M.map(F));let W=Array(M.length),ee=0,H=!1,te=async()=>{while(!H){O?.throwIfAborted();let re=ee++;if(re>=M.length)return;try{W[re]=await F(M[re],re)}catch(ne){throw H=!0,ne}}};return await Promise.all(Array.from({length:Math.min(C,M.length)},te)),W}var Vm=V({prefix:"aitxt",size:24}),Bm=V({prefix:"call",size:24});async function xn(M){let C=Kl(M.experimental_steering);try{return await Wm(M,C)}catch(O){throw C?.end(M.abortSignal?.aborted?"aborted":"error"),O}}async function Wm({model:M,tools:C,toolChoice:O,instructions:F,system:W,prompt:ee,messages:H,allowSystemInMessages:te,maxRetries:re,abortSignal:ne,timeout:z,headers:oe,stopWhen:se=Jl(1),experimental_sandbox:de,output:me,toolApproval:Le,experimental_toolCallers:Ge,experimental_toolApprovalSecret:be,experimental_telemetry:De,telemetry:xe=De,providerOptions:we,activeTools:le,toolOrder:ve,toolCallConcurrency:Se,prepareStep:ce,experimental_repairToolCall:Ie,repairToolCall:He=Ie,experimental_refineToolInput:tt,experimental_download:he,runtimeContext:Ke={},toolsContext:Re={},experimental_include:ot,include:It=ot,_internal:{generateId:Ot=Vm,generateCallId:Zt=Bm,now:ar=io}={},onStart:wr,experimental_onStart:br,onStepStart:Br,experimental_onStepStart:Sr,onLanguageModelCallStart:la,experimental_onLanguageModelCallStart:ca,onLanguageModelCallEnd:da,experimental_onLanguageModelCallEnd:ua,onToolExecutionStart:Pa,onToolExecutionEnd:Oa,experimental_onToolCallStart:ja,experimental_onToolCallFinish:Na,onStepEnd:Da,onStepError:qa,onStepFinish:$a,onFinish:pa,onEnd:ma=pa,...er},bt){It={requestBody:It?.requestBody??!1,requestMessages:It?.requestMessages??!1,responseBody:It?.responseBody??!1};let _r=oc(Se),Wt=so(M),Wr=jl({tools:C,toolCallers:Ge}),Ua=ql({tools:C,toolCallers:Wr}),nt=Ne(se),Ar=wr??br,Ht=Br??Sr,fa=la??ca,ha=da??ua,kr=Pa??ja,Ir=Oa??Na,Tr=Da??$a,or=[];if(Rl(z)!=null)or.push({type:"unsupported",feature:"timeout.firstChunkMs",details:"The firstChunkMs timeout is only supported by streaming functions."});if(_l(z)!=null)or.push({type:"unsupported",feature:"timeout.chunkMs",details:"The chunkMs timeout is only supported by streaming functions."});if(or.length>0)na({warnings:or,provider:Wt.provider,model:Wt.modelId});let Ye=Ml(z),ir=Cl(z),Pr=ir!=null?new AbortController:void 0,Rt=Wn(ne,Ye,Pr?.signal),{maxRetries:ga,retry:ya}=jo({maxRetries:re,abortSignal:Rt}),Nt=$o(er),Hr=q(oe??{},`ai/${Ln}`),xr=await Bn({instructions:F,system:W,prompt:ee,messages:H,allowSystemInMessages:te}),zt=Zt(),ht=zl({telemetry:xe,includeRuntimeContext:xe?.includeRuntimeContext,includeToolsContext:xe?.includeToolsContext}),tr=ht.runInTracingChannelSpan??(async({execute:mr})=>await mr()),lr={callId:zt,operationId:"ai.generateText",provider:Wt.provider,modelId:Wt.modelId,instructions:xr.instructions,messages:xr.messages,tools:C,toolChoice:O,activeTools:le,toolOrder:ve,maxOutputTokens:Nt.maxOutputTokens,temperature:Nt.temperature,topP:Nt.topP,topK:Nt.topK,presencePenalty:Nt.presencePenalty,frequencyPenalty:Nt.frequencyPenalty,stopSequences:Nt.stopSequences,seed:Nt.seed,reasoning:Nt.reasoning,maxRetries:ga,timeout:z,headers:Hr,providerOptions:we,output:me,runtimeContext:Ke,toolsContext:Re};return await tr({type:"generateText",event:lr,execute:async()=>{await lt({event:lr,callbacks:[Ar,ht.onStart]});let mr;try{let Dt=xr.messages,nr=[],{approvedToolApprovals:Bo,deniedToolApprovals:va}=Pl({messages:Dt}),{approvedToolApprovals:wa,deniedToolApprovals:La,invalidToolApprovals:Kr}=await ac({approvedToolApprovals:Bo.filter((Ve)=>!Ve.toolCall.providerExecuted),tools:C,toolApproval:Le,messages:Dt,toolsContext:Re,runtimeContext:Ke,toolApprovalSecret:be,refineToolInput:tt}),Or=[...va,...La].filter((Ve)=>Ve.existingToolResult==null);if(Or.length>0||wa.length>0||Kr.length>0){let Ve=await ki({toolCalls:wa.map((Be)=>Be.toolCall),tools:C,callId:zt,messages:Dt,abortSignal:Rt,timeout:z,experimental_sandbox:de,toolsContext:Re,onToolExecutionStart:(Be)=>lt({event:Be,callbacks:[kr,ht.onToolExecutionStart]}),onToolExecutionEnd:(Be)=>lt({event:Be,callbacks:[Ir,ht.onToolExecutionEnd]}),executeToolInTelemetryContext:ht.executeTool,runInTracingChannelSpan:tr,toolCallConcurrency:_r}),Je=[];for(let Be of Ve){let Vt=Be.output,sr=await sa({toolCallId:Vt.toolCallId,input:Vt.input,tool:et(C,Vt.toolName),output:Vt.type==="tool-result"?Vt.output:Vt.error,errorMode:Vt.type==="tool-error"?"text":"none"});Je.push({type:"tool-result",toolCallId:Vt.toolCallId,toolName:Vt.toolName,output:sr})}for(let Be of Kr)Je.push({type:"tool-result",toolCallId:Be.toolCall.toolCallId,toolName:Be.toolCall.toolName,output:await sa({toolCallId:Be.toolCall.toolCallId,input:Be.toolCall.input,tool:et(C,Be.toolCall.toolName),output:Be.error,errorMode:"text"})});for(let Be of Or)Je.push({type:"tool-result",toolCallId:Be.toolCall.toolCallId,toolName:Be.toolCall.toolName,output:{type:"execution-denied",reason:Be.approvalResponse.reason,...Be.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:Be.approvalResponse.approvalId}}}}});nr.push({role:"tool",content:Je})}let mo=$o(er),rt,Jr=[],Ft=[],gt=[],Gt=[],Ue=[],Xe=xr.instructions,Ee=[...Dt,...nr],St=new Map,Fe="finished",Jt=async()=>{if(Ue[Ue.length-1].finishReason==="interrupted")return!1;if(Ft.length+Gt.length!==Jr.length)return Fe="waiting-for-tool-results",!1;if(Jr.length===0&&St.size===0){if(!bt?.hasPendingMessages())return!1;if(Ue[Ue.length-1].finishReason==="error")return Fe="error",!1}if(await Yl({stopConditions:nt,steps:Ue}))return Fe="stop-condition",!1;return!0};do{if(Ue.length>0)Rt?.throwIfAborted();let Ve=No({abortController:Pr,label:"Step",timeoutMs:ir}),Je=Ue.length,Be=bt?.takeMessages()??[];if(Be.length>0)Ee=[...Ee,...Be];try{await tr({type:"step",event:{callId:zt,stepNumber:Je},execute:async()=>{let Vt=[...nr,...Ue.flatMap((Oe)=>Oe.response.messages)],sr=Ee,At=await ce?.({model:Wt,steps:Ue,stepNumber:Ue.length,instructions:Xe,initialInstructions:xr.instructions,messages:sr,initialMessages:Dt,responseMessages:Vt,...Be.length>0?{experimental_steeringMessages:Be}:{},runtimeContext:Ke,toolsContext:Re,experimental_sandbox:de}),Sa=At?.experimental_sandbox??de,qt=so(At?.model??Wt),Xr=At?.instructions??At?.system??Xe;Ke=At?.runtimeContext??Ke,Re=At?.toolsContext??Re;let Fa=$l({tools:C,activeTools:At?.activeTools??le}),{executionTools:fo,modelTools:Et,toolCallerMessages:Ia}=Nl({tools:Ua(Fa,{toolsContext:Re,experimental_sandbox:Sa}),toolCallers:Wr}),Zr=At?.toolOrder??ve,Ga=await Vn({tools:Et,toolOrder:Zr,toolsContext:Re,experimental_sandbox:Sa}),Mr=Gn({toolChoice:At?.toolChoice??O}),Dr=Mr.type==="none"?void 0:fo,rr=Dl({messages:At?.messages??sr,toolCallerMessages:Ia}),Va=bt?.resolveTakenMessages({stepNumber:Je,sentMessages:rr})??[],ho=await Il({prompt:{instructions:Xr,messages:rr},supportedUrls:await qt.supportedUrls,download:he,abortSignal:Rt,provider:qt.provider.split(".")[0]}),Ba=ka(we,At?.providerOptions),Ta=Bl({callSettings:mo,stepSettings:At}),hr={callId:zt,provider:qt.provider,modelId:qt.modelId,stepNumber:Je,instructions:Xr,messages:rr,tools:C,toolChoice:At?.toolChoice??O,activeTools:At?.activeTools??le,toolOrder:Zr,steps:[...Ue],providerOptions:Ba,output:me,runtimeContext:Ke,promptMessages:ho,stepTools:Ga,stepToolChoice:Mr,toolsContext:Re};await lt({event:hr,callbacks:[Ht,ht.onStepStart]}),mr=hr;let Wa={provider:qt.provider,modelId:qt.modelId,instructions:Xr,messages:rr,tools:Ga,...Ta},Ha={callId:zt,...Wa},go=ar();await lt({event:Ha,callbacks:[fa,ht.onLanguageModelCallStart]});let Wo=ht.executeLanguageModelCall??(async({execute:Oe})=>await Oe());rt=await ya(async()=>{let Oe=await Wo({...Ha,execute:async()=>await qt.doGenerate({...Ta,tools:Ga,toolChoice:Mr,responseFormat:await me?.responseFormat,prompt:ho,providerOptions:Ba,abortSignal:Rt,headers:Hr})}),it={id:Oe.response?.id??Ot(),timestamp:Oe.response?.timestamp??new Date,modelId:Oe.response?.modelId??qt.modelId,headers:Oe.response?.headers,body:Oe.response?.body};return{...Oe,response:it}});let qr=ar()-go,dr=Al(rt.usage),ur=await Promise.all(rt.content.filter((Oe)=>Oe.type==="tool-call").map((Oe)=>Gl({toolCall:Oe,tools:Et,repairToolCall:Mr.type==="none"?void 0:He,refineToolInput:Mr.type==="none"?void 0:tt,instructions:Xr,messages:rr,abortSignal:Rt}))),$r={},ea={},xa=new Set,ta=new WeakMap,yo=await Mi({content:rt.content,toolCalls:ur,toolOutputs:[],toolApprovalRequests:[],toolApprovalResponses:[],tools:C,abortSignal:Rt,generatedFileDataCache:ta});await lt({event:{callId:zt,provider:qt.provider,modelId:rt.response.modelId,finishReason:rt.finishReason.unified,usage:dr,content:yo,responseId:rt.response.id,...rt.providerMetadata!=null?{providerMetadata:rt.providerMetadata}:{},performance:{responseTimeMs:qr,effectiveOutputTokensPerSecond:Vr({tokens:dr.outputTokens,durationMs:qr}),outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:Vr({tokens:On(dr.inputTokens,dr.outputTokens),durationMs:qr}),timeToFirstOutputMs:void 0}},callbacks:[ha,ht.onLanguageModelCallEnd]});let Ur=Mr.type==="auto"?void 0:Mr;if(Ur!=null&&(Ur.type==="none"?ur.length>0:rt.finishReason.unified!=="interrupted"&&!ur.some((Oe)=>Ur.type==="required"||Oe.toolName===Ur.toolName)))throw new Un({toolChoice:Ur,finishReason:rt.finishReason.unified,provider:qt.provider,modelId:qt.modelId,content:rt.content});for(let Oe of ur){if(Oe.invalid)continue;let it=et(Dr,Oe.toolName);if(it==null)continue;if(it.onInputStart!=null||it.onInputAvailable!=null){let gr=await lo({toolName:Oe.toolName,context:et(Re,Oe.toolName),contextSchema:it.contextSchema});if(it.onInputStart!=null)await it.onInputStart({toolCallId:Oe.toolCallId,messages:rr,abortSignal:Rt,context:gr});if(it.onInputAvailable!=null)await it.onInputAvailable({input:Oe.input,toolCallId:Oe.toolCallId,messages:rr,abortSignal:Rt,context:gr})}let Bt=await Jn({tools:Dr,toolApproval:Le,toolCall:Oe,messages:rr,toolsContext:Re,runtimeContext:Ke});if(Bt.type==="not-applicable")continue;let Cr=Ot(),pr=await rc({secret:be,approvalId:Cr,toolCallId:Oe.toolCallId,toolName:Oe.toolName,input:Oe.input});switch(Bt.type){case"user-approval":$r[Oe.toolCallId]={type:"tool-approval-request",approvalId:Cr,toolCall:Oe,...Bt.reason!=null?{reason:Bt.reason}:{},...pr!=null?{signature:pr}:{}},xa.add(Oe.toolCallId);break;case"approved":$r[Oe.toolCallId]={type:"tool-approval-request",approvalId:Cr,toolCall:Oe,isAutomatic:!0,...pr!=null?{signature:pr}:{}},ea[Oe.toolCallId]={type:"tool-approval-response",approvalId:Cr,toolCall:Oe,approved:!0,reason:Bt.reason,providerExecuted:Oe.providerExecuted};break;case"denied":$r[Oe.toolCallId]={type:"tool-approval-request",approvalId:Cr,toolCall:Oe,isAutomatic:!0,...pr!=null?{signature:pr}:{}},ea[Oe.toolCallId]={type:"tool-approval-response",approvalId:Cr,toolCall:Oe,approved:!1,reason:Bt.reason,providerExecuted:Oe.providerExecuted},xa.add(Oe.toolCallId)}}let ra=ur.filter((Oe)=>Oe.invalid&&Oe.dynamic&&!Oe.providerExecuted);Ft=[];for(let Oe of ra)Ft.push({type:"tool-error",toolCallId:Oe.toolCallId,toolName:Oe.toolName,input:Oe.input,error:A(Oe.error),dynamic:!0});Jr=ur.filter((Oe)=>!Oe.providerExecuted),gt=Object.values(ea),Gt=gt.filter((Oe)=>Oe.approved===!1);let aa={};if(Dr!=null&&Ll(rt.finishReason.unified)){let Oe=await ki({toolCalls:Jr.filter((it)=>!it.invalid&&!xa.has(it.toolCallId)),tools:Dr,callId:zt,messages:rr,abortSignal:Rt,timeout:z,experimental_sandbox:Sa,toolsContext:Re,onToolExecutionStart:(it)=>lt({event:it,callbacks:[kr,ht.onToolExecutionStart]}),onToolExecutionEnd:(it)=>lt({event:it,callbacks:[Ir,ht.onToolExecutionEnd]}),executeToolInTelemetryContext:ht.executeTool,runInTracingChannelSpan:tr,toolCallConcurrency:_r});for(let it of Oe)aa[it.output.toolCallId]=it.toolExecutionMs,Ft.push(it.output)}let Ea=ar()-go,za={effectiveOutputTokensPerSecond:Vr({tokens:dr.outputTokens,durationMs:qr}),outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:Vr({tokens:On(dr.inputTokens,dr.outputTokens),durationMs:qr}),stepTimeMs:Ea,responseTimeMs:qr,toolExecutionMs:aa,timeToFirstOutputMs:void 0};for(let Oe of ur){if(!Oe.providerExecuted)continue;let it=et(Dr,Oe.toolName);if(it?.type==="provider"&&it.supportsDeferredResults){if(!rt.content.some((Bt)=>Bt.type==="tool-result"&&Bt.toolCallId===Oe.toolCallId))St.set(Oe.toolCallId,{toolName:Oe.toolName})}}for(let Oe of rt.content)if(Oe.type==="tool-result")St.delete(Oe.toolCallId);let vo=await Mi({content:rt.content,toolCalls:ur,toolOutputs:Ft,toolApprovalRequests:Object.values($r),toolApprovalResponses:gt,tools:C,abortSignal:Rt,generatedFileDataCache:ta}),wo=await Ql({content:vo,tools:C}),Ho={...rt.request,body:It.requestBody?rt.request?.body:void 0,messages:It.requestMessages?oo(rr):void 0},zo={...rt.response,messages:oo(wo),body:It.responseBody?rt.response?.body:void 0},Ka=new Yn({callId:zt,stepNumber:Je,provider:qt.provider,modelId:qt.modelId,runtimeContext:Ke,content:vo,finishReason:rt.finishReason.unified,rawFinishReason:rt.finishReason.raw,usage:dr,performance:za,warnings:rt.warnings,providerMetadata:rt.providerMetadata,request:Ho,response:zo,toolsContext:Re,steeringMessages:Va});return na({warnings:rt.warnings??[],provider:qt.provider,model:qt.modelId}),Ue.push(Ka),Xe=Xr,Ee=[...rr,...wo],mr=void 0,await lt({event:Ka,callbacks:[Tr,ht.onStepEnd]}),Ka}})}finally{if(Ve!=null)clearTimeout(Ve)}}while(await Jt());bt?.end(Fe);let ct=Ue[Ue.length-1],jr=Ue.reduce((Ve,Je)=>kl(Ve,Je.usage),{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0}),Yr=Ue.flatMap((Ve)=>Ve.files),ba=Ue.flatMap((Ve)=>Ve.sources),Yt=Ue.flatMap((Ve)=>Ve.toolCalls),Qr=Ue.flatMap((Ve)=>Ve.staticToolCalls),fr=Ue.flatMap((Ve)=>Ve.dynamicToolCalls),cr=Ue.flatMap((Ve)=>Ve.toolResults),Er=Ue.flatMap((Ve)=>Ve.staticToolResults),Nr=Ue.flatMap((Ve)=>Ve.dynamicToolResults),_t=Ue.flatMap((Ve)=>Ve.warnings??[]);await lt({event:{callId:zt,stepNumber:ct.stepNumber,model:ct.model,runtimeContext:ct.runtimeContext,finishReason:ct.finishReason,rawFinishReason:ct.rawFinishReason,usage:jr,totalUsage:jr,content:Ue.flatMap((Ve)=>Ve.content),text:ct.text,reasoning:ct.reasoning,reasoningText:ct.reasoningText,files:Yr,sources:ba,toolCalls:Yt,staticToolCalls:Qr,dynamicToolCalls:fr,toolResults:cr,staticToolResults:Er,dynamicToolResults:Nr,responseMessages:[...nr,...Ue.flatMap((Ve)=>Ve.response.messages)],warnings:_t,request:ct.request,response:ct.response,providerMetadata:ct.providerMetadata,steps:Ue,finalStep:ct,toolsContext:Re},callbacks:[ma,ht.onEnd]});let Qe;if(ct.finishReason==="stop"||ct.finishReason!=="tool-calls"&&ct.text.length>0){let Ve=me??An(),Je=(await Ve.responseFormat)?.type==="json"?rt.structuredOutputText??ct.text:ct.text;Qe=await Ve.parseCompleteOutput({text:Je},{response:ct.response,usage:ct.usage,finishReason:ct.finishReason})}return new Cm({initialResponseMessages:nr,steps:Ue,totalUsage:jr,output:Qe})}catch(Dt){let nr=ro(Dt);if(bt?.end(Rt?.aborted?"aborted":"error"),mr!=null)await lt({event:{...mr,error:nr},callbacks:[qa,ht.onStepError]});throw await ht.onError?.({callId:zt,error:Dt}),nr}}})}async function ki({toolCalls:M,tools:C,callId:O,messages:F,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:re,onToolExecutionEnd:ne,executeToolInTelemetryContext:z,runInTracingChannelSpan:oe,toolCallConcurrency:se}){return(await Xn({items:M,concurrency:se,abortSignal:W,execute:async(de)=>await zn({toolCall:de,tools:C,callId:O,messages:F,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:re,onToolExecutionEnd:ne,executeToolInTelemetryContext:z,runInTracingChannelSpan:oe})})).filter((de)=>de!=null)}function Vo(M,C){let O=new Headers(M??{});for(let[F,W]of Object.entries(C))if(!O.has(F))O.set(F,W);return O}function Hm({status:M,statusText:C,headers:O,stream:F}){return new Response(F.pipeThrough(new TextEncoderStream),{status:M??200,statusText:C,headers:Vo(O,{"content-type":"text/plain; charset=utf-8"})})}function nc({response:M,status:C,statusText:O,headers:F,stream:W}){let ee=C??200;if(F!=null)M.setHeaders(F);if(O!==void 0)M.writeHead(ee,O);else M.writeHead(ee);let H=W.getReader(),te=!1,re,ne=()=>{if(M.writableFinished)return;te=!0,re?.(),H.cancel(Error("Client disconnected.")).catch(()=>{})};if(M.once("close",ne),M.destroyed)ne();return(async()=>{try{while(!0){let{done:oe,value:se}=await H.read();if(oe||te||M.destroyed)break;let de=M.write(se),me=M.flush;if(typeof me==="function")me.call(M);if(!de)await new Promise((Le)=>{re=Le,M.once("drain",Le)}),re=void 0}}finally{if(M.off("close",ne),te||M.destroyed)H.cancel().catch(()=>{});else M.end()}})()}function zm({response:M,status:C,statusText:O,headers:F,stream:W}){return nc({response:M,status:C,statusText:O,headers:Vo(F,{"content-type":"text/plain; charset=utf-8"}),stream:W.pipeThrough(new TextEncoderStream)})}function Km({stream:M}){return M.pipeThrough(new TransformStream({transform(C,O){if(C.type==="text-delta")O.enqueue(C.text)}}))}var Jm=`: stream-open
|
|
36
|
+
`)){let z=Lm(O,L,W,te);return crypto.subtle.verify("HMAC",H,re,z)}return!1}async function rc({secret:M,approvalId:C,toolCallId:O,toolName:L,input:W}){if(M==null)return;return Fm({secret:M,approvalId:C,toolCallId:O,toolName:L,input:W})}async function ac({approvedToolApprovals:M,tools:C,toolApproval:O,messages:L,toolsContext:W,runtimeContext:ee,toolApprovalSecret:H,refineToolInput:te}){let re=[],ne=[],z=[];for(let oe of M){let{approvalRequest:se,toolCall:de}=oe,me=et(C,de.toolName);if(H!=null){if(se.signature==null)throw new fi({approvalId:se.approvalId,toolCallId:de.toolCallId,reason:"missing signature"});if(!await Gm({secret:H,signature:se.signature,approvalId:se.approvalId,toolCallId:de.toolCallId,toolName:de.toolName,input:de.input}))throw new fi({approvalId:se.approvalId,toolCallId:de.toolCallId,reason:"invalid signature"})}if(zt(me)&&me.inputSchema!=null){let Le=Object.prototype.hasOwnProperty.call(se,"inputSchemaInput"),be=await q({value:Le?se.inputSchemaInput:de.input,schema:Be(me.inputSchema)}),Ne;if(!be.success)Ne=be.error;else try{let xe=await No({toolCall:{...de,input:be.value},refineToolInput:te});if(!lo(structuredClone(xe.input),structuredClone(de.input)))Ne=Error("Approved tool input does not match the validated schema output.")}catch(xe){Ne=xe}if(Ne!=null){z.push({...oe,error:new Fo({toolName:de.toolName,toolInput:JSON.stringify(de.input),cause:Ne})});continue}}let $e=await Jn({tools:C,toolApproval:O,toolCall:de,messages:L,toolsContext:W,runtimeContext:ee});if($e.type==="denied")ne.push({...oe,approvalResponse:{...oe.approvalResponse,approved:!1,reason:$e.reason??oe.approvalResponse.reason}});else re.push(oe)}return{approvedToolApprovals:re,deniedToolApprovals:ne,invalidToolApprovals:z}}function oc(M){if(M==null)return;if(!Number.isInteger(M))throw new yr({parameter:"toolCallConcurrency",value:M,message:"toolCallConcurrency must be an integer"});if(M<1)throw new yr({parameter:"toolCallConcurrency",value:M,message:"toolCallConcurrency must be >= 1"});return M}async function Xn({items:M,concurrency:C,abortSignal:O,execute:L}){if(C==null||C>=M.length)return Promise.all(M.map(L));let W=Array(M.length),ee=0,H=!1,te=async()=>{while(!H){O?.throwIfAborted();let re=ee++;if(re>=M.length)return;try{W[re]=await L(M[re],re)}catch(ne){throw H=!0,ne}}};return await Promise.all(Array.from({length:Math.min(C,M.length)},te)),W}var Vm=V({prefix:"aitxt",size:24}),Bm=V({prefix:"call",size:24});async function Mn(M){let C=Kl(M.experimental_steering);try{return await Wm(M,C)}catch(O){throw C?.end(M.abortSignal?.aborted?"aborted":"error"),O}}async function Wm({model:M,tools:C,toolChoice:O,instructions:L,system:W,prompt:ee,messages:H,allowSystemInMessages:te,maxRetries:re,abortSignal:ne,timeout:z,headers:oe,stopWhen:se=Jl(1),experimental_sandbox:de,output:me,toolApproval:$e,experimental_toolCallers:Le,experimental_toolApprovalSecret:be,experimental_telemetry:Ne,telemetry:xe=Ne,providerOptions:we,activeTools:le,toolOrder:ve,toolCallConcurrency:Se,prepareStep:ce,experimental_repairToolCall:Ie,repairToolCall:We=Ie,experimental_refineToolInput:tt,experimental_download:he,runtimeContext:He={},toolsContext:Re={},experimental_include:at,include:bt=at,_internal:{generateId:Ot=Vm,generateCallId:Qt=Bm,now:rr=so}={},onStart:vr,experimental_onStart:wr,onStepStart:Vr,experimental_onStepStart:br,onLanguageModelCallStart:ia,experimental_onLanguageModelCallStart:la,onLanguageModelCallEnd:ca,experimental_onLanguageModelCallEnd:da,onToolExecutionStart:ka,onToolExecutionEnd:Pa,experimental_onToolCallStart:Oa,experimental_onToolCallFinish:ja,onStepEnd:Na,onStepError:Da,onStepFinish:qa,onFinish:ua,onEnd:pa=ua,...Zt},vt){bt={requestBody:bt?.requestBody??!1,requestMessages:bt?.requestMessages??!1,responseBody:bt?.responseBody??!1};let Rr=oc(Se),Bt=no(M),Br=jl({tools:C,toolCallers:Le}),$a=ql({tools:C,toolCallers:Br}),ot=qe(se),_r=vr??wr,Wt=Vr??br,ma=ia??la,fa=ca??da,Ar=ka??Oa,Sr=Pa??ja,Ir=Na??qa,ar=[];if(Rl(z)!=null)ar.push({type:"unsupported",feature:"timeout.firstChunkMs",details:"The firstChunkMs timeout is only supported by streaming functions."});if(_l(z)!=null)ar.push({type:"unsupported",feature:"timeout.chunkMs",details:"The chunkMs timeout is only supported by streaming functions."});if(ar.length>0)oa({warnings:ar,provider:Bt.provider,model:Bt.modelId});let Ye=Ml(z),sr=Cl(z),kr=sr!=null?new AbortController:void 0,Et=Wn(ne,Ye,kr?.signal),{maxRetries:ha,retry:ga}=Oo({maxRetries:re,abortSignal:Et}),Nt=qo(Zt),Wr=F(oe??{},`ai/${Ln}`),Tr=await Bn({instructions:L,system:W,prompt:ee,messages:H,allowSystemInMessages:te}),Ht=Qt(),ht=zl({telemetry:xe,includeRuntimeContext:xe?.includeRuntimeContext,includeToolsContext:xe?.includeToolsContext}),er=ht.runInTracingChannelSpan??(async({execute:pr})=>await pr()),ir={callId:Ht,operationId:"ai.generateText",provider:Bt.provider,modelId:Bt.modelId,instructions:Tr.instructions,messages:Tr.messages,tools:C,toolChoice:O,activeTools:le,toolOrder:ve,maxOutputTokens:Nt.maxOutputTokens,temperature:Nt.temperature,topP:Nt.topP,topK:Nt.topK,presencePenalty:Nt.presencePenalty,frequencyPenalty:Nt.frequencyPenalty,stopSequences:Nt.stopSequences,seed:Nt.seed,reasoning:Nt.reasoning,maxRetries:ha,timeout:z,headers:Wr,providerOptions:we,output:me,runtimeContext:He,toolsContext:Re};return await er({type:"generateText",event:ir,execute:async()=>{await st({event:ir,callbacks:[_r,ht.onStart]});let pr;try{let Dt=Tr.messages,or=[],{approvedToolApprovals:Vo,deniedToolApprovals:ya}=Pl({messages:Dt}),{approvedToolApprovals:va,deniedToolApprovals:Ua,invalidToolApprovals:zr}=await ac({approvedToolApprovals:Vo.filter((Ge)=>!Ge.toolCall.providerExecuted),tools:C,toolApproval:$e,messages:Dt,toolsContext:Re,runtimeContext:He,toolApprovalSecret:be,refineToolInput:tt}),Pr=[...ya,...Ua].filter((Ge)=>Ge.existingToolResult==null);if(Pr.length>0||va.length>0||zr.length>0){let Ge=await ki({toolCalls:va.map((Ve)=>Ve.toolCall),tools:C,callId:Ht,messages:Dt,abortSignal:Et,timeout:z,experimental_sandbox:de,toolsContext:Re,onToolExecutionStart:(Ve)=>st({event:Ve,callbacks:[Ar,ht.onToolExecutionStart]}),onToolExecutionEnd:(Ve)=>st({event:Ve,callbacks:[Sr,ht.onToolExecutionEnd]}),executeToolInTelemetryContext:ht.executeTool,runInTracingChannelSpan:er,toolCallConcurrency:Rr}),Ke=[];for(let Ve of Ge){let Gt=Ve.output,nr=await na({toolCallId:Gt.toolCallId,input:Gt.input,tool:et(C,Gt.toolName),output:Gt.type==="tool-result"?Gt.output:Gt.error,errorMode:Gt.type==="tool-error"?"text":"none"});Ke.push({type:"tool-result",toolCallId:Gt.toolCallId,toolName:Gt.toolName,output:nr})}for(let Ve of zr)Ke.push({type:"tool-result",toolCallId:Ve.toolCall.toolCallId,toolName:Ve.toolCall.toolName,output:await na({toolCallId:Ve.toolCall.toolCallId,input:Ve.toolCall.input,tool:et(C,Ve.toolCall.toolName),output:Ve.error,errorMode:"text"})});for(let Ve of Pr)Ke.push({type:"tool-result",toolCallId:Ve.toolCall.toolCallId,toolName:Ve.toolCall.toolName,output:{type:"execution-denied",reason:Ve.approvalResponse.reason,...Ve.toolCall.providerExecuted&&{providerOptions:{openai:{approvalId:Ve.approvalResponse.approvalId}}}}});or.push({role:"tool",content:Ke})}let po=qo(Zt),rt,Kr=[],Lt=[],gt=[],Ft=[],De=[],Ze=Tr.instructions,Ee=[...Dt,...or],wt=new Map,Ue="finished",Kt=async()=>{if(De[De.length-1].finishReason==="interrupted")return!1;if(Lt.length+Ft.length!==Kr.length)return Ue="waiting-for-tool-results",!1;if(Kr.length===0&&wt.size===0){if(!vt?.hasPendingMessages())return!1;if(De[De.length-1].finishReason==="error")return Ue="error",!1}if(await Yl({stopConditions:ot,steps:De}))return Ue="stop-condition",!1;return!0};do{if(De.length>0)Et?.throwIfAborted();let Ge=jo({abortController:kr,label:"Step",timeoutMs:sr}),Ke=De.length,Ve=vt?.takeMessages()??[];if(Ve.length>0)Ee=[...Ee,...Ve];try{await er({type:"step",event:{callId:Ht,stepNumber:Ke},execute:async()=>{let Gt=[...or,...De.flatMap((Oe)=>Oe.response.messages)],nr=Ee,Rt=await ce?.({model:Bt,steps:De,stepNumber:De.length,instructions:Ze,initialInstructions:Tr.instructions,messages:nr,initialMessages:Dt,responseMessages:Gt,...Ve.length>0?{experimental_steeringMessages:Ve}:{},runtimeContext:He,toolsContext:Re,experimental_sandbox:de}),ba=Rt?.experimental_sandbox??de,$t=no(Rt?.model??Bt),Qr=Rt?.instructions??Rt?.system??Ze;He=Rt?.runtimeContext??He,Re=Rt?.toolsContext??Re;let La=$l({tools:C,activeTools:Rt?.activeTools??le}),{executionTools:mo,modelTools:xt,toolCallerMessages:Sa}=Nl({tools:$a(La,{toolsContext:Re,experimental_sandbox:ba}),toolCallers:Br}),Xr=Rt?.toolOrder??ve,Fa=await Vn({tools:xt,toolOrder:Xr,toolsContext:Re,experimental_sandbox:ba}),Er=Gn({toolChoice:Rt?.toolChoice??O}),Nr=Er.type==="none"?void 0:mo,tr=Dl({messages:Rt?.messages??nr,toolCallerMessages:Sa}),Ga=vt?.resolveTakenMessages({stepNumber:Ke,sentMessages:tr})??[],fo=await Il({prompt:{instructions:Qr,messages:tr},supportedUrls:await $t.supportedUrls,download:he,abortSignal:Et,provider:$t.provider.split(".")[0]}),Va=Aa(we,Rt?.providerOptions),Ia=Bl({callSettings:po,stepSettings:Rt}),fr={callId:Ht,provider:$t.provider,modelId:$t.modelId,stepNumber:Ke,instructions:Qr,messages:tr,tools:C,toolChoice:Rt?.toolChoice??O,activeTools:Rt?.activeTools??le,toolOrder:Xr,steps:[...De],providerOptions:Va,output:me,runtimeContext:He,promptMessages:fo,stepTools:Fa,stepToolChoice:Er,toolsContext:Re};await st({event:fr,callbacks:[Wt,ht.onStepStart]}),pr=fr;let Ba={provider:$t.provider,modelId:$t.modelId,instructions:Qr,messages:tr,tools:Fa,...Ia},Wa={callId:Ht,...Ba},ho=rr();await st({event:Wa,callbacks:[ma,ht.onLanguageModelCallStart]});let Bo=ht.executeLanguageModelCall??(async({execute:Oe})=>await Oe());rt=await ga(async()=>{let Oe=await Bo({...Wa,execute:async()=>await $t.doGenerate({...Ia,tools:Fa,toolChoice:Er,responseFormat:await me?.responseFormat,prompt:fo,providerOptions:Va,abortSignal:Et,headers:Wr})}),nt={id:Oe.response?.id??Ot(),timestamp:Oe.response?.timestamp??new Date,modelId:Oe.response?.modelId??$t.modelId,headers:Oe.response?.headers,body:Oe.response?.body};return{...Oe,response:nt}});let Dr=rr()-ho,cr=Al(rt.usage),dr=await Promise.all(rt.content.filter((Oe)=>Oe.type==="tool-call").map((Oe)=>Gl({toolCall:Oe,tools:xt,repairToolCall:Er.type==="none"?void 0:We,refineToolInput:Er.type==="none"?void 0:tt,instructions:Qr,messages:tr,abortSignal:Et}))),qr={},Zr={},Ta=new Set,ea=new WeakMap,go=await Mi({content:rt.content,toolCalls:dr,toolOutputs:[],toolApprovalRequests:[],toolApprovalResponses:[],tools:C,abortSignal:Et,generatedFileDataCache:ea});await st({event:{callId:Ht,provider:$t.provider,modelId:rt.response.modelId,finishReason:rt.finishReason.unified,usage:cr,content:go,responseId:rt.response.id,...rt.providerMetadata!=null?{providerMetadata:rt.providerMetadata}:{},performance:{responseTimeMs:Dr,effectiveOutputTokensPerSecond:Gr({tokens:cr.outputTokens,durationMs:Dr}),outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:Gr({tokens:On(cr.inputTokens,cr.outputTokens),durationMs:Dr}),timeToFirstOutputMs:void 0}},callbacks:[fa,ht.onLanguageModelCallEnd]});let $r=Er.type==="auto"?void 0:Er;if($r!=null&&($r.type==="none"?dr.length>0:rt.finishReason.unified!=="interrupted"&&!dr.some((Oe)=>$r.type==="required"||Oe.toolName===$r.toolName)))throw new Un({toolChoice:$r,finishReason:rt.finishReason.unified,provider:$t.provider,modelId:$t.modelId,content:rt.content});for(let Oe of dr){if(Oe.invalid)continue;let nt=et(Nr,Oe.toolName);if(nt==null)continue;if(nt.onInputStart!=null||nt.onInputAvailable!=null){let hr=await io({toolName:Oe.toolName,context:et(Re,Oe.toolName),contextSchema:nt.contextSchema});if(nt.onInputStart!=null)await nt.onInputStart({toolCallId:Oe.toolCallId,messages:tr,abortSignal:Et,context:hr});if(nt.onInputAvailable!=null)await nt.onInputAvailable({input:Oe.input,toolCallId:Oe.toolCallId,messages:tr,abortSignal:Et,context:hr})}let Vt=await Jn({tools:Nr,toolApproval:$e,toolCall:Oe,messages:tr,toolsContext:Re,runtimeContext:He});if(Vt.type==="not-applicable")continue;let Mr=Ot(),ur=await rc({secret:be,approvalId:Mr,toolCallId:Oe.toolCallId,toolName:Oe.toolName,input:Oe.input});switch(Vt.type){case"user-approval":qr[Oe.toolCallId]={type:"tool-approval-request",approvalId:Mr,toolCall:Oe,...Vt.reason!=null?{reason:Vt.reason}:{},...ur!=null?{signature:ur}:{}},Ta.add(Oe.toolCallId);break;case"approved":qr[Oe.toolCallId]={type:"tool-approval-request",approvalId:Mr,toolCall:Oe,isAutomatic:!0,...ur!=null?{signature:ur}:{}},Zr[Oe.toolCallId]={type:"tool-approval-response",approvalId:Mr,toolCall:Oe,approved:!0,reason:Vt.reason,providerExecuted:Oe.providerExecuted};break;case"denied":qr[Oe.toolCallId]={type:"tool-approval-request",approvalId:Mr,toolCall:Oe,isAutomatic:!0,...ur!=null?{signature:ur}:{}},Zr[Oe.toolCallId]={type:"tool-approval-response",approvalId:Mr,toolCall:Oe,approved:!1,reason:Vt.reason,providerExecuted:Oe.providerExecuted},Ta.add(Oe.toolCallId)}}let ta=dr.filter((Oe)=>Oe.invalid&&Oe.dynamic&&!Oe.providerExecuted);Lt=[];for(let Oe of ta)Lt.push({type:"tool-error",toolCallId:Oe.toolCallId,toolName:Oe.toolName,input:Oe.input,error:A(Oe.error),dynamic:!0});Kr=dr.filter((Oe)=>!Oe.providerExecuted),gt=Object.values(Zr),Ft=gt.filter((Oe)=>Oe.approved===!1);let ra={};if(Nr!=null&&Ll(rt.finishReason.unified)){let Oe=await ki({toolCalls:Kr.filter((nt)=>!nt.invalid&&!Ta.has(nt.toolCallId)),tools:Nr,callId:Ht,messages:tr,abortSignal:Et,timeout:z,experimental_sandbox:ba,toolsContext:Re,onToolExecutionStart:(nt)=>st({event:nt,callbacks:[Ar,ht.onToolExecutionStart]}),onToolExecutionEnd:(nt)=>st({event:nt,callbacks:[Sr,ht.onToolExecutionEnd]}),executeToolInTelemetryContext:ht.executeTool,runInTracingChannelSpan:er,toolCallConcurrency:Rr});for(let nt of Oe)ra[nt.output.toolCallId]=nt.toolExecutionMs,Lt.push(nt.output)}let xa=rr()-ho,Ha={effectiveOutputTokensPerSecond:Gr({tokens:cr.outputTokens,durationMs:Dr}),outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:Gr({tokens:On(cr.inputTokens,cr.outputTokens),durationMs:Dr}),stepTimeMs:xa,responseTimeMs:Dr,toolExecutionMs:ra,timeToFirstOutputMs:void 0};for(let Oe of dr){if(!Oe.providerExecuted)continue;let nt=et(Nr,Oe.toolName);if(nt?.type==="provider"&&nt.supportsDeferredResults){if(!rt.content.some((Vt)=>Vt.type==="tool-result"&&Vt.toolCallId===Oe.toolCallId))wt.set(Oe.toolCallId,{toolName:Oe.toolName})}}for(let Oe of rt.content)if(Oe.type==="tool-result")wt.delete(Oe.toolCallId);let yo=await Mi({content:rt.content,toolCalls:dr,toolOutputs:Lt,toolApprovalRequests:Object.values(qr),toolApprovalResponses:gt,tools:C,abortSignal:Et,generatedFileDataCache:ea}),vo=await Ql({content:yo,tools:C}),Wo={...rt.request,body:bt.requestBody?rt.request?.body:void 0,messages:bt.requestMessages?ao(tr):void 0},Ho={...rt.response,messages:ao(vo),body:bt.responseBody?rt.response?.body:void 0},za=new Yn({callId:Ht,stepNumber:Ke,provider:$t.provider,modelId:$t.modelId,runtimeContext:He,content:yo,finishReason:rt.finishReason.unified,rawFinishReason:rt.finishReason.raw,usage:cr,performance:Ha,warnings:rt.warnings,providerMetadata:rt.providerMetadata,request:Wo,response:Ho,toolsContext:Re,steeringMessages:Ga});return oa({warnings:rt.warnings??[],provider:$t.provider,model:$t.modelId}),De.push(za),Ze=Qr,Ee=[...tr,...vo],pr=void 0,await st({event:za,callbacks:[Ir,ht.onStepEnd]}),za}})}finally{if(Ge!=null)clearTimeout(Ge)}}while(await Kt());vt?.end(Ue);let it=De[De.length-1],Or=De.reduce((Ge,Ke)=>kl(Ge,Ke.usage),{inputTokens:void 0,inputTokenDetails:{noCacheTokens:void 0,cacheReadTokens:void 0,cacheWriteTokens:void 0},outputTokens:void 0,outputTokenDetails:{textTokens:void 0,reasoningTokens:void 0},totalTokens:void 0}),Jr=De.flatMap((Ge)=>Ge.files),wa=De.flatMap((Ge)=>Ge.sources),Jt=De.flatMap((Ge)=>Ge.toolCalls),Yr=De.flatMap((Ge)=>Ge.staticToolCalls),mr=De.flatMap((Ge)=>Ge.dynamicToolCalls),lr=De.flatMap((Ge)=>Ge.toolResults),xr=De.flatMap((Ge)=>Ge.staticToolResults),jr=De.flatMap((Ge)=>Ge.dynamicToolResults),Ct=De.flatMap((Ge)=>Ge.warnings??[]);await st({event:{callId:Ht,stepNumber:it.stepNumber,model:it.model,runtimeContext:it.runtimeContext,finishReason:it.finishReason,rawFinishReason:it.rawFinishReason,usage:Or,totalUsage:Or,content:De.flatMap((Ge)=>Ge.content),text:it.text,reasoning:it.reasoning,reasoningText:it.reasoningText,files:Jr,sources:wa,toolCalls:Jt,staticToolCalls:Yr,dynamicToolCalls:mr,toolResults:lr,staticToolResults:xr,dynamicToolResults:jr,responseMessages:[...or,...De.flatMap((Ge)=>Ge.response.messages)],warnings:Ct,request:it.request,response:it.response,providerMetadata:it.providerMetadata,steps:De,finalStep:it,toolsContext:Re},callbacks:[pa,ht.onEnd]});let Xe;if(it.finishReason==="stop"||it.finishReason!=="tool-calls"&&it.text.length>0){let Ge=me??An(),Ke=(await Ge.responseFormat)?.type==="json"?rt.structuredOutputText??it.text:it.text;Xe=await Ge.parseCompleteOutput({text:Ke},{response:it.response,usage:it.usage,finishReason:it.finishReason})}return new Cm({initialResponseMessages:or,steps:De,totalUsage:Or,output:Xe})}catch(Dt){let or=to(Dt);if(vt?.end(Et?.aborted?"aborted":"error"),pr!=null)await st({event:{...pr,error:or},callbacks:[Da,ht.onStepError]});throw await ht.onError?.({callId:Ht,error:Dt}),or}}})}async function ki({toolCalls:M,tools:C,callId:O,messages:L,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:re,onToolExecutionEnd:ne,executeToolInTelemetryContext:z,runInTracingChannelSpan:oe,toolCallConcurrency:se}){return(await Xn({items:M,concurrency:se,abortSignal:W,execute:async(de)=>await zn({toolCall:de,tools:C,callId:O,messages:L,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:re,onToolExecutionEnd:ne,executeToolInTelemetryContext:z,runInTracingChannelSpan:oe})})).filter((de)=>de!=null)}function Go(M,C){let O=new Headers(M??{});for(let[L,W]of Object.entries(C))if(!O.has(L))O.set(L,W);return O}function Hm({status:M,statusText:C,headers:O,stream:L}){return new Response(L.pipeThrough(new TextEncoderStream),{status:M??200,statusText:C,headers:Go(O,{"content-type":"text/plain; charset=utf-8"})})}function nc({response:M,status:C,statusText:O,headers:L,stream:W}){let ee=C??200;if(L!=null)M.setHeaders(L);if(O!==void 0)M.writeHead(ee,O);else M.writeHead(ee);let H=W.getReader(),te=!1,re,ne=()=>{if(M.writableFinished)return;te=!0,re?.(),H.cancel(Error("Client disconnected.")).catch(()=>{})};if(M.once("close",ne),M.destroyed)ne();return(async()=>{try{while(!0){let{done:oe,value:se}=await H.read();if(oe||te||M.destroyed)break;let de=M.write(se),me=M.flush;if(typeof me==="function")me.call(M);if(!de)await new Promise(($e)=>{re=$e,M.once("drain",$e)}),re=void 0}}finally{if(M.off("close",ne),te||M.destroyed)H.cancel().catch(()=>{});else M.end()}})()}function zm({response:M,status:C,statusText:O,headers:L,stream:W}){return nc({response:M,status:C,statusText:O,headers:Go(L,{"content-type":"text/plain; charset=utf-8"}),stream:W.pipeThrough(new TextEncoderStream)})}function Km({stream:M}){return M.pipeThrough(new TransformStream({transform(C,O){if(C.type==="text-delta")O.enqueue(C.text)}}))}var Jm=`: stream-open
|
|
37
37
|
|
|
38
38
|
`,Ym=`: keep-alive
|
|
39
39
|
|
|
40
|
-
`;function sc({stream:M,keepAliveMs:C}){if(C==null)return M;if(!Number.isFinite(C)||C<=0||C>2147483647)throw Error("keepAliveMs must be a positive finite timer duration no greater than 2147483647");let O=M.getReader(),
|
|
40
|
+
`;function sc({stream:M,keepAliveMs:C}){if(C==null)return M;if(!Number.isFinite(C)||C<=0||C>2147483647)throw Error("keepAliveMs must be a positive finite timer duration no greater than 2147483647");let O=M.getReader(),L,W=!1,ee=()=>{clearTimeout(L),L=void 0},H=(te)=>{ee(),L=setTimeout(()=>{if(W)return;if(te.desiredSize!=null&&te.desiredSize>0)te.enqueue(Ym);H(te)},C)};return new ReadableStream({start(te){te.enqueue(Jm),H(te)},pull(te){return O.read().then((re)=>{if(ee(),W)return;if(re.done)te.close();else te.enqueue(re.value),H(te)},(re)=>{if(ee(),!W)throw re})},async cancel(te){W=!0,ee(),await O.cancel(te)}})}var ic=class extends TransformStream{constructor(){super({transform(M,C){C.enqueue(`data: ${JSON.stringify(M)}
|
|
41
41
|
|
|
42
42
|
`)},flush(M){M.enqueue(`data: [DONE]
|
|
43
43
|
|
|
44
|
-
`)}})}},lc={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Qm({status:M,statusText:C,headers:O,stream:F,keepAliveMs:W,consumeSseStream:ee}){let H=sc({stream:F.pipeThrough(new ic),keepAliveMs:W});if(ee){let[te,re]=H.tee();H=te,ee({stream:re})}return new Response(H.pipeThrough(new TextEncoderStream),{status:M,statusText:C,headers:Vo(O,lc)})}function Xm({response:M,status:C,statusText:O,headers:F,stream:W,keepAliveMs:ee,consumeSseStream:H}){let te=sc({stream:W.pipeThrough(new ic),keepAliveMs:ee});if(H){let[re,ne]=te.tee();te=re,H({stream:ne})}return nc({response:M,status:C,statusText:O,headers:Vo(F,lc),stream:te.pipeThrough(new TextEncoderStream)})}function Zm({originalMessages:M,responseMessageId:C}){if(M==null)return;let O=M[M.length-1];return O?.role==="assistant"?O.id:typeof C==="function"?C():C}var L={array:o,boolean:c,custom:Kt,discriminatedUnion:f,enum:i,instanceof:Qt,lazy:$e,literal:n,looseObject:U,never:Ae,null:We,number:r,object:t,record:y,string:e,union:l,unknown:v},ia=L.lazy(()=>L.union([L.null(),L.string(),L.number(),L.boolean(),L.record(L.string(),ia.optional()),L.array(ia)])),Ce=L.record(L.string(),L.record(L.string(),ia.optional())),cc=L.object({source:L.discriminatedUnion("sourceType",[L.object({type:L.literal("source"),sourceType:L.literal("url"),id:L.string(),url:L.string(),title:L.string().optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("source"),sourceType:L.literal("document"),id:L.string(),mediaType:L.string(),title:L.string(),filename:L.string().optional(),providerMetadata:Ce.optional()})]),startIndex:L.number().int().nonnegative().optional(),endIndex:L.number().int().nonnegative().optional(),citedText:L.string().optional()}),to=L.record(L.string(),ia.optional()),Wh=a(()=>s(L.union([L.looseObject({type:L.literal("text-start"),id:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("text-delta"),id:L.string(),delta:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("text-end"),id:L.string(),citations:L.array(cc).optional(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("error"),errorText:L.string()}),L.looseObject({type:L.literal("tool-input-start"),toolCallId:L.string(),toolName:L.string(),inputEncoding:L.enum(["json","text"]).optional(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:to.optional(),dynamic:L.boolean().optional(),title:L.string().optional()}),L.looseObject({type:L.literal("tool-input-delta"),toolCallId:L.string(),inputTextDelta:L.string()}),L.looseObject({type:L.literal("tool-input-available"),toolCallId:L.string(),toolName:L.string(),input:L.unknown(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:to.optional(),dynamic:L.boolean().optional(),title:L.string().optional()}),L.looseObject({type:L.literal("tool-input-error"),toolCallId:L.string(),toolName:L.string(),input:L.unknown(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:to.optional(),dynamic:L.boolean().optional(),errorText:L.string(),title:L.string().optional()}),L.looseObject({type:L.literal("tool-approval-request"),approvalId:L.string(),toolCallId:L.string(),approvalDescriptor:L.unknown().optional(),inputSchemaInput:L.unknown().optional(),reason:L.string().optional(),isAutomatic:L.boolean().optional(),signature:L.string().optional()}),L.looseObject({type:L.literal("tool-approval-response"),approvalId:L.string(),approved:L.boolean(),reason:L.string().optional(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("tool-output-available"),toolCallId:L.string(),output:L.unknown(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:to.optional(),dynamic:L.boolean().optional(),preliminary:L.boolean().optional()}),L.looseObject({type:L.literal("tool-output-error"),toolCallId:L.string(),errorText:L.string(),providerExecuted:L.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:to.optional(),dynamic:L.boolean().optional()}),L.looseObject({type:L.literal("tool-output-denied"),toolCallId:L.string()}),L.looseObject({type:L.literal("reasoning-start"),id:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("reasoning-delta"),id:L.string(),delta:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("reasoning-end"),id:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("custom"),kind:L.string().transform((M)=>M),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("source-url"),sourceId:L.string(),url:L.string(),title:L.string().optional(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("source-document"),sourceId:L.string(),mediaType:L.string(),title:L.string(),filename:L.string().optional(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("file"),url:L.string(),mediaType:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.literal("reasoning-file"),url:L.string(),mediaType:L.string(),providerMetadata:Ce.optional()}),L.looseObject({type:L.custom((M)=>typeof M==="string"&&M.startsWith("data-"),{message:'Type must start with "data-"'}),id:L.string().optional(),data:L.unknown(),transient:L.boolean().optional()}),L.looseObject({type:L.literal("start-step")}),L.looseObject({type:L.literal("finish-step")}),L.looseObject({type:L.literal("reset-step")}),L.looseObject({type:L.literal("start"),messageId:L.string().optional(),messageMetadata:L.unknown().optional()}),L.looseObject({type:L.literal("finish"),finishReason:L.enum(["stop","length","content-filter","tool-calls","error","interrupted","other"]).optional(),messageMetadata:L.unknown().optional()}),L.looseObject({type:L.literal("abort"),reason:L.string().optional()}),L.looseObject({type:L.literal("message-metadata"),messageMetadata:L.unknown()})])));function ef(M){return M.type.startsWith("data-")}function Ut(){return Object.create(null)}function Lo(M){return M.type.startsWith("tool-")}function tf(M){return M.type==="dynamic-tool"}function ao(M){return Lo(M)||tf(M)}function Nn(M){return M.type.split("-").slice(1).join("-")}function dc({lastMessage:M,messageId:C}){let O=M?.role==="assistant"?M:{id:C,metadata:void 0,role:"assistant",parts:[]},F=Ut(),W=O.parts.findLastIndex((H)=>H.type==="step-start"),ee=0;for(let H of O.parts.slice(W+1)){if(!ao(H))continue;let te=ee;if(Lo(H))ee++;if(H.state!=="input-streaming")continue;F[H.toolCallId]={text:H.rawInput??"",inputEncoding:H.inputEncoding,index:te,toolName:H.type==="dynamic-tool"?H.toolName:Nn(H),dynamic:H.type==="dynamic-tool",title:H.title,toolMetadata:H.toolMetadata}}return{message:O,activeTextParts:Ut(),activeReasoningParts:Ut(),partialToolCalls:F}}function rf({stream:M,messageMetadataSchema:C,dataPartSchemas:O,runUpdateMessageJob:F,onError:W,onToolCall:ee,onData:H,resetStateOnMessageIdChange:te=!1,resetStateOnFirstMessageStart:re=!1}){let ne=!0;return M.pipeThrough(new TransformStream({async transform(z,oe){await F(async({state:se,write:de})=>{function me(){let le=se.message.parts,ve=le.length-1;while(ve>=0&&le[ve].type!=="step-start")ve--;return le.slice(ve+1)}function Le(){return me().filter(ao)}function Ge(le){let ve=Le().find((Se)=>Se.toolCallId===le);if(ve==null){let Se=se.message.parts;for(let ce=Se.length-1;ce>=0;ce--){let Ie=Se[ce];if(ao(Ie)&&Ie.toolCallId===le){ve=Ie;break}}}if(ve==null)throw new oa({chunkType:"tool-invocation",chunkId:le,message:`No tool invocation found for tool call ID "${le}".`});return ve}function be(le){let ve=se.message.parts.filter(ao).find((Se)=>Se.approval?.id===le);if(ve==null)throw new oa({chunkType:"tool-approval-response",chunkId:le,message:`No tool invocation found for approval ID "${le}".`});return ve}function De(le,ve){let Se=ve??me().find((He)=>Lo(He)&&He.toolCallId===le.toolCallId),ce=le,Ie=Se;if(Se!=null){if(Se.state=le.state,Ie.type=`tool-${le.toolName}`,Ie.input=ce.input,Ie.output=ce.output,Ie.errorText=ce.errorText,Ie.rawInput=ce.rawInput,ce.inputEncoding!=null)Ie.inputEncoding=ce.inputEncoding;else delete Ie.inputEncoding;if(Ie.preliminary=ce.preliminary,le.title!==void 0)Ie.title=le.title;if(le.toolMetadata!==void 0)Ie.toolMetadata=le.toolMetadata;Ie.providerExecuted=ce.providerExecuted??Se.providerExecuted;let He=ce.providerMetadata;if(He!=null)if(le.state==="output-available"||le.state==="output-error"){let tt=Se;tt.resultProviderMetadata=He}else Se.callProviderMetadata=He}else se.message.parts.push({type:`tool-${le.toolName}`,toolCallId:le.toolCallId,state:le.state,title:le.title,...le.toolMetadata!==void 0?{toolMetadata:le.toolMetadata}:{},input:ce.input,...ce.inputEncoding!=null?{inputEncoding:ce.inputEncoding}:{},output:ce.output,rawInput:ce.rawInput,errorText:ce.errorText,providerExecuted:ce.providerExecuted,preliminary:ce.preliminary,...ce.providerMetadata!=null&&(le.state==="output-available"||le.state==="output-error")?{resultProviderMetadata:ce.providerMetadata}:{},...ce.providerMetadata!=null&&!(le.state==="output-available"||le.state==="output-error")?{callProviderMetadata:ce.providerMetadata}:{}})}function xe(le,ve){let Se=ve??me().find((He)=>He.type==="dynamic-tool"&&He.toolCallId===le.toolCallId),ce=le,Ie=Se;if(Se!=null){if(Se.state=le.state,Ie.toolName=le.toolName,Ie.input=ce.input,Ie.output=ce.output,Ie.errorText=ce.errorText,Ie.rawInput=ce.rawInput,ce.inputEncoding!=null)Ie.inputEncoding=ce.inputEncoding;else delete Ie.inputEncoding;if(Ie.preliminary=ce.preliminary,le.title!==void 0)Ie.title=le.title;if(le.toolMetadata!==void 0)Ie.toolMetadata=le.toolMetadata;Ie.providerExecuted=ce.providerExecuted??Se.providerExecuted;let He=ce.providerMetadata;if(He!=null)if(le.state==="output-available"||le.state==="output-error"){let tt=Se;tt.resultProviderMetadata=He}else Se.callProviderMetadata=He}else se.message.parts.push({type:"dynamic-tool",toolName:le.toolName,toolCallId:le.toolCallId,state:le.state,input:ce.input,...ce.inputEncoding!=null?{inputEncoding:ce.inputEncoding}:{},output:ce.output,errorText:ce.errorText,preliminary:ce.preliminary,providerExecuted:ce.providerExecuted,title:le.title,...le.toolMetadata!==void 0?{toolMetadata:le.toolMetadata}:{},...ce.providerMetadata!=null&&(le.state==="output-available"||le.state==="output-error")?{resultProviderMetadata:ce.providerMetadata}:{},...ce.providerMetadata!=null&&!(le.state==="output-available"||le.state==="output-error")?{callProviderMetadata:ce.providerMetadata}:{}})}async function we(le){if(le!=null){let ve=se.message.metadata!=null?ka(se.message.metadata,le):le;if(C!=null)await x({value:ve,schema:C,context:{field:"message.metadata",entityId:se.message.id}});se.message.metadata=ve}}switch(z.type){case"text-start":{let le={type:"text",text:"",providerMetadata:z.providerMetadata,state:"streaming"};se.activeTextParts[z.id]=le,se.message.parts.push(le),de();break}case"text-delta":{let le=se.activeTextParts[z.id];if(le==null)throw new oa({chunkType:"text-delta",chunkId:z.id,message:`Received text-delta for missing text part with ID "${z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});le.text+=z.delta,le.providerMetadata=z.providerMetadata??le.providerMetadata,de();break}case"text-end":{let le=se.activeTextParts[z.id];if(le==null)throw new oa({chunkType:"text-end",chunkId:z.id,message:`Received text-end for missing text part with ID "${z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});if(le.state="done",z.citations!=null)le.citations=z.citations;le.providerMetadata=z.providerMetadata??le.providerMetadata,delete se.activeTextParts[z.id],de();break}case"custom":{let le={type:"custom",kind:z.kind,providerMetadata:z.providerMetadata};se.message.parts.push(le),de();break}case"reasoning-start":{let le={type:"reasoning",id:z.id,text:"",providerMetadata:z.providerMetadata,state:"streaming"};se.activeReasoningParts[z.id]=le,se.message.parts.push(le),de();break}case"reasoning-delta":{let le=se.activeReasoningParts[z.id];if(le==null)throw new oa({chunkType:"reasoning-delta",chunkId:z.id,message:`Received reasoning-delta for missing reasoning part with ID "${z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});le.text+=z.delta,le.providerMetadata=z.providerMetadata??le.providerMetadata,de();break}case"reasoning-end":{let le=se.activeReasoningParts[z.id];if(le==null)throw new oa({chunkType:"reasoning-end",chunkId:z.id,message:`Received reasoning-end for missing reasoning part with ID "${z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});le.providerMetadata=z.providerMetadata??le.providerMetadata,le.state="done",delete se.activeReasoningParts[z.id],de();break}case"file":case"reasoning-file":se.message.parts.push({type:z.type,mediaType:z.mediaType,url:z.url,...z.providerMetadata!=null?{providerMetadata:z.providerMetadata}:{}}),de();break;case"source-url":se.message.parts.push({type:"source-url",sourceId:z.sourceId,url:z.url,title:z.title,providerMetadata:z.providerMetadata}),de();break;case"source-document":se.message.parts.push({type:"source-document",sourceId:z.sourceId,mediaType:z.mediaType,title:z.title,filename:z.filename,providerMetadata:z.providerMetadata}),de();break;case"tool-input-start":{let le=me().filter(Lo);if(se.partialToolCalls[z.toolCallId]={text:"",inputEncoding:z.inputEncoding,toolName:z.toolName,index:le.length,dynamic:z.dynamic,title:z.title,toolMetadata:z.toolMetadata},z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-streaming",inputEncoding:z.inputEncoding,input:void 0,providerExecuted:z.providerExecuted,title:z.title,toolMetadata:z.toolMetadata,providerMetadata:z.providerMetadata});else De({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-streaming",inputEncoding:z.inputEncoding,input:void 0,providerExecuted:z.providerExecuted,title:z.title,toolMetadata:z.toolMetadata,providerMetadata:z.providerMetadata});de();break}case"tool-input-delta":{let le=se.partialToolCalls[z.toolCallId];if(le==null)throw new oa({chunkType:"tool-input-delta",chunkId:z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});le.text+=z.inputTextDelta;let ve=le.inputEncoding==="text"?le.text:(await _m(le.text)).value;if(le.dynamic)xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"input-streaming",inputEncoding:le.inputEncoding,input:ve,rawInput:le.text,title:le.title,toolMetadata:le.toolMetadata});else De({toolCallId:z.toolCallId,toolName:le.toolName,state:"input-streaming",inputEncoding:le.inputEncoding,input:ve,rawInput:le.text,title:le.title,toolMetadata:le.toolMetadata});de();break}case"tool-input-available":if(z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-available",input:z.input,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:z.title,toolMetadata:z.toolMetadata});else De({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-available",input:z.input,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:z.title,toolMetadata:z.toolMetadata});if(de(),ee&&!z.providerExecuted)await ee({toolCall:z});break;case"tool-input-error":{let le=me().filter(ao).find((ve)=>ve.toolCallId===z.toolCallId);if(le!=null?le.type==="dynamic-tool":!!z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"output-error",input:z.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,toolMetadata:z.toolMetadata});else De({toolCallId:z.toolCallId,toolName:z.toolName,state:"output-error",input:z.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,toolMetadata:z.toolMetadata});de();break}case"tool-approval-request":{let le=Ge(z.toolCallId);le.state="approval-requested",le.approval={id:z.approvalId,...z.approvalDescriptor!=null?{descriptor:z.approvalDescriptor}:{},...Object.prototype.hasOwnProperty.call(z,"inputSchemaInput")?{inputSchemaInput:z.inputSchemaInput}:{},...z.reason!=null?{requestReason:z.reason}:{},...z.isAutomatic===!0?{isAutomatic:!0}:{},...z.signature!=null?{signature:z.signature}:{}},de();break}case"tool-approval-response":{let le=be(z.approvalId),ve=le.approval==null?{id:z.approvalId}:le.approval;if(le.state="approval-responded",le.approval={...ve,id:z.approvalId,approved:z.approved,...z.reason!=null?{reason:z.reason}:{}},z.providerExecuted!=null)le.providerExecuted=z.providerExecuted;if(z.providerMetadata!=null)le.callProviderMetadata=z.providerMetadata;de();break}case"tool-output-denied":{let le=Ge(z.toolCallId);le.state="output-denied",de();break}case"tool-output-available":{let le=Ge(z.toolCallId);if(le.type==="dynamic-tool")xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"output-available",input:le.input,output:z.output,preliminary:z.preliminary,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);else De({toolCallId:z.toolCallId,toolName:Nn(le),state:"output-available",input:le.input,output:z.output,providerExecuted:z.providerExecuted,preliminary:z.preliminary,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);de();break}case"tool-output-error":{let le=Ge(z.toolCallId);if(le.type==="dynamic-tool")xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"output-error",input:le.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);else De({toolCallId:z.toolCallId,toolName:Nn(le),state:"output-error",input:le.input,rawInput:le.rawInput,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);de();break}case"start-step":se.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{let le=me();if(se.activeTextParts=Ut(),se.activeReasoningParts=Ut(),se.partialToolCalls=Ut(),le.length>0)se.message.parts.splice(se.message.parts.length-le.length,le.length),de();break}case"start":{let le=re&&ne||te&&z.messageId!=null&&z.messageId!==se.message.id;if(ne=!1,le)Object.assign(se,dc({lastMessage:void 0,messageId:z.messageId??se.message.id}),{finishReason:void 0});if(z.messageId!=null)se.message.id=z.messageId;if(await we(z.messageMetadata),le||z.messageId!=null||z.messageMetadata!=null)de({updateStatus:!1});break}case"finish":if(z.finishReason!=null)se.finishReason=z.finishReason;if(await we(z.messageMetadata),z.messageMetadata!=null)de();break;case"message-metadata":if(await we(z.messageMetadata),z.messageMetadata!=null)de();break;case"error":W?.(Error(z.errorText));break;default:if(ef(z)){if(O?.[z.type]!=null){let Se=se.message.parts.findIndex((Ie)=>("id"in Ie)&&("data"in Ie)&&Ie.id===z.id&&Ie.type===z.type),ce=Se>=0?Se:se.message.parts.length;await x({value:z.data,schema:O[z.type],context:{field:`message.parts[${ce}].data`,entityName:z.type,entityId:z.id}})}let le=z;if(le.transient){H?.(le);break}let ve=le.id!=null?se.message.parts.find((Se)=>le.type===Se.type&&le.id===Se.id):void 0;if(ve!=null)ve.data=le.data;else se.message.parts.push(le);H?.(le),de()}}oe.enqueue(z)})}}))}function af({messageId:M,originalMessages:C=[],onStepEnd:O,onStepFinish:F,onEnd:W,onFinish:ee,onError:H,stream:te,getOutcome:re}){let ne=C?.[C.length-1];if(ne?.role!=="assistant")ne=void 0;else M=ne.id;let z=!1,oe=!1,se,de=(ve)=>{oe=!0,se=ve},me=te.pipeThrough(new TransformStream({transform(ve,Se){try{let ce=ve;if(ve.type==="start"){let Ie=ve;if(Ie.messageId==null&&M!=null)ce={...Ie,messageId:M}}if(ve.type==="abort")z=!0;Se.enqueue(ce)}catch(ce){throw de(ce),ce}}})),Le=O??F,Ge=W??ee;if(Ge==null&&Le==null)return me;let be=dc({lastMessage:ne?structuredClone(ne):void 0,messageId:M??""}),De=async(ve)=>{try{await ve({state:be,write:()=>{}})}catch(Se){throw de(Se),Se}},xe=!1,we=async({isCancelled:ve})=>{if(xe||!Ge)return;xe=!0;let Se=be.message.id===ne?.id,ce=re?.()??{status:"unknown"},Ie=oe?{status:"failed",error:se}:ce.status==="unknown"&&z?{status:"aborted"}:ce,He=ve&&Ie.status==="unknown";await Ge({isAborted:z||Ie.status==="aborted",...He?{isCancelled:!0}:{},isContinuation:Se,outcome:Ie,responseMessage:be.message,messages:[...Se?C.slice(0,-1):C,be.message],finishReason:be.finishReason})},le=async()=>{if(!Le)return;let ve=be.message.id===ne?.id;try{await Le({isContinuation:ve,responseMessage:structuredClone(be.message),messages:[...ve?C.slice(0,-1):C,structuredClone(be.message)]})}catch(Se){H(Se)}};return rf({stream:me,runUpdateMessageJob:De,onError:H}).pipeThrough(new TransformStream({async transform(ve,Se){if(ve.type==="finish-step")await le();Se.enqueue(ve)},async cancel(){await we({isCancelled:!0})},async flush(){await we({isCancelled:!1})}}))}function of(M,{tools:C,sendReasoning:O=!0,sendSources:F=!1,sendStart:W=!0,sendFinish:ee=!0,onError:H=()=>"An error occurred.",messageMetadata:te,responseMessageId:re}={}){let ne=(oe)=>{let se=C?.[oe.toolName];if(se==null)return oe.dynamic;return se?.type==="dynamic"?!0:void 0},z=M.type;switch(z){case"text-start":return{type:"text-start",id:M.id,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"text-delta":return{type:"text-delta",id:M.id,delta:M.text,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"text-end":return{type:"text-end",id:M.id,...M.citations!=null?{citations:M.citations}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"reasoning-start":case"reasoning-end":if(!O)return;return{type:z,id:M.id,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"reasoning-delta":if(!O)return;return{type:"reasoning-delta",id:M.id,delta:M.text,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"file":case"reasoning-file":if(z==="reasoning-file"&&!O)return;return{type:M.type,mediaType:M.file.mediaType,url:`data:${M.file.mediaType};base64,${M.file.base64}`,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"source":if(!F)return;if(M.sourceType==="url")return{type:"source-url",sourceId:M.id,url:M.url,title:M.title,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};if(M.sourceType==="document")return{type:"source-document",sourceId:M.id,mediaType:M.mediaType,title:M.title,filename:M.filename,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};return;case"custom":return{type:"custom",kind:M.kind,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"tool-input-start":{let oe=ne(M);return{type:"tool-input-start",toolCallId:M.id,toolName:M.toolName,...M.inputEncoding!=null?{inputEncoding:M.inputEncoding}:{},...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},...M.title!=null?{title:M.title}:{}}}case"tool-input-delta":return{type:"tool-input-delta",toolCallId:M.id,inputTextDelta:M.delta};case"tool-call":{let oe=ne(M);if(M.invalid)return{type:"tool-input-error",toolCallId:M.toolCallId,toolName:M.toolName,input:M.input,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},errorText:H(M.error),...M.title!=null?{title:M.title}:{}};return{type:"tool-input-available",toolCallId:M.toolCallId,toolName:M.toolName,input:M.input,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},...M.title!=null?{title:M.title}:{}}}case"tool-approval-request":{let oe=Kn(M.toolCall);return{type:"tool-approval-request",approvalId:M.approvalId,toolCallId:M.toolCall.toolCallId,...oe!=null&&!co(oe.value,M.toolCall.input)?{inputSchemaInput:oe.value}:{},...M.reason!=null?{reason:M.reason}:{},...M.isAutomatic!=null?{isAutomatic:M.isAutomatic}:{},...M.signature!=null?{signature:M.signature}:{}}}case"tool-approval-response":return{type:"tool-approval-response",approvalId:M.approvalId,approved:M.approved,...M.reason!=null?{reason:M.reason}:{},...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{}};case"tool-result":{let oe=ne(M);return{type:"tool-output-available",toolCallId:M.toolCallId,output:M.output===void 0?null:M.output,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...M.preliminary!=null?{preliminary:M.preliminary}:{},...oe!=null?{dynamic:oe}:{}}}case"tool-error":{let oe=ne(M);return{type:"tool-output-error",toolCallId:M.toolCallId,errorText:M.providerExecuted?typeof M.error==="string"?M.error:JSON.stringify(M.error):H(M.error),...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{}}}case"tool-output-denied":return{type:"tool-output-denied",toolCallId:M.toolCallId};case"error":return{type:"error",errorText:H(M.error)};case"start-step":return{type:"start-step"};case"finish-step":return{type:"finish-step"};case"start":if(!W)return;return{type:"start",...te!=null?{messageMetadata:te}:{},...re!=null?{messageId:re}:{}};case"finish":if(!ee)return;return{type:"finish",finishReason:M.finishReason,...te!=null?{messageMetadata:te}:{}};case"abort":return M;case"tool-input-end":case"raw":return;default:throw Error(`Unknown chunk type: ${z}`)}}function nf({stream:M,tools:C,sendReasoning:O=!0,sendSources:F=!1,sendStart:W=!0,sendFinish:ee=!0,onError:H=()=>"An error occurred.",messageMetadata:te,originalMessages:re,generateMessageId:ne,onStepEnd:z,onStepFinish:oe,onEnd:se,onFinish:de}){let me={status:"unknown"},Le=!1,Ge=(Se)=>{if(!Le&&me.status!=="completed"&&me.status!=="aborted"&&Se.status!=="unknown"&&(me.status==="unknown"||Se.status!=="failed"))me=Se},be=(Se)=>{Le=!0,me={status:"failed",error:Se}},De=ne!=null?Zm({originalMessages:re,responseMessageId:ne}):void 0,xe=M.getReader(),we=!1,le=!1,ve=()=>{if(!we)xe.releaseLock(),we=!0};return af({stream:new ReadableStream({async pull(Se){try{let{done:ce,value:Ie}=await xe.read();if(ce){if(ve(),!le)Se.close()}else Se.enqueue(Ie)}catch(ce){if(ve(),!le)be(ce),Se.error(ce)}},async cancel(Se){if(le=!0,we)return;try{await xe.cancel(Se)}finally{ve()}}}).pipeThrough(new TransformStream({transform:async(Se,ce)=>{try{let Ie=te?.({part:Se}),He=of(Se,{tools:C,sendReasoning:O,sendSources:F,sendStart:W,sendFinish:ee,onError:H,messageMetadata:Ie,responseMessageId:De});if(He!=null&&Se.type!=="finish-step")ce.enqueue(He);if(Ie!=null&&Se.type!=="start"&&Se.type!=="finish")ce.enqueue({type:"message-metadata",messageMetadata:Ie});if(He!=null&&Se.type==="finish-step")ce.enqueue(He);if(Se.type==="finish")Ge({status:"completed"});else if(Se.type==="abort")Ge({status:"aborted"});else if(Se.type==="error")Ge({status:"failed",error:Se.error})}catch(Ie){throw be(Ie),Ie}}})),messageId:De??ne?.(),originalMessages:re,onStepEnd:z??oe,onEnd:se??de,onError:H,getOutcome:()=>me})}function Dn(M){return uc(M.pipeThrough(new TransformStream))}function uc(M){return M[Symbol.asyncIterator]=function(){let C=this.getReader(),O=!1;async function F(W){if(O)return;O=!0;try{if(W)await C.cancel?.()}finally{try{C.releaseLock()}catch{}}}return{async next(){if(O)return{done:!0,value:void 0};let W;try{W=await C.read()}catch(te){throw await F(!1),te}let{done:ee,value:H}=W;if(ee)return await F(!0),{done:!0,value:void 0};return{done:!1,value:H}},async return(){return await F(!0),{done:!0,value:void 0}},async throw(W){throw await F(!0),W}}},M}async function sf({stream:M,onError:C,abortSignal:O}){let F=M.getReader(),W=()=>{F.cancel().catch(()=>{})};if(O?.aborted)W();else O?.addEventListener("abort",W,{once:!0});try{while(!0){let{done:ee}=await F.read();if(ee)break}}catch(ee){C?.(ee)}finally{O?.removeEventListener("abort",W),F.releaseLock()}}function Pi(){let M,C;return{promise:new Promise((O,F)=>{M=O,C=F}),resolve:M,reject:C}}function lf(){let M=[],C=null,O=!1,F=!1,W=Pi(),ee=()=>{if(F)return;O=!0,W.resolve(),M.forEach(({reader:te,onCancel:re})=>{re?.(),te.cancel()}),M=[],C?.close()},H=async()=>{if(F)return;if(O&&M.length===0){C?.close();return}if(M.length===0)return W=Pi(),await W.promise,await H();let te=M[0];try{let{value:re,done:ne}=await te.reader.read();if(F)return;if(ne)if(M.shift(),M.length===0&&O)C?.close();else await H();else C?.enqueue(re)}catch(re){if(F)return;te.onError?.(re),C?.error(re),M.shift(),ee()}};return{stream:new ReadableStream({start(te){C=te},pull:H,async cancel(){F=!0,O=!0,W.resolve();for(let{reader:te,onCancel:re}of M)re?.(),await te.cancel();M=[]}}),addStream:(te,re)=>{if(F){re?.onCancel?.(),te.cancel().catch(()=>{});return}if(O)throw Error("Cannot add inner stream: outer stream is closed");M.push({reader:te.getReader(),...re}),W.resolve()},close:()=>{if(F)return;if(O=!0,W.resolve(),M.length===0)C?.close()},terminate:ee}}var pc=Symbol("streamRetryAttemptBoundary");function cf({warnings:M}){return{[pc]:!0,warnings:M}}function Zn(M){return typeof M==="object"&&M!=null&&pc in M}function df({stream:M,tools:C,callId:O,messages:F,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,toolApproval:re,runtimeContext:ne,toolApprovalSecret:z,generateId:oe,onToolExecutionStart:se,onToolExecutionEnd:de,executeToolInTelemetryContext:me,runInTracingChannelSpan:Le,toolCallConcurrency:Ge}){let be=[];return M.pipeThrough(new TransformStream({async transform(De,xe){if(xe.enqueue(De),Zn(De)){be.length=0;return}switch(De.type){case"tool-call":{if(De.invalid)return;let we=et(C,De.toolName);if(we==null)return;let le=await Jn({tools:C,toolCall:De,toolApproval:re,messages:F,toolsContext:te,runtimeContext:ne});if(le.type==="not-applicable"){if(we.execute!=null&&De.providerExecuted!==!0)be.push(De);return}let ve=oe(),Se=await rc({secret:z,approvalId:ve,toolCallId:De.toolCallId,toolName:De.toolName,input:De.input});switch(le.type){case"user-approval":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:De,...le.reason!=null?{reason:le.reason}:{},...Se!=null?{signature:Se}:{}});return;case"denied":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:De,isAutomatic:!0,...Se!=null?{signature:Se}:{}}),xe.enqueue({type:"tool-approval-response",approvalId:ve,approved:!1,toolCall:De,reason:le.reason,providerExecuted:De.providerExecuted}),xe.enqueue({type:"tool-output-denied",toolCallId:De.toolCallId,toolName:De.toolName});return;case"approved":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:De,isAutomatic:!0,...Se!=null?{signature:Se}:{}}),xe.enqueue({type:"tool-approval-response",approvalId:ve,approved:!0,toolCall:De,reason:le.reason,providerExecuted:De.providerExecuted})}if(we.execute!=null&&De.providerExecuted!==!0)be.push(De);return}case"model-call-end":if(!Ll(De.finishReason))return;await Xn({items:be,concurrency:Ge,abortSignal:W,execute:async(we)=>{try{let le=await zn({toolCall:we,tools:C,callId:O,messages:F,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:se,onToolExecutionEnd:de,executeToolInTelemetryContext:me,runInTracingChannelSpan:Le,onPreliminaryToolResult:(ve)=>{xe.enqueue(ve)}});if(le!=null)xe.enqueue({type:"tool-execution-end",toolCallId:le.output.toolCallId,toolExecutionMs:le.toolExecutionMs}),xe.enqueue(le.output)}catch(le){xe.enqueue({type:"error",error:le})}}})}}}))}var uf={file:!0,custom:!1,source:!1,"text-start":!1,"text-end":!1,"text-delta":!0,"reasoning-start":!1,"reasoning-end":!1,"reasoning-delta":!0,"reasoning-file":!0,"tool-input-start":!1,"tool-input-end":!1,"tool-input-delta":!0,"tool-approval-request":!1,"tool-approval-response":!1,"tool-call":!0,"tool-result":!1,"tool-error":!1,"tool-output-denied":!1,"tool-execution-end":!1,"model-call-start":!1,"model-call-response-metadata":!1,"model-call-end":!1,error:!1,raw:!1};function Oi(M){if(!uf[M.type])return!1;switch(M.type){case"text-delta":case"reasoning-delta":return M.text.length>0;case"tool-input-delta":return M.delta.length>0;case"file":case"reasoning-file":case"tool-call":return!0;default:return!1}}function pf({stream:M,tools:C,stepInputMessages:O,abortSignal:F,toolsContext:W}){if(C==null)return M;let ee=Ut(),H=({toolCallId:te,toolName:re})=>{let ne=ee[te],z=ne?.validatedContexts[re];if(z!=null)return z;let oe=et(C,re),se=lo({toolName:re,context:et(W,re),contextSchema:oe?.contextSchema});if(ne!=null)ne.validatedContexts[re]=se;return se};return M.pipeThrough(new TransformStream({async transform(te,re){if(re.enqueue(te),Zn(te)){ee=Ut();return}switch(te.type){case"tool-input-start":{ee[te.id]={toolName:te.toolName,validatedContexts:Ut()};let ne=et(C,te.toolName);if(ne?.onInputStart!=null)await ne.onInputStart({toolCallId:te.id,messages:O,abortSignal:F,context:await H({toolCallId:te.id,toolName:te.toolName})});break}case"tool-input-delta":{let ne=ee[te.id]?.toolName,z=et(C,ne);if(z?.onInputDelta!=null)await z.onInputDelta({inputTextDelta:te.delta,toolCallId:te.id,messages:O,abortSignal:F,context:await H({toolCallId:te.id,toolName:ne})});break}case"tool-call":{let ne=te.toolName,z=et(C,ne);if(!te.invalid&&z?.onInputAvailable!=null){let oe=H({toolCallId:te.toolCallId,toolName:ne});delete ee[te.toolCallId],await z.onInputAvailable({input:te.input,toolCallId:te.toolCallId,messages:O,abortSignal:F,context:await oe})}else delete ee[te.toolCallId]}}}}))}function mf(M){if(gf(M)||m.isInstance(M)||gi.isInstance(M))return M;let C=ko(M);if(C==null)return M;let O=st(M),F=O?C:ko(ko(C.response)?.error)??ko(C.error)??C;if(typeof F.message!=="string")return M;let W=ji(F.type)??ji(C.type),ee=Ni(F.code)??Ni(C.code),H=Gr(F.statusCode)??Gr(C.statusCode)??Gr(F.status_code)??Gr(C.status_code)??Gr(F.status)??Gr(C.status)??Gr(F.code)??Gr(C.code),te=ff(F.message),re=H??te?.statusCode,ne=Po(F.isRetryable)??Po(C.isRetryable)??Po(F.is_retryable)??Po(C.is_retryable);return new gi({message:F.message,type:W,code:ee,statusCode:re,isRetryable:ne??te?.isRetryable??hf(re),data:O?M.data:M})}function ff(M){switch(M.trim().toLowerCase()){case"overloaded":case"overloaded error":case"model overloaded":return{statusCode:503,isRetryable:!0};case"internal server error":return{statusCode:500,isRetryable:!0};case"service unavailable":return{statusCode:503,isRetryable:!0};default:return}}function hf(M){return M!=null&&(M===408||M===409||M===429||M>=500)}function ko(M){return typeof M==="object"&&M!=null?M:void 0}function gf(M){return M instanceof Error||Object.prototype.toString.call(M)==="[object Error]"}function ji(M){return typeof M==="string"?M:void 0}function Ni(M){return typeof M==="string"||typeof M==="number"?M:void 0}function Po(M){return typeof M==="boolean"?M:void 0}function Gr(M){let C=typeof M==="string"&&/^\d{3}$/.test(M)?Number(M):M;return typeof C==="number"&&Number.isInteger(C)&&C>=400&&C<=599?C:void 0}var yf=V({prefix:"aitxt",size:24}),vf=V({prefix:"call",size:24});async function wf({model:M,tools:C,toolOrder:O,output:F,toolChoice:W,prompt:ee,system:H,instructions:te,messages:re,allowSystemInMessages:ne,download:z,abortSignal:oe,headers:se,includeRawChunks:de,providerOptions:me,repairToolCall:Le,refineToolInput:Ge,executeLanguageModelCallInTelemetryContext:be=async({execute:Ke})=>await Ke(),callId:De,toolsContext:xe,experimental_sandbox:we,_internal:{generateId:le=yf,generateCallId:ve=vf,now:Se=io,collectContent:ce=!0}={},onStart:Ie,onLanguageModelCallStart:He,onLanguageModelCallEnd:tt,...he}){let Ke=so(M),Re=De??ve(),ot=await Bn({instructions:te,system:H,prompt:ee,messages:re,allowSystemInMessages:ne}),It=await Il({prompt:{instructions:ot.instructions,messages:ot.messages},supportedUrls:await Ke.supportedUrls,download:z,abortSignal:oe,provider:Ke.provider.split(".")[0]}),Ot=await Vn({tools:C,toolOrder:O,toolsContext:xe,experimental_sandbox:we}),Zt=Gn({toolChoice:W});await lt({event:{promptMessages:It},callbacks:Ie});let ar={callId:Re,provider:Ke.provider,modelId:Ke.modelId,instructions:ot.instructions,messages:ot.messages,tools:Ot,...he};await lt({event:ar,callbacks:He});let wr=Se(),{stream:br,response:Br,request:Sr}=await be({...ar,execute:async()=>await Ke.doStream({...he,tools:Ot,toolChoice:Zt,responseFormat:await F?.responseFormat,prompt:It,providerOptions:me,abortSignal:oe,headers:se,includeRawChunks:de})});return{stream:Dn(br.pipeThrough(bf({tools:C,instructions:ot.instructions,messages:ot.messages,repairToolCall:Le,refineToolInput:Ge,abortSignal:oe,callId:Re,provider:Ke.provider,modelId:Ke.modelId,toolChoice:Zt,generateId:le,now:Se,callStartTimestampMs:wr,onLanguageModelCallEnd:tt,collectContent:ce}))),response:Br,request:Sr}}function bf({tools:M,instructions:C,messages:O,repairToolCall:F,refineToolInput:W,abortSignal:ee,callId:H,provider:te,modelId:re,toolChoice:ne,generateId:z,now:oe,callStartTimestampMs:se,onLanguageModelCallEnd:de,collectContent:me}){let Le=new Map,Ge=[],be=[],De=new Map,xe=new Map,we=new Map,le=new Map,ve=z(),Se=re,ce,Ie,He=[],tt=ne.type==="none";return new TransformStream({async transform(he,Ke){if(Sf(he)){let Re=oe();if(ce==null)ce=Re-se;else if(Ie!=null)He.push(Re-Ie);Ie=Re}if(tt&&(he.type==="tool-input-start"||he.type==="tool-input-delta"||he.type==="tool-input-end"))return;switch(he.type){case"error":Ke.enqueue({type:"error",error:mf(he.error)});break;case"text-start":_a({enabled:me,content:Ge,rawContent:be,partIndexes:De,rawPartIndexes:we,id:he.id,type:"text",providerMetadata:he.providerMetadata}),Ke.enqueue(he);break;case"text-delta":_a({enabled:me,content:Ge,rawContent:be,partIndexes:De,rawPartIndexes:we,id:he.id,type:"text",textDelta:he.delta,providerMetadata:he.providerMetadata}),Ke.enqueue({type:"text-delta",id:he.id,text:he.delta,providerMetadata:he.providerMetadata});break;case"text-end":_a({enabled:me,content:Ge,rawContent:be,partIndexes:De,rawPartIndexes:we,id:he.id,type:"text",providerMetadata:he.providerMetadata}),De.delete(he.id),we.delete(he.id),Ke.enqueue(he);break;case"reasoning-start":_a({enabled:me,content:Ge,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",providerMetadata:he.providerMetadata}),Ke.enqueue(he);break;case"reasoning-delta":_a({enabled:me,content:Ge,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",textDelta:he.delta,providerMetadata:he.providerMetadata}),Ke.enqueue({type:"reasoning-delta",id:he.id,text:he.delta,providerMetadata:he.providerMetadata});break;case"reasoning-end":_a({enabled:me,content:Ge,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",providerMetadata:he.providerMetadata}),xe.delete(he.id),le.delete(he.id),Ke.enqueue(he);break;case"file":case"reasoning-file":{let Re=new wm({data:await Ol({data:he.data,abortSignal:ee}),mediaType:he.mediaType});if(me)Ge.push({type:he.type,file:Re,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{}});if(me)be.push(he);Ke.enqueue({type:he.type,file:Re,providerMetadata:he.providerMetadata});break}case"finish":{let Re=Al(he.usage),ot=oe()-se,It={responseTimeMs:ot,effectiveOutputTokensPerSecond:Vr({tokens:Re.outputTokens,durationMs:ot}),outputTokensPerSecond:ce==null?void 0:Vr({tokens:Re.outputTokens,durationMs:ot-ce}),inputTokensPerSecond:ce==null?void 0:Vr({tokens:Re.inputTokens,durationMs:ce}),effectiveTotalTokensPerSecond:Vr({tokens:On(Re.inputTokens,Re.outputTokens),durationMs:ot}),timeToFirstOutputMs:ce,timeBetweenOutputChunksMs:He.length>0?If(He):void 0};await lt({event:{callId:H,provider:te,modelId:Se,finishReason:he.finishReason.unified,usage:Re,content:Ge,responseId:ve,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},performance:It},callbacks:de});let Ot=ne.type==="auto"?void 0:ne,Zt=Ot!=null&&(Ot.type==="none"?Le.size>0:he.finishReason.unified!=="interrupted"&&![...Le.values()].some((ar)=>Ot.type==="required"||ar.toolName===Ot.toolName))?new Un({toolChoice:Ot,finishReason:he.finishReason.unified,provider:te,modelId:re,content:be}):void 0;if(Ke.enqueue({type:"model-call-end",finishReason:Zt==null?he.finishReason.unified:"error",rawFinishReason:he.finishReason.raw,usage:Re,providerMetadata:he.providerMetadata,performance:It}),Zt!=null){Ke.enqueue({type:"error",error:Zt});break}break}case"tool-call":if(me)be.push(he);try{let Re=await Gl({toolCall:he,tools:M,repairToolCall:tt?void 0:F,refineToolInput:tt?void 0:W,instructions:C,messages:O,abortSignal:ee});if(Le.set(Re.toolCallId,Re),me)Ge.push(Re);if(tt)break;if(Ke.enqueue(Re),Re.invalid){if(!Re.providerExecuted)Ke.enqueue({type:"tool-error",toolCallId:Re.toolCallId,toolName:Re.toolName,input:Re.input,error:A(Re.error),dynamic:!0,title:Re.title,...Re.toolMetadata!=null?{toolMetadata:Re.toolMetadata}:{}});break}}catch(Re){Ke.enqueue({type:"error",error:Re})}break;case"tool-approval-request":{if(me)be.push(he);if(tt)break;let Re=Le.get(he.toolCallId);if(Re==null){Ke.enqueue({type:"error",error:new $n({toolCallId:he.toolCallId,approvalId:he.approvalId})});break}let ot={type:"tool-approval-request",approvalId:he.approvalId,toolCall:Re};if(Ke.enqueue(ot),me)Ge.push(ot);break}case"tool-result":{if(me)be.push(he);let Re=he.toolName,ot=Le.get(he.toolCallId),It=he.isError?{type:"tool-error",toolCallId:he.toolCallId,toolName:Re,input:ot?.input,providerExecuted:!0,error:he.result,dynamic:he.dynamic,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},...ot?.toolMetadata!=null?{toolMetadata:ot.toolMetadata}:{}}:{type:"tool-result",toolCallId:he.toolCallId,toolName:Re,input:ot?.input,output:he.result,providerExecuted:!0,dynamic:he.dynamic,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},...ot?.toolMetadata!=null?{toolMetadata:ot.toolMetadata}:{}};if(!tt)Ke.enqueue(It);if(me)Ge.push(It);break}case"tool-input-start":{let Re=et(M,he.toolName);Ke.enqueue({...he,dynamic:he.dynamic??Re?.type==="dynamic",title:Re?.title,...Re?.metadata!=null?{toolMetadata:Re.metadata}:{}});break}case"stream-start":Ke.enqueue({type:"model-call-start",warnings:he.warnings});break;case"response-metadata":ve=he.id??ve,Se=he.modelId??Se,Ke.enqueue({type:"model-call-response-metadata",id:he.id,timestamp:he.timestamp,modelId:he.modelId});break;default:if(he.type==="custom"||he.type==="source"){if(me)Ge.push(he);if(me)be.push(he)}Ke.enqueue(he)}}})}function Sf(M){return M.type==="text-delta"&&M.delta.length>0||M.type==="reasoning-delta"&&M.delta.length>0||M.type==="tool-input-delta"&&M.delta.length>0||M.type==="file"||M.type==="reasoning-file"||M.type==="tool-call"}function If(M){let C=[...M].sort((F,W)=>F-W),O=M.reduce((F,W)=>F+W,0);return{min:C[0],p10:En(C,0.1),median:En(C,0.5),avg:O/M.length,p90:En(C,0.9),max:C[C.length-1]}}function En(M,C){return M[Math.ceil(C*M.length)-1]}function _a({enabled:M,content:C,rawContent:O,partIndexes:F,rawPartIndexes:W,id:ee,type:H,textDelta:te,providerMetadata:re}){if(!M)return;let ne=F.get(ee);if(ne==null)ne=C.push({type:H,text:"",...re!=null?{providerMetadata:re}:{}})-1,F.set(ee,ne);let z=W.get(ee);if(z==null)z=O.push({type:H,text:"",...re!=null?{providerMetadata:re}:{}})-1,W.set(ee,z);let oe=C[ne],se=O[z];if(te!=null)oe.text+=te,se.text+=te;if(re!=null)oe.providerMetadata=re,se.providerMetadata=re}var Tf=V({prefix:"aitxt",size:24}),xf=V({prefix:"call",size:24});function Mt(M){return Ef(M)}function Ef(M){let C=Kl(M.experimental_steering);try{return Mf(M,C)}catch(O){throw C?.end("error"),O}}function Mf({model:M,tools:C,toolChoice:O,instructions:F,system:W,prompt:ee,messages:H,allowSystemInMessages:te,maxRetries:re,streamRetries:ne,abortSignal:z,timeout:oe,headers:se,stopWhen:de=Jl(1),experimental_sandbox:me,output:Le,toolApproval:Ge,experimental_toolCallers:be,experimental_toolApprovalSecret:De,experimental_telemetry:xe,telemetry:we=xe,prepareStep:le,providerOptions:ve,activeTools:Se,toolOrder:ce,toolCallConcurrency:Ie,experimental_repairToolCall:He,repairToolCall:tt=He,experimental_refineToolInput:he,experimental_transform:Ke,experimental_download:Re,includeRawChunks:ot,onChunk:It,onError:Ot,onFinish:Zt,onEnd:ar=Zt,onAbort:wr,onStepEnd:br,onStepError:Br,onStepFinish:Sr,onStart:la,experimental_onStart:ca,onStepStart:da,experimental_onStepStart:ua,onLanguageModelCallStart:Pa,experimental_onLanguageModelCallStart:Oa,onLanguageModelCallEnd:ja,experimental_onLanguageModelCallEnd:Na,onToolExecutionStart:Da,onToolExecutionEnd:qa,experimental_onToolCallStart:$a,experimental_onToolCallFinish:pa,runtimeContext:ma={},toolsContext:er={},experimental_include:bt,include:_r=bt,_internal:{now:Wt=io,generateId:Wr=Tf,generateCallId:Ua=xf,retention:nt={replay:!0,collectContent:!0}}={},...Ar},Ht){let fa=oc(Ie),ha=Ml(oe),kr=Cl(oe),Ir=Rl(oe),Tr=_l(oe),or=kr!=null?new AbortController:void 0,Ye=Ir!=null?new AbortController:void 0,ir=Tr!=null?new AbortController:void 0,Pr=Ot??(({error:ht})=>{console.error(ht)}),Rt=la??ca,ga=da??ua,ya=Pa??Oa,Nt=ja??Na,Hr=Da??$a,xr=qa??pa,zt=br??Sr;return new _f({retention:nt,model:so(M),telemetry:we,headers:se,settings:Ar,maxRetries:re,streamRetries:ne,abortSignal:Wn(z,ha,or?.signal,Ye?.signal,ir?.signal),stepTimeoutMs:kr,stepAbortController:or,firstChunkTimeoutMs:Ir,firstChunkAbortController:Ye,chunkTimeoutMs:Tr,chunkAbortController:ir,instructions:F,system:W,prompt:ee,messages:H,allowSystemInMessages:te,experimental_sandbox:me,steeringRun:Ht,tools:C,toolsContext:er,runtimeContext:ma,toolChoice:O,transforms:Ne(Ke),activeTools:Se,toolOrder:ce,toolCallConcurrency:fa,repairToolCall:tt,refineToolInput:he,stopConditions:Ne(de),output:Le,toolApproval:Ge,experimental_toolCallers:be,experimental_toolApprovalSecret:De,providerOptions:ve,prepareStep:le,timeout:oe,onChunk:It,onError:Pr,canRetryStreamViaOnError:ne!==void 0&&Ot!=null,onEnd:ar,onAbort:wr,onStepFinish:zt,onStepError:Br,onStart:Rt,onStepStart:ga,onLanguageModelCallStart:ya,onLanguageModelCallEnd:Nt,onToolExecutionStart:Hr,onToolExecutionEnd:xr,now:Wt,generateId:Wr,generateCallId:Ua,download:Re,include:{requestBody:_r?.requestBody??!1,requestMessages:_r?.requestMessages??!1,rawChunks:_r?.rawChunks??ot??!1}})}var qn=Symbol("streamRetryBoundary");function Fo(M){return qn in M}async function Di(M){try{await M}catch{}}function Cf(M,C=!0){let O=void 0,F="",W="",ee=void 0,H=void 0,te=!1;function re(){O=void 0,F="",W="",ee=void 0,H=void 0,te=!1}function ne({controller:oe,chunk:se}){oe.enqueue(se)}function z({controller:oe,partialOutput:se=void 0}){ne({controller:oe,chunk:{part:{type:"text-delta",id:O,text:W,providerMetadata:ee},partialOutput:se}}),W=""}return new TransformStream({async transform(oe,se){if(!C){se.enqueue(Fo(oe)?oe:{part:oe,partialOutput:void 0});return}if(Fo(oe)){re(),se.enqueue(oe);return}if(oe.type==="start-step")re();if(oe.type==="finish-step"&&W.length>0)z({controller:se});if(oe.type!=="text-delta"&&oe.type!=="text-start"&&oe.type!=="text-end"){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(O==null)O=oe.id;else if(oe.id!==O){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(oe.type==="text-start"){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(oe.type==="text-end"){if(W.length>0)z({controller:se});ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(F+=oe.text,W+=oe.text,ee=oe.providerMetadata??ee,oe.text.length===0&&oe.providerMetadata!=null){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}let de=await M.parsePartialOutput({text:F});if(de!==void 0){let me=typeof de.partial==="string"?de.partial:JSON.stringify(de.partial);if(!te||me!==H)z({controller:se,partialOutput:de.partial}),H=me,te=!0}}})}function Rf({stream:M,transforms:C,tools:O,stopStream:F}){let W=M.getReader(),ee=!1,H,te,re=()=>{let ne=new ReadableStream({async pull(z){let{done:oe,value:se}=await W.read();if(oe){ee=!0,z.close();return}if(Fo(se)){H=se,z.close();return}z.enqueue(se)},cancel(z){return W.cancel(z)}},{highWaterMark:0});for(let z of C)ne=ne.pipeThrough(z({tools:O,stopStream:F}));return ne.getReader()};return new ReadableStream({async pull(ne){te??=re();let{done:z,value:oe}=await te.read();if(!z){ne.enqueue(oe);return}if(te=void 0,H!=null){ne.enqueue(H),H=void 0;return}if(ee)ne.close()},async cancel(ne){await te?.cancel(ne),await W.cancel(ne)}})}var _f=class{constructor({retention:M,model:C,telemetry:O,headers:F,settings:W,maxRetries:ee,streamRetries:H,abortSignal:te,stepTimeoutMs:re,stepAbortController:ne,firstChunkTimeoutMs:z,firstChunkAbortController:oe,chunkTimeoutMs:se,chunkAbortController:de,instructions:me,system:Le,prompt:Ge,messages:be,allowSystemInMessages:De,experimental_sandbox:xe,steeringRun:we,tools:le,toolChoice:ve,transforms:Se,activeTools:ce,toolOrder:Ie,toolCallConcurrency:He,repairToolCall:tt,refineToolInput:he,stopConditions:Ke,output:Re,toolApproval:ot,experimental_toolCallers:It,experimental_toolApprovalSecret:Ot,providerOptions:Zt,prepareStep:ar,now:wr,generateId:br,generateCallId:Br,timeout:Sr,onChunk:la,onError:ca,canRetryStreamViaOnError:da,onEnd:ua,onAbort:Pa,onStepFinish:Oa,onStepError:ja,onStart:Na,onStepStart:Da,onLanguageModelCallStart:qa,onLanguageModelCallEnd:$a,onToolExecutionStart:pa,onToolExecutionEnd:ma,runtimeContext:er,toolsContext:bt,download:_r,include:Wt}){this._totalUsage=new je,this._finishReason=new je,this._rawFinishReason=new je,this._steps=new je,this._initialResponseMessages=new je,this.streamClaimed=!1,this.retention=M,this.outputSpecification=Re,this.tools=le;let Wr=jl({tools:le,toolCallers:It}),Ua=ql({tools:le,toolCallers:Wr}),nt=zl({telemetry:O,includeRuntimeContext:O?.includeRuntimeContext,includeToolsContext:O?.includeToolsContext}),Ar,Ht=[],fa=void 0,ha=void 0,kr=void 0,Ir={},Tr=[],or=[],Ye=[],ir=[],Pr,Rt=[],ga=[],ya=!1,Nt=C,Hr=()=>{let Ue=new Set;return(Xe)=>{if(!Ue.has(Xe))return Ue.add(Xe),Xe;let Ee=br(),St=Ee,Fe=0;while(Ue.has(St))St=`${Ee}-${++Fe}`;return Ue.add(St),St}},xr=Hr(),zt=Hr(),ht=new Map,tr=Ut(),lr=Ut(),zr,mr=new Set,Dt,nr=async(Ue)=>{if(Dt==null||te?.aborted)return;let{event:Xe}=Dt;Dt=void 0,await lt({event:{...Xe,error:Ue},callbacks:[ja,nt.onStepError]})},Bo=new TransformStream({async transform(Ue,Xe){if(Fo(Ue)){let Fe=Ue[qn];Ht=[],lr=Ut(),tr=Ut(),Ir=Fe.request,Tr=Fe.request.messages??[],or=Fe.warnings;return}let{part:Ee}=Ue;Xe.enqueue(Ue);let St=Ee.type==="error"&&mr.has(Ee.error);if(!St)await lt({event:{chunk:Ee},callbacks:la});if(Ee.type==="error"){let Fe=ro(Ee.error);if(Oo.isInstance(Fe))zr=Fe;if(St)mr.delete(Ee.error);else{if(Dt!=null)Dt.error=Fe;await lt({event:{error:Fe},callbacks:async(Jt)=>{await ca(Jt)}})}}if(Ee.type==="custom"||Ee.type==="source"||Ee.type==="tool-call"||Ee.type==="tool-approval-request"||Ee.type==="tool-approval-response"||Ee.type==="tool-error"){if(M.collectContent)Ht.push(Ee)}if(Ee.type==="text-start"){if(tr[Ee.id]={type:"text",text:"",providerMetadata:Ee.providerMetadata},M.collectContent)Ht.push(tr[Ee.id])}if(Ee.type==="text-delta"){let Fe=tr[Ee.id];if(Fe==null){Xe.enqueue({part:{type:"error",error:`text part ${Ee.id} not found`},partialOutput:void 0});return}if(M.collectContent)Fe.text+=Ee.text;Fe.providerMetadata=Ee.providerMetadata??Fe.providerMetadata}if(Ee.type==="text-end"){let Fe=tr[Ee.id];if(Fe==null){Xe.enqueue({part:{type:"error",error:`text part ${Ee.id} not found`},partialOutput:void 0});return}if(Fe.providerMetadata=Ee.providerMetadata??Fe.providerMetadata,Ee.citations!=null)Fe.citations=Ee.citations;delete tr[Ee.id]}if(Ee.type==="reasoning-start"){if(lr[Ee.id]={type:"reasoning",text:"",providerMetadata:Ee.providerMetadata},M.collectContent)Ht.push(lr[Ee.id])}if(Ee.type==="reasoning-delta"){let Fe=lr[Ee.id];if(Fe==null){Xe.enqueue({part:{type:"error",error:`reasoning part ${Ee.id} not found`},partialOutput:void 0});return}if(M.collectContent)Fe.text+=Ee.text;Fe.providerMetadata=Ee.providerMetadata??Fe.providerMetadata}if(Ee.type==="reasoning-end"){let Fe=lr[Ee.id];if(Fe==null){Xe.enqueue({part:{type:"error",error:`reasoning part ${Ee.id} not found`},partialOutput:void 0});return}Fe.providerMetadata=Ee.providerMetadata??Fe.providerMetadata,delete lr[Ee.id]}if(Ee.type==="file"||Ee.type==="reasoning-file"){if(M.collectContent)Ht.push({type:Ee.type,file:Ee.file,...Ee.providerMetadata!=null?{providerMetadata:Ee.providerMetadata}:{}})}if(Ee.type==="tool-result"&&!Ee.preliminary){if(M.collectContent)Ht.push(Ee)}if(Ee.type==="start-step")Ht=[],lr=Ut(),tr=Ut(),Ir=Ee.request,or=Ee.warnings;if(Ee.type==="finish-step"){let Fe=await Ql({content:Ht,tools:le}),Jt=new Yn({callId:Gt,stepNumber:Ye.length,provider:Nt.provider,modelId:Nt.modelId,runtimeContext:er,toolsContext:bt,content:Ht,finishReason:Ee.finishReason,rawFinishReason:Ee.rawFinishReason,usage:Ee.usage,performance:Ee.performance,warnings:or,request:{...Ir,messages:Wt.requestMessages?oo(Tr):void 0},response:{...Ee.response,messages:oo(Fe)},providerMetadata:Ee.providerMetadata,steeringMessages:ga});Dt=void 0,await lt({event:Jt,callbacks:[Oa,nt.onStepEnd]}),na({warnings:or,provider:Nt.provider,model:Nt.modelId}),Ye.push(Jt),Pr=[...Rt,...Fe],Ar.resolve()}if(Ee.type==="finish")kr=Ee.totalUsage,fa=Ee.finishReason,ha=Ee.rawFinishReason},async flush(Ue){we?.end(Ye.length===0||zr!=null?"error":"finished");try{let Xe=new Oo({message:"No output generated. Check the stream for errors."});if(await nr(Dt?.error??Xe),Ye.length===0||zr!=null){let Qe=te?.aborted?te.reason:zr??Xe;if(zr!=null&&!te?.aborted)await nt.onError?.({callId:Gt,error:zr});gt.rejectResultPromises(Qe);return}let Ee=fa??"other",St=kr??_o();if(gt._finishReason.resolve(Ee),gt._rawFinishReason.resolve(ha),gt._totalUsage.resolve(St),gt._steps.resolve(M.replay?Ye:[]),ya)return;let Fe=Ye[Ye.length-1],Jt=Ye.flatMap((Qe)=>Qe.content),ct=Ye.flatMap((Qe)=>Qe.files),jr=Ye.flatMap((Qe)=>Qe.sources),Yr=Ye.flatMap((Qe)=>Qe.toolCalls),ba=Ye.flatMap((Qe)=>Qe.staticToolCalls),Yt=Ye.flatMap((Qe)=>Qe.dynamicToolCalls),Qr=Ye.flatMap((Qe)=>Qe.toolResults),fr=Ye.flatMap((Qe)=>Qe.staticToolResults),cr=Ye.flatMap((Qe)=>Qe.dynamicToolResults),Er=Ye.flatMap((Qe)=>Qe.warnings??[]),Nr=ua==null?void 0:async(Qe)=>{let Ve=Re==null?void 0:await(M.replay?gt.getOutputPromise():gt.parseOutput(Fe)).catch(()=>{return});await ua({...Qe,...Re!=null?{output:Ve}:{}})},_t={callId:Gt,toolsContext:Fe.toolsContext,stepNumber:Fe.stepNumber,model:Fe.model,runtimeContext:Fe.runtimeContext,finishReason:Fe.finishReason,rawFinishReason:Fe.rawFinishReason,usage:St,totalUsage:St,content:Jt,text:Fe.text,reasoning:Fe.reasoning,reasoningText:Fe.reasoningText,files:ct,sources:jr,toolCalls:Yr,staticToolCalls:ba,dynamicToolCalls:Yt,toolResults:Qr,staticToolResults:fr,dynamicToolResults:cr,responseMessages:[...ir,...Ye.flatMap((Qe)=>Qe.response.messages)],warnings:Er,request:Fe.request,response:Fe.response,providerMetadata:Fe.providerMetadata,steps:Ye,finalStep:Fe};await Promise.all([lt({event:_t,callbacks:Nr}),lt({event:_t,callbacks:nt.onEnd})])}catch(Xe){Ue.error(Xe)}finally{if(!M.replay)Ye=[],Ht=[],Tr=[],Rt=[],Pr=void 0,tr=Ut(),lr=Ut()}}}),va=lf();this.addStream=va.addStream,this.closeStream=va.close;let wa=va.stream.getReader(),La=()=>{this.rejectResultPromises(te?.reason),wa.cancel(te?.reason).catch(()=>{})},Kr=()=>te?.removeEventListener("abort",La),Or=new ReadableStream({async start(Ue){if(Ue.enqueue({type:"start"}),te?.addEventListener("abort",La,{once:!0}),te?.aborted)La()},async pull(Ue){async function Xe(){ya=!0,Kr(),we?.end("aborted"),await lt({event:{callId:Gt,steps:Ye,...te?.reason!==void 0?{reason:te.reason}:{}},callbacks:[Pa,nt.onAbort]}),Ue.enqueue({type:"abort",...te?.reason!==void 0?{reason:A(te.reason)}:{}}),Ue.close()}try{let{done:Ee,value:St}=await wa.read();if(te?.aborted){await Xe();return}if(Ee){Kr(),Ue.close();return}Ue.enqueue(St)}catch(Ee){if(Kr(),Z(Ee)&&te?.aborted)await Xe();else we?.end("error"),await nr(ro(Ee)),await nt.onError?.({callId:Gt,error:Ee}),Ue.error(Ee)}},cancel(Ue){return Kr(),we?.end("aborted"),wa.cancel(Ue)}}),mo=!0;Or=Or.pipeThrough(new TransformStream({async transform(Ue,Xe){if(mo)Xe.enqueue(Ue)}})),Or=Rf({stream:Or,transforms:Se,tools:le,stopStream(){va.terminate(),mo=!1}}),this.baseStream=Or.pipeThrough(Cf(Re??An(),M.replay||Re!=null)).pipeThrough(Bo);let{maxRetries:rt}=jo({maxRetries:ee,abortSignal:te}),{maxRetries:Jr}=jo({maxRetries:H,abortSignal:te,parameter:"streamRetries",defaultMaxRetries:0}),Ft=$o(W),gt=this,Gt=Br();(async()=>{let Ue=await Bn({instructions:me,system:Le,prompt:Ge,messages:be,allowSystemInMessages:De}),Xe={callId:Gt,operationId:"ai.streamText",provider:C.provider,modelId:C.modelId,instructions:Ue.instructions,messages:Ue.messages,tools:le,toolChoice:ve,activeTools:ce,toolOrder:Ie,maxOutputTokens:Ft.maxOutputTokens,temperature:Ft.temperature,topP:Ft.topP,topK:Ft.topK,presencePenalty:Ft.presencePenalty,frequencyPenalty:Ft.frequencyPenalty,stopSequences:Ft.stopSequences,seed:Ft.seed,reasoning:Ft.reasoning,maxRetries:rt,timeout:Sr,headers:F,providerOptions:Zt,output:Re,runtimeContext:er,toolsContext:bt},Ee=nt.startTracingChannelContext?.({type:"streamText",event:Xe,completion:gt._totalUsage.promise.then(()=>{return})}),St=(Yt)=>Ee?.run(Yt)??Yt(),Fe=nt.runInTracingChannelSpan==null?void 0:(Yt)=>St(()=>nt.runInTracingChannelSpan(Yt));await lt({event:Xe,callbacks:[Na,nt.onStart]});let{messages:Jt,instructions:ct}=Ue,{approvedToolApprovals:jr,deniedToolApprovals:Yr}=Pl({messages:Jt});if(Yr.length>0||jr.length>0){let{approvedToolApprovals:Yt,deniedToolApprovals:Qr,invalidToolApprovals:fr}=await ac({approvedToolApprovals:jr.filter((Ve)=>!Ve.toolCall.providerExecuted),tools:le,toolApproval:ot,messages:Jt,toolsContext:bt,runtimeContext:er,toolApprovalSecret:Ot,refineToolInput:he}),cr=[...Yr.filter((Ve)=>!Ve.toolCall.providerExecuted),...Qr],Er=cr.filter((Ve)=>Ve.existingToolResult==null),Nr=Yr.filter((Ve)=>Ve.toolCall.providerExecuted),_t,Qe=new ReadableStream({start(Ve){_t=Ve}});gt.addStream(Qe);try{for(let Je of[...cr,...Nr])_t?.enqueue({type:"tool-output-denied",toolCallId:Je.toolCall.toolCallId,toolName:Je.toolCall.toolName});for(let Je of fr)_t?.enqueue({type:"tool-error",toolCallId:Je.toolCall.toolCallId,toolName:Je.toolCall.toolName,input:Je.toolCall.input,error:A(Je.error),title:Je.toolCall.title,...Je.toolCall.dynamic===!0?{dynamic:!0}:{},...Je.toolCall.toolMetadata!=null?{toolMetadata:Je.toolCall.toolMetadata}:{}});let Ve=[];if(await Xn({items:Yt,concurrency:He,abortSignal:te,execute:async(Je)=>{let Be=await zn({toolCall:Je.toolCall,tools:le,callId:Gt,messages:Jt,abortSignal:te,timeout:Sr,experimental_sandbox:xe,toolsContext:bt,onToolExecutionStart:Pe(pa,nt.onToolExecutionStart),onToolExecutionEnd:Pe(ma,nt.onToolExecutionEnd),executeToolInTelemetryContext:nt.executeTool,runInTracingChannelSpan:Fe,onPreliminaryToolResult:(Vt)=>{_t?.enqueue(Vt)}});if(Be!=null)_t?.enqueue(Be.output),Ve.push(Be.output)}}),Ve.length>0||Er.length>0||fr.length>0){let Je=[];for(let Be of Ve)Je.push({type:"tool-result",toolCallId:Be.toolCallId,toolName:Be.toolName,output:await sa({toolCallId:Be.toolCallId,input:Be.input,tool:et(le,Be.toolName),output:Be.type==="tool-result"?Be.output:Be.error,errorMode:Be.type==="tool-error"?"text":"none"})});for(let Be of fr)Je.push({type:"tool-result",toolCallId:Be.toolCall.toolCallId,toolName:Be.toolCall.toolName,output:await sa({toolCallId:Be.toolCall.toolCallId,input:Be.toolCall.input,tool:et(le,Be.toolCall.toolName),output:Be.error,errorMode:"text"})});for(let Be of Er)Je.push({type:"tool-result",toolCallId:Be.toolCall.toolCallId,toolName:Be.toolCall.toolName,output:{type:"execution-denied",reason:Be.approvalResponse.reason}});ir.push({role:"tool",content:Je})}}finally{_t?.close()}}gt._initialResponseMessages.resolve(ir);async function ba({currentStep:Yt,usage:Qr}){let fr=No({abortController:ne,label:"Step",timeoutMs:re}),cr=void 0;function Er(){if(te?.aborted)return;cr=No({abortController:oe,label:"First chunk",timeoutMs:z})}function Nr(){if(cr!=null)clearTimeout(cr),cr=void 0}let _t=void 0;function Qe(){if(_t!=null)clearTimeout(_t);if(te?.aborted)return;_t=No({abortController:de,label:"Chunk",timeoutMs:se})}function Ve(){if(_t!=null)clearTimeout(_t),_t=void 0}function Je(){Nr(),Ve()}function Be(){if(fr!=null)clearTimeout(fr)}function Vt(){Be(),Je()}function sr(){te?.removeEventListener("abort",sr),Vt()}te?.addEventListener("abort",sr,{once:!0});try{Ar=new je;let At=nt.startTracingChannelContext?.({type:"step",event:{callId:Gt,stepNumber:Yt},completion:Ar.promise}),Sa=(Me)=>At?.run(Me)??Me(),qt=Ye.flatMap((Me)=>Me.response.messages),Xr=[...ir,...qt],Fa=we?.takeMessages()??[],fo=[...Pr??[...Jt,...ir],...Fa],Et=await ar?.({model:C,steps:Ye,stepNumber:Ye.length,instructions:ct,initialInstructions:Ue.instructions,messages:fo,initialMessages:Jt,responseMessages:Xr,...Fa.length>0?{experimental_steeringMessages:Fa}:{},toolsContext:bt,runtimeContext:er,experimental_sandbox:xe}),Ia=Et?.experimental_sandbox??xe;er=Et?.runtimeContext??er,bt=Et?.toolsContext??bt;let Zr=so(Et?.model??C);Nt=Zr;let Ga=$l({tools:le,activeTools:Et?.activeTools??ce}),{executionTools:Mr,modelTools:Dr,toolCallerMessages:rr}=Nl({tools:Ua(Ga,{toolsContext:bt,experimental_sandbox:Ia}),toolCallers:Wr}),Va=Et?.toolOrder??Ie,ho=await Vn({tools:Dr,toolOrder:Va,toolsContext:bt,experimental_sandbox:Ia}),Ba=Gn({toolChoice:Et?.toolChoice??ve}),Ta=Ba.type==="none"?void 0:Mr,hr=Dl({messages:Et?.messages??fo,toolCallerMessages:rr});Rt=hr,ga=we?.resolveTakenMessages({stepNumber:Yt,sentMessages:hr})??[];let Wa=Et?.instructions??Et?.system??ct;ct=Wa;let Ha=ka(Zt,Et?.providerOptions),go=Bl({callSettings:Ft,stepSettings:Et}),Wo=wr(),{retry:qr}=jo({maxRetries:rt,abortSignal:te}),dr=!1,ur=()=>Sa(()=>qr(async()=>wf({model:Et?.model??C,tools:Dr,toolOrder:Va,toolChoice:Et?.toolChoice??ve,instructions:Wa,messages:hr,allowSystemInMessages:De,repairToolCall:tt,refineToolInput:he,abortSignal:te,headers:F,includeRawChunks:Wt.rawChunks,providerOptions:Ha,download:_r,output:Re,callId:Gt,executeLanguageModelCallInTelemetryContext:nt.executeLanguageModelCall,toolsContext:bt,experimental_sandbox:Ia,onLanguageModelCallStart:Pe(qa,nt.onLanguageModelCallStart),onLanguageModelCallEnd:Pe($a,nt.onLanguageModelCallEnd),onStart:async({promptMessages:Me})=>{if(dr)return;dr=!0;let dt={callId:Gt,provider:Zr.provider,modelId:Zr.modelId,stepNumber:Ye.length,instructions:Wa,messages:hr,tools:le,toolChoice:Et?.toolChoice??ve,activeTools:Et?.activeTools??ce,toolOrder:Va,steps:[...Ye],providerOptions:Ha,runtimeContext:er,toolsContext:bt,output:Re,promptMessages:Me,stepTools:ho,stepToolChoice:Ba};await lt({event:dt,callbacks:[Da,nt.onStepStart]}),Dt={event:dt}},_internal:{now:wr,collectContent:M.collectContent},...go}))),$r=await ur(),{request:ea,response:xa}=$r,ta=$r.stream.getReader(),yo=0,Ur=0,ra=[],aa=new Set,Ea=new Set,za=!1,vo=Jr>0||da,wo=new ReadableStream({async pull(Me){let dt=(Pt)=>{switch(Pt.type){case"text-start":aa.add(Pt.id);break;case"text-end":aa.delete(Pt.id);break;case"reasoning-start":Ea.add(Pt.id);break;case"reasoning-end":Ea.delete(Pt.id)}Me.enqueue(Pt)},Lr=()=>{for(let Pt of ra)dt(Pt);ra=[]},yr=()=>{for(let Pt of aa)Me.enqueue({type:"text-end",id:Pt});aa.clear();for(let Pt of Ea)Me.enqueue({type:"reasoning-end",id:Pt});Ea.clear()};while(!0){let Pt;try{Pt=await ta.read()}catch(Xo){throw Je(),Xo}let{done:To,value:mt}=Pt;if(za)Me.enqueue(cf({warnings:!To&&mt.type==="model-call-start"?mt.warnings:[]})),za=!1;if(To){Je(),Lr(),Me.close();return}let Ca=mt.type==="tool-input-start"||mt.type==="tool-input-delta"||mt.type==="tool-input-end"||mt.type==="tool-call"||mt.type==="tool-approval-request"||mt.type==="tool-approval-response"||mt.type==="tool-result"||mt.type==="tool-error";if(mt.type==="model-call-end"){Je(),Lr(),dt(mt);return}if(Oi(mt))Nr(),Qe();if(vo&&mt.type!=="error"&&(Ca||ra.length>0)){ra.push(mt);continue}if(mt.type!=="error"){dt(mt);return}Je(),await lt({event:{chunk:mt},callbacks:la});let xo=ro(mt.error),Tt=Un.isInstance(xo),Fr;try{Fr=await ca({error:xo})}catch{}let Qa=da&&typeof Fr==="object"&&Fr!=null&&"retry"in Fr&&Fr.retry===!0,Qo=!Tt&&yo<Jr;if(!Qo&&!(!Tt&&!Qo&&Qa&&Ur<1)){Lr(),mr.add(mt.error),Me.enqueue(mt);return}if(Qo)yo++;else Ur++;await ta.cancel(xo),ra=[],yr();let Eo;try{Eo=await ur()}catch(Xo){Me.enqueue({type:"error",error:Xo}),Me.close();return}ea=Eo.request,xa=Eo.response,ta=Eo.stream.getReader(),Er(),za=!0}},cancel(Me){return Je(),ta.cancel(Me)}});Er();let Ho=pf({stream:wo,tools:Ta,stepInputMessages:hr,abortSignal:te,toolsContext:bt}),zo=nt.runInTracingChannelSpan==null?void 0:(Me)=>Sa(()=>nt.runInTracingChannelSpan(Me)),Ka=df({stream:Ho,tools:Ta,callId:Gt,messages:hr,abortSignal:te,timeout:Sr,experimental_sandbox:Ia,toolsContext:bt,toolApproval:ot,runtimeContext:er,toolApprovalSecret:Ot,generateId:br,onToolExecutionStart:Pe(pa,nt.onToolExecutionStart),onToolExecutionEnd:Pe(ma,nt.onToolExecutionEnd),executeToolInTelemetryContext:nt.executeTool,runInTracingChannelSpan:zo,toolCallConcurrency:He}),Oe=()=>({...ea,body:Wt.requestBody?ea?.body:void 0,messages:Wt.requestMessages?oo(hr):void 0});Tr=Oe().messages??[];let it=[],Bt=[],Cr=[],pr,gr="other",bo=void 0,So=!1,Ko=!1,Io=_o(),Jo,ts=!0,rs=()=>({responseTimeMs:0,effectiveOutputTokensPerSecond:0,outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:0,timeToFirstOutputMs:void 0,timeBetweenOutputChunksMs:void 0}),Yo=rs(),as={},os=()=>({id:br(),timestamp:new Date,modelId:Zr.modelId}),Ma=os(),Ja=new Map,Ya=new Map,kt=(Me,dt)=>{Me.enqueue(dt)};gt.addStream(Ka.pipeThrough(new TransformStream({async transform(Me,dt){if(Zn(Me)){pr=Me.warnings,gr="other",bo=void 0,So=!1,Ko=!1,Io=_o(),Jo=void 0,Yo=rs(),Ma=os(),Ja.clear(),Ya.clear(),dt.enqueue({[qn]:{request:Oe(),warnings:pr}});return}if(Me.type==="model-call-start"){pr=Me.warnings;return}if(ts)ts=!1,kt(dt,{type:"start-step",request:Oe(),warnings:pr??[]});let Lr=Me.type;if(Oi(Me))Ko=!0;switch(Lr){case"file":case"custom":case"source":case"reasoning-file":case"tool-input-start":case"tool-input-end":case"tool-input-delta":case"tool-approval-request":case"tool-output-denied":kt(dt,Me);break;case"text-start":{let yr=xr(Me.id);Ja.set(Me.id,yr),kt(dt,{...Me,id:yr});break}case"text-delta":if(Me.text.length>0||Me.providerMetadata!=null)kt(dt,{...Me,id:Ja.get(Me.id)??Me.id});break;case"text-end":kt(dt,{...Me,id:Ja.get(Me.id)??Me.id}),Ja.delete(Me.id);break;case"reasoning-start":{let yr=zt(Me.id);Ya.set(Me.id,yr),kt(dt,{...Me,id:yr});break}case"reasoning-delta":kt(dt,{...Me,id:Ya.get(Me.id)??Me.id});break;case"reasoning-end":kt(dt,{...Me,id:Ya.get(Me.id)??Me.id}),Ya.delete(Me.id);break;case"tool-call":kt(dt,Me),it.push(Me);break;case"tool-approval-response":kt(dt,Me),Cr.push(Me);break;case"tool-result":if(kt(dt,Me),!Me.preliminary)Bt.push(Me);break;case"tool-error":kt(dt,Me),Bt.push(Me);break;case"tool-execution-end":as[Me.toolCallId]=Me.toolExecutionMs;break;case"model-call-response-metadata":Ma={id:Me.id??Ma.id,timestamp:Me.timestamp??Ma.timestamp,modelId:Me.modelId??Ma.modelId};break;case"model-call-end":So=!0,Io=Me.usage,gr=Me.finishReason,bo=Me.rawFinishReason,Jo=Me.providerMetadata,Yo=Me.performance;break;case"error":So=!0,kt(dt,Me),gr="error";break;case"raw":if(Wt.rawChunks)kt(dt,Me);break;default:throw Error(`Unknown chunk type: ${Lr}`)}},async flush(Me){if(!So&&!Ko){kt(Me,{type:"error",error:new Oo({message:"No output generated. The model stream ended without a finish chunk."})}),sr(),gt.closeStream();return}let dt=wr()-Wo,Lr={type:"finish-step",finishReason:gr,rawFinishReason:bo,usage:Io,performance:{stepTimeMs:dt,toolExecutionMs:as,...Yo},providerMetadata:Jo,response:{...Ma,headers:xa?.headers}};kt(Me,Lr);let yr=kl(Qr,Io);await Ar.promise;let Pt=it.filter((Tt)=>Tt.providerExecuted!==!0),To=Bt.filter((Tt)=>Tt.providerExecuted!==!0),mt=Cr.filter((Tt)=>Tt.approved===!1);for(let Tt of it){if(Tt.providerExecuted!==!0)continue;let Fr=et(Ta,Tt.toolName);if(Fr?.type==="provider"&&Fr.supportsDeferredResults){if(!Bt.some((Qa)=>(Qa.type==="tool-result"||Qa.type==="tool-error")&&Qa.toolCallId===Tt.toolCallId))ht.set(Tt.toolCallId,{toolName:Tt.toolName})}}for(let Tt of Bt)if(Tt.type==="tool-result"||Tt.type==="tool-error")ht.delete(Tt.toolCallId);sr();let Ca="finished";if(await(async()=>{if(gr==="interrupted")return!1;if(Pt.length!==To.length+mt.length)return Ca="waiting-for-tool-results",!1;if(Pt.length===0&&ht.size===0){if(!we?.hasPendingMessages())return!1;if(gr==="error")return Ca="error",!1}if(await Yl({stopConditions:Ke,steps:Ye}))return Ca="stop-condition",!1;return!0})())try{await St(()=>ba({currentStep:Yt+1,usage:yr}))}catch(Tt){we?.end("error"),kt(Me,{type:"error",error:Tt}),gt.closeStream()}else we?.end(Ca),kt(Me,{type:"finish",finishReason:gr,rawFinishReason:bo,totalUsage:yr}),gt.closeStream()}})),{onError:sr,onCancel:sr})}catch(At){throw sr(),At}}await St(()=>ba({currentStep:0,usage:_o()}))})().catch(async(Ue)=>{we?.end(te?.aborted?"aborted":"error"),await nr(ro(Ue)),await nt.onError?.({callId:Gt,error:Ue}),gt._initialResponseMessages.reject(Ue),Di(gt._initialResponseMessages.promise),gt.addStream(new ReadableStream({start(Xe){Xe.enqueue({type:"error",error:Ue}),Xe.close()}})),gt.closeStream()})}get steps(){if(this.retention.replay)this.consumeStream();return this._steps.promise}get finalStep(){return this.steps.then((M)=>M.at(-1))}get content(){return this.steps.then((M)=>M.flatMap((C)=>C.content))}get warnings(){return this.steps.then((M)=>M.flatMap((C)=>C.warnings??[]))}get providerMetadata(){return this.finalStep.then((M)=>M.providerMetadata)}get text(){return this.finalStep.then((M)=>M.text)}get reasoningText(){return this.finalStep.then((M)=>M.reasoningText)}get reasoning(){return this.finalStep.then((M)=>Ul(M.reasoning))}get sources(){return this.steps.then((M)=>M.flatMap((C)=>C.sources))}get files(){return this.steps.then((M)=>M.flatMap((C)=>C.files))}get toolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.toolCalls))}get staticToolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.staticToolCalls))}get dynamicToolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.dynamicToolCalls))}get toolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.toolResults))}get staticToolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.staticToolResults))}get dynamicToolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.dynamicToolResults))}get usage(){return this.totalUsage}get request(){return this.finalStep.then((M)=>M.request)}get response(){return this.finalStep.then((M)=>M.response)}get responseMessages(){return Promise.all([this._initialResponseMessages.promise,this.steps]).then(([M,C])=>[...M,...C.flatMap((O)=>O.response.messages)])}get totalUsage(){if(this.retention.replay)this.consumeStream();return this._totalUsage.promise}get finishReason(){if(this.retention.replay)this.consumeStream();return this._finishReason.promise}get rawFinishReason(){if(this.retention.replay)this.consumeStream();return this._rawFinishReason.promise}teeStream(){if(!this.retention.replay){if(this.streamClaimed)throw new m({name:"AI_StreamAlreadyConsumedError",message:"This result supports one stream consumer. Choose one stream projection or response helper."});this.streamClaimed=!0;let O=this.baseStream.getReader(),F=(W)=>this.rejectResultPromises(W);return new ReadableStream({async pull(W){try{let{done:ee,value:H}=await O.read();if(ee)O.releaseLock(),W.close();else W.enqueue(H)}catch(ee){F(ee),O.releaseLock(),W.error(ee)}},async cancel(W){F(W??new DOMException("The stream was cancelled.","AbortError"));try{await O.cancel(W)}finally{O.releaseLock()}}},{highWaterMark:0})}let[M,C]=this.baseStream.tee();return this.baseStream=C,M}get textStream(){return this.asIterableStream(Km({stream:this.stream}))}asIterableStream(M){return this.retention.replay?Dn(M):uc(M)}get stream(){return this.asIterableStream(this.teeStream().pipeThrough(new TransformStream({transform({part:M},C){C.enqueue(M)}})))}get fullStream(){return this.stream}rejectResultPromises(M){this.rejectResultPromise({delayedPromise:this._finishReason,error:M}),this.rejectResultPromise({delayedPromise:this._rawFinishReason,error:M}),this.rejectResultPromise({delayedPromise:this._totalUsage,error:M}),this.rejectResultPromise({delayedPromise:this._steps,error:M}),this.rejectResultPromise({delayedPromise:this._initialResponseMessages,error:M})}rejectResultPromise({delayedPromise:M,error:C}){if(M.isPending())M.reject(C),Di(M.promise)}async consumeStream(M){let C=this.stream;try{await sf({stream:C,onError:(O)=>{this.rejectResultPromises(O),M?.onError?.(O)}})}catch(O){this.rejectResultPromises(O),M?.onError?.(O)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){if(!this.retention.replay&&this.outputSpecification==null)throw new u({functionality:"partialOutputStream without an explicit output specification with experimental_streamTextLowMemory"});return this.asIterableStream(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:M},C){if(M!==void 0)C.enqueue(M)}})))}get elementStream(){let M=this.outputSpecification?.createElementStreamTransform();if(M==null)throw new u({functionality:`element streams in ${this.outputSpecification?.name??"text"} mode`});return this.asIterableStream(this.teeStream().pipeThrough(M))}getOutputPromise(){if(this.outputPromise==null)this.outputPromise=this.finalStep.then((M)=>this.parseOutput(M));return this.outputPromise}parseOutput(M){return(this.outputSpecification??An()).parseCompleteOutput({text:M.text},{response:M.response,usage:M.usage,finishReason:M.finishReason})}get output(){return this.getOutputPromise()}toUIMessageStream({originalMessages:M,generateMessageId:C,onStepEnd:O,onStepFinish:F,onEnd:W,onFinish:ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendStart:ne,sendFinish:z,onError:oe}={}){return Dn(nf({stream:this.stream,tools:this.tools,originalMessages:M,generateMessageId:C,onStepEnd:O??F,onEnd:W??ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendStart:ne,sendFinish:z,onError:oe}))}pipeUIMessageStreamToResponse(M,{originalMessages:C,generateMessageId:O,onStepEnd:F,onStepFinish:W,onEnd:ee,onFinish:H,messageMetadata:te,sendReasoning:re,sendSources:ne,sendFinish:z,sendStart:oe,onError:se,...de}={}){return Xm({response:M,stream:this.toUIMessageStream({originalMessages:C,generateMessageId:O,onStepEnd:F??W,onEnd:ee??H,messageMetadata:te,sendReasoning:re,sendSources:ne,sendFinish:z,sendStart:oe,onError:se}),...de})}pipeTextStreamToResponse(M,C){return zm({response:M,stream:this.textStream,...C})}toUIMessageStreamResponse({originalMessages:M,generateMessageId:C,onStepEnd:O,onStepFinish:F,onEnd:W,onFinish:ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendFinish:ne,sendStart:z,onError:oe,...se}={}){return Qm({stream:this.toUIMessageStream({originalMessages:M,generateMessageId:C,onStepEnd:O??F,onEnd:W??ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendFinish:ne,sendStart:z,onError:oe}),...se})}toTextStreamResponse(M){return Hm({stream:this.textStream,...M})}};var Xt=L.record(L.string(),ia.optional()),Af=L.record(L.string(),L.string());var Hh=a(()=>{let M=L.object({id:L.string(),approved:L.never().optional(),descriptor:L.unknown().optional(),requestReason:L.string().optional(),reason:L.never().optional(),isAutomatic:L.boolean().optional(),signature:L.string().optional(),inputSchemaInput:L.unknown().optional()}),C=M.extend({approved:L.boolean(),reason:L.string().optional()}),O=C.extend({approved:L.literal(!0)}),F=C.extend({approved:L.literal(!1)});return s(L.array(L.object({id:L.string(),role:L.enum(["system","user","assistant"]),metadata:L.unknown().optional(),parts:L.array(L.union([L.object({type:L.literal("text"),text:L.string(),citations:L.array(cc).optional(),state:L.enum(["streaming","done"]).optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("reasoning"),id:L.string().optional(),text:L.string(),state:L.enum(["streaming","done"]).optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("custom"),kind:L.string(),providerMetadata:Ce.optional()}),L.object({type:L.literal("source-url"),sourceId:L.string(),url:L.string(),title:L.string().optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("source-document"),sourceId:L.string(),mediaType:L.string(),title:L.string(),filename:L.string().optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("file"),mediaType:L.string(),filename:L.string().optional(),url:L.string(),providerReference:Af.optional(),providerMetadata:Ce.optional()}),L.object({type:L.literal("reasoning-file"),mediaType:L.string(),url:L.string(),providerMetadata:Ce.optional()}),L.object({type:L.literal("step-start")}),L.object({type:L.string().startsWith("data-"),id:L.string().optional(),data:L.unknown()}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("input-streaming"),input:L.unknown().optional(),rawInput:L.string().optional(),inputEncoding:L.enum(["json","text"]).optional(),providerExecuted:L.boolean().optional(),callProviderMetadata:Ce.optional(),output:L.never().optional(),errorText:L.never().optional(),approval:L.never().optional()}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("input-available"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:L.never().optional()}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("approval-requested"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:M}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("approval-responded"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:C}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-available"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.unknown(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),preliminary:L.boolean().optional(),approval:O.optional()}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-error"),input:L.unknown().optional(),rawInput:L.unknown().optional(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.string(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),approval:O.optional()}),L.object({type:L.literal("dynamic-tool"),dynamic:L.literal(!1).optional(),toolName:L.string(),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-denied"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:F}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("input-streaming"),providerExecuted:L.boolean().optional(),callProviderMetadata:Ce.optional(),input:L.unknown().optional(),rawInput:L.string().optional(),inputEncoding:L.enum(["json","text"]).optional(),output:L.never().optional(),errorText:L.never().optional(),approval:L.never().optional()}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("input-available"),providerExecuted:L.boolean().optional(),input:L.unknown(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:L.never().optional()}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("approval-requested"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:M}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("approval-responded"),input:L.unknown(),providerExecuted:L.boolean().optional(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:C}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-available"),providerExecuted:L.boolean().optional(),input:L.unknown(),output:L.unknown(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),preliminary:L.boolean().optional(),approval:O.optional()}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-error"),providerExecuted:L.boolean().optional(),input:L.unknown().optional(),rawInput:L.unknown().optional(),output:L.never().optional(),errorText:L.string(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),approval:O.optional()}),L.object({type:L.string().startsWith("tool-"),toolCallId:L.string(),title:L.string().optional(),toolMetadata:Xt.optional(),state:L.literal("output-denied"),providerExecuted:L.boolean().optional(),input:L.unknown(),output:L.never().optional(),errorText:L.never().optional(),callProviderMetadata:Ce.optional(),approval:F})]))}).superRefine((W,ee)=>{if(W.role!=="assistant"&&W.parts.length===0)ee.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:W.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty"))});var zh=V({prefix:"call",size:24});var Kh=V({prefix:"call",size:24});var Jh=V({prefix:"call",size:24});var Yh=V({prefix:"aiobj",size:24});function mc(M){return({url:C,abortSignal:O})=>Fn({url:C,maxBytes:M?.maxBytes,abortSignal:O})}var{atob:Qh}=globalThis;var Xh=V({prefix:"aiobj",size:24});var Zh=V({prefix:"call",size:24});var eg=mc();var po=L.union([L.string(),L.instanceof(Uint8Array),L.instanceof(ArrayBuffer),L.custom(vt,{message:"Must be a Buffer"})]),es=L.record(L.string(),L.string()),fc=L.object({type:L.literal("text"),text:L.string(),providerOptions:Ce.optional()}),kf=L.object({type:L.literal("image"),image:L.union([po,L.instanceof(URL),es]),mediaType:L.string().optional(),providerOptions:Ce.optional()}),hc=L.discriminatedUnion("type",[L.object({type:L.literal("data"),data:po}),L.object({type:L.literal("url"),url:L.instanceof(URL)}),L.object({type:L.literal("reference"),reference:es}),L.object({type:L.literal("text"),text:L.string()})]),Pf=L.discriminatedUnion("type",[L.object({type:L.literal("data"),data:po}),L.object({type:L.literal("url"),url:L.instanceof(URL)})]),gc=L.object({type:L.literal("file"),data:L.union([hc,po,L.instanceof(URL),es]),filename:L.string().optional(),mediaType:L.string(),providerOptions:Ce.optional()}),Of=L.object({type:L.literal("reasoning"),text:L.string(),providerOptions:Ce.optional()}),jf=L.object({type:L.literal("custom"),kind:L.string().transform((M)=>M),providerOptions:Ce.optional()}),Nf=L.object({type:L.literal("reasoning-file"),data:L.union([Pf,po,L.instanceof(URL)]),mediaType:L.string(),providerOptions:Ce.optional()}),Df=L.object({type:L.literal("tool-call"),toolCallId:L.string(),toolName:L.string(),input:L.unknown(),providerOptions:Ce.optional(),providerExecuted:L.boolean().optional()}),qf=L.discriminatedUnion("type",[L.object({type:L.literal("text"),value:L.string(),providerOptions:Ce.optional()}),L.object({type:L.literal("json"),value:ia,providerOptions:Ce.optional()}),L.object({type:L.literal("execution-denied"),reason:L.string().optional(),providerOptions:Ce.optional()}),L.object({type:L.literal("error-text"),value:L.string(),providerOptions:Ce.optional()}),L.object({type:L.literal("error-json"),value:ia,providerOptions:Ce.optional()}),L.object({type:L.literal("content"),value:L.array(L.union([L.object({type:L.literal("text"),text:L.string(),providerOptions:Ce.optional()}),L.object({type:L.literal("file"),data:hc,mediaType:L.string(),filename:L.string().optional(),providerOptions:Ce.optional()}),L.object({type:L.literal("file-data"),data:L.string(),mediaType:L.string(),filename:L.string().optional(),providerOptions:Ce.optional()}),L.object({type:L.literal("file-url"),url:L.string(),mediaType:L.string().optional(),providerOptions:Ce.optional()}),L.object({type:L.literal("file-id"),fileId:L.union([L.string(),L.record(L.string(),L.string())]),providerOptions:Ce.optional()}),L.object({type:L.literal("file-reference"),providerReference:L.record(L.string(),L.string()),providerOptions:Ce.optional()}),L.object({type:L.literal("image-data"),data:L.string(),mediaType:L.string(),providerOptions:Ce.optional()}),L.object({type:L.literal("image-url"),url:L.string(),providerOptions:Ce.optional()}),L.object({type:L.literal("image-file-id"),fileId:L.union([L.string(),L.record(L.string(),L.string())]),providerOptions:Ce.optional()}),L.object({type:L.literal("image-file-reference"),providerReference:L.record(L.string(),L.string()),providerOptions:Ce.optional()}),L.object({type:L.literal("custom"),providerOptions:Ce.optional()})]))})]),yc=L.object({type:L.literal("tool-result"),toolCallId:L.string(),toolName:L.string(),output:qf,providerOptions:Ce.optional()}),$f=L.object({type:L.literal("tool-approval-request"),approvalId:L.string(),toolCallId:L.string(),reason:L.string().optional(),isAutomatic:L.boolean().optional(),signature:L.string().optional(),inputSchemaInput:L.unknown().optional()}),Uf=L.object({type:L.literal("tool-approval-response"),approvalId:L.string(),approved:L.boolean(),reason:L.string().optional()}),Lf=L.object({role:L.literal("system"),content:L.string(),providerOptions:Ce.optional()}),Ff=L.object({role:L.literal("user"),content:L.union([L.string(),L.array(L.union([fc,kf,gc]))]),providerOptions:Ce.optional()}),Gf=L.object({role:L.literal("assistant"),content:L.union([L.string(),L.array(L.union([fc,jf,gc,Of,Nf,Df,yc,$f]))]),providerOptions:Ce.optional()}),Vf=L.object({role:L.literal("tool"),content:L.array(L.union([yc,Uf])),providerOptions:Ce.optional()}),tg=L.union([Lf,Ff,Gf,Vf]);var rg=L.object({token:L.string().refine((M)=>M.trim().length>0),url:L.string().refine((M)=>{try{let C=new URL(M);return(C.protocol==="ws:"||C.protocol==="wss:")&&C.hostname!==""}catch{return!1}}),expiresAt:L.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:L.array(L.object({type:L.literal("function"),name:L.string().min(1),description:L.string().optional(),parameters:L.record(L.string(),L.unknown())})).optional()});var Bf="AI_NoSuchProviderError",ag=`vercel.ai.error.${Bf}`;var og=V({prefix:"call",size:24});var ng=V({prefix:"call",size:24}),sg=mc();var ig=V({prefix:"call",size:24});export{xn,Mt};
|
|
44
|
+
`)}})}},lc={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Qm({status:M,statusText:C,headers:O,stream:L,keepAliveMs:W,consumeSseStream:ee}){let H=sc({stream:L.pipeThrough(new ic),keepAliveMs:W});if(ee){let[te,re]=H.tee();H=te,ee({stream:re})}return new Response(H.pipeThrough(new TextEncoderStream),{status:M,statusText:C,headers:Go(O,lc)})}function Xm({response:M,status:C,statusText:O,headers:L,stream:W,keepAliveMs:ee,consumeSseStream:H}){let te=sc({stream:W.pipeThrough(new ic),keepAliveMs:ee});if(H){let[re,ne]=te.tee();te=re,H({stream:ne})}return nc({response:M,status:C,statusText:O,headers:Go(L,lc),stream:te.pipeThrough(new TextEncoderStream)})}function Zm({originalMessages:M,responseMessageId:C}){if(M==null)return;let O=M[M.length-1];return O?.role==="assistant"?O.id:typeof C==="function"?C():C}var N={array:o,boolean:c,custom:Xt,discriminatedUnion:f,enum:i,instanceof:en,lazy:je,literal:n,looseObject:U,never:Ae,null:Je,number:r,object:t,record:y,string:e,union:l,unknown:v},sa=N.lazy(()=>N.union([N.null(),N.string(),N.number(),N.boolean(),N.record(N.string(),sa.optional()),N.array(sa)])),Ce=N.record(N.string(),N.record(N.string(),sa.optional())),cc=N.object({source:N.discriminatedUnion("sourceType",[N.object({type:N.literal("source"),sourceType:N.literal("url"),id:N.string(),url:N.string(),title:N.string().optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("source"),sourceType:N.literal("document"),id:N.string(),mediaType:N.string(),title:N.string(),filename:N.string().optional(),providerMetadata:Ce.optional()})]),startIndex:N.number().int().nonnegative().optional(),endIndex:N.number().int().nonnegative().optional(),citedText:N.string().optional()}),eo=N.record(N.string(),sa.optional()),Wh=a(()=>s(N.union([N.looseObject({type:N.literal("text-start"),id:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("text-delta"),id:N.string(),delta:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("text-end"),id:N.string(),citations:N.array(cc).optional(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("error"),errorText:N.string()}),N.looseObject({type:N.literal("tool-input-start"),toolCallId:N.string(),toolName:N.string(),inputEncoding:N.enum(["json","text"]).optional(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:eo.optional(),dynamic:N.boolean().optional(),title:N.string().optional()}),N.looseObject({type:N.literal("tool-input-delta"),toolCallId:N.string(),inputTextDelta:N.string()}),N.looseObject({type:N.literal("tool-input-available"),toolCallId:N.string(),toolName:N.string(),input:N.unknown(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:eo.optional(),dynamic:N.boolean().optional(),title:N.string().optional()}),N.looseObject({type:N.literal("tool-input-error"),toolCallId:N.string(),toolName:N.string(),input:N.unknown(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:eo.optional(),dynamic:N.boolean().optional(),errorText:N.string(),title:N.string().optional()}),N.looseObject({type:N.literal("tool-approval-request"),approvalId:N.string(),toolCallId:N.string(),approvalDescriptor:N.unknown().optional(),inputSchemaInput:N.unknown().optional(),reason:N.string().optional(),isAutomatic:N.boolean().optional(),signature:N.string().optional()}),N.looseObject({type:N.literal("tool-approval-response"),approvalId:N.string(),approved:N.boolean(),reason:N.string().optional(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("tool-output-available"),toolCallId:N.string(),output:N.unknown(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:eo.optional(),dynamic:N.boolean().optional(),preliminary:N.boolean().optional()}),N.looseObject({type:N.literal("tool-output-error"),toolCallId:N.string(),errorText:N.string(),providerExecuted:N.boolean().optional(),providerMetadata:Ce.optional(),toolMetadata:eo.optional(),dynamic:N.boolean().optional()}),N.looseObject({type:N.literal("tool-output-denied"),toolCallId:N.string()}),N.looseObject({type:N.literal("reasoning-start"),id:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("reasoning-delta"),id:N.string(),delta:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("reasoning-end"),id:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("custom"),kind:N.string().transform((M)=>M),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("source-url"),sourceId:N.string(),url:N.string(),title:N.string().optional(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("source-document"),sourceId:N.string(),mediaType:N.string(),title:N.string(),filename:N.string().optional(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("file"),url:N.string(),mediaType:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.literal("reasoning-file"),url:N.string(),mediaType:N.string(),providerMetadata:Ce.optional()}),N.looseObject({type:N.custom((M)=>typeof M==="string"&&M.startsWith("data-"),{message:'Type must start with "data-"'}),id:N.string().optional(),data:N.unknown(),transient:N.boolean().optional()}),N.looseObject({type:N.literal("start-step")}),N.looseObject({type:N.literal("finish-step")}),N.looseObject({type:N.literal("reset-step")}),N.looseObject({type:N.literal("start"),messageId:N.string().optional(),messageMetadata:N.unknown().optional()}),N.looseObject({type:N.literal("finish"),finishReason:N.enum(["stop","length","content-filter","tool-calls","error","interrupted","other"]).optional(),messageMetadata:N.unknown().optional()}),N.looseObject({type:N.literal("abort"),reason:N.string().optional()}),N.looseObject({type:N.literal("message-metadata"),messageMetadata:N.unknown()})])));function ef(M){return M.type.startsWith("data-")}function Ut(){return Object.create(null)}function Uo(M){return M.type.startsWith("tool-")}function tf(M){return M.type==="dynamic-tool"}function ro(M){return Uo(M)||tf(M)}function Nn(M){return M.type.split("-").slice(1).join("-")}function dc({lastMessage:M,messageId:C}){let O=M?.role==="assistant"?M:{id:C,metadata:void 0,role:"assistant",parts:[]},L=Ut(),W=O.parts.findLastIndex((H)=>H.type==="step-start"),ee=0;for(let H of O.parts.slice(W+1)){if(!ro(H))continue;let te=ee;if(Uo(H))ee++;if(H.state!=="input-streaming")continue;L[H.toolCallId]={text:H.rawInput??"",inputEncoding:H.inputEncoding,index:te,toolName:H.type==="dynamic-tool"?H.toolName:Nn(H),dynamic:H.type==="dynamic-tool",title:H.title,toolMetadata:H.toolMetadata}}return{message:O,activeTextParts:Ut(),activeReasoningParts:Ut(),partialToolCalls:L}}function rf({stream:M,messageMetadataSchema:C,dataPartSchemas:O,runUpdateMessageJob:L,onError:W,onToolCall:ee,onData:H,resetStateOnMessageIdChange:te=!1,resetStateOnFirstMessageStart:re=!1}){let ne=!0;return M.pipeThrough(new TransformStream({async transform(z,oe){await L(async({state:se,write:de})=>{function me(){let le=se.message.parts,ve=le.length-1;while(ve>=0&&le[ve].type!=="step-start")ve--;return le.slice(ve+1)}function $e(){return me().filter(ro)}function Le(le){let ve=$e().find((Se)=>Se.toolCallId===le);if(ve==null){let Se=se.message.parts;for(let ce=Se.length-1;ce>=0;ce--){let Ie=Se[ce];if(ro(Ie)&&Ie.toolCallId===le){ve=Ie;break}}}if(ve==null)throw new aa({chunkType:"tool-invocation",chunkId:le,message:`No tool invocation found for tool call ID "${le}".`});return ve}function be(le){let ve=se.message.parts.filter(ro).find((Se)=>Se.approval?.id===le);if(ve==null)throw new aa({chunkType:"tool-approval-response",chunkId:le,message:`No tool invocation found for approval ID "${le}".`});return ve}function Ne(le,ve){let Se=ve??me().find((We)=>Uo(We)&&We.toolCallId===le.toolCallId),ce=le,Ie=Se;if(Se!=null){if(Se.state=le.state,Ie.type=`tool-${le.toolName}`,Ie.input=ce.input,Ie.output=ce.output,Ie.errorText=ce.errorText,Ie.rawInput=ce.rawInput,ce.inputEncoding!=null)Ie.inputEncoding=ce.inputEncoding;else delete Ie.inputEncoding;if(Ie.preliminary=ce.preliminary,le.title!==void 0)Ie.title=le.title;if(le.toolMetadata!==void 0)Ie.toolMetadata=le.toolMetadata;Ie.providerExecuted=ce.providerExecuted??Se.providerExecuted;let We=ce.providerMetadata;if(We!=null)if(le.state==="output-available"||le.state==="output-error"){let tt=Se;tt.resultProviderMetadata=We}else Se.callProviderMetadata=We}else se.message.parts.push({type:`tool-${le.toolName}`,toolCallId:le.toolCallId,state:le.state,title:le.title,...le.toolMetadata!==void 0?{toolMetadata:le.toolMetadata}:{},input:ce.input,...ce.inputEncoding!=null?{inputEncoding:ce.inputEncoding}:{},output:ce.output,rawInput:ce.rawInput,errorText:ce.errorText,providerExecuted:ce.providerExecuted,preliminary:ce.preliminary,...ce.providerMetadata!=null&&(le.state==="output-available"||le.state==="output-error")?{resultProviderMetadata:ce.providerMetadata}:{},...ce.providerMetadata!=null&&!(le.state==="output-available"||le.state==="output-error")?{callProviderMetadata:ce.providerMetadata}:{}})}function xe(le,ve){let Se=ve??me().find((We)=>We.type==="dynamic-tool"&&We.toolCallId===le.toolCallId),ce=le,Ie=Se;if(Se!=null){if(Se.state=le.state,Ie.toolName=le.toolName,Ie.input=ce.input,Ie.output=ce.output,Ie.errorText=ce.errorText,Ie.rawInput=ce.rawInput,ce.inputEncoding!=null)Ie.inputEncoding=ce.inputEncoding;else delete Ie.inputEncoding;if(Ie.preliminary=ce.preliminary,le.title!==void 0)Ie.title=le.title;if(le.toolMetadata!==void 0)Ie.toolMetadata=le.toolMetadata;Ie.providerExecuted=ce.providerExecuted??Se.providerExecuted;let We=ce.providerMetadata;if(We!=null)if(le.state==="output-available"||le.state==="output-error"){let tt=Se;tt.resultProviderMetadata=We}else Se.callProviderMetadata=We}else se.message.parts.push({type:"dynamic-tool",toolName:le.toolName,toolCallId:le.toolCallId,state:le.state,input:ce.input,...ce.inputEncoding!=null?{inputEncoding:ce.inputEncoding}:{},output:ce.output,errorText:ce.errorText,preliminary:ce.preliminary,providerExecuted:ce.providerExecuted,title:le.title,...le.toolMetadata!==void 0?{toolMetadata:le.toolMetadata}:{},...ce.providerMetadata!=null&&(le.state==="output-available"||le.state==="output-error")?{resultProviderMetadata:ce.providerMetadata}:{},...ce.providerMetadata!=null&&!(le.state==="output-available"||le.state==="output-error")?{callProviderMetadata:ce.providerMetadata}:{}})}async function we(le){if(le!=null){let ve=se.message.metadata!=null?Aa(se.message.metadata,le):le;if(C!=null)await x({value:ve,schema:C,context:{field:"message.metadata",entityId:se.message.id}});se.message.metadata=ve}}switch(z.type){case"text-start":{let le={type:"text",text:"",providerMetadata:z.providerMetadata,state:"streaming"};se.activeTextParts[z.id]=le,se.message.parts.push(le),de();break}case"text-delta":{let le=se.activeTextParts[z.id];if(le==null)throw new aa({chunkType:"text-delta",chunkId:z.id,message:`Received text-delta for missing text part with ID "${z.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});le.text+=z.delta,le.providerMetadata=z.providerMetadata??le.providerMetadata,de();break}case"text-end":{let le=se.activeTextParts[z.id];if(le==null)throw new aa({chunkType:"text-end",chunkId:z.id,message:`Received text-end for missing text part with ID "${z.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});if(le.state="done",z.citations!=null)le.citations=z.citations;le.providerMetadata=z.providerMetadata??le.providerMetadata,delete se.activeTextParts[z.id],de();break}case"custom":{let le={type:"custom",kind:z.kind,providerMetadata:z.providerMetadata};se.message.parts.push(le),de();break}case"reasoning-start":{let le={type:"reasoning",id:z.id,text:"",providerMetadata:z.providerMetadata,state:"streaming"};se.activeReasoningParts[z.id]=le,se.message.parts.push(le),de();break}case"reasoning-delta":{let le=se.activeReasoningParts[z.id];if(le==null)throw new aa({chunkType:"reasoning-delta",chunkId:z.id,message:`Received reasoning-delta for missing reasoning part with ID "${z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});le.text+=z.delta,le.providerMetadata=z.providerMetadata??le.providerMetadata,de();break}case"reasoning-end":{let le=se.activeReasoningParts[z.id];if(le==null)throw new aa({chunkType:"reasoning-end",chunkId:z.id,message:`Received reasoning-end for missing reasoning part with ID "${z.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});le.providerMetadata=z.providerMetadata??le.providerMetadata,le.state="done",delete se.activeReasoningParts[z.id],de();break}case"file":case"reasoning-file":se.message.parts.push({type:z.type,mediaType:z.mediaType,url:z.url,...z.providerMetadata!=null?{providerMetadata:z.providerMetadata}:{}}),de();break;case"source-url":se.message.parts.push({type:"source-url",sourceId:z.sourceId,url:z.url,title:z.title,providerMetadata:z.providerMetadata}),de();break;case"source-document":se.message.parts.push({type:"source-document",sourceId:z.sourceId,mediaType:z.mediaType,title:z.title,filename:z.filename,providerMetadata:z.providerMetadata}),de();break;case"tool-input-start":{let le=me().filter(Uo);if(se.partialToolCalls[z.toolCallId]={text:"",inputEncoding:z.inputEncoding,toolName:z.toolName,index:le.length,dynamic:z.dynamic,title:z.title,toolMetadata:z.toolMetadata},z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-streaming",inputEncoding:z.inputEncoding,input:void 0,providerExecuted:z.providerExecuted,title:z.title,toolMetadata:z.toolMetadata,providerMetadata:z.providerMetadata});else Ne({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-streaming",inputEncoding:z.inputEncoding,input:void 0,providerExecuted:z.providerExecuted,title:z.title,toolMetadata:z.toolMetadata,providerMetadata:z.providerMetadata});de();break}case"tool-input-delta":{let le=se.partialToolCalls[z.toolCallId];if(le==null)throw new aa({chunkType:"tool-input-delta",chunkId:z.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${z.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});le.text+=z.inputTextDelta;let ve=le.inputEncoding==="text"?le.text:(await _m(le.text)).value;if(le.dynamic)xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"input-streaming",inputEncoding:le.inputEncoding,input:ve,rawInput:le.text,title:le.title,toolMetadata:le.toolMetadata});else Ne({toolCallId:z.toolCallId,toolName:le.toolName,state:"input-streaming",inputEncoding:le.inputEncoding,input:ve,rawInput:le.text,title:le.title,toolMetadata:le.toolMetadata});de();break}case"tool-input-available":if(z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-available",input:z.input,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:z.title,toolMetadata:z.toolMetadata});else Ne({toolCallId:z.toolCallId,toolName:z.toolName,state:"input-available",input:z.input,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:z.title,toolMetadata:z.toolMetadata});if(de(),ee&&!z.providerExecuted)await ee({toolCall:z});break;case"tool-input-error":{let le=me().filter(ro).find((ve)=>ve.toolCallId===z.toolCallId);if(le!=null?le.type==="dynamic-tool":!!z.dynamic)xe({toolCallId:z.toolCallId,toolName:z.toolName,state:"output-error",input:z.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,toolMetadata:z.toolMetadata});else Ne({toolCallId:z.toolCallId,toolName:z.toolName,state:"output-error",input:z.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,toolMetadata:z.toolMetadata});de();break}case"tool-approval-request":{let le=Le(z.toolCallId);le.state="approval-requested",le.approval={id:z.approvalId,...z.approvalDescriptor!=null?{descriptor:z.approvalDescriptor}:{},...Object.prototype.hasOwnProperty.call(z,"inputSchemaInput")?{inputSchemaInput:z.inputSchemaInput}:{},...z.reason!=null?{requestReason:z.reason}:{},...z.isAutomatic===!0?{isAutomatic:!0}:{},...z.signature!=null?{signature:z.signature}:{}},de();break}case"tool-approval-response":{let le=be(z.approvalId),ve=le.approval==null?{id:z.approvalId}:le.approval;if(le.state="approval-responded",le.approval={...ve,id:z.approvalId,approved:z.approved,...z.reason!=null?{reason:z.reason}:{}},z.providerExecuted!=null)le.providerExecuted=z.providerExecuted;if(z.providerMetadata!=null)le.callProviderMetadata=z.providerMetadata;de();break}case"tool-output-denied":{let le=Le(z.toolCallId);le.state="output-denied",de();break}case"tool-output-available":{let le=Le(z.toolCallId);if(le.type==="dynamic-tool")xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"output-available",input:le.input,output:z.output,preliminary:z.preliminary,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);else Ne({toolCallId:z.toolCallId,toolName:Nn(le),state:"output-available",input:le.input,output:z.output,providerExecuted:z.providerExecuted,preliminary:z.preliminary,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);de();break}case"tool-output-error":{let le=Le(z.toolCallId);if(le.type==="dynamic-tool")xe({toolCallId:z.toolCallId,toolName:le.toolName,state:"output-error",input:le.input,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);else Ne({toolCallId:z.toolCallId,toolName:Nn(le),state:"output-error",input:le.input,rawInput:le.rawInput,errorText:z.errorText,providerExecuted:z.providerExecuted,providerMetadata:z.providerMetadata,title:le.title,toolMetadata:z.toolMetadata??le.toolMetadata},le);de();break}case"start-step":se.message.parts.push({type:"step-start"});break;case"finish-step":break;case"reset-step":{let le=me();if(se.activeTextParts=Ut(),se.activeReasoningParts=Ut(),se.partialToolCalls=Ut(),le.length>0)se.message.parts.splice(se.message.parts.length-le.length,le.length),de();break}case"start":{let le=re&&ne||te&&z.messageId!=null&&z.messageId!==se.message.id;if(ne=!1,le)Object.assign(se,dc({lastMessage:void 0,messageId:z.messageId??se.message.id}),{finishReason:void 0});if(z.messageId!=null)se.message.id=z.messageId;if(await we(z.messageMetadata),le||z.messageId!=null||z.messageMetadata!=null)de({updateStatus:!1});break}case"finish":if(z.finishReason!=null)se.finishReason=z.finishReason;if(await we(z.messageMetadata),z.messageMetadata!=null)de();break;case"message-metadata":if(await we(z.messageMetadata),z.messageMetadata!=null)de();break;case"error":W?.(Error(z.errorText));break;default:if(ef(z)){if(O?.[z.type]!=null){let Se=se.message.parts.findIndex((Ie)=>("id"in Ie)&&("data"in Ie)&&Ie.id===z.id&&Ie.type===z.type),ce=Se>=0?Se:se.message.parts.length;await x({value:z.data,schema:O[z.type],context:{field:`message.parts[${ce}].data`,entityName:z.type,entityId:z.id}})}let le=z;if(le.transient){H?.(le);break}let ve=le.id!=null?se.message.parts.find((Se)=>le.type===Se.type&&le.id===Se.id):void 0;if(ve!=null)ve.data=le.data;else se.message.parts.push(le);H?.(le),de()}}oe.enqueue(z)})}}))}function af({messageId:M,originalMessages:C=[],onStepEnd:O,onStepFinish:L,onEnd:W,onFinish:ee,onError:H,stream:te,getOutcome:re}){let ne=C?.[C.length-1];if(ne?.role!=="assistant")ne=void 0;else M=ne.id;let z=!1,oe=!1,se,de=(ve)=>{oe=!0,se=ve},me=te.pipeThrough(new TransformStream({transform(ve,Se){try{let ce=ve;if(ve.type==="start"){let Ie=ve;if(Ie.messageId==null&&M!=null)ce={...Ie,messageId:M}}if(ve.type==="abort")z=!0;Se.enqueue(ce)}catch(ce){throw de(ce),ce}}})),$e=O??L,Le=W??ee;if(Le==null&&$e==null)return me;let be=dc({lastMessage:ne?structuredClone(ne):void 0,messageId:M??""}),Ne=async(ve)=>{try{await ve({state:be,write:()=>{}})}catch(Se){throw de(Se),Se}},xe=!1,we=async({isCancelled:ve})=>{if(xe||!Le)return;xe=!0;let Se=be.message.id===ne?.id,ce=re?.()??{status:"unknown"},Ie=oe?{status:"failed",error:se}:ce.status==="unknown"&&z?{status:"aborted"}:ce,We=ve&&Ie.status==="unknown";await Le({isAborted:z||Ie.status==="aborted",...We?{isCancelled:!0}:{},isContinuation:Se,outcome:Ie,responseMessage:be.message,messages:[...Se?C.slice(0,-1):C,be.message],finishReason:be.finishReason})},le=async()=>{if(!$e)return;let ve=be.message.id===ne?.id;try{await $e({isContinuation:ve,responseMessage:structuredClone(be.message),messages:[...ve?C.slice(0,-1):C,structuredClone(be.message)]})}catch(Se){H(Se)}};return rf({stream:me,runUpdateMessageJob:Ne,onError:H}).pipeThrough(new TransformStream({async transform(ve,Se){if(ve.type==="finish-step")await le();Se.enqueue(ve)},async cancel(){await we({isCancelled:!0})},async flush(){await we({isCancelled:!1})}}))}function of(M,{tools:C,sendReasoning:O=!0,sendSources:L=!1,sendStart:W=!0,sendFinish:ee=!0,onError:H=()=>"An error occurred.",messageMetadata:te,responseMessageId:re}={}){let ne=(oe)=>{let se=C?.[oe.toolName];if(se==null)return oe.dynamic;return se?.type==="dynamic"?!0:void 0},z=M.type;switch(z){case"text-start":return{type:"text-start",id:M.id,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"text-delta":return{type:"text-delta",id:M.id,delta:M.text,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"text-end":return{type:"text-end",id:M.id,...M.citations!=null?{citations:M.citations}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"reasoning-start":case"reasoning-end":if(!O)return;return{type:z,id:M.id,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"reasoning-delta":if(!O)return;return{type:"reasoning-delta",id:M.id,delta:M.text,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"file":case"reasoning-file":if(z==="reasoning-file"&&!O)return;return{type:M.type,mediaType:M.file.mediaType,url:`data:${M.file.mediaType};base64,${M.file.base64}`,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"source":if(!L)return;if(M.sourceType==="url")return{type:"source-url",sourceId:M.id,url:M.url,title:M.title,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};if(M.sourceType==="document")return{type:"source-document",sourceId:M.id,mediaType:M.mediaType,title:M.title,filename:M.filename,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};return;case"custom":return{type:"custom",kind:M.kind,...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{}};case"tool-input-start":{let oe=ne(M);return{type:"tool-input-start",toolCallId:M.id,toolName:M.toolName,...M.inputEncoding!=null?{inputEncoding:M.inputEncoding}:{},...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},...M.title!=null?{title:M.title}:{}}}case"tool-input-delta":return{type:"tool-input-delta",toolCallId:M.id,inputTextDelta:M.delta};case"tool-call":{let oe=ne(M);if(M.invalid)return{type:"tool-input-error",toolCallId:M.toolCallId,toolName:M.toolName,input:M.input,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},errorText:H(M.error),...M.title!=null?{title:M.title}:{}};return{type:"tool-input-available",toolCallId:M.toolCallId,toolName:M.toolName,input:M.input,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{},...M.title!=null?{title:M.title}:{}}}case"tool-approval-request":{let oe=Kn(M.toolCall);return{type:"tool-approval-request",approvalId:M.approvalId,toolCallId:M.toolCall.toolCallId,...oe!=null&&!lo(oe.value,M.toolCall.input)?{inputSchemaInput:oe.value}:{},...M.reason!=null?{reason:M.reason}:{},...M.isAutomatic!=null?{isAutomatic:M.isAutomatic}:{},...M.signature!=null?{signature:M.signature}:{}}}case"tool-approval-response":return{type:"tool-approval-response",approvalId:M.approvalId,approved:M.approved,...M.reason!=null?{reason:M.reason}:{},...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{}};case"tool-result":{let oe=ne(M);return{type:"tool-output-available",toolCallId:M.toolCallId,output:M.output===void 0?null:M.output,...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...M.preliminary!=null?{preliminary:M.preliminary}:{},...oe!=null?{dynamic:oe}:{}}}case"tool-error":{let oe=ne(M);return{type:"tool-output-error",toolCallId:M.toolCallId,errorText:M.providerExecuted?typeof M.error==="string"?M.error:JSON.stringify(M.error):H(M.error),...M.providerExecuted!=null?{providerExecuted:M.providerExecuted}:{},...M.providerMetadata!=null?{providerMetadata:M.providerMetadata}:{},...M.toolMetadata!=null?{toolMetadata:M.toolMetadata}:{},...oe!=null?{dynamic:oe}:{}}}case"tool-output-denied":return{type:"tool-output-denied",toolCallId:M.toolCallId};case"error":return{type:"error",errorText:H(M.error)};case"start-step":return{type:"start-step"};case"finish-step":return{type:"finish-step"};case"start":if(!W)return;return{type:"start",...te!=null?{messageMetadata:te}:{},...re!=null?{messageId:re}:{}};case"finish":if(!ee)return;return{type:"finish",finishReason:M.finishReason,...te!=null?{messageMetadata:te}:{}};case"abort":return M;case"tool-input-end":case"raw":return;default:throw Error(`Unknown chunk type: ${z}`)}}function nf({stream:M,tools:C,sendReasoning:O=!0,sendSources:L=!1,sendStart:W=!0,sendFinish:ee=!0,onError:H=()=>"An error occurred.",messageMetadata:te,originalMessages:re,generateMessageId:ne,onStepEnd:z,onStepFinish:oe,onEnd:se,onFinish:de}){let me={status:"unknown"},$e=!1,Le=(Se)=>{if(!$e&&me.status!=="completed"&&me.status!=="aborted"&&Se.status!=="unknown"&&(me.status==="unknown"||Se.status!=="failed"))me=Se},be=(Se)=>{$e=!0,me={status:"failed",error:Se}},Ne=ne!=null?Zm({originalMessages:re,responseMessageId:ne}):void 0,xe=M.getReader(),we=!1,le=!1,ve=()=>{if(!we)xe.releaseLock(),we=!0};return af({stream:new ReadableStream({async pull(Se){try{let{done:ce,value:Ie}=await xe.read();if(ce){if(ve(),!le)Se.close()}else Se.enqueue(Ie)}catch(ce){if(ve(),!le)be(ce),Se.error(ce)}},async cancel(Se){if(le=!0,we)return;try{await xe.cancel(Se)}finally{ve()}}}).pipeThrough(new TransformStream({transform:async(Se,ce)=>{try{let Ie=te?.({part:Se}),We=of(Se,{tools:C,sendReasoning:O,sendSources:L,sendStart:W,sendFinish:ee,onError:H,messageMetadata:Ie,responseMessageId:Ne});if(We!=null&&Se.type!=="finish-step")ce.enqueue(We);if(Ie!=null&&Se.type!=="start"&&Se.type!=="finish")ce.enqueue({type:"message-metadata",messageMetadata:Ie});if(We!=null&&Se.type==="finish-step")ce.enqueue(We);if(Se.type==="finish")Le({status:"completed"});else if(Se.type==="abort")Le({status:"aborted"});else if(Se.type==="error")Le({status:"failed",error:Se.error})}catch(Ie){throw be(Ie),Ie}}})),messageId:Ne??ne?.(),originalMessages:re,onStepEnd:z??oe,onEnd:se??de,onError:H,getOutcome:()=>me})}function Dn(M){return uc(M.pipeThrough(new TransformStream))}function uc(M){return M[Symbol.asyncIterator]=function(){let C=this.getReader(),O=!1;async function L(W){if(O)return;O=!0;try{if(W)await C.cancel?.()}finally{try{C.releaseLock()}catch{}}}return{async next(){if(O)return{done:!0,value:void 0};let W;try{W=await C.read()}catch(te){throw await L(!1),te}let{done:ee,value:H}=W;if(ee)return await L(!0),{done:!0,value:void 0};return{done:!1,value:H}},async return(){return await L(!0),{done:!0,value:void 0}},async throw(W){throw await L(!0),W}}},M}async function sf({stream:M,onError:C,abortSignal:O}){let L=M.getReader(),W=()=>{L.cancel().catch(()=>{})};if(O?.aborted)W();else O?.addEventListener("abort",W,{once:!0});try{while(!0){let{done:ee}=await L.read();if(ee)break}}catch(ee){C?.(ee)}finally{O?.removeEventListener("abort",W),L.releaseLock()}}function Pi(){let M,C;return{promise:new Promise((O,L)=>{M=O,C=L}),resolve:M,reject:C}}function lf(){let M=[],C=null,O=!1,L=!1,W=Pi(),ee=()=>{if(L)return;O=!0,W.resolve(),M.forEach(({reader:te,onCancel:re})=>{re?.(),te.cancel()}),M=[],C?.close()},H=async()=>{if(L)return;if(O&&M.length===0){C?.close();return}if(M.length===0)return W=Pi(),await W.promise,await H();let te=M[0];try{let{value:re,done:ne}=await te.reader.read();if(L)return;if(ne)if(M.shift(),M.length===0&&O)C?.close();else await H();else C?.enqueue(re)}catch(re){if(L)return;te.onError?.(re),C?.error(re),M.shift(),ee()}};return{stream:new ReadableStream({start(te){C=te},pull:H,async cancel(){L=!0,O=!0,W.resolve();for(let{reader:te,onCancel:re}of M)re?.(),await te.cancel();M=[]}}),addStream:(te,re)=>{if(L){re?.onCancel?.(),te.cancel().catch(()=>{});return}if(O)throw Error("Cannot add inner stream: outer stream is closed");M.push({reader:te.getReader(),...re}),W.resolve()},close:()=>{if(L)return;if(O=!0,W.resolve(),M.length===0)C?.close()},terminate:ee}}var pc=Symbol("streamRetryAttemptBoundary");function cf({warnings:M}){return{[pc]:!0,warnings:M}}function Zn(M){return typeof M==="object"&&M!=null&&pc in M}function df({stream:M,tools:C,callId:O,messages:L,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,toolApproval:re,runtimeContext:ne,toolApprovalSecret:z,generateId:oe,onToolExecutionStart:se,onToolExecutionEnd:de,executeToolInTelemetryContext:me,runInTracingChannelSpan:$e,toolCallConcurrency:Le}){let be=[];return M.pipeThrough(new TransformStream({async transform(Ne,xe){if(xe.enqueue(Ne),Zn(Ne)){be.length=0;return}switch(Ne.type){case"tool-call":{if(Ne.invalid)return;let we=et(C,Ne.toolName);if(we==null)return;let le=await Jn({tools:C,toolCall:Ne,toolApproval:re,messages:L,toolsContext:te,runtimeContext:ne});if(le.type==="not-applicable"){if(we.execute!=null&&Ne.providerExecuted!==!0)be.push(Ne);return}let ve=oe(),Se=await rc({secret:z,approvalId:ve,toolCallId:Ne.toolCallId,toolName:Ne.toolName,input:Ne.input});switch(le.type){case"user-approval":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:Ne,...le.reason!=null?{reason:le.reason}:{},...Se!=null?{signature:Se}:{}});return;case"denied":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:Ne,isAutomatic:!0,...Se!=null?{signature:Se}:{}}),xe.enqueue({type:"tool-approval-response",approvalId:ve,approved:!1,toolCall:Ne,reason:le.reason,providerExecuted:Ne.providerExecuted}),xe.enqueue({type:"tool-output-denied",toolCallId:Ne.toolCallId,toolName:Ne.toolName});return;case"approved":xe.enqueue({type:"tool-approval-request",approvalId:ve,toolCall:Ne,isAutomatic:!0,...Se!=null?{signature:Se}:{}}),xe.enqueue({type:"tool-approval-response",approvalId:ve,approved:!0,toolCall:Ne,reason:le.reason,providerExecuted:Ne.providerExecuted})}if(we.execute!=null&&Ne.providerExecuted!==!0)be.push(Ne);return}case"model-call-end":if(!Ll(Ne.finishReason))return;await Xn({items:be,concurrency:Le,abortSignal:W,execute:async(we)=>{try{let le=await zn({toolCall:we,tools:C,callId:O,messages:L,abortSignal:W,timeout:ee,experimental_sandbox:H,toolsContext:te,onToolExecutionStart:se,onToolExecutionEnd:de,executeToolInTelemetryContext:me,runInTracingChannelSpan:$e,onPreliminaryToolResult:(ve)=>{xe.enqueue(ve)}});if(le!=null)xe.enqueue({type:"tool-execution-end",toolCallId:le.output.toolCallId,toolExecutionMs:le.toolExecutionMs}),xe.enqueue(le.output)}catch(le){xe.enqueue({type:"error",error:le})}}})}}}))}var uf={file:!0,custom:!1,source:!1,"text-start":!1,"text-end":!1,"text-delta":!0,"reasoning-start":!1,"reasoning-end":!1,"reasoning-delta":!0,"reasoning-file":!0,"tool-input-start":!1,"tool-input-end":!1,"tool-input-delta":!0,"tool-approval-request":!1,"tool-approval-response":!1,"tool-call":!0,"tool-result":!1,"tool-error":!1,"tool-output-denied":!1,"tool-execution-end":!1,"model-call-start":!1,"model-call-response-metadata":!1,"model-call-end":!1,error:!1,raw:!1};function Oi(M){if(!uf[M.type])return!1;switch(M.type){case"text-delta":case"reasoning-delta":return M.text.length>0;case"tool-input-delta":return M.delta.length>0;case"file":case"reasoning-file":case"tool-call":return!0;default:return!1}}function pf({stream:M,tools:C,stepInputMessages:O,abortSignal:L,toolsContext:W}){if(C==null)return M;let ee=Ut(),H=({toolCallId:te,toolName:re})=>{let ne=ee[te],z=ne?.validatedContexts[re];if(z!=null)return z;let oe=et(C,re),se=io({toolName:re,context:et(W,re),contextSchema:oe?.contextSchema});if(ne!=null)ne.validatedContexts[re]=se;return se};return M.pipeThrough(new TransformStream({async transform(te,re){if(re.enqueue(te),Zn(te)){ee=Ut();return}switch(te.type){case"tool-input-start":{ee[te.id]={toolName:te.toolName,validatedContexts:Ut()};let ne=et(C,te.toolName);if(ne?.onInputStart!=null)await ne.onInputStart({toolCallId:te.id,messages:O,abortSignal:L,context:await H({toolCallId:te.id,toolName:te.toolName})});break}case"tool-input-delta":{let ne=ee[te.id]?.toolName,z=et(C,ne);if(z?.onInputDelta!=null)await z.onInputDelta({inputTextDelta:te.delta,toolCallId:te.id,messages:O,abortSignal:L,context:await H({toolCallId:te.id,toolName:ne})});break}case"tool-call":{let ne=te.toolName,z=et(C,ne);if(!te.invalid&&z?.onInputAvailable!=null){let oe=H({toolCallId:te.toolCallId,toolName:ne});delete ee[te.toolCallId],await z.onInputAvailable({input:te.input,toolCallId:te.toolCallId,messages:O,abortSignal:L,context:await oe})}else delete ee[te.toolCallId]}}}}))}function mf(M){if(gf(M)||m.isInstance(M)||gi.isInstance(M))return M;let C=Ao(M);if(C==null)return M;let O=lt(M),L=O?C:Ao(Ao(C.response)?.error)??Ao(C.error)??C;if(typeof L.message!=="string")return M;let W=ji(L.type)??ji(C.type),ee=Ni(L.code)??Ni(C.code),H=Fr(L.statusCode)??Fr(C.statusCode)??Fr(L.status_code)??Fr(C.status_code)??Fr(L.status)??Fr(C.status)??Fr(L.code)??Fr(C.code),te=ff(L.message),re=H??te?.statusCode,ne=ko(L.isRetryable)??ko(C.isRetryable)??ko(L.is_retryable)??ko(C.is_retryable);return new gi({message:L.message,type:W,code:ee,statusCode:re,isRetryable:ne??te?.isRetryable??hf(re),data:O?M.data:M})}function ff(M){switch(M.trim().toLowerCase()){case"overloaded":case"overloaded error":case"model overloaded":return{statusCode:503,isRetryable:!0};case"internal server error":return{statusCode:500,isRetryable:!0};case"service unavailable":return{statusCode:503,isRetryable:!0};default:return}}function hf(M){return M!=null&&(M===408||M===409||M===429||M>=500)}function Ao(M){return typeof M==="object"&&M!=null?M:void 0}function gf(M){return M instanceof Error||Object.prototype.toString.call(M)==="[object Error]"}function ji(M){return typeof M==="string"?M:void 0}function Ni(M){return typeof M==="string"||typeof M==="number"?M:void 0}function ko(M){return typeof M==="boolean"?M:void 0}function Fr(M){let C=typeof M==="string"&&/^\d{3}$/.test(M)?Number(M):M;return typeof C==="number"&&Number.isInteger(C)&&C>=400&&C<=599?C:void 0}var yf=V({prefix:"aitxt",size:24}),vf=V({prefix:"call",size:24});async function wf({model:M,tools:C,toolOrder:O,output:L,toolChoice:W,prompt:ee,system:H,instructions:te,messages:re,allowSystemInMessages:ne,download:z,abortSignal:oe,headers:se,includeRawChunks:de,providerOptions:me,repairToolCall:$e,refineToolInput:Le,executeLanguageModelCallInTelemetryContext:be=async({execute:He})=>await He(),callId:Ne,toolsContext:xe,experimental_sandbox:we,_internal:{generateId:le=yf,generateCallId:ve=vf,now:Se=so,collectContent:ce=!0}={},onStart:Ie,onLanguageModelCallStart:We,onLanguageModelCallEnd:tt,...he}){let He=no(M),Re=Ne??ve(),at=await Bn({instructions:te,system:H,prompt:ee,messages:re,allowSystemInMessages:ne}),bt=await Il({prompt:{instructions:at.instructions,messages:at.messages},supportedUrls:await He.supportedUrls,download:z,abortSignal:oe,provider:He.provider.split(".")[0]}),Ot=await Vn({tools:C,toolOrder:O,toolsContext:xe,experimental_sandbox:we}),Qt=Gn({toolChoice:W});await st({event:{promptMessages:bt},callbacks:Ie});let rr={callId:Re,provider:He.provider,modelId:He.modelId,instructions:at.instructions,messages:at.messages,tools:Ot,...he};await st({event:rr,callbacks:We});let vr=Se(),{stream:wr,response:Vr,request:br}=await be({...rr,execute:async()=>await He.doStream({...he,tools:Ot,toolChoice:Qt,responseFormat:await L?.responseFormat,prompt:bt,providerOptions:me,abortSignal:oe,headers:se,includeRawChunks:de})});return{stream:Dn(wr.pipeThrough(bf({tools:C,instructions:at.instructions,messages:at.messages,repairToolCall:$e,refineToolInput:Le,abortSignal:oe,callId:Re,provider:He.provider,modelId:He.modelId,toolChoice:Qt,generateId:le,now:Se,callStartTimestampMs:vr,onLanguageModelCallEnd:tt,collectContent:ce}))),response:Vr,request:br}}function bf({tools:M,instructions:C,messages:O,repairToolCall:L,refineToolInput:W,abortSignal:ee,callId:H,provider:te,modelId:re,toolChoice:ne,generateId:z,now:oe,callStartTimestampMs:se,onLanguageModelCallEnd:de,collectContent:me}){let $e=new Map,Le=[],be=[],Ne=new Map,xe=new Map,we=new Map,le=new Map,ve=z(),Se=re,ce,Ie,We=[],tt=ne.type==="none";return new TransformStream({async transform(he,He){if(Sf(he)){let Re=oe();if(ce==null)ce=Re-se;else if(Ie!=null)We.push(Re-Ie);Ie=Re}if(tt&&(he.type==="tool-input-start"||he.type==="tool-input-delta"||he.type==="tool-input-end"))return;switch(he.type){case"error":He.enqueue({type:"error",error:mf(he.error)});break;case"text-start":Ra({enabled:me,content:Le,rawContent:be,partIndexes:Ne,rawPartIndexes:we,id:he.id,type:"text",providerMetadata:he.providerMetadata}),He.enqueue(he);break;case"text-delta":Ra({enabled:me,content:Le,rawContent:be,partIndexes:Ne,rawPartIndexes:we,id:he.id,type:"text",textDelta:he.delta,providerMetadata:he.providerMetadata}),He.enqueue({type:"text-delta",id:he.id,text:he.delta,providerMetadata:he.providerMetadata});break;case"text-end":Ra({enabled:me,content:Le,rawContent:be,partIndexes:Ne,rawPartIndexes:we,id:he.id,type:"text",providerMetadata:he.providerMetadata}),Ne.delete(he.id),we.delete(he.id),He.enqueue(he);break;case"reasoning-start":Ra({enabled:me,content:Le,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",providerMetadata:he.providerMetadata}),He.enqueue(he);break;case"reasoning-delta":Ra({enabled:me,content:Le,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",textDelta:he.delta,providerMetadata:he.providerMetadata}),He.enqueue({type:"reasoning-delta",id:he.id,text:he.delta,providerMetadata:he.providerMetadata});break;case"reasoning-end":Ra({enabled:me,content:Le,rawContent:be,partIndexes:xe,rawPartIndexes:le,id:he.id,type:"reasoning",providerMetadata:he.providerMetadata}),xe.delete(he.id),le.delete(he.id),He.enqueue(he);break;case"file":case"reasoning-file":{let Re=new wm({data:await Ol({data:he.data,abortSignal:ee}),mediaType:he.mediaType});if(me)Le.push({type:he.type,file:Re,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{}});if(me)be.push(he);He.enqueue({type:he.type,file:Re,providerMetadata:he.providerMetadata});break}case"finish":{let Re=Al(he.usage),at=oe()-se,bt={responseTimeMs:at,effectiveOutputTokensPerSecond:Gr({tokens:Re.outputTokens,durationMs:at}),outputTokensPerSecond:ce==null?void 0:Gr({tokens:Re.outputTokens,durationMs:at-ce}),inputTokensPerSecond:ce==null?void 0:Gr({tokens:Re.inputTokens,durationMs:ce}),effectiveTotalTokensPerSecond:Gr({tokens:On(Re.inputTokens,Re.outputTokens),durationMs:at}),timeToFirstOutputMs:ce,timeBetweenOutputChunksMs:We.length>0?If(We):void 0};await st({event:{callId:H,provider:te,modelId:Se,finishReason:he.finishReason.unified,usage:Re,content:Le,responseId:ve,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},performance:bt},callbacks:de});let Ot=ne.type==="auto"?void 0:ne,Qt=Ot!=null&&(Ot.type==="none"?$e.size>0:he.finishReason.unified!=="interrupted"&&![...$e.values()].some((rr)=>Ot.type==="required"||rr.toolName===Ot.toolName))?new Un({toolChoice:Ot,finishReason:he.finishReason.unified,provider:te,modelId:re,content:be}):void 0;if(He.enqueue({type:"model-call-end",finishReason:Qt==null?he.finishReason.unified:"error",rawFinishReason:he.finishReason.raw,usage:Re,providerMetadata:he.providerMetadata,performance:bt}),Qt!=null){He.enqueue({type:"error",error:Qt});break}break}case"tool-call":if(me)be.push(he);try{let Re=await Gl({toolCall:he,tools:M,repairToolCall:tt?void 0:L,refineToolInput:tt?void 0:W,instructions:C,messages:O,abortSignal:ee});if($e.set(Re.toolCallId,Re),me)Le.push(Re);if(tt)break;if(He.enqueue(Re),Re.invalid){if(!Re.providerExecuted)He.enqueue({type:"tool-error",toolCallId:Re.toolCallId,toolName:Re.toolName,input:Re.input,error:A(Re.error),dynamic:!0,title:Re.title,...Re.toolMetadata!=null?{toolMetadata:Re.toolMetadata}:{}});break}}catch(Re){He.enqueue({type:"error",error:Re})}break;case"tool-approval-request":{if(me)be.push(he);if(tt)break;let Re=$e.get(he.toolCallId);if(Re==null){He.enqueue({type:"error",error:new $n({toolCallId:he.toolCallId,approvalId:he.approvalId})});break}let at={type:"tool-approval-request",approvalId:he.approvalId,toolCall:Re};if(He.enqueue(at),me)Le.push(at);break}case"tool-result":{if(me)be.push(he);let Re=he.toolName,at=$e.get(he.toolCallId),bt=he.isError?{type:"tool-error",toolCallId:he.toolCallId,toolName:Re,input:at?.input,providerExecuted:!0,error:he.result,dynamic:he.dynamic,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},...at?.toolMetadata!=null?{toolMetadata:at.toolMetadata}:{}}:{type:"tool-result",toolCallId:he.toolCallId,toolName:Re,input:at?.input,output:he.result,providerExecuted:!0,dynamic:he.dynamic,...he.providerMetadata!=null?{providerMetadata:he.providerMetadata}:{},...at?.toolMetadata!=null?{toolMetadata:at.toolMetadata}:{}};if(!tt)He.enqueue(bt);if(me)Le.push(bt);break}case"tool-input-start":{let Re=et(M,he.toolName);He.enqueue({...he,dynamic:he.dynamic??Re?.type==="dynamic",title:Re?.title,...Re?.metadata!=null?{toolMetadata:Re.metadata}:{}});break}case"stream-start":He.enqueue({type:"model-call-start",warnings:he.warnings});break;case"response-metadata":ve=he.id??ve,Se=he.modelId??Se,He.enqueue({type:"model-call-response-metadata",id:he.id,timestamp:he.timestamp,modelId:he.modelId});break;default:if(he.type==="custom"||he.type==="source"){if(me)Le.push(he);if(me)be.push(he)}He.enqueue(he)}}})}function Sf(M){return M.type==="text-delta"&&M.delta.length>0||M.type==="reasoning-delta"&&M.delta.length>0||M.type==="tool-input-delta"&&M.delta.length>0||M.type==="file"||M.type==="reasoning-file"||M.type==="tool-call"}function If(M){let C=[...M].sort((L,W)=>L-W),O=M.reduce((L,W)=>L+W,0);return{min:C[0],p10:xn(C,0.1),median:xn(C,0.5),avg:O/M.length,p90:xn(C,0.9),max:C[C.length-1]}}function xn(M,C){return M[Math.ceil(C*M.length)-1]}function Ra({enabled:M,content:C,rawContent:O,partIndexes:L,rawPartIndexes:W,id:ee,type:H,textDelta:te,providerMetadata:re}){if(!M)return;let ne=L.get(ee);if(ne==null)ne=C.push({type:H,text:"",...re!=null?{providerMetadata:re}:{}})-1,L.set(ee,ne);let z=W.get(ee);if(z==null)z=O.push({type:H,text:"",...re!=null?{providerMetadata:re}:{}})-1,W.set(ee,z);let oe=C[ne],se=O[z];if(te!=null)oe.text+=te,se.text+=te;if(re!=null)oe.providerMetadata=re,se.providerMetadata=re}var Tf=V({prefix:"aitxt",size:24}),xf=V({prefix:"call",size:24});function It(M){return Ef(M)}function Ef(M){let C=Kl(M.experimental_steering);try{return Mf(M,C)}catch(O){throw C?.end("error"),O}}function Mf({model:M,tools:C,toolChoice:O,instructions:L,system:W,prompt:ee,messages:H,allowSystemInMessages:te,maxRetries:re,streamRetries:ne,abortSignal:z,timeout:oe,headers:se,stopWhen:de=Jl(1),experimental_sandbox:me,output:$e,toolApproval:Le,experimental_toolCallers:be,experimental_toolApprovalSecret:Ne,experimental_telemetry:xe,telemetry:we=xe,prepareStep:le,providerOptions:ve,activeTools:Se,toolOrder:ce,toolCallConcurrency:Ie,experimental_repairToolCall:We,repairToolCall:tt=We,experimental_refineToolInput:he,experimental_transform:He,experimental_download:Re,includeRawChunks:at,onChunk:bt,onError:Ot,onFinish:Qt,onEnd:rr=Qt,onAbort:vr,onStepEnd:wr,onStepError:Vr,onStepFinish:br,onStart:ia,experimental_onStart:la,onStepStart:ca,experimental_onStepStart:da,onLanguageModelCallStart:ka,experimental_onLanguageModelCallStart:Pa,onLanguageModelCallEnd:Oa,experimental_onLanguageModelCallEnd:ja,onToolExecutionStart:Na,onToolExecutionEnd:Da,experimental_onToolCallStart:qa,experimental_onToolCallFinish:ua,runtimeContext:pa={},toolsContext:Zt={},experimental_include:vt,include:Rr=vt,_internal:{now:Bt=so,generateId:Br=Tf,generateCallId:$a=xf,retention:ot={replay:!0,collectContent:!0}}={},..._r},Wt){let ma=oc(Ie),fa=Ml(oe),Ar=Cl(oe),Sr=Rl(oe),Ir=_l(oe),ar=Ar!=null?new AbortController:void 0,Ye=Sr!=null?new AbortController:void 0,sr=Ir!=null?new AbortController:void 0,kr=Ot??(({error:ht})=>{console.error(ht)}),Et=ia??la,ha=ca??da,ga=ka??Pa,Nt=Oa??ja,Wr=Na??qa,Tr=Da??ua,Ht=wr??br;return new _f({retention:ot,model:no(M),telemetry:we,headers:se,settings:_r,maxRetries:re,streamRetries:ne,abortSignal:Wn(z,fa,ar?.signal,Ye?.signal,sr?.signal),stepTimeoutMs:Ar,stepAbortController:ar,firstChunkTimeoutMs:Sr,firstChunkAbortController:Ye,chunkTimeoutMs:Ir,chunkAbortController:sr,instructions:L,system:W,prompt:ee,messages:H,allowSystemInMessages:te,experimental_sandbox:me,steeringRun:Wt,tools:C,toolsContext:Zt,runtimeContext:pa,toolChoice:O,transforms:qe(He),activeTools:Se,toolOrder:ce,toolCallConcurrency:ma,repairToolCall:tt,refineToolInput:he,stopConditions:qe(de),output:$e,toolApproval:Le,experimental_toolCallers:be,experimental_toolApprovalSecret:Ne,providerOptions:ve,prepareStep:le,timeout:oe,onChunk:bt,onError:kr,canRetryStreamViaOnError:ne!==void 0&&Ot!=null,onEnd:rr,onAbort:vr,onStepFinish:Ht,onStepError:Vr,onStart:Et,onStepStart:ha,onLanguageModelCallStart:ga,onLanguageModelCallEnd:Nt,onToolExecutionStart:Wr,onToolExecutionEnd:Tr,now:Bt,generateId:Br,generateCallId:$a,download:Re,include:{requestBody:Rr?.requestBody??!1,requestMessages:Rr?.requestMessages??!1,rawChunks:Rr?.rawChunks??at??!1}})}var qn=Symbol("streamRetryBoundary");function Lo(M){return qn in M}async function Di(M){try{await M}catch{}}function Cf(M,C=!0){let O=void 0,L="",W="",ee=void 0,H=void 0,te=!1;function re(){O=void 0,L="",W="",ee=void 0,H=void 0,te=!1}function ne({controller:oe,chunk:se}){oe.enqueue(se)}function z({controller:oe,partialOutput:se=void 0}){ne({controller:oe,chunk:{part:{type:"text-delta",id:O,text:W,providerMetadata:ee},partialOutput:se}}),W=""}return new TransformStream({async transform(oe,se){if(!C){se.enqueue(Lo(oe)?oe:{part:oe,partialOutput:void 0});return}if(Lo(oe)){re(),se.enqueue(oe);return}if(oe.type==="start-step")re();if(oe.type==="finish-step"&&W.length>0)z({controller:se});if(oe.type!=="text-delta"&&oe.type!=="text-start"&&oe.type!=="text-end"){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(O==null)O=oe.id;else if(oe.id!==O){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(oe.type==="text-start"){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(oe.type==="text-end"){if(W.length>0)z({controller:se});ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}if(L+=oe.text,W+=oe.text,ee=oe.providerMetadata??ee,oe.text.length===0&&oe.providerMetadata!=null){ne({controller:se,chunk:{part:oe,partialOutput:void 0}});return}let de=await M.parsePartialOutput({text:L});if(de!==void 0){let me=typeof de.partial==="string"?de.partial:JSON.stringify(de.partial);if(!te||me!==H)z({controller:se,partialOutput:de.partial}),H=me,te=!0}}})}function Rf({stream:M,transforms:C,tools:O,stopStream:L}){let W=M.getReader(),ee=!1,H,te,re=()=>{let ne=new ReadableStream({async pull(z){let{done:oe,value:se}=await W.read();if(oe){ee=!0,z.close();return}if(Lo(se)){H=se,z.close();return}z.enqueue(se)},cancel(z){return W.cancel(z)}},{highWaterMark:0});for(let z of C)ne=ne.pipeThrough(z({tools:O,stopStream:L}));return ne.getReader()};return new ReadableStream({async pull(ne){te??=re();let{done:z,value:oe}=await te.read();if(!z){ne.enqueue(oe);return}if(te=void 0,H!=null){ne.enqueue(H),H=void 0;return}if(ee)ne.close()},async cancel(ne){await te?.cancel(ne),await W.cancel(ne)}})}var _f=class{constructor({retention:M,model:C,telemetry:O,headers:L,settings:W,maxRetries:ee,streamRetries:H,abortSignal:te,stepTimeoutMs:re,stepAbortController:ne,firstChunkTimeoutMs:z,firstChunkAbortController:oe,chunkTimeoutMs:se,chunkAbortController:de,instructions:me,system:$e,prompt:Le,messages:be,allowSystemInMessages:Ne,experimental_sandbox:xe,steeringRun:we,tools:le,toolChoice:ve,transforms:Se,activeTools:ce,toolOrder:Ie,toolCallConcurrency:We,repairToolCall:tt,refineToolInput:he,stopConditions:He,output:Re,toolApproval:at,experimental_toolCallers:bt,experimental_toolApprovalSecret:Ot,providerOptions:Qt,prepareStep:rr,now:vr,generateId:wr,generateCallId:Vr,timeout:br,onChunk:ia,onError:la,canRetryStreamViaOnError:ca,onEnd:da,onAbort:ka,onStepFinish:Pa,onStepError:Oa,onStart:ja,onStepStart:Na,onLanguageModelCallStart:Da,onLanguageModelCallEnd:qa,onToolExecutionStart:ua,onToolExecutionEnd:pa,runtimeContext:Zt,toolsContext:vt,download:Rr,include:Bt}){this._totalUsage=new Fe,this._finishReason=new Fe,this._rawFinishReason=new Fe,this._steps=new Fe,this._initialResponseMessages=new Fe,this.streamClaimed=!1,this.retention=M,this.outputSpecification=Re,this.tools=le;let Br=jl({tools:le,toolCallers:bt}),$a=ql({tools:le,toolCallers:Br}),ot=zl({telemetry:O,includeRuntimeContext:O?.includeRuntimeContext,includeToolsContext:O?.includeToolsContext}),_r,Wt=[],ma=void 0,fa=void 0,Ar=void 0,Sr={},Ir=[],ar=[],Ye=[],sr=[],kr,Et=[],ha=[],ga=!1,Nt=C,Wr=()=>{let De=new Set;return(Ze)=>{if(!De.has(Ze))return De.add(Ze),Ze;let Ee=wr(),wt=Ee,Ue=0;while(De.has(wt))wt=`${Ee}-${++Ue}`;return De.add(wt),wt}},Tr=Wr(),Ht=Wr(),ht=new Map,er=Ut(),ir=Ut(),Hr,pr=new Set,Dt,or=async(De)=>{if(Dt==null||te?.aborted)return;let{event:Ze}=Dt;Dt=void 0,await st({event:{...Ze,error:De},callbacks:[Oa,ot.onStepError]})},Vo=new TransformStream({async transform(De,Ze){if(Lo(De)){let Ue=De[qn];Wt=[],ir=Ut(),er=Ut(),Sr=Ue.request,Ir=Ue.request.messages??[],ar=Ue.warnings;return}let{part:Ee}=De;Ze.enqueue(De);let wt=Ee.type==="error"&&pr.has(Ee.error);if(!wt)await st({event:{chunk:Ee},callbacks:ia});if(Ee.type==="error"){let Ue=to(Ee.error);if(Po.isInstance(Ue))Hr=Ue;if(wt)pr.delete(Ee.error);else{if(Dt!=null)Dt.error=Ue;await st({event:{error:Ue},callbacks:async(Kt)=>{await la(Kt)}})}}if(Ee.type==="custom"||Ee.type==="source"||Ee.type==="tool-call"||Ee.type==="tool-approval-request"||Ee.type==="tool-approval-response"||Ee.type==="tool-error"){if(M.collectContent)Wt.push(Ee)}if(Ee.type==="text-start"){if(er[Ee.id]={type:"text",text:"",providerMetadata:Ee.providerMetadata},M.collectContent)Wt.push(er[Ee.id])}if(Ee.type==="text-delta"){let Ue=er[Ee.id];if(Ue==null){Ze.enqueue({part:{type:"error",error:`text part ${Ee.id} not found`},partialOutput:void 0});return}if(M.collectContent)Ue.text+=Ee.text;Ue.providerMetadata=Ee.providerMetadata??Ue.providerMetadata}if(Ee.type==="text-end"){let Ue=er[Ee.id];if(Ue==null){Ze.enqueue({part:{type:"error",error:`text part ${Ee.id} not found`},partialOutput:void 0});return}if(Ue.providerMetadata=Ee.providerMetadata??Ue.providerMetadata,Ee.citations!=null)Ue.citations=Ee.citations;delete er[Ee.id]}if(Ee.type==="reasoning-start"){if(ir[Ee.id]={type:"reasoning",text:"",providerMetadata:Ee.providerMetadata},M.collectContent)Wt.push(ir[Ee.id])}if(Ee.type==="reasoning-delta"){let Ue=ir[Ee.id];if(Ue==null){Ze.enqueue({part:{type:"error",error:`reasoning part ${Ee.id} not found`},partialOutput:void 0});return}if(M.collectContent)Ue.text+=Ee.text;Ue.providerMetadata=Ee.providerMetadata??Ue.providerMetadata}if(Ee.type==="reasoning-end"){let Ue=ir[Ee.id];if(Ue==null){Ze.enqueue({part:{type:"error",error:`reasoning part ${Ee.id} not found`},partialOutput:void 0});return}Ue.providerMetadata=Ee.providerMetadata??Ue.providerMetadata,delete ir[Ee.id]}if(Ee.type==="file"||Ee.type==="reasoning-file"){if(M.collectContent)Wt.push({type:Ee.type,file:Ee.file,...Ee.providerMetadata!=null?{providerMetadata:Ee.providerMetadata}:{}})}if(Ee.type==="tool-result"&&!Ee.preliminary){if(M.collectContent)Wt.push(Ee)}if(Ee.type==="start-step")Wt=[],ir=Ut(),er=Ut(),Sr=Ee.request,ar=Ee.warnings;if(Ee.type==="finish-step"){let Ue=await Ql({content:Wt,tools:le}),Kt=new Yn({callId:Ft,stepNumber:Ye.length,provider:Nt.provider,modelId:Nt.modelId,runtimeContext:Zt,toolsContext:vt,content:Wt,finishReason:Ee.finishReason,rawFinishReason:Ee.rawFinishReason,usage:Ee.usage,performance:Ee.performance,warnings:ar,request:{...Sr,messages:Bt.requestMessages?ao(Ir):void 0},response:{...Ee.response,messages:ao(Ue)},providerMetadata:Ee.providerMetadata,steeringMessages:ha});Dt=void 0,await st({event:Kt,callbacks:[Pa,ot.onStepEnd]}),oa({warnings:ar,provider:Nt.provider,model:Nt.modelId}),Ye.push(Kt),kr=[...Et,...Ue],_r.resolve()}if(Ee.type==="finish")Ar=Ee.totalUsage,ma=Ee.finishReason,fa=Ee.rawFinishReason},async flush(De){we?.end(Ye.length===0||Hr!=null?"error":"finished");try{let Ze=new Po({message:"No output generated. Check the stream for errors."});if(await or(Dt?.error??Ze),Ye.length===0||Hr!=null){let Xe=te?.aborted?te.reason:Hr??Ze;if(Hr!=null&&!te?.aborted)await ot.onError?.({callId:Ft,error:Hr});gt.rejectResultPromises(Xe);return}let Ee=ma??"other",wt=Ar??Ro();if(gt._finishReason.resolve(Ee),gt._rawFinishReason.resolve(fa),gt._totalUsage.resolve(wt),gt._steps.resolve(M.replay?Ye:[]),ga)return;let Ue=Ye[Ye.length-1],Kt=Ye.flatMap((Xe)=>Xe.content),it=Ye.flatMap((Xe)=>Xe.files),Or=Ye.flatMap((Xe)=>Xe.sources),Jr=Ye.flatMap((Xe)=>Xe.toolCalls),wa=Ye.flatMap((Xe)=>Xe.staticToolCalls),Jt=Ye.flatMap((Xe)=>Xe.dynamicToolCalls),Yr=Ye.flatMap((Xe)=>Xe.toolResults),mr=Ye.flatMap((Xe)=>Xe.staticToolResults),lr=Ye.flatMap((Xe)=>Xe.dynamicToolResults),xr=Ye.flatMap((Xe)=>Xe.warnings??[]),jr=da==null?void 0:async(Xe)=>{let Ge=Re==null?void 0:await(M.replay?gt.getOutputPromise():gt.parseOutput(Ue)).catch(()=>{return});await da({...Xe,...Re!=null?{output:Ge}:{}})},Ct={callId:Ft,toolsContext:Ue.toolsContext,stepNumber:Ue.stepNumber,model:Ue.model,runtimeContext:Ue.runtimeContext,finishReason:Ue.finishReason,rawFinishReason:Ue.rawFinishReason,usage:wt,totalUsage:wt,content:Kt,text:Ue.text,reasoning:Ue.reasoning,reasoningText:Ue.reasoningText,files:it,sources:Or,toolCalls:Jr,staticToolCalls:wa,dynamicToolCalls:Jt,toolResults:Yr,staticToolResults:mr,dynamicToolResults:lr,responseMessages:[...sr,...Ye.flatMap((Xe)=>Xe.response.messages)],warnings:xr,request:Ue.request,response:Ue.response,providerMetadata:Ue.providerMetadata,steps:Ye,finalStep:Ue};await Promise.all([st({event:Ct,callbacks:jr}),st({event:Ct,callbacks:ot.onEnd})])}catch(Ze){De.error(Ze)}finally{if(!M.replay)Ye=[],Wt=[],Ir=[],Et=[],kr=void 0,er=Ut(),ir=Ut()}}}),ya=lf();this.addStream=ya.addStream,this.closeStream=ya.close;let va=ya.stream.getReader(),Ua=()=>{this.rejectResultPromises(te?.reason),va.cancel(te?.reason).catch(()=>{})},zr=()=>te?.removeEventListener("abort",Ua),Pr=new ReadableStream({async start(De){if(De.enqueue({type:"start"}),te?.addEventListener("abort",Ua,{once:!0}),te?.aborted)Ua()},async pull(De){async function Ze(){ga=!0,zr(),we?.end("aborted"),await st({event:{callId:Ft,steps:Ye,...te?.reason!==void 0?{reason:te.reason}:{}},callbacks:[ka,ot.onAbort]}),De.enqueue({type:"abort",...te?.reason!==void 0?{reason:A(te.reason)}:{}}),De.close()}try{let{done:Ee,value:wt}=await va.read();if(te?.aborted){await Ze();return}if(Ee){zr(),De.close();return}De.enqueue(wt)}catch(Ee){if(zr(),Z(Ee)&&te?.aborted)await Ze();else we?.end("error"),await or(to(Ee)),await ot.onError?.({callId:Ft,error:Ee}),De.error(Ee)}},cancel(De){return zr(),we?.end("aborted"),va.cancel(De)}}),po=!0;Pr=Pr.pipeThrough(new TransformStream({async transform(De,Ze){if(po)Ze.enqueue(De)}})),Pr=Rf({stream:Pr,transforms:Se,tools:le,stopStream(){ya.terminate(),po=!1}}),this.baseStream=Pr.pipeThrough(Cf(Re??An(),M.replay||Re!=null)).pipeThrough(Vo);let{maxRetries:rt}=Oo({maxRetries:ee,abortSignal:te}),{maxRetries:Kr}=Oo({maxRetries:H,abortSignal:te,parameter:"streamRetries",defaultMaxRetries:0}),Lt=qo(W),gt=this,Ft=Vr();(async()=>{let De=await Bn({instructions:me,system:$e,prompt:Le,messages:be,allowSystemInMessages:Ne}),Ze={callId:Ft,operationId:"ai.streamText",provider:C.provider,modelId:C.modelId,instructions:De.instructions,messages:De.messages,tools:le,toolChoice:ve,activeTools:ce,toolOrder:Ie,maxOutputTokens:Lt.maxOutputTokens,temperature:Lt.temperature,topP:Lt.topP,topK:Lt.topK,presencePenalty:Lt.presencePenalty,frequencyPenalty:Lt.frequencyPenalty,stopSequences:Lt.stopSequences,seed:Lt.seed,reasoning:Lt.reasoning,maxRetries:rt,timeout:br,headers:L,providerOptions:Qt,output:Re,runtimeContext:Zt,toolsContext:vt},Ee=ot.startTracingChannelContext?.({type:"streamText",event:Ze,completion:gt._totalUsage.promise.then(()=>{return})}),wt=(Jt)=>Ee?.run(Jt)??Jt(),Ue=ot.runInTracingChannelSpan==null?void 0:(Jt)=>wt(()=>ot.runInTracingChannelSpan(Jt));await st({event:Ze,callbacks:[ja,ot.onStart]});let{messages:Kt,instructions:it}=De,{approvedToolApprovals:Or,deniedToolApprovals:Jr}=Pl({messages:Kt});if(Jr.length>0||Or.length>0){let{approvedToolApprovals:Jt,deniedToolApprovals:Yr,invalidToolApprovals:mr}=await ac({approvedToolApprovals:Or.filter((Ge)=>!Ge.toolCall.providerExecuted),tools:le,toolApproval:at,messages:Kt,toolsContext:vt,runtimeContext:Zt,toolApprovalSecret:Ot,refineToolInput:he}),lr=[...Jr.filter((Ge)=>!Ge.toolCall.providerExecuted),...Yr],xr=lr.filter((Ge)=>Ge.existingToolResult==null),jr=Jr.filter((Ge)=>Ge.toolCall.providerExecuted),Ct,Xe=new ReadableStream({start(Ge){Ct=Ge}});gt.addStream(Xe);try{for(let Ke of[...lr,...jr])Ct?.enqueue({type:"tool-output-denied",toolCallId:Ke.toolCall.toolCallId,toolName:Ke.toolCall.toolName});for(let Ke of mr)Ct?.enqueue({type:"tool-error",toolCallId:Ke.toolCall.toolCallId,toolName:Ke.toolCall.toolName,input:Ke.toolCall.input,error:A(Ke.error),title:Ke.toolCall.title,...Ke.toolCall.dynamic===!0?{dynamic:!0}:{},...Ke.toolCall.toolMetadata!=null?{toolMetadata:Ke.toolCall.toolMetadata}:{}});let Ge=[];if(await Xn({items:Jt,concurrency:We,abortSignal:te,execute:async(Ke)=>{let Ve=await zn({toolCall:Ke.toolCall,tools:le,callId:Ft,messages:Kt,abortSignal:te,timeout:br,experimental_sandbox:xe,toolsContext:vt,onToolExecutionStart:Pe(ua,ot.onToolExecutionStart),onToolExecutionEnd:Pe(pa,ot.onToolExecutionEnd),executeToolInTelemetryContext:ot.executeTool,runInTracingChannelSpan:Ue,onPreliminaryToolResult:(Gt)=>{Ct?.enqueue(Gt)}});if(Ve!=null)Ct?.enqueue(Ve.output),Ge.push(Ve.output)}}),Ge.length>0||xr.length>0||mr.length>0){let Ke=[];for(let Ve of Ge)Ke.push({type:"tool-result",toolCallId:Ve.toolCallId,toolName:Ve.toolName,output:await na({toolCallId:Ve.toolCallId,input:Ve.input,tool:et(le,Ve.toolName),output:Ve.type==="tool-result"?Ve.output:Ve.error,errorMode:Ve.type==="tool-error"?"text":"none"})});for(let Ve of mr)Ke.push({type:"tool-result",toolCallId:Ve.toolCall.toolCallId,toolName:Ve.toolCall.toolName,output:await na({toolCallId:Ve.toolCall.toolCallId,input:Ve.toolCall.input,tool:et(le,Ve.toolCall.toolName),output:Ve.error,errorMode:"text"})});for(let Ve of xr)Ke.push({type:"tool-result",toolCallId:Ve.toolCall.toolCallId,toolName:Ve.toolCall.toolName,output:{type:"execution-denied",reason:Ve.approvalResponse.reason}});sr.push({role:"tool",content:Ke})}}finally{Ct?.close()}}gt._initialResponseMessages.resolve(sr);async function wa({currentStep:Jt,usage:Yr}){let mr=jo({abortController:ne,label:"Step",timeoutMs:re}),lr=void 0;function xr(){if(te?.aborted)return;lr=jo({abortController:oe,label:"First chunk",timeoutMs:z})}function jr(){if(lr!=null)clearTimeout(lr),lr=void 0}let Ct=void 0;function Xe(){if(Ct!=null)clearTimeout(Ct);if(te?.aborted)return;Ct=jo({abortController:de,label:"Chunk",timeoutMs:se})}function Ge(){if(Ct!=null)clearTimeout(Ct),Ct=void 0}function Ke(){jr(),Ge()}function Ve(){if(mr!=null)clearTimeout(mr)}function Gt(){Ve(),Ke()}function nr(){te?.removeEventListener("abort",nr),Gt()}te?.addEventListener("abort",nr,{once:!0});try{_r=new Fe;let Rt=ot.startTracingChannelContext?.({type:"step",event:{callId:Ft,stepNumber:Jt},completion:_r.promise}),ba=(Me)=>Rt?.run(Me)??Me(),$t=Ye.flatMap((Me)=>Me.response.messages),Qr=[...sr,...$t],La=we?.takeMessages()??[],mo=[...kr??[...Kt,...sr],...La],xt=await rr?.({model:C,steps:Ye,stepNumber:Ye.length,instructions:it,initialInstructions:De.instructions,messages:mo,initialMessages:Kt,responseMessages:Qr,...La.length>0?{experimental_steeringMessages:La}:{},toolsContext:vt,runtimeContext:Zt,experimental_sandbox:xe}),Sa=xt?.experimental_sandbox??xe;Zt=xt?.runtimeContext??Zt,vt=xt?.toolsContext??vt;let Xr=no(xt?.model??C);Nt=Xr;let Fa=$l({tools:le,activeTools:xt?.activeTools??ce}),{executionTools:Er,modelTools:Nr,toolCallerMessages:tr}=Nl({tools:$a(Fa,{toolsContext:vt,experimental_sandbox:Sa}),toolCallers:Br}),Ga=xt?.toolOrder??Ie,fo=await Vn({tools:Nr,toolOrder:Ga,toolsContext:vt,experimental_sandbox:Sa}),Va=Gn({toolChoice:xt?.toolChoice??ve}),Ia=Va.type==="none"?void 0:Er,fr=Dl({messages:xt?.messages??mo,toolCallerMessages:tr});Et=fr,ha=we?.resolveTakenMessages({stepNumber:Jt,sentMessages:fr})??[];let Ba=xt?.instructions??xt?.system??it;it=Ba;let Wa=Aa(Qt,xt?.providerOptions),ho=Bl({callSettings:Lt,stepSettings:xt}),Bo=vr(),{retry:Dr}=Oo({maxRetries:rt,abortSignal:te}),cr=!1,dr=()=>ba(()=>Dr(async()=>wf({model:xt?.model??C,tools:Nr,toolOrder:Ga,toolChoice:xt?.toolChoice??ve,instructions:Ba,messages:fr,allowSystemInMessages:Ne,repairToolCall:tt,refineToolInput:he,abortSignal:te,headers:L,includeRawChunks:Bt.rawChunks,providerOptions:Wa,download:Rr,output:Re,callId:Ft,executeLanguageModelCallInTelemetryContext:ot.executeLanguageModelCall,toolsContext:vt,experimental_sandbox:Sa,onLanguageModelCallStart:Pe(Da,ot.onLanguageModelCallStart),onLanguageModelCallEnd:Pe(qa,ot.onLanguageModelCallEnd),onStart:async({promptMessages:Me})=>{if(cr)return;cr=!0;let dt={callId:Ft,provider:Xr.provider,modelId:Xr.modelId,stepNumber:Ye.length,instructions:Ba,messages:fr,tools:le,toolChoice:xt?.toolChoice??ve,activeTools:xt?.activeTools??ce,toolOrder:Ga,steps:[...Ye],providerOptions:Wa,runtimeContext:Zt,toolsContext:vt,output:Re,promptMessages:Me,stepTools:fo,stepToolChoice:Va};await st({event:dt,callbacks:[Na,ot.onStepStart]}),Dt={event:dt}},_internal:{now:vr,collectContent:M.collectContent},...ho}))),qr=await dr(),{request:Zr,response:Ta}=qr,ea=qr.stream.getReader(),go=0,$r=0,ta=[],ra=new Set,xa=new Set,Ha=!1,yo=Kr>0||ca,vo=new ReadableStream({async pull(Me){let dt=(Pt)=>{switch(Pt.type){case"text-start":ra.add(Pt.id);break;case"text-end":ra.delete(Pt.id);break;case"reasoning-start":xa.add(Pt.id);break;case"reasoning-end":xa.delete(Pt.id)}Me.enqueue(Pt)},Ur=()=>{for(let Pt of ta)dt(Pt);ta=[]},gr=()=>{for(let Pt of ra)Me.enqueue({type:"text-end",id:Pt});ra.clear();for(let Pt of xa)Me.enqueue({type:"reasoning-end",id:Pt});xa.clear()};while(!0){let Pt;try{Pt=await ea.read()}catch(Qo){throw Ke(),Qo}let{done:Io,value:pt}=Pt;if(Ha)Me.enqueue(cf({warnings:!Io&&pt.type==="model-call-start"?pt.warnings:[]})),Ha=!1;if(Io){Ke(),Ur(),Me.close();return}let Ma=pt.type==="tool-input-start"||pt.type==="tool-input-delta"||pt.type==="tool-input-end"||pt.type==="tool-call"||pt.type==="tool-approval-request"||pt.type==="tool-approval-response"||pt.type==="tool-result"||pt.type==="tool-error";if(pt.type==="model-call-end"){Ke(),Ur(),dt(pt);return}if(Oi(pt))jr(),Xe();if(yo&&pt.type!=="error"&&(Ma||ta.length>0)){ta.push(pt);continue}if(pt.type!=="error"){dt(pt);return}Ke(),await st({event:{chunk:pt},callbacks:ia});let To=to(pt.error),St=Un.isInstance(To),Lr;try{Lr=await la({error:To})}catch{}let Ya=ca&&typeof Lr==="object"&&Lr!=null&&"retry"in Lr&&Lr.retry===!0,Yo=!St&&go<Kr;if(!Yo&&!(!St&&!Yo&&Ya&&$r<1)){Ur(),pr.add(pt.error),Me.enqueue(pt);return}if(Yo)go++;else $r++;await ea.cancel(To),ta=[],gr();let xo;try{xo=await dr()}catch(Qo){Me.enqueue({type:"error",error:Qo}),Me.close();return}Zr=xo.request,Ta=xo.response,ea=xo.stream.getReader(),xr(),Ha=!0}},cancel(Me){return Ke(),ea.cancel(Me)}});xr();let Wo=pf({stream:vo,tools:Ia,stepInputMessages:fr,abortSignal:te,toolsContext:vt}),Ho=ot.runInTracingChannelSpan==null?void 0:(Me)=>ba(()=>ot.runInTracingChannelSpan(Me)),za=df({stream:Wo,tools:Ia,callId:Ft,messages:fr,abortSignal:te,timeout:br,experimental_sandbox:Sa,toolsContext:vt,toolApproval:at,runtimeContext:Zt,toolApprovalSecret:Ot,generateId:wr,onToolExecutionStart:Pe(ua,ot.onToolExecutionStart),onToolExecutionEnd:Pe(pa,ot.onToolExecutionEnd),executeToolInTelemetryContext:ot.executeTool,runInTracingChannelSpan:Ho,toolCallConcurrency:We}),Oe=()=>({...Zr,body:Bt.requestBody?Zr?.body:void 0,messages:Bt.requestMessages?ao(fr):void 0});Ir=Oe().messages??[];let nt=[],Vt=[],Mr=[],ur,hr="other",wo=void 0,bo=!1,zo=!1,So=Ro(),Ko,ts=!0,rs=()=>({responseTimeMs:0,effectiveOutputTokensPerSecond:0,outputTokensPerSecond:void 0,inputTokensPerSecond:void 0,effectiveTotalTokensPerSecond:0,timeToFirstOutputMs:void 0,timeBetweenOutputChunksMs:void 0}),Jo=rs(),as={},os=()=>({id:wr(),timestamp:new Date,modelId:Xr.modelId}),Ea=os(),Ka=new Map,Ja=new Map,_t=(Me,dt)=>{Me.enqueue(dt)};gt.addStream(za.pipeThrough(new TransformStream({async transform(Me,dt){if(Zn(Me)){ur=Me.warnings,hr="other",wo=void 0,bo=!1,zo=!1,So=Ro(),Ko=void 0,Jo=rs(),Ea=os(),Ka.clear(),Ja.clear(),dt.enqueue({[qn]:{request:Oe(),warnings:ur}});return}if(Me.type==="model-call-start"){ur=Me.warnings;return}if(ts)ts=!1,_t(dt,{type:"start-step",request:Oe(),warnings:ur??[]});let Ur=Me.type;if(Oi(Me))zo=!0;switch(Ur){case"file":case"custom":case"source":case"reasoning-file":case"tool-input-start":case"tool-input-end":case"tool-input-delta":case"tool-approval-request":case"tool-output-denied":_t(dt,Me);break;case"text-start":{let gr=Tr(Me.id);Ka.set(Me.id,gr),_t(dt,{...Me,id:gr});break}case"text-delta":if(Me.text.length>0||Me.providerMetadata!=null)_t(dt,{...Me,id:Ka.get(Me.id)??Me.id});break;case"text-end":_t(dt,{...Me,id:Ka.get(Me.id)??Me.id}),Ka.delete(Me.id);break;case"reasoning-start":{let gr=Ht(Me.id);Ja.set(Me.id,gr),_t(dt,{...Me,id:gr});break}case"reasoning-delta":_t(dt,{...Me,id:Ja.get(Me.id)??Me.id});break;case"reasoning-end":_t(dt,{...Me,id:Ja.get(Me.id)??Me.id}),Ja.delete(Me.id);break;case"tool-call":_t(dt,Me),nt.push(Me);break;case"tool-approval-response":_t(dt,Me),Mr.push(Me);break;case"tool-result":if(_t(dt,Me),!Me.preliminary)Vt.push(Me);break;case"tool-error":_t(dt,Me),Vt.push(Me);break;case"tool-execution-end":as[Me.toolCallId]=Me.toolExecutionMs;break;case"model-call-response-metadata":Ea={id:Me.id??Ea.id,timestamp:Me.timestamp??Ea.timestamp,modelId:Me.modelId??Ea.modelId};break;case"model-call-end":bo=!0,So=Me.usage,hr=Me.finishReason,wo=Me.rawFinishReason,Ko=Me.providerMetadata,Jo=Me.performance;break;case"error":bo=!0,_t(dt,Me),hr="error";break;case"raw":if(Bt.rawChunks)_t(dt,Me);break;default:throw Error(`Unknown chunk type: ${Ur}`)}},async flush(Me){if(!bo&&!zo){_t(Me,{type:"error",error:new Po({message:"No output generated. The model stream ended without a finish chunk."})}),nr(),gt.closeStream();return}let dt=vr()-Bo,Ur={type:"finish-step",finishReason:hr,rawFinishReason:wo,usage:So,performance:{stepTimeMs:dt,toolExecutionMs:as,...Jo},providerMetadata:Ko,response:{...Ea,headers:Ta?.headers}};_t(Me,Ur);let gr=kl(Yr,So);await _r.promise;let Pt=nt.filter((St)=>St.providerExecuted!==!0),Io=Vt.filter((St)=>St.providerExecuted!==!0),pt=Mr.filter((St)=>St.approved===!1);for(let St of nt){if(St.providerExecuted!==!0)continue;let Lr=et(Ia,St.toolName);if(Lr?.type==="provider"&&Lr.supportsDeferredResults){if(!Vt.some((Ya)=>(Ya.type==="tool-result"||Ya.type==="tool-error")&&Ya.toolCallId===St.toolCallId))ht.set(St.toolCallId,{toolName:St.toolName})}}for(let St of Vt)if(St.type==="tool-result"||St.type==="tool-error")ht.delete(St.toolCallId);nr();let Ma="finished";if(await(async()=>{if(hr==="interrupted")return!1;if(Pt.length!==Io.length+pt.length)return Ma="waiting-for-tool-results",!1;if(Pt.length===0&&ht.size===0){if(!we?.hasPendingMessages())return!1;if(hr==="error")return Ma="error",!1}if(await Yl({stopConditions:He,steps:Ye}))return Ma="stop-condition",!1;return!0})())try{await wt(()=>wa({currentStep:Jt+1,usage:gr}))}catch(St){we?.end("error"),_t(Me,{type:"error",error:St}),gt.closeStream()}else we?.end(Ma),_t(Me,{type:"finish",finishReason:hr,rawFinishReason:wo,totalUsage:gr}),gt.closeStream()}})),{onError:nr,onCancel:nr})}catch(Rt){throw nr(),Rt}}await wt(()=>wa({currentStep:0,usage:Ro()}))})().catch(async(De)=>{we?.end(te?.aborted?"aborted":"error"),await or(to(De)),await ot.onError?.({callId:Ft,error:De}),gt._initialResponseMessages.reject(De),Di(gt._initialResponseMessages.promise),gt.addStream(new ReadableStream({start(Ze){Ze.enqueue({type:"error",error:De}),Ze.close()}})),gt.closeStream()})}get steps(){if(this.retention.replay)this.consumeStream();return this._steps.promise}get finalStep(){return this.steps.then((M)=>M.at(-1))}get content(){return this.steps.then((M)=>M.flatMap((C)=>C.content))}get warnings(){return this.steps.then((M)=>M.flatMap((C)=>C.warnings??[]))}get providerMetadata(){return this.finalStep.then((M)=>M.providerMetadata)}get text(){return this.finalStep.then((M)=>M.text)}get reasoningText(){return this.finalStep.then((M)=>M.reasoningText)}get reasoning(){return this.finalStep.then((M)=>Ul(M.reasoning))}get sources(){return this.steps.then((M)=>M.flatMap((C)=>C.sources))}get files(){return this.steps.then((M)=>M.flatMap((C)=>C.files))}get toolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.toolCalls))}get staticToolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.staticToolCalls))}get dynamicToolCalls(){return this.steps.then((M)=>M.flatMap((C)=>C.dynamicToolCalls))}get toolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.toolResults))}get staticToolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.staticToolResults))}get dynamicToolResults(){return this.steps.then((M)=>M.flatMap((C)=>C.dynamicToolResults))}get usage(){return this.totalUsage}get request(){return this.finalStep.then((M)=>M.request)}get response(){return this.finalStep.then((M)=>M.response)}get responseMessages(){return Promise.all([this._initialResponseMessages.promise,this.steps]).then(([M,C])=>[...M,...C.flatMap((O)=>O.response.messages)])}get totalUsage(){if(this.retention.replay)this.consumeStream();return this._totalUsage.promise}get finishReason(){if(this.retention.replay)this.consumeStream();return this._finishReason.promise}get rawFinishReason(){if(this.retention.replay)this.consumeStream();return this._rawFinishReason.promise}teeStream(){if(!this.retention.replay){if(this.streamClaimed)throw new m({name:"AI_StreamAlreadyConsumedError",message:"This result supports one stream consumer. Choose one stream projection or response helper."});this.streamClaimed=!0;let O=this.baseStream.getReader(),L=(W)=>this.rejectResultPromises(W);return new ReadableStream({async pull(W){try{let{done:ee,value:H}=await O.read();if(ee)O.releaseLock(),W.close();else W.enqueue(H)}catch(ee){L(ee),O.releaseLock(),W.error(ee)}},async cancel(W){L(W??new DOMException("The stream was cancelled.","AbortError"));try{await O.cancel(W)}finally{O.releaseLock()}}},{highWaterMark:0})}let[M,C]=this.baseStream.tee();return this.baseStream=C,M}get textStream(){return this.asIterableStream(Km({stream:this.stream}))}asIterableStream(M){return this.retention.replay?Dn(M):uc(M)}get stream(){return this.asIterableStream(this.teeStream().pipeThrough(new TransformStream({transform({part:M},C){C.enqueue(M)}})))}get fullStream(){return this.stream}rejectResultPromises(M){this.rejectResultPromise({delayedPromise:this._finishReason,error:M}),this.rejectResultPromise({delayedPromise:this._rawFinishReason,error:M}),this.rejectResultPromise({delayedPromise:this._totalUsage,error:M}),this.rejectResultPromise({delayedPromise:this._steps,error:M}),this.rejectResultPromise({delayedPromise:this._initialResponseMessages,error:M})}rejectResultPromise({delayedPromise:M,error:C}){if(M.isPending())M.reject(C),Di(M.promise)}async consumeStream(M){let C=this.stream;try{await sf({stream:C,onError:(O)=>{this.rejectResultPromises(O),M?.onError?.(O)}})}catch(O){this.rejectResultPromises(O),M?.onError?.(O)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){if(!this.retention.replay&&this.outputSpecification==null)throw new u({functionality:"partialOutputStream without an explicit output specification with experimental_streamTextLowMemory"});return this.asIterableStream(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:M},C){if(M!==void 0)C.enqueue(M)}})))}get elementStream(){let M=this.outputSpecification?.createElementStreamTransform();if(M==null)throw new u({functionality:`element streams in ${this.outputSpecification?.name??"text"} mode`});return this.asIterableStream(this.teeStream().pipeThrough(M))}getOutputPromise(){if(this.outputPromise==null)this.outputPromise=this.finalStep.then((M)=>this.parseOutput(M));return this.outputPromise}parseOutput(M){return(this.outputSpecification??An()).parseCompleteOutput({text:M.text},{response:M.response,usage:M.usage,finishReason:M.finishReason})}get output(){return this.getOutputPromise()}toUIMessageStream({originalMessages:M,generateMessageId:C,onStepEnd:O,onStepFinish:L,onEnd:W,onFinish:ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendStart:ne,sendFinish:z,onError:oe}={}){return Dn(nf({stream:this.stream,tools:this.tools,originalMessages:M,generateMessageId:C,onStepEnd:O??L,onEnd:W??ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendStart:ne,sendFinish:z,onError:oe}))}pipeUIMessageStreamToResponse(M,{originalMessages:C,generateMessageId:O,onStepEnd:L,onStepFinish:W,onEnd:ee,onFinish:H,messageMetadata:te,sendReasoning:re,sendSources:ne,sendFinish:z,sendStart:oe,onError:se,...de}={}){return Xm({response:M,stream:this.toUIMessageStream({originalMessages:C,generateMessageId:O,onStepEnd:L??W,onEnd:ee??H,messageMetadata:te,sendReasoning:re,sendSources:ne,sendFinish:z,sendStart:oe,onError:se}),...de})}pipeTextStreamToResponse(M,C){return zm({response:M,stream:this.textStream,...C})}toUIMessageStreamResponse({originalMessages:M,generateMessageId:C,onStepEnd:O,onStepFinish:L,onEnd:W,onFinish:ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendFinish:ne,sendStart:z,onError:oe,...se}={}){return Qm({stream:this.toUIMessageStream({originalMessages:M,generateMessageId:C,onStepEnd:O??L,onEnd:W??ee,messageMetadata:H,sendReasoning:te,sendSources:re,sendFinish:ne,sendStart:z,onError:oe}),...se})}toTextStreamResponse(M){return Hm({stream:this.textStream,...M})}};var Yt=N.record(N.string(),sa.optional()),Af=N.record(N.string(),N.string());var Hh=a(()=>{let M=N.object({id:N.string(),approved:N.never().optional(),descriptor:N.unknown().optional(),requestReason:N.string().optional(),reason:N.never().optional(),isAutomatic:N.boolean().optional(),signature:N.string().optional(),inputSchemaInput:N.unknown().optional()}),C=M.extend({approved:N.boolean(),reason:N.string().optional()}),O=C.extend({approved:N.literal(!0)}),L=C.extend({approved:N.literal(!1)});return s(N.array(N.object({id:N.string(),role:N.enum(["system","user","assistant"]),metadata:N.unknown().optional(),parts:N.array(N.union([N.object({type:N.literal("text"),text:N.string(),citations:N.array(cc).optional(),state:N.enum(["streaming","done"]).optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("reasoning"),id:N.string().optional(),text:N.string(),state:N.enum(["streaming","done"]).optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("custom"),kind:N.string(),providerMetadata:Ce.optional()}),N.object({type:N.literal("source-url"),sourceId:N.string(),url:N.string(),title:N.string().optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("source-document"),sourceId:N.string(),mediaType:N.string(),title:N.string(),filename:N.string().optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("file"),mediaType:N.string(),filename:N.string().optional(),url:N.string(),providerReference:Af.optional(),providerMetadata:Ce.optional()}),N.object({type:N.literal("reasoning-file"),mediaType:N.string(),url:N.string(),providerMetadata:Ce.optional()}),N.object({type:N.literal("step-start")}),N.object({type:N.string().startsWith("data-"),id:N.string().optional(),data:N.unknown()}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("input-streaming"),input:N.unknown().optional(),rawInput:N.string().optional(),inputEncoding:N.enum(["json","text"]).optional(),providerExecuted:N.boolean().optional(),callProviderMetadata:Ce.optional(),output:N.never().optional(),errorText:N.never().optional(),approval:N.never().optional()}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("input-available"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:N.never().optional()}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("approval-requested"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:M}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("approval-responded"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:C}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-available"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.unknown(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),preliminary:N.boolean().optional(),approval:O.optional()}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-error"),input:N.unknown().optional(),rawInput:N.unknown().optional(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.string(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),approval:O.optional()}),N.object({type:N.literal("dynamic-tool"),dynamic:N.literal(!1).optional(),toolName:N.string(),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-denied"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:L}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("input-streaming"),providerExecuted:N.boolean().optional(),callProviderMetadata:Ce.optional(),input:N.unknown().optional(),rawInput:N.string().optional(),inputEncoding:N.enum(["json","text"]).optional(),output:N.never().optional(),errorText:N.never().optional(),approval:N.never().optional()}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("input-available"),providerExecuted:N.boolean().optional(),input:N.unknown(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:N.never().optional()}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("approval-requested"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:M}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("approval-responded"),input:N.unknown(),providerExecuted:N.boolean().optional(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:C}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-available"),providerExecuted:N.boolean().optional(),input:N.unknown(),output:N.unknown(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),preliminary:N.boolean().optional(),approval:O.optional()}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-error"),providerExecuted:N.boolean().optional(),input:N.unknown().optional(),rawInput:N.unknown().optional(),output:N.never().optional(),errorText:N.string(),callProviderMetadata:Ce.optional(),resultProviderMetadata:Ce.optional(),approval:O.optional()}),N.object({type:N.string().startsWith("tool-"),toolCallId:N.string(),title:N.string().optional(),toolMetadata:Yt.optional(),state:N.literal("output-denied"),providerExecuted:N.boolean().optional(),input:N.unknown(),output:N.never().optional(),errorText:N.never().optional(),callProviderMetadata:Ce.optional(),approval:L})]))}).superRefine((W,ee)=>{if(W.role!=="assistant"&&W.parts.length===0)ee.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:W.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty"))});var zh=V({prefix:"call",size:24});var Kh=V({prefix:"call",size:24});var Jh=V({prefix:"call",size:24});var Yh=V({prefix:"aiobj",size:24});function mc(M){return({url:C,abortSignal:O})=>Fn({url:C,maxBytes:M?.maxBytes,abortSignal:O})}var{atob:Qh}=globalThis;var Xh=V({prefix:"aiobj",size:24});var Zh=V({prefix:"call",size:24});var eg=mc();var uo=N.union([N.string(),N.instanceof(Uint8Array),N.instanceof(ArrayBuffer),N.custom(Tt,{message:"Must be a Buffer"})]),es=N.record(N.string(),N.string()),fc=N.object({type:N.literal("text"),text:N.string(),providerOptions:Ce.optional()}),kf=N.object({type:N.literal("image"),image:N.union([uo,N.instanceof(URL),es]),mediaType:N.string().optional(),providerOptions:Ce.optional()}),hc=N.discriminatedUnion("type",[N.object({type:N.literal("data"),data:uo}),N.object({type:N.literal("url"),url:N.instanceof(URL)}),N.object({type:N.literal("reference"),reference:es}),N.object({type:N.literal("text"),text:N.string()})]),Pf=N.discriminatedUnion("type",[N.object({type:N.literal("data"),data:uo}),N.object({type:N.literal("url"),url:N.instanceof(URL)})]),gc=N.object({type:N.literal("file"),data:N.union([hc,uo,N.instanceof(URL),es]),filename:N.string().optional(),mediaType:N.string(),providerOptions:Ce.optional()}),Of=N.object({type:N.literal("reasoning"),text:N.string(),providerOptions:Ce.optional()}),jf=N.object({type:N.literal("custom"),kind:N.string().transform((M)=>M),providerOptions:Ce.optional()}),Nf=N.object({type:N.literal("reasoning-file"),data:N.union([Pf,uo,N.instanceof(URL)]),mediaType:N.string(),providerOptions:Ce.optional()}),Df=N.object({type:N.literal("tool-call"),toolCallId:N.string(),toolName:N.string(),input:N.unknown(),providerOptions:Ce.optional(),providerExecuted:N.boolean().optional()}),qf=N.discriminatedUnion("type",[N.object({type:N.literal("text"),value:N.string(),providerOptions:Ce.optional()}),N.object({type:N.literal("json"),value:sa,providerOptions:Ce.optional()}),N.object({type:N.literal("execution-denied"),reason:N.string().optional(),providerOptions:Ce.optional()}),N.object({type:N.literal("error-text"),value:N.string(),providerOptions:Ce.optional()}),N.object({type:N.literal("error-json"),value:sa,providerOptions:Ce.optional()}),N.object({type:N.literal("content"),value:N.array(N.union([N.object({type:N.literal("text"),text:N.string(),providerOptions:Ce.optional()}),N.object({type:N.literal("file"),data:hc,mediaType:N.string(),filename:N.string().optional(),providerOptions:Ce.optional()}),N.object({type:N.literal("file-data"),data:N.string(),mediaType:N.string(),filename:N.string().optional(),providerOptions:Ce.optional()}),N.object({type:N.literal("file-url"),url:N.string(),mediaType:N.string().optional(),providerOptions:Ce.optional()}),N.object({type:N.literal("file-id"),fileId:N.union([N.string(),N.record(N.string(),N.string())]),providerOptions:Ce.optional()}),N.object({type:N.literal("file-reference"),providerReference:N.record(N.string(),N.string()),providerOptions:Ce.optional()}),N.object({type:N.literal("image-data"),data:N.string(),mediaType:N.string(),providerOptions:Ce.optional()}),N.object({type:N.literal("image-url"),url:N.string(),providerOptions:Ce.optional()}),N.object({type:N.literal("image-file-id"),fileId:N.union([N.string(),N.record(N.string(),N.string())]),providerOptions:Ce.optional()}),N.object({type:N.literal("image-file-reference"),providerReference:N.record(N.string(),N.string()),providerOptions:Ce.optional()}),N.object({type:N.literal("custom"),providerOptions:Ce.optional()})]))})]),yc=N.object({type:N.literal("tool-result"),toolCallId:N.string(),toolName:N.string(),output:qf,providerOptions:Ce.optional()}),$f=N.object({type:N.literal("tool-approval-request"),approvalId:N.string(),toolCallId:N.string(),reason:N.string().optional(),isAutomatic:N.boolean().optional(),signature:N.string().optional(),inputSchemaInput:N.unknown().optional()}),Uf=N.object({type:N.literal("tool-approval-response"),approvalId:N.string(),approved:N.boolean(),reason:N.string().optional()}),Lf=N.object({role:N.literal("system"),content:N.string(),providerOptions:Ce.optional()}),Ff=N.object({role:N.literal("user"),content:N.union([N.string(),N.array(N.union([fc,kf,gc]))]),providerOptions:Ce.optional()}),Gf=N.object({role:N.literal("assistant"),content:N.union([N.string(),N.array(N.union([fc,jf,gc,Of,Nf,Df,yc,$f]))]),providerOptions:Ce.optional()}),Vf=N.object({role:N.literal("tool"),content:N.array(N.union([yc,Uf])),providerOptions:Ce.optional()}),tg=N.union([Lf,Ff,Gf,Vf]);var rg=N.object({token:N.string().refine((M)=>M.trim().length>0),url:N.string().refine((M)=>{try{let C=new URL(M);return(C.protocol==="ws:"||C.protocol==="wss:")&&C.hostname!==""}catch{return!1}}),expiresAt:N.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:N.array(N.object({type:N.literal("function"),name:N.string().min(1),description:N.string().optional(),parameters:N.record(N.string(),N.unknown())})).optional()});var Bf="AI_NoSuchProviderError",ag=`vercel.ai.error.${Bf}`;var og=V({prefix:"call",size:24});var ng=V({prefix:"call",size:24}),sg=mc();var ig=V({prefix:"call",size:24});export{Mn,It};
|