ai 5.0.0-beta.23 → 5.0.0-beta.25

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.
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var nt=Object.defineProperty;var Aa=Object.getOwnPropertyDescriptor;var ba=Object.getOwnPropertyNames;var Ua=Object.prototype.hasOwnProperty;var Ra=(t,e)=>{for(var r in e)nt(t,r,{get:e[r],enumerable:!0})},Pa=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ba(e))!Ua.call(t,s)&&s!==r&&nt(t,s,{get:()=>e[s],enumerable:!(o=Aa(e,s))||o.enumerable});return t};var wa=t=>Pa(nt({},"__esModule",{value:!0}),t);var po={};Ra(po,{formatAttachedFiles:()=>ya,getMediaType:()=>ma,isStdinAvailable:()=>ua,main:()=>Ia,parseArgs:()=>fa,readFileContent:()=>ca,resolveModel:()=>Sa,showHelp:()=>ga,showVersion:()=>Ta});module.exports=wa(po);var sa=require("@ai-sdk/provider"),ia=require("@ai-sdk/provider-utils");var st=require("@ai-sdk/provider"),$t="AI_NoOutputSpecifiedError",Bt=`vercel.ai.error.${$t}`,Ca=Symbol.for(Bt),_a,Fe=class extends st.AISDKError{constructor({message:r="No output specified."}={}){super({name:$t,message:r});this[_a]=!0}static isInstance(r){return st.AISDKError.hasMarker(r,Bt)}};_a=Ca;function z(t,e){let r=new Headers(t!=null?t:{});for(let[o,s]of Object.entries(e))r.has(o)||r.set(o,s);return r}function Jt({status:t,statusText:e,headers:r,textStream:o}){return new Response(o.pipeThrough(new TextEncoderStream),{status:t!=null?t:200,statusText:e,headers:z(r,{"content-type":"text/plain; charset=utf-8"})})}function qe({response:t,status:e,statusText:r,headers:o,stream:s}){t.writeHead(e!=null?e:200,r,o);let a=s.getReader();(async()=>{try{for(;;){let{done:n,value:p}=await a.read();if(n)break;t.write(p)}}catch(n){throw n}finally{t.end()}})()}function Yt({response:t,status:e,statusText:r,headers:o,textStream:s}){qe({response:t,status:e,statusText:r,headers:Object.fromEntries(z(o,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:s.pipeThrough(new TextEncoderStream)})}var ne=class extends TransformStream{constructor(){super({transform(e,r){r.enqueue(`data: ${JSON.stringify(e)}
2
+ "use strict";var it=Object.defineProperty;var Ua=Object.getOwnPropertyDescriptor;var Ra=Object.getOwnPropertyNames;var Pa=Object.prototype.hasOwnProperty;var wa=(t,e)=>{for(var r in e)it(t,r,{get:e[r],enumerable:!0})},Ca=(t,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ra(e))!Pa.call(t,s)&&s!==r&&it(t,s,{get:()=>e[s],enumerable:!(a=Ua(e,s))||a.enumerable});return t};var _a=t=>Ca(it({},"__esModule",{value:!0}),t);var mo={};wa(mo,{formatAttachedFiles:()=>xa,getMediaType:()=>fa,isStdinAvailable:()=>ca,main:()=>Ma,parseArgs:()=>Ta,readFileContent:()=>ga,resolveModel:()=>Ia,showHelp:()=>Sa,showVersion:()=>ya});module.exports=_a(mo);var da=require("@ai-sdk/provider"),Qe=require("@ai-sdk/provider-utils");var lt=require("@ai-sdk/provider"),Jt="AI_NoOutputSpecifiedError",Yt=`vercel.ai.error.${Jt}`,La=Symbol.for(Yt),ka,Ve=class extends lt.AISDKError{constructor({message:r="No output specified."}={}){super({name:Jt,message:r});this[ka]=!0}static isInstance(r){return lt.AISDKError.hasMarker(r,Yt)}};ka=La;function z(t,e){let r=new Headers(t!=null?t:{});for(let[a,s]of Object.entries(e))r.has(a)||r.set(a,s);return r}function Wt({status:t,statusText:e,headers:r,textStream:a}){return new Response(a.pipeThrough(new TextEncoderStream),{status:t!=null?t:200,statusText:e,headers:z(r,{"content-type":"text/plain; charset=utf-8"})})}function je({response:t,status:e,statusText:r,headers:a,stream:s}){t.writeHead(e!=null?e:200,r,a);let o=s.getReader();(async()=>{try{for(;;){let{done:n,value:p}=await o.read();if(n)break;t.write(p)}}catch(n){throw n}finally{t.end()}})()}function zt({response:t,status:e,statusText:r,headers:a,textStream:s}){je({response:t,status:e,statusText:r,headers:Object.fromEntries(z(a,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:s.pipeThrough(new TextEncoderStream)})}var se=class extends TransformStream{constructor(){super({transform(e,r){r.enqueue(`data: ${JSON.stringify(e)}
3
3
 
4
4
  `)},flush(e){e.enqueue(`data: [DONE]
5
5
 
6
- `)}})}};var Ve={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Wt({status:t,statusText:e,headers:r,stream:o,consumeSseStream:s}){let a=o.pipeThrough(new ne);if(s){let[i,n]=a.tee();a=i,s({stream:n})}return new Response(a.pipeThrough(new TextEncoderStream),{status:t,statusText:e,headers:z(r,Ve)})}function zt({originalMessages:t,responseMessageId:e}){if(t==null)return;let r=t[t.length-1];return(r==null?void 0:r.role)==="assistant"?r.id:typeof e=="function"?e():e}var pt=require("@ai-sdk/provider-utils");var d=require("zod/v4");var Ie=require("zod/v4");var G=require("zod/v4"),Q=G.z.lazy(()=>G.z.union([G.z.null(),G.z.string(),G.z.number(),G.z.boolean(),G.z.record(G.z.string(),Q),G.z.array(Q)]));var O=Ie.z.record(Ie.z.string(),Ie.z.record(Ie.z.string(),Q));var Co=d.z.union([d.z.strictObject({type:d.z.literal("text-start"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("text-delta"),id:d.z.string(),delta:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("text-end"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("error"),errorText:d.z.string()}),d.z.strictObject({type:d.z.literal("tool-input-start"),toolCallId:d.z.string(),toolName:d.z.string(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("tool-input-delta"),toolCallId:d.z.string(),inputTextDelta:d.z.string()}),d.z.strictObject({type:d.z.literal("tool-input-available"),toolCallId:d.z.string(),toolName:d.z.string(),input:d.z.unknown(),providerExecuted:d.z.boolean().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("tool-output-available"),toolCallId:d.z.string(),output:d.z.unknown(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("tool-output-error"),toolCallId:d.z.string(),errorText:d.z.string(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("reasoning"),text:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-start"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-delta"),id:d.z.string(),delta:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-end"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-part-finish")}),d.z.strictObject({type:d.z.literal("source-url"),sourceId:d.z.string(),url:d.z.string(),title:d.z.string().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("source-document"),sourceId:d.z.string(),mediaType:d.z.string(),title:d.z.string(),filename:d.z.string().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("file"),url:d.z.string(),mediaType:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.string().startsWith("data-"),id:d.z.string().optional(),data:d.z.unknown(),transient:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("start-step")}),d.z.strictObject({type:d.z.literal("finish-step")}),d.z.strictObject({type:d.z.literal("start"),messageId:d.z.string().optional(),messageMetadata:d.z.unknown().optional()}),d.z.strictObject({type:d.z.literal("finish"),messageMetadata:d.z.unknown().optional()}),d.z.strictObject({type:d.z.literal("message-metadata"),messageMetadata:d.z.unknown()})]);function Kt(t){return t.type.startsWith("data-")}function it(t,e){if(t===void 0&&e===void 0)return;if(t===void 0)return e;if(e===void 0)return t;let r={...t};for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o)){let s=e[o];if(s===void 0)continue;let a=o in t?t[o]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),n=a!=null&&typeof a=="object"&&!Array.isArray(a)&&!(a instanceof Date)&&!(a instanceof RegExp);i&&n?r[o]=it(a,s):r[o]=s}return r}var lt=require("@ai-sdk/provider-utils");function Ht(t){let e=["ROOT"],r=-1,o=null;function s(p,l,u){switch(p){case'"':{r=l,e.pop(),e.push(u),e.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=l,o=l,e.pop(),e.push(u),e.push("INSIDE_LITERAL");break}case"-":{e.pop(),e.push(u),e.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=l,e.pop(),e.push(u),e.push("INSIDE_NUMBER");break}case"{":{r=l,e.pop(),e.push(u),e.push("INSIDE_OBJECT_START");break}case"[":{r=l,e.pop(),e.push(u),e.push("INSIDE_ARRAY_START");break}}}function a(p,l){switch(p){case",":{e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=l,e.pop();break}}}function i(p,l){switch(p){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=l,e.pop();break}}}for(let p=0;p<t.length;p++){let l=t[p];switch(e[e.length-1]){case"ROOT":s(l,p,"FINISH");break;case"INSIDE_OBJECT_START":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}case"}":{r=p,e.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(l){case":":{e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(l,p,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{a(l,p);break}case"INSIDE_STRING":{switch(l){case'"':{e.pop(),r=p;break}case"\\":{e.push("INSIDE_STRING_ESCAPE");break}default:r=p}break}case"INSIDE_ARRAY_START":{switch(l){case"]":{r=p,e.pop();break}default:{r=p,s(l,p,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(l){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=p,e.pop();break}default:{r=p;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(l,p,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{e.pop(),r=p;break}case"INSIDE_NUMBER":{switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=p;break}case"e":case"E":case"-":case".":break;case",":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(l,p);break}case"}":{e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(l,p);break}case"]":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p);break}default:{e.pop();break}}break}case"INSIDE_LITERAL":{let M=t.substring(o,p+1);!"false".startsWith(M)&&!"true".startsWith(M)&&!"null".startsWith(M)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?a(l,p):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p)):r=p;break}}}let n=t.slice(0,r+1);for(let p=e.length-1;p>=0;p--)switch(e[p]){case"INSIDE_STRING":{n+='"';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":{n+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{n+="]";break}case"INSIDE_LITERAL":{let u=t.substring(o,t.length);"true".startsWith(u)?n+="true".slice(u.length):"false".startsWith(u)?n+="false".slice(u.length):"null".startsWith(u)&&(n+="null".slice(u.length))}}return n}async function Zt(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=await(0,lt.safeParseJSON)({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=await(0,lt.safeParseJSON)({text:Ht(t)}),e.success?{value:e.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function xe(t){return t.type.startsWith("tool-")}function dt(t){return t.type.split("-").slice(1).join("-")}function Qt({lastMessage:t,messageId:e}){return{message:(t==null?void 0:t.role)==="assistant"?t:{id:e,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Xt({stream:t,onToolCall:e,messageMetadataSchema:r,dataPartSchemas:o,runUpdateMessageJob:s,onError:a,onData:i}){return t.pipeThrough(new TransformStream({async transform(n,p){await s(async({state:l,write:u})=>{var I,b,_,y;function M(m){var F;let x=l.message.parts.find(q=>xe(q)&&q.toolCallId===m.toolCallId),S=m,E=x;x!=null?(x.state=m.state,E.input=S.input,E.output=S.output,E.errorText=S.errorText,E.providerExecuted=(F=S.providerExecuted)!=null?F:x.providerExecuted,S.providerMetadata!=null&&x.state==="input-available"&&(x.callProviderMetadata=S.providerMetadata)):l.message.parts.push({type:`tool-${m.toolName}`,toolCallId:m.toolCallId,state:m.state,input:S.input,output:S.output,errorText:S.errorText,providerExecuted:S.providerExecuted,...S.providerMetadata!=null?{callProviderMetadata:S.providerMetadata}:{}})}async function f(m){if(m!=null){let x=l.message.metadata!=null?it(l.message.metadata,m):m;r!=null&&await(0,pt.validateTypes)({value:x,schema:r}),l.message.metadata=x}}switch(n.type){case"text-start":{let m={type:"text",text:"",providerMetadata:n.providerMetadata,state:"streaming"};l.activeTextParts[n.id]=m,l.message.parts.push(m),u();break}case"text-delta":{let m=l.activeTextParts[n.id];m.text+=n.delta,m.providerMetadata=(I=n.providerMetadata)!=null?I:m.providerMetadata,u();break}case"text-end":{let m=l.activeTextParts[n.id];m.state="done",m.providerMetadata=(b=n.providerMetadata)!=null?b:m.providerMetadata,delete l.activeTextParts[n.id],u();break}case"reasoning-start":{let m={type:"reasoning",text:"",providerMetadata:n.providerMetadata,state:"streaming"};l.activeReasoningParts[n.id]=m,l.message.parts.push(m),u();break}case"reasoning-delta":{let m=l.activeReasoningParts[n.id];m.text+=n.delta,m.providerMetadata=(_=n.providerMetadata)!=null?_:m.providerMetadata,u();break}case"reasoning-end":{let m=l.activeReasoningParts[n.id];m.providerMetadata=(y=n.providerMetadata)!=null?y:m.providerMetadata,m.state="done",delete l.activeReasoningParts[n.id],u();break}case"file":{l.message.parts.push({type:"file",mediaType:n.mediaType,url:n.url}),u();break}case"source-url":{l.message.parts.push({type:"source-url",sourceId:n.sourceId,url:n.url,title:n.title,providerMetadata:n.providerMetadata}),u();break}case"source-document":{l.message.parts.push({type:"source-document",sourceId:n.sourceId,mediaType:n.mediaType,title:n.title,filename:n.filename,providerMetadata:n.providerMetadata}),u();break}case"tool-input-start":{let m=l.message.parts.filter(xe);l.partialToolCalls[n.toolCallId]={text:"",toolName:n.toolName,index:m.length},M({toolCallId:n.toolCallId,toolName:n.toolName,state:"input-streaming",input:void 0,providerExecuted:n.providerExecuted}),u();break}case"tool-input-delta":{let m=l.partialToolCalls[n.toolCallId];m.text+=n.inputTextDelta;let{value:x}=await Zt(m.text);M({toolCallId:n.toolCallId,toolName:m.toolName,state:"input-streaming",input:x}),u();break}case"tool-input-available":{if(M({toolCallId:n.toolCallId,toolName:n.toolName,state:"input-available",input:n.input,providerExecuted:n.providerExecuted,providerMetadata:n.providerMetadata}),u(),e&&!n.providerExecuted){let m=await e({toolCall:n});m!=null&&(M({toolCallId:n.toolCallId,toolName:n.toolName,state:"output-available",input:n.input,output:m}),u())}break}case"tool-output-available":{let m=l.message.parts.filter(xe);if(m==null)throw new Error("tool_result must be preceded by a tool_call");let x=m.findIndex(E=>E.toolCallId===n.toolCallId);if(x===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let S=dt(m[x]);M({toolCallId:n.toolCallId,toolName:S,state:"output-available",input:m[x].input,output:n.output,providerExecuted:n.providerExecuted}),u();break}case"tool-output-error":{let m=l.message.parts.filter(xe);if(m==null)throw new Error("tool_result must be preceded by a tool_call");let x=m.findIndex(E=>E.toolCallId===n.toolCallId);if(x===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let S=dt(m[x]);M({toolCallId:n.toolCallId,toolName:S,state:"output-error",input:m[x].input,errorText:n.errorText,providerExecuted:n.providerExecuted}),u();break}case"start-step":{l.message.parts.push({type:"step-start"});break}case"finish-step":{l.activeTextParts={},l.activeReasoningParts={};break}case"start":{n.messageId!=null&&(l.message.id=n.messageId),await f(n.messageMetadata),(n.messageId!=null||n.messageMetadata!=null)&&u();break}case"finish":{await f(n.messageMetadata),n.messageMetadata!=null&&u();break}case"message-metadata":{await f(n.messageMetadata),n.messageMetadata!=null&&u();break}case"error":{a==null||a(new Error(n.errorText));break}default:if(Kt(n)){(o==null?void 0:o[n.type])!=null&&await(0,pt.validateTypes)({value:n.data,schema:o[n.type]});let m=n;if(m.transient){i==null||i(m);break}let x=m.id!=null?l.message.parts.find(S=>m.type===S.type&&m.id===S.id):void 0;x!=null?x.data=m.data:l.message.parts.push(m),i==null||i(m),u()}}p.enqueue(n)})}}))}function er({messageId:t,originalMessages:e=[],onFinish:r,onError:o,stream:s}){let a=e==null?void 0:e[e.length-1];(a==null?void 0:a.role)!=="assistant"?a=void 0:t=a.id;let i=s.pipeThrough(new TransformStream({transform(l,u){if(l.type==="start"){let M=l;M.messageId==null&&t!=null&&(M.messageId=t)}u.enqueue(l)}}));if(r==null)return i;let n=Qt({lastMessage:a?structuredClone(a):void 0,messageId:t!=null?t:""});return Xt({stream:i,runUpdateMessageJob:async l=>{await l({state:n,write:()=>{}})},onError:o}).pipeThrough(new TransformStream({transform(l,u){u.enqueue(l)},flush(){let l=n.message.id===(a==null?void 0:a.id);r({isContinuation:l,responseMessage:n.message,messages:[...l?e.slice(0,-1):e,n.message]})}}))}function tr({response:t,status:e,statusText:r,headers:o,stream:s,consumeSseStream:a}){let i=s.pipeThrough(new ne);if(a){let[n,p]=i.tee();i=n,a({stream:p})}qe({response:t,status:e,statusText:r,headers:Object.fromEntries(z(o,Ve).entries()),stream:i.pipeThrough(new TextEncoderStream)})}function ut(t){return t===void 0?[]:Array.isArray(t)?t:[t]}function je(t){let e=t.pipeThrough(new TransformStream);return e[Symbol.asyncIterator]=()=>{let r=e.getReader();return{async next(){let{done:o,value:s}=await r.read();return o?{done:!0,value:void 0}:{done:!1,value:s}}}},e}async function rr({stream:t,onError:e}){let r=t.getReader();try{for(;;){let{done:o}=await r.read();if(o)break}}catch(o){e==null||e(o)}finally{r.releaseLock()}}function mt(){let t,e;return{promise:new Promise((o,s)=>{t=o,e=s}),resolve:t,reject:e}}function ar(){let t=[],e=null,r=!1,o=mt(),s=async()=>{if(r&&t.length===0){e==null||e.close();return}if(t.length===0)return o=mt(),await o.promise,s();try{let{value:a,done:i}=await t[0].read();i?(t.shift(),t.length>0?await s():r&&(e==null||e.close())):e==null||e.enqueue(a)}catch(a){e==null||e.error(a),t.shift(),r&&t.length===0&&(e==null||e.close())}};return{stream:new ReadableStream({start(a){e=a},pull:s,async cancel(){for(let a of t)await a.cancel();t=[],r=!0}}),addStream:a=>{if(r)throw new Error("Cannot add inner stream: outer stream is closed");t.push(a.getReader()),o.resolve()},close:()=>{r=!0,o.resolve(),t.length===0&&(e==null||e.close())},terminate:()=>{r=!0,o.resolve(),t.forEach(a=>a.cancel()),t=[],e==null||e.close()}}}var X=class{constructor(){this.status={type:"pending"};this._resolve=void 0;this._reject=void 0}get promise(){return this._promise?this._promise:(this._promise=new Promise((e,r)=>{this.status.type==="resolved"?e(this.status.value):this.status.type==="rejected"&&r(this.status.error),this._resolve=e,this._reject=r}),this._promise)}resolve(e){var r;this.status={type:"resolved",value:e},this._promise&&((r=this._resolve)==null||r.call(this,e))}reject(e){var r;this.status={type:"rejected",error:e},this._promise&&((r=this._reject)==null||r.call(this,e))}};function or(){var t,e;return(e=(t=globalThis==null?void 0:globalThis.performance)==null?void 0:t.now())!=null?e:Date.now()}var ct=require("@ai-sdk/provider"),nr="AI_InvalidArgumentError",sr=`vercel.ai.error.${nr}`,La=Symbol.for(sr),ka,C=class extends ct.AISDKError{constructor({parameter:r,value:o,message:s}){super({name:nr,message:`Invalid argument for parameter ${r}: ${s}`});this[ka]=!0;this.parameter=r,this.value=o}static isInstance(r){return ct.AISDKError.hasMarker(r,sr)}};ka=La;var dr=require("@ai-sdk/provider"),se=require("@ai-sdk/provider-utils");var ft=require("@ai-sdk/provider"),ir="AI_RetryError",lr=`vercel.ai.error.${ir}`,Na=Symbol.for(lr),Da,Me=class extends ft.AISDKError{constructor({message:r,reason:o,errors:s}){super({name:ir,message:r});this[Da]=!0;this.reason=o,this.errors=s,this.lastError=s[s.length-1]}static isInstance(r){return ft.AISDKError.hasMarker(r,lr)}};Da=Na;function Fa(t,e){let r=t.responseHeaders;if(!r)return e;let o,s=r["retry-after-ms"];if(s){let i=parseFloat(s);Number.isNaN(i)||(o=i)}let a=r["retry-after"];if(a&&o===void 0){let i=parseFloat(a);Number.isNaN(i)?o=Date.parse(a)-Date.now():o=i*1e3}return o!==void 0&&0<=o&&o<60*1e3?o:e}var pr=({maxRetries:t=2,initialDelayInMs:e=2e3,backoffFactor:r=2}={})=>async o=>ur(o,{maxRetries:t,delayInMs:e,backoffFactor:r});async function ur(t,{maxRetries:e,delayInMs:r,backoffFactor:o},s=[]){try{return await t()}catch(a){if((0,se.isAbortError)(a)||e===0)throw a;let i=(0,se.getErrorMessage)(a),n=[...s,a],p=n.length;if(p>e)throw new Me({message:`Failed after ${p} attempts. Last error: ${i}`,reason:"maxRetriesExceeded",errors:n});if(a instanceof Error&&dr.APICallError.isInstance(a)&&a.isRetryable===!0&&p<=e){let l=Fa(a,r);return await(0,se.delay)(l),ur(t,{maxRetries:e,delayInMs:o*r,backoffFactor:o},n)}throw p===1?a:new Me({message:`Failed after ${p} attempts with non-retryable error: '${i}'`,reason:"errorNotRetryable",errors:n})}}function mr({maxRetries:t}){if(t!=null){if(!Number.isInteger(t))throw new C({parameter:"maxRetries",value:t,message:"maxRetries must be an integer"});if(t<0)throw new C({parameter:"maxRetries",value:t,message:"maxRetries must be >= 0"})}let e=t!=null?t:2;return{maxRetries:e,retry:pr({maxRetries:e})}}var hr=require("@ai-sdk/provider-utils");var cr=require("@ai-sdk/provider-utils"),fr=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}];var qa=t=>{let e=typeof t=="string"?(0,cr.convertBase64ToUint8Array)(t):t,r=(e[6]&127)<<21|(e[7]&127)<<14|(e[8]&127)<<7|e[9]&127;return e.slice(r+10)};function Va(t){return typeof t=="string"&&t.startsWith("SUQz")||typeof t!="string"&&t.length>10&&t[0]===73&&t[1]===68&&t[2]===51?qa(t):t}function gr({data:t,signatures:e}){let r=Va(t);for(let o of e)if(typeof r=="string"?r.startsWith(o.base64Prefix):r.length>=o.bytesPrefix.length&&o.bytesPrefix.every((s,a)=>r[a]===s))return o.mediaType}var gt=require("@ai-sdk/provider"),Tr="AI_DownloadError",Sr=`vercel.ai.error.${Tr}`,ja=Symbol.for(Sr),Ga,ie=class extends gt.AISDKError{constructor({url:r,statusCode:o,statusText:s,cause:a,message:i=a==null?`Failed to download ${r}: ${o} ${s}`:`Failed to download ${r}: ${a}`}){super({name:Tr,message:i,cause:a});this[Ga]=!0;this.url=r,this.statusCode=o,this.statusText=s}static isInstance(r){return gt.AISDKError.hasMarker(r,Sr)}};Ga=ja;async function yr({url:t}){var r;let e=t.toString();try{let o=await fetch(e);if(!o.ok)throw new ie({url:e,statusCode:o.status,statusText:o.statusText});return{data:new Uint8Array(await o.arrayBuffer()),mediaType:(r=o.headers.get("content-type"))!=null?r:void 0}}catch(o){throw ie.isInstance(o)?o:new ie({url:e,cause:o})}}var xr=require("@ai-sdk/provider"),Ge=require("@ai-sdk/provider-utils"),le=require("zod/v4");function Ir(t){try{let[e,r]=t.split(",");return{mediaType:e.split(";")[0].split(":")[1],base64Content:r}}catch(e){return{mediaType:void 0,base64Content:void 0}}}var Tt=le.z.union([le.z.string(),le.z.instanceof(Uint8Array),le.z.instanceof(ArrayBuffer),le.z.custom(t=>{var e,r;return(r=(e=globalThis.Buffer)==null?void 0:e.isBuffer(t))!=null?r:!1},{message:"Must be a Buffer"})]);function St(t){if(t instanceof Uint8Array)return{data:t,mediaType:void 0};if(t instanceof ArrayBuffer)return{data:new Uint8Array(t),mediaType:void 0};if(typeof t=="string")try{t=new URL(t)}catch(e){}if(t instanceof URL&&t.protocol==="data:"){let{mediaType:e,base64Content:r}=Ir(t.toString());if(e==null||r==null)throw new xr.AISDKError({name:"InvalidDataContentError",message:`Invalid data URL format in content ${t.toString()}`});return{data:r,mediaType:e}}return{data:t,mediaType:void 0}}function Mr(t){return typeof t=="string"?t:t instanceof ArrayBuffer?(0,Ge.convertUint8ArrayToBase64)(new Uint8Array(t)):(0,Ge.convertUint8ArrayToBase64)(t)}var yt=require("@ai-sdk/provider"),vr="AI_InvalidMessageRoleError",Or=`vercel.ai.error.${vr}`,$a=Symbol.for(Or),Ba,$e=class extends yt.AISDKError{constructor({role:r,message:o=`Invalid message role: '${r}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:vr,message:o});this[Ba]=!0;this.role=r}static isInstance(r){return yt.AISDKError.hasMarker(r,Or)}};Ba=$a;async function Er({prompt:t,supportedUrls:e,downloadImplementation:r=yr}){let o=await Ya(t.messages,r,e);return[...t.system!=null?[{role:"system",content:t.system}]:[],...t.messages.map(s=>Ja({message:s,downloadedAssets:o}))]}function Ja({message:t,downloadedAssets:e}){let r=t.role;switch(r){case"system":return{role:"system",content:t.content,providerOptions:t.providerOptions};case"user":return typeof t.content=="string"?{role:"user",content:[{type:"text",text:t.content}],providerOptions:t.providerOptions}:{role:"user",content:t.content.map(o=>Wa(o,e)).filter(o=>o.type!=="text"||o.text!==""),providerOptions:t.providerOptions};case"assistant":return typeof t.content=="string"?{role:"assistant",content:[{type:"text",text:t.content}],providerOptions:t.providerOptions}:{role:"assistant",content:t.content.filter(o=>o.type!=="text"||o.text!=="").map(o=>{let s=o.providerOptions;switch(o.type){case"file":{let{data:a,mediaType:i}=St(o.data);return{type:"file",data:a,filename:o.filename,mediaType:i!=null?i:o.mediaType,providerOptions:s}}case"reasoning":return{type:"reasoning",text:o.text,providerOptions:s};case"text":return{type:"text",text:o.text,providerOptions:s};case"tool-call":return{type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,providerExecuted:o.providerExecuted,providerOptions:s};case"tool-result":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:s}}}),providerOptions:t.providerOptions};case"tool":return{role:"tool",content:t.content.map(o=>({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:o.providerOptions})),providerOptions:t.providerOptions};default:{let o=r;throw new $e({role:o})}}}async function Ya(t,e,r){let o=t.filter(a=>a.role==="user").map(a=>a.content).filter(a=>Array.isArray(a)).flat().filter(a=>a.type==="image"||a.type==="file").map(a=>{var p;let i=(p=a.mediaType)!=null?p:a.type==="image"?"image/*":void 0,n=a.type==="image"?a.image:a.data;if(typeof n=="string")try{n=new URL(n)}catch(l){}return{mediaType:i,data:n}}).filter(a=>a.data instanceof URL&&a.mediaType!=null&&!(0,hr.isUrlSupported)({url:a.data.toString(),mediaType:a.mediaType,supportedUrls:r})).map(a=>a.data),s=await Promise.all(o.map(async a=>({url:a,data:await e({url:a})})));return Object.fromEntries(s.map(({url:a,data:i})=>[a.toString(),i]))}function Wa(t,e){var p;if(t.type==="text")return{type:"text",text:t.text,providerOptions:t.providerOptions};let r,o=t.type;switch(o){case"image":r=t.image;break;case"file":r=t.data;break;default:throw new Error(`Unsupported part type: ${o}`)}let{data:s,mediaType:a}=St(r),i=a!=null?a:t.mediaType,n=s;if(n instanceof URL){let l=e[n.toString()];l&&(n=l.data,i!=null||(i=l.mediaType))}switch(o){case"image":return(n instanceof Uint8Array||typeof n=="string")&&(i=(p=gr({data:n,signatures:fr}))!=null?p:i),{type:"file",mediaType:i!=null?i:"image/*",filename:void 0,data:n,providerOptions:t.providerOptions};case"file":{if(i==null)throw new Error("Media type is missing for file part");return{type:"file",mediaType:i,filename:t.filename,data:n,providerOptions:t.providerOptions}}}}function Ar({maxOutputTokens:t,temperature:e,topP:r,topK:o,presencePenalty:s,frequencyPenalty:a,seed:i,stopSequences:n}){if(t!=null){if(!Number.isInteger(t))throw new C({parameter:"maxOutputTokens",value:t,message:"maxOutputTokens must be an integer"});if(t<1)throw new C({parameter:"maxOutputTokens",value:t,message:"maxOutputTokens must be >= 1"})}if(e!=null&&typeof e!="number")throw new C({parameter:"temperature",value:e,message:"temperature must be a number"});if(r!=null&&typeof r!="number")throw new C({parameter:"topP",value:r,message:"topP must be a number"});if(o!=null&&typeof o!="number")throw new C({parameter:"topK",value:o,message:"topK must be a number"});if(s!=null&&typeof s!="number")throw new C({parameter:"presencePenalty",value:s,message:"presencePenalty must be a number"});if(a!=null&&typeof a!="number")throw new C({parameter:"frequencyPenalty",value:a,message:"frequencyPenalty must be a number"});if(i!=null&&!Number.isInteger(i))throw new C({parameter:"seed",value:i,message:"seed must be an integer"});return{maxOutputTokens:t,temperature:e,topP:r,topK:o,presencePenalty:s,frequencyPenalty:a,stopSequences:n,seed:i}}var Ur=require("@ai-sdk/provider-utils");function br(t){return t!=null&&Object.keys(t).length>0}function Rr({tools:t,toolChoice:e,activeTools:r}){return br(t)?{tools:(r!=null?Object.entries(t).filter(([s])=>r.includes(s)):Object.entries(t)).map(([s,a])=>{let i=a.type;switch(i){case void 0:case"function":return{type:"function",name:s,description:a.description,inputSchema:(0,Ur.asSchema)(a.inputSchema).jsonSchema};case"provider-defined":return{type:"provider-defined",name:s,id:a.id,args:a.args};default:{let n=i;throw new Error(`Unsupported tool type: ${n}`)}}}),toolChoice:e==null?{type:"auto"}:typeof e=="string"?{type:e}:{type:"tool",toolName:e.toolName}}:{tools:void 0,toolChoice:void 0}}var Dr=require("@ai-sdk/gateway");var D=require("@ai-sdk/provider");var ve=require("@ai-sdk/provider"),Pr="AI_InvalidToolInputError",wr=`vercel.ai.error.${Pr}`,za=Symbol.for(wr),Ka,Oe=class extends ve.AISDKError{constructor({toolInput:r,toolName:o,cause:s,message:a=`Invalid input for tool ${o}: ${(0,ve.getErrorMessage)(s)}`}){super({name:Pr,message:a,cause:s});this[Ka]=!0;this.toolInput=r,this.toolName=o}static isInstance(r){return ve.AISDKError.hasMarker(r,wr)}};Ka=za;var It=require("@ai-sdk/provider"),Cr="AI_NoSuchToolError",_r=`vercel.ai.error.${Cr}`,Ha=Symbol.for(_r),Za,de=class extends It.AISDKError{constructor({toolName:r,availableTools:o=void 0,message:s=`Model tried to call unavailable tool '${r}'. ${o===void 0?"No tools are available.":`Available tools: ${o.join(", ")}.`}`}){super({name:Cr,message:s});this[Za]=!0;this.toolName=r,this.availableTools=o}static isInstance(r){return It.AISDKError.hasMarker(r,_r)}};Za=Ha;var he=require("@ai-sdk/provider"),Lr="AI_ToolCallRepairError",kr=`vercel.ai.error.${Lr}`,Qa=Symbol.for(kr),Xa,Be=class extends he.AISDKError{constructor({cause:r,originalError:o,message:s=`Error repairing tool call: ${(0,he.getErrorMessage)(r)}`}){super({name:Lr,message:s,cause:r});this[Xa]=!0;this.originalError=o}static isInstance(r){return he.AISDKError.hasMarker(r,kr)}};Xa=Qa;var Nr=require("@ai-sdk/provider"),Ee=class extends Nr.AISDKError{constructor(r){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${r.version} for provider "${r.provider}" and model "${r.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=r.version,this.provider=r.provider,this.modelId=r.modelId}};function xt(t){if(typeof t!="string"){if(t.specificationVersion!=="v2")throw new Ee({version:t.specificationVersion,provider:t.provider,modelId:t.modelId});return t}let e=globalThis.AI_SDK_DEFAULT_PROVIDER;return(e!=null?e:Dr.gateway).languageModel(t)}var ee=require("@ai-sdk/provider"),Gr=require("@ai-sdk/provider-utils"),$r=require("zod/v4");var h=require("zod/v4");var g=require("zod/v4");var Mt=g.z.object({type:g.z.literal("text"),text:g.z.string(),providerOptions:O.optional()}),Fr=g.z.object({type:g.z.literal("image"),image:g.z.union([Tt,g.z.instanceof(URL)]),mediaType:g.z.string().optional(),providerOptions:O.optional()}),vt=g.z.object({type:g.z.literal("file"),data:g.z.union([Tt,g.z.instanceof(URL)]),filename:g.z.string().optional(),mediaType:g.z.string(),providerOptions:O.optional()}),qr=g.z.object({type:g.z.literal("reasoning"),text:g.z.string(),providerOptions:O.optional()}),Vr=g.z.object({type:g.z.literal("tool-call"),toolCallId:g.z.string(),toolName:g.z.string(),input:g.z.unknown(),providerOptions:O.optional(),providerExecuted:g.z.boolean().optional()}),eo=g.z.discriminatedUnion("type",[g.z.object({type:g.z.literal("text"),value:g.z.string()}),g.z.object({type:g.z.literal("json"),value:Q}),g.z.object({type:g.z.literal("error-text"),value:g.z.string()}),g.z.object({type:g.z.literal("error-json"),value:Q}),g.z.object({type:g.z.literal("content"),value:g.z.array(g.z.union([g.z.object({type:g.z.literal("text"),text:g.z.string()}),g.z.object({type:g.z.literal("media"),data:g.z.string(),mediaType:g.z.string()})]))})]),Ot=g.z.object({type:g.z.literal("tool-result"),toolCallId:g.z.string(),toolName:g.z.string(),output:eo,providerOptions:O.optional()});var to=h.z.object({role:h.z.literal("system"),content:h.z.string(),providerOptions:O.optional()});var ro=h.z.object({role:h.z.literal("user"),content:h.z.union([h.z.string(),h.z.array(h.z.union([Mt,Fr,vt]))]),providerOptions:O.optional()});var ao=h.z.object({role:h.z.literal("assistant"),content:h.z.union([h.z.string(),h.z.array(h.z.union([Mt,vt,qr,Vr,Ot]))]),providerOptions:O.optional()});var oo=h.z.object({role:h.z.literal("tool"),content:h.z.array(Ot),providerOptions:O.optional()});var jr=h.z.union([to,ro,ao,oo]);async function Br(t){if(t.prompt==null&&t.messages==null)throw new ee.InvalidPromptError({prompt:t,message:"prompt or messages must be defined"});if(t.prompt!=null&&t.messages!=null)throw new ee.InvalidPromptError({prompt:t,message:"prompt and messages cannot be defined at the same time"});if(t.system!=null&&typeof t.system!="string")throw new ee.InvalidPromptError({prompt:t,message:"system must be a string"});let e;if(t.prompt!=null&&typeof t.prompt=="string")e=[{role:"user",content:t.prompt}];else if(t.prompt!=null&&Array.isArray(t.prompt))e=t.prompt;else if(t.messages!=null)e=t.messages;else throw new ee.InvalidPromptError({prompt:t,message:"prompt or messages must be defined"});if(e.length===0)throw new ee.InvalidPromptError({prompt:t,message:"messages must not be empty"});let r=await(0,Gr.safeValidateTypes)({value:e,schema:$r.z.array(jr)});if(!r.success)throw new ee.InvalidPromptError({prompt:t,message:"The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",cause:r.error});return{messages:e,system:t.system}}var Je=require("@ai-sdk/gateway"),Jr=require("@ai-sdk/provider");function Yr(t){return Je.GatewayAuthenticationError.isInstance(t)||Je.GatewayModelNotFoundError.isInstance(t)?new Jr.AISDKError({name:"GatewayError",message:"Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",cause:t}):t}function Ae({operationId:t,telemetry:e}){return{"operation.name":`${t}${(e==null?void 0:e.functionId)!=null?` ${e.functionId}`:""}`,"resource.name":e==null?void 0:e.functionId,"ai.operationId":t,"ai.telemetry.functionId":e==null?void 0:e.functionId}}function Wr({model:t,settings:e,telemetry:r,headers:o}){var s;return{"ai.model.provider":t.provider,"ai.model.id":t.modelId,...Object.entries(e).reduce((a,[i,n])=>(a[`ai.settings.${i}`]=n,a),{}),...Object.entries((s=r==null?void 0:r.metadata)!=null?s:{}).reduce((a,[i,n])=>(a[`ai.telemetry.metadata.${i}`]=n,a),{}),...Object.entries(o!=null?o:{}).reduce((a,[i,n])=>(n!==void 0&&(a[`ai.request.headers.${i}`]=n),a),{})}}var Kr=require("@opentelemetry/api");var zr={startSpan(){return Ye},startActiveSpan(t,e,r,o){if(typeof e=="function")return e(Ye);if(typeof r=="function")return r(Ye);if(typeof o=="function")return o(Ye)}},Ye={spanContext(){return no},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(){return!1},recordException(){return this}},no={traceId:"",spanId:"",traceFlags:0};function Hr({isEnabled:t=!1,tracer:e}={}){return t?e||Kr.trace.getTracer("ai"):zr}var ht=require("@opentelemetry/api");function be({name:t,tracer:e,attributes:r,fn:o,endWhenDone:s=!0}){return e.startActiveSpan(t,{attributes:r},async a=>{try{let i=await o(a);return s&&a.end(),i}catch(i){try{Et(a,i)}finally{a.end()}throw i}})}function Et(t,e){e instanceof Error?(t.recordException({name:e.name,message:e.message,stack:e.stack}),t.setStatus({code:ht.SpanStatusCode.ERROR,message:e.message})):t.setStatus({code:ht.SpanStatusCode.ERROR})}function K({telemetry:t,attributes:e}){return(t==null?void 0:t.isEnabled)!==!0?{}:Object.entries(e).reduce((r,[o,s])=>{if(s==null)return r;if(typeof s=="object"&&"input"in s&&typeof s.input=="function"){if((t==null?void 0:t.recordInputs)===!1)return r;let a=s.input();return a==null?r:{...r,[o]:a}}if(typeof s=="object"&&"output"in s&&typeof s.output=="function"){if((t==null?void 0:t.recordOutputs)===!1)return r;let a=s.output();return a==null?r:{...r,[o]:a}}return{...r,[o]:s}},{})}function Zr(t){return JSON.stringify(t.map(e=>({...e,content:typeof e.content=="string"?e.content:e.content.map(r=>r.type==="file"?{...r,data:r.data instanceof Uint8Array?Mr(r.data):r.data}:r)})))}function Qr(t,e){return{inputTokens:Ue(t.inputTokens,e.inputTokens),outputTokens:Ue(t.outputTokens,e.outputTokens),totalTokens:Ue(t.totalTokens,e.totalTokens),reasoningTokens:Ue(t.reasoningTokens,e.reasoningTokens),cachedInputTokens:Ue(t.cachedInputTokens,e.cachedInputTokens)}}function Ue(t,e){return t==null&&e==null?void 0:(t!=null?t:0)+(e!=null?e:0)}var ta=require("@ai-sdk/provider-utils");var ze=require("@ai-sdk/provider-utils"),At=class{constructor({data:e,mediaType:r}){let o=e instanceof Uint8Array;this.base64Data=o?void 0:e,this.uint8ArrayData=o?e:void 0,this.mediaType=r}get base64(){return this.base64Data==null&&(this.base64Data=(0,ze.convertUint8ArrayToBase64)(this.uint8ArrayData)),this.base64Data}get uint8Array(){return this.uint8ArrayData==null&&(this.uint8ArrayData=(0,ze.convertBase64ToUint8Array)(this.base64Data)),this.uint8ArrayData}},We=class extends At{constructor(r){super(r);this.type="file"}};var te=require("@ai-sdk/provider-utils");async function ea({toolCall:t,tools:e,repairToolCall:r,system:o,messages:s}){if(e==null)throw new de({toolName:t.toolName});try{return await Xr({toolCall:t,tools:e})}catch(a){if(r==null||!(de.isInstance(a)||Oe.isInstance(a)))throw a;let i=null;try{i=await r({toolCall:t,tools:e,inputSchema:({toolName:n})=>{let{inputSchema:p}=e[n];return(0,te.asSchema)(p).jsonSchema},system:o,messages:s,error:a})}catch(n){throw new Be({cause:n,originalError:a})}if(i==null)throw a;return await Xr({toolCall:i,tools:e})}}async function Xr({toolCall:t,tools:e}){let r=t.toolName,o=e[r];if(o==null)throw new de({toolName:t.toolName,availableTools:Object.keys(e)});let s=(0,te.asSchema)(o.inputSchema),a=t.input.trim()===""?await(0,te.safeValidateTypes)({value:{},schema:s}):await(0,te.safeParseJSON)({text:t.input,schema:s});if(a.success===!1)throw new Oe({toolName:r,toolInput:t.input,cause:a.error});return{type:"tool-call",toolCallId:t.toolCallId,toolName:r,input:a.value,providerExecuted:t.providerExecuted,providerMetadata:t.providerMetadata}}function ra({tools:t,generatorStream:e,tracer:r,telemetry:o,system:s,messages:a,abortSignal:i,repairToolCall:n}){let p=null,l=new ReadableStream({start(y){p=y}}),u=new Set,M=new Map,f=!1,I;function b(){f&&u.size===0&&(I!=null&&p.enqueue(I),p.close())}let _=new TransformStream({async transform(y,m){let x=y.type;switch(x){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{m.enqueue(y);break}case"file":{m.enqueue({type:"file",file:new We({data:y.data,mediaType:y.mediaType})});break}case"finish":{I={type:"finish",finishReason:y.finishReason,usage:y.usage,providerMetadata:y.providerMetadata};break}case"tool-call":{try{let S=await ea({toolCall:y,tools:t,repairToolCall:n,system:s,messages:a});m.enqueue(S);let E=t[S.toolName];if(M.set(S.toolCallId,S.input),E.onInputAvailable!=null&&await E.onInputAvailable({input:S.input,toolCallId:S.toolCallId,messages:a,abortSignal:i}),E.execute!=null&&S.providerExecuted!==!0){let F=(0,ta.generateId)();u.add(F),be({name:"ai.toolCall",attributes:K({telemetry:o,attributes:{...Ae({operationId:"ai.toolCall",telemetry:o}),"ai.toolCall.name":S.toolName,"ai.toolCall.id":S.toolCallId,"ai.toolCall.input":{output:()=>JSON.stringify(S.input)}}}),tracer:r,fn:async q=>{let $;try{$=await E.execute(S.input,{toolCallId:S.toolCallId,messages:a,abortSignal:i})}catch(H){Et(q,H),p.enqueue({...S,type:"tool-error",error:H}),u.delete(F),b();return}p.enqueue({...S,type:"tool-result",output:$}),u.delete(F),b();try{q.setAttributes(K({telemetry:o,attributes:{"ai.toolCall.output":{output:()=>JSON.stringify($)}}}))}catch(H){}}})}}catch(S){p.enqueue({type:"error",error:S})}break}case"tool-result":{let S=y.toolName;y.isError?p.enqueue({type:"tool-error",toolCallId:y.toolCallId,toolName:S,input:M.get(y.toolCallId),providerExecuted:y.providerExecuted,error:y.result}):m.enqueue({type:"tool-result",toolCallId:y.toolCallId,toolName:S,input:M.get(y.toolCallId),output:y.result,providerExecuted:y.providerExecuted});break}default:{let S=x;throw new Error(`Unhandled chunk type: ${S}`)}}},flush(){f=!0,b()}});return new ReadableStream({async start(y){return Promise.all([e.pipeThrough(_).pipeTo(new WritableStream({write(m){y.enqueue(m)},close(){}})),l.pipeTo(new WritableStream({write(m){y.enqueue(m)},close(){y.close()}}))])}})}var Ke=class{constructor({content:e,finishReason:r,usage:o,warnings:s,request:a,response:i,providerMetadata:n}){this.content=e,this.finishReason=r,this.usage=o,this.warnings=s,this.request=a,this.response=i,this.providerMetadata=n}get text(){return this.content.filter(e=>e.type==="text").map(e=>e.text).join("")}get reasoning(){return this.content.filter(e=>e.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map(e=>e.text).join("")}get files(){return this.content.filter(e=>e.type==="file").map(e=>e.file)}get sources(){return this.content.filter(e=>e.type==="source")}get toolCalls(){return this.content.filter(e=>e.type==="tool-call")}get toolResults(){return this.content.filter(e=>e.type==="tool-result")}};function aa(t){return({steps:e})=>e.length===t}async function oa({stopConditions:t,steps:e}){return(await Promise.all(t.map(r=>r({steps:e})))).some(r=>r)}var na=require("@ai-sdk/provider");function He({output:t,tool:e,errorMode:r}){return r==="text"?{type:"error-text",value:(0,na.getErrorMessage)(t)}:r==="json"?{type:"error-json",value:t}:e!=null&&e.toModelOutput?e.toModelOutput(t):typeof t=="string"?{type:"text",value:t}:{type:"json",value:t}}function bt({content:t,tools:e}){let r=[],o=t.filter(a=>a.type!=="source").filter(a=>(a.type!=="tool-result"||a.providerExecuted)&&(a.type!=="tool-error"||a.providerExecuted)).filter(a=>a.type!=="text"||a.text.length>0).map(a=>{switch(a.type){case"text":return{type:"text",text:a.text,providerOptions:a.providerMetadata};case"reasoning":return{type:"reasoning",text:a.text,providerOptions:a.providerMetadata};case"file":return{type:"file",data:a.file.base64,mediaType:a.file.mediaType,providerOptions:a.providerMetadata};case"tool-call":return{type:"tool-call",toolCallId:a.toolCallId,toolName:a.toolName,input:a.input,providerExecuted:a.providerExecuted,providerOptions:a.providerMetadata};case"tool-result":return{type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,output:He({tool:e==null?void 0:e[a.toolName],output:a.output,errorMode:"none"}),providerExecuted:!0,providerOptions:a.providerMetadata};case"tool-error":return{type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,output:He({tool:e==null?void 0:e[a.toolName],output:a.error,errorMode:"json"}),providerOptions:a.providerMetadata}}});o.length>0&&r.push({role:"assistant",content:o});let s=t.filter(a=>a.type==="tool-result"||a.type==="tool-error").filter(a=>!a.providerExecuted).map(a=>({type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,output:He({tool:e==null?void 0:e[a.toolName],output:a.type==="tool-result"?a.output:a.error,errorMode:a.type==="tool-error"?"text":"none"})}));return s.length>0&&r.push({role:"tool",content:s}),r}var so=(0,ia.createIdGenerator)({prefix:"aitxt",size:24});function la({model:t,tools:e,toolChoice:r,system:o,prompt:s,messages:a,maxRetries:i,abortSignal:n,headers:p,stopWhen:l=aa(1),experimental_output:u,experimental_telemetry:M,prepareStep:f,providerOptions:I,experimental_activeTools:b,activeTools:_=b,experimental_repairToolCall:y,experimental_transform:m,includeRawChunks:x=!1,onChunk:S,onError:E=({error:me})=>{console.error(me)},onFinish:F,onStepFinish:q,_internal:{now:$=or,generateId:H=so,currentDate:pe=()=>new Date}={},...ue}){return new Ut({model:xt(t),telemetry:M,headers:p,settings:ue,maxRetries:i,abortSignal:n,system:o,prompt:s,messages:a,tools:e,toolChoice:r,transforms:ut(m),activeTools:_,repairToolCall:y,stopConditions:ut(l),output:u,providerOptions:I,prepareStep:f,includeRawChunks:x,onChunk:S,onError:E,onFinish:F,onStepFinish:q,now:$,currentDate:pe,generateId:H})}function io(t){if(!t)return new TransformStream({transform(i,n){n.enqueue({part:i,partialOutput:void 0})}});let e,r="",o="",s="";function a({controller:i,partialOutput:n=void 0}){i.enqueue({part:{type:"text",id:e,text:o},partialOutput:n}),o=""}return new TransformStream({async transform(i,n){if(i.type==="finish-step"&&o.length>0&&a({controller:n}),i.type!=="text"&&i.type!=="text-start"&&i.type!=="text-end"){n.enqueue({part:i,partialOutput:void 0});return}if(e==null)e=i.id;else if(i.id!==e){n.enqueue({part:i,partialOutput:void 0});return}if(i.type==="text-start"){n.enqueue({part:i,partialOutput:void 0});return}if(i.type==="text-end"){o.length>0&&a({controller:n}),n.enqueue({part:i,partialOutput:void 0});return}r+=i.text,o+=i.text;let p=await t.parsePartial({text:r});if(p!=null){let l=JSON.stringify(p.partial);l!==s&&(a({controller:n,partialOutput:p.partial}),s=l)}}})}var Ut=class{constructor({model:e,telemetry:r,headers:o,settings:s,maxRetries:a,abortSignal:i,system:n,prompt:p,messages:l,tools:u,toolChoice:M,transforms:f,activeTools:I,repairToolCall:b,stopConditions:_,output:y,providerOptions:m,prepareStep:x,includeRawChunks:S,now:E,currentDate:F,generateId:q,onChunk:$,onError:H,onFinish:pe,onStepFinish:ue}){this._totalUsage=new X;this._finishReason=new X;this._steps=new X;this.output=y,this.includeRawChunks=S,this.generateId=q;let me,V=[],Rt=[],Pe,we,Pt={},wt=[],k=[],Ze,ce={},re={},xa=new TransformStream({async transform(L,R){var v,Z,ge;R.enqueue(L);let{part:c}=L;if((c.type==="text"||c.type==="reasoning"||c.type==="source"||c.type==="tool-call"||c.type==="tool-result"||c.type==="tool-input-start"||c.type==="tool-input-delta"||c.type==="raw")&&await($==null?void 0:$({chunk:c})),c.type==="error"&&await H({error:Yr(c.error)}),c.type==="text-start"&&(ce[c.id]={type:"text",text:"",providerMetadata:c.providerMetadata},V.push(ce[c.id])),c.type==="text"){let A=ce[c.id];if(A==null){R.enqueue({part:{type:"error",error:`text part ${c.id} not found`},partialOutput:void 0});return}A.text+=c.text,A.providerMetadata=(v=c.providerMetadata)!=null?v:A.providerMetadata}if(c.type==="text-end"&&delete ce[c.id],c.type==="reasoning-start"&&(re[c.id]={type:"reasoning",text:"",providerMetadata:c.providerMetadata},V.push(re[c.id])),c.type==="reasoning"){let A=re[c.id];if(A==null){R.enqueue({part:{type:"error",error:`reasoning part ${c.id} not found`},partialOutput:void 0});return}A.text+=c.text,A.providerMetadata=(Z=c.providerMetadata)!=null?Z:A.providerMetadata}if(c.type==="reasoning-end"){let A=re[c.id];if(A==null){R.enqueue({part:{type:"error",error:`reasoning part ${c.id} not found`},partialOutput:void 0});return}A.providerMetadata=(ge=c.providerMetadata)!=null?ge:A.providerMetadata,delete re[c.id]}if(c.type==="file"&&V.push({type:"file",file:c.file}),c.type==="source"&&V.push(c),c.type==="tool-call"&&V.push(c),c.type==="tool-result"&&V.push(c),c.type==="tool-error"&&V.push(c),c.type==="start-step"&&(Pt=c.request,wt=c.warnings),c.type==="finish-step"){let A=bt({content:V,tools:u}),W=new Ke({content:V,finishReason:c.finishReason,usage:c.usage,warnings:wt,request:Pt,response:{...c.response,messages:[...Rt,...A]},providerMetadata:c.providerMetadata});await(ue==null?void 0:ue(W)),k.push(W),V=[],re={},ce={},Rt.push(...A),me.resolve()}c.type==="finish"&&(we=c.totalUsage,Pe=c.finishReason)},async flush(L){try{if(k.length===0)return;let R=Pe!=null?Pe:"unknown",c=we!=null?we:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};J._finishReason.resolve(R),J._totalUsage.resolve(c),J._steps.resolve(k);let v=k[k.length-1];await(pe==null?void 0:pe({finishReason:R,totalUsage:c,usage:v.usage,content:v.content,text:v.text,reasoningText:v.reasoningText,reasoning:v.reasoning,files:v.files,sources:v.sources,toolCalls:v.toolCalls,toolResults:v.toolResults,request:v.request,response:v.response,warnings:v.warnings,providerMetadata:v.providerMetadata,steps:k})),Ze.setAttributes(K({telemetry:r,attributes:{"ai.response.finishReason":R,"ai.response.text":{output:()=>v.text},"ai.response.toolCalls":{output:()=>{var Z;return(Z=v.toolCalls)!=null&&Z.length?JSON.stringify(v.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(v.providerMetadata),"ai.usage.inputTokens":c.inputTokens,"ai.usage.outputTokens":c.outputTokens,"ai.usage.totalTokens":c.totalTokens,"ai.usage.reasoningTokens":c.reasoningTokens,"ai.usage.cachedInputTokens":c.cachedInputTokens}}))}catch(R){L.error(R)}finally{Ze.end()}}}),Ce=ar();this.addStream=Ce.addStream,this.closeStream=Ce.close;let fe=Ce.stream;fe=fe.pipeThrough(new TransformStream({start(L){L.enqueue({type:"start"})}}));for(let L of f)fe=fe.pipeThrough(L({tools:u,stopStream(){Ce.terminate()}}));this.baseStream=fe.pipeThrough(io(y)).pipeThrough(xa);let{maxRetries:Ma,retry:va}=mr({maxRetries:a}),Qe=Hr(r),B=Ar(s),Ct=Wr({model:e,telemetry:r,headers:o,settings:{...B,maxRetries:Ma}}),J=this;be({name:"ai.streamText",attributes:K({telemetry:r,attributes:{...Ae({operationId:"ai.streamText",telemetry:r}),...Ct,"ai.prompt":{input:()=>JSON.stringify({system:n,prompt:p,messages:l})}}}),tracer:Qe,endWhenDone:!1,fn:async L=>{Ze=L;async function R({currentStep:c,responseMessages:v,usage:Z}){var Dt,Ft,qt,Vt,jt;let ge=J.includeRawChunks;me=new X;let A=await Br({system:n,prompt:p,messages:l}),W=[...A.messages,...v],P=await(x==null?void 0:x({model:e,steps:k,stepNumber:k.length,messages:W})),_t=await Er({prompt:{system:(Dt=P==null?void 0:P.system)!=null?Dt:A.system,messages:(Ft=P==null?void 0:P.messages)!=null?Ft:W},supportedUrls:await e.supportedUrls}),Te=xt((qt=P==null?void 0:P.model)!=null?qt:e),{toolChoice:Xe,tools:_e}=Rr({tools:u,toolChoice:(Vt=P==null?void 0:P.toolChoice)!=null?Vt:M,activeTools:(jt=P==null?void 0:P.activeTools)!=null?jt:I}),{result:{stream:Oa,response:et,request:tt},doStreamSpan:ae,startTimestampMs:Lt}=await va(()=>be({name:"ai.streamText.doStream",attributes:K({telemetry:r,attributes:{...Ae({operationId:"ai.streamText.doStream",telemetry:r}),...Ct,"ai.model.provider":Te.provider,"ai.model.id":Te.modelId,"ai.prompt.messages":{input:()=>Zr(_t)},"ai.prompt.tools":{input:()=>_e==null?void 0:_e.map(T=>JSON.stringify(T))},"ai.prompt.toolChoice":{input:()=>Xe!=null?JSON.stringify(Xe):void 0},"gen_ai.system":Te.provider,"gen_ai.request.model":Te.modelId,"gen_ai.request.frequency_penalty":B.frequencyPenalty,"gen_ai.request.max_tokens":B.maxOutputTokens,"gen_ai.request.presence_penalty":B.presencePenalty,"gen_ai.request.stop_sequences":B.stopSequences,"gen_ai.request.temperature":B.temperature,"gen_ai.request.top_k":B.topK,"gen_ai.request.top_p":B.topP}}),tracer:Qe,endWhenDone:!1,fn:async T=>({startTimestampMs:E(),doStreamSpan:T,result:await Te.doStream({...B,tools:_e,toolChoice:Xe,responseFormat:y==null?void 0:y.responseFormat,prompt:_t,providerOptions:m,abortSignal:i,headers:o,includeRawChunks:ge})})})),ha=ra({tools:u,generatorStream:Oa,tracer:Qe,telemetry:r,system:n,messages:W,repairToolCall:b,abortSignal:i}),Ea=tt!=null?tt:{},Le=[],rt=[],ke,at={},oe="unknown",N={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},ot,kt=!0,j={id:q(),timestamp:F(),modelId:e.modelId},Nt="";J.addStream(ha.pipeThrough(new TransformStream({async transform(T,U){var ye,Ne,Y,Gt;if(T.type==="stream-start"){ke=T.warnings;return}if(kt){let w=E()-Lt;kt=!1,ae.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":w}),ae.setAttributes({"ai.response.msToFirstChunk":w}),U.enqueue({type:"start-step",request:Ea,warnings:ke!=null?ke:[]})}let Se=T.type;switch(Se){case"text-start":case"text-end":{U.enqueue(T);break}case"text-delta":{T.delta.length>0&&(U.enqueue({type:"text",id:T.id,text:T.delta,providerMetadata:T.providerMetadata}),Nt+=T.delta);break}case"reasoning-start":case"reasoning-end":{U.enqueue(T);break}case"reasoning-delta":{U.enqueue({type:"reasoning",id:T.id,text:T.delta,providerMetadata:T.providerMetadata});break}case"tool-call":{U.enqueue(T),Le.push(T);break}case"tool-result":{U.enqueue(T),rt.push(T);break}case"tool-error":{U.enqueue(T),rt.push(T);break}case"response-metadata":{j={id:(ye=T.id)!=null?ye:j.id,timestamp:(Ne=T.timestamp)!=null?Ne:j.timestamp,modelId:(Y=T.modelId)!=null?Y:j.modelId};break}case"finish":{N=T.usage,oe=T.finishReason,ot=T.providerMetadata;let w=E()-Lt;ae.addEvent("ai.stream.finish"),ae.setAttributes({"ai.response.msToFinish":w,"ai.response.avgOutputTokensPerSecond":1e3*((Gt=N.outputTokens)!=null?Gt:0)/w});break}case"file":{U.enqueue(T);break}case"source":{U.enqueue(T);break}case"tool-input-start":{at[T.id]=T.toolName;let w=u==null?void 0:u[T.toolName];(w==null?void 0:w.onInputStart)!=null&&await w.onInputStart({toolCallId:T.id,messages:W,abortSignal:i}),U.enqueue(T);break}case"tool-input-end":{delete at[T.id],U.enqueue(T);break}case"tool-input-delta":{let w=at[T.id],De=u==null?void 0:u[w];(De==null?void 0:De.onInputDelta)!=null&&await De.onInputDelta({inputTextDelta:T.delta,toolCallId:T.id,messages:W,abortSignal:i}),U.enqueue(T);break}case"error":{U.enqueue(T),oe="error";break}case"raw":{ge&&U.enqueue(T);break}default:{let w=Se;throw new Error(`Unknown chunk type: ${w}`)}}},async flush(T){let U=Le.length>0?JSON.stringify(Le):void 0;try{ae.setAttributes(K({telemetry:r,attributes:{"ai.response.finishReason":oe,"ai.response.text":{output:()=>Nt},"ai.response.toolCalls":{output:()=>U},"ai.response.id":j.id,"ai.response.model":j.modelId,"ai.response.timestamp":j.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(ot),"ai.usage.inputTokens":N.inputTokens,"ai.usage.outputTokens":N.outputTokens,"ai.usage.totalTokens":N.totalTokens,"ai.usage.reasoningTokens":N.reasoningTokens,"ai.usage.cachedInputTokens":N.cachedInputTokens,"gen_ai.response.finish_reasons":[oe],"gen_ai.response.id":j.id,"gen_ai.response.model":j.modelId,"gen_ai.usage.input_tokens":N.inputTokens,"gen_ai.usage.output_tokens":N.outputTokens}}))}catch(Y){}finally{ae.end()}T.enqueue({type:"finish-step",finishReason:oe,usage:N,providerMetadata:ot,response:{...j,headers:et==null?void 0:et.headers}});let Se=Qr(Z,N);await me.promise;let ye=Le.filter(Y=>Y.providerExecuted!==!0),Ne=rt.filter(Y=>Y.providerExecuted!==!0);if(ye.length>0&&Ne.length===ye.length&&!await oa({stopConditions:_,steps:k})){v.push(...bt({content:k[k.length-1].content,tools:u}));try{await R({currentStep:c+1,responseMessages:v,usage:Se})}catch(Y){T.enqueue({type:"error",error:Y}),J.closeStream()}}else T.enqueue({type:"finish",finishReason:oe,totalUsage:Se}),J.closeStream()}})))}await R({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(L=>{J.addStream(new ReadableStream({start(R){R.enqueue({type:"error",error:L}),R.close()}})),J.closeStream()})}get steps(){return this._steps.promise}get finalStep(){return this.steps.then(e=>e[e.length-1])}get content(){return this.finalStep.then(e=>e.content)}get warnings(){return this.finalStep.then(e=>e.warnings)}get providerMetadata(){return this.finalStep.then(e=>e.providerMetadata)}get text(){return this.finalStep.then(e=>e.text)}get reasoningText(){return this.finalStep.then(e=>e.reasoningText)}get reasoning(){return this.finalStep.then(e=>e.reasoning)}get sources(){return this.finalStep.then(e=>e.sources)}get files(){return this.finalStep.then(e=>e.files)}get toolCalls(){return this.finalStep.then(e=>e.toolCalls)}get toolResults(){return this.finalStep.then(e=>e.toolResults)}get usage(){return this.finalStep.then(e=>e.usage)}get request(){return this.finalStep.then(e=>e.request)}get response(){return this.finalStep.then(e=>e.response)}get totalUsage(){return this._totalUsage.promise}get finishReason(){return this._finishReason.promise}teeStream(){let[e,r]=this.baseStream.tee();return this.baseStream=r,e}get textStream(){return je(this.teeStream().pipeThrough(new TransformStream({transform({part:e},r){e.type==="text"&&r.enqueue(e.text)}})))}get fullStream(){return je(this.teeStream().pipeThrough(new TransformStream({transform({part:e},r){r.enqueue(e)}})))}async consumeStream(e){var r;try{await rr({stream:this.fullStream,onError:e==null?void 0:e.onError})}catch(o){(r=e==null?void 0:e.onError)==null||r.call(e,o)}}get experimental_partialOutputStream(){if(this.output==null)throw new Fe;return je(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},r){e!=null&&r.enqueue(e)}})))}toUIMessageStream({originalMessages:e,generateMessageId:r,onFinish:o,messageMetadata:s,sendReasoning:a=!0,sendSources:i=!1,sendStart:n=!0,sendFinish:p=!0,onError:l=sa.getErrorMessage}={}){let u=r!=null?zt({originalMessages:e,responseMessageId:r}):void 0,M=this.fullStream.pipeThrough(new TransformStream({transform:async(f,I)=>{let b=s==null?void 0:s({part:f}),_=f.type;switch(_){case"text-start":{I.enqueue({type:"text-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text":{I.enqueue({type:"text-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-end":{I.enqueue({type:"text-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-start":{I.enqueue({type:"reasoning-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning":{a&&I.enqueue({type:"reasoning-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-end":{I.enqueue({type:"reasoning-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"file":{I.enqueue({type:"file",mediaType:f.file.mediaType,url:`data:${f.file.mediaType};base64,${f.file.base64}`});break}case"source":{i&&f.sourceType==="url"&&I.enqueue({type:"source-url",sourceId:f.id,url:f.url,title:f.title,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}}),i&&f.sourceType==="document"&&I.enqueue({type:"source-document",sourceId:f.id,mediaType:f.mediaType,title:f.title,filename:f.filename,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"tool-input-start":{I.enqueue({type:"tool-input-start",toolCallId:f.id,toolName:f.toolName,providerExecuted:f.providerExecuted});break}case"tool-input-delta":{I.enqueue({type:"tool-input-delta",toolCallId:f.id,inputTextDelta:f.delta});break}case"tool-call":{I.enqueue({type:"tool-input-available",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,providerExecuted:f.providerExecuted,providerMetadata:f.providerMetadata});break}case"tool-result":{I.enqueue({type:"tool-output-available",toolCallId:f.toolCallId,output:f.output,providerExecuted:f.providerExecuted});break}case"tool-error":{I.enqueue({type:"tool-output-error",toolCallId:f.toolCallId,errorText:l(f.error),providerExecuted:f.providerExecuted});break}case"error":{I.enqueue({type:"error",errorText:l(f.error)});break}case"start-step":{I.enqueue({type:"start-step"});break}case"finish-step":{I.enqueue({type:"finish-step"});break}case"start":{n&&I.enqueue({type:"start",...b!=null?{messageMetadata:b}:{},...u!=null?{messageId:u}:{}});break}case"finish":{p&&I.enqueue({type:"finish",...b!=null?{messageMetadata:b}:{}});break}case"tool-input-end":break;case"raw":break;default:{let y=_;throw new Error(`Unknown chunk type: ${y}`)}}b!=null&&_!=="start"&&_!=="finish"&&I.enqueue({type:"message-metadata",messageMetadata:b})}}));return er({stream:M,messageId:u!=null?u:r==null?void 0:r(),originalMessages:e,onFinish:o,onError:l})}pipeUIMessageStreamToResponse(e,{originalMessages:r,generateMessageId:o,onFinish:s,messageMetadata:a,sendReasoning:i,sendSources:n,sendFinish:p,sendStart:l,onError:u,...M}={}){tr({response:e,stream:this.toUIMessageStream({originalMessages:r,generateMessageId:o,onFinish:s,messageMetadata:a,sendReasoning:i,sendSources:n,sendFinish:p,sendStart:l,onError:u}),...M})}pipeTextStreamToResponse(e,r){Yt({response:e,textStream:this.textStream,...r})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:r,onFinish:o,messageMetadata:s,sendReasoning:a,sendSources:i,sendFinish:n,sendStart:p,onError:l,...u}={}){return Wt({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:r,onFinish:o,messageMetadata:s,sendReasoning:a,sendSources:i,sendFinish:n,sendStart:p,onError:l}),...u})}toTextStreamResponse(e){return Jt({textStream:this.textStream,...e})}};var Re=require("fs"),da=require("path"),pa=require("@ai-sdk/gateway");function ua(){return!process.stdin.isTTY}async function lo(){return new Promise(t=>{let e="";process.stdin.setEncoding("utf8"),process.stdin.on("data",r=>{e+=r}),process.stdin.on("end",()=>{t(e.trim())})})}function ma(t){var o;let e=(o=t.split(".").pop())==null?void 0:o.toLowerCase();return{js:"application/javascript",ts:"application/typescript",jsx:"text/jsx",tsx:"text/tsx",json:"application/json",md:"text/markdown",txt:"text/plain",py:"text/x-python",html:"text/html",css:"text/css",xml:"application/xml",yaml:"application/yaml",yml:"application/yaml",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff"}[e||""]||"text/plain"}function ca(t){let e=(0,da.resolve)(t);if(!(0,Re.existsSync)(e))throw new Error(`File not found: ${t}`);let r=ma(t),o=r.startsWith("image/"),s;if(o){let a=(0,Re.readFileSync)(e);s=`data:${r};base64,${a.toString("base64")}`}else s=(0,Re.readFileSync)(e,"utf8");return{name:t,content:s,mediaType:r}}function fa(){let t=process.argv.slice(2),e={model:process.env.AI_DEFAULT_MODEL||"openai/gpt-4",files:[],help:!1,version:!1,verbose:process.env.AI_VERBOSE==="true",system:process.env.AI_SYSTEM},r=[],o=0;for(;o<t.length;){let s=t[o];switch(s){case"-h":case"--help":e.help=!0;break;case"-V":case"--version":e.version=!0;break;case"-v":case"--verbose":e.verbose=!0;break;case"-m":case"--model":if(o+1<t.length)e.model=t[o+1],o++;else throw new Error("Model option requires a value");break;case"-f":case"--file":if(o+1<t.length)e.files.push(t[o+1]),o++;else throw new Error("File option requires a value");break;case"-s":case"--system":if(o+1<t.length)e.system=t[o+1],o++;else throw new Error("System option requires a value");break;default:if(s.startsWith("-"))throw new Error(`Unknown option: ${s}`);r.push(s)}o++}return r.length>0&&(e.prompt=r.join(" ")),e}function ga(){console.log(`Usage: ai [options] [prompt]
6
+ `)}})}};var Ge={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Kt({status:t,statusText:e,headers:r,stream:a,consumeSseStream:s}){let o=a.pipeThrough(new se);if(s){let[i,n]=o.tee();o=i,s({stream:n})}return new Response(o.pipeThrough(new TextEncoderStream),{status:t,statusText:e,headers:z(r,Ge)})}function Ht({originalMessages:t,responseMessageId:e}){if(t==null)return;let r=t[t.length-1];return(r==null?void 0:r.role)==="assistant"?r.id:typeof e=="function"?e():e}var mt=require("@ai-sdk/provider-utils");var d=require("zod/v4");var xe=require("zod/v4");var j=require("zod/v4"),X=j.z.lazy(()=>j.z.union([j.z.null(),j.z.string(),j.z.number(),j.z.boolean(),j.z.record(j.z.string(),X),j.z.array(X)]));var O=xe.z.record(xe.z.string(),xe.z.record(xe.z.string(),X));var Lo=d.z.union([d.z.strictObject({type:d.z.literal("text-start"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("text-delta"),id:d.z.string(),delta:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("text-end"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("error"),errorText:d.z.string()}),d.z.strictObject({type:d.z.literal("tool-input-start"),toolCallId:d.z.string(),toolName:d.z.string(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("tool-input-delta"),toolCallId:d.z.string(),inputTextDelta:d.z.string()}),d.z.strictObject({type:d.z.literal("tool-input-available"),toolCallId:d.z.string(),toolName:d.z.string(),input:d.z.unknown(),providerExecuted:d.z.boolean().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("tool-output-available"),toolCallId:d.z.string(),output:d.z.unknown(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("tool-output-error"),toolCallId:d.z.string(),errorText:d.z.string(),providerExecuted:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("reasoning"),text:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-start"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-delta"),id:d.z.string(),delta:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-end"),id:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("reasoning-part-finish")}),d.z.strictObject({type:d.z.literal("source-url"),sourceId:d.z.string(),url:d.z.string(),title:d.z.string().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("source-document"),sourceId:d.z.string(),mediaType:d.z.string(),title:d.z.string(),filename:d.z.string().optional(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.literal("file"),url:d.z.string(),mediaType:d.z.string(),providerMetadata:O.optional()}),d.z.strictObject({type:d.z.string().startsWith("data-"),id:d.z.string().optional(),data:d.z.unknown(),transient:d.z.boolean().optional()}),d.z.strictObject({type:d.z.literal("start-step")}),d.z.strictObject({type:d.z.literal("finish-step")}),d.z.strictObject({type:d.z.literal("start"),messageId:d.z.string().optional(),messageMetadata:d.z.unknown().optional()}),d.z.strictObject({type:d.z.literal("finish"),messageMetadata:d.z.unknown().optional()}),d.z.strictObject({type:d.z.literal("abort")}),d.z.strictObject({type:d.z.literal("message-metadata"),messageMetadata:d.z.unknown()})]);function Zt(t){return t.type.startsWith("data-")}function dt(t,e){if(t===void 0&&e===void 0)return;if(t===void 0)return e;if(e===void 0)return t;let r={...t};for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)){let s=e[a];if(s===void 0)continue;let o=a in t?t[a]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),n=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);i&&n?r[a]=dt(o,s):r[a]=s}return r}var pt=require("@ai-sdk/provider-utils");function Qt(t){let e=["ROOT"],r=-1,a=null;function s(p,l,u){switch(p){case'"':{r=l,e.pop(),e.push(u),e.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=l,a=l,e.pop(),e.push(u),e.push("INSIDE_LITERAL");break}case"-":{e.pop(),e.push(u),e.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=l,e.pop(),e.push(u),e.push("INSIDE_NUMBER");break}case"{":{r=l,e.pop(),e.push(u),e.push("INSIDE_OBJECT_START");break}case"[":{r=l,e.pop(),e.push(u),e.push("INSIDE_ARRAY_START");break}}}function o(p,l){switch(p){case",":{e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=l,e.pop();break}}}function i(p,l){switch(p){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=l,e.pop();break}}}for(let p=0;p<t.length;p++){let l=t[p];switch(e[e.length-1]){case"ROOT":s(l,p,"FINISH");break;case"INSIDE_OBJECT_START":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}case"}":{r=p,e.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(l){case'"':{e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(l){case":":{e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(l,p,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(l,p);break}case"INSIDE_STRING":{switch(l){case'"':{e.pop(),r=p;break}case"\\":{e.push("INSIDE_STRING_ESCAPE");break}default:r=p}break}case"INSIDE_ARRAY_START":{switch(l){case"]":{r=p,e.pop();break}default:{r=p,s(l,p,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(l){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=p,e.pop();break}default:{r=p;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(l,p,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{e.pop(),r=p;break}case"INSIDE_NUMBER":{switch(l){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=p;break}case"e":case"E":case"-":case".":break;case",":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(l,p);break}case"}":{e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(l,p);break}case"]":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p);break}default:{e.pop();break}}break}case"INSIDE_LITERAL":{let M=t.substring(a,p+1);!"false".startsWith(M)&&!"true".startsWith(M)&&!"null".startsWith(M)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(l,p):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(l,p)):r=p;break}}}let n=t.slice(0,r+1);for(let p=e.length-1;p>=0;p--)switch(e[p]){case"INSIDE_STRING":{n+='"';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":{n+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{n+="]";break}case"INSIDE_LITERAL":{let u=t.substring(a,t.length);"true".startsWith(u)?n+="true".slice(u.length):"false".startsWith(u)?n+="false".slice(u.length):"null".startsWith(u)&&(n+="null".slice(u.length))}}return n}async function Xt(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=await(0,pt.safeParseJSON)({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=await(0,pt.safeParseJSON)({text:Qt(t)}),e.success?{value:e.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function Me(t){return t.type.startsWith("tool-")}function ut(t){return t.type.split("-").slice(1).join("-")}function er({lastMessage:t,messageId:e}){return{message:(t==null?void 0:t.role)==="assistant"?t:{id:e,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function tr({stream:t,onToolCall:e,messageMetadataSchema:r,dataPartSchemas:a,runUpdateMessageJob:s,onError:o,onData:i}){return t.pipeThrough(new TransformStream({async transform(n,p){await s(async({state:l,write:u})=>{var I,U,L,y;function M(m){var F;let x=l.message.parts.find(G=>Me(G)&&G.toolCallId===m.toolCallId),S=m,A=x;x!=null?(x.state=m.state,A.input=S.input,A.output=S.output,A.errorText=S.errorText,A.providerExecuted=(F=S.providerExecuted)!=null?F:x.providerExecuted,S.providerMetadata!=null&&x.state==="input-available"&&(x.callProviderMetadata=S.providerMetadata)):l.message.parts.push({type:`tool-${m.toolName}`,toolCallId:m.toolCallId,state:m.state,input:S.input,output:S.output,errorText:S.errorText,providerExecuted:S.providerExecuted,...S.providerMetadata!=null?{callProviderMetadata:S.providerMetadata}:{}})}async function c(m){if(m!=null){let x=l.message.metadata!=null?dt(l.message.metadata,m):m;r!=null&&await(0,mt.validateTypes)({value:x,schema:r}),l.message.metadata=x}}switch(n.type){case"text-start":{let m={type:"text",text:"",providerMetadata:n.providerMetadata,state:"streaming"};l.activeTextParts[n.id]=m,l.message.parts.push(m),u();break}case"text-delta":{let m=l.activeTextParts[n.id];m.text+=n.delta,m.providerMetadata=(I=n.providerMetadata)!=null?I:m.providerMetadata,u();break}case"text-end":{let m=l.activeTextParts[n.id];m.state="done",m.providerMetadata=(U=n.providerMetadata)!=null?U:m.providerMetadata,delete l.activeTextParts[n.id],u();break}case"reasoning-start":{let m={type:"reasoning",text:"",providerMetadata:n.providerMetadata,state:"streaming"};l.activeReasoningParts[n.id]=m,l.message.parts.push(m),u();break}case"reasoning-delta":{let m=l.activeReasoningParts[n.id];m.text+=n.delta,m.providerMetadata=(L=n.providerMetadata)!=null?L:m.providerMetadata,u();break}case"reasoning-end":{let m=l.activeReasoningParts[n.id];m.providerMetadata=(y=n.providerMetadata)!=null?y:m.providerMetadata,m.state="done",delete l.activeReasoningParts[n.id],u();break}case"file":{l.message.parts.push({type:"file",mediaType:n.mediaType,url:n.url}),u();break}case"source-url":{l.message.parts.push({type:"source-url",sourceId:n.sourceId,url:n.url,title:n.title,providerMetadata:n.providerMetadata}),u();break}case"source-document":{l.message.parts.push({type:"source-document",sourceId:n.sourceId,mediaType:n.mediaType,title:n.title,filename:n.filename,providerMetadata:n.providerMetadata}),u();break}case"tool-input-start":{let m=l.message.parts.filter(Me);l.partialToolCalls[n.toolCallId]={text:"",toolName:n.toolName,index:m.length},M({toolCallId:n.toolCallId,toolName:n.toolName,state:"input-streaming",input:void 0,providerExecuted:n.providerExecuted}),u();break}case"tool-input-delta":{let m=l.partialToolCalls[n.toolCallId];m.text+=n.inputTextDelta;let{value:x}=await Xt(m.text);M({toolCallId:n.toolCallId,toolName:m.toolName,state:"input-streaming",input:x}),u();break}case"tool-input-available":{if(M({toolCallId:n.toolCallId,toolName:n.toolName,state:"input-available",input:n.input,providerExecuted:n.providerExecuted,providerMetadata:n.providerMetadata}),u(),e&&!n.providerExecuted){let m=await e({toolCall:n});m!=null&&(M({toolCallId:n.toolCallId,toolName:n.toolName,state:"output-available",input:n.input,output:m}),u())}break}case"tool-output-available":{let m=l.message.parts.filter(Me);if(m==null)throw new Error("tool_result must be preceded by a tool_call");let x=m.findIndex(A=>A.toolCallId===n.toolCallId);if(x===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let S=ut(m[x]);M({toolCallId:n.toolCallId,toolName:S,state:"output-available",input:m[x].input,output:n.output,providerExecuted:n.providerExecuted}),u();break}case"tool-output-error":{let m=l.message.parts.filter(Me);if(m==null)throw new Error("tool_result must be preceded by a tool_call");let x=m.findIndex(A=>A.toolCallId===n.toolCallId);if(x===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let S=ut(m[x]);M({toolCallId:n.toolCallId,toolName:S,state:"output-error",input:m[x].input,errorText:n.errorText,providerExecuted:n.providerExecuted}),u();break}case"start-step":{l.message.parts.push({type:"step-start"});break}case"finish-step":{l.activeTextParts={},l.activeReasoningParts={};break}case"start":{n.messageId!=null&&(l.message.id=n.messageId),await c(n.messageMetadata),(n.messageId!=null||n.messageMetadata!=null)&&u();break}case"finish":{await c(n.messageMetadata),n.messageMetadata!=null&&u();break}case"message-metadata":{await c(n.messageMetadata),n.messageMetadata!=null&&u();break}case"error":{o==null||o(new Error(n.errorText));break}default:if(Zt(n)){(a==null?void 0:a[n.type])!=null&&await(0,mt.validateTypes)({value:n.data,schema:a[n.type]});let m=n;if(m.transient){i==null||i(m);break}let x=m.id!=null?l.message.parts.find(S=>m.type===S.type&&m.id===S.id):void 0;x!=null?x.data=m.data:l.message.parts.push(m),i==null||i(m),u()}}p.enqueue(n)})}}))}function rr({messageId:t,originalMessages:e=[],onFinish:r,onError:a,stream:s}){let o=e==null?void 0:e[e.length-1];(o==null?void 0:o.role)!=="assistant"?o=void 0:t=o.id;let i=!1,n=s.pipeThrough(new TransformStream({transform(u,M){if(u.type==="start"){let c=u;c.messageId==null&&t!=null&&(c.messageId=t)}u.type==="abort"&&(i=!0),M.enqueue(u)}}));if(r==null)return n;let p=er({lastMessage:o?structuredClone(o):void 0,messageId:t!=null?t:""});return tr({stream:n,runUpdateMessageJob:async u=>{await u({state:p,write:()=>{}})},onError:a}).pipeThrough(new TransformStream({transform(u,M){M.enqueue(u)},async flush(){let u=p.message.id===(o==null?void 0:o.id);await r({isAborted:i,isContinuation:u,responseMessage:p.message,messages:[...u?e.slice(0,-1):e,p.message]})}}))}function ar({response:t,status:e,statusText:r,headers:a,stream:s,consumeSseStream:o}){let i=s.pipeThrough(new se);if(o){let[n,p]=i.tee();i=n,o({stream:p})}je({response:t,status:e,statusText:r,headers:Object.fromEntries(z(a,Ge).entries()),stream:i.pipeThrough(new TextEncoderStream)})}function ct(t){return t===void 0?[]:Array.isArray(t)?t:[t]}function ve(t){let e=t.pipeThrough(new TransformStream);return e[Symbol.asyncIterator]=()=>{let r=e.getReader();return{async next(){let{done:a,value:s}=await r.read();return a?{done:!0,value:void 0}:{done:!1,value:s}}}},e}async function or({stream:t,onError:e}){let r=t.getReader();try{for(;;){let{done:a}=await r.read();if(a)break}}catch(a){e==null||e(a)}finally{r.releaseLock()}}function ft(){let t,e;return{promise:new Promise((a,s)=>{t=a,e=s}),resolve:t,reject:e}}function nr(){let t=[],e=null,r=!1,a=ft(),s=()=>{r=!0,a.resolve(),t.forEach(i=>i.cancel()),t=[],e==null||e.close()},o=async()=>{if(r&&t.length===0){e==null||e.close();return}if(t.length===0)return a=ft(),await a.promise,o();try{let{value:i,done:n}=await t[0].read();n?(t.shift(),t.length>0?await o():r&&(e==null||e.close())):e==null||e.enqueue(i)}catch(i){e==null||e.error(i),t.shift(),s()}};return{stream:new ReadableStream({start(i){e=i},pull:o,async cancel(){for(let i of t)await i.cancel();t=[],r=!0}}),addStream:i=>{if(r)throw new Error("Cannot add inner stream: outer stream is closed");t.push(i.getReader()),a.resolve()},close:()=>{r=!0,a.resolve(),t.length===0&&(e==null||e.close())},terminate:s}}var ee=class{constructor(){this.status={type:"pending"};this._resolve=void 0;this._reject=void 0}get promise(){return this._promise?this._promise:(this._promise=new Promise((e,r)=>{this.status.type==="resolved"?e(this.status.value):this.status.type==="rejected"&&r(this.status.error),this._resolve=e,this._reject=r}),this._promise)}resolve(e){var r;this.status={type:"resolved",value:e},this._promise&&((r=this._resolve)==null||r.call(this,e))}reject(e){var r;this.status={type:"rejected",error:e},this._promise&&((r=this._reject)==null||r.call(this,e))}};function sr(){var t,e;return(e=(t=globalThis==null?void 0:globalThis.performance)==null?void 0:t.now())!=null?e:Date.now()}var gt=require("@ai-sdk/provider"),ir="AI_InvalidArgumentError",lr=`vercel.ai.error.${ir}`,Na=Symbol.for(lr),Da,_=class extends gt.AISDKError{constructor({parameter:r,value:a,message:s}){super({name:ir,message:`Invalid argument for parameter ${r}: ${s}`});this[Da]=!0;this.parameter=r,this.value=a}static isInstance(r){return gt.AISDKError.hasMarker(r,lr)}};Da=Na;var ur=require("@ai-sdk/provider"),ie=require("@ai-sdk/provider-utils");var Tt=require("@ai-sdk/provider"),dr="AI_RetryError",pr=`vercel.ai.error.${dr}`,Fa=Symbol.for(pr),qa,Oe=class extends Tt.AISDKError{constructor({message:r,reason:a,errors:s}){super({name:dr,message:r});this[qa]=!0;this.reason=a,this.errors=s,this.lastError=s[s.length-1]}static isInstance(r){return Tt.AISDKError.hasMarker(r,pr)}};qa=Fa;function Va(t,e){let r=t.responseHeaders;if(!r)return e;let a,s=r["retry-after-ms"];if(s){let i=parseFloat(s);Number.isNaN(i)||(a=i)}let o=r["retry-after"];if(o&&a===void 0){let i=parseFloat(o);Number.isNaN(i)?a=Date.parse(o)-Date.now():a=i*1e3}return a!==void 0&&0<=a&&a<60*1e3?a:e}var mr=({maxRetries:t=2,initialDelayInMs:e=2e3,backoffFactor:r=2}={})=>async a=>cr(a,{maxRetries:t,delayInMs:e,backoffFactor:r});async function cr(t,{maxRetries:e,delayInMs:r,backoffFactor:a},s=[]){try{return await t()}catch(o){if((0,ie.isAbortError)(o)||e===0)throw o;let i=(0,ie.getErrorMessage)(o),n=[...s,o],p=n.length;if(p>e)throw new Oe({message:`Failed after ${p} attempts. Last error: ${i}`,reason:"maxRetriesExceeded",errors:n});if(o instanceof Error&&ur.APICallError.isInstance(o)&&o.isRetryable===!0&&p<=e){let l=Va(o,r);return await(0,ie.delay)(l),cr(t,{maxRetries:e,delayInMs:a*r,backoffFactor:a},n)}throw p===1?o:new Oe({message:`Failed after ${p} attempts with non-retryable error: '${i}'`,reason:"errorNotRetryable",errors:n})}}function fr({maxRetries:t}){if(t!=null){if(!Number.isInteger(t))throw new _({parameter:"maxRetries",value:t,message:"maxRetries must be an integer"});if(t<0)throw new _({parameter:"maxRetries",value:t,message:"maxRetries must be >= 0"})}let e=t!=null?t:2;return{maxRetries:e,retry:mr({maxRetries:e})}}var Ar=require("@ai-sdk/provider-utils");var gr=require("@ai-sdk/provider-utils"),Tr=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}];var ja=t=>{let e=typeof t=="string"?(0,gr.convertBase64ToUint8Array)(t):t,r=(e[6]&127)<<21|(e[7]&127)<<14|(e[8]&127)<<7|e[9]&127;return e.slice(r+10)};function Ga(t){return typeof t=="string"&&t.startsWith("SUQz")||typeof t!="string"&&t.length>10&&t[0]===73&&t[1]===68&&t[2]===51?ja(t):t}function Sr({data:t,signatures:e}){let r=Ga(t);for(let a of e)if(typeof r=="string"?r.startsWith(a.base64Prefix):r.length>=a.bytesPrefix.length&&a.bytesPrefix.every((s,o)=>r[o]===s))return a.mediaType}var St=require("@ai-sdk/provider"),yr="AI_DownloadError",Ir=`vercel.ai.error.${yr}`,$a=Symbol.for(Ir),Ba,le=class extends St.AISDKError{constructor({url:r,statusCode:a,statusText:s,cause:o,message:i=o==null?`Failed to download ${r}: ${a} ${s}`:`Failed to download ${r}: ${o}`}){super({name:yr,message:i,cause:o});this[Ba]=!0;this.url=r,this.statusCode=a,this.statusText=s}static isInstance(r){return St.AISDKError.hasMarker(r,Ir)}};Ba=$a;async function xr({url:t}){var r;let e=t.toString();try{let a=await fetch(e);if(!a.ok)throw new le({url:e,statusCode:a.status,statusText:a.statusText});return{data:new Uint8Array(await a.arrayBuffer()),mediaType:(r=a.headers.get("content-type"))!=null?r:void 0}}catch(a){throw le.isInstance(a)?a:new le({url:e,cause:a})}}var vr=require("@ai-sdk/provider"),$e=require("@ai-sdk/provider-utils"),de=require("zod/v4");function Mr(t){try{let[e,r]=t.split(",");return{mediaType:e.split(";")[0].split(":")[1],base64Content:r}}catch(e){return{mediaType:void 0,base64Content:void 0}}}var yt=de.z.union([de.z.string(),de.z.instanceof(Uint8Array),de.z.instanceof(ArrayBuffer),de.z.custom(t=>{var e,r;return(r=(e=globalThis.Buffer)==null?void 0:e.isBuffer(t))!=null?r:!1},{message:"Must be a Buffer"})]);function It(t){if(t instanceof Uint8Array)return{data:t,mediaType:void 0};if(t instanceof ArrayBuffer)return{data:new Uint8Array(t),mediaType:void 0};if(typeof t=="string")try{t=new URL(t)}catch(e){}if(t instanceof URL&&t.protocol==="data:"){let{mediaType:e,base64Content:r}=Mr(t.toString());if(e==null||r==null)throw new vr.AISDKError({name:"InvalidDataContentError",message:`Invalid data URL format in content ${t.toString()}`});return{data:r,mediaType:e}}return{data:t,mediaType:void 0}}function Or(t){return typeof t=="string"?t:t instanceof ArrayBuffer?(0,$e.convertUint8ArrayToBase64)(new Uint8Array(t)):(0,$e.convertUint8ArrayToBase64)(t)}var xt=require("@ai-sdk/provider"),hr="AI_InvalidMessageRoleError",Er=`vercel.ai.error.${hr}`,Ja=Symbol.for(Er),Ya,Be=class extends xt.AISDKError{constructor({role:r,message:a=`Invalid message role: '${r}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:hr,message:a});this[Ya]=!0;this.role=r}static isInstance(r){return xt.AISDKError.hasMarker(r,Er)}};Ya=Ja;async function br({prompt:t,supportedUrls:e,downloadImplementation:r=xr}){let a=await za(t.messages,r,e);return[...t.system!=null?[{role:"system",content:t.system}]:[],...t.messages.map(s=>Wa({message:s,downloadedAssets:a}))]}function Wa({message:t,downloadedAssets:e}){let r=t.role;switch(r){case"system":return{role:"system",content:t.content,providerOptions:t.providerOptions};case"user":return typeof t.content=="string"?{role:"user",content:[{type:"text",text:t.content}],providerOptions:t.providerOptions}:{role:"user",content:t.content.map(a=>Ka(a,e)).filter(a=>a.type!=="text"||a.text!==""),providerOptions:t.providerOptions};case"assistant":return typeof t.content=="string"?{role:"assistant",content:[{type:"text",text:t.content}],providerOptions:t.providerOptions}:{role:"assistant",content:t.content.filter(a=>a.type!=="text"||a.text!=="").map(a=>{let s=a.providerOptions;switch(a.type){case"file":{let{data:o,mediaType:i}=It(a.data);return{type:"file",data:o,filename:a.filename,mediaType:i!=null?i:a.mediaType,providerOptions:s}}case"reasoning":return{type:"reasoning",text:a.text,providerOptions:s};case"text":return{type:"text",text:a.text,providerOptions:s};case"tool-call":return{type:"tool-call",toolCallId:a.toolCallId,toolName:a.toolName,input:a.input,providerExecuted:a.providerExecuted,providerOptions:s};case"tool-result":return{type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,output:a.output,providerOptions:s}}}),providerOptions:t.providerOptions};case"tool":return{role:"tool",content:t.content.map(a=>({type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,output:a.output,providerOptions:a.providerOptions})),providerOptions:t.providerOptions};default:{let a=r;throw new Be({role:a})}}}async function za(t,e,r){let a=t.filter(o=>o.role==="user").map(o=>o.content).filter(o=>Array.isArray(o)).flat().filter(o=>o.type==="image"||o.type==="file").map(o=>{var p;let i=(p=o.mediaType)!=null?p:o.type==="image"?"image/*":void 0,n=o.type==="image"?o.image:o.data;if(typeof n=="string")try{n=new URL(n)}catch(l){}return{mediaType:i,data:n}}).filter(o=>o.data instanceof URL&&o.mediaType!=null&&!(0,Ar.isUrlSupported)({url:o.data.toString(),mediaType:o.mediaType,supportedUrls:r})).map(o=>o.data),s=await Promise.all(a.map(async o=>({url:o,data:await e({url:o})})));return Object.fromEntries(s.map(({url:o,data:i})=>[o.toString(),i]))}function Ka(t,e){var p;if(t.type==="text")return{type:"text",text:t.text,providerOptions:t.providerOptions};let r,a=t.type;switch(a){case"image":r=t.image;break;case"file":r=t.data;break;default:throw new Error(`Unsupported part type: ${a}`)}let{data:s,mediaType:o}=It(r),i=o!=null?o:t.mediaType,n=s;if(n instanceof URL){let l=e[n.toString()];l&&(n=l.data,i!=null||(i=l.mediaType))}switch(a){case"image":return(n instanceof Uint8Array||typeof n=="string")&&(i=(p=Sr({data:n,signatures:Tr}))!=null?p:i),{type:"file",mediaType:i!=null?i:"image/*",filename:void 0,data:n,providerOptions:t.providerOptions};case"file":{if(i==null)throw new Error("Media type is missing for file part");return{type:"file",mediaType:i,filename:t.filename,data:n,providerOptions:t.providerOptions}}}}function Ur({maxOutputTokens:t,temperature:e,topP:r,topK:a,presencePenalty:s,frequencyPenalty:o,seed:i,stopSequences:n}){if(t!=null){if(!Number.isInteger(t))throw new _({parameter:"maxOutputTokens",value:t,message:"maxOutputTokens must be an integer"});if(t<1)throw new _({parameter:"maxOutputTokens",value:t,message:"maxOutputTokens must be >= 1"})}if(e!=null&&typeof e!="number")throw new _({parameter:"temperature",value:e,message:"temperature must be a number"});if(r!=null&&typeof r!="number")throw new _({parameter:"topP",value:r,message:"topP must be a number"});if(a!=null&&typeof a!="number")throw new _({parameter:"topK",value:a,message:"topK must be a number"});if(s!=null&&typeof s!="number")throw new _({parameter:"presencePenalty",value:s,message:"presencePenalty must be a number"});if(o!=null&&typeof o!="number")throw new _({parameter:"frequencyPenalty",value:o,message:"frequencyPenalty must be a number"});if(i!=null&&!Number.isInteger(i))throw new _({parameter:"seed",value:i,message:"seed must be an integer"});return{maxOutputTokens:t,temperature:e,topP:r,topK:a,presencePenalty:s,frequencyPenalty:o,stopSequences:n,seed:i}}var Pr=require("@ai-sdk/provider-utils");function Rr(t){return t!=null&&Object.keys(t).length>0}function wr({tools:t,toolChoice:e,activeTools:r}){return Rr(t)?{tools:(r!=null?Object.entries(t).filter(([s])=>r.includes(s)):Object.entries(t)).map(([s,o])=>{let i=o.type;switch(i){case void 0:case"function":return{type:"function",name:s,description:o.description,inputSchema:(0,Pr.asSchema)(o.inputSchema).jsonSchema};case"provider-defined":return{type:"provider-defined",name:s,id:o.id,args:o.args};default:{let n=i;throw new Error(`Unsupported tool type: ${n}`)}}}),toolChoice:e==null?{type:"auto"}:typeof e=="string"?{type:e}:{type:"tool",toolName:e.toolName}}:{tools:void 0,toolChoice:void 0}}var qr=require("@ai-sdk/gateway");var D=require("@ai-sdk/provider");var he=require("@ai-sdk/provider"),Cr="AI_InvalidToolInputError",_r=`vercel.ai.error.${Cr}`,Ha=Symbol.for(_r),Za,Ee=class extends he.AISDKError{constructor({toolInput:r,toolName:a,cause:s,message:o=`Invalid input for tool ${a}: ${(0,he.getErrorMessage)(s)}`}){super({name:Cr,message:o,cause:s});this[Za]=!0;this.toolInput=r,this.toolName=a}static isInstance(r){return he.AISDKError.hasMarker(r,_r)}};Za=Ha;var Mt=require("@ai-sdk/provider"),Lr="AI_NoSuchToolError",kr=`vercel.ai.error.${Lr}`,Qa=Symbol.for(kr),Xa,pe=class extends Mt.AISDKError{constructor({toolName:r,availableTools:a=void 0,message:s=`Model tried to call unavailable tool '${r}'. ${a===void 0?"No tools are available.":`Available tools: ${a.join(", ")}.`}`}){super({name:Lr,message:s});this[Xa]=!0;this.toolName=r,this.availableTools=a}static isInstance(r){return Mt.AISDKError.hasMarker(r,kr)}};Xa=Qa;var Ae=require("@ai-sdk/provider"),Nr="AI_ToolCallRepairError",Dr=`vercel.ai.error.${Nr}`,eo=Symbol.for(Dr),to,Je=class extends Ae.AISDKError{constructor({cause:r,originalError:a,message:s=`Error repairing tool call: ${(0,Ae.getErrorMessage)(r)}`}){super({name:Nr,message:s,cause:r});this[to]=!0;this.originalError=a}static isInstance(r){return Ae.AISDKError.hasMarker(r,Dr)}};to=eo;var Fr=require("@ai-sdk/provider"),be=class extends Fr.AISDKError{constructor(r){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${r.version} for provider "${r.provider}" and model "${r.modelId}". AI SDK 5 only supports models that implement specification version "v2".`});this.version=r.version,this.provider=r.provider,this.modelId=r.modelId}};function vt(t){if(typeof t!="string"){if(t.specificationVersion!=="v2")throw new be({version:t.specificationVersion,provider:t.provider,modelId:t.modelId});return t}let e=globalThis.AI_SDK_DEFAULT_PROVIDER;return(e!=null?e:qr.gateway).languageModel(t)}var te=require("@ai-sdk/provider"),Br=require("@ai-sdk/provider-utils"),Jr=require("zod/v4");var E=require("zod/v4");var g=require("zod/v4");var Ot=g.z.object({type:g.z.literal("text"),text:g.z.string(),providerOptions:O.optional()}),Vr=g.z.object({type:g.z.literal("image"),image:g.z.union([yt,g.z.instanceof(URL)]),mediaType:g.z.string().optional(),providerOptions:O.optional()}),ht=g.z.object({type:g.z.literal("file"),data:g.z.union([yt,g.z.instanceof(URL)]),filename:g.z.string().optional(),mediaType:g.z.string(),providerOptions:O.optional()}),jr=g.z.object({type:g.z.literal("reasoning"),text:g.z.string(),providerOptions:O.optional()}),Gr=g.z.object({type:g.z.literal("tool-call"),toolCallId:g.z.string(),toolName:g.z.string(),input:g.z.unknown(),providerOptions:O.optional(),providerExecuted:g.z.boolean().optional()}),ro=g.z.discriminatedUnion("type",[g.z.object({type:g.z.literal("text"),value:g.z.string()}),g.z.object({type:g.z.literal("json"),value:X}),g.z.object({type:g.z.literal("error-text"),value:g.z.string()}),g.z.object({type:g.z.literal("error-json"),value:X}),g.z.object({type:g.z.literal("content"),value:g.z.array(g.z.union([g.z.object({type:g.z.literal("text"),text:g.z.string()}),g.z.object({type:g.z.literal("media"),data:g.z.string(),mediaType:g.z.string()})]))})]),Et=g.z.object({type:g.z.literal("tool-result"),toolCallId:g.z.string(),toolName:g.z.string(),output:ro,providerOptions:O.optional()});var ao=E.z.object({role:E.z.literal("system"),content:E.z.string(),providerOptions:O.optional()});var oo=E.z.object({role:E.z.literal("user"),content:E.z.union([E.z.string(),E.z.array(E.z.union([Ot,Vr,ht]))]),providerOptions:O.optional()});var no=E.z.object({role:E.z.literal("assistant"),content:E.z.union([E.z.string(),E.z.array(E.z.union([Ot,ht,jr,Gr,Et]))]),providerOptions:O.optional()});var so=E.z.object({role:E.z.literal("tool"),content:E.z.array(Et),providerOptions:O.optional()});var $r=E.z.union([ao,oo,no,so]);async function Yr(t){if(t.prompt==null&&t.messages==null)throw new te.InvalidPromptError({prompt:t,message:"prompt or messages must be defined"});if(t.prompt!=null&&t.messages!=null)throw new te.InvalidPromptError({prompt:t,message:"prompt and messages cannot be defined at the same time"});if(t.system!=null&&typeof t.system!="string")throw new te.InvalidPromptError({prompt:t,message:"system must be a string"});let e;if(t.prompt!=null&&typeof t.prompt=="string")e=[{role:"user",content:t.prompt}];else if(t.prompt!=null&&Array.isArray(t.prompt))e=t.prompt;else if(t.messages!=null)e=t.messages;else throw new te.InvalidPromptError({prompt:t,message:"prompt or messages must be defined"});if(e.length===0)throw new te.InvalidPromptError({prompt:t,message:"messages must not be empty"});let r=await(0,Br.safeValidateTypes)({value:e,schema:Jr.z.array($r)});if(!r.success)throw new te.InvalidPromptError({prompt:t,message:"The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",cause:r.error});return{messages:e,system:t.system}}var Ye=require("@ai-sdk/gateway"),Wr=require("@ai-sdk/provider");function zr(t){return Ye.GatewayAuthenticationError.isInstance(t)||Ye.GatewayModelNotFoundError.isInstance(t)?new Wr.AISDKError({name:"GatewayError",message:"Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",cause:t}):t}function Ue({operationId:t,telemetry:e}){return{"operation.name":`${t}${(e==null?void 0:e.functionId)!=null?` ${e.functionId}`:""}`,"resource.name":e==null?void 0:e.functionId,"ai.operationId":t,"ai.telemetry.functionId":e==null?void 0:e.functionId}}function Kr({model:t,settings:e,telemetry:r,headers:a}){var s;return{"ai.model.provider":t.provider,"ai.model.id":t.modelId,...Object.entries(e).reduce((o,[i,n])=>(o[`ai.settings.${i}`]=n,o),{}),...Object.entries((s=r==null?void 0:r.metadata)!=null?s:{}).reduce((o,[i,n])=>(o[`ai.telemetry.metadata.${i}`]=n,o),{}),...Object.entries(a!=null?a:{}).reduce((o,[i,n])=>(n!==void 0&&(o[`ai.request.headers.${i}`]=n),o),{})}}var Zr=require("@opentelemetry/api");var Hr={startSpan(){return We},startActiveSpan(t,e,r,a){if(typeof e=="function")return e(We);if(typeof r=="function")return r(We);if(typeof a=="function")return a(We)}},We={spanContext(){return io},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(){return!1},recordException(){return this}},io={traceId:"",spanId:"",traceFlags:0};function Qr({isEnabled:t=!1,tracer:e}={}){return t?e||Zr.trace.getTracer("ai"):Hr}var At=require("@opentelemetry/api");function Re({name:t,tracer:e,attributes:r,fn:a,endWhenDone:s=!0}){return e.startActiveSpan(t,{attributes:r},async o=>{try{let i=await a(o);return s&&o.end(),i}catch(i){try{bt(o,i)}finally{o.end()}throw i}})}function bt(t,e){e instanceof Error?(t.recordException({name:e.name,message:e.message,stack:e.stack}),t.setStatus({code:At.SpanStatusCode.ERROR,message:e.message})):t.setStatus({code:At.SpanStatusCode.ERROR})}function K({telemetry:t,attributes:e}){return(t==null?void 0:t.isEnabled)!==!0?{}:Object.entries(e).reduce((r,[a,s])=>{if(s==null)return r;if(typeof s=="object"&&"input"in s&&typeof s.input=="function"){if((t==null?void 0:t.recordInputs)===!1)return r;let o=s.input();return o==null?r:{...r,[a]:o}}if(typeof s=="object"&&"output"in s&&typeof s.output=="function"){if((t==null?void 0:t.recordOutputs)===!1)return r;let o=s.output();return o==null?r:{...r,[a]:o}}return{...r,[a]:s}},{})}function Xr(t){return JSON.stringify(t.map(e=>({...e,content:typeof e.content=="string"?e.content:e.content.map(r=>r.type==="file"?{...r,data:r.data instanceof Uint8Array?Or(r.data):r.data}:r)})))}function ea(t,e){return{inputTokens:Pe(t.inputTokens,e.inputTokens),outputTokens:Pe(t.outputTokens,e.outputTokens),totalTokens:Pe(t.totalTokens,e.totalTokens),reasoningTokens:Pe(t.reasoningTokens,e.reasoningTokens),cachedInputTokens:Pe(t.cachedInputTokens,e.cachedInputTokens)}}function Pe(t,e){return t==null&&e==null?void 0:(t!=null?t:0)+(e!=null?e:0)}function ta(t,e){return new ReadableStream({async start(r){let a=t.getReader();try{for(;;){let{done:s,value:o}=await a.read();if(s){r.close();break}r.enqueue(o)}}catch(s){await e({error:s,controller:r})}},cancel(r){return t.cancel(r)}})}var oa=require("@ai-sdk/provider-utils");var Ke=require("@ai-sdk/provider-utils"),Ut=class{constructor({data:e,mediaType:r}){let a=e instanceof Uint8Array;this.base64Data=a?void 0:e,this.uint8ArrayData=a?e:void 0,this.mediaType=r}get base64(){return this.base64Data==null&&(this.base64Data=(0,Ke.convertUint8ArrayToBase64)(this.uint8ArrayData)),this.base64Data}get uint8Array(){return this.uint8ArrayData==null&&(this.uint8ArrayData=(0,Ke.convertBase64ToUint8Array)(this.base64Data)),this.uint8ArrayData}},ze=class extends Ut{constructor(r){super(r);this.type="file"}};var re=require("@ai-sdk/provider-utils");async function aa({toolCall:t,tools:e,repairToolCall:r,system:a,messages:s}){if(e==null)throw new pe({toolName:t.toolName});try{return await ra({toolCall:t,tools:e})}catch(o){if(r==null||!(pe.isInstance(o)||Ee.isInstance(o)))throw o;let i=null;try{i=await r({toolCall:t,tools:e,inputSchema:({toolName:n})=>{let{inputSchema:p}=e[n];return(0,re.asSchema)(p).jsonSchema},system:a,messages:s,error:o})}catch(n){throw new Je({cause:n,originalError:o})}if(i==null)throw o;return await ra({toolCall:i,tools:e})}}async function ra({toolCall:t,tools:e}){let r=t.toolName,a=e[r];if(a==null)throw new pe({toolName:t.toolName,availableTools:Object.keys(e)});let s=(0,re.asSchema)(a.inputSchema),o=t.input.trim()===""?await(0,re.safeValidateTypes)({value:{},schema:s}):await(0,re.safeParseJSON)({text:t.input,schema:s});if(o.success===!1)throw new Ee({toolName:r,toolInput:t.input,cause:o.error});return{type:"tool-call",toolCallId:t.toolCallId,toolName:r,input:o.value,providerExecuted:t.providerExecuted,providerMetadata:t.providerMetadata}}function na({tools:t,generatorStream:e,tracer:r,telemetry:a,system:s,messages:o,abortSignal:i,repairToolCall:n}){let p=null,l=new ReadableStream({start(y){p=y}}),u=new Set,M=new Map,c=!1,I;function U(){c&&u.size===0&&(I!=null&&p.enqueue(I),p.close())}let L=new TransformStream({async transform(y,m){let x=y.type;switch(x){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{m.enqueue(y);break}case"file":{m.enqueue({type:"file",file:new ze({data:y.data,mediaType:y.mediaType})});break}case"finish":{I={type:"finish",finishReason:y.finishReason,usage:y.usage,providerMetadata:y.providerMetadata};break}case"tool-call":{try{let S=await aa({toolCall:y,tools:t,repairToolCall:n,system:s,messages:o});m.enqueue(S);let A=t[S.toolName];if(M.set(S.toolCallId,S.input),A.onInputAvailable!=null&&await A.onInputAvailable({input:S.input,toolCallId:S.toolCallId,messages:o,abortSignal:i}),A.execute!=null&&S.providerExecuted!==!0){let F=(0,oa.generateId)();u.add(F),Re({name:"ai.toolCall",attributes:K({telemetry:a,attributes:{...Ue({operationId:"ai.toolCall",telemetry:a}),"ai.toolCall.name":S.toolName,"ai.toolCall.id":S.toolCallId,"ai.toolCall.input":{output:()=>JSON.stringify(S.input)}}}),tracer:r,fn:async G=>{let $;try{$=await A.execute(S.input,{toolCallId:S.toolCallId,messages:o,abortSignal:i})}catch(H){bt(G,H),p.enqueue({...S,type:"tool-error",error:H}),u.delete(F),U();return}p.enqueue({...S,type:"tool-result",output:$}),u.delete(F),U();try{G.setAttributes(K({telemetry:a,attributes:{"ai.toolCall.output":{output:()=>JSON.stringify($)}}}))}catch(H){}}})}}catch(S){p.enqueue({type:"error",error:S})}break}case"tool-result":{let S=y.toolName;y.isError?p.enqueue({type:"tool-error",toolCallId:y.toolCallId,toolName:S,input:M.get(y.toolCallId),providerExecuted:y.providerExecuted,error:y.result}):m.enqueue({type:"tool-result",toolCallId:y.toolCallId,toolName:S,input:M.get(y.toolCallId),output:y.result,providerExecuted:y.providerExecuted});break}default:{let S=x;throw new Error(`Unhandled chunk type: ${S}`)}}},flush(){c=!0,U()}});return new ReadableStream({async start(y){return Promise.all([e.pipeThrough(L).pipeTo(new WritableStream({write(m){y.enqueue(m)},close(){}})),l.pipeTo(new WritableStream({write(m){y.enqueue(m)},close(){y.close()}}))])}})}var He=class{constructor({content:e,finishReason:r,usage:a,warnings:s,request:o,response:i,providerMetadata:n}){this.content=e,this.finishReason=r,this.usage=a,this.warnings=s,this.request=o,this.response=i,this.providerMetadata=n}get text(){return this.content.filter(e=>e.type==="text").map(e=>e.text).join("")}get reasoning(){return this.content.filter(e=>e.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map(e=>e.text).join("")}get files(){return this.content.filter(e=>e.type==="file").map(e=>e.file)}get sources(){return this.content.filter(e=>e.type==="source")}get toolCalls(){return this.content.filter(e=>e.type==="tool-call")}get toolResults(){return this.content.filter(e=>e.type==="tool-result")}};function sa(t){return({steps:e})=>e.length===t}async function ia({stopConditions:t,steps:e}){return(await Promise.all(t.map(r=>r({steps:e})))).some(r=>r)}var la=require("@ai-sdk/provider");function Ze({output:t,tool:e,errorMode:r}){return r==="text"?{type:"error-text",value:(0,la.getErrorMessage)(t)}:r==="json"?{type:"error-json",value:t}:e!=null&&e.toModelOutput?e.toModelOutput(t):typeof t=="string"?{type:"text",value:t}:{type:"json",value:t}}function Rt({content:t,tools:e}){let r=[],a=t.filter(o=>o.type!=="source").filter(o=>(o.type!=="tool-result"||o.providerExecuted)&&(o.type!=="tool-error"||o.providerExecuted)).filter(o=>o.type!=="text"||o.text.length>0).map(o=>{switch(o.type){case"text":return{type:"text",text:o.text,providerOptions:o.providerMetadata};case"reasoning":return{type:"reasoning",text:o.text,providerOptions:o.providerMetadata};case"file":return{type:"file",data:o.file.base64,mediaType:o.file.mediaType,providerOptions:o.providerMetadata};case"tool-call":return{type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,providerExecuted:o.providerExecuted,providerOptions:o.providerMetadata};case"tool-result":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:Ze({tool:e==null?void 0:e[o.toolName],output:o.output,errorMode:"none"}),providerExecuted:!0,providerOptions:o.providerMetadata};case"tool-error":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:Ze({tool:e==null?void 0:e[o.toolName],output:o.error,errorMode:"json"}),providerOptions:o.providerMetadata}}});a.length>0&&r.push({role:"assistant",content:a});let s=t.filter(o=>o.type==="tool-result"||o.type==="tool-error").filter(o=>!o.providerExecuted).map(o=>({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:Ze({tool:e==null?void 0:e[o.toolName],output:o.type==="tool-result"?o.output:o.error,errorMode:o.type==="tool-error"?"text":"none"})}));return s.length>0&&r.push({role:"tool",content:s}),r}var lo=(0,Qe.createIdGenerator)({prefix:"aitxt",size:24});function pa({model:t,tools:e,toolChoice:r,system:a,prompt:s,messages:o,maxRetries:i,abortSignal:n,headers:p,stopWhen:l=sa(1),experimental_output:u,experimental_telemetry:M,prepareStep:c,providerOptions:I,experimental_activeTools:U,activeTools:L=U,experimental_repairToolCall:y,experimental_transform:m,includeRawChunks:x=!1,onChunk:S,onError:A=({error:fe})=>{console.error(fe)},onFinish:F,onAbort:G,onStepFinish:$,_internal:{now:H=sr,generateId:ue=lo,currentDate:me=()=>new Date}={},...ce}){return new Pt({model:vt(t),telemetry:M,headers:p,settings:ce,maxRetries:i,abortSignal:n,system:a,prompt:s,messages:o,tools:e,toolChoice:r,transforms:ct(m),activeTools:L,repairToolCall:y,stopConditions:ct(l),output:u,providerOptions:I,prepareStep:c,includeRawChunks:x,onChunk:S,onError:A,onFinish:F,onAbort:G,onStepFinish:$,now:H,currentDate:me,generateId:ue})}function po(t){if(!t)return new TransformStream({transform(i,n){n.enqueue({part:i,partialOutput:void 0})}});let e,r="",a="",s="";function o({controller:i,partialOutput:n=void 0}){i.enqueue({part:{type:"text",id:e,text:a},partialOutput:n}),a=""}return new TransformStream({async transform(i,n){if(i.type==="finish-step"&&a.length>0&&o({controller:n}),i.type!=="text"&&i.type!=="text-start"&&i.type!=="text-end"){n.enqueue({part:i,partialOutput:void 0});return}if(e==null)e=i.id;else if(i.id!==e){n.enqueue({part:i,partialOutput:void 0});return}if(i.type==="text-start"){n.enqueue({part:i,partialOutput:void 0});return}if(i.type==="text-end"){a.length>0&&o({controller:n}),n.enqueue({part:i,partialOutput:void 0});return}r+=i.text,a+=i.text;let p=await t.parsePartial({text:r});if(p!=null){let l=JSON.stringify(p.partial);l!==s&&(o({controller:n,partialOutput:p.partial}),s=l)}}})}var Pt=class{constructor({model:e,telemetry:r,headers:a,settings:s,maxRetries:o,abortSignal:i,system:n,prompt:p,messages:l,tools:u,toolChoice:M,transforms:c,activeTools:I,repairToolCall:U,stopConditions:L,output:y,providerOptions:m,prepareStep:x,includeRawChunks:S,now:A,currentDate:F,generateId:G,onChunk:$,onError:H,onFinish:ue,onAbort:me,onStepFinish:ce}){this._totalUsage=new ee;this._finishReason=new ee;this._steps=new ee;this.output=y,this.includeRawChunks=S;let fe,q=[],wt=[],Ce,_e,Ct={},_t=[],k=[],Xe,ge={},ae={},va=new TransformStream({async transform(P,h){var v,Q,Te;h.enqueue(P);let{part:f}=P;if((f.type==="text"||f.type==="reasoning"||f.type==="source"||f.type==="tool-call"||f.type==="tool-result"||f.type==="tool-input-start"||f.type==="tool-input-delta"||f.type==="raw")&&await($==null?void 0:$({chunk:f})),f.type==="error"&&await H({error:zr(f.error)}),f.type==="text-start"&&(ge[f.id]={type:"text",text:"",providerMetadata:f.providerMetadata},q.push(ge[f.id])),f.type==="text"){let b=ge[f.id];if(b==null){h.enqueue({part:{type:"error",error:`text part ${f.id} not found`},partialOutput:void 0});return}b.text+=f.text,b.providerMetadata=(v=f.providerMetadata)!=null?v:b.providerMetadata}if(f.type==="text-end"&&delete ge[f.id],f.type==="reasoning-start"&&(ae[f.id]={type:"reasoning",text:"",providerMetadata:f.providerMetadata},q.push(ae[f.id])),f.type==="reasoning"){let b=ae[f.id];if(b==null){h.enqueue({part:{type:"error",error:`reasoning part ${f.id} not found`},partialOutput:void 0});return}b.text+=f.text,b.providerMetadata=(Q=f.providerMetadata)!=null?Q:b.providerMetadata}if(f.type==="reasoning-end"){let b=ae[f.id];if(b==null){h.enqueue({part:{type:"error",error:`reasoning part ${f.id} not found`},partialOutput:void 0});return}b.providerMetadata=(Te=f.providerMetadata)!=null?Te:b.providerMetadata,delete ae[f.id]}if(f.type==="file"&&q.push({type:"file",file:f.file}),f.type==="source"&&q.push(f),f.type==="tool-call"&&q.push(f),f.type==="tool-result"&&q.push(f),f.type==="tool-error"&&q.push(f),f.type==="start-step"&&(Ct=f.request,_t=f.warnings),f.type==="finish-step"){let b=Rt({content:q,tools:u}),W=new He({content:q,finishReason:f.finishReason,usage:f.usage,warnings:_t,request:Ct,response:{...f.response,messages:[...wt,...b]},providerMetadata:f.providerMetadata});await(ce==null?void 0:ce(W)),k.push(W),q=[],ae={},ge={},wt.push(...b),fe.resolve()}f.type==="finish"&&(_e=f.totalUsage,Ce=f.finishReason)},async flush(P){try{if(k.length===0)return;let h=Ce!=null?Ce:"unknown",f=_e!=null?_e:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};J._finishReason.resolve(h),J._totalUsage.resolve(f),J._steps.resolve(k);let v=k[k.length-1];await(ue==null?void 0:ue({finishReason:h,totalUsage:f,usage:v.usage,content:v.content,text:v.text,reasoningText:v.reasoningText,reasoning:v.reasoning,files:v.files,sources:v.sources,toolCalls:v.toolCalls,toolResults:v.toolResults,request:v.request,response:v.response,warnings:v.warnings,providerMetadata:v.providerMetadata,steps:k})),Xe.setAttributes(K({telemetry:r,attributes:{"ai.response.finishReason":h,"ai.response.text":{output:()=>v.text},"ai.response.toolCalls":{output:()=>{var Q;return(Q=v.toolCalls)!=null&&Q.length?JSON.stringify(v.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(v.providerMetadata),"ai.usage.inputTokens":f.inputTokens,"ai.usage.outputTokens":f.outputTokens,"ai.usage.totalTokens":f.totalTokens,"ai.usage.reasoningTokens":f.reasoningTokens,"ai.usage.cachedInputTokens":f.cachedInputTokens}}))}catch(h){P.error(h)}finally{Xe.end()}}}),Le=nr();this.addStream=Le.addStream,this.closeStream=Le.close;let Z=Le.stream;Z=ta(Z,({error:P,controller:h})=>{(0,Qe.isAbortError)(P)&&(i!=null&&i.aborted)?(me==null||me({steps:k}),h.enqueue({type:"abort"}),h.close()):h.error(P)}),Z=Z.pipeThrough(new TransformStream({start(P){P.enqueue({type:"start"})}}));for(let P of c)Z=Z.pipeThrough(P({tools:u,stopStream(){Le.terminate()}}));this.baseStream=Z.pipeThrough(po(y)).pipeThrough(va);let{maxRetries:Oa,retry:ha}=fr({maxRetries:o}),et=Qr(r),B=Ur(s),Lt=Kr({model:e,telemetry:r,headers:a,settings:{...B,maxRetries:Oa}}),J=this;Re({name:"ai.streamText",attributes:K({telemetry:r,attributes:{...Ue({operationId:"ai.streamText",telemetry:r}),...Lt,"ai.prompt":{input:()=>JSON.stringify({system:n,prompt:p,messages:l})}}}),tracer:et,endWhenDone:!1,fn:async P=>{Xe=P;async function h({currentStep:f,responseMessages:v,usage:Q}){var qt,Vt,jt,Gt,$t;let Te=J.includeRawChunks;fe=new ee;let b=await Yr({system:n,prompt:p,messages:l}),W=[...b.messages,...v],w=await(x==null?void 0:x({model:e,steps:k,stepNumber:k.length,messages:W})),kt=await br({prompt:{system:(qt=w==null?void 0:w.system)!=null?qt:b.system,messages:(Vt=w==null?void 0:w.messages)!=null?Vt:W},supportedUrls:await e.supportedUrls}),Se=vt((jt=w==null?void 0:w.model)!=null?jt:e),{toolChoice:tt,tools:ke}=wr({tools:u,toolChoice:(Gt=w==null?void 0:w.toolChoice)!=null?Gt:M,activeTools:($t=w==null?void 0:w.activeTools)!=null?$t:I}),{result:{stream:Ea,response:rt,request:at},doStreamSpan:oe,startTimestampMs:Nt}=await ha(()=>Re({name:"ai.streamText.doStream",attributes:K({telemetry:r,attributes:{...Ue({operationId:"ai.streamText.doStream",telemetry:r}),...Lt,"ai.model.provider":Se.provider,"ai.model.id":Se.modelId,"ai.prompt.messages":{input:()=>Xr(kt)},"ai.prompt.tools":{input:()=>ke==null?void 0:ke.map(T=>JSON.stringify(T))},"ai.prompt.toolChoice":{input:()=>tt!=null?JSON.stringify(tt):void 0},"gen_ai.system":Se.provider,"gen_ai.request.model":Se.modelId,"gen_ai.request.frequency_penalty":B.frequencyPenalty,"gen_ai.request.max_tokens":B.maxOutputTokens,"gen_ai.request.presence_penalty":B.presencePenalty,"gen_ai.request.stop_sequences":B.stopSequences,"gen_ai.request.temperature":B.temperature,"gen_ai.request.top_k":B.topK,"gen_ai.request.top_p":B.topP}}),tracer:et,endWhenDone:!1,fn:async T=>({startTimestampMs:A(),doStreamSpan:T,result:await Se.doStream({...B,tools:ke,toolChoice:tt,responseFormat:y==null?void 0:y.responseFormat,prompt:kt,providerOptions:m,abortSignal:i,headers:a,includeRawChunks:Te})})})),Aa=na({tools:u,generatorStream:Ea,tracer:et,telemetry:r,system:n,messages:W,repairToolCall:U,abortSignal:i}),ba=at!=null?at:{},Ne=[],ot=[],De,nt={},ne="unknown",N={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},st,Dt=!0,V={id:G(),timestamp:F(),modelId:e.modelId},Ft="";J.addStream(Aa.pipeThrough(new TransformStream({async transform(T,R){var Ie,Fe,Y,Bt;if(T.type==="stream-start"){De=T.warnings;return}if(Dt){let C=A()-Nt;Dt=!1,oe.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":C}),oe.setAttributes({"ai.response.msToFirstChunk":C}),R.enqueue({type:"start-step",request:ba,warnings:De!=null?De:[]})}let ye=T.type;switch(ye){case"text-start":case"text-end":{R.enqueue(T);break}case"text-delta":{T.delta.length>0&&(R.enqueue({type:"text",id:T.id,text:T.delta,providerMetadata:T.providerMetadata}),Ft+=T.delta);break}case"reasoning-start":case"reasoning-end":{R.enqueue(T);break}case"reasoning-delta":{R.enqueue({type:"reasoning",id:T.id,text:T.delta,providerMetadata:T.providerMetadata});break}case"tool-call":{R.enqueue(T),Ne.push(T);break}case"tool-result":{R.enqueue(T),ot.push(T);break}case"tool-error":{R.enqueue(T),ot.push(T);break}case"response-metadata":{V={id:(Ie=T.id)!=null?Ie:V.id,timestamp:(Fe=T.timestamp)!=null?Fe:V.timestamp,modelId:(Y=T.modelId)!=null?Y:V.modelId};break}case"finish":{N=T.usage,ne=T.finishReason,st=T.providerMetadata;let C=A()-Nt;oe.addEvent("ai.stream.finish"),oe.setAttributes({"ai.response.msToFinish":C,"ai.response.avgOutputTokensPerSecond":1e3*((Bt=N.outputTokens)!=null?Bt:0)/C});break}case"file":{R.enqueue(T);break}case"source":{R.enqueue(T);break}case"tool-input-start":{nt[T.id]=T.toolName;let C=u==null?void 0:u[T.toolName];(C==null?void 0:C.onInputStart)!=null&&await C.onInputStart({toolCallId:T.id,messages:W,abortSignal:i}),R.enqueue(T);break}case"tool-input-end":{delete nt[T.id],R.enqueue(T);break}case"tool-input-delta":{let C=nt[T.id],qe=u==null?void 0:u[C];(qe==null?void 0:qe.onInputDelta)!=null&&await qe.onInputDelta({inputTextDelta:T.delta,toolCallId:T.id,messages:W,abortSignal:i}),R.enqueue(T);break}case"error":{R.enqueue(T),ne="error";break}case"raw":{Te&&R.enqueue(T);break}default:{let C=ye;throw new Error(`Unknown chunk type: ${C}`)}}},async flush(T){let R=Ne.length>0?JSON.stringify(Ne):void 0;try{oe.setAttributes(K({telemetry:r,attributes:{"ai.response.finishReason":ne,"ai.response.text":{output:()=>Ft},"ai.response.toolCalls":{output:()=>R},"ai.response.id":V.id,"ai.response.model":V.modelId,"ai.response.timestamp":V.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(st),"ai.usage.inputTokens":N.inputTokens,"ai.usage.outputTokens":N.outputTokens,"ai.usage.totalTokens":N.totalTokens,"ai.usage.reasoningTokens":N.reasoningTokens,"ai.usage.cachedInputTokens":N.cachedInputTokens,"gen_ai.response.finish_reasons":[ne],"gen_ai.response.id":V.id,"gen_ai.response.model":V.modelId,"gen_ai.usage.input_tokens":N.inputTokens,"gen_ai.usage.output_tokens":N.outputTokens}}))}catch(Y){}finally{oe.end()}T.enqueue({type:"finish-step",finishReason:ne,usage:N,providerMetadata:st,response:{...V,headers:rt==null?void 0:rt.headers}});let ye=ea(Q,N);await fe.promise;let Ie=Ne.filter(Y=>Y.providerExecuted!==!0),Fe=ot.filter(Y=>Y.providerExecuted!==!0);if(Ie.length>0&&Fe.length===Ie.length&&!await ia({stopConditions:L,steps:k})){v.push(...Rt({content:k[k.length-1].content,tools:u}));try{await h({currentStep:f+1,responseMessages:v,usage:ye})}catch(Y){T.enqueue({type:"error",error:Y}),J.closeStream()}}else T.enqueue({type:"finish",finishReason:ne,totalUsage:ye}),J.closeStream()}})))}await h({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(P=>{J.addStream(new ReadableStream({start(h){h.enqueue({type:"error",error:P}),h.close()}})),J.closeStream()})}get steps(){return this._steps.promise}get finalStep(){return this.steps.then(e=>e[e.length-1])}get content(){return this.finalStep.then(e=>e.content)}get warnings(){return this.finalStep.then(e=>e.warnings)}get providerMetadata(){return this.finalStep.then(e=>e.providerMetadata)}get text(){return this.finalStep.then(e=>e.text)}get reasoningText(){return this.finalStep.then(e=>e.reasoningText)}get reasoning(){return this.finalStep.then(e=>e.reasoning)}get sources(){return this.finalStep.then(e=>e.sources)}get files(){return this.finalStep.then(e=>e.files)}get toolCalls(){return this.finalStep.then(e=>e.toolCalls)}get toolResults(){return this.finalStep.then(e=>e.toolResults)}get usage(){return this.finalStep.then(e=>e.usage)}get request(){return this.finalStep.then(e=>e.request)}get response(){return this.finalStep.then(e=>e.response)}get totalUsage(){return this._totalUsage.promise}get finishReason(){return this._finishReason.promise}teeStream(){let[e,r]=this.baseStream.tee();return this.baseStream=r,e}get textStream(){return ve(this.teeStream().pipeThrough(new TransformStream({transform({part:e},r){e.type==="text"&&r.enqueue(e.text)}})))}get fullStream(){return ve(this.teeStream().pipeThrough(new TransformStream({transform({part:e},r){r.enqueue(e)}})))}async consumeStream(e){var r;try{await or({stream:this.fullStream,onError:e==null?void 0:e.onError})}catch(a){(r=e==null?void 0:e.onError)==null||r.call(e,a)}}get experimental_partialOutputStream(){if(this.output==null)throw new Ve;return ve(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},r){e!=null&&r.enqueue(e)}})))}toUIMessageStream({originalMessages:e,generateMessageId:r,onFinish:a,messageMetadata:s,sendReasoning:o=!0,sendSources:i=!1,sendStart:n=!0,sendFinish:p=!0,onError:l=da.getErrorMessage}={}){let u=r!=null?Ht({originalMessages:e,responseMessageId:r}):void 0,M=this.fullStream.pipeThrough(new TransformStream({transform:async(c,I)=>{let U=s==null?void 0:s({part:c}),L=c.type;switch(L){case"text-start":{I.enqueue({type:"text-start",id:c.id,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"text":{I.enqueue({type:"text-delta",id:c.id,delta:c.text,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"text-end":{I.enqueue({type:"text-end",id:c.id,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"reasoning-start":{I.enqueue({type:"reasoning-start",id:c.id,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"reasoning":{o&&I.enqueue({type:"reasoning-delta",id:c.id,delta:c.text,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"reasoning-end":{I.enqueue({type:"reasoning-end",id:c.id,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"file":{I.enqueue({type:"file",mediaType:c.file.mediaType,url:`data:${c.file.mediaType};base64,${c.file.base64}`});break}case"source":{i&&c.sourceType==="url"&&I.enqueue({type:"source-url",sourceId:c.id,url:c.url,title:c.title,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}}),i&&c.sourceType==="document"&&I.enqueue({type:"source-document",sourceId:c.id,mediaType:c.mediaType,title:c.title,filename:c.filename,...c.providerMetadata!=null?{providerMetadata:c.providerMetadata}:{}});break}case"tool-input-start":{I.enqueue({type:"tool-input-start",toolCallId:c.id,toolName:c.toolName,providerExecuted:c.providerExecuted});break}case"tool-input-delta":{I.enqueue({type:"tool-input-delta",toolCallId:c.id,inputTextDelta:c.delta});break}case"tool-call":{I.enqueue({type:"tool-input-available",toolCallId:c.toolCallId,toolName:c.toolName,input:c.input,providerExecuted:c.providerExecuted,providerMetadata:c.providerMetadata});break}case"tool-result":{I.enqueue({type:"tool-output-available",toolCallId:c.toolCallId,output:c.output,providerExecuted:c.providerExecuted});break}case"tool-error":{I.enqueue({type:"tool-output-error",toolCallId:c.toolCallId,errorText:l(c.error),providerExecuted:c.providerExecuted});break}case"error":{I.enqueue({type:"error",errorText:l(c.error)});break}case"start-step":{I.enqueue({type:"start-step"});break}case"finish-step":{I.enqueue({type:"finish-step"});break}case"start":{n&&I.enqueue({type:"start",...U!=null?{messageMetadata:U}:{},...u!=null?{messageId:u}:{}});break}case"finish":{p&&I.enqueue({type:"finish",...U!=null?{messageMetadata:U}:{}});break}case"abort":{I.enqueue(c);break}case"tool-input-end":break;case"raw":break;default:{let y=L;throw new Error(`Unknown chunk type: ${y}`)}}U!=null&&L!=="start"&&L!=="finish"&&I.enqueue({type:"message-metadata",messageMetadata:U})}}));return ve(rr({stream:M,messageId:u!=null?u:r==null?void 0:r(),originalMessages:e,onFinish:a,onError:l}))}pipeUIMessageStreamToResponse(e,{originalMessages:r,generateMessageId:a,onFinish:s,messageMetadata:o,sendReasoning:i,sendSources:n,sendFinish:p,sendStart:l,onError:u,...M}={}){ar({response:e,stream:this.toUIMessageStream({originalMessages:r,generateMessageId:a,onFinish:s,messageMetadata:o,sendReasoning:i,sendSources:n,sendFinish:p,sendStart:l,onError:u}),...M})}pipeTextStreamToResponse(e,r){zt({response:e,textStream:this.textStream,...r})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:r,onFinish:a,messageMetadata:s,sendReasoning:o,sendSources:i,sendFinish:n,sendStart:p,onError:l,...u}={}){return Kt({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:r,onFinish:a,messageMetadata:s,sendReasoning:o,sendSources:i,sendFinish:n,sendStart:p,onError:l}),...u})}toTextStreamResponse(e){return Wt({textStream:this.textStream,...e})}};var we=require("fs"),ua=require("path"),ma=require("@ai-sdk/gateway");function ca(){return!process.stdin.isTTY}async function uo(){return new Promise(t=>{let e="";process.stdin.setEncoding("utf8"),process.stdin.on("data",r=>{e+=r}),process.stdin.on("end",()=>{t(e.trim())})})}function fa(t){var a;let e=(a=t.split(".").pop())==null?void 0:a.toLowerCase();return{js:"application/javascript",ts:"application/typescript",jsx:"text/jsx",tsx:"text/tsx",json:"application/json",md:"text/markdown",txt:"text/plain",py:"text/x-python",html:"text/html",css:"text/css",xml:"application/xml",yaml:"application/yaml",yml:"application/yaml",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff"}[e||""]||"text/plain"}function ga(t){let e=(0,ua.resolve)(t);if(!(0,we.existsSync)(e))throw new Error(`File not found: ${t}`);let r=fa(t),a=r.startsWith("image/"),s;if(a){let o=(0,we.readFileSync)(e);s=`data:${r};base64,${o.toString("base64")}`}else s=(0,we.readFileSync)(e,"utf8");return{name:t,content:s,mediaType:r}}function Ta(){let t=process.argv.slice(2),e={model:process.env.AI_DEFAULT_MODEL||"openai/gpt-4",files:[],help:!1,version:!1,verbose:process.env.AI_VERBOSE==="true",system:process.env.AI_SYSTEM},r=[],a=0;for(;a<t.length;){let s=t[a];switch(s){case"-h":case"--help":e.help=!0;break;case"-V":case"--version":e.version=!0;break;case"-v":case"--verbose":e.verbose=!0;break;case"-m":case"--model":if(a+1<t.length)e.model=t[a+1],a++;else throw new Error("Model option requires a value");break;case"-f":case"--file":if(a+1<t.length)e.files.push(t[a+1]),a++;else throw new Error("File option requires a value");break;case"-s":case"--system":if(a+1<t.length)e.system=t[a+1],a++;else throw new Error("System option requires a value");break;default:if(s.startsWith("-"))throw new Error(`Unknown option: ${s}`);r.push(s)}a++}return r.length>0&&(e.prompt=r.join(" ")),e}function Sa(){console.log(`Usage: ai [options] [prompt]
7
7
 
8
8
  AI CLI - Stream text generation from various AI models
9
9
 
@@ -39,15 +39,15 @@ Unix-style piping:
39
39
 
40
40
  The gateway supports OpenAI, Anthropic, Google, Groq, and more providers.
41
41
 
42
- For detailed setup instructions, visit: https://ai-sdk.dev/docs/cli/authentication`)}function Ta(){console.log("1.0.0")}function Sa(t){return pa.gateway.languageModel(t)}function ya(t){if(t.length===0)return"";let e=t.filter(o=>{var s;return!((s=o.mediaType)!=null&&s.startsWith("image/"))});if(e.length===0)return"";let r=`
42
+ For detailed setup instructions, visit: https://ai-sdk.dev/docs/cli/authentication`)}function ya(){console.log("1.0.0")}function Ia(t){return ma.gateway.languageModel(t)}function xa(t){if(t.length===0)return"";let e=t.filter(a=>{var s;return!((s=a.mediaType)!=null&&s.startsWith("image/"))});if(e.length===0)return"";let r=`
43
43
 
44
44
  Attached files:
45
- `;for(let o of e)r+=`
46
- --- ${o.name} ---
47
- `,r+=o.content,r+=`
48
- `;return r}async function Ia(){try{let t=fa();if(t.help){ga();return}if(t.version){Ta();return}let e=t.prompt||"";if(ua()){let l=await lo();l&&(e=e?`${l}
45
+ `;for(let a of e)r+=`
46
+ --- ${a.name} ---
47
+ `,r+=a.content,r+=`
48
+ `;return r}async function Ma(){try{let t=Ta();if(t.help){Sa();return}if(t.version){ya();return}let e=t.prompt||"";if(ca()){let l=await uo();l&&(e=e?`${l}
49
49
 
50
- ${e}`:l)}e.trim()||(console.error("Error: No prompt provided. Use --help for usage information."),process.exit(1));let r=[];for(let l of t.files)try{let u=ca(l);r.push(u)}catch(u){console.error(`Error reading file ${l}: ${u instanceof Error?u.message:"Unknown error"}`),process.exit(1)}let o=e+ya(r),s=r.filter(l=>{var u;return(u=l.mediaType)==null?void 0:u.startsWith("image/")});s.length>0&&t.model==="openai/gpt-4"&&(t.model="openai/gpt-4o"),t.verbose&&(console.error(`Using model: ${t.model}`),r.length>0&&console.error(`Attached files: ${r.map(l=>l.name).join(", ")}`),console.error("")),process.env.AI_GATEWAY_API_KEY||(console.error(`Error: Authentication required.
50
+ ${e}`:l)}e.trim()||(console.error("Error: No prompt provided. Use --help for usage information."),process.exit(1));let r=[];for(let l of t.files)try{let u=ga(l);r.push(u)}catch(u){console.error(`Error reading file ${l}: ${u instanceof Error?u.message:"Unknown error"}`),process.exit(1)}let a=e+xa(r),s=r.filter(l=>{var u;return(u=l.mediaType)==null?void 0:u.startsWith("image/")});s.length>0&&t.model==="openai/gpt-4"&&(t.model="openai/gpt-4o"),t.verbose&&(console.error(`Using model: ${t.model}`),r.length>0&&console.error(`Attached files: ${r.map(l=>l.name).join(", ")}`),console.error("")),process.env.AI_GATEWAY_API_KEY||(console.error(`Error: Authentication required.
51
51
 
52
52
  Set up authentication with one of these options:
53
53
 
@@ -59,6 +59,6 @@ Set up authentication with one of these options:
59
59
  echo 'export AI_GATEWAY_API_KEY="your-key"' >> ~/.bashrc
60
60
 
61
61
  Get your API key from the Vercel Dashboard (AI tab > API keys).
62
- Use --help for more details and examples.`),process.exit(1));let i=Sa(t.model),n;if(s.length>0){let l=[{type:"text",text:o}];for(let u of s)l.push({type:"image",image:u.content});n=[{role:"user",content:l}]}let p=await la(n?{model:i,messages:n,system:t.system}:{model:i,prompt:o,system:t.system});for await(let l of p.textStream)process.stdout.write(l);if(process.stdout.write(`
62
+ Use --help for more details and examples.`),process.exit(1));let i=Ia(t.model),n;if(s.length>0){let l=[{type:"text",text:a}];for(let u of s)l.push({type:"image",image:u.content});n=[{role:"user",content:l}]}let p=await pa(n?{model:i,messages:n,system:t.system}:{model:i,prompt:a,system:t.system});for await(let l of p.textStream)process.stdout.write(l);if(process.stdout.write(`
63
63
  `),t.verbose){let l=await p.usage;l&&console.error(`
64
- Usage: ${l.inputTokens} prompt + ${l.outputTokens} completion = ${l.totalTokens} total tokens`)}}catch(t){console.error(`Error: ${t instanceof Error?t.message:"Unknown error"}`),process.exit(1)}}process.on("SIGINT",()=>{process.exit(0)});process.on("SIGTERM",()=>{process.exit(0)});Ia().catch(t=>{console.error(`Fatal error: ${t instanceof Error?t.message:"Unknown error"}`),process.exit(1)});0&&(module.exports={formatAttachedFiles,getMediaType,isStdinAvailable,main,parseArgs,readFileContent,resolveModel,showHelp,showVersion});
64
+ Usage: ${l.inputTokens} prompt + ${l.outputTokens} completion = ${l.totalTokens} total tokens`)}}catch(t){console.error(`Error: ${t instanceof Error?t.message:"Unknown error"}`),process.exit(1)}}process.on("SIGINT",()=>{process.exit(0)});process.on("SIGTERM",()=>{process.exit(0)});Ma().catch(t=>{console.error(`Fatal error: ${t instanceof Error?t.message:"Unknown error"}`),process.exit(1)});0&&(module.exports={formatAttachedFiles,getMediaType,isStdinAvailable,main,parseArgs,readFileContent,resolveModel,showHelp,showVersion});
package/dist/index.d.mts CHANGED
@@ -1004,13 +1004,13 @@ Callback that is set using the `onError` option.
1004
1004
  */
1005
1005
  type StreamTextOnErrorCallback = (event: {
1006
1006
  error: unknown;
1007
- }) => Promise<void> | void;
1007
+ }) => PromiseLike<void> | void;
1008
1008
  /**
1009
1009
  Callback that is set using the `onStepFinish` option.
1010
1010
 
1011
1011
  @param stepResult - The result of the step.
1012
1012
  */
1013
- type StreamTextOnStepFinishCallback<TOOLS extends ToolSet> = (stepResult: StepResult<TOOLS>) => Promise<void> | void;
1013
+ type StreamTextOnStepFinishCallback<TOOLS extends ToolSet> = (stepResult: StepResult<TOOLS>) => PromiseLike<void> | void;
1014
1014
  /**
1015
1015
  Callback that is set using the `onChunk` option.
1016
1016
 
@@ -1020,7 +1020,7 @@ type StreamTextOnChunkCallback<TOOLS extends ToolSet> = (event: {
1020
1020
  chunk: Extract<TextStreamPart<TOOLS>, {
1021
1021
  type: 'text' | 'reasoning' | 'source' | 'tool-call' | 'tool-input-start' | 'tool-input-delta' | 'tool-result' | 'raw';
1022
1022
  }>;
1023
- }) => Promise<void> | void;
1023
+ }) => PromiseLike<void> | void;
1024
1024
  /**
1025
1025
  Callback that is set using the `onFinish` option.
1026
1026
 
@@ -1035,7 +1035,18 @@ Details for all steps.
1035
1035
  Total usage for all steps. This is the sum of the usage of all steps.
1036
1036
  */
1037
1037
  readonly totalUsage: LanguageModelUsage;
1038
- }) => Promise<void> | void;
1038
+ }) => PromiseLike<void> | void;
1039
+ /**
1040
+ Callback that is set using the `onAbort` option.
1041
+
1042
+ @param event - The event that is passed to the callback.
1043
+ */
1044
+ type StreamTextOnAbortCallback<TOOLS extends ToolSet> = (event: {
1045
+ /**
1046
+ Details for all previously finished steps.
1047
+ */
1048
+ readonly steps: StepResult<TOOLS>[];
1049
+ }) => PromiseLike<void> | void;
1039
1050
  /**
1040
1051
  Generate a text and call tools for a given prompt using a language model.
1041
1052
 
@@ -1084,7 +1095,7 @@ If set and supported by the model, calls will generate deterministic results.
1084
1095
  @return
1085
1096
  A result object for accessing different stream types and additional information.
1086
1097
  */
