"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[864],{17072:(e,t,a)=>{a.d(t,{Df:()=>tw,gM:()=>tP,pY:()=>eG});var r,s,o,n,i,l,u,p,m,c,d,h,g,f=a(14287),v=a(38483),y=a(57652),w=a(86153),x=a(6663),b=a(87765),T=Object.defineProperty,S=(e,t)=>{for(var a in t)T(e,a,{get:t[a],enumerable:!0})};function I(e,{contentType:t,dataStreamVersion:a}){let r=new Headers(null!=e?e:{});return r.has("Content-Type")||r.set("Content-Type",t),void 0!==a&&r.set("X-Vercel-AI-Data-Stream",a),r}function k(e,{contentType:t,dataStreamVersion:a}){let r={};if(null!=e)for(let[t,a]of Object.entries(e))r[t]=a;return null==r["Content-Type"]&&(r["Content-Type"]=t),void 0!==a&&(r["X-Vercel-AI-Data-Stream"]=a),r}function _({response:e,status:t,statusText:a,headers:r,stream:s}){e.writeHead(null!=t?t:200,a,r);let o=s.getReader();(async()=>{try{for(;;){let{done:t,value:a}=await o.read();if(t)break;e.write(a)}}catch(e){throw e}finally{e.end()}})()}var R=class extends f.bD{constructor(){super({name:"AI_UnsupportedModelVersionError",message:'Unsupported model version. AI SDK 4 only supports models that implement specification version "v1". Please upgrade to AI SDK 5 to use this model.'})}},M="AI_InvalidArgumentError",j=`vercel.ai.error.${M}`,C=Symbol.for(j),q=class extends f.bD{constructor({parameter:e,value:t,message:a}){super({name:M,message:`Invalid argument for parameter ${e}: ${a}`}),this[r]=!0,this.parameter=e,this.value=t}static isInstance(e){return f.bD.hasMarker(e,j)}};r=C;var D="AI_RetryError",N=`vercel.ai.error.${D}`,P=Symbol.for(N),O=class extends f.bD{constructor({message:e,reason:t,errors:a}){super({name:D,message:e}),this[s]=!0,this.reason=t,this.errors=a,this.lastError=a[a.length-1]}static isInstance(e){return f.bD.hasMarker(e,N)}};async function E(e,{maxRetries:t,delayInMs:a,backoffFactor:r},s=[]){try{return await e()}catch(l){if((0,v.zf)(l)||0===t)throw l;let o=(0,v.u1)(l),n=[...s,l],i=n.length;if(i>t)throw new O({message:`Failed after ${i} attempts. Last error: ${o}`,reason:"maxRetriesExceeded",errors:n});if(l instanceof Error&&f.hL.isInstance(l)&&!0===l.isRetryable&&i<=t)return await (0,v.cb)(a),E(e,{maxRetries:t,delayInMs:r*a,backoffFactor:r},n);if(1===i)throw l;throw new O({message:`Failed after ${i} attempts with non-retryable error: '${o}'`,reason:"errorNotRetryable",errors:n})}}function A({maxRetries:e}){if(null!=e){if(!Number.isInteger(e))throw new q({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new q({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}let t=null!=e?e:2;return{maxRetries:t,retry:(({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:a=2}={})=>async r=>E(r,{maxRetries:e,delayInMs:t,backoffFactor:a}))({maxRetries:t})}}function U({operationId:e,telemetry:t}){return{"operation.name":`${e}${(null==t?void 0:t.functionId)!=null?` ${t.functionId}`:""}`,"resource.name":null==t?void 0:t.functionId,"ai.operationId":e,"ai.telemetry.functionId":null==t?void 0:t.functionId}}function $({model:e,settings:t,telemetry:a,headers:r}){var s;return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce((e,[t,a])=>(e[`ai.settings.${t}`]=a,e),{}),...Object.entries(null!=(s=null==a?void 0:a.metadata)?s:{}).reduce((e,[t,a])=>(e[`ai.telemetry.metadata.${t}`]=a,e),{}),...Object.entries(null!=r?r:{}).reduce((e,[t,a])=>(void 0!==a&&(e[`ai.request.headers.${t}`]=a),e),{})}}s=P;var Y={startSpan:()=>J,startActiveSpan:(e,t,a,r)=>"function"==typeof t?t(J):"function"==typeof a?a(J):"function"==typeof r?r(J):void 0},J={spanContext:()=>K,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},K={traceId:"",spanId:"",traceFlags:0};function F({isEnabled:e=!1,tracer:t}={}){return e?t||y.u.getTracer("ai"):Y}function L({name:e,tracer:t,attributes:a,fn:r,endWhenDone:s=!0}){return t.startActiveSpan(e,{attributes:a},async e=>{try{let t=await r(e);return s&&e.end(),t}catch(t){try{Z(e,t)}finally{e.end()}throw t}})}function Z(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:w.s.ERROR,message:t.message})):e.setStatus({code:w.s.ERROR})}function H({telemetry:e,attributes:t}){return(null==e?void 0:e.isEnabled)!==!0?{}:Object.entries(t).reduce((t,[a,r])=>{if(void 0===r)return t;if("object"==typeof r&&"input"in r&&"function"==typeof r.input){if((null==e?void 0:e.recordInputs)===!1)return t;let s=r.input();return void 0===s?t:{...t,[a]:s}}if("object"==typeof r&&"output"in r&&"function"==typeof r.output){if((null==e?void 0:e.recordOutputs)===!1)return t;let s=r.output();return void 0===s?t:{...t,[a]:s}}return{...t,[a]:r}},{})}Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");f.bD;var V=class{constructor({data:e,mimeType:t}){let a=e instanceof Uint8Array;this.base64Data=a?void 0:e,this.uint8ArrayData=a?e:void 0,this.mimeType=t}get base64(){return null==this.base64Data&&(this.base64Data=(0,v.n_)(this.uint8ArrayData)),this.base64Data}get uint8Array(){return null==this.uint8ArrayData&&(this.uint8ArrayData=(0,v.Z9)(this.base64Data)),this.uint8ArrayData}},z=class extends V{constructor(e){super(e),this.type="file"}},G=[{mimeType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mimeType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mimeType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mimeType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mimeType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mimeType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mimeType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mimeType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mimeType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}],W="AI_NoObjectGeneratedError",B=`vercel.ai.error.${W}`,X=Symbol.for(B),Q=class extends f.bD{constructor({message:e="No object generated.",cause:t,text:a,response:r,usage:s,finishReason:n}){super({name:W,message:e,cause:t}),this[o]=!0,this.text=a,this.response=r,this.usage=s,this.finishReason=n}static isInstance(e){return f.bD.hasMarker(e,B)}};o=X;var ee="AI_DownloadError",et=`vercel.ai.error.${ee}`,ea=Symbol.for(et),er=class extends f.bD{constructor({url:e,statusCode:t,statusText:a,cause:r,message:s=null==r?`Failed to download ${e}: ${t} ${a}`:`Failed to download ${e}: ${r}`}){super({name:ee,message:s,cause:r}),this[n]=!0,this.url=e,this.statusCode=t,this.statusText=a}static isInstance(e){return f.bD.hasMarker(e,et)}};async function es({url:e}){var t;let a=e.toString();try{let e=await fetch(a);if(!e.ok)throw new er({url:a,statusCode:e.status,statusText:e.statusText});return{data:new Uint8Array(await e.arrayBuffer()),mimeType:null!=(t=e.headers.get("content-type"))?t:void 0}}catch(e){if(er.isInstance(e))throw e;throw new er({url:a,cause:e})}}n=ea;var eo="AI_InvalidDataContentError",en=`vercel.ai.error.${eo}`,ei=Symbol.for(en),el=class extends f.bD{constructor({content:e,cause:t,message:a=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof e}.`}){super({name:eo,message:a,cause:t}),this[i]=!0,this.content=e}static isInstance(e){return f.bD.hasMarker(e,en)}};i=ei;var eu=x.KC([x.Yj(),x.Nl(Uint8Array),x.Nl(ArrayBuffer),x.Ie(e=>{var t,a;return null!=(a=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&a},{message:"Must be a Buffer"})]);function ep(e){return"string"==typeof e?e:e instanceof ArrayBuffer?(0,v.n_)(new Uint8Array(e)):(0,v.n_)(e)}function em(e){if(e instanceof Uint8Array)return e;if("string"==typeof e)try{return(0,v.Z9)(e)}catch(t){throw new el({message:"Invalid data content. Content string is not a base64-encoded media.",content:e,cause:t})}if(e instanceof ArrayBuffer)return new Uint8Array(e);throw new el({content:e})}var ec="AI_InvalidMessageRoleError",ed=`vercel.ai.error.${ec}`,eh=Symbol.for(ed),eg=class extends f.bD{constructor({role:e,message:t=`Invalid message role: '${e}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:ec,message:t}),this[l]=!0,this.role=e}static isInstance(e){return f.bD.hasMarker(e,ed)}};async function ef({prompt:e,modelSupportsImageUrls:t=!0,modelSupportsUrl:a=()=>!1,downloadImplementation:r=es}){let s=await ev(e.messages,r,t,a);return[...null!=e.system?[{role:"system",content:e.system}]:[],...e.messages.map(e=>(function(e,t){var a,r,s,o,n,i;let l=e.role;switch(l){case"system":return{role:"system",content:e.content,providerMetadata:null!=(a=e.providerOptions)?a:e.experimental_providerMetadata};case"user":if("string"==typeof e.content)return{role:"user",content:[{type:"text",text:e.content}],providerMetadata:null!=(r=e.providerOptions)?r:e.experimental_providerMetadata};return{role:"user",content:e.content.map(e=>(function(e,t){var a,r,s,o;let n,i,l;if("text"===e.type)return{type:"text",text:e.text,providerMetadata:null!=(a=e.providerOptions)?a:e.experimental_providerMetadata};let u=e.mimeType,p=e.type;switch(p){case"image":n=e.image;break;case"file":n=e.data;break;default:throw Error(`Unsupported part type: ${p}`)}try{i="string"==typeof n?new URL(n):n}catch(e){i=n}if(i instanceof URL)if("data:"===i.protocol){let{mimeType:e,base64Content:t}=function(e){try{let[t,a]=e.split(",");return{mimeType:t.split(";")[0].split(":")[1],base64Content:a}}catch(e){return{mimeType:void 0,base64Content:void 0}}}(i.toString());if(null==e||null==t)throw Error(`Invalid data URL format in part ${p}`);u=e,l=em(t)}else{let e=t[i.toString()];e?(l=e.data,null!=u||(u=e.mimeType)):l=i}else l=em(i);switch(p){case"image":return l instanceof Uint8Array&&(u=null!=(r=function({data:e,signatures:t}){let a="string"==typeof e&&e.startsWith("SUQz")||"string"!=typeof e&&e.length>10&&73===e[0]&&68===e[1]&&51===e[2]?(e=>{let t="string"==typeof e?(0,v.Z9)(e):e,a=(127&t[6])<<21|(127&t[7])<<14|(127&t[8])<<7|127&t[9];return t.slice(a+10)})(e):e;for(let e of t)if("string"==typeof a?a.startsWith(e.base64Prefix):a.length>=e.bytesPrefix.length&&e.bytesPrefix.every((e,t)=>a[t]===e))return e.mimeType}({data:l,signatures:G}))?r:u),{type:"image",image:l,mimeType:u,providerMetadata:null!=(s=e.providerOptions)?s:e.experimental_providerMetadata};case"file":if(null==u)throw Error("Mime type is missing for file part");return{type:"file",data:l instanceof Uint8Array?ep(l):l,filename:e.filename,mimeType:u,providerMetadata:null!=(o=e.providerOptions)?o:e.experimental_providerMetadata}}})(e,t)).filter(e=>"text"!==e.type||""!==e.text),providerMetadata:null!=(s=e.providerOptions)?s:e.experimental_providerMetadata};case"assistant":if("string"==typeof e.content)return{role:"assistant",content:[{type:"text",text:e.content}],providerMetadata:null!=(o=e.providerOptions)?o:e.experimental_providerMetadata};return{role:"assistant",content:e.content.filter(e=>"text"!==e.type||""!==e.text).map(e=>{var t;let a=null!=(t=e.providerOptions)?t:e.experimental_providerMetadata;switch(e.type){case"file":return{type:"file",data:e.data instanceof URL?e.data:ep(e.data),filename:e.filename,mimeType:e.mimeType,providerMetadata:a};case"reasoning":return{type:"reasoning",text:e.text,signature:e.signature,providerMetadata:a};case"redacted-reasoning":return{type:"redacted-reasoning",data:e.data,providerMetadata:a};case"text":return{type:"text",text:e.text,providerMetadata:a};case"tool-call":return{type:"tool-call",toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,providerMetadata:a}}}),providerMetadata:null!=(n=e.providerOptions)?n:e.experimental_providerMetadata};case"tool":return{role:"tool",content:e.content.map(e=>{var t;return{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,result:e.result,content:e.experimental_content,isError:e.isError,providerMetadata:null!=(t=e.providerOptions)?t:e.experimental_providerMetadata}}),providerMetadata:null!=(i=e.providerOptions)?i:e.experimental_providerMetadata};default:throw new eg({role:l})}})(e,s))]}async function ev(e,t,a,r){let s=e.filter(e=>"user"===e.role).map(e=>e.content).filter(e=>Array.isArray(e)).flat().filter(e=>"image"===e.type||"file"===e.type).filter(e=>"image"!==e.type||!0!==a).map(e=>"image"===e.type?e.image:e.data).map(e=>"string"==typeof e&&(e.startsWith("http:")||e.startsWith("https:"))?new URL(e):e).filter(e=>e instanceof URL).filter(e=>!r(e));return Object.fromEntries((await Promise.all(s.map(async e=>({url:e,data:await t({url:e})})))).map(({url:e,data:t})=>[e.toString(),t]))}function ey({maxTokens:e,temperature:t,topP:a,topK:r,presencePenalty:s,frequencyPenalty:o,stopSequences:n,seed:i}){if(null!=e){if(!Number.isInteger(e))throw new q({parameter:"maxTokens",value:e,message:"maxTokens must be an integer"});if(e<1)throw new q({parameter:"maxTokens",value:e,message:"maxTokens must be >= 1"})}if(null!=t&&"number"!=typeof t)throw new q({parameter:"temperature",value:t,message:"temperature must be a number"});if(null!=a&&"number"!=typeof a)throw new q({parameter:"topP",value:a,message:"topP must be a number"});if(null!=r&&"number"!=typeof r)throw new q({parameter:"topK",value:r,message:"topK must be a number"});if(null!=s&&"number"!=typeof s)throw new q({parameter:"presencePenalty",value:s,message:"presencePenalty must be a number"});if(null!=o&&"number"!=typeof o)throw new q({parameter:"frequencyPenalty",value:o,message:"frequencyPenalty must be a number"});if(null!=i&&!Number.isInteger(i))throw new q({parameter:"seed",value:i,message:"seed must be an integer"});return{maxTokens:e,temperature:null!=t?t:0,topP:a,topK:r,presencePenalty:s,frequencyPenalty:o,stopSequences:null!=n&&n.length>0?n:void 0,seed:i}}function ew(e){var t,a,r;let s=[];for(let o of e){let e;try{e=new URL(o.url)}catch(e){throw Error(`Invalid URL: ${o.url}`)}switch(e.protocol){case"http:":case"https:":if(null==(t=o.contentType)?void 0:t.startsWith("image/"))s.push({type:"image",image:e});else{if(!o.contentType)throw Error("If the attachment is not an image, it must specify a content type");s.push({type:"file",data:e,mimeType:o.contentType})}break;case"data:":{let e,t,n;try{[e,t]=o.url.split(","),n=e.split(";")[0].split(":")[1]}catch(e){throw Error(`Error processing data URL: ${o.url}`)}if(null==n||null==t)throw Error(`Invalid data URL format: ${o.url}`);if(null==(a=o.contentType)?void 0:a.startsWith("image/"))s.push({type:"image",image:em(t)});else if(null==(r=o.contentType)?void 0:r.startsWith("text/"))s.push({type:"text",text:function(e){try{return new TextDecoder().decode(e)}catch(e){throw Error("Error decoding Uint8Array to text")}}(em(t))});else{if(!o.contentType)throw Error("If the attachment is not an image or text, it must specify a content type");s.push({type:"file",data:t,mimeType:o.contentType})}break}default:throw Error(`Unsupported URL protocol: ${e.protocol}`)}}return s}l=eh;var ex="AI_MessageConversionError",eb=`vercel.ai.error.${ex}`,eT=Symbol.for(eb),eS=class extends f.bD{constructor({originalMessage:e,message:t}){super({name:ex,message:t}),this[u]=!0,this.originalMessage=e}static isInstance(e){return f.bD.hasMarker(e,eb)}};u=eT;var eI=x.RZ(()=>x.KC([x.ch(),x.Yj(),x.ai(),x.zM(),x.g1(x.Yj(),eI),x.YO(eI)])),ek=x.g1(x.Yj(),x.g1(x.Yj(),eI)),e_=x.YO(x.KC([x.Ik({type:x.eu("text"),text:x.Yj()}),x.Ik({type:x.eu("image"),data:x.Yj(),mimeType:x.Yj().optional()})])),eR=x.Ik({type:x.eu("text"),text:x.Yj(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eM=x.Ik({type:x.eu("image"),image:x.KC([eu,x.Nl(URL)]),mimeType:x.Yj().optional(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),ej=x.Ik({type:x.eu("file"),data:x.KC([eu,x.Nl(URL)]),filename:x.Yj().optional(),mimeType:x.Yj(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eC=x.Ik({type:x.eu("reasoning"),text:x.Yj(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eq=x.Ik({type:x.eu("redacted-reasoning"),data:x.Yj(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eD=x.Ik({type:x.eu("tool-call"),toolCallId:x.Yj(),toolName:x.Yj(),args:x.L5(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eN=x.Ik({type:x.eu("tool-result"),toolCallId:x.Yj(),toolName:x.Yj(),result:x.L5(),content:e_.optional(),isError:x.zM().optional(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eP=x.Ik({role:x.eu("system"),content:x.Yj(),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eO=x.Ik({role:x.eu("user"),content:x.KC([x.Yj(),x.YO(x.KC([eR,eM,ej]))]),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eE=x.Ik({role:x.eu("assistant"),content:x.KC([x.Yj(),x.YO(x.KC([eR,ej,eC,eq,eD]))]),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eA=x.Ik({role:x.eu("tool"),content:x.YO(eN),providerOptions:ek.optional(),experimental_providerMetadata:ek.optional()}),eU=x.KC([eP,eO,eE,eA]);function e$({prompt:e,tools:t}){if(null==e.prompt&&null==e.messages)throw new f.M3({prompt:e,message:"prompt or messages must be defined"});if(null!=e.prompt&&null!=e.messages)throw new f.M3({prompt:e,message:"prompt and messages cannot be defined at the same time"});if(null!=e.system&&"string"!=typeof e.system)throw new f.M3({prompt:e,message:"system must be a string"});if(null!=e.prompt){if("string"!=typeof e.prompt)throw new f.M3({prompt:e,message:"prompt must be a string"});return{type:"prompt",system:e.system,messages:[{role:"user",content:e.prompt}]}}if(null!=e.messages){let a="ui-messages"===function(e){if(!Array.isArray(e))throw new f.M3({prompt:e,message:`messages must be an array of CoreMessage or UIMessage Received non-array value: ${JSON.stringify(e)}`,cause:e});if(0===e.length)return"messages";let t=e.map(eY);if(t.some(e=>"has-ui-specific-parts"===e))return"ui-messages";let a=t.findIndex(e=>"has-core-specific-parts"!==e&&"message"!==e);if(-1===a)return"messages";throw new f.M3({prompt:e,message:`messages must be an array of CoreMessage or UIMessage Received message of type: "${t[a]}" at index ${a} messages[${a}]: ${JSON.stringify(e[a])}`,cause:e})}(e.messages)?function(e,t){var a,r;let s=null!=(a=null==t?void 0:t.tools)?a:{},o=[];for(let t=0;t"text"===e.type).map(e=>({type:"text",text:e.text}));o.push({role:"user",content:u?[...e,...ew(u)]:e})}break;case"assistant":{if(null!=a.parts){let e=function(){let e=[];for(let t of i)switch(t.type){case"file":case"text":e.push(t);break;case"reasoning":for(let a of t.details)switch(a.type){case"text":e.push({type:"reasoning",text:a.text,signature:a.signature});break;case"redacted":e.push({type:"redacted-reasoning",data:a.data})}break;case"tool-invocation":e.push({type:"tool-call",toolCallId:t.toolInvocation.toolCallId,toolName:t.toolInvocation.toolName,args:t.toolInvocation.args});break;default:throw Error(`Unsupported part: ${t}`)}o.push({role:"assistant",content:e});let r=i.filter(e=>"tool-invocation"===e.type).map(e=>e.toolInvocation);r.length>0&&o.push({role:"tool",content:r.map(e=>{if(!("result"in e))throw new eS({originalMessage:a,message:"ToolInvocation must have a result: "+JSON.stringify(e)});let{toolCallId:t,toolName:r,result:o}=e,n=s[r];return(null==n?void 0:n.experimental_toToolResultContent)!=null?{type:"tool-result",toolCallId:t,toolName:r,result:n.experimental_toToolResultContent(o),experimental_content:n.experimental_toToolResultContent(o)}:{type:"tool-result",toolCallId:t,toolName:r,result:o}})}),i=[],n=!1,t++},t=0,n=!1,i=[];for(let s of a.parts)switch(s.type){case"text":n&&e(),i.push(s);break;case"file":case"reasoning":i.push(s);break;case"tool-invocation":(null!=(r=s.toolInvocation.step)?r:0)!==t&&e(),i.push(s),n=!0}e();break}let e=a.toolInvocations;if(null==e||0===e.length){o.push({role:"assistant",content:l});break}let t=e.reduce((e,t)=>{var a;return Math.max(e,null!=(a=t.step)?a:0)},0);for(let r=0;r<=t;r++){let t=e.filter(e=>{var t;return(null!=(t=e.step)?t:0)===r});0!==t.length&&(o.push({role:"assistant",content:[...n&&l&&0===r?[{type:"text",text:l}]:[],...t.map(({toolCallId:e,toolName:t,args:a})=>({type:"tool-call",toolCallId:e,toolName:t,args:a}))]}),o.push({role:"tool",content:t.map(e=>{if(!("result"in e))throw new eS({originalMessage:a,message:"ToolInvocation must have a result: "+JSON.stringify(e)});let{toolCallId:t,toolName:r,result:o}=e,n=s[r];return(null==n?void 0:n.experimental_toToolResultContent)!=null?{type:"tool-result",toolCallId:t,toolName:r,result:n.experimental_toToolResultContent(o),experimental_content:n.experimental_toToolResultContent(o)}:{type:"tool-result",toolCallId:t,toolName:r,result:o}})}))}l&&!n&&o.push({role:"assistant",content:l});break}case"data":break;default:throw new eS({originalMessage:a,message:`Unsupported role: ${i}`})}}return o}(e.messages,{tools:t}):e.messages;if(0===a.length)throw new f.M3({prompt:e,message:"messages must not be empty"});let r=(0,v.ZZ)({value:a,schema:x.YO(eU)});if(!r.success)throw new f.M3({prompt:e,message:`message must be a CoreMessage or a UI message Validation error: ${r.error.message}`,cause:r.error});return{type:"messages",messages:a,system:e.system}}throw Error("unreachable")}function eY(e){return"object"==typeof e&&null!==e&&("function"===e.role||"data"===e.role||"toolInvocations"in e||"parts"in e||"experimental_attachments"in e)?"has-ui-specific-parts":"object"==typeof e&&null!==e&&"content"in e&&(Array.isArray(e.content)||"experimental_providerMetadata"in e||"providerOptions"in e)?"has-core-specific-parts":"object"==typeof e&&null!==e&&"role"in e&&"content"in e&&"string"==typeof e.content&&["system","user","assistant","tool"].includes(e.role)?"message":"other"}function eJ({promptTokens:e,completionTokens:t}){return{promptTokens:e,completionTokens:t,totalTokens:e+t}}function eK(e,t){return{promptTokens:e.promptTokens+t.promptTokens,completionTokens:e.completionTokens+t.completionTokens,totalTokens:e.totalTokens+t.totalTokens}}function eF({prompt:e,schema:t,schemaPrefix:a=null!=t?"JSON schema:":void 0,schemaSuffix:r=null!=t?"You MUST answer with a JSON object that matches the JSON schema above.":"You MUST answer with JSON."}){return[null!=e&&e.length>0?e:void 0,null!=e&&e.length>0?"":void 0,a,null!=t?JSON.stringify(t):void 0,r].filter(e=>null!=e).join("\n")}function eL(e){let t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=()=>{let e=t.getReader();return{async next(){let{done:t,value:a}=await e.read();return t?{done:!0,value:void 0}:{done:!1,value:a}}}},t}var eZ={type:"no-schema",jsonSchema:void 0,validatePartialResult:({value:e,textDelta:t})=>({success:!0,value:{partial:e,textDelta:t}}),validateFinalResult:(e,t)=>void 0===e?{success:!1,error:new Q({message:"No object generated: response did not match schema.",text:t.text,response:t.response,usage:t.usage,finishReason:t.finishReason})}:{success:!0,value:e},createElementStream(){throw new f.b8({functionality:"element streams in no-schema mode"})}};function eH(e){return JSON.stringify(e.map(e=>({...e,content:"string"==typeof e.content?e.content:e.content.map(eV)})))}function eV(e){return"image"===e.type?{...e,image:e.image instanceof Uint8Array?ep(e.image):e.image}:e}var ez=(0,v.hK)({prefix:"aiobj",size:24});async function eG({model:e,enum:t,schema:a,schemaName:r,schemaDescription:s,mode:o,output:n="object",system:i,prompt:l,messages:u,maxRetries:p,abortSignal:m,headers:c,experimental_repairText:d,experimental_telemetry:h,experimental_providerMetadata:g,providerOptions:y=g,_internal:{generateId:w=ez,currentDate:x=()=>new Date}={},...T}){if("string"==typeof e||"v1"!==e.specificationVersion)throw new R;!function({output:e,mode:t,schema:a,schemaName:r,schemaDescription:s,enumValues:o}){if(null!=e&&"object"!==e&&"array"!==e&&"enum"!==e&&"no-schema"!==e)throw new q({parameter:"output",value:e,message:"Invalid output type."});if("no-schema"===e){if("auto"===t||"tool"===t)throw new q({parameter:"mode",value:t,message:'Mode must be "json" for no-schema output.'});if(null!=a)throw new q({parameter:"schema",value:a,message:"Schema is not supported for no-schema output."});if(null!=s)throw new q({parameter:"schemaDescription",value:s,message:"Schema description is not supported for no-schema output."});if(null!=r)throw new q({parameter:"schemaName",value:r,message:"Schema name is not supported for no-schema output."});if(null!=o)throw new q({parameter:"enumValues",value:o,message:"Enum values are not supported for no-schema output."})}if("object"===e){if(null==a)throw new q({parameter:"schema",value:a,message:"Schema is required for object output."});if(null!=o)throw new q({parameter:"enumValues",value:o,message:"Enum values are not supported for object output."})}if("array"===e){if(null==a)throw new q({parameter:"schema",value:a,message:"Element schema is required for array output."});if(null!=o)throw new q({parameter:"enumValues",value:o,message:"Enum values are not supported for array output."})}if("enum"===e){if(null!=a)throw new q({parameter:"schema",value:a,message:"Schema is not supported for enum output."});if(null!=s)throw new q({parameter:"schemaDescription",value:s,message:"Schema description is not supported for enum output."});if(null!=r)throw new q({parameter:"schemaName",value:r,message:"Schema name is not supported for enum output."});if(null==o)throw new q({parameter:"enumValues",value:o,message:"Enum values are required for enum output."});for(let e of o)if("string"!=typeof e)throw new q({parameter:"enumValues",value:e,message:"Enum values must be strings."})}}({output:n,mode:o,schema:a,schemaName:r,schemaDescription:s,enumValues:t});let{maxRetries:S,retry:I}=A({maxRetries:p}),k=function({output:e,schema:t,enumValues:a}){switch(e){case"object":let r;return{type:"object",jsonSchema:(r=(0,b.mD)(t)).jsonSchema,validatePartialResult:({value:e,textDelta:t})=>({success:!0,value:{partial:e,textDelta:t}}),validateFinalResult:e=>(0,v.ZZ)({value:e,schema:r}),createElementStream(){throw new f.b8({functionality:"element streams in object mode"})}};case"array":var s=(0,b.mD)(t);let{$schema:o,...n}=s.jsonSchema;return{type:"enum",jsonSchema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:n}},required:["elements"],additionalProperties:!1},validatePartialResult({value:e,latestObject:t,isFirstDelta:a,isFinalDelta:r}){var o;if(!(0,f.k9)(e)||!(0,f.cj)(e.elements))return{success:!1,error:new f.iM({value:e,cause:"value must be an object that contains an array of elements"})};let n=e.elements,i=[];for(let e=0;e0&&(u+=","),u+=i.slice(l).map(e=>JSON.stringify(e)).join(","),r&&(u+="]"),{success:!0,value:{partial:i,textDelta:u}}},validateFinalResult(e){if(!(0,f.k9)(e)||!(0,f.cj)(e.elements))return{success:!1,error:new f.iM({value:e,cause:"value must be an object that contains an array of elements"})};let t=e.elements;for(let e of t){let t=(0,v.ZZ)({value:e,schema:s});if(!t.success)return t}return{success:!0,value:t}},createElementStream(e){let t=0;return eL(e.pipeThrough(new TransformStream({transform(e,a){switch(e.type){case"object":{let r=e.object;for(;tJSON.stringify({system:i,prompt:l,messages:u})},"ai.schema":null!=k.jsonSchema?{input:()=>JSON.stringify(k.jsonSchema)}:void 0,"ai.schema.name":r,"ai.schema.description":s,"ai.settings.output":k.type,"ai.settings.mode":o}}),tracer:M,fn:async t=>{var a,n,p,g;let b,S,R,j,C,q,D,N,P,O;switch(("auto"===o||null==o)&&(o=e.defaultObjectGenerationMode),o){case"json":{let t=e$({prompt:{system:null==k.jsonSchema?eF({prompt:i}):e.supportsStructuredOutputs?i:eF({prompt:i,schema:k.jsonSchema}),prompt:l,messages:u},tools:void 0}),p=await ef({prompt:t,modelSupportsImageUrls:e.supportsImageUrls,modelSupportsUrl:null==(a=e.supportsUrl)?void 0:a.bind(e)}),d=await I(()=>L({name:"ai.generateObject.doGenerate",attributes:H({telemetry:h,attributes:{...U({operationId:"ai.generateObject.doGenerate",telemetry:h}),..._,"ai.prompt.format":{input:()=>t.type},"ai.prompt.messages":{input:()=>JSON.stringify(p)},"ai.settings.mode":o,"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":T.frequencyPenalty,"gen_ai.request.max_tokens":T.maxTokens,"gen_ai.request.presence_penalty":T.presencePenalty,"gen_ai.request.temperature":T.temperature,"gen_ai.request.top_k":T.topK,"gen_ai.request.top_p":T.topP}}),tracer:M,fn:async a=>{var o,n,i,l,u,d;let g=await e.doGenerate({mode:{type:"object-json",schema:k.jsonSchema,name:r,description:s},...ey(T),inputFormat:t.type,prompt:p,providerMetadata:y,abortSignal:m,headers:c}),f={id:null!=(n=null==(o=g.response)?void 0:o.id)?n:w(),timestamp:null!=(l=null==(i=g.response)?void 0:i.timestamp)?l:x(),modelId:null!=(d=null==(u=g.response)?void 0:u.modelId)?d:e.modelId};if(void 0===g.text)throw new Q({message:"No object generated: the model did not return a response.",response:f,usage:eJ(g.usage),finishReason:g.finishReason});return a.setAttributes(H({telemetry:h,attributes:{"ai.response.finishReason":g.finishReason,"ai.response.object":{output:()=>g.text},"ai.response.id":f.id,"ai.response.model":f.modelId,"ai.response.timestamp":f.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(g.providerMetadata),"ai.usage.promptTokens":g.usage.promptTokens,"ai.usage.completionTokens":g.usage.completionTokens,"gen_ai.response.finish_reasons":[g.finishReason],"gen_ai.response.id":f.id,"gen_ai.response.model":f.modelId,"gen_ai.usage.prompt_tokens":g.usage.promptTokens,"gen_ai.usage.completion_tokens":g.usage.completionTokens}})),{...g,objectText:g.text,responseData:f}}}));b=d.objectText,S=d.finishReason,R=d.usage,j=d.warnings,C=d.rawResponse,N=d.logprobs,P=d.providerMetadata,D=null!=(n=d.request)?n:{},q=d.responseData;break}case"tool":{let t=e$({prompt:{system:i,prompt:l,messages:u},tools:void 0}),a=await ef({prompt:t,modelSupportsImageUrls:e.supportsImageUrls,modelSupportsUrl:null==(p=e.supportsUrl)?void 0:p.bind(e)}),n=t.type,d=await I(()=>L({name:"ai.generateObject.doGenerate",attributes:H({telemetry:h,attributes:{...U({operationId:"ai.generateObject.doGenerate",telemetry:h}),..._,"ai.prompt.format":{input:()=>n},"ai.prompt.messages":{input:()=>eH(a)},"ai.settings.mode":o,"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":T.frequencyPenalty,"gen_ai.request.max_tokens":T.maxTokens,"gen_ai.request.presence_penalty":T.presencePenalty,"gen_ai.request.temperature":T.temperature,"gen_ai.request.top_k":T.topK,"gen_ai.request.top_p":T.topP}}),tracer:M,fn:async t=>{var o,i,l,u,p,d,g,f;let v=await e.doGenerate({mode:{type:"object-tool",tool:{type:"function",name:null!=r?r:"json",description:null!=s?s:"Respond with a JSON object.",parameters:k.jsonSchema}},...ey(T),inputFormat:n,prompt:a,providerMetadata:y,abortSignal:m,headers:c}),b=null==(i=null==(o=v.toolCalls)?void 0:o[0])?void 0:i.args,S={id:null!=(u=null==(l=v.response)?void 0:l.id)?u:w(),timestamp:null!=(d=null==(p=v.response)?void 0:p.timestamp)?d:x(),modelId:null!=(f=null==(g=v.response)?void 0:g.modelId)?f:e.modelId};if(void 0===b)throw new Q({message:"No object generated: the tool was not called.",response:S,usage:eJ(v.usage),finishReason:v.finishReason});return t.setAttributes(H({telemetry:h,attributes:{"ai.response.finishReason":v.finishReason,"ai.response.object":{output:()=>b},"ai.response.id":S.id,"ai.response.model":S.modelId,"ai.response.timestamp":S.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(v.providerMetadata),"ai.usage.promptTokens":v.usage.promptTokens,"ai.usage.completionTokens":v.usage.completionTokens,"gen_ai.response.finish_reasons":[v.finishReason],"gen_ai.response.id":S.id,"gen_ai.response.model":S.modelId,"gen_ai.usage.input_tokens":v.usage.promptTokens,"gen_ai.usage.output_tokens":v.usage.completionTokens}})),{...v,objectText:b,responseData:S}}}));b=d.objectText,S=d.finishReason,R=d.usage,j=d.warnings,C=d.rawResponse,N=d.logprobs,P=d.providerMetadata,D=null!=(g=d.request)?g:{},q=d.responseData;break}case void 0:throw Error("Model does not have a default object generation mode.");default:{let e=o;throw Error(`Unsupported mode: ${e}`)}}function E(e){let t=(0,v.N8)({text:e});if(!t.success)throw new Q({message:"No object generated: could not parse the response.",cause:t.error,text:e,response:q,usage:eJ(R),finishReason:S});let a=k.validateFinalResult(t.value,{text:e,response:q,usage:eJ(R)});if(!a.success)throw new Q({message:"No object generated: response did not match schema.",cause:a.error,text:e,response:q,usage:eJ(R),finishReason:S});return a.value}try{O=E(b)}catch(e){if(null!=d&&Q.isInstance(e)&&(f.u6.isInstance(e.cause)||f.iM.isInstance(e.cause))){let t=await d({text:b,error:e.cause});if(null===t)throw e;O=E(t)}else throw e}return t.setAttributes(H({telemetry:h,attributes:{"ai.response.finishReason":S,"ai.response.object":{output:()=>JSON.stringify(O)},"ai.usage.promptTokens":R.promptTokens,"ai.usage.completionTokens":R.completionTokens}})),new eW({object:O,finishReason:S,usage:eJ(R),warnings:j,request:D,response:{...q,headers:null==C?void 0:C.headers,body:null==C?void 0:C.body},logprobs:N,providerMetadata:P})}})}var eW=class{constructor(e){this.object=e.object,this.finishReason=e.finishReason,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.experimental_providerMetadata=e.providerMetadata,this.response=e.response,this.request=e.request,this.logprobs=e.logprobs}toJsonResponse(e){var t;return new Response(JSON.stringify(this.object),{status:null!=(t=null==e?void 0:e.status)?t:200,headers:I(null==e?void 0:e.headers,{contentType:"application/json; charset=utf-8"})})}},eB=class{constructor(){this.status={type:"pending"},this._resolve=void 0,this._reject=void 0}get value(){return this.promise||(this.promise=new Promise((e,t)=>{"resolved"===this.status.type?e(this.status.value):"rejected"===this.status.type&&t(this.status.error),this._resolve=e,this._reject=t})),this.promise}resolve(e){var t;this.status={type:"resolved",value:e},this.promise&&(null==(t=this._resolve)||t.call(this,e))}reject(e){var t;this.status={type:"rejected",error:e},this.promise&&(null==(t=this._reject)||t.call(this,e))}};function eX(){let e,t;return{promise:new Promise((a,r)=>{e=a,t=r}),resolve:e,reject:t}}function eQ(){var e,t;return null!=(t=null==(e=null==globalThis?void 0:globalThis.performance)?void 0:e.now())?t:Date.now()}(0,v.hK)({prefix:"aiobj",size:24});var e0="AI_NoOutputSpecifiedError",e1=`vercel.ai.error.${e0}`,e4=Symbol.for(e1),e2=class extends f.bD{constructor({message:e="No output specified."}={}){super({name:e0,message:e}),this[p]=!0}static isInstance(e){return f.bD.hasMarker(e,e1)}};p=e4;var e8="AI_ToolExecutionError",e6=`vercel.ai.error.${e8}`,e7=Symbol.for(e6),e3=class extends f.bD{constructor({toolArgs:e,toolName:t,toolCallId:a,cause:r,message:s=`Error executing tool ${t}: ${(0,f.u1)(r)}`}){super({name:e8,message:s,cause:r}),this[m]=!0,this.toolArgs=e,this.toolName=t,this.toolCallId=a}static isInstance(e){return f.bD.hasMarker(e,e6)}};function e5({tools:e,toolChoice:t,activeTools:a}){return null!=e&&Object.keys(e).length>0?{tools:(null!=a?Object.entries(e).filter(([e])=>a.includes(e)):Object.entries(e)).map(([e,t])=>{let a=t.type;switch(a){case void 0:case"function":return{type:"function",name:e,description:t.description,parameters:(0,b.mD)(t.parameters).jsonSchema};case"provider-defined":return{type:"provider-defined",name:e,id:t.id,args:t.args};default:throw Error(`Unsupported tool type: ${a}`)}}),toolChoice:null==t?{type:"auto"}:"string"==typeof t?{type:t}:{type:"tool",toolName:t.toolName}}:{tools:void 0,toolChoice:void 0}}m=e7;var e9=/^([\s\S]*?)(\s+)(\S*)$/;function te(e){let t=e.match(e9);return t?{prefix:t[1],whitespace:t[2],suffix:t[3]}:void 0}var tt="AI_InvalidToolArgumentsError",ta=`vercel.ai.error.${tt}`,tr=Symbol.for(ta),ts=class extends f.bD{constructor({toolArgs:e,toolName:t,cause:a,message:r=`Invalid arguments for tool ${t}: ${(0,f.u1)(a)}`}){super({name:tt,message:r,cause:a}),this[c]=!0,this.toolArgs=e,this.toolName=t}static isInstance(e){return f.bD.hasMarker(e,ta)}};c=tr;var to="AI_NoSuchToolError",tn=`vercel.ai.error.${to}`,ti=Symbol.for(tn),tl=class extends f.bD{constructor({toolName:e,availableTools:t,message:a=`Model tried to call unavailable tool '${e}'. ${void 0===t?"No tools are available.":`Available tools: ${t.join(", ")}.`}`}){super({name:to,message:a}),this[d]=!0,this.toolName=e,this.availableTools=t}static isInstance(e){return f.bD.hasMarker(e,tn)}};d=ti;var tu="AI_ToolCallRepairError",tp=`vercel.ai.error.${tu}`,tm=Symbol.for(tp),tc=class extends f.bD{constructor({cause:e,originalError:t,message:a=`Error repairing tool call: ${(0,f.u1)(e)}`}){super({name:tu,message:a,cause:e}),this[h]=!0,this.originalError=t}static isInstance(e){return f.bD.hasMarker(e,tp)}};async function td({toolCall:e,tools:t,repairToolCall:a,system:r,messages:s}){if(null==t)throw new tl({toolName:e.toolName});try{return await th({toolCall:e,tools:t})}catch(n){if(null==a||!(tl.isInstance(n)||ts.isInstance(n)))throw n;let o=null;try{o=await a({toolCall:e,tools:t,parameterSchema:({toolName:e})=>(0,b.mD)(t[e].parameters).jsonSchema,system:r,messages:s,error:n})}catch(e){throw new tc({cause:e,originalError:n})}if(null==o)throw n;return await th({toolCall:o,tools:t})}}async function th({toolCall:e,tools:t}){let a=e.toolName,r=t[a];if(null==r)throw new tl({toolName:e.toolName,availableTools:Object.keys(t)});let s=(0,b.mD)(r.parameters),o=""===e.args.trim()?(0,v.ZZ)({value:{},schema:s}):(0,v.N8)({text:e.args,schema:s});if(!1===o.success)throw new ts({toolName:a,toolArgs:e.args,cause:o.error});return{type:"tool-call",toolCallId:e.toolCallId,toolName:a,args:o.value}}function tg(e){let t=e.filter(e=>"text"===e.type).map(e=>e.text).join("");return t.length>0?t:void 0}function tf({text:e="",files:t,reasoning:a,tools:r,toolCalls:s,toolResults:o,messageId:n,generateMessageId:i}){let l=[],u=[];return a.length>0&&u.push(...a.map(e=>"text"===e.type?{...e,type:"reasoning"}:{...e,type:"redacted-reasoning"})),t.length>0&&u.push(...t.map(e=>({type:"file",data:e.base64,mimeType:e.mimeType}))),e.length>0&&u.push({type:"text",text:e}),s.length>0&&u.push(...s),u.length>0&&l.push({role:"assistant",content:u,id:n}),o.length>0&&l.push({role:"tool",id:i(),content:o.map(e=>{let t=r[e.toolName];return(null==t?void 0:t.experimental_toToolResultContent)!=null?{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,result:t.experimental_toToolResultContent(e.result),experimental_content:t.experimental_toToolResultContent(e.result)}:{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,result:e.result}})}),l}h=tm;var tv=(0,v.hK)({prefix:"aitxt",size:24}),ty=(0,v.hK)({prefix:"msg",size:24});async function tw({model:e,tools:t,toolChoice:a,system:r,prompt:s,messages:o,maxRetries:n,abortSignal:i,headers:l,maxSteps:u=1,experimental_generateMessageId:p=ty,experimental_output:m,experimental_continueSteps:c=!1,experimental_telemetry:d,experimental_providerMetadata:h,providerOptions:g=h,experimental_activeTools:f,experimental_prepareStep:v,experimental_repairToolCall:y,_internal:{generateId:w=tv,currentDate:x=()=>new Date}={},onStepFinish:b,...T}){var S;if("string"==typeof e||"v1"!==e.specificationVersion)throw new R;if(u<1)throw new q({parameter:"maxSteps",value:u,message:"maxSteps must be at least 1"});let{maxRetries:I,retry:k}=A({maxRetries:n}),_=$({model:e,telemetry:d,headers:l,settings:{...T,maxRetries:I}}),M=e$({prompt:{system:null!=(S=null==m?void 0:m.injectIntoSystemPrompt({system:r,model:e}))?S:r,prompt:s,messages:o},tools:t}),j=F(d);return L({name:"ai.generateText",attributes:H({telemetry:d,attributes:{...U({operationId:"ai.generateText",telemetry:d}),..._,"ai.model.provider":e.provider,"ai.model.id":e.modelId,"ai.prompt":{input:()=>JSON.stringify({system:r,prompt:s,messages:o})},"ai.settings.maxSteps":u}}),tracer:j,fn:async s=>{var o,n,h,S,I,R,C,q,D,N,P,O,E,A;let $,Y=ey(T),J=[],K=[],F=[],Z=0,V=[],z="",G=[],W=[],B={completionTokens:0,promptTokens:0,totalTokens:0},X="initial";do{let s=0===Z?M.type:"messages",O=[...M.messages,...V],E=await (null==v?void 0:v({model:e,steps:W,maxSteps:u,stepNumber:Z})),A=null!=(o=null==E?void 0:E.toolChoice)?o:a,Q=null!=(n=null==E?void 0:E.experimental_activeTools)?n:f,ee=null!=(h=null==E?void 0:E.model)?h:e,et=await ef({prompt:{type:s,system:M.system,messages:O},modelSupportsImageUrls:ee.supportsImageUrls,modelSupportsUrl:null==(S=ee.supportsUrl)?void 0:S.bind(ee)}),ea={type:"regular",...e5({tools:t,toolChoice:A,activeTools:Q})};$=await k(()=>L({name:"ai.generateText.doGenerate",attributes:H({telemetry:d,attributes:{...U({operationId:"ai.generateText.doGenerate",telemetry:d}),..._,"ai.model.provider":ee.provider,"ai.model.id":ee.modelId,"ai.prompt.format":{input:()=>s},"ai.prompt.messages":{input:()=>eH(et)},"ai.prompt.tools":{input:()=>{var e;return null==(e=ea.tools)?void 0:e.map(e=>JSON.stringify(e))}},"ai.prompt.toolChoice":{input:()=>null!=ea.toolChoice?JSON.stringify(ea.toolChoice):void 0},"gen_ai.system":ee.provider,"gen_ai.request.model":ee.modelId,"gen_ai.request.frequency_penalty":T.frequencyPenalty,"gen_ai.request.max_tokens":T.maxTokens,"gen_ai.request.presence_penalty":T.presencePenalty,"gen_ai.request.stop_sequences":T.stopSequences,"gen_ai.request.temperature":T.temperature,"gen_ai.request.top_k":T.topK,"gen_ai.request.top_p":T.topP}}),tracer:j,fn:async t=>{var a,r,o,n,u,p;let c=await ee.doGenerate({mode:ea,...Y,inputFormat:s,responseFormat:null==m?void 0:m.responseFormat({model:e}),prompt:et,providerMetadata:g,abortSignal:i,headers:l}),h={id:null!=(r=null==(a=c.response)?void 0:a.id)?r:w(),timestamp:null!=(n=null==(o=c.response)?void 0:o.timestamp)?n:x(),modelId:null!=(p=null==(u=c.response)?void 0:u.modelId)?p:ee.modelId};return t.setAttributes(H({telemetry:d,attributes:{"ai.response.finishReason":c.finishReason,"ai.response.text":{output:()=>c.text},"ai.response.toolCalls":{output:()=>JSON.stringify(c.toolCalls)},"ai.response.id":h.id,"ai.response.model":h.modelId,"ai.response.timestamp":h.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(c.providerMetadata),"ai.usage.promptTokens":c.usage.promptTokens,"ai.usage.completionTokens":c.usage.completionTokens,"gen_ai.response.finish_reasons":[c.finishReason],"gen_ai.response.id":h.id,"gen_ai.response.model":h.modelId,"gen_ai.usage.input_tokens":c.usage.promptTokens,"gen_ai.usage.output_tokens":c.usage.completionTokens}})),{...c,response:h}}})),J=await Promise.all((null!=(I=$.toolCalls)?I:[]).map(e=>td({toolCall:e,tools:t,repairToolCall:y,system:r,messages:O}))),K=null==t?[]:await tx({toolCalls:J,tools:t,tracer:j,telemetry:d,messages:O,abortSignal:i});let er=eJ($.usage);B=eK(B,er);let es="done";++Z0&&K.length===J.length&&(es="tool-result"));let eo=null!=(R=$.text)?R:"",en="continue"===X&&z.trimEnd()!==z?eo.trimStart():eo,ei="continue"===es?function(e){let t=te(e);return t?t.prefix+t.whitespace:e}(en):en;if(z="continue"===es||"continue"===X?z+ei:ei,F=tT($.reasoning),G.push(...null!=(C=$.sources)?C:[]),"continue"===X){let e=V[V.length-1];"string"==typeof e.content?e.content+=ei:e.content.push({text:ei,type:"text"})}else V.push(...tf({text:z,files:tS($.files),reasoning:tT($.reasoning),tools:null!=t?t:{},toolCalls:J,toolResults:K,messageId:p(),generateMessageId:p}));let el={stepType:X,text:ei,reasoning:tg(F),reasoningDetails:F,files:tS($.files),sources:null!=(q=$.sources)?q:[],toolCalls:J,toolResults:K,finishReason:$.finishReason,usage:er,warnings:$.warnings,logprobs:$.logprobs,request:null!=(D=$.request)?D:{},response:{...$.response,headers:null==(N=$.rawResponse)?void 0:N.headers,body:null==(P=$.rawResponse)?void 0:P.body,messages:structuredClone(V)},providerMetadata:$.providerMetadata,experimental_providerMetadata:$.providerMetadata,isContinued:"continue"===es};W.push(el),await (null==b?void 0:b(el)),X=es}while("done"!==X);return s.setAttributes(H({telemetry:d,attributes:{"ai.response.finishReason":$.finishReason,"ai.response.text":{output:()=>$.text},"ai.response.toolCalls":{output:()=>JSON.stringify($.toolCalls)},"ai.usage.promptTokens":$.usage.promptTokens,"ai.usage.completionTokens":$.usage.completionTokens,"ai.response.providerMetadata":JSON.stringify($.providerMetadata)}})),new tb({text:z,files:tS($.files),reasoning:tg(F),reasoningDetails:F,sources:G,outputResolver:()=>{if(null==m)throw new e2;return m.parseOutput({text:z},{response:$.response,usage:B,finishReason:$.finishReason})},toolCalls:J,toolResults:K,finishReason:$.finishReason,usage:B,warnings:$.warnings,request:null!=(O=$.request)?O:{},response:{...$.response,headers:null==(E=$.rawResponse)?void 0:E.headers,body:null==(A=$.rawResponse)?void 0:A.body,messages:V},logprobs:$.logprobs,steps:W,providerMetadata:$.providerMetadata})}})}async function tx({toolCalls:e,tools:t,tracer:a,telemetry:r,messages:s,abortSignal:o}){return(await Promise.all(e.map(async({toolCallId:e,toolName:n,args:i})=>{let l=t[n];if((null==l?void 0:l.execute)==null)return;let u=await L({name:"ai.toolCall",attributes:H({telemetry:r,attributes:{...U({operationId:"ai.toolCall",telemetry:r}),"ai.toolCall.name":n,"ai.toolCall.id":e,"ai.toolCall.args":{output:()=>JSON.stringify(i)}}}),tracer:a,fn:async t=>{try{let a=await l.execute(i,{toolCallId:e,messages:s,abortSignal:o});try{t.setAttributes(H({telemetry:r,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(a)}}}))}catch(e){}return a}catch(a){throw Z(t,a),new e3({toolCallId:e,toolName:n,toolArgs:i,cause:a})}}});return{type:"tool-result",toolCallId:e,toolName:n,args:i,result:u}}))).filter(e=>null!=e)}var tb=class{constructor(e){this.text=e.text,this.files=e.files,this.reasoning=e.reasoning,this.reasoningDetails=e.reasoningDetails,this.toolCalls=e.toolCalls,this.toolResults=e.toolResults,this.finishReason=e.finishReason,this.usage=e.usage,this.warnings=e.warnings,this.request=e.request,this.response=e.response,this.steps=e.steps,this.experimental_providerMetadata=e.providerMetadata,this.providerMetadata=e.providerMetadata,this.logprobs=e.logprobs,this.outputResolver=e.outputResolver,this.sources=e.sources}get experimental_output(){return this.outputResolver()}};function tT(e){return null==e?[]:"string"==typeof e?[{type:"text",text:e}]:e}function tS(e){var t;return null!=(t=null==e?void 0:e.map(e=>new V(e)))?t:[]}S({},{object:()=>tj,text:()=>tM});var tI="AI_InvalidStreamPartError",tk=`vercel.ai.error.${tI}`,t_=Symbol.for(tk),tR=class extends f.bD{constructor({chunk:e,message:t}){super({name:tI,message:t}),this[g]=!0,this.chunk=e}static isInstance(e){return f.bD.hasMarker(e,tk)}};g=t_;Symbol.for("vercel.ai.error.AI_MCPClientError");f.bD;var tM=()=>({type:"text",responseFormat:()=>({type:"text"}),injectIntoSystemPrompt:({system:e})=>e,parsePartial:({text:e})=>({partial:e}),parseOutput:({text:e})=>e}),tj=({schema:e})=>{let t=(0,b.mD)(e);return{type:"object",responseFormat:({model:e})=>({type:"json",schema:e.supportsStructuredOutputs?t.jsonSchema:void 0}),injectIntoSystemPrompt:({system:e,model:a})=>a.supportsStructuredOutputs?e:eF({prompt:e,schema:t.jsonSchema}),parsePartial({text:e}){let t=(0,b.d1)(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{let e=t.state;throw Error(`Unsupported parse state: ${e}`)}}},parseOutput({text:e},a){let r=(0,v.N8)({text:e});if(!r.success)throw new Q({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let s=(0,v.ZZ)({value:r.value,schema:t});if(!s.success)throw new Q({message:"No object generated: response did not match schema.",cause:s.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});return s.value}}};async function tC({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:e}=await a.read();if(e)break}}catch(e){null==t||t(e)}finally{a.releaseLock()}}function tq(e,t){let a,r,s=e.getReader(),o=t.getReader(),n=!1,i=!1;async function l(e){try{null==a&&(a=s.read());let t=await a;a=void 0,t.done?e.close():e.enqueue(t.value)}catch(t){e.error(t)}}async function u(e){try{null==r&&(r=o.read());let t=await r;r=void 0,t.done?e.close():e.enqueue(t.value)}catch(t){e.error(t)}}return new ReadableStream({async pull(e){try{if(n)return void await u(e);if(i)return void await l(e);null==a&&(a=s.read()),null==r&&(r=o.read());let{result:t,reader:p}=await Promise.race([a.then(e=>({result:e,reader:s})),r.then(e=>({result:e,reader:o}))]);t.done||e.enqueue(t.value),p===s?(a=void 0,t.done&&(await u(e),n=!0)):(r=void 0,t.done&&(i=!0,await l(e)))}catch(t){e.error(t)}},cancel(){s.cancel(),o.cancel()}})}var tD=(0,v.hK)({prefix:"aitxt",size:24}),tN=(0,v.hK)({prefix:"msg",size:24});function tP({model:e,tools:t,toolChoice:a,system:r,prompt:s,messages:o,maxRetries:n,abortSignal:i,headers:l,maxSteps:u=1,experimental_generateMessageId:p=tN,experimental_output:m,experimental_continueSteps:c=!1,experimental_telemetry:d,experimental_providerMetadata:h,providerOptions:g=h,experimental_toolCallStreaming:f=!1,toolCallStreaming:v=f,experimental_activeTools:y,experimental_repairToolCall:w,experimental_transform:x,onChunk:b,onError:T,onFinish:S,onStepFinish:I,_internal:{now:k=eQ,generateId:_=tD,currentDate:M=()=>new Date}={},...j}){if("string"==typeof e||"v1"!==e.specificationVersion)throw new R;return new tO({model:e,telemetry:d,headers:l,settings:j,maxRetries:n,abortSignal:i,system:r,prompt:s,messages:o,tools:t,toolChoice:a,toolCallStreaming:v,transforms:void 0===x?[]:Array.isArray(x)?x:[x],activeTools:y,repairToolCall:w,maxSteps:u,output:m,continueSteps:c,providerOptions:g,onChunk:b,onError:T,onFinish:S,onStepFinish:I,now:k,currentDate:M,generateId:_,generateMessageId:p})}var tO=class{constructor({model:e,telemetry:t,headers:a,settings:r,maxRetries:s,abortSignal:o,system:n,prompt:i,messages:l,tools:u,toolChoice:p,toolCallStreaming:m,transforms:c,activeTools:d,repairToolCall:h,maxSteps:g,output:y,continueSteps:w,providerOptions:x,now:b,currentDate:T,generateId:S,generateMessageId:I,onChunk:k,onError:_,onFinish:R,onStepFinish:M}){var j;let C,D,N,P;if(this.warningsPromise=new eB,this.usagePromise=new eB,this.finishReasonPromise=new eB,this.providerMetadataPromise=new eB,this.textPromise=new eB,this.reasoningPromise=new eB,this.reasoningDetailsPromise=new eB,this.sourcesPromise=new eB,this.filesPromise=new eB,this.toolCallsPromise=new eB,this.toolResultsPromise=new eB,this.requestPromise=new eB,this.responsePromise=new eB,this.stepsPromise=new eB,g<1)throw new q({parameter:"maxSteps",value:g,message:"maxSteps must be at least 1"});this.output=y;let O="",E="",Y="",J=[],K=[],V=[],G=[],W={id:S(),timestamp:T(),modelId:e.modelId,messages:[]},B=[],X=[],Q="initial",ee=[],et=new TransformStream({async transform(e,t){t.enqueue(e);let{part:a}=e;if(("text-delta"===a.type||"reasoning"===a.type||"source"===a.type||"tool-call"===a.type||"tool-result"===a.type||"tool-call-streaming-start"===a.type||"tool-call-delta"===a.type)&&await (null==k?void 0:k({chunk:a})),"error"===a.type&&await (null==_?void 0:_({error:a.error})),"text-delta"===a.type&&(O+=a.textDelta,E+=a.textDelta,Y+=a.textDelta),"reasoning"===a.type&&(null==D?(D={type:"text",text:a.textDelta},J.push(D)):D.text+=a.textDelta),"reasoning-signature"===a.type){if(null==D)throw new f.bD({name:"InvalidStreamPart",message:"reasoning-signature without reasoning"});D.signature=a.signature,D=void 0}if("redacted-reasoning"===a.type&&J.push({type:"redacted",data:a.data}),"file"===a.type&&K.push(a),"source"===a.type&&(G.push(a.source),V.push(a.source)),"tool-call"===a.type&&B.push(a),"tool-result"===a.type&&X.push(a),"step-finish"===a.type){let e=tf({text:E,files:K,reasoning:J,tools:null!=u?u:{},toolCalls:B,toolResults:X,messageId:a.messageId,generateMessageId:I}),t=ee.length,r="done";t+10&&X.length===B.length&&(r="tool-result"));let s={stepType:Q,text:O,reasoning:tg(J),reasoningDetails:J,files:K,sources:V,toolCalls:B,toolResults:X,finishReason:a.finishReason,usage:a.usage,warnings:a.warnings,logprobs:a.logprobs,request:a.request,response:{...a.response,messages:[...W.messages,...e]},providerMetadata:a.experimental_providerMetadata,experimental_providerMetadata:a.experimental_providerMetadata,isContinued:a.isContinued};await (null==M?void 0:M(s)),ee.push(s),B=[],X=[],O="",V=[],J=[],K=[],D=void 0,"done"!==r&&(Q=r),"continue"!==r&&(W.messages.push(...e),E="")}"finish"===a.type&&(W.id=a.response.id,W.timestamp=a.response.timestamp,W.modelId=a.response.modelId,W.headers=a.response.headers,P=a.usage,N=a.finishReason)},async flush(e){var a;try{if(0===ee.length)return;let e=ee[ee.length-1];eu.warningsPromise.resolve(e.warnings),eu.requestPromise.resolve(e.request),eu.responsePromise.resolve(e.response),eu.toolCallsPromise.resolve(e.toolCalls),eu.toolResultsPromise.resolve(e.toolResults),eu.providerMetadataPromise.resolve(e.experimental_providerMetadata),eu.reasoningPromise.resolve(e.reasoning),eu.reasoningDetailsPromise.resolve(e.reasoningDetails);let r=null!=N?N:"unknown",s=null!=P?P:{completionTokens:NaN,promptTokens:NaN,totalTokens:NaN};eu.finishReasonPromise.resolve(r),eu.usagePromise.resolve(s),eu.textPromise.resolve(Y),eu.sourcesPromise.resolve(G),eu.filesPromise.resolve(e.files),eu.stepsPromise.resolve(ee),await (null==R?void 0:R({finishReason:r,logprobs:void 0,usage:s,text:Y,reasoning:e.reasoning,reasoningDetails:e.reasoningDetails,files:e.files,sources:e.sources,toolCalls:e.toolCalls,toolResults:e.toolResults,request:null!=(a=e.request)?a:{},response:e.response,warnings:e.warnings,providerMetadata:e.providerMetadata,experimental_providerMetadata:e.experimental_providerMetadata,steps:ee})),C.setAttributes(H({telemetry:t,attributes:{"ai.response.finishReason":r,"ai.response.text":{output:()=>Y},"ai.response.toolCalls":{output:()=>{var t;return(null==(t=e.toolCalls)?void 0:t.length)?JSON.stringify(e.toolCalls):void 0}},"ai.usage.promptTokens":s.promptTokens,"ai.usage.completionTokens":s.completionTokens,"ai.response.providerMetadata":JSON.stringify(e.providerMetadata)}}))}catch(t){e.error(t)}finally{C.end()}}}),ea=function(){let e=[],t=null,a=!1,r=eX(),s=async()=>{if(a&&0===e.length){null==t||t.close();return}if(0===e.length)return r=eX(),await r.promise,s();try{let{value:r,done:o}=await e[0].read();o?(e.shift(),e.length>0?await s():a&&(null==t||t.close())):null==t||t.enqueue(r)}catch(r){null==t||t.error(r),e.shift(),a&&0===e.length&&(null==t||t.close())}};return{stream:new ReadableStream({start(e){t=e},pull:s,async cancel(){for(let t of e)await t.cancel();e=[],a=!0}}),addStream:t=>{if(a)throw Error("Cannot add inner stream: outer stream is closed");e.push(t.getReader()),r.resolve()},close:()=>{a=!0,r.resolve(),0===e.length&&(null==t||t.close())},terminate:()=>{a=!0,r.resolve(),e.forEach(e=>e.cancel()),e=[],null==t||t.close()}}}();this.addStream=ea.addStream,this.closeStream=ea.close;let er=ea.stream;for(let e of c)er=er.pipeThrough(e({tools:u,stopStream(){ea.terminate()}}));this.baseStream=er.pipeThrough(function(e){if(!e)return new TransformStream({transform(e,t){t.enqueue({part:e,partialOutput:void 0})}});let t="",a="",r="";function s({controller:e,partialOutput:t}){e.enqueue({part:{type:"text-delta",textDelta:a},partialOutput:t}),a=""}return new TransformStream({transform(o,n){if("step-finish"===o.type&&s({controller:n}),"text-delta"!==o.type)return void n.enqueue({part:o,partialOutput:void 0});t+=o.textDelta,a+=o.textDelta;let i=e.parsePartial({text:t});if(null!=i){let e=JSON.stringify(i.partial);e!==r&&(s({controller:n,partialOutput:i.partial}),r=e)}},flush(e){a.length>0&&s({controller:e})}})}(y)).pipeThrough(et);let{maxRetries:es,retry:eo}=A({maxRetries:s}),en=F(t),ei=$({model:e,telemetry:t,headers:a,settings:{...r,maxRetries:es}}),el=e$({prompt:{system:null!=(j=null==y?void 0:y.injectIntoSystemPrompt({system:n,model:e}))?j:n,prompt:i,messages:l},tools:u}),eu=this;L({name:"ai.streamText",attributes:H({telemetry:t,attributes:{...U({operationId:"ai.streamText",telemetry:t}),...ei,"ai.prompt":{input:()=>JSON.stringify({system:n,prompt:i,messages:l})},"ai.settings.maxSteps":g}}),tracer:en,endWhenDone:!1,fn:async s=>{async function i({currentStep:s,responseMessages:l,usage:c,stepType:f,previousStepText:k,hasLeadingWhitespace:_,messageId:R}){var M;let j,C,q,D=0===l.length?el.type:"messages",N=[...el.messages,...l],P=await ef({prompt:{type:D,system:el.system,messages:N},modelSupportsImageUrls:e.supportsImageUrls,modelSupportsUrl:null==(M=e.supportsUrl)?void 0:M.bind(e)}),O={type:"regular",...e5({tools:u,toolChoice:p,activeTools:d})},{result:{stream:E,warnings:A,rawResponse:$,request:Y},doStreamSpan:J,startTimestampMs:K}=await eo(()=>L({name:"ai.streamText.doStream",attributes:H({telemetry:t,attributes:{...U({operationId:"ai.streamText.doStream",telemetry:t}),...ei,"ai.prompt.format":{input:()=>D},"ai.prompt.messages":{input:()=>eH(P)},"ai.prompt.tools":{input:()=>{var e;return null==(e=O.tools)?void 0:e.map(e=>JSON.stringify(e))}},"ai.prompt.toolChoice":{input:()=>null!=O.toolChoice?JSON.stringify(O.toolChoice):void 0},"gen_ai.system":e.provider,"gen_ai.request.model":e.modelId,"gen_ai.request.frequency_penalty":r.frequencyPenalty,"gen_ai.request.max_tokens":r.maxTokens,"gen_ai.request.presence_penalty":r.presencePenalty,"gen_ai.request.stop_sequences":r.stopSequences,"gen_ai.request.temperature":r.temperature,"gen_ai.request.top_k":r.topK,"gen_ai.request.top_p":r.topP}}),tracer:en,endWhenDone:!1,fn:async t=>({startTimestampMs:b(),doStreamSpan:t,result:await e.doStream({mode:O,...ey(r),inputFormat:D,responseFormat:null==y?void 0:y.responseFormat({model:e}),prompt:P,providerMetadata:x,abortSignal:o,headers:a})})})),F=function({tools:e,generatorStream:t,toolCallStreaming:a,tracer:r,telemetry:s,system:o,messages:n,abortSignal:i,repairToolCall:l}){let u,p=null,m=new ReadableStream({start(e){p=e}}),c={},d=new Set,h=!1;function g(){h&&0===d.size&&(null!=u&&p.enqueue(u),p.close())}let f=new TransformStream({async transform(t,m){let h=t.type;switch(h){case"text-delta":case"reasoning":case"reasoning-signature":case"redacted-reasoning":case"source":case"response-metadata":case"error":m.enqueue(t);break;case"file":m.enqueue(new z({data:t.data,mimeType:t.mimeType}));break;case"tool-call-delta":a&&(c[t.toolCallId]||(m.enqueue({type:"tool-call-streaming-start",toolCallId:t.toolCallId,toolName:t.toolName}),c[t.toolCallId]=!0),m.enqueue({type:"tool-call-delta",toolCallId:t.toolCallId,toolName:t.toolName,argsTextDelta:t.argsTextDelta}));break;case"tool-call":try{let a=await td({toolCall:t,tools:e,repairToolCall:l,system:o,messages:n});m.enqueue(a);let u=e[a.toolName];if(null!=u.execute){let e=(0,v.$C)();d.add(e),L({name:"ai.toolCall",attributes:H({telemetry:s,attributes:{...U({operationId:"ai.toolCall",telemetry:s}),"ai.toolCall.name":a.toolName,"ai.toolCall.id":a.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(a.args)}}}),tracer:r,fn:async t=>u.execute(a.args,{toolCallId:a.toolCallId,messages:n,abortSignal:i}).then(r=>{p.enqueue({...a,type:"tool-result",result:r}),d.delete(e),g();try{t.setAttributes(H({telemetry:s,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(r)}}}))}catch(e){}},r=>{Z(t,r),p.enqueue({type:"error",error:new e3({toolCallId:a.toolCallId,toolName:a.toolName,toolArgs:a.args,cause:r})}),d.delete(e),g()})})}}catch(e){p.enqueue({type:"error",error:e})}break;case"finish":u={type:"finish",finishReason:t.finishReason,logprobs:t.logprobs,usage:eJ(t.usage),experimental_providerMetadata:t.providerMetadata};break;default:throw Error(`Unhandled chunk type: ${h}`)}},flush(){h=!0,g()}});return new ReadableStream({start:async e=>Promise.all([t.pipeThrough(f).pipeTo(new WritableStream({write(t){e.enqueue(t)},close(){}})),m.pipeTo(new WritableStream({write(t){e.enqueue(t)},close(){e.close()}}))])})}({tools:u,generatorStream:E,toolCallStreaming:m,tracer:en,telemetry:t,system:n,messages:N,repairToolCall:h,abortSignal:o}),V=null!=Y?Y:{},G=[],W=[],B=[],X=[],Q="unknown",ee={promptTokens:0,completionTokens:0,totalTokens:0},et=!0,ea="",er="continue"===f?k:"",es={id:S(),timestamp:T(),modelId:e.modelId},ep="",em=!1,ec=!0,ed=!1;async function eh({controller:e,chunk:t}){e.enqueue(t),ea+=t.textDelta,er+=t.textDelta,em=!0,ed=t.textDelta.trimEnd()!==t.textDelta}eu.addStream(F.pipeThrough(new TransformStream({async transform(e,t){var a,r,s;if(et){let e=b()-K;et=!1,J.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":e}),J.setAttributes({"ai.response.msToFirstChunk":e}),t.enqueue({type:"step-start",messageId:R,request:V,warnings:null!=A?A:[]})}if("text-delta"===e.type&&0===e.textDelta.length)return;let o=e.type;switch(o){case"text-delta":if(w){let a=ec&&_?e.textDelta.trimStart():e.textDelta;if(0===a.length)break;ec=!1;let r=te(ep+=a);null!=r&&(ep=r.suffix,await eh({controller:t,chunk:{type:"text-delta",textDelta:r.prefix+r.whitespace}}))}else await eh({controller:t,chunk:e});break;case"reasoning":t.enqueue(e),null==q?(q={type:"text",text:e.textDelta},B.push(q)):q.text+=e.textDelta;break;case"reasoning-signature":if(t.enqueue(e),null==q)throw new tR({chunk:e,message:"reasoning-signature without reasoning"});q.signature=e.signature,q=void 0;break;case"redacted-reasoning":t.enqueue(e),B.push({type:"redacted",data:e.data});break;case"tool-call":t.enqueue(e),G.push(e);break;case"tool-result":t.enqueue(e),W.push(e);break;case"response-metadata":es={id:null!=(a=e.id)?a:es.id,timestamp:null!=(r=e.timestamp)?r:es.timestamp,modelId:null!=(s=e.modelId)?s:es.modelId};break;case"finish":{ee=e.usage,Q=e.finishReason,j=e.experimental_providerMetadata,C=e.logprobs;let t=b()-K;J.addEvent("ai.stream.finish"),J.setAttributes({"ai.response.msToFinish":t,"ai.response.avgCompletionTokensPerSecond":1e3*ee.completionTokens/t});break}case"file":X.push(e),t.enqueue(e);break;case"source":case"tool-call-streaming-start":case"tool-call-delta":t.enqueue(e);break;case"error":t.enqueue(e),Q="error";break;default:throw Error(`Unknown chunk type: ${o}`)}},async flush(e){let a=G.length>0?JSON.stringify(G):void 0,r="done";s+10&&W.length===G.length&&(r="tool-result")),w&&ep.length>0&&("continue"!==r||"continue"===f&&!em)&&(await eh({controller:e,chunk:{type:"text-delta",textDelta:ep}}),ep="");try{J.setAttributes(H({telemetry:t,attributes:{"ai.response.finishReason":Q,"ai.response.text":{output:()=>ea},"ai.response.toolCalls":{output:()=>a},"ai.response.id":es.id,"ai.response.model":es.modelId,"ai.response.timestamp":es.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(j),"ai.usage.promptTokens":ee.promptTokens,"ai.usage.completionTokens":ee.completionTokens,"gen_ai.response.finish_reasons":[Q],"gen_ai.response.id":es.id,"gen_ai.response.model":es.modelId,"gen_ai.usage.input_tokens":ee.promptTokens,"gen_ai.usage.output_tokens":ee.completionTokens}}))}catch(e){}finally{J.end()}e.enqueue({type:"step-finish",finishReason:Q,usage:ee,providerMetadata:j,experimental_providerMetadata:j,logprobs:C,request:V,response:{...es,headers:null==$?void 0:$.headers},warnings:A,isContinued:"continue"===r,messageId:R});let o=eK(c,ee);if("done"===r)e.enqueue({type:"finish",finishReason:Q,usage:o,providerMetadata:j,experimental_providerMetadata:j,logprobs:C,response:{...es,headers:null==$?void 0:$.headers}}),eu.closeStream();else{if("continue"===f){let e=l[l.length-1];"string"==typeof e.content?e.content+=ea:e.content.push({text:ea,type:"text"})}else l.push(...tf({text:ea,files:X,reasoning:B,tools:null!=u?u:{},toolCalls:G,toolResults:W,messageId:R,generateMessageId:I}));await i({currentStep:s+1,responseMessages:l,usage:o,stepType:r,previousStepText:er,hasLeadingWhitespace:ed,messageId:"continue"===r?R:I()})}}})))}C=s,await i({currentStep:0,responseMessages:[],usage:{promptTokens:0,completionTokens:0,totalTokens:0},previousStepText:"",stepType:"initial",hasLeadingWhitespace:!1,messageId:I()})}}).catch(e=>{eu.addStream(new ReadableStream({start(t){t.enqueue({type:"error",error:e}),t.close()}})),eu.closeStream()})}get warnings(){return this.warningsPromise.value}get usage(){return this.usagePromise.value}get finishReason(){return this.finishReasonPromise.value}get experimental_providerMetadata(){return this.providerMetadataPromise.value}get providerMetadata(){return this.providerMetadataPromise.value}get text(){return this.textPromise.value}get reasoning(){return this.reasoningPromise.value}get reasoningDetails(){return this.reasoningDetailsPromise.value}get sources(){return this.sourcesPromise.value}get files(){return this.filesPromise.value}get toolCalls(){return this.toolCallsPromise.value}get toolResults(){return this.toolResultsPromise.value}get request(){return this.requestPromise.value}get response(){return this.responsePromise.value}get steps(){return this.stepsPromise.value}teeStream(){let[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return eL(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){"text-delta"===e.type&&t.enqueue(e.textDelta)}})))}get fullStream(){return eL(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await tC({stream:this.fullStream,onError:null==e?void 0:e.onError})}catch(a){null==(t=null==e?void 0:e.onError)||t.call(e,a)}}get experimental_partialOutputStream(){if(null==this.output)throw new e2;return eL(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){null!=e&&t.enqueue(e)}})))}toDataStreamInternal({getErrorMessage:e=()=>"An error occurred.",sendUsage:t=!0,sendReasoning:a=!1,sendSources:r=!1,experimental_sendFinish:s=!0}){return this.fullStream.pipeThrough(new TransformStream({transform:async(o,n)=>{let i=o.type;switch(i){case"text-delta":n.enqueue((0,b.H4)("text",o.textDelta));break;case"reasoning":a&&n.enqueue((0,b.H4)("reasoning",o.textDelta));break;case"redacted-reasoning":a&&n.enqueue((0,b.H4)("redacted_reasoning",{data:o.data}));break;case"reasoning-signature":a&&n.enqueue((0,b.H4)("reasoning_signature",{signature:o.signature}));break;case"file":n.enqueue((0,b.H4)("file",{mimeType:o.mimeType,data:o.base64}));break;case"source":r&&n.enqueue((0,b.H4)("source",o.source));break;case"tool-call-streaming-start":n.enqueue((0,b.H4)("tool_call_streaming_start",{toolCallId:o.toolCallId,toolName:o.toolName}));break;case"tool-call-delta":n.enqueue((0,b.H4)("tool_call_delta",{toolCallId:o.toolCallId,argsTextDelta:o.argsTextDelta}));break;case"tool-call":n.enqueue((0,b.H4)("tool_call",{toolCallId:o.toolCallId,toolName:o.toolName,args:o.args}));break;case"tool-result":n.enqueue((0,b.H4)("tool_result",{toolCallId:o.toolCallId,result:o.result}));break;case"error":n.enqueue((0,b.H4)("error",e(o.error)));break;case"step-start":n.enqueue((0,b.H4)("start_step",{messageId:o.messageId}));break;case"step-finish":n.enqueue((0,b.H4)("finish_step",{finishReason:o.finishReason,usage:t?{promptTokens:o.usage.promptTokens,completionTokens:o.usage.completionTokens}:void 0,isContinued:o.isContinued}));break;case"finish":s&&n.enqueue((0,b.H4)("finish_message",{finishReason:o.finishReason,usage:t?{promptTokens:o.usage.promptTokens,completionTokens:o.usage.completionTokens}:void 0}));break;default:throw Error(`Unknown chunk type: ${i}`)}}}))}pipeDataStreamToResponse(e,{status:t,statusText:a,headers:r,data:s,getErrorMessage:o,sendUsage:n,sendReasoning:i,sendSources:l,experimental_sendFinish:u}={}){_({response:e,status:t,statusText:a,headers:k(r,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"}),stream:this.toDataStream({data:s,getErrorMessage:o,sendUsage:n,sendReasoning:i,sendSources:l,experimental_sendFinish:u})})}pipeTextStreamToResponse(e,t){_({response:e,status:null==t?void 0:t.status,statusText:null==t?void 0:t.statusText,headers:k(null==t?void 0:t.headers,{contentType:"text/plain; charset=utf-8"}),stream:this.textStream.pipeThrough(new TextEncoderStream)})}toDataStream(e){let t=this.toDataStreamInternal({getErrorMessage:null==e?void 0:e.getErrorMessage,sendUsage:null==e?void 0:e.sendUsage,sendReasoning:null==e?void 0:e.sendReasoning,sendSources:null==e?void 0:e.sendSources,experimental_sendFinish:null==e?void 0:e.experimental_sendFinish}).pipeThrough(new TextEncoderStream);return(null==e?void 0:e.data)?tq(null==e?void 0:e.data.stream,t):t}mergeIntoDataStream(e,t){e.merge(this.toDataStreamInternal({getErrorMessage:e.onError,sendUsage:null==t?void 0:t.sendUsage,sendReasoning:null==t?void 0:t.sendReasoning,sendSources:null==t?void 0:t.sendSources,experimental_sendFinish:null==t?void 0:t.experimental_sendFinish}))}toDataStreamResponse({headers:e,status:t,statusText:a,data:r,getErrorMessage:s,sendUsage:o,sendReasoning:n,sendSources:i,experimental_sendFinish:l}={}){return new Response(this.toDataStream({data:r,getErrorMessage:s,sendUsage:o,sendReasoning:n,sendSources:i,experimental_sendFinish:l}),{status:t,statusText:a,headers:I(e,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"})})}toTextStreamResponse(e){var t;return new Response(this.textStream.pipeThrough(new TextEncoderStream),{status:null!=(t=null==e?void 0:e.status)?t:200,headers:I(null==e?void 0:e.headers,{contentType:"text/plain; charset=utf-8"})})}};f.bD,f.bD;Symbol.for("vercel.ai.error.AI_NoSuchProviderError");f.eM;var tE=x.Ik({name:x.Yj(),version:x.Yj()}).passthrough(),tA=x.Ik({_meta:x.lq(x.Ik({}).passthrough())}).passthrough(),tU=x.Ik({method:x.Yj(),params:x.lq(tA)}),t$=x.Ik({experimental:x.lq(x.Ik({}).passthrough()),logging:x.lq(x.Ik({}).passthrough()),prompts:x.lq(x.Ik({listChanged:x.lq(x.zM())}).passthrough()),resources:x.lq(x.Ik({subscribe:x.lq(x.zM()),listChanged:x.lq(x.zM())}).passthrough()),tools:x.lq(x.Ik({listChanged:x.lq(x.zM())}).passthrough())}).passthrough();tA.extend({protocolVersion:x.Yj(),capabilities:t$,serverInfo:tE,instructions:x.lq(x.Yj())});var tY=tA.extend({nextCursor:x.lq(x.Yj())}),tJ=x.Ik({name:x.Yj(),description:x.lq(x.Yj()),inputSchema:x.Ik({type:x.eu("object"),properties:x.lq(x.Ik({}).passthrough())}).passthrough()}).passthrough();tY.extend({tools:x.YO(tJ)});var tK=x.Ik({type:x.eu("text"),text:x.Yj()}).passthrough(),tF=x.Ik({type:x.eu("image"),data:x.Yj().base64(),mimeType:x.Yj()}).passthrough(),tL=x.Ik({uri:x.Yj(),mimeType:x.lq(x.Yj())}).passthrough(),tZ=tL.extend({text:x.Yj()}),tH=tL.extend({blob:x.Yj().base64()}),tV=x.Ik({type:x.eu("resource"),resource:x.KC([tZ,tH])}).passthrough();tA.extend({content:x.YO(x.KC([tK,tF,tV])),isError:x.zM().default(!1).optional()}).or(tA.extend({toolResult:x.L5()}));var tz=x.Ik({jsonrpc:x.eu("2.0"),id:x.KC([x.Yj(),x.ai().int()])}).merge(tU).strict(),tG=x.Ik({jsonrpc:x.eu("2.0"),id:x.KC([x.Yj(),x.ai().int()]),result:tA}).strict(),tW=x.Ik({jsonrpc:x.eu("2.0"),id:x.KC([x.Yj(),x.ai().int()]),error:x.Ik({code:x.ai().int(),message:x.Yj(),data:x.lq(x.L5())})}).strict(),tB=x.Ik({jsonrpc:x.eu("2.0")}).merge(x.Ik({method:x.Yj(),params:x.lq(tA)})).strict();function tX(e={}){let t=new TextEncoder,a="";return new TransformStream({async start(){e.onStart&&await e.onStart()},async transform(r,s){s.enqueue(t.encode(r)),a+=r,e.onToken&&await e.onToken(r),e.onText&&"string"==typeof r&&await e.onText(r)},async flush(){e.onCompletion&&await e.onCompletion(a),e.onFinal&&await e.onFinal(a)}})}function tQ(e,t){return e.pipeThrough(new TransformStream({transform:async(e,t)=>{var a;if("string"==typeof e)return void t.enqueue(e);if("event"in e){"on_chat_model_stream"===e.event&&t2(null==(a=e.data)?void 0:a.chunk,t);return}t2(e,t)}})).pipeThrough(tX(t)).pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform:async(e,t)=>{t.enqueue((0,b.H4)("text",e))}}))}function t0(e,t){return tQ(e,t).pipeThrough(new TextEncoderStream)}function t1(e,t){var a;let r=tQ(e,null==t?void 0:t.callbacks).pipeThrough(new TextEncoderStream),s=null==t?void 0:t.data,o=null==t?void 0:t.init;return new Response(s?tq(s.stream,r):r,{status:null!=(a=null==o?void 0:o.status)?a:200,statusText:null==o?void 0:o.statusText,headers:I(null==o?void 0:o.headers,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"})})}function t4(e,t){t.dataStream.merge(tQ(e,t.callbacks))}function t2(e,t){if("string"==typeof e.content)t.enqueue(e.content);else for(let a of e.content)"text"===a.type&&t.enqueue(a.text)}function t8(e,t){let a,r=(a=!0,e=>(a&&(e=e.trimStart())&&(a=!1),e));return(0,v.NR)(e[Symbol.asyncIterator]()).pipeThrough(new TransformStream({async transform(e,t){t.enqueue(r(e.delta))}})).pipeThrough(tX(t)).pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform:async(e,t)=>{t.enqueue((0,b.H4)("text",e))}}))}function t6(e,t){return t8(e,t).pipeThrough(new TextEncoderStream)}function t7(e,t={}){var a;let{init:r,data:s,callbacks:o}=t,n=t8(e,o).pipeThrough(new TextEncoderStream);return new Response(s?tq(s.stream,n):n,{status:null!=(a=null==r?void 0:r.status)?a:200,statusText:null==r?void 0:r.statusText,headers:I(null==r?void 0:r.headers,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"})})}function t3(e,t){t.dataStream.merge(t8(e,t.callbacks))}x.KC([tz,tB,tG,tW]),S({},{mergeIntoDataStream:()=>t4,toDataStream:()=>t0,toDataStreamResponse:()=>t1}),S({},{mergeIntoDataStream:()=>t3,toDataStream:()=>t6,toDataStreamResponse:()=>t7})}}]);