ai-speedometer 1.4.2 → 1.4.3

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.
@@ -67,7 +67,7 @@ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the toke
67
67
 
68
68
  `)},flush(e){e.enqueue(`data: [DONE]
69
69
 
70
- `)}})}},Cy={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function ZT({status:e,statusText:t,headers:n,stream:o,consumeSseStream:r}){let i=o.pipeThrough(new Ty);if(r){let[a,u]=i.tee();i=a,r({stream:u})}return new Response(i.pipeThrough(new TextEncoderStream),{status:e,statusText:t,headers:Na(n,Cy)})}function LT({originalMessages:e,responseMessageId:t}){if(e==null)return;let n=e[e.length-1];return n?.role==="assistant"?n.id:typeof t=="function"?t():t}var Ez=Me(()=>V(s.union([s.strictObject({type:s.literal("text-start"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("text-delta"),id:s.string(),delta:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("text-end"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("error"),errorText:s.string()}),s.strictObject({type:s.literal("tool-input-start"),toolCallId:s.string(),toolName:s.string(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("tool-input-delta"),toolCallId:s.string(),inputTextDelta:s.string()}),s.strictObject({type:s.literal("tool-input-available"),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),providerExecuted:s.boolean().optional(),providerMetadata:oe.optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("tool-input-error"),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),providerExecuted:s.boolean().optional(),providerMetadata:oe.optional(),dynamic:s.boolean().optional(),errorText:s.string()}),s.strictObject({type:s.literal("tool-output-available"),toolCallId:s.string(),output:s.unknown(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional(),preliminary:s.boolean().optional()}),s.strictObject({type:s.literal("tool-output-error"),toolCallId:s.string(),errorText:s.string(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("reasoning-start"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("reasoning-delta"),id:s.string(),delta:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("reasoning-end"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("source-url"),sourceId:s.string(),url:s.string(),title:s.string().optional(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("source-document"),sourceId:s.string(),mediaType:s.string(),title:s.string(),filename:s.string().optional(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("file"),url:s.string(),mediaType:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:s.string().optional(),data:s.unknown(),transient:s.boolean().optional()}),s.strictObject({type:s.literal("start-step")}),s.strictObject({type:s.literal("finish-step")}),s.strictObject({type:s.literal("start"),messageId:s.string().optional(),messageMetadata:s.unknown().optional()}),s.strictObject({type:s.literal("finish"),finishReason:s.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:s.unknown().optional()}),s.strictObject({type:s.literal("abort")}),s.strictObject({type:s.literal("message-metadata"),messageMetadata:s.unknown()})])));function BT(e){return e.type.startsWith("data-")}function Oy(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let n={...e};for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(r===void 0)continue;let i=o in e?e[o]:void 0,a=r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),u=i!=null&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);a&&u?n[o]=Oy(i,r):n[o]=r}return n}function VT(e){let t=["ROOT"],n=-1,o=null;function r(l,c,p){switch(l){case'"':{n=c,t.pop(),t.push(p),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=c,o=c,t.pop(),t.push(p),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(p),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=c,t.pop(),t.push(p),t.push("INSIDE_NUMBER");break}case"{":{n=c,t.pop(),t.push(p),t.push("INSIDE_OBJECT_START");break}case"[":{n=c,t.pop(),t.push(p),t.push("INSIDE_ARRAY_START");break}}}function i(l,c){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=c,t.pop();break}}}function a(l,c){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=c,t.pop();break}}}for(let l=0;l<e.length;l++){let c=e[l];switch(t[t.length-1]){case"ROOT":r(c,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(c){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{r(c,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{i(c,l);break}case"INSIDE_STRING":{switch(c){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(c){case"]":{n=l,t.pop();break}default:{n=l,r(c,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(c){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{r(c,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let h=e.substring(o,l+1);!"false".startsWith(h)&&!"true".startsWith(h)&&!"null".startsWith(h)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?i(c,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l)):n=l;break}}}let u=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{u+='"';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":{u+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{u+="]";break}case"INSIDE_LITERAL":{let p=e.substring(o,e.length);"true".startsWith(p)?u+="true".slice(p.length):"false".startsWith(p)?u+="false".slice(p.length):"null".startsWith(p)&&(u+="null".slice(p.length))}}return u}async function jy(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await St({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await St({text:VT(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function Wd(e){return e.type.startsWith("tool-")}function Zv(e){return e.type.split("-").slice(1).join("-")}function qT({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function JT({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:o,onError:r,onToolCall:i,onData:a}){return e.pipeThrough(new TransformStream({async transform(u,l){await o(async({state:c,write:p})=>{var h,_,f,d;function g(b){let N=c.message.parts.filter(Wd).find(A=>A.toolCallId===b);if(N==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return N}function y(b){let N=c.message.parts.filter(A=>A.type==="dynamic-tool").find(A=>A.toolCallId===b);if(N==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return N}function x(b){var P;let N=c.message.parts.find(j=>Wd(j)&&j.toolCallId===b.toolCallId),A=b,F=N;N!=null?(N.state=b.state,F.input=A.input,F.output=A.output,F.errorText=A.errorText,F.rawInput=A.rawInput,F.preliminary=A.preliminary,F.providerExecuted=(P=A.providerExecuted)!=null?P:N.providerExecuted,A.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=A.providerMetadata)):c.message.parts.push({type:`tool-${b.toolName}`,toolCallId:b.toolCallId,state:b.state,input:A.input,output:A.output,rawInput:A.rawInput,errorText:A.errorText,providerExecuted:A.providerExecuted,preliminary:A.preliminary,...A.providerMetadata!=null?{callProviderMetadata:A.providerMetadata}:{}})}function v(b){var P,N;let A=c.message.parts.find(z=>z.type==="dynamic-tool"&&z.toolCallId===b.toolCallId),F=b,j=A;A!=null?(A.state=b.state,j.toolName=b.toolName,j.input=F.input,j.output=F.output,j.errorText=F.errorText,j.rawInput=(P=F.rawInput)!=null?P:j.rawInput,j.preliminary=F.preliminary,j.providerExecuted=(N=F.providerExecuted)!=null?N:A.providerExecuted,F.providerMetadata!=null&&A.state==="input-available"&&(A.callProviderMetadata=F.providerMetadata)):c.message.parts.push({type:"dynamic-tool",toolName:b.toolName,toolCallId:b.toolCallId,state:b.state,input:F.input,output:F.output,errorText:F.errorText,preliminary:F.preliminary,providerExecuted:F.providerExecuted,...F.providerMetadata!=null?{callProviderMetadata:F.providerMetadata}:{}})}async function D(b){if(b!=null){let P=c.message.metadata!=null?Oy(c.message.metadata,b):b;t!=null&&await Ge({value:P,schema:t}),c.message.metadata=P}}switch(u.type){case"text-start":{let b={type:"text",text:"",providerMetadata:u.providerMetadata,state:"streaming"};c.activeTextParts[u.id]=b,c.message.parts.push(b),p();break}case"text-delta":{let b=c.activeTextParts[u.id];b.text+=u.delta,b.providerMetadata=(h=u.providerMetadata)!=null?h:b.providerMetadata,p();break}case"text-end":{let b=c.activeTextParts[u.id];b.state="done",b.providerMetadata=(_=u.providerMetadata)!=null?_:b.providerMetadata,delete c.activeTextParts[u.id],p();break}case"reasoning-start":{let b={type:"reasoning",text:"",providerMetadata:u.providerMetadata,state:"streaming"};c.activeReasoningParts[u.id]=b,c.message.parts.push(b),p();break}case"reasoning-delta":{let b=c.activeReasoningParts[u.id];b.text+=u.delta,b.providerMetadata=(f=u.providerMetadata)!=null?f:b.providerMetadata,p();break}case"reasoning-end":{let b=c.activeReasoningParts[u.id];b.providerMetadata=(d=u.providerMetadata)!=null?d:b.providerMetadata,b.state="done",delete c.activeReasoningParts[u.id],p();break}case"file":{c.message.parts.push({type:"file",mediaType:u.mediaType,url:u.url}),p();break}case"source-url":{c.message.parts.push({type:"source-url",sourceId:u.sourceId,url:u.url,title:u.title,providerMetadata:u.providerMetadata}),p();break}case"source-document":{c.message.parts.push({type:"source-document",sourceId:u.sourceId,mediaType:u.mediaType,title:u.title,filename:u.filename,providerMetadata:u.providerMetadata}),p();break}case"tool-input-start":{let b=c.message.parts.filter(Wd);c.partialToolCalls[u.toolCallId]={text:"",toolName:u.toolName,index:b.length,dynamic:u.dynamic},u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}),p();break}case"tool-input-delta":{let b=c.partialToolCalls[u.toolCallId];b.text+=u.inputTextDelta;let{value:P}=await jy(b.text);b.dynamic?v({toolCallId:u.toolCallId,toolName:b.toolName,state:"input-streaming",input:P}):x({toolCallId:u.toolCallId,toolName:b.toolName,state:"input-streaming",input:P}),p();break}case"tool-input-available":{u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),p(),i&&!u.providerExecuted&&await i({toolCall:u});break}case"tool-input-error":{u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:void 0,rawInput:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),p();break}case"tool-output-available":{if(u.dynamic){let b=y(u.toolCallId);v({toolCallId:u.toolCallId,toolName:b.toolName,state:"output-available",input:b.input,output:u.output,preliminary:u.preliminary})}else{let b=g(u.toolCallId);x({toolCallId:u.toolCallId,toolName:Zv(b),state:"output-available",input:b.input,output:u.output,providerExecuted:u.providerExecuted,preliminary:u.preliminary})}p();break}case"tool-output-error":{if(u.dynamic){let b=y(u.toolCallId);v({toolCallId:u.toolCallId,toolName:b.toolName,state:"output-error",input:b.input,errorText:u.errorText,providerExecuted:u.providerExecuted})}else{let b=g(u.toolCallId);x({toolCallId:u.toolCallId,toolName:Zv(b),state:"output-error",input:b.input,rawInput:b.rawInput,errorText:u.errorText,providerExecuted:u.providerExecuted})}p();break}case"start-step":{c.message.parts.push({type:"step-start"});break}case"finish-step":{c.activeTextParts={},c.activeReasoningParts={};break}case"start":{u.messageId!=null&&(c.message.id=u.messageId),await D(u.messageMetadata),(u.messageId!=null||u.messageMetadata!=null)&&p();break}case"finish":{u.finishReason!=null&&(c.finishReason=u.finishReason),await D(u.messageMetadata),u.messageMetadata!=null&&p();break}case"message-metadata":{await D(u.messageMetadata),u.messageMetadata!=null&&p();break}case"error":{r?.(new Error(u.errorText));break}default:if(BT(u)){n?.[u.type]!=null&&await Ge({value:u.data,schema:n[u.type]});let b=u;if(b.transient){a?.(b);break}let P=b.id!=null?c.message.parts.find(N=>b.type===N.type&&b.id===N.id):void 0;P!=null?P.data=b.data:c.message.parts.push(b),a?.(b),p()}}l.enqueue(u)})}}))}function GT({messageId:e,originalMessages:t=[],onFinish:n,onError:o,stream:r}){let i=t?.[t.length-1];i?.role!=="assistant"?i=void 0:e=i.id;let a=!1,u=r.pipeThrough(new TransformStream({transform(_,f){if(_.type==="start"){let d=_;d.messageId==null&&e!=null&&(d.messageId=e)}_.type==="abort"&&(a=!0),f.enqueue(_)}}));if(n==null)return u;let l=qT({lastMessage:i?structuredClone(i):void 0,messageId:e??""}),c=async _=>{await _({state:l,write:()=>{}})},p=!1,h=async()=>{if(p||!n)return;p=!0;let _=l.message.id===i?.id;await n({isAborted:a,isContinuation:_,responseMessage:l.message,messages:[..._?t.slice(0,-1):t,l.message],finishReason:l.finishReason})};return JT({stream:u,runUpdateMessageJob:c,onError:o}).pipeThrough(new TransformStream({transform(_,f){f.enqueue(_)},async cancel(){await h()},async flush(){await h()}}))}function WT({response:e,status:t,statusText:n,headers:o,stream:r,consumeSseStream:i}){let a=r.pipeThrough(new Ty);if(i){let[u,l]=a.tee();a=u,i({stream:l})}Ey({response:e,status:t,statusText:n,headers:Object.fromEntries(Na(o,Cy).entries()),stream:a.pipeThrough(new TextEncoderStream)})}function Pa(e){let t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=function(){let n=this.getReader(),o=!1;async function r(i){var a;o=!0;try{i&&await((a=n.cancel)==null?void 0:a.call(n))}finally{try{n.releaseLock()}catch{}}}return{async next(){if(o)return{done:!0,value:void 0};let{done:i,value:a}=await n.read();return i?(await r(!0),{done:!0,value:void 0}):{done:!1,value:a}},async return(){return await r(!0),{done:!0,value:void 0}},async throw(i){throw await r(!0),i}}},t}async function KT({stream:e,onError:t}){let n=e.getReader();try{for(;;){let{done:o}=await n.read();if(o)break}}catch(o){t?.(o)}finally{n.releaseLock()}}function Lv(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function HT(){let e=[],t=null,n=!1,o=Lv(),r=()=>{n=!0,o.resolve(),e.forEach(a=>a.cancel()),e=[],t?.close()},i=async()=>{if(n&&e.length===0){t?.close();return}if(e.length===0)return o=Lv(),await o.promise,i();try{let{value:a,done:u}=await e[0].read();u?(e.shift(),e.length>0?await i():n&&t?.close()):t?.enqueue(a)}catch(a){t?.error(a),e.shift(),r()}};return{stream:new ReadableStream({start(a){t=a},pull:i,async cancel(){for(let a of e)await a.cancel();e=[],n=!0}}),addStream:a=>{if(n)throw new Error("Cannot add inner stream: outer stream is closed");e.push(a.getReader()),o.resolve()},close:()=>{n=!0,o.resolve(),e.length===0&&t?.close()},terminate:r}}var Aa=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,t)=>{this.status.type==="resolved"?e(this.status.value):this.status.type==="rejected"&&t(this.status.error),this._resolve=e,this._reject=t}),this._promise)}resolve(e){var t;this.status={type:"resolved",value:e},this._promise&&((t=this._resolve)==null||t.call(this,e))}reject(e){var t;this.status={type:"rejected",error:e},this._promise&&((t=this._reject)==null||t.call(this,e))}};function YT(){var e,t;return(t=(e=globalThis?.performance)==null?void 0:e.now())!=null?t:Date.now()}function XT({tools:e,generatorStream:t,tracer:n,telemetry:o,system:r,messages:i,abortSignal:a,repairToolCall:u,experimental_context:l}){let c=null,p=new ReadableStream({start(x){c=x}}),h=new Set,_=new Map,f=!1,d;function g(){f&&h.size===0&&(d!=null&&c.enqueue(d),c.close())}let y=new TransformStream({async transform(x,v){let D=x.type;switch(D){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":{v.enqueue(x);break}case"file":{v.enqueue({type:"file",file:new AT({data:x.data,mediaType:x.mediaType})});break}case"finish":{d={type:"finish",finishReason:x.finishReason,usage:x.usage,providerMetadata:x.providerMetadata};break}case"tool-call":{try{let b=await NT({toolCall:x,tools:e,repairToolCall:u,system:r,messages:i});if(v.enqueue(b),b.invalid){c.enqueue({type:"tool-error",toolCallId:b.toolCallId,toolName:b.toolName,input:b.input,error:Ao(b.error),dynamic:!0});break}let P=e[b.toolName];if(_.set(b.toolCallId,b.input),P.onInputAvailable!=null&&await P.onInputAvailable({input:b.input,toolCallId:b.toolCallId,messages:i,abortSignal:a,experimental_context:l}),P.execute!=null&&b.providerExecuted!==!0){let N=yt();h.add(N),Yd({name:"ai.toolCall",attributes:_n({telemetry:o,attributes:{...Hd({operationId:"ai.toolCall",telemetry:o}),"ai.toolCall.name":b.toolName,"ai.toolCall.id":b.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(b.input)}}}),tracer:n,fn:async A=>{let F;try{let j=yd({execute:P.execute.bind(P),input:b.input,options:{toolCallId:b.toolCallId,messages:i,abortSignal:a,experimental_context:l}});for await(let z of j)c.enqueue({...b,type:"tool-result",output:z.output,...z.type==="preliminary"&&{preliminary:!0}}),z.type==="final"&&(F=z.output)}catch(j){Sy(A,j),c.enqueue({...b,type:"tool-error",error:j}),h.delete(N),g();return}h.delete(N),g();try{A.setAttributes(_n({telemetry:o,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(F)}}}))}catch{}}})}}catch(b){c.enqueue({type:"error",error:b})}break}case"tool-result":{let b=x.toolName;x.isError?c.enqueue({type:"tool-error",toolCallId:x.toolCallId,toolName:b,input:_.get(x.toolCallId),providerExecuted:x.providerExecuted,error:x.result}):v.enqueue({type:"tool-result",toolCallId:x.toolCallId,toolName:b,input:_.get(x.toolCallId),output:x.result,providerExecuted:x.providerExecuted});break}default:{let b=D;throw new Error(`Unhandled chunk type: ${b}`)}}},flush(){f=!0,g()}});return new ReadableStream({async start(x){return Promise.all([t.pipeThrough(y).pipeTo(new WritableStream({write(v){x.enqueue(v)},close(){}})),p.pipeTo(new WritableStream({write(v){x.enqueue(v)},close(){x.close()}}))])}})}var QT=qt({prefix:"aitxt",size:24});function Py({model:e,tools:t,toolChoice:n,system:o,prompt:r,messages:i,maxRetries:a,abortSignal:u,headers:l,stopWhen:c=FT(1),experimental_output:p,experimental_telemetry:h,prepareStep:_,providerOptions:f,experimental_activeTools:d,activeTools:g=d,experimental_repairToolCall:y,experimental_transform:x,experimental_download:v,includeRawChunks:D=!1,onChunk:b,onError:P=({error:$})=>{console.error($)},onFinish:N,onAbort:A,onStepFinish:F,experimental_context:j,_internal:{now:z=YT,generateId:ie=QT,currentDate:W=()=>new Date}={},...U}){return new tC({model:by(e),telemetry:h,headers:l,settings:U,maxRetries:a,abortSignal:u,system:o,prompt:r,messages:i,tools:t,toolChoice:n,transforms:Fv(x),activeTools:g,repairToolCall:y,stopConditions:Fv(c),output:p,providerOptions:f,prepareStep:_,includeRawChunks:D,onChunk:b,onError:P,onFinish:N,onAbort:A,onStepFinish:F,now:z,currentDate:W,generateId:ie,experimental_context:j,download:v})}function eC(e){if(!e)return new TransformStream({transform(a,u){u.enqueue({part:a,partialOutput:void 0})}});let t,n="",o="",r="";function i({controller:a,partialOutput:u=void 0}){a.enqueue({part:{type:"text-delta",id:t,text:o},partialOutput:u}),o=""}return new TransformStream({async transform(a,u){if(a.type==="finish-step"&&o.length>0&&i({controller:u}),a.type!=="text-delta"&&a.type!=="text-start"&&a.type!=="text-end"){u.enqueue({part:a,partialOutput:void 0});return}if(t==null)t=a.id;else if(a.id!==t){u.enqueue({part:a,partialOutput:void 0});return}if(a.type==="text-start"){u.enqueue({part:a,partialOutput:void 0});return}if(a.type==="text-end"){o.length>0&&i({controller:u}),u.enqueue({part:a,partialOutput:void 0});return}n+=a.text,o+=a.text;let l=await e.parsePartial({text:n});if(l!=null){let c=JSON.stringify(l.partial);c!==r&&(i({controller:u,partialOutput:l.partial}),r=c)}}})}var tC=class{constructor({model:e,telemetry:t,headers:n,settings:o,maxRetries:r,abortSignal:i,system:a,prompt:u,messages:l,tools:c,toolChoice:p,transforms:h,activeTools:_,repairToolCall:f,stopConditions:d,output:g,providerOptions:y,prepareStep:x,includeRawChunks:v,now:D,currentDate:b,generateId:P,onChunk:N,onError:A,onFinish:F,onAbort:j,onStepFinish:z,experimental_context:ie,download:W}){this._totalUsage=new Aa,this._finishReason=new Aa,this._steps=new Aa,this.output=g,this.includeRawChunks=v,this.tools=c;let U,$=[],K=[],I,q,se={},ct=[],de=[],ye,xe={},Or={},Y_=new TransformStream({async transform(_e,be){var Ie,ae,dt,$n;be.enqueue(_e);let{part:Z}=_e;if((Z.type==="text-delta"||Z.type==="reasoning-delta"||Z.type==="source"||Z.type==="tool-call"||Z.type==="tool-result"||Z.type==="tool-input-start"||Z.type==="tool-input-delta"||Z.type==="raw")&&await N?.({chunk:Z}),Z.type==="error"&&await A({error:DT(Z.error)}),Z.type==="text-start"&&(xe[Z.id]={type:"text",text:"",providerMetadata:Z.providerMetadata},$.push(xe[Z.id])),Z.type==="text-delta"){let ge=xe[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`text part ${Z.id} not found`},partialOutput:void 0});return}ge.text+=Z.text,ge.providerMetadata=(Ie=Z.providerMetadata)!=null?Ie:ge.providerMetadata}if(Z.type==="text-end"){let ge=xe[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`text part ${Z.id} not found`},partialOutput:void 0});return}ge.providerMetadata=(ae=Z.providerMetadata)!=null?ae:ge.providerMetadata,delete xe[Z.id]}if(Z.type==="reasoning-start"&&(Or[Z.id]={type:"reasoning",text:"",providerMetadata:Z.providerMetadata},$.push(Or[Z.id])),Z.type==="reasoning-delta"){let ge=Or[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`reasoning part ${Z.id} not found`},partialOutput:void 0});return}ge.text+=Z.text,ge.providerMetadata=(dt=Z.providerMetadata)!=null?dt:ge.providerMetadata}if(Z.type==="reasoning-end"){let ge=Or[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`reasoning part ${Z.id} not found`},partialOutput:void 0});return}ge.providerMetadata=($n=Z.providerMetadata)!=null?$n:ge.providerMetadata,delete Or[Z.id]}if(Z.type==="file"&&$.push({type:"file",file:Z.file}),Z.type==="source"&&$.push(Z),Z.type==="tool-call"&&$.push(Z),Z.type==="tool-result"&&!Z.preliminary&&$.push(Z),Z.type==="tool-error"&&$.push(Z),Z.type==="start-step"&&(se=Z.request,ct=Z.warnings),Z.type==="finish-step"){let ge=Uv({content:$,tools:c}),Sn=new zT({content:$,finishReason:Z.finishReason,usage:Z.usage,warnings:ct,request:se,response:{...Z.response,messages:[...K,...ge]},providerMetadata:Z.providerMetadata});await z?.(Sn),bE(ct),de.push(Sn),$=[],Or={},xe={},K.push(...ge),U.resolve()}Z.type==="finish"&&(q=Z.totalUsage,I=Z.finishReason)},async flush(_e){try{if(de.length===0){let dt=new PE({message:"No output generated. Check the stream for errors."});it._finishReason.reject(dt),it._totalUsage.reject(dt),it._steps.reject(dt);return}let be=I??"unknown",Ie=q??{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};it._finishReason.resolve(be),it._totalUsage.resolve(Ie),it._steps.resolve(de);let ae=de[de.length-1];await F?.({finishReason:be,totalUsage:Ie,usage:ae.usage,content:ae.content,text:ae.text,reasoningText:ae.reasoningText,reasoning:ae.reasoning,files:ae.files,sources:ae.sources,toolCalls:ae.toolCalls,staticToolCalls:ae.staticToolCalls,dynamicToolCalls:ae.dynamicToolCalls,toolResults:ae.toolResults,staticToolResults:ae.staticToolResults,dynamicToolResults:ae.dynamicToolResults,request:ae.request,response:ae.response,warnings:ae.warnings,providerMetadata:ae.providerMetadata,steps:de}),ye.setAttributes(_n({telemetry:t,attributes:{"ai.response.finishReason":be,"ai.response.text":{output:()=>ae.text},"ai.response.toolCalls":{output:()=>{var dt;return(dt=ae.toolCalls)!=null&&dt.length?JSON.stringify(ae.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(ae.providerMetadata),"ai.usage.inputTokens":Ie.inputTokens,"ai.usage.outputTokens":Ie.outputTokens,"ai.usage.totalTokens":Ie.totalTokens,"ai.usage.reasoningTokens":Ie.reasoningTokens,"ai.usage.cachedInputTokens":Ie.cachedInputTokens}}))}catch(be){_e.error(be)}finally{ye.end()}}}),kn=HT();this.addStream=kn.addStream,this.closeStream=kn.close;let X_=kn.stream.getReader(),Ga=new ReadableStream({async start(_e){_e.enqueue({type:"start"})},async pull(_e){function be(){j?.({steps:de}),_e.enqueue({type:"abort"}),_e.close()}try{let{done:Ie,value:ae}=await X_.read();if(Ie){_e.close();return}if(i?.aborted){be();return}_e.enqueue(ae)}catch(Ie){Vt(Ie)&&i?.aborted?be():_e.error(Ie)}},cancel(_e){return kn.stream.cancel(_e)}});for(let _e of h)Ga=Ga.pipeThrough(_e({tools:c,stopStream(){kn.terminate()}}));this.baseStream=Ga.pipeThrough(eC(g)).pipeThrough(Y_);let{maxRetries:Q_,retry:eb}=jT({maxRetries:r,abortSignal:i}),Wa=IT(t),Ot=cT(o),kp=kT({model:e,telemetry:t,headers:n,settings:{...Ot,maxRetries:Q_}}),it=this;Yd({name:"ai.streamText",attributes:_n({telemetry:t,attributes:{...Hd({operationId:"ai.streamText",telemetry:t}),...kp,"ai.prompt":{input:()=>JSON.stringify({system:a,prompt:u,messages:l})}}}),tracer:Wa,endWhenDone:!1,fn:async _e=>{ye=_e;async function be({currentStep:Ie,responseMessages:ae,usage:dt}){var $n,Z,ge,Sn,$p;let Sp=it.includeRawChunks;U=new Aa;let Ip=await wT({system:a,prompt:u,messages:l}),In=[...Ip.messages,...ae],bt=await x?.({model:e,steps:de,stepNumber:de.length,messages:In}),jr=by(($n=bt?.model)!=null?$n:e),Ep=await aT({prompt:{system:(Z=bt?.system)!=null?Z:Ip.system,messages:(ge=bt?.messages)!=null?ge:In},supportedUrls:await jr.supportedUrls,download:W}),{toolChoice:Ka,tools:Ha}=pT({tools:c,toolChoice:(Sn=bt?.toolChoice)!=null?Sn:p,activeTools:($p=bt?.activeTools)!=null?$p:_}),{result:{stream:tb,response:Tp,request:Cp},doStreamSpan:Pr,startTimestampMs:Op}=await eb(()=>Yd({name:"ai.streamText.doStream",attributes:_n({telemetry:t,attributes:{...Hd({operationId:"ai.streamText.doStream",telemetry:t}),...kp,"ai.model.provider":jr.provider,"ai.model.id":jr.modelId,"ai.prompt.messages":{input:()=>ET(Ep)},"ai.prompt.tools":{input:()=>Ha?.map(J=>JSON.stringify(J))},"ai.prompt.toolChoice":{input:()=>Ka!=null?JSON.stringify(Ka):void 0},"gen_ai.system":jr.provider,"gen_ai.request.model":jr.modelId,"gen_ai.request.frequency_penalty":Ot.frequencyPenalty,"gen_ai.request.max_tokens":Ot.maxOutputTokens,"gen_ai.request.presence_penalty":Ot.presencePenalty,"gen_ai.request.stop_sequences":Ot.stopSequences,"gen_ai.request.temperature":Ot.temperature,"gen_ai.request.top_k":Ot.topK,"gen_ai.request.top_p":Ot.topP}}),tracer:Wa,endWhenDone:!1,fn:async J=>({startTimestampMs:D(),doStreamSpan:J,result:await jr.doStream({...Ot,tools:Ha,toolChoice:Ka,responseFormat:g?.responseFormat,prompt:Ep,providerOptions:y,abortSignal:i,headers:n,includeRawChunks:Sp})})})),rb=XT({tools:c,generatorStream:tb,tracer:Wa,telemetry:t,system:a,messages:In,repairToolCall:f,abortSignal:i,experimental_context:ie}),nb=Cp??{},ti=[],Ya=[],Xa,Qa={},Ar="unknown",pt={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},es,jp=!0,xt={id:P(),timestamp:b(),modelId:e.modelId},Pp="";it.addStream(rb.pipeThrough(new TransformStream({async transform(J,Ee){var En,Tn,ri,jt;if(J.type==="stream-start"){Xa=J.warnings;return}if(jp){let Ne=D()-Op;jp=!1,Pr.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":Ne}),Pr.setAttributes({"ai.response.msToFirstChunk":Ne}),Ee.enqueue({type:"start-step",request:nb,warnings:Xa??[]})}let Ap=J.type;switch(Ap){case"text-start":case"text-end":{Ee.enqueue(J);break}case"text-delta":{J.delta.length>0&&(Ee.enqueue({type:"text-delta",id:J.id,text:J.delta,providerMetadata:J.providerMetadata}),Pp+=J.delta);break}case"reasoning-start":case"reasoning-end":{Ee.enqueue(J);break}case"reasoning-delta":{Ee.enqueue({type:"reasoning-delta",id:J.id,text:J.delta,providerMetadata:J.providerMetadata});break}case"tool-call":{Ee.enqueue(J),ti.push(J);break}case"tool-result":{Ee.enqueue(J),J.preliminary||Ya.push(J);break}case"tool-error":{Ee.enqueue(J),Ya.push(J);break}case"response-metadata":{xt={id:(En=J.id)!=null?En:xt.id,timestamp:(Tn=J.timestamp)!=null?Tn:xt.timestamp,modelId:(ri=J.modelId)!=null?ri:xt.modelId};break}case"finish":{pt=J.usage,Ar=J.finishReason,es=J.providerMetadata;let Ne=D()-Op;Pr.addEvent("ai.stream.finish"),Pr.setAttributes({"ai.response.msToFinish":Ne,"ai.response.avgOutputTokensPerSecond":1e3*((jt=pt.outputTokens)!=null?jt:0)/Ne});break}case"file":{Ee.enqueue(J);break}case"source":{Ee.enqueue(J);break}case"tool-input-start":{Qa[J.id]=J.toolName;let Ne=c?.[J.toolName];Ne?.onInputStart!=null&&await Ne.onInputStart({toolCallId:J.id,messages:In,abortSignal:i,experimental_context:ie}),Ee.enqueue({...J,dynamic:Ne?.type==="dynamic"});break}case"tool-input-end":{delete Qa[J.id],Ee.enqueue(J);break}case"tool-input-delta":{let Ne=Qa[J.id],ts=c?.[Ne];ts?.onInputDelta!=null&&await ts.onInputDelta({inputTextDelta:J.delta,toolCallId:J.id,messages:In,abortSignal:i,experimental_context:ie}),Ee.enqueue(J);break}case"error":{Ee.enqueue(J),Ar="error";break}case"raw":{Sp&&Ee.enqueue(J);break}default:{let Ne=Ap;throw new Error(`Unknown chunk type: ${Ne}`)}}},async flush(J){let Ee=ti.length>0?JSON.stringify(ti):void 0;try{Pr.setAttributes(_n({telemetry:t,attributes:{"ai.response.finishReason":Ar,"ai.response.text":{output:()=>Pp},"ai.response.toolCalls":{output:()=>Ee},"ai.response.id":xt.id,"ai.response.model":xt.modelId,"ai.response.timestamp":xt.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(es),"ai.usage.inputTokens":pt.inputTokens,"ai.usage.outputTokens":pt.outputTokens,"ai.usage.totalTokens":pt.totalTokens,"ai.usage.reasoningTokens":pt.reasoningTokens,"ai.usage.cachedInputTokens":pt.cachedInputTokens,"gen_ai.response.finish_reasons":[Ar],"gen_ai.response.id":xt.id,"gen_ai.response.model":xt.modelId,"gen_ai.usage.input_tokens":pt.inputTokens,"gen_ai.usage.output_tokens":pt.outputTokens}}))}catch{}finally{Pr.end()}J.enqueue({type:"finish-step",finishReason:Ar,usage:pt,providerMetadata:es,response:{...xt,headers:Tp?.headers}});let En=TT(dt,pt);await U.promise;let Tn=ti.filter(jt=>jt.providerExecuted!==!0),ri=Ya.filter(jt=>jt.providerExecuted!==!0);if(Tn.length>0&&ri.length===Tn.length&&!await RT({stopConditions:d,steps:de})){ae.push(...Uv({content:de[de.length-1].content,tools:c}));try{await be({currentStep:Ie+1,responseMessages:ae,usage:En})}catch(jt){J.enqueue({type:"error",error:jt}),it.closeStream()}}else J.enqueue({type:"finish",finishReason:Ar,totalUsage:En}),it.closeStream()}})))}await be({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(_e=>{it.addStream(new ReadableStream({start(be){be.enqueue({type:"error",error:_e}),be.close()}})),it.closeStream()})}get steps(){return this.consumeStream(),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 staticToolCalls(){return this.finalStep.then(e=>e.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then(e=>e.dynamicToolCalls)}get toolResults(){return this.finalStep.then(e=>e.toolResults)}get staticToolResults(){return this.finalStep.then(e=>e.staticToolResults)}get dynamicToolResults(){return this.finalStep.then(e=>e.dynamicToolResults)}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.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}teeStream(){let[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return Pa(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){e.type==="text-delta"&&t.enqueue(e.text)}})))}get fullStream(){return Pa(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await KT({stream:this.fullStream,onError:e?.onError})}catch(n){(t=e?.onError)==null||t.call(e,n)}}get experimental_partialOutputStream(){if(this.output==null)throw new vE;return Pa(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){e!=null&&t.enqueue(e)}})))}toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r=!0,sendSources:i=!1,sendStart:a=!0,sendFinish:u=!0,onError:l=wt}={}){let c=t!=null?LT({originalMessages:e,responseMessageId:t}):void 0,p={},h=f=>{var d,g;let y=p[f];return((g=(d=this.tools)==null?void 0:d[y])==null?void 0:g.type)==="dynamic"?!0:void 0},_=this.fullStream.pipeThrough(new TransformStream({transform:async(f,d)=>{let g=o?.({part:f}),y=f.type;switch(y){case"text-start":{d.enqueue({type:"text-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-delta":{d.enqueue({type:"text-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-end":{d.enqueue({type:"text-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-start":{d.enqueue({type:"reasoning-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-delta":{r&&d.enqueue({type:"reasoning-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-end":{d.enqueue({type:"reasoning-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"file":{d.enqueue({type:"file",mediaType:f.file.mediaType,url:`data:${f.file.mediaType};base64,${f.file.base64}`});break}case"source":{i&&f.sourceType==="url"&&d.enqueue({type:"source-url",sourceId:f.id,url:f.url,title:f.title,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}}),i&&f.sourceType==="document"&&d.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":{p[f.id]=f.toolName;let x=h(f.id);d.enqueue({type:"tool-input-start",toolCallId:f.id,toolName:f.toolName,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...x!=null?{dynamic:x}:{}});break}case"tool-input-delta":{d.enqueue({type:"tool-input-delta",toolCallId:f.id,inputTextDelta:f.delta});break}case"tool-call":{p[f.toolCallId]=f.toolName;let x=h(f.toolCallId);f.invalid?d.enqueue({type:"tool-input-error",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...x!=null?{dynamic:x}:{},errorText:l(f.error)}):d.enqueue({type:"tool-input-available",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...x!=null?{dynamic:x}:{}});break}case"tool-result":{let x=h(f.toolCallId);d.enqueue({type:"tool-output-available",toolCallId:f.toolCallId,output:f.output,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.preliminary!=null?{preliminary:f.preliminary}:{},...x!=null?{dynamic:x}:{}});break}case"tool-error":{let x=h(f.toolCallId);d.enqueue({type:"tool-output-error",toolCallId:f.toolCallId,errorText:l(f.error),...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...x!=null?{dynamic:x}:{}});break}case"error":{d.enqueue({type:"error",errorText:l(f.error)});break}case"start-step":{d.enqueue({type:"start-step"});break}case"finish-step":{d.enqueue({type:"finish-step"});break}case"start":{a&&d.enqueue({type:"start",...g!=null?{messageMetadata:g}:{},...c!=null?{messageId:c}:{}});break}case"finish":{u&&d.enqueue({type:"finish",finishReason:f.finishReason,...g!=null?{messageMetadata:g}:{}});break}case"abort":{d.enqueue(f);break}case"tool-input-end":break;case"raw":break;default:{let x=y;throw new Error(`Unknown chunk type: ${x}`)}}g!=null&&y!=="start"&&y!=="finish"&&d.enqueue({type:"message-metadata",messageMetadata:g})}}));return Pa(GT({stream:_,messageId:c??t?.(),originalMessages:e,onFinish:n,onError:l}))}pipeUIMessageStreamToResponse(e,{originalMessages:t,generateMessageId:n,onFinish:o,messageMetadata:r,sendReasoning:i,sendSources:a,sendFinish:u,sendStart:l,onError:c,...p}={}){WT({response:e,stream:this.toUIMessageStream({originalMessages:t,generateMessageId:n,onFinish:o,messageMetadata:r,sendReasoning:i,sendSources:a,sendFinish:u,sendStart:l,onError:c}),...p})}pipeTextStreamToResponse(e,t){UT({response:e,textStream:this.textStream,...t})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r,sendSources:i,sendFinish:a,sendStart:u,onError:l,...c}={}){return ZT({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r,sendSources:i,sendFinish:a,sendStart:u,onError:l}),...c})}toTextStreamResponse(e){return MT({textStream:this.textStream,...e})}};var jz=qt({prefix:"aiobj",size:24});var Az=qt({prefix:"aiobj",size:24});var rC={};gE(rC,{object:()=>oC,text:()=>nC});var nC=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),oC=({schema:e})=>{let t=Dr(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){let o=await jy(n);switch(o.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:o.value};default:{let r=o.state;throw new Error(`Unsupported parse state: ${r}`)}}},async parseOutput({text:n},o){let r=await St({text:n});if(!r.success)throw new Nv({message:"No object generated: could not parse the response.",cause:r.error,text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});let i=await We({value:r.value,schema:t});if(!i.success)throw new Nv({message:"No object generated: response did not match schema.",cause:i.error,text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});return i.value}}};var iC="AI_NoSuchProviderError",aC=`vercel.ai.error.${iC}`,sC=Symbol.for(aC),uC;uC=sC;var Rz=Me(()=>V(s.array(s.object({id:s.string(),role:s.enum(["system","user","assistant"]),metadata:s.unknown().optional(),parts:s.array(s.union([s.object({type:s.literal("text"),text:s.string(),state:s.enum(["streaming","done"]).optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("reasoning"),text:s.string(),state:s.enum(["streaming","done"]).optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("source-url"),sourceId:s.string(),url:s.string(),title:s.string().optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("source-document"),sourceId:s.string(),mediaType:s.string(),title:s.string(),filename:s.string().optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("file"),mediaType:s.string(),filename:s.string().optional(),url:s.string(),providerMetadata:oe.optional()}),s.object({type:s.literal("step-start")}),s.object({type:s.string().startsWith("data-"),id:s.string().optional(),data:s.unknown()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("input-streaming"),input:s.unknown().optional(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("input-available"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("output-available"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.unknown(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),preliminary:s.boolean().optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("output-error"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.string(),callProviderMetadata:oe.optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("input-streaming"),providerExecuted:s.boolean().optional(),input:s.unknown().optional(),output:s.never().optional(),errorText:s.never().optional(),approval:s.never().optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("input-available"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.never().optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("approval-requested"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.never().optional(),reason:s.never().optional()})}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("approval-responded"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.boolean(),reason:s.string().optional()})}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-available"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.unknown(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),preliminary:s.boolean().optional(),approval:s.object({id:s.string(),approved:s.literal(!0),reason:s.string().optional()}).optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-error"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.string(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.literal(!0),reason:s.string().optional()}).optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-denied"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.literal(!1),reason:s.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var bn="make a 300 word story";var Et=Be(require("fs")),Go=Be(require("path")),Ay=require("os");var Xd={"custom-verified-providers":{"zai-code-anth":{id:"zai-code-anth",name:"zai-code-anth",baseUrl:"https://api.z.ai/api/anthropic/v1",type:"anthropic",models:{"glm-4-5":{id:"glm-4.5",name:"GLM-4.5-anth"},"glm-4-5-air":{id:"glm-4.5-air",name:"GLM-4.5-air-anth"},"glm-4-6":{id:"glm-4.6",name:"GLM-4.6-anth"}}},"zai-china-anth-base":{id:"zai-china-anth-base",name:"zai-china-anth-base",baseUrl:"https://open.bigmodel.cn/api/anthropic/v1",type:"anthropic",models:{"glm-4-5":{id:"glm-4.5",name:"GLM-4.5-china-anth"},"glm-4-5-air":{id:"glm-4.5-air",name:"GLM-4.5-air-china-anth"},"glm-4-6":{id:"glm-4.6",name:"GLM-4.6-china-anth"}}},"extra-models-dev":{chutes:{"deepseek-ai/DeepSeek-V3.1-Terminus":{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},"meituan-longcat/LongCat-Flash-Thinking-FP8":{id:"meituan-longcat/LongCat-Flash-Thinking-FP8",name:"LongCat Flash Thinking FP8"}}},"nanogpt-plan":{id:"nanogpt-plan",name:"nanogpt-plan",baseUrl:"https://nano-gpt.com/api/v1",type:"openai-compatible",models:{"deepseek-ai/DeepSeek-V3.1-Terminus":{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},"deepseek-ai/DeepSeek-V3.1":{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{id:"deepseek-ai/DeepSeek-V3.1-Terminus:thinking",name:"DeepSeek V3.1 Terminus Thinking"},"zai-org/GLM-4.5-FP8":{id:"zai-org/GLM-4.5-FP8",name:"GLM 4.5 FP8"},"zai-org/GLM-4.5-FP8:thinking":{id:"zai-org/GLM-4.5-FP8:thinking",name:"GLM 4.5 FP8 Thinking"},"zai-org/GLM-4.5-Air":{id:"zai-org/GLM-4.5-Air",name:"GLM 4.5 Air"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi K2 Instruct"},"moonshotai/Kimi-K2-Instruct-0905":{id:"moonshotai/Kimi-K2-Instruct-0905",name:"Kimi K2 Instruct 0905"},"deepseek-ai/deepseek-v3.2-exp":{id:"deepseek-ai/deepseek-v3.2-exp",name:"DeepSeek V3.2 Exp"},"z-ai/glm-4.6":{id:"z-ai/glm-4.6",name:"GLM 4.6"},"z-ai/glm-4.6:thinking":{id:"z-ai/glm-4.6:thinking",name:"GLM 4.6 Thinking"},"qwen3-vl-235b-a22b-instruct":{id:"qwen3-vl-235b-a22b-instruct",name:"Qwen3 VL 235B A22B Instruct"},"MiniMax-M2":{id:"MiniMax-M2",name:"MiniMax-M2"}}}}};var Qd=Go.default.join((0,Ay.homedir)(),".cache","ai-speedometer"),ep=Go.default.join(Qd,"models.json"),Ny=[{id:"openai",name:"OpenAI",baseUrl:"https://api.openai.com/v1",type:"openai-compatible",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"}]},{id:"anthropic",name:"Anthropic",baseUrl:"https://api.anthropic.com",type:"anthropic",models:[{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku"},{id:"claude-3-opus-20240229",name:"Claude 3 Opus"}]},{id:"openrouter",name:"OpenRouter",baseUrl:"https://openrouter.ai/api/v1",type:"openai-compatible",models:[{id:"anthropic/claude-3.5-sonnet",name:"Claude 3.5 Sonnet"},{id:"openai/gpt-4o",name:"GPT-4o"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"}]}];function cC(){try{Et.default.existsSync(Qd)||Et.default.mkdirSync(Qd,{recursive:!0})}catch(e){console.warn("Warning: Could not create cache directory:",e.message)}}function dC(e){if(!e.timestamp)return!0;let n=Date.now()-e.timestamp,o=3600*1e3;return n>o}function pC(){try{if(Et.default.existsSync(ep)){let e=Et.default.readFileSync(ep,"utf8"),t=JSON.parse(e);return dC(t)?null:t}}catch(e){console.warn("Warning: Could not load cache:",e.message)}return null}function mC(e){try{cC();let t={...e,timestamp:Date.now()};Et.default.writeFileSync(ep,JSON.stringify(t,null,2))}catch(t){console.warn("Warning: Could not save cache:",t.message)}}async function fC(){try{let e=await fetch("https://models.dev/api.json");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.warn("Warning: Could not fetch from models.dev API:",e.message),null}}function Jo(){try{let e=Xd,t=Go.default.join(process.cwd(),"custom-verified-providers.json");if(Et.default.existsSync(t))try{let o=Et.default.readFileSync(t,"utf8");e=JSON.parse(o)}catch(o){console.warn("Warning: Could not load custom providers from file, using embedded data:",o.message)}let n=[];if(e["custom-verified-providers"]){for(let[,o]of Object.entries(e["custom-verified-providers"]))if(o.id!=="extra-models-dev"&&o.id&&o.name&&o.models){let r={id:o.id,name:o.name,baseUrl:o.baseUrl||"",type:o.type||"openai-compatible",models:Object.values(o.models).map(i=>({id:i.id,name:i.name}))};n.push(r)}}return n}catch(e){console.warn("Warning: Could not load custom verified providers:",e.message)}return[]}function zy(){try{let e=Xd,t=Go.default.join(process.cwd(),"custom-verified-providers.json");if(Et.default.existsSync(t))try{let o=Et.default.readFileSync(t,"utf8");e=JSON.parse(o)}catch(o){console.warn("Warning: Could not load extra models from file, using embedded data:",o.message)}let n={};if(e["custom-verified-providers"]&&e["custom-verified-providers"]["extra-models-dev"])for(let[o,r]of Object.entries(e["custom-verified-providers"]["extra-models-dev"]))n[o]=Object.values(r).map(i=>({id:i.id,name:i.name}));return n}catch(e){console.warn("Warning: Could not load extra models:",e.message)}return{}}function gC(e){let t=[],n=Jo();t.push(...n);let o=zy();if(e){for(let[,r]of Object.entries(e))if(r.id&&r.name&&r.models){let i=Object.values(r.models).map(u=>({id:u.id,name:u.name}));o[r.id]&&i.push(...o[r.id]);let a={id:r.id,name:r.name,baseUrl:r.api||r.baseUrl||"",type:r.npm&&r.npm.includes("anthropic")?"anthropic":"openai-compatible",models:i};t.push(a)}}return t.length===0?Ny:t}async function mr(){let e=pC();if(e&&e.providers){let i=Jo(),a=new Set(e.providers.map(l=>l.id)),u=i.filter(l=>!a.has(l.id));return u.length>0&&e.providers.push(...u),e.providers}let t=await fC();if(t){let i=gC(t);return mC({providers:i}),i}let n=[...Ny],o=zy(),r=Jo();return n.forEach(i=>{o[i.id]&&i.models.push(...o[i.id])}),n.push(...r),n}async function tp(e){let t=await mr(),n=e.toLowerCase();return t.filter(o=>o.name.toLowerCase().includes(n)||o.id.toLowerCase().includes(n))}async function za(e){let n=(await mr()).find(o=>o.id===e);return n?n.models:[]}var Yt=Be(require("fs")),Er=Be(require("path")),ap=require("os");var Ry=require("jsonc-parser"),sp=()=>{let e=process.env.XDG_DATA_HOME||Er.default.join((0,ap.homedir)(),".local","share"),t=process.env.XDG_CONFIG_HOME||Er.default.join((0,ap.homedir)(),".config");return{data:Er.default.join(e,"opencode"),config:Er.default.join(t,"opencode")}},up=()=>{let e=sp();return{authJson:Er.default.join(e.data,"auth.json"),opencodeJson:Er.default.join(e.config,"opencode.json")}},wC=()=>{let e=sp();[e.data,e.config].forEach(t=>{Yt.default.existsSync(t)||Yt.default.mkdirSync(t,{recursive:!0})})},lp=async()=>{let{authJson:e}=up();try{if(!Yt.default.existsSync(e))return{};let t=Yt.default.readFileSync(e,"utf8"),n=[],o=(0,Ry.parse)(t,n,{allowTrailingComma:!0});return n.length>0?(console.warn("Warning: JSONC parsing errors in auth.json:",n.map(r=>r.error).join(", ")),o||{}):o}catch(t){return console.warn("Warning: Could not read auth.json:",t.message),{}}},DC=async e=>{let{authJson:t}=up();try{wC();let n=JSON.stringify(e,null,2);return Yt.default.writeFileSync(t,n),Yt.default.chmodSync(t,384),!0}catch(n){return console.error("Error writing auth.json:",n.message),!1}};var kC=async()=>{let e=await lp(),t=await mr(),n=[];for(let[o,r]of Object.entries(e)){let i=t.find(a=>a.id===o);if(i&&r.type==="api"&&r.key){let a=await za(o);n.push({id:o,name:i.name,type:i.type,baseUrl:i.baseUrl,apiKey:r.key,authType:r.type,models:a.map(u=>({name:u.name,id:`${o}_${u.id}`}))})}}return n};var $C=async e=>{try{return(await mr()).find(n=>n.id===e)}catch(t){return console.warn("Warning: Could not verify provider:",t.message),null}},cp=async(e,t)=>{let n=await lp();return n[e]={type:"api",key:t},await DC(n)};var My=async(e=!1)=>{let[t,n,o]=await Promise.all([kC(),(async()=>{try{let{getCustomProvidersFromConfig:i}=await Promise.resolve().then(()=>(Ir(),xn));return await i()}catch(i){return console.warn("Warning: Could not load custom providers:",i.message),[]}})(),(async()=>{try{return Jo()}catch(i){return console.warn("Warning: Could not load custom verified providers:",i.message),[]}})()]),r=new Map;if(o.forEach(i=>{r.set(i.id,i)}),n.forEach(i=>{r.set(i.id,i)}),t.forEach(i=>{r.set(i.id,i)}),e)try{let i=await mr(),a=new Set(t.map(c=>c.id)),u=new Set(n.map(c=>c.id)),l=new Set(o.map(c=>c.id));i.forEach(c=>{!a.has(c.id)&&!u.has(c.id)&&!l.has(c.id)&&r.set(c.id,{...c,models:c.models.map(p=>({...p,id:`${c.id}_${p.id}`}))})})}catch(i){console.warn("Warning: Could not load all models.dev providers:",i.message)}return Array.from(r.values())};var Uy=async e=>{let t={migrated:0,failed:0,errors:[]};try{if(e.verifiedProviders)for(let[n,o]of Object.entries(e.verifiedProviders))await $C(n)?await cp(n,o)?t.migrated++:(t.failed++,t.errors.push(`Failed to migrate ${n}`)):(t.failed++,t.errors.push(`Provider ${n} not found in models.dev`));if(e.customProviders&&e.customProviders.length>0)try{let{addCustomProvider:n,readAIConfig:o,writeAIConfig:r}=await Promise.resolve().then(()=>(Ir(),xn)),i=await o();for(let a of e.customProviders)try{let u={id:a.id,name:a.name,type:a.type,baseUrl:a.baseUrl,apiKey:a.apiKey,models:a.models||[]};i.customProviders=i.customProviders||[],i.customProviders.push(u),t.migrated++}catch(u){t.failed++,t.errors.push(`Failed to migrate custom provider ${a.name}: ${u.message}`)}await r(i)}catch(n){t.failed++,t.errors.push(`Failed to migrate custom providers: ${n.message}`)}return t}catch(n){return t.failed++,t.errors.push(`Migration failed: ${n.message}`),t}},Zy=async()=>{let e=up(),[t,n]=await Promise.all([lp(),(async()=>{try{let{getAIConfigPaths:a}=await Promise.resolve().then(()=>(Ir(),xn));return await a()}catch{return{configDir:"N/A",configJson:"N/A",configExists:!1}}})()]),o=Yt.default.existsSync(e.authJson),r=Yt.default.existsSync(e.opencodeJson),i={verifiedProviders:{},customProviders:[]};try{let{readAIConfig:a}=await Promise.resolve().then(()=>(Ir(),xn));i=await a()}catch{}return{opencodePaths:e,authExists:o,configExists:r,authData:Object.keys(t),configProviders:[],aiConfigPaths:n,aiConfigData:{verifiedProviders:Object.keys(i.verifiedProviders||{}),customProviders:(i.customProviders||[]).map(a=>a.id)},xdgPaths:sp()}};Ir();var B6=require("dotenv/config"),J_=Be(L_());function lO(){let e=process.argv.slice(2),t={debug:!1,bench:null,benchCustom:null,apiKey:null,baseUrl:null,endpointFormat:null,useAiSdk:!1,formatted:!1,help:!1};for(let n=0;n<e.length;n++){let o=e[n];o==="--debug"?t.debug=!0:o==="--bench"?t.bench=e[++n]:o==="--bench-custom"?t.benchCustom=e[++n]:o==="--api-key"?t.apiKey=e[++n]:o==="--base-url"?t.baseUrl=e[++n]:o==="--endpoint-format"?t.endpointFormat=e[++n]:o==="--ai-sdk"?t.useAiSdk=!0:o==="--formatted"?t.formatted=!0:(o==="--help"||o==="-h")&&(t.help=!0)}return t}function cO(){console.log(m("ai-speedometer - Benchmark AI models","cyan")),console.log(""),console.log(m("Usage:","yellow")),console.log(" ai-speedometer "+m("# Interactive mode","dim")),console.log(" ai-speedometer --bench <provider:model> "+m("# Headless benchmark","dim")),console.log(" ai-speedometer --bench-custom <provider:model> "+m("# Custom provider benchmark","dim")),console.log(""),console.log(m("Options:","yellow")),console.log(" --bench <provider:model> "+m("Run benchmark in headless mode","dim")),console.log(" --bench-custom <provider:model> "+m("Run custom provider benchmark","dim")),console.log(" --base-url <url> "+m("Base URL for custom provider","dim")),console.log(" --api-key <key> "+m("API key for custom provider","dim")),console.log(" --endpoint-format <format> "+m("Endpoint format (default: chat/completions)","dim")),console.log(" --ai-sdk "+m("Use AI SDK instead of REST API","dim")),console.log(" --formatted "+m("Format JSON output for human readability","dim")),console.log(" --debug "+m("Enable debug logging","dim")),console.log(" --help, -h "+m("Show this help message","dim")),console.log(""),console.log(m("Examples:","yellow")),console.log(" ai-speedometer --bench openai:gpt-4"),console.log(' ai-speedometer --bench anthropic:claude-3-opus --api-key "sk-..."'),console.log(' ai-speedometer --bench-custom openai:gpt-4 --base-url "https://api.openai.com/v1" --api-key "sk-..."'),console.log(' ai-speedometer --bench-custom anthropic:claude --base-url "https://api.anthropic.com/v1" --api-key "sk-..." --endpoint-format "messages"'),console.log("")}function dO(e){let t=e.indexOf(":");if(t===-1)throw new Error("Invalid format. Use provider:model (e.g., openai:gpt-4)");let n=e.substring(0,t),o=e.substring(t+1);return{provider:n,model:o}}function pO(e){let{provider:t,model:n}=dO(e.benchCustom);if(!e.baseUrl)throw new Error("--base-url is required for custom provider benchmarking");if(!e.apiKey)throw new Error("--api-key is required for custom provider benchmarking");let o=e.endpointFormat||"chat/completions";return{id:t,name:t,type:"openai-compatible",baseUrl:e.baseUrl,apiKey:e.apiKey,endpointFormat:o,models:[{name:n,id:n}]}}var ot=lO(),Va=ot.debug,ei=null;function De(e){if(!Va)return;let n=`[${new Date().toISOString()}] ${e}
70
+ `)}})}},Cy={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function ZT({status:e,statusText:t,headers:n,stream:o,consumeSseStream:r}){let i=o.pipeThrough(new Ty);if(r){let[a,u]=i.tee();i=a,r({stream:u})}return new Response(i.pipeThrough(new TextEncoderStream),{status:e,statusText:t,headers:Na(n,Cy)})}function LT({originalMessages:e,responseMessageId:t}){if(e==null)return;let n=e[e.length-1];return n?.role==="assistant"?n.id:typeof t=="function"?t():t}var Ez=Me(()=>V(s.union([s.strictObject({type:s.literal("text-start"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("text-delta"),id:s.string(),delta:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("text-end"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("error"),errorText:s.string()}),s.strictObject({type:s.literal("tool-input-start"),toolCallId:s.string(),toolName:s.string(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("tool-input-delta"),toolCallId:s.string(),inputTextDelta:s.string()}),s.strictObject({type:s.literal("tool-input-available"),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),providerExecuted:s.boolean().optional(),providerMetadata:oe.optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("tool-input-error"),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),providerExecuted:s.boolean().optional(),providerMetadata:oe.optional(),dynamic:s.boolean().optional(),errorText:s.string()}),s.strictObject({type:s.literal("tool-output-available"),toolCallId:s.string(),output:s.unknown(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional(),preliminary:s.boolean().optional()}),s.strictObject({type:s.literal("tool-output-error"),toolCallId:s.string(),errorText:s.string(),providerExecuted:s.boolean().optional(),dynamic:s.boolean().optional()}),s.strictObject({type:s.literal("reasoning-start"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("reasoning-delta"),id:s.string(),delta:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("reasoning-end"),id:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("source-url"),sourceId:s.string(),url:s.string(),title:s.string().optional(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("source-document"),sourceId:s.string(),mediaType:s.string(),title:s.string(),filename:s.string().optional(),providerMetadata:oe.optional()}),s.strictObject({type:s.literal("file"),url:s.string(),mediaType:s.string(),providerMetadata:oe.optional()}),s.strictObject({type:s.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:s.string().optional(),data:s.unknown(),transient:s.boolean().optional()}),s.strictObject({type:s.literal("start-step")}),s.strictObject({type:s.literal("finish-step")}),s.strictObject({type:s.literal("start"),messageId:s.string().optional(),messageMetadata:s.unknown().optional()}),s.strictObject({type:s.literal("finish"),finishReason:s.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:s.unknown().optional()}),s.strictObject({type:s.literal("abort")}),s.strictObject({type:s.literal("message-metadata"),messageMetadata:s.unknown()})])));function BT(e){return e.type.startsWith("data-")}function Oy(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let n={...e};for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(r===void 0)continue;let i=o in e?e[o]:void 0,a=r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),u=i!=null&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);a&&u?n[o]=Oy(i,r):n[o]=r}return n}function VT(e){let t=["ROOT"],n=-1,o=null;function r(l,c,p){switch(l){case'"':{n=c,t.pop(),t.push(p),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=c,o=c,t.pop(),t.push(p),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(p),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=c,t.pop(),t.push(p),t.push("INSIDE_NUMBER");break}case"{":{n=c,t.pop(),t.push(p),t.push("INSIDE_OBJECT_START");break}case"[":{n=c,t.pop(),t.push(p),t.push("INSIDE_ARRAY_START");break}}}function i(l,c){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=c,t.pop();break}}}function a(l,c){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=c,t.pop();break}}}for(let l=0;l<e.length;l++){let c=e[l];switch(t[t.length-1]){case"ROOT":r(c,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(c){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(c){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{r(c,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{i(c,l);break}case"INSIDE_STRING":{switch(c){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(c){case"]":{n=l,t.pop();break}default:{n=l,r(c,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(c){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{r(c,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let h=e.substring(o,l+1);!"false".startsWith(h)&&!"true".startsWith(h)&&!"null".startsWith(h)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?i(c,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&a(c,l)):n=l;break}}}let u=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{u+='"';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":{u+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{u+="]";break}case"INSIDE_LITERAL":{let p=e.substring(o,e.length);"true".startsWith(p)?u+="true".slice(p.length):"false".startsWith(p)?u+="false".slice(p.length):"null".startsWith(p)&&(u+="null".slice(p.length))}}return u}async function jy(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await St({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await St({text:VT(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function Wd(e){return e.type.startsWith("tool-")}function Zv(e){return e.type.split("-").slice(1).join("-")}function qT({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function JT({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:o,onError:r,onToolCall:i,onData:a}){return e.pipeThrough(new TransformStream({async transform(u,l){await o(async({state:c,write:p})=>{var h,_,f,d;function g(b){let N=c.message.parts.filter(Wd).find(A=>A.toolCallId===b);if(N==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return N}function y(b){let N=c.message.parts.filter(A=>A.type==="dynamic-tool").find(A=>A.toolCallId===b);if(N==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return N}function x(b){var P;let N=c.message.parts.find(j=>Wd(j)&&j.toolCallId===b.toolCallId),A=b,F=N;N!=null?(N.state=b.state,F.input=A.input,F.output=A.output,F.errorText=A.errorText,F.rawInput=A.rawInput,F.preliminary=A.preliminary,F.providerExecuted=(P=A.providerExecuted)!=null?P:N.providerExecuted,A.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=A.providerMetadata)):c.message.parts.push({type:`tool-${b.toolName}`,toolCallId:b.toolCallId,state:b.state,input:A.input,output:A.output,rawInput:A.rawInput,errorText:A.errorText,providerExecuted:A.providerExecuted,preliminary:A.preliminary,...A.providerMetadata!=null?{callProviderMetadata:A.providerMetadata}:{}})}function v(b){var P,N;let A=c.message.parts.find(z=>z.type==="dynamic-tool"&&z.toolCallId===b.toolCallId),F=b,j=A;A!=null?(A.state=b.state,j.toolName=b.toolName,j.input=F.input,j.output=F.output,j.errorText=F.errorText,j.rawInput=(P=F.rawInput)!=null?P:j.rawInput,j.preliminary=F.preliminary,j.providerExecuted=(N=F.providerExecuted)!=null?N:A.providerExecuted,F.providerMetadata!=null&&A.state==="input-available"&&(A.callProviderMetadata=F.providerMetadata)):c.message.parts.push({type:"dynamic-tool",toolName:b.toolName,toolCallId:b.toolCallId,state:b.state,input:F.input,output:F.output,errorText:F.errorText,preliminary:F.preliminary,providerExecuted:F.providerExecuted,...F.providerMetadata!=null?{callProviderMetadata:F.providerMetadata}:{}})}async function D(b){if(b!=null){let P=c.message.metadata!=null?Oy(c.message.metadata,b):b;t!=null&&await Ge({value:P,schema:t}),c.message.metadata=P}}switch(u.type){case"text-start":{let b={type:"text",text:"",providerMetadata:u.providerMetadata,state:"streaming"};c.activeTextParts[u.id]=b,c.message.parts.push(b),p();break}case"text-delta":{let b=c.activeTextParts[u.id];b.text+=u.delta,b.providerMetadata=(h=u.providerMetadata)!=null?h:b.providerMetadata,p();break}case"text-end":{let b=c.activeTextParts[u.id];b.state="done",b.providerMetadata=(_=u.providerMetadata)!=null?_:b.providerMetadata,delete c.activeTextParts[u.id],p();break}case"reasoning-start":{let b={type:"reasoning",text:"",providerMetadata:u.providerMetadata,state:"streaming"};c.activeReasoningParts[u.id]=b,c.message.parts.push(b),p();break}case"reasoning-delta":{let b=c.activeReasoningParts[u.id];b.text+=u.delta,b.providerMetadata=(f=u.providerMetadata)!=null?f:b.providerMetadata,p();break}case"reasoning-end":{let b=c.activeReasoningParts[u.id];b.providerMetadata=(d=u.providerMetadata)!=null?d:b.providerMetadata,b.state="done",delete c.activeReasoningParts[u.id],p();break}case"file":{c.message.parts.push({type:"file",mediaType:u.mediaType,url:u.url}),p();break}case"source-url":{c.message.parts.push({type:"source-url",sourceId:u.sourceId,url:u.url,title:u.title,providerMetadata:u.providerMetadata}),p();break}case"source-document":{c.message.parts.push({type:"source-document",sourceId:u.sourceId,mediaType:u.mediaType,title:u.title,filename:u.filename,providerMetadata:u.providerMetadata}),p();break}case"tool-input-start":{let b=c.message.parts.filter(Wd);c.partialToolCalls[u.toolCallId]={text:"",toolName:u.toolName,index:b.length,dynamic:u.dynamic},u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}),p();break}case"tool-input-delta":{let b=c.partialToolCalls[u.toolCallId];b.text+=u.inputTextDelta;let{value:P}=await jy(b.text);b.dynamic?v({toolCallId:u.toolCallId,toolName:b.toolName,state:"input-streaming",input:P}):x({toolCallId:u.toolCallId,toolName:b.toolName,state:"input-streaming",input:P}),p();break}case"tool-input-available":{u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),p(),i&&!u.providerExecuted&&await i({toolCall:u});break}case"tool-input-error":{u.dynamic?v({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}):x({toolCallId:u.toolCallId,toolName:u.toolName,state:"output-error",input:void 0,rawInput:u.input,errorText:u.errorText,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),p();break}case"tool-output-available":{if(u.dynamic){let b=y(u.toolCallId);v({toolCallId:u.toolCallId,toolName:b.toolName,state:"output-available",input:b.input,output:u.output,preliminary:u.preliminary})}else{let b=g(u.toolCallId);x({toolCallId:u.toolCallId,toolName:Zv(b),state:"output-available",input:b.input,output:u.output,providerExecuted:u.providerExecuted,preliminary:u.preliminary})}p();break}case"tool-output-error":{if(u.dynamic){let b=y(u.toolCallId);v({toolCallId:u.toolCallId,toolName:b.toolName,state:"output-error",input:b.input,errorText:u.errorText,providerExecuted:u.providerExecuted})}else{let b=g(u.toolCallId);x({toolCallId:u.toolCallId,toolName:Zv(b),state:"output-error",input:b.input,rawInput:b.rawInput,errorText:u.errorText,providerExecuted:u.providerExecuted})}p();break}case"start-step":{c.message.parts.push({type:"step-start"});break}case"finish-step":{c.activeTextParts={},c.activeReasoningParts={};break}case"start":{u.messageId!=null&&(c.message.id=u.messageId),await D(u.messageMetadata),(u.messageId!=null||u.messageMetadata!=null)&&p();break}case"finish":{u.finishReason!=null&&(c.finishReason=u.finishReason),await D(u.messageMetadata),u.messageMetadata!=null&&p();break}case"message-metadata":{await D(u.messageMetadata),u.messageMetadata!=null&&p();break}case"error":{r?.(new Error(u.errorText));break}default:if(BT(u)){n?.[u.type]!=null&&await Ge({value:u.data,schema:n[u.type]});let b=u;if(b.transient){a?.(b);break}let P=b.id!=null?c.message.parts.find(N=>b.type===N.type&&b.id===N.id):void 0;P!=null?P.data=b.data:c.message.parts.push(b),a?.(b),p()}}l.enqueue(u)})}}))}function GT({messageId:e,originalMessages:t=[],onFinish:n,onError:o,stream:r}){let i=t?.[t.length-1];i?.role!=="assistant"?i=void 0:e=i.id;let a=!1,u=r.pipeThrough(new TransformStream({transform(_,f){if(_.type==="start"){let d=_;d.messageId==null&&e!=null&&(d.messageId=e)}_.type==="abort"&&(a=!0),f.enqueue(_)}}));if(n==null)return u;let l=qT({lastMessage:i?structuredClone(i):void 0,messageId:e??""}),c=async _=>{await _({state:l,write:()=>{}})},p=!1,h=async()=>{if(p||!n)return;p=!0;let _=l.message.id===i?.id;await n({isAborted:a,isContinuation:_,responseMessage:l.message,messages:[..._?t.slice(0,-1):t,l.message],finishReason:l.finishReason})};return JT({stream:u,runUpdateMessageJob:c,onError:o}).pipeThrough(new TransformStream({transform(_,f){f.enqueue(_)},async cancel(){await h()},async flush(){await h()}}))}function WT({response:e,status:t,statusText:n,headers:o,stream:r,consumeSseStream:i}){let a=r.pipeThrough(new Ty);if(i){let[u,l]=a.tee();a=u,i({stream:l})}Ey({response:e,status:t,statusText:n,headers:Object.fromEntries(Na(o,Cy).entries()),stream:a.pipeThrough(new TextEncoderStream)})}function Pa(e){let t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=function(){let n=this.getReader(),o=!1;async function r(i){var a;o=!0;try{i&&await((a=n.cancel)==null?void 0:a.call(n))}finally{try{n.releaseLock()}catch{}}}return{async next(){if(o)return{done:!0,value:void 0};let{done:i,value:a}=await n.read();return i?(await r(!0),{done:!0,value:void 0}):{done:!1,value:a}},async return(){return await r(!0),{done:!0,value:void 0}},async throw(i){throw await r(!0),i}}},t}async function KT({stream:e,onError:t}){let n=e.getReader();try{for(;;){let{done:o}=await n.read();if(o)break}}catch(o){t?.(o)}finally{n.releaseLock()}}function Lv(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function HT(){let e=[],t=null,n=!1,o=Lv(),r=()=>{n=!0,o.resolve(),e.forEach(a=>a.cancel()),e=[],t?.close()},i=async()=>{if(n&&e.length===0){t?.close();return}if(e.length===0)return o=Lv(),await o.promise,i();try{let{value:a,done:u}=await e[0].read();u?(e.shift(),e.length>0?await i():n&&t?.close()):t?.enqueue(a)}catch(a){t?.error(a),e.shift(),r()}};return{stream:new ReadableStream({start(a){t=a},pull:i,async cancel(){for(let a of e)await a.cancel();e=[],n=!0}}),addStream:a=>{if(n)throw new Error("Cannot add inner stream: outer stream is closed");e.push(a.getReader()),o.resolve()},close:()=>{n=!0,o.resolve(),e.length===0&&t?.close()},terminate:r}}var Aa=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,t)=>{this.status.type==="resolved"?e(this.status.value):this.status.type==="rejected"&&t(this.status.error),this._resolve=e,this._reject=t}),this._promise)}resolve(e){var t;this.status={type:"resolved",value:e},this._promise&&((t=this._resolve)==null||t.call(this,e))}reject(e){var t;this.status={type:"rejected",error:e},this._promise&&((t=this._reject)==null||t.call(this,e))}};function YT(){var e,t;return(t=(e=globalThis?.performance)==null?void 0:e.now())!=null?t:Date.now()}function XT({tools:e,generatorStream:t,tracer:n,telemetry:o,system:r,messages:i,abortSignal:a,repairToolCall:u,experimental_context:l}){let c=null,p=new ReadableStream({start(x){c=x}}),h=new Set,_=new Map,f=!1,d;function g(){f&&h.size===0&&(d!=null&&c.enqueue(d),c.close())}let y=new TransformStream({async transform(x,v){let D=x.type;switch(D){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":{v.enqueue(x);break}case"file":{v.enqueue({type:"file",file:new AT({data:x.data,mediaType:x.mediaType})});break}case"finish":{d={type:"finish",finishReason:x.finishReason,usage:x.usage,providerMetadata:x.providerMetadata};break}case"tool-call":{try{let b=await NT({toolCall:x,tools:e,repairToolCall:u,system:r,messages:i});if(v.enqueue(b),b.invalid){c.enqueue({type:"tool-error",toolCallId:b.toolCallId,toolName:b.toolName,input:b.input,error:Ao(b.error),dynamic:!0});break}let P=e[b.toolName];if(_.set(b.toolCallId,b.input),P.onInputAvailable!=null&&await P.onInputAvailable({input:b.input,toolCallId:b.toolCallId,messages:i,abortSignal:a,experimental_context:l}),P.execute!=null&&b.providerExecuted!==!0){let N=yt();h.add(N),Yd({name:"ai.toolCall",attributes:_n({telemetry:o,attributes:{...Hd({operationId:"ai.toolCall",telemetry:o}),"ai.toolCall.name":b.toolName,"ai.toolCall.id":b.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(b.input)}}}),tracer:n,fn:async A=>{let F;try{let j=yd({execute:P.execute.bind(P),input:b.input,options:{toolCallId:b.toolCallId,messages:i,abortSignal:a,experimental_context:l}});for await(let z of j)c.enqueue({...b,type:"tool-result",output:z.output,...z.type==="preliminary"&&{preliminary:!0}}),z.type==="final"&&(F=z.output)}catch(j){Sy(A,j),c.enqueue({...b,type:"tool-error",error:j}),h.delete(N),g();return}h.delete(N),g();try{A.setAttributes(_n({telemetry:o,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(F)}}}))}catch{}}})}}catch(b){c.enqueue({type:"error",error:b})}break}case"tool-result":{let b=x.toolName;x.isError?c.enqueue({type:"tool-error",toolCallId:x.toolCallId,toolName:b,input:_.get(x.toolCallId),providerExecuted:x.providerExecuted,error:x.result}):v.enqueue({type:"tool-result",toolCallId:x.toolCallId,toolName:b,input:_.get(x.toolCallId),output:x.result,providerExecuted:x.providerExecuted});break}default:{let b=D;throw new Error(`Unhandled chunk type: ${b}`)}}},flush(){f=!0,g()}});return new ReadableStream({async start(x){return Promise.all([t.pipeThrough(y).pipeTo(new WritableStream({write(v){x.enqueue(v)},close(){}})),p.pipeTo(new WritableStream({write(v){x.enqueue(v)},close(){x.close()}}))])}})}var QT=qt({prefix:"aitxt",size:24});function Py({model:e,tools:t,toolChoice:n,system:o,prompt:r,messages:i,maxRetries:a,abortSignal:u,headers:l,stopWhen:c=FT(1),experimental_output:p,experimental_telemetry:h,prepareStep:_,providerOptions:f,experimental_activeTools:d,activeTools:g=d,experimental_repairToolCall:y,experimental_transform:x,experimental_download:v,includeRawChunks:D=!1,onChunk:b,onError:P=({error:$})=>{console.error($)},onFinish:N,onAbort:A,onStepFinish:F,experimental_context:j,_internal:{now:z=YT,generateId:ie=QT,currentDate:W=()=>new Date}={},...U}){return new tC({model:by(e),telemetry:h,headers:l,settings:U,maxRetries:a,abortSignal:u,system:o,prompt:r,messages:i,tools:t,toolChoice:n,transforms:Fv(x),activeTools:g,repairToolCall:y,stopConditions:Fv(c),output:p,providerOptions:f,prepareStep:_,includeRawChunks:D,onChunk:b,onError:P,onFinish:N,onAbort:A,onStepFinish:F,now:z,currentDate:W,generateId:ie,experimental_context:j,download:v})}function eC(e){if(!e)return new TransformStream({transform(a,u){u.enqueue({part:a,partialOutput:void 0})}});let t,n="",o="",r="";function i({controller:a,partialOutput:u=void 0}){a.enqueue({part:{type:"text-delta",id:t,text:o},partialOutput:u}),o=""}return new TransformStream({async transform(a,u){if(a.type==="finish-step"&&o.length>0&&i({controller:u}),a.type!=="text-delta"&&a.type!=="text-start"&&a.type!=="text-end"){u.enqueue({part:a,partialOutput:void 0});return}if(t==null)t=a.id;else if(a.id!==t){u.enqueue({part:a,partialOutput:void 0});return}if(a.type==="text-start"){u.enqueue({part:a,partialOutput:void 0});return}if(a.type==="text-end"){o.length>0&&i({controller:u}),u.enqueue({part:a,partialOutput:void 0});return}n+=a.text,o+=a.text;let l=await e.parsePartial({text:n});if(l!=null){let c=JSON.stringify(l.partial);c!==r&&(i({controller:u,partialOutput:l.partial}),r=c)}}})}var tC=class{constructor({model:e,telemetry:t,headers:n,settings:o,maxRetries:r,abortSignal:i,system:a,prompt:u,messages:l,tools:c,toolChoice:p,transforms:h,activeTools:_,repairToolCall:f,stopConditions:d,output:g,providerOptions:y,prepareStep:x,includeRawChunks:v,now:D,currentDate:b,generateId:P,onChunk:N,onError:A,onFinish:F,onAbort:j,onStepFinish:z,experimental_context:ie,download:W}){this._totalUsage=new Aa,this._finishReason=new Aa,this._steps=new Aa,this.output=g,this.includeRawChunks=v,this.tools=c;let U,$=[],K=[],I,q,se={},ct=[],de=[],ye,xe={},Or={},Y_=new TransformStream({async transform(_e,be){var Ie,ae,dt,$n;be.enqueue(_e);let{part:Z}=_e;if((Z.type==="text-delta"||Z.type==="reasoning-delta"||Z.type==="source"||Z.type==="tool-call"||Z.type==="tool-result"||Z.type==="tool-input-start"||Z.type==="tool-input-delta"||Z.type==="raw")&&await N?.({chunk:Z}),Z.type==="error"&&await A({error:DT(Z.error)}),Z.type==="text-start"&&(xe[Z.id]={type:"text",text:"",providerMetadata:Z.providerMetadata},$.push(xe[Z.id])),Z.type==="text-delta"){let ge=xe[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`text part ${Z.id} not found`},partialOutput:void 0});return}ge.text+=Z.text,ge.providerMetadata=(Ie=Z.providerMetadata)!=null?Ie:ge.providerMetadata}if(Z.type==="text-end"){let ge=xe[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`text part ${Z.id} not found`},partialOutput:void 0});return}ge.providerMetadata=(ae=Z.providerMetadata)!=null?ae:ge.providerMetadata,delete xe[Z.id]}if(Z.type==="reasoning-start"&&(Or[Z.id]={type:"reasoning",text:"",providerMetadata:Z.providerMetadata},$.push(Or[Z.id])),Z.type==="reasoning-delta"){let ge=Or[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`reasoning part ${Z.id} not found`},partialOutput:void 0});return}ge.text+=Z.text,ge.providerMetadata=(dt=Z.providerMetadata)!=null?dt:ge.providerMetadata}if(Z.type==="reasoning-end"){let ge=Or[Z.id];if(ge==null){be.enqueue({part:{type:"error",error:`reasoning part ${Z.id} not found`},partialOutput:void 0});return}ge.providerMetadata=($n=Z.providerMetadata)!=null?$n:ge.providerMetadata,delete Or[Z.id]}if(Z.type==="file"&&$.push({type:"file",file:Z.file}),Z.type==="source"&&$.push(Z),Z.type==="tool-call"&&$.push(Z),Z.type==="tool-result"&&!Z.preliminary&&$.push(Z),Z.type==="tool-error"&&$.push(Z),Z.type==="start-step"&&(se=Z.request,ct=Z.warnings),Z.type==="finish-step"){let ge=Uv({content:$,tools:c}),Sn=new zT({content:$,finishReason:Z.finishReason,usage:Z.usage,warnings:ct,request:se,response:{...Z.response,messages:[...K,...ge]},providerMetadata:Z.providerMetadata});await z?.(Sn),bE(ct),de.push(Sn),$=[],Or={},xe={},K.push(...ge),U.resolve()}Z.type==="finish"&&(q=Z.totalUsage,I=Z.finishReason)},async flush(_e){try{if(de.length===0){let dt=new PE({message:"No output generated. Check the stream for errors."});it._finishReason.reject(dt),it._totalUsage.reject(dt),it._steps.reject(dt);return}let be=I??"unknown",Ie=q??{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};it._finishReason.resolve(be),it._totalUsage.resolve(Ie),it._steps.resolve(de);let ae=de[de.length-1];await F?.({finishReason:be,totalUsage:Ie,usage:ae.usage,content:ae.content,text:ae.text,reasoningText:ae.reasoningText,reasoning:ae.reasoning,files:ae.files,sources:ae.sources,toolCalls:ae.toolCalls,staticToolCalls:ae.staticToolCalls,dynamicToolCalls:ae.dynamicToolCalls,toolResults:ae.toolResults,staticToolResults:ae.staticToolResults,dynamicToolResults:ae.dynamicToolResults,request:ae.request,response:ae.response,warnings:ae.warnings,providerMetadata:ae.providerMetadata,steps:de}),ye.setAttributes(_n({telemetry:t,attributes:{"ai.response.finishReason":be,"ai.response.text":{output:()=>ae.text},"ai.response.toolCalls":{output:()=>{var dt;return(dt=ae.toolCalls)!=null&&dt.length?JSON.stringify(ae.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(ae.providerMetadata),"ai.usage.inputTokens":Ie.inputTokens,"ai.usage.outputTokens":Ie.outputTokens,"ai.usage.totalTokens":Ie.totalTokens,"ai.usage.reasoningTokens":Ie.reasoningTokens,"ai.usage.cachedInputTokens":Ie.cachedInputTokens}}))}catch(be){_e.error(be)}finally{ye.end()}}}),kn=HT();this.addStream=kn.addStream,this.closeStream=kn.close;let X_=kn.stream.getReader(),Ga=new ReadableStream({async start(_e){_e.enqueue({type:"start"})},async pull(_e){function be(){j?.({steps:de}),_e.enqueue({type:"abort"}),_e.close()}try{let{done:Ie,value:ae}=await X_.read();if(Ie){_e.close();return}if(i?.aborted){be();return}_e.enqueue(ae)}catch(Ie){Vt(Ie)&&i?.aborted?be():_e.error(Ie)}},cancel(_e){return kn.stream.cancel(_e)}});for(let _e of h)Ga=Ga.pipeThrough(_e({tools:c,stopStream(){kn.terminate()}}));this.baseStream=Ga.pipeThrough(eC(g)).pipeThrough(Y_);let{maxRetries:Q_,retry:eb}=jT({maxRetries:r,abortSignal:i}),Wa=IT(t),Ot=cT(o),kp=kT({model:e,telemetry:t,headers:n,settings:{...Ot,maxRetries:Q_}}),it=this;Yd({name:"ai.streamText",attributes:_n({telemetry:t,attributes:{...Hd({operationId:"ai.streamText",telemetry:t}),...kp,"ai.prompt":{input:()=>JSON.stringify({system:a,prompt:u,messages:l})}}}),tracer:Wa,endWhenDone:!1,fn:async _e=>{ye=_e;async function be({currentStep:Ie,responseMessages:ae,usage:dt}){var $n,Z,ge,Sn,$p;let Sp=it.includeRawChunks;U=new Aa;let Ip=await wT({system:a,prompt:u,messages:l}),In=[...Ip.messages,...ae],bt=await x?.({model:e,steps:de,stepNumber:de.length,messages:In}),jr=by(($n=bt?.model)!=null?$n:e),Ep=await aT({prompt:{system:(Z=bt?.system)!=null?Z:Ip.system,messages:(ge=bt?.messages)!=null?ge:In},supportedUrls:await jr.supportedUrls,download:W}),{toolChoice:Ka,tools:Ha}=pT({tools:c,toolChoice:(Sn=bt?.toolChoice)!=null?Sn:p,activeTools:($p=bt?.activeTools)!=null?$p:_}),{result:{stream:tb,response:Tp,request:Cp},doStreamSpan:Pr,startTimestampMs:Op}=await eb(()=>Yd({name:"ai.streamText.doStream",attributes:_n({telemetry:t,attributes:{...Hd({operationId:"ai.streamText.doStream",telemetry:t}),...kp,"ai.model.provider":jr.provider,"ai.model.id":jr.modelId,"ai.prompt.messages":{input:()=>ET(Ep)},"ai.prompt.tools":{input:()=>Ha?.map(J=>JSON.stringify(J))},"ai.prompt.toolChoice":{input:()=>Ka!=null?JSON.stringify(Ka):void 0},"gen_ai.system":jr.provider,"gen_ai.request.model":jr.modelId,"gen_ai.request.frequency_penalty":Ot.frequencyPenalty,"gen_ai.request.max_tokens":Ot.maxOutputTokens,"gen_ai.request.presence_penalty":Ot.presencePenalty,"gen_ai.request.stop_sequences":Ot.stopSequences,"gen_ai.request.temperature":Ot.temperature,"gen_ai.request.top_k":Ot.topK,"gen_ai.request.top_p":Ot.topP}}),tracer:Wa,endWhenDone:!1,fn:async J=>({startTimestampMs:D(),doStreamSpan:J,result:await jr.doStream({...Ot,tools:Ha,toolChoice:Ka,responseFormat:g?.responseFormat,prompt:Ep,providerOptions:y,abortSignal:i,headers:n,includeRawChunks:Sp})})})),rb=XT({tools:c,generatorStream:tb,tracer:Wa,telemetry:t,system:a,messages:In,repairToolCall:f,abortSignal:i,experimental_context:ie}),nb=Cp??{},ti=[],Ya=[],Xa,Qa={},Ar="unknown",pt={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},es,jp=!0,xt={id:P(),timestamp:b(),modelId:e.modelId},Pp="";it.addStream(rb.pipeThrough(new TransformStream({async transform(J,Ee){var En,Tn,ri,jt;if(J.type==="stream-start"){Xa=J.warnings;return}if(jp){let Ne=D()-Op;jp=!1,Pr.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":Ne}),Pr.setAttributes({"ai.response.msToFirstChunk":Ne}),Ee.enqueue({type:"start-step",request:nb,warnings:Xa??[]})}let Ap=J.type;switch(Ap){case"text-start":case"text-end":{Ee.enqueue(J);break}case"text-delta":{J.delta.length>0&&(Ee.enqueue({type:"text-delta",id:J.id,text:J.delta,providerMetadata:J.providerMetadata}),Pp+=J.delta);break}case"reasoning-start":case"reasoning-end":{Ee.enqueue(J);break}case"reasoning-delta":{Ee.enqueue({type:"reasoning-delta",id:J.id,text:J.delta,providerMetadata:J.providerMetadata});break}case"tool-call":{Ee.enqueue(J),ti.push(J);break}case"tool-result":{Ee.enqueue(J),J.preliminary||Ya.push(J);break}case"tool-error":{Ee.enqueue(J),Ya.push(J);break}case"response-metadata":{xt={id:(En=J.id)!=null?En:xt.id,timestamp:(Tn=J.timestamp)!=null?Tn:xt.timestamp,modelId:(ri=J.modelId)!=null?ri:xt.modelId};break}case"finish":{pt=J.usage,Ar=J.finishReason,es=J.providerMetadata;let Ne=D()-Op;Pr.addEvent("ai.stream.finish"),Pr.setAttributes({"ai.response.msToFinish":Ne,"ai.response.avgOutputTokensPerSecond":1e3*((jt=pt.outputTokens)!=null?jt:0)/Ne});break}case"file":{Ee.enqueue(J);break}case"source":{Ee.enqueue(J);break}case"tool-input-start":{Qa[J.id]=J.toolName;let Ne=c?.[J.toolName];Ne?.onInputStart!=null&&await Ne.onInputStart({toolCallId:J.id,messages:In,abortSignal:i,experimental_context:ie}),Ee.enqueue({...J,dynamic:Ne?.type==="dynamic"});break}case"tool-input-end":{delete Qa[J.id],Ee.enqueue(J);break}case"tool-input-delta":{let Ne=Qa[J.id],ts=c?.[Ne];ts?.onInputDelta!=null&&await ts.onInputDelta({inputTextDelta:J.delta,toolCallId:J.id,messages:In,abortSignal:i,experimental_context:ie}),Ee.enqueue(J);break}case"error":{Ee.enqueue(J),Ar="error";break}case"raw":{Sp&&Ee.enqueue(J);break}default:{let Ne=Ap;throw new Error(`Unknown chunk type: ${Ne}`)}}},async flush(J){let Ee=ti.length>0?JSON.stringify(ti):void 0;try{Pr.setAttributes(_n({telemetry:t,attributes:{"ai.response.finishReason":Ar,"ai.response.text":{output:()=>Pp},"ai.response.toolCalls":{output:()=>Ee},"ai.response.id":xt.id,"ai.response.model":xt.modelId,"ai.response.timestamp":xt.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(es),"ai.usage.inputTokens":pt.inputTokens,"ai.usage.outputTokens":pt.outputTokens,"ai.usage.totalTokens":pt.totalTokens,"ai.usage.reasoningTokens":pt.reasoningTokens,"ai.usage.cachedInputTokens":pt.cachedInputTokens,"gen_ai.response.finish_reasons":[Ar],"gen_ai.response.id":xt.id,"gen_ai.response.model":xt.modelId,"gen_ai.usage.input_tokens":pt.inputTokens,"gen_ai.usage.output_tokens":pt.outputTokens}}))}catch{}finally{Pr.end()}J.enqueue({type:"finish-step",finishReason:Ar,usage:pt,providerMetadata:es,response:{...xt,headers:Tp?.headers}});let En=TT(dt,pt);await U.promise;let Tn=ti.filter(jt=>jt.providerExecuted!==!0),ri=Ya.filter(jt=>jt.providerExecuted!==!0);if(Tn.length>0&&ri.length===Tn.length&&!await RT({stopConditions:d,steps:de})){ae.push(...Uv({content:de[de.length-1].content,tools:c}));try{await be({currentStep:Ie+1,responseMessages:ae,usage:En})}catch(jt){J.enqueue({type:"error",error:jt}),it.closeStream()}}else J.enqueue({type:"finish",finishReason:Ar,totalUsage:En}),it.closeStream()}})))}await be({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(_e=>{it.addStream(new ReadableStream({start(be){be.enqueue({type:"error",error:_e}),be.close()}})),it.closeStream()})}get steps(){return this.consumeStream(),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 staticToolCalls(){return this.finalStep.then(e=>e.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then(e=>e.dynamicToolCalls)}get toolResults(){return this.finalStep.then(e=>e.toolResults)}get staticToolResults(){return this.finalStep.then(e=>e.staticToolResults)}get dynamicToolResults(){return this.finalStep.then(e=>e.dynamicToolResults)}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.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}teeStream(){let[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return Pa(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){e.type==="text-delta"&&t.enqueue(e.text)}})))}get fullStream(){return Pa(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await KT({stream:this.fullStream,onError:e?.onError})}catch(n){(t=e?.onError)==null||t.call(e,n)}}get experimental_partialOutputStream(){if(this.output==null)throw new vE;return Pa(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){e!=null&&t.enqueue(e)}})))}toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r=!0,sendSources:i=!1,sendStart:a=!0,sendFinish:u=!0,onError:l=wt}={}){let c=t!=null?LT({originalMessages:e,responseMessageId:t}):void 0,p={},h=f=>{var d,g;let y=p[f];return((g=(d=this.tools)==null?void 0:d[y])==null?void 0:g.type)==="dynamic"?!0:void 0},_=this.fullStream.pipeThrough(new TransformStream({transform:async(f,d)=>{let g=o?.({part:f}),y=f.type;switch(y){case"text-start":{d.enqueue({type:"text-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-delta":{d.enqueue({type:"text-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-end":{d.enqueue({type:"text-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-start":{d.enqueue({type:"reasoning-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-delta":{r&&d.enqueue({type:"reasoning-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-end":{d.enqueue({type:"reasoning-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"file":{d.enqueue({type:"file",mediaType:f.file.mediaType,url:`data:${f.file.mediaType};base64,${f.file.base64}`});break}case"source":{i&&f.sourceType==="url"&&d.enqueue({type:"source-url",sourceId:f.id,url:f.url,title:f.title,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}}),i&&f.sourceType==="document"&&d.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":{p[f.id]=f.toolName;let x=h(f.id);d.enqueue({type:"tool-input-start",toolCallId:f.id,toolName:f.toolName,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...x!=null?{dynamic:x}:{}});break}case"tool-input-delta":{d.enqueue({type:"tool-input-delta",toolCallId:f.id,inputTextDelta:f.delta});break}case"tool-call":{p[f.toolCallId]=f.toolName;let x=h(f.toolCallId);f.invalid?d.enqueue({type:"tool-input-error",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...x!=null?{dynamic:x}:{},errorText:l(f.error)}):d.enqueue({type:"tool-input-available",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...x!=null?{dynamic:x}:{}});break}case"tool-result":{let x=h(f.toolCallId);d.enqueue({type:"tool-output-available",toolCallId:f.toolCallId,output:f.output,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.preliminary!=null?{preliminary:f.preliminary}:{},...x!=null?{dynamic:x}:{}});break}case"tool-error":{let x=h(f.toolCallId);d.enqueue({type:"tool-output-error",toolCallId:f.toolCallId,errorText:l(f.error),...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...x!=null?{dynamic:x}:{}});break}case"error":{d.enqueue({type:"error",errorText:l(f.error)});break}case"start-step":{d.enqueue({type:"start-step"});break}case"finish-step":{d.enqueue({type:"finish-step"});break}case"start":{a&&d.enqueue({type:"start",...g!=null?{messageMetadata:g}:{},...c!=null?{messageId:c}:{}});break}case"finish":{u&&d.enqueue({type:"finish",finishReason:f.finishReason,...g!=null?{messageMetadata:g}:{}});break}case"abort":{d.enqueue(f);break}case"tool-input-end":break;case"raw":break;default:{let x=y;throw new Error(`Unknown chunk type: ${x}`)}}g!=null&&y!=="start"&&y!=="finish"&&d.enqueue({type:"message-metadata",messageMetadata:g})}}));return Pa(GT({stream:_,messageId:c??t?.(),originalMessages:e,onFinish:n,onError:l}))}pipeUIMessageStreamToResponse(e,{originalMessages:t,generateMessageId:n,onFinish:o,messageMetadata:r,sendReasoning:i,sendSources:a,sendFinish:u,sendStart:l,onError:c,...p}={}){WT({response:e,stream:this.toUIMessageStream({originalMessages:t,generateMessageId:n,onFinish:o,messageMetadata:r,sendReasoning:i,sendSources:a,sendFinish:u,sendStart:l,onError:c}),...p})}pipeTextStreamToResponse(e,t){UT({response:e,textStream:this.textStream,...t})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r,sendSources:i,sendFinish:a,sendStart:u,onError:l,...c}={}){return ZT({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:n,messageMetadata:o,sendReasoning:r,sendSources:i,sendFinish:a,sendStart:u,onError:l}),...c})}toTextStreamResponse(e){return MT({textStream:this.textStream,...e})}};var jz=qt({prefix:"aiobj",size:24});var Az=qt({prefix:"aiobj",size:24});var rC={};gE(rC,{object:()=>oC,text:()=>nC});var nC=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),oC=({schema:e})=>{let t=Dr(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){let o=await jy(n);switch(o.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:o.value};default:{let r=o.state;throw new Error(`Unsupported parse state: ${r}`)}}},async parseOutput({text:n},o){let r=await St({text:n});if(!r.success)throw new Nv({message:"No object generated: could not parse the response.",cause:r.error,text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});let i=await We({value:r.value,schema:t});if(!i.success)throw new Nv({message:"No object generated: response did not match schema.",cause:i.error,text:n,response:o.response,usage:o.usage,finishReason:o.finishReason});return i.value}}};var iC="AI_NoSuchProviderError",aC=`vercel.ai.error.${iC}`,sC=Symbol.for(aC),uC;uC=sC;var Rz=Me(()=>V(s.array(s.object({id:s.string(),role:s.enum(["system","user","assistant"]),metadata:s.unknown().optional(),parts:s.array(s.union([s.object({type:s.literal("text"),text:s.string(),state:s.enum(["streaming","done"]).optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("reasoning"),text:s.string(),state:s.enum(["streaming","done"]).optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("source-url"),sourceId:s.string(),url:s.string(),title:s.string().optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("source-document"),sourceId:s.string(),mediaType:s.string(),title:s.string(),filename:s.string().optional(),providerMetadata:oe.optional()}),s.object({type:s.literal("file"),mediaType:s.string(),filename:s.string().optional(),url:s.string(),providerMetadata:oe.optional()}),s.object({type:s.literal("step-start")}),s.object({type:s.string().startsWith("data-"),id:s.string().optional(),data:s.unknown()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("input-streaming"),input:s.unknown().optional(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("input-available"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("output-available"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.unknown(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),preliminary:s.boolean().optional()}),s.object({type:s.literal("dynamic-tool"),toolName:s.string(),toolCallId:s.string(),state:s.literal("output-error"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.string(),callProviderMetadata:oe.optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("input-streaming"),providerExecuted:s.boolean().optional(),input:s.unknown().optional(),output:s.never().optional(),errorText:s.never().optional(),approval:s.never().optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("input-available"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.never().optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("approval-requested"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.never().optional(),reason:s.never().optional()})}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("approval-responded"),input:s.unknown(),providerExecuted:s.boolean().optional(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.boolean(),reason:s.string().optional()})}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-available"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.unknown(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),preliminary:s.boolean().optional(),approval:s.object({id:s.string(),approved:s.literal(!0),reason:s.string().optional()}).optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-error"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.string(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.literal(!0),reason:s.string().optional()}).optional()}),s.object({type:s.string().startsWith("tool-"),toolCallId:s.string(),state:s.literal("output-denied"),providerExecuted:s.boolean().optional(),input:s.unknown(),output:s.never().optional(),errorText:s.never().optional(),callProviderMetadata:oe.optional(),approval:s.object({id:s.string(),approved:s.literal(!1),reason:s.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var bn="make a 300 word story";var Et=Be(require("fs")),Go=Be(require("path")),Ay=require("os");var Xd={"custom-verified-providers":{"zai-code-anth":{id:"zai-code-anth",name:"zai-code-anth",baseUrl:"https://api.z.ai/api/anthropic/v1",type:"anthropic",models:{"glm-4-5":{id:"glm-4.5",name:"GLM-4.5-anth"},"glm-4-5-air":{id:"glm-4.5-air",name:"GLM-4.5-air-anth"},"glm-4-6":{id:"glm-4.6",name:"GLM-4.6-anth"}}},"zai-china-anth-base":{id:"zai-china-anth-base",name:"zai-china-anth-base",baseUrl:"https://open.bigmodel.cn/api/anthropic/v1",type:"anthropic",models:{"glm-4-5":{id:"glm-4.5",name:"GLM-4.5-china-anth"},"glm-4-5-air":{id:"glm-4.5-air",name:"GLM-4.5-air-china-anth"},"glm-4-6":{id:"glm-4.6",name:"GLM-4.6-china-anth"}}},"extra-models-dev":{chutes:{"deepseek-ai/DeepSeek-V3.1-Terminus":{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},"meituan-longcat/LongCat-Flash-Thinking-FP8":{id:"meituan-longcat/LongCat-Flash-Thinking-FP8",name:"LongCat Flash Thinking FP8"}}},"nanogpt-plan":{id:"nanogpt-plan",name:"nanogpt-plan",baseUrl:"https://nano-gpt.com/api/v1",type:"openai-compatible",models:{"deepseek-ai/DeepSeek-V3.1-Terminus":{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},"deepseek-ai/DeepSeek-V3.1":{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},"deepseek-ai/DeepSeek-V3.1-Terminus:thinking":{id:"deepseek-ai/DeepSeek-V3.1-Terminus:thinking",name:"DeepSeek V3.1 Terminus Thinking"},"zai-org/GLM-4.5-FP8":{id:"zai-org/GLM-4.5-FP8",name:"GLM 4.5 FP8"},"zai-org/GLM-4.5-FP8:thinking":{id:"zai-org/GLM-4.5-FP8:thinking",name:"GLM 4.5 FP8 Thinking"},"zai-org/GLM-4.5-Air":{id:"zai-org/GLM-4.5-Air",name:"GLM 4.5 Air"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi K2 Instruct"},"moonshotai/Kimi-K2-Instruct-0905":{id:"moonshotai/Kimi-K2-Instruct-0905",name:"Kimi K2 Instruct 0905"},"moonshotai/kimi-k2-thinking":{id:"moonshotai/kimi-k2-thinking",name:"Kimi K2 Thinking"},"deepseek-ai/deepseek-v3.2-exp":{id:"deepseek-ai/deepseek-v3.2-exp",name:"DeepSeek V3.2 Exp"},"z-ai/glm-4.6":{id:"z-ai/glm-4.6",name:"GLM 4.6"},"z-ai/glm-4.6:thinking":{id:"z-ai/glm-4.6:thinking",name:"GLM 4.6 Thinking"},"qwen3-vl-235b-a22b-instruct":{id:"qwen3-vl-235b-a22b-instruct",name:"Qwen3 VL 235B A22B Instruct"},"MiniMax-M2":{id:"MiniMax-M2",name:"MiniMax-M2"}}}}};var Qd=Go.default.join((0,Ay.homedir)(),".cache","ai-speedometer"),ep=Go.default.join(Qd,"models.json"),Ny=[{id:"openai",name:"OpenAI",baseUrl:"https://api.openai.com/v1",type:"openai-compatible",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"}]},{id:"anthropic",name:"Anthropic",baseUrl:"https://api.anthropic.com",type:"anthropic",models:[{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku"},{id:"claude-3-opus-20240229",name:"Claude 3 Opus"}]},{id:"openrouter",name:"OpenRouter",baseUrl:"https://openrouter.ai/api/v1",type:"openai-compatible",models:[{id:"anthropic/claude-3.5-sonnet",name:"Claude 3.5 Sonnet"},{id:"openai/gpt-4o",name:"GPT-4o"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"}]}];function cC(){try{Et.default.existsSync(Qd)||Et.default.mkdirSync(Qd,{recursive:!0})}catch(e){console.warn("Warning: Could not create cache directory:",e.message)}}function dC(e){if(!e.timestamp)return!0;let n=Date.now()-e.timestamp,o=3600*1e3;return n>o}function pC(){try{if(Et.default.existsSync(ep)){let e=Et.default.readFileSync(ep,"utf8"),t=JSON.parse(e);return dC(t)?null:t}}catch(e){console.warn("Warning: Could not load cache:",e.message)}return null}function mC(e){try{cC();let t={...e,timestamp:Date.now()};Et.default.writeFileSync(ep,JSON.stringify(t,null,2))}catch(t){console.warn("Warning: Could not save cache:",t.message)}}async function fC(){try{let e=await fetch("https://models.dev/api.json");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.warn("Warning: Could not fetch from models.dev API:",e.message),null}}function Jo(){try{let e=Xd,t=Go.default.join(process.cwd(),"custom-verified-providers.json");if(Et.default.existsSync(t))try{let o=Et.default.readFileSync(t,"utf8");e=JSON.parse(o)}catch(o){console.warn("Warning: Could not load custom providers from file, using embedded data:",o.message)}let n=[];if(e["custom-verified-providers"]){for(let[,o]of Object.entries(e["custom-verified-providers"]))if(o.id!=="extra-models-dev"&&o.id&&o.name&&o.models){let r={id:o.id,name:o.name,baseUrl:o.baseUrl||"",type:o.type||"openai-compatible",models:Object.values(o.models).map(i=>({id:i.id,name:i.name}))};n.push(r)}}return n}catch(e){console.warn("Warning: Could not load custom verified providers:",e.message)}return[]}function zy(){try{let e=Xd,t=Go.default.join(process.cwd(),"custom-verified-providers.json");if(Et.default.existsSync(t))try{let o=Et.default.readFileSync(t,"utf8");e=JSON.parse(o)}catch(o){console.warn("Warning: Could not load extra models from file, using embedded data:",o.message)}let n={};if(e["custom-verified-providers"]&&e["custom-verified-providers"]["extra-models-dev"])for(let[o,r]of Object.entries(e["custom-verified-providers"]["extra-models-dev"]))n[o]=Object.values(r).map(i=>({id:i.id,name:i.name}));return n}catch(e){console.warn("Warning: Could not load extra models:",e.message)}return{}}function gC(e){let t=[],n=Jo();t.push(...n);let o=zy();if(e){for(let[,r]of Object.entries(e))if(r.id&&r.name&&r.models){let i=Object.values(r.models).map(u=>({id:u.id,name:u.name}));o[r.id]&&i.push(...o[r.id]);let a={id:r.id,name:r.name,baseUrl:r.api||r.baseUrl||"",type:r.npm&&r.npm.includes("anthropic")?"anthropic":"openai-compatible",models:i};t.push(a)}}return t.length===0?Ny:t}async function mr(){let e=pC();if(e&&e.providers){let i=Jo(),a=new Set(e.providers.map(l=>l.id)),u=i.filter(l=>!a.has(l.id));return u.length>0&&e.providers.push(...u),e.providers}let t=await fC();if(t){let i=gC(t);return mC({providers:i}),i}let n=[...Ny],o=zy(),r=Jo();return n.forEach(i=>{o[i.id]&&i.models.push(...o[i.id])}),n.push(...r),n}async function tp(e){let t=await mr(),n=e.toLowerCase();return t.filter(o=>o.name.toLowerCase().includes(n)||o.id.toLowerCase().includes(n))}async function za(e){let n=(await mr()).find(o=>o.id===e);return n?n.models:[]}var Yt=Be(require("fs")),Er=Be(require("path")),ap=require("os");var Ry=require("jsonc-parser"),sp=()=>{let e=process.env.XDG_DATA_HOME||Er.default.join((0,ap.homedir)(),".local","share"),t=process.env.XDG_CONFIG_HOME||Er.default.join((0,ap.homedir)(),".config");return{data:Er.default.join(e,"opencode"),config:Er.default.join(t,"opencode")}},up=()=>{let e=sp();return{authJson:Er.default.join(e.data,"auth.json"),opencodeJson:Er.default.join(e.config,"opencode.json")}},wC=()=>{let e=sp();[e.data,e.config].forEach(t=>{Yt.default.existsSync(t)||Yt.default.mkdirSync(t,{recursive:!0})})},lp=async()=>{let{authJson:e}=up();try{if(!Yt.default.existsSync(e))return{};let t=Yt.default.readFileSync(e,"utf8"),n=[],o=(0,Ry.parse)(t,n,{allowTrailingComma:!0});return n.length>0?(console.warn("Warning: JSONC parsing errors in auth.json:",n.map(r=>r.error).join(", ")),o||{}):o}catch(t){return console.warn("Warning: Could not read auth.json:",t.message),{}}},DC=async e=>{let{authJson:t}=up();try{wC();let n=JSON.stringify(e,null,2);return Yt.default.writeFileSync(t,n),Yt.default.chmodSync(t,384),!0}catch(n){return console.error("Error writing auth.json:",n.message),!1}};var kC=async()=>{let e=await lp(),t=await mr(),n=[];for(let[o,r]of Object.entries(e)){let i=t.find(a=>a.id===o);if(i&&r.type==="api"&&r.key){let a=await za(o);n.push({id:o,name:i.name,type:i.type,baseUrl:i.baseUrl,apiKey:r.key,authType:r.type,models:a.map(u=>({name:u.name,id:`${o}_${u.id}`}))})}}return n};var $C=async e=>{try{return(await mr()).find(n=>n.id===e)}catch(t){return console.warn("Warning: Could not verify provider:",t.message),null}},cp=async(e,t)=>{let n=await lp();return n[e]={type:"api",key:t},await DC(n)};var My=async(e=!1)=>{let[t,n,o]=await Promise.all([kC(),(async()=>{try{let{getCustomProvidersFromConfig:i}=await Promise.resolve().then(()=>(Ir(),xn));return await i()}catch(i){return console.warn("Warning: Could not load custom providers:",i.message),[]}})(),(async()=>{try{return Jo()}catch(i){return console.warn("Warning: Could not load custom verified providers:",i.message),[]}})()]),r=new Map;if(o.forEach(i=>{r.set(i.id,i)}),n.forEach(i=>{r.set(i.id,i)}),t.forEach(i=>{r.set(i.id,i)}),e)try{let i=await mr(),a=new Set(t.map(c=>c.id)),u=new Set(n.map(c=>c.id)),l=new Set(o.map(c=>c.id));i.forEach(c=>{!a.has(c.id)&&!u.has(c.id)&&!l.has(c.id)&&r.set(c.id,{...c,models:c.models.map(p=>({...p,id:`${c.id}_${p.id}`}))})})}catch(i){console.warn("Warning: Could not load all models.dev providers:",i.message)}return Array.from(r.values())};var Uy=async e=>{let t={migrated:0,failed:0,errors:[]};try{if(e.verifiedProviders)for(let[n,o]of Object.entries(e.verifiedProviders))await $C(n)?await cp(n,o)?t.migrated++:(t.failed++,t.errors.push(`Failed to migrate ${n}`)):(t.failed++,t.errors.push(`Provider ${n} not found in models.dev`));if(e.customProviders&&e.customProviders.length>0)try{let{addCustomProvider:n,readAIConfig:o,writeAIConfig:r}=await Promise.resolve().then(()=>(Ir(),xn)),i=await o();for(let a of e.customProviders)try{let u={id:a.id,name:a.name,type:a.type,baseUrl:a.baseUrl,apiKey:a.apiKey,models:a.models||[]};i.customProviders=i.customProviders||[],i.customProviders.push(u),t.migrated++}catch(u){t.failed++,t.errors.push(`Failed to migrate custom provider ${a.name}: ${u.message}`)}await r(i)}catch(n){t.failed++,t.errors.push(`Failed to migrate custom providers: ${n.message}`)}return t}catch(n){return t.failed++,t.errors.push(`Migration failed: ${n.message}`),t}},Zy=async()=>{let e=up(),[t,n]=await Promise.all([lp(),(async()=>{try{let{getAIConfigPaths:a}=await Promise.resolve().then(()=>(Ir(),xn));return await a()}catch{return{configDir:"N/A",configJson:"N/A",configExists:!1}}})()]),o=Yt.default.existsSync(e.authJson),r=Yt.default.existsSync(e.opencodeJson),i={verifiedProviders:{},customProviders:[]};try{let{readAIConfig:a}=await Promise.resolve().then(()=>(Ir(),xn));i=await a()}catch{}return{opencodePaths:e,authExists:o,configExists:r,authData:Object.keys(t),configProviders:[],aiConfigPaths:n,aiConfigData:{verifiedProviders:Object.keys(i.verifiedProviders||{}),customProviders:(i.customProviders||[]).map(a=>a.id)},xdgPaths:sp()}};Ir();var B6=require("dotenv/config"),J_=Be(L_());function lO(){let e=process.argv.slice(2),t={debug:!1,bench:null,benchCustom:null,apiKey:null,baseUrl:null,endpointFormat:null,useAiSdk:!1,formatted:!1,help:!1};for(let n=0;n<e.length;n++){let o=e[n];o==="--debug"?t.debug=!0:o==="--bench"?t.bench=e[++n]:o==="--bench-custom"?t.benchCustom=e[++n]:o==="--api-key"?t.apiKey=e[++n]:o==="--base-url"?t.baseUrl=e[++n]:o==="--endpoint-format"?t.endpointFormat=e[++n]:o==="--ai-sdk"?t.useAiSdk=!0:o==="--formatted"?t.formatted=!0:(o==="--help"||o==="-h")&&(t.help=!0)}return t}function cO(){console.log(m("ai-speedometer - Benchmark AI models","cyan")),console.log(""),console.log(m("Usage:","yellow")),console.log(" ai-speedometer "+m("# Interactive mode","dim")),console.log(" ai-speedometer --bench <provider:model> "+m("# Headless benchmark","dim")),console.log(" ai-speedometer --bench-custom <provider:model> "+m("# Custom provider benchmark","dim")),console.log(""),console.log(m("Options:","yellow")),console.log(" --bench <provider:model> "+m("Run benchmark in headless mode","dim")),console.log(" --bench-custom <provider:model> "+m("Run custom provider benchmark","dim")),console.log(" --base-url <url> "+m("Base URL for custom provider","dim")),console.log(" --api-key <key> "+m("API key for custom provider","dim")),console.log(" --endpoint-format <format> "+m("Endpoint format (default: chat/completions)","dim")),console.log(" --ai-sdk "+m("Use AI SDK instead of REST API","dim")),console.log(" --formatted "+m("Format JSON output for human readability","dim")),console.log(" --debug "+m("Enable debug logging","dim")),console.log(" --help, -h "+m("Show this help message","dim")),console.log(""),console.log(m("Examples:","yellow")),console.log(" ai-speedometer --bench openai:gpt-4"),console.log(' ai-speedometer --bench anthropic:claude-3-opus --api-key "sk-..."'),console.log(' ai-speedometer --bench-custom openai:gpt-4 --base-url "https://api.openai.com/v1" --api-key "sk-..."'),console.log(' ai-speedometer --bench-custom anthropic:claude --base-url "https://api.anthropic.com/v1" --api-key "sk-..." --endpoint-format "messages"'),console.log("")}function dO(e){let t=e.indexOf(":");if(t===-1)throw new Error("Invalid format. Use provider:model (e.g., openai:gpt-4)");let n=e.substring(0,t),o=e.substring(t+1);return{provider:n,model:o}}function pO(e){let{provider:t,model:n}=dO(e.benchCustom);if(!e.baseUrl)throw new Error("--base-url is required for custom provider benchmarking");if(!e.apiKey)throw new Error("--api-key is required for custom provider benchmarking");let o=e.endpointFormat||"chat/completions";return{id:t,name:t,type:"openai-compatible",baseUrl:e.baseUrl,apiKey:e.apiKey,endpointFormat:o,models:[{name:n,id:n}]}}var ot=lO(),Va=ot.debug,ei=null;function De(e){if(!Va)return;let n=`[${new Date().toISOString()}] ${e}
71
71
  `;ei||(ei=Qo.default.createWriteStream("debug.log",{flags:"w"})),ei.write(n),(e.includes("ERROR")||e.includes("Creating")||e.includes("API Request"))&&console.log(n.trim())}function mO(e,t){De(`Creating Anthropic provider with baseUrl: ${e}`),De(`API Key length: ${t?t.length:0}`);let n=xd({apiKey:t,baseURL:e,fetch:Va?async(o,r)=>{De(`API Request to: ${o}`);let i=await fetch(o,r);return De(`Response status: ${i.status}`),i}:void 0});return De(`Provider created successfully: ${n?"yes":"no"}`),n}var qa=q_.default.createInterface({input:process.stdin,output:process.stdout}),B_={reset:"\x1B[0m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",bright:"\x1B[1m",dim:"\x1B[2m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m"};function m(e,t){return`${B_[t]}${e}${B_.reset}`}try{process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding("utf8")}catch{}function ce(e){return new Promise(t=>qa.question(e,t))}function je(){console.clear()}function Ct(){console.log(m("Ai-speedometer","cyan")),console.log(m("=============================","cyan")),console.log("")}async function Ja(e=!1){try{let t="ai-benchmark-config.json";if(Qo.default.existsSync(t)){console.log(m("Migrating from old config format to new format...","yellow"));try{let o=Qo.default.readFileSync(t,"utf8"),r=JSON.parse(o),i=await Uy(r);console.log(m(`Migration complete: ${i.migrated} items migrated`,"green")),i.failed>0&&(console.log(m(`Migration warnings: ${i.failed} items failed`,"yellow")),i.errors.forEach(a=>{console.log(m(` - ${a}`,"dim"))})),Qo.default.renameSync(t,`${t}.backup`),console.log(m("Old config backed up as ai-benchmark-config.json.backup","cyan")),await ce(m("Press Enter to continue...","yellow"))}catch(o){console.log(m("Migration failed: ","red")+o.message),await ce(m("Press Enter to continue with empty config...","yellow"))}}return{providers:await My(e),verifiedProviders:{}}}catch(t){return console.log(m("Error loading config, starting fresh: ","yellow")+t.message),{providers:[],verifiedProviders:{}}}}async function fO(e){console.log(m("Note: Configuration is now automatically saved to ai-benchmark-config.json and auth.json","cyan"))}function Cr(){return new Promise(e=>{process.stdin.isRaw?process.stdin.once("data",t=>{t===""&&process.exit(0),e(t)}):qa.question(m("Press Enter to continue...","yellow"),()=>{e("\r")})})}async function xp(){je(),Ct(),console.log(m("Select Models for Benchmark","magenta")),console.log("");let e=await Ja();if(await Ma(),e.providers.length===0)return console.log(m("No providers available. Please add a provider first.","red")),await ce(m("Press Enter to continue...","yellow")),[];let t=[];e.providers.forEach(_=>{_.models.forEach(f=>{t.push({...f,providerName:_.name,providerType:_.type,providerId:_.id,providerConfig:{..._,apiKey:_.apiKey||"",baseUrl:_.baseUrl||""},selected:!1})})});let n=await ip(),o=[];n.forEach(_=>{let f=t.find(d=>d.id===_.modelId&&d.providerName===_.providerName);f&&o.push({...f,isRecent:!0})});let r=0,i=0,a="",u=_=>{if(!_.trim()){let d=new Set(o.map(y=>y.id)),g=t.filter(y=>!d.has(y.id));return[...o,...g]}let f=_.toLowerCase().split(/\s+/).filter(d=>d.length>0);return t.filter(d=>{let g=`${d.name} ${d.providerName} ${d.providerId} ${d.providerType}`.toLowerCase();return f.every(y=>g.includes(y))})},l=u(""),c=!0,p,h=(_,f)=>{clearTimeout(p),p=setTimeout(()=>{l=u(_),c=!0,f(l)},50)};for(;;){let _=K_(12),f=Math.ceil(l.length/_);if(c){let g="";g+=m("Ai-speedometer","cyan")+`
72
72
  `,g+=m("=============================","cyan")+`
73
73
  `,g+=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-speedometer",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "A comprehensive CLI tool for benchmarking AI models across multiple providers with parallel execution and professional metrics",
5
5
  "main": "cli.js",
6
6
  "bin": {