1087
- declare function streamText<TOOLS extends ToolSet, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, prepareStep, providerOptions, experimental_activeTools, activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, includeRawChunks, onChunk, onError, onFinish, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
1098
+ declare function streamText<TOOLS extends ToolSet, OUTPUT = never, PARTIAL_OUTPUT = never>({ model, tools, toolChoice, system, prompt, messages, maxRetries, abortSignal, headers, stopWhen, experimental_output: output, experimental_telemetry: telemetry, prepareStep, providerOptions, experimental_activeTools, activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, includeRawChunks, onChunk, onError, onFinish, onAbort, onStepFinish, _internal: { now, generateId, currentDate, }, ...settings }: CallSettings & Prompt & {
1088
1099
  /**
1089
1100
  The language model to use.
1090
1101
  */
@@ -1174,6 +1185,7 @@ Callback that is called when the LLM response and all request tool executions
1174
1185
  The usage is the combined usage of all steps.
1175
1186
  */
1176
1187
  onFinish?: StreamTextOnFinishCallback<TOOLS>;
1188
+ onAbort?: StreamTextOnAbortCallback<TOOLS>;
1177
1189
  /**
1178
1190
  Callback that is called when each step (LLM call) is finished, including intermediate steps.
1179
1191
  */
@@ -1463,6 +1475,8 @@ type UIMessageChunk<METADATA = unknown, DATA_TYPES extends UIDataTypes = UIDataT
1463
1475
  } | {
1464
1476
  type: 'finish';
1465
1477
  messageMetadata?: METADATA;
1478
+ } | {
1479
+ type: 'abort';
1466
1480
  } | {
1467
1481
  type: 'message-metadata';
1468
1482
  messageMetadata: METADATA;
@@ -1479,6 +1493,27 @@ type AsyncIterableStream<T> = AsyncIterable<T> & ReadableStream<T>;
1479
1493
 
1480
1494
  type ErrorHandler = (error: unknown) => void;
1481
1495
 
1496
+ type UIMessageStreamOnFinishCallback<UI_MESSAGE extends UIMessage> = (event: {
1497
+ /**
1498
+ * The updated list of UI messages.
1499
+ */
1500
+ messages: UI_MESSAGE[];
1501
+ /**
1502
+ * Indicates whether the response message is a continuation of the last original message,
1503
+ * or if a new message was created.
1504
+ */
1505
+ isContinuation: boolean;
1506
+ /**
1507
+ * Indicates whether the stream was aborted.
1508
+ */
1509
+ isAborted: boolean;
1510
+ /**
1511
+ * The message that was sent to the client as a response
1512
+ * (including the original message if it was extended).
1513
+ */
1514
+ responseMessage: UI_MESSAGE;
1515
+ }) => PromiseLike<void> | void;
1516
+
1482
1517
  type UIMessageStreamOptions<UI_MESSAGE extends UIMessage> = {
1483
1518
  /**
1484
1519
  * The original messages. If they are provided, persistence mode is assumed,
@@ -1492,22 +1527,7 @@ type UIMessageStreamOptions<UI_MESSAGE extends UIMessage> = {
1492
1527
  * the original messages are provided and the last message is an assistant message).
1493
1528
  */
1494
1529
  generateMessageId?: IdGenerator;
1495
- onFinish?: (options: {
1496
- /**
1497
- * The updates list of UI messages.
1498
- */
1499
- messages: UI_MESSAGE[];
1500
- /**
1501
- * Indicates whether the response message is a continuation of the last original message,
1502
- * or if a new message was created.
1503
- */
1504
- isContinuation: boolean;
1505
- /**
1506
- * The message that was sent to the client as a response
1507
- * (including the original message if it was extended).
1508
- */
1509
- responseMessage: UI_MESSAGE;
1510
- }) => void;
1530
+ onFinish?: UIMessageStreamOnFinishCallback<UI_MESSAGE>;
1511
1531
  /**
1512
1532
  * Extracts message metadata that will be send to the client.
1513
1533
  *
@@ -1698,7 +1718,7 @@ interface StreamTextResult<TOOLS extends ToolSet, PARTIAL_OUTPUT> {
1698
1718
 
1699
1719
  @return A UI message stream.
1700
1720
  */
1701
- toUIMessageStream<UI_MESSAGE extends UIMessage>(options?: UIMessageStreamOptions<UI_MESSAGE>): ReadableStream<InferUIMessageChunk<UI_MESSAGE>>;
1721
+ toUIMessageStream<UI_MESSAGE extends UIMessage>(options?: UIMessageStreamOptions<UI_MESSAGE>): AsyncIterableStream<InferUIMessageChunk<UI_MESSAGE>>;
1702
1722
  /**
1703
1723
  Writes UI message stream output to a Node.js response-like object.
1704
1724
  @param response A Node.js response-like object (ServerResponse).
@@ -1806,6 +1826,8 @@ type TextStreamPart<TOOLS extends ToolSet> = {
1806
1826
  type: 'finish';
1807
1827
  finishReason: FinishReason;
1808
1828
  totalUsage: LanguageModelUsage;
1829
+ } | {
1830
+ type: 'abort';
1809
1831
  } | {
1810
1832
  type: 'error';
1811
1833
  error: unknown;
@@ -2638,6 +2660,21 @@ functionality that can be fully encapsulated in the provider.
2638
2660
  };
2639
2661
  }): Promise<GenerateObjectResult<RESULT>>;
2640
2662
 
2663
+ /**
2664
+ * Consumes a ReadableStream until it's fully read.
2665
+ *
2666
+ * This function reads the stream chunk by chunk until the stream is exhausted.
2667
+ * It doesn't process or return the data from the stream; it simply ensures
2668
+ * that the entire stream is read.
2669
+ *
2670
+ * @param {ReadableStream} stream - The ReadableStream to be consumed.
2671
+ * @returns {Promise<void>} A promise that resolves when the stream is fully consumed.
2672
+ */
2673
+ declare function consumeStream({ stream, onError, }: {
2674
+ stream: ReadableStream;
2675
+ onError?: (error: unknown) => void;
2676
+ }): Promise<void>;
2677
+
2641
2678
  /**
2642
2679
  * Calculates the cosine similarity between two vectors. This is a useful metric for
2643
2680
  * comparing the similarity of two vectors such as embeddings.
@@ -3588,22 +3625,7 @@ declare function createUIMessageStream<UI_MESSAGE extends UIMessage>({ execute,
3588
3625
  * and a message ID is provided for the response message.
3589
3626
  */
3590
3627
  originalMessages?: UI_MESSAGE[];
3591
- onFinish?: (options: {
3592
- /**
3593
- * The updates list of UI messages.
3594
- */
3595
- messages: UI_MESSAGE[];
3596
- /**
3597
- * Indicates whether the response message is a continuation of the last original message,
3598
- * or if a new message was created.
3599
- */
3600
- isContinuation: boolean;
3601
- /**
3602
- * The message that was sent to the client as a response
3603
- * (including the original message if it was extended).
3604
- */
3605
- responseMessage: UI_MESSAGE;
3606
- }) => void;
3628
+ onFinish?: UIMessageStreamOnFinishCallback<UI_MESSAGE>;
3607
3629
  generateId?: IdGenerator;
3608
3630
  }): ReadableStream<InferUIMessageChunk<UI_MESSAGE>>;
3609
3631
 
@@ -4032,4 +4054,4 @@ declare global {
4032
4054
  var AI_SDK_DEFAULT_PROVIDER: ProviderV2 | undefined;
4033
4055
  }
4034
4056
 
4035
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolErrorUnion, ToolResultUnion, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, hasToolCall, isDeepEqualData, isToolUIPart, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, wrapLanguageModel, wrapProvider };
4057
+ export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputSpecifiedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningUIPart, RepairTextFunction, RetryError, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolCallUnion, ToolChoice, ToolErrorUnion, ToolResultUnion, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, hasToolCall, isDeepEqualData, isToolUIPart, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, userModelMessageSchema, wrapLanguageModel, wrapProvider };