@juspay/neurolink 12.2.3 → 12.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -2
- package/README.md +1 -0
- package/dist/browser/neurolink.min.js +3 -3
- package/dist/cli/factories/commandFactory.js +1 -0
- package/dist/cli/factories/setupCommandFactory.d.ts +6 -0
- package/dist/cli/factories/setupCommandFactory.js +48 -8
- package/dist/constants/contextWindows.js +9 -0
- package/dist/factories/providerRegistry.js +2 -1
- package/dist/utils/logSanitize.d.ts +2 -2
- package/dist/utils/logSanitize.js +3 -2
- package/dist/utils/pricing.js +10 -0
- package/package.json +1 -1
|
@@ -113,7 +113,7 @@ Learn more: \x1B[34m${r}\x1B[0m
|
|
|
113
113
|
|
|
114
114
|
`)},flush(e){e.enqueue(`data: [DONE]
|
|
115
115
|
|
|
116
|
-
`)}})}},pq={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"},yvr=We(()=>Ve(p.union([p.strictObject({type:p.literal("text-start"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("text-delta"),id:p.string(),delta:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("text-end"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("error"),errorText:p.string()}),p.strictObject({type:p.literal("tool-input-start"),toolCallId:p.string(),toolName:p.string(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-input-delta"),toolCallId:p.string(),inputTextDelta:p.string()}),p.strictObject({type:p.literal("tool-input-available"),toolCallId:p.string(),toolName:p.string(),input:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-input-error"),toolCallId:p.string(),toolName:p.string(),input:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),errorText:p.string(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-approval-request"),approvalId:p.string(),toolCallId:p.string()}),p.strictObject({type:p.literal("tool-output-available"),toolCallId:p.string(),output:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),preliminary:p.boolean().optional()}),p.strictObject({type:p.literal("tool-output-error"),toolCallId:p.string(),errorText:p.string(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional()}),p.strictObject({type:p.literal("tool-output-denied"),toolCallId:p.string()}),p.strictObject({type:p.literal("reasoning-start"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("reasoning-delta"),id:p.string(),delta:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("reasoning-end"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("source-url"),sourceId:p.string(),url:p.string(),title:p.string().optional(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("source-document"),sourceId:p.string(),mediaType:p.string(),title:p.string(),filename:p.string().optional(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("file"),url:p.string(),mediaType:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:p.string().optional(),data:p.unknown(),transient:p.boolean().optional()}),p.strictObject({type:p.literal("start-step")}),p.strictObject({type:p.literal("finish-step")}),p.strictObject({type:p.literal("start"),messageId:p.string().optional(),messageMetadata:p.unknown().optional()}),p.strictObject({type:p.literal("finish"),finishReason:p.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:p.unknown().optional()}),p.strictObject({type:p.literal("abort"),reason:p.string().optional()}),p.strictObject({type:p.literal("message-metadata"),messageMetadata:p.unknown()})]))),Kxe=Ev({prefix:"aitxt",size:24}),Jxe=class{constructor({model:e,telemetry:t,headers:r,settings:n,maxRetries:o,abortSignal:s,stepTimeoutMs:i,stepAbortController:a,chunkTimeoutMs:l,chunkAbortController:c,system:u,prompt:d,messages:m,tools:h,toolChoice:g,transforms:y,activeTools:v,repairToolCall:_,stopConditions:b,output:T,providerOptions:k,prepareStep:A,includeRawChunks:I,now:P,generateId:R,timeout:x,stopWhen:O,originalAbortSignal:N,onChunk:M,onError:D,onFinish:L,onAbort:$,onStepFinish:U,onStart:j,onStepStart:B,onToolCallStart:z,onToolCallFinish:J,experimental_context:Y,download:ie,include:ce}){this._totalUsage=new gl,this._finishReason=new gl,this._rawFinishReason=new gl,this._steps=new gl,this.outputSpecification=T,this.includeRawChunks=I,this.tools=h;const G=QCe()(t?.integrations);let K,Ce=[];const be=[];let ge,H,se,ye={},Q=[];const me=[],$e=new Map;let Se,ne={},Fe={};const ae=new TransformStream({async transform(Ee,ke){var fe,F,te,Ie;ke.enqueue(Ee);const{part:ee}=Ee;if((ee.type==="text-delta"||ee.type==="reasoning-delta"||ee.type==="source"||ee.type==="tool-call"||ee.type==="tool-result"||ee.type==="tool-input-start"||ee.type==="tool-input-delta"||ee.type==="raw")&&await M?.({chunk:ee}),ee.type==="error"&&await D({error:M1(ee.error)}),ee.type==="text-start"&&(ne[ee.id]={type:"text",text:"",providerMetadata:ee.providerMetadata},Ce.push(ne[ee.id])),ee.type==="text-delta"){const ue=ne[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`text part ${ee.id} not found`},partialOutput:void 0});return}ue.text+=ee.text,ue.providerMetadata=(fe=ee.providerMetadata)!=null?fe:ue.providerMetadata}if(ee.type==="text-end"){const ue=ne[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`text part ${ee.id} not found`},partialOutput:void 0});return}ue.providerMetadata=(F=ee.providerMetadata)!=null?F:ue.providerMetadata,delete ne[ee.id]}if(ee.type==="reasoning-start"&&(Fe[ee.id]={type:"reasoning",text:"",providerMetadata:ee.providerMetadata},Ce.push(Fe[ee.id])),ee.type==="reasoning-delta"){const ue=Fe[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`reasoning part ${ee.id} not found`},partialOutput:void 0});return}ue.text+=ee.text,ue.providerMetadata=(te=ee.providerMetadata)!=null?te:ue.providerMetadata}if(ee.type==="reasoning-end"){const ue=Fe[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`reasoning part ${ee.id} not found`},partialOutput:void 0});return}ue.providerMetadata=(Ie=ee.providerMetadata)!=null?Ie:ue.providerMetadata,delete Fe[ee.id]}if(ee.type==="file"&&Ce.push({type:"file",file:ee.file,...ee.providerMetadata!=null?{providerMetadata:ee.providerMetadata}:{}}),ee.type==="source"&&Ce.push(ee),ee.type==="tool-call"&&Ce.push(ee),ee.type==="tool-result"&&!ee.preliminary&&Ce.push(ee),ee.type==="tool-approval-request"&&Ce.push(ee),ee.type==="tool-error"&&Ce.push(ee),ee.type==="start-step"&&(Ce=[],Fe={},ne={},ye=ee.request,Q=ee.warnings),ee.type==="finish-step"){const ue=await Ej({content:Ce,tools:h}),Ae=new uq({stepNumber:me.length,model:W,...ve,experimental_context:Y,content:Ce,finishReason:ee.finishReason,rawFinishReason:ee.rawFinishReason,usage:ee.usage,warnings:Q,request:ye,response:{...ee.response,messages:[...be,...ue]},providerMetadata:ee.providerMetadata});await Vc({event:Ae,callbacks:[U,G.onStepFinish]}),Bu({warnings:Q,provider:W.provider,model:W.modelId}),me.push(Ae),be.push(...ue),K.resolve()}ee.type==="finish"&&(se=ee.totalUsage,ge=ee.finishReason,H=ee.rawFinishReason)},async flush(Ee){var ke,fe,F,te,Ie,ee,ue;try{if(me.length===0){const Be=s?.aborted?s.reason:new ac({message:"No output generated. Check the stream for errors."});C._finishReason.reject(Be),C._rawFinishReason.reject(Be),C._totalUsage.reject(Be),C._steps.reject(Be);return}const Ae=ge??"other",Pe=se??O1();C._finishReason.resolve(Ae),C._rawFinishReason.resolve(H),C._totalUsage.resolve(Pe),C._steps.resolve(me);const Ue=me[me.length-1];await Vc({event:{stepNumber:Ue.stepNumber,model:Ue.model,functionId:Ue.functionId,metadata:Ue.metadata,experimental_context:Ue.experimental_context,finishReason:Ue.finishReason,rawFinishReason:Ue.rawFinishReason,totalUsage:Pe,usage:Ue.usage,content:Ue.content,text:Ue.text,reasoningText:Ue.reasoningText,reasoning:Ue.reasoning,files:Ue.files,sources:Ue.sources,toolCalls:Ue.toolCalls,staticToolCalls:Ue.staticToolCalls,dynamicToolCalls:Ue.dynamicToolCalls,toolResults:Ue.toolResults,staticToolResults:Ue.staticToolResults,dynamicToolResults:Ue.dynamicToolResults,request:Ue.request,response:Ue.response,warnings:Ue.warnings,providerMetadata:Ue.providerMetadata,steps:me},callbacks:[L,G.onFinish]}),Se.setAttributes(await $r({telemetry:t,attributes:{"ai.response.finishReason":Ae,"ai.response.text":{output:()=>Ue.text},"ai.response.reasoning":{output:()=>Ue.reasoningText},"ai.response.toolCalls":{output:()=>{var Be;return(Be=Ue.toolCalls)!=null&&Be.length?JSON.stringify(Ue.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(Ue.providerMetadata),"ai.usage.inputTokens":Pe.inputTokens,"ai.usage.inputTokenDetails.noCacheTokens":(ke=Pe.inputTokenDetails)==null?void 0:ke.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":(fe=Pe.inputTokenDetails)==null?void 0:fe.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":(F=Pe.inputTokenDetails)==null?void 0:F.cacheWriteTokens,"ai.usage.outputTokens":Pe.outputTokens,"ai.usage.outputTokenDetails.textTokens":(te=Pe.outputTokenDetails)==null?void 0:te.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":(Ie=Pe.outputTokenDetails)==null?void 0:Ie.reasoningTokens,"ai.usage.totalTokens":Pe.totalTokens,"ai.usage.reasoningTokens":(ee=Pe.outputTokenDetails)==null?void 0:ee.reasoningTokens,"ai.usage.cachedInputTokens":(ue=Pe.inputTokenDetails)==null?void 0:ue.cacheReadTokens}}))}catch(Ae){Ee.error(Ae)}finally{Se.end()}}}),oe=yke();this.addStream=oe.addStream,this.closeStream=oe.close;const pe=oe.stream.getReader();let X=new ReadableStream({async start(Ee){Ee.enqueue({type:"start"})},async pull(Ee){function ke(){$?.({steps:me}),Ee.enqueue({type:"abort",...s?.reason!==void 0?{reason:Zh(s.reason)}:{}}),Ee.close()}try{const{done:fe,value:F}=await pe.read();if(fe){Ee.close();return}if(s?.aborted){ke();return}Ee.enqueue(F)}catch(fe){Xh(fe)&&s?.aborted?ke():Ee.error(fe)}},cancel(Ee){return oe.stream.cancel(Ee)}});for(const Ee of y)X=X.pipeThrough(Ee({tools:h,stopStream(){oe.terminate()}}));this.baseStream=X.pipeThrough(lvr(T??UT())).pipeThrough(ae);const{maxRetries:Z,retry:_e}=nf({maxRetries:o,abortSignal:s}),Re=kv(t),we=rf(n),Je=Cv({model:e,telemetry:t,headers:r,settings:{...we,maxRetries:Z}}),C=this,W={provider:e.provider,modelId:e.modelId},ve={functionId:t?.functionId,metadata:t?.metadata};ja({name:"ai.streamText",attributes:$r({telemetry:t,attributes:{...za({operationId:"ai.streamText",telemetry:t}),...Je,"ai.prompt":{input:()=>JSON.stringify({system:u,prompt:d,messages:m})}}}),tracer:Re,endWhenDone:!1,fn:async Ee=>{Se=Ee;const ke=await P1({system:u,prompt:d,messages:m});await Vc({event:{model:W,system:u,prompt:d,messages:m,tools:h,toolChoice:g,activeTools:v,maxOutputTokens:we.maxOutputTokens,temperature:we.temperature,topP:we.topP,topK:we.topK,presencePenalty:we.presencePenalty,frequencyPenalty:we.frequencyPenalty,stopSequences:we.stopSequences,seed:we.seed,maxRetries:Z,timeout:x,headers:r,providerOptions:k,stopWhen:O,output:T,abortSignal:N,include:ce,...ve,experimental_context:Y},callbacks:[j,G.onStart]});const fe=ke.messages,F=[],{approvedToolApprovals:te,deniedToolApprovals:Ie}=rke({messages:fe});if(Ie.length>0||te.length>0){const ue=[...te,...Ie].filter(Ge=>Ge.toolCall.providerExecuted),Ae=te.filter(Ge=>!Ge.toolCall.providerExecuted),Pe=Ie.filter(Ge=>!Ge.toolCall.providerExecuted),Ue=Ie.filter(Ge=>Ge.toolCall.providerExecuted);let Be;const mt=new ReadableStream({start(Ge){Be=Ge}});C.addStream(mt);try{for(const ft of[...Pe,...Ue])Be?.enqueue({type:"tool-output-denied",toolCallId:ft.toolCall.toolCallId,toolName:ft.toolCall.toolName});const Ge=[];if(await Promise.all(Ae.map(async ft=>{const Ot=await _j({toolCall:ft.toolCall,tools:h,tracer:Re,telemetry:t,messages:fe,abortSignal:s,experimental_context:Y,stepNumber:me.length,model:W,onToolCallStart:[z,G.onToolCallStart],onToolCallFinish:[J,G.onToolCallFinish],onPreliminaryToolResult:mn=>{Be?.enqueue(mn)}});Ot!=null&&(Be?.enqueue(Ot),Ge.push(Ot))})),ue.length>0&&F.push({role:"tool",content:ue.map(ft=>({type:"tool-approval-response",approvalId:ft.approvalResponse.approvalId,approved:ft.approvalResponse.approved,reason:ft.approvalResponse.reason,providerExecuted:!0}))}),Ge.length>0||Pe.length>0){const ft=[];for(const Ot of Ge)ft.push({type:"tool-result",toolCallId:Ot.toolCallId,toolName:Ot.toolName,output:await OT({toolCallId:Ot.toolCallId,input:Ot.input,tool:h?.[Ot.toolName],output:Ot.type==="tool-result"?Ot.output:Ot.error,errorMode:Ot.type==="tool-error"?"text":"none"})});for(const Ot of Pe)ft.push({type:"tool-result",toolCallId:Ot.toolCall.toolCallId,toolName:Ot.toolCall.toolName,output:{type:"execution-denied",reason:Ot.approvalResponse.reason}});F.push({role:"tool",content:ft})}}finally{Be?.close()}}be.push(...F);async function ee({currentStep:ue,responseMessages:Ae,usage:Pe}){var Ue,Be,mt,Ge,ft,Ot,mn,zo,Vt;const Da=C.includeRawChunks,Hp=i!=null?setTimeout(()=>a.abort(),i):void 0;let Sd;function LA(){l!=null&&(Sd!=null&&clearTimeout(Sd),Sd=setTimeout(()=>c.abort(),l))}function Ih(){Sd!=null&&(clearTimeout(Sd),Sd=void 0)}function Ny(){Hp!=null&&clearTimeout(Hp)}try{K=new gl;const Vp=[...fe,...Ae],is=await A?.({model:e,steps:me,stepNumber:me.length,messages:Vp,experimental_context:Y}),Lc=Sv((Ue=is?.model)!=null?Ue:e),Wp={provider:Lc.provider,modelId:Lc.modelId},Ly=await R1({prompt:{system:(Be=is?.system)!=null?Be:ke.system,messages:(mt=is?.messages)!=null?mt:Vp},supportedUrls:await Lc.supportedUrls,download:ie}),$A=(Ge=is?.activeTools)!=null?Ge:v,{toolChoice:Rh,tools:nb}=await ZCe({tools:h,toolChoice:(ft=is?.toolChoice)!=null?ft:g,activeTools:$A});Y=(Ot=is?.experimental_context)!=null?Ot:Y;const fF=(mn=is?.messages)!=null?mn:Vp,gF=(zo=is?.system)!=null?zo:ke.system,ob=N1(k,is?.providerOptions);await Vc({event:{stepNumber:me.length,model:Wp,system:gF,messages:fF,tools:h,toolChoice:Rh,activeTools:$A,steps:[...me],providerOptions:ob,timeout:x,headers:r,stopWhen:O,output:T,abortSignal:N,include:ce,...ve,experimental_context:Y},callbacks:[B,G.onStepStart]});const{result:{stream:ur,response:Ui,request:Ph},doStreamSpan:ul,startTimestampMs:sb}=await _e(()=>ja({name:"ai.streamText.doStream",attributes:$r({telemetry:t,attributes:{...za({operationId:"ai.streamText.doStream",telemetry:t}),...Je,"ai.model.provider":Lc.provider,"ai.model.id":Lc.modelId,"ai.prompt.messages":{input:()=>D1(Ly)},"ai.prompt.tools":{input:()=>nb?.map(Pt=>JSON.stringify(Pt))},"ai.prompt.toolChoice":{input:()=>Rh!=null?JSON.stringify(Rh):void 0},"gen_ai.system":Lc.provider,"gen_ai.request.model":Lc.modelId,"gen_ai.request.frequency_penalty":we.frequencyPenalty,"gen_ai.request.max_tokens":we.maxOutputTokens,"gen_ai.request.presence_penalty":we.presencePenalty,"gen_ai.request.stop_sequences":we.stopSequences,"gen_ai.request.temperature":we.temperature,"gen_ai.request.top_k":we.topK,"gen_ai.request.top_p":we.topP}}),tracer:Re,endWhenDone:!1,fn:async Pt=>({startTimestampMs:P(),doStreamSpan:Pt,result:await Lc.doStream({...we,tools:nb,toolChoice:Rh,responseFormat:await T?.responseFormat,prompt:Ly,providerOptions:ob,abortSignal:s,headers:r,includeRawChunks:Da})})})),FA=avr({tools:h,generatorStream:ur,tracer:Re,telemetry:t,system:u,messages:Vp,repairToolCall:_,abortSignal:s,experimental_context:Y,generateId:R,stepNumber:me.length,model:Wp,onToolCallStart:[z,G.onToolCallStart],onToolCallFinish:[J,G.onToolCallFinish]}),UA=(Vt=ce?.requestBody)==null||Vt?Ph??{}:{...Ph,body:void 0},Kp=[],Jp=[];let $y;const Yr={};let dl="other",ib,Is=O1(),Sce,Cce=!0,Ou={id:R(),timestamp:new Date,modelId:W.modelId},lcr="";C.addStream(FA.pipeThrough(new TransformStream({async transform(Pt,Zs){var ab,lb,cb,ub,db;if(LA(),Pt.type==="stream-start"){$y=Pt.warnings;return}if(Cce){const Rs=P()-sb;Cce=!1,ul.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":Rs}),ul.setAttributes({"ai.response.msToFirstChunk":Rs}),Zs.enqueue({type:"start-step",request:UA,warnings:$y??[]})}const pb=Pt.type;switch(pb){case"tool-approval-request":case"text-start":case"text-end":{Zs.enqueue(Pt);break}case"text-delta":{Pt.delta.length>0&&(Zs.enqueue({type:"text-delta",id:Pt.id,text:Pt.delta,providerMetadata:Pt.providerMetadata}),lcr+=Pt.delta);break}case"reasoning-start":case"reasoning-end":{Zs.enqueue(Pt);break}case"reasoning-delta":{Zs.enqueue({type:"reasoning-delta",id:Pt.id,text:Pt.delta,providerMetadata:Pt.providerMetadata});break}case"tool-call":{Zs.enqueue(Pt),Kp.push(Pt);break}case"tool-result":{Zs.enqueue(Pt),Pt.preliminary||Jp.push(Pt);break}case"tool-error":{Zs.enqueue(Pt),Jp.push(Pt);break}case"response-metadata":{Ou={id:(ab=Pt.id)!=null?ab:Ou.id,timestamp:(lb=Pt.timestamp)!=null?lb:Ou.timestamp,modelId:(cb=Pt.modelId)!=null?cb:Ou.modelId};break}case"finish":{Is=Pt.usage,dl=Pt.finishReason,ib=Pt.rawFinishReason,Sce=Pt.providerMetadata;const Rs=P()-sb;ul.addEvent("ai.stream.finish"),ul.setAttributes({"ai.response.msToFinish":Rs,"ai.response.avgOutputTokensPerSecond":1e3*((ub=Is.outputTokens)!=null?ub:0)/Rs});break}case"file":{Zs.enqueue(Pt);break}case"source":{Zs.enqueue(Pt);break}case"tool-input-start":{Yr[Pt.id]=Pt.toolName;const Rs=h?.[Pt.toolName];Rs?.onInputStart!=null&&await Rs.onInputStart({toolCallId:Pt.id,messages:Vp,abortSignal:s,experimental_context:Y}),Zs.enqueue({...Pt,dynamic:(db=Pt.dynamic)!=null?db:Rs?.type==="dynamic",title:Rs?.title});break}case"tool-input-end":{delete Yr[Pt.id],Zs.enqueue(Pt);break}case"tool-input-delta":{const Rs=Yr[Pt.id],Fy=h?.[Rs];Fy?.onInputDelta!=null&&await Fy.onInputDelta({inputTextDelta:Pt.delta,toolCallId:Pt.id,messages:Vp,abortSignal:s,experimental_context:Y}),Zs.enqueue(Pt);break}case"error":{Zs.enqueue(Pt),dl="error";break}case"raw":{Da&&Zs.enqueue(Pt);break}default:{const Rs=pb;throw new Error(`Unknown chunk type: ${Rs}`)}}},async flush(Pt){var Zs,ab,lb,cb,ub,db,pb;const Rs=Kp.length>0?JSON.stringify(Kp):void 0;try{ul.setAttributes(await $r({telemetry:t,attributes:{"ai.response.finishReason":dl,"ai.response.toolCalls":{output:()=>Rs},"ai.response.id":Ou.id,"ai.response.model":Ou.modelId,"ai.response.timestamp":Ou.timestamp.toISOString(),"ai.usage.inputTokens":Is.inputTokens,"ai.usage.inputTokenDetails.noCacheTokens":(Zs=Is.inputTokenDetails)==null?void 0:Zs.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":(ab=Is.inputTokenDetails)==null?void 0:ab.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":(lb=Is.inputTokenDetails)==null?void 0:lb.cacheWriteTokens,"ai.usage.outputTokens":Is.outputTokens,"ai.usage.outputTokenDetails.textTokens":(cb=Is.outputTokenDetails)==null?void 0:cb.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":(ub=Is.outputTokenDetails)==null?void 0:ub.reasoningTokens,"ai.usage.totalTokens":Is.totalTokens,"ai.usage.reasoningTokens":(db=Is.outputTokenDetails)==null?void 0:db.reasoningTokens,"ai.usage.cachedInputTokens":(pb=Is.inputTokenDetails)==null?void 0:pb.cacheReadTokens,"gen_ai.response.finish_reasons":[dl],"gen_ai.response.id":Ou.id,"gen_ai.response.model":Ou.modelId,"gen_ai.usage.input_tokens":Is.inputTokens,"gen_ai.usage.output_tokens":Is.outputTokens}}))}catch{}Pt.enqueue({type:"finish-step",finishReason:dl,rawFinishReason:ib,usage:Is,providerMetadata:Sce,response:{...Ou,headers:Ui?.headers}});const Fy=eke(Pe,Is);await K.promise;const yF=me[me.length-1];try{ul.setAttributes(await $r({telemetry:t,attributes:{"ai.response.text":{output:()=>yF.text},"ai.response.reasoning":{output:()=>yF.reasoningText},"ai.response.providerMetadata":JSON.stringify(yF.providerMetadata)}}))}catch{}finally{ul.end()}const kce=Kp.filter(Ei=>Ei.providerExecuted!==!0),ccr=Jp.filter(Ei=>Ei.providerExecuted!==!0);for(const Ei of Kp){if(Ei.providerExecuted!==!0)continue;const vF=h?.[Ei.toolName];vF?.type==="provider"&&vF.supportsDeferredResults&&(Jp.some(_F=>(_F.type==="tool-result"||_F.type==="tool-error")&&_F.toolCallId===Ei.toolCallId)||$e.set(Ei.toolCallId,{toolName:Ei.toolName}))}for(const Ei of Jp)(Ei.type==="tool-result"||Ei.type==="tool-error")&&$e.delete(Ei.toolCallId);if(Ny(),Ih(),(kce.length>0&&ccr.length===kce.length||$e.size>0)&&!await ake({stopConditions:b,steps:me})){Ae.push(...await Ej({content:me[me.length-1].content,tools:h}));try{await ee({currentStep:ue+1,responseMessages:Ae,usage:Fy})}catch(Ei){Pt.enqueue({type:"error",error:Ei}),C.closeStream()}}else Pt.enqueue({type:"finish",finishReason:dl,rawFinishReason:ib,totalUsage:Fy}),C.closeStream()}})))}finally{Ny(),Ih()}}await ee({currentStep:0,responseMessages:F,usage:O1()})}}).catch(Ee=>{C.addStream(new ReadableStream({start(ke){ke.enqueue({type:"error",error:Ee}),ke.close()}})),C.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}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){const[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){e.type==="text-delta"&&t.enqueue(e.text)}})))}get fullStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await ivr({stream:this.fullStream,onError:e?.onError})}catch(r){(t=e?.onError)==null||t.call(e,r)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){e!=null&&t.enqueue(e)}})))}get elementStream(){var e,t,r;const n=(e=this.outputSpecification)==null?void 0:e.createElementStreamTransform();if(n==null)throw new Zo({functionality:`element streams in ${(r=(t=this.outputSpecification)==null?void 0:t.name)!=null?r:"text"} mode`});return Ud(this.teeStream().pipeThrough(n))}get output(){return this.finalStep.then(e=>{var t;return((t=this.outputSpecification)!=null?t:UT()).parseCompleteOutput({text:e.text},{response:e.response,usage:e.usage,finishReason:e.finishReason})})}toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o=!0,sendSources:s=!1,sendStart:i=!0,sendFinish:a=!0,onError:l=Zh}={}){const c=t!=null?Qyr({originalMessages:e,responseMessageId:t}):void 0,u=m=>{var h;const g=(h=this.tools)==null?void 0:h[m.toolName];return g==null?m.dynamic:g?.type==="dynamic"?!0:void 0},d=this.fullStream.pipeThrough(new TransformStream({transform:async(m,h)=>{const g=n?.({part:m}),y=m.type;switch(y){case"text-start":{h.enqueue({type:"text-start",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"text-delta":{h.enqueue({type:"text-delta",id:m.id,delta:m.text,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"text-end":{h.enqueue({type:"text-end",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-start":{h.enqueue({type:"reasoning-start",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-delta":{o&&h.enqueue({type:"reasoning-delta",id:m.id,delta:m.text,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-end":{h.enqueue({type:"reasoning-end",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"file":{h.enqueue({type:"file",mediaType:m.file.mediaType,url:`data:${m.file.mediaType};base64,${m.file.base64}`,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"source":{s&&m.sourceType==="url"&&h.enqueue({type:"source-url",sourceId:m.id,url:m.url,title:m.title,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}}),s&&m.sourceType==="document"&&h.enqueue({type:"source-document",sourceId:m.id,mediaType:m.mediaType,title:m.title,filename:m.filename,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"tool-input-start":{const v=u(m);h.enqueue({type:"tool-input-start",toolCallId:m.id,toolName:m.toolName,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},...m.title!=null?{title:m.title}:{}});break}case"tool-input-delta":{h.enqueue({type:"tool-input-delta",toolCallId:m.id,inputTextDelta:m.delta});break}case"tool-call":{const v=u(m);m.invalid?h.enqueue({type:"tool-input-error",toolCallId:m.toolCallId,toolName:m.toolName,input:m.input,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},errorText:l(m.error),...m.title!=null?{title:m.title}:{}}):h.enqueue({type:"tool-input-available",toolCallId:m.toolCallId,toolName:m.toolName,input:m.input,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},...m.title!=null?{title:m.title}:{}});break}case"tool-approval-request":{h.enqueue({type:"tool-approval-request",approvalId:m.approvalId,toolCallId:m.toolCall.toolCallId});break}case"tool-result":{const v=u(m);h.enqueue({type:"tool-output-available",toolCallId:m.toolCallId,output:m.output,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...m.preliminary!=null?{preliminary:m.preliminary}:{},...v!=null?{dynamic:v}:{}});break}case"tool-error":{const v=u(m);h.enqueue({type:"tool-output-error",toolCallId:m.toolCallId,errorText:m.providerExecuted?typeof m.error=="string"?m.error:JSON.stringify(m.error):l(m.error),...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{}});break}case"tool-output-denied":{h.enqueue({type:"tool-output-denied",toolCallId:m.toolCallId});break}case"error":{h.enqueue({type:"error",errorText:l(m.error)});break}case"start-step":{h.enqueue({type:"start-step"});break}case"finish-step":{h.enqueue({type:"finish-step"});break}case"start":{i&&h.enqueue({type:"start",...g!=null?{messageMetadata:g}:{},...c!=null?{messageId:c}:{}});break}case"finish":{a&&h.enqueue({type:"finish",finishReason:m.finishReason,...g!=null?{messageMetadata:g}:{}});break}case"abort":{h.enqueue(m);break}case"tool-input-end":break;case"raw":break;default:{const v=y;throw new Error(`Unknown chunk type: ${v}`)}}g!=null&&y!=="start"&&y!=="finish"&&h.enqueue({type:"message-metadata",messageMetadata:g})}}));return Ud(ovr({stream:d,messageId:c??t?.(),originalMessages:e,onFinish:r,onError:l}))}pipeUIMessageStreamToResponse(e,{originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:o,sendReasoning:s,sendSources:i,sendFinish:a,sendStart:l,onError:c,...u}={}){svr({response:e,stream:this.toUIMessageStream({originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:o,sendReasoning:s,sendSources:i,sendFinish:a,sendStart:l,onError:c}),...u})}pipeTextStreamToResponse(e,t){mke({response:e,textStream:this.textStream,...t})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o,sendSources:s,sendFinish:i,sendStart:a,onError:l,...c}={}){return Xyr({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o,sendSources:s,sendFinish:i,sendStart:a,onError:l}),...c})}toTextStreamResponse(e){return dke({textStream:this.textStream,...e})}},vvr=We(()=>Ve(p.array(p.object({id:p.string(),role:p.enum(["system","user","assistant"]),metadata:p.unknown().optional(),parts:p.array(p.union([p.object({type:p.literal("text"),text:p.string(),state:p.enum(["streaming","done"]).optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("reasoning"),text:p.string(),state:p.enum(["streaming","done"]).optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("source-url"),sourceId:p.string(),url:p.string(),title:p.string().optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("source-document"),sourceId:p.string(),mediaType:p.string(),title:p.string(),filename:p.string().optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("file"),mediaType:p.string(),filename:p.string().optional(),url:p.string(),providerMetadata:wt.optional()}),p.object({type:p.literal("step-start")}),p.object({type:p.string().startsWith("data-"),id:p.string().optional(),data:p.unknown()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("input-streaming"),input:p.unknown().optional(),providerExecuted:p.boolean().optional(),callProviderMetadata:wt.optional(),output:p.never().optional(),errorText:p.never().optional(),approval:p.never().optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("input-available"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.never().optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("approval-requested"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.never().optional(),reason:p.never().optional()})}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("approval-responded"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.boolean(),reason:p.string().optional()})}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-available"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.unknown(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),preliminary:p.boolean().optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-error"),input:p.unknown(),rawInput:p.unknown().optional(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.string(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-denied"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!1),reason:p.string().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("input-streaming"),providerExecuted:p.boolean().optional(),callProviderMetadata:wt.optional(),input:p.unknown().optional(),output:p.never().optional(),errorText:p.never().optional(),approval:p.never().optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("input-available"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.never().optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("approval-requested"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.never().optional(),reason:p.never().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("approval-responded"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.boolean(),reason:p.string().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-available"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.unknown(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),preliminary:p.boolean().optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-error"),providerExecuted:p.boolean().optional(),input:p.unknown(),rawInput:p.unknown().optional(),output:p.never().optional(),errorText:p.string(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-denied"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!1),reason:p.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty"))),Yxe=class{constructor(e){this.value=e.value,this.embedding=e.embedding,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.response=e.response}},mq=class{constructor(e){this.values=e.values,this.embeddings=e.embeddings,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.responses=e.responses}},Zxe={type:"no-schema",jsonSchema:async()=>{},async validatePartialResult({value:e,textDelta:t}){return{success:!0,value:{partial:e,textDelta:t}}},async validateFinalResult(e,t){return e===void 0?{success:!1,error:new ki({message:"No object generated: response did not match schema.",text:t.text,response:t.response,usage:t.usage,finishReason:t.finishReason})}:{success:!0,value:e}},createElementStream(){throw new Zo({functionality:"element streams in no-schema mode"})}},Xxe=e=>({type:"object",jsonSchema:async()=>await e.jsonSchema,async validatePartialResult({value:t,textDelta:r}){return{success:!0,value:{partial:t,textDelta:r}}},async validateFinalResult(t){return Ba({value:t,schema:e})},createElementStream(){throw new Zo({functionality:"element streams in object mode"})}}),Qxe=e=>({type:"array",jsonSchema:async()=>{const{$schema:t,...r}=await e.jsonSchema;return{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:r}},required:["elements"],additionalProperties:!1}},async validatePartialResult({value:t,latestObject:r,isFirstDelta:n,isFinalDelta:o}){var s;if(!d1(t)||!Gge(t.elements))return{success:!1,error:new da({value:t,cause:"value must be an object that contains an array of elements"})};const i=t.elements,a=[];for(let u=0;u<i.length;u++){const d=i[u],m=await Ba({value:d,schema:e});if(!(u===i.length-1&&!o)){if(!m.success)return m;a.push(m.value)}}const l=(s=r?.length)!=null?s:0;let c="";return n&&(c+="["),l>0&&(c+=","),c+=a.slice(l).map(u=>JSON.stringify(u)).join(","),o&&(c+="]"),{success:!0,value:{partial:a,textDelta:c}}},async validateFinalResult(t){if(!d1(t)||!Gge(t.elements))return{success:!1,error:new da({value:t,cause:"value must be an object that contains an array of elements"})};const r=t.elements;for(const n of r){const o=await Ba({value:n,schema:e});if(!o.success)return o}return{success:!0,value:r}},createElementStream(t){let r=0;return Ud(t.pipeThrough(new TransformStream({transform(n,o){switch(n.type){case"object":{const s=n.object;for(;r<s.length;r++)o.enqueue(s[r]);break}case"text-delta":case"finish":case"error":break;default:{const s=n;throw new Error(`Unsupported chunk type: ${s}`)}}}})))}}),eAe=e=>({type:"enum",jsonSchema:async()=>({$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1}),async validateFinalResult(t){if(!d1(t)||typeof t.result!="string")return{success:!1,error:new da({value:t,cause:'value must be an object that contains a string in the "result" property.'})};const r=t.result;return e.includes(r)?{success:!0,value:r}:{success:!1,error:new da({value:t,cause:"value must be a string in the enum"})}},async validatePartialResult({value:t,textDelta:r}){if(!d1(t)||typeof t.result!="string")return{success:!1,error:new da({value:t,cause:'value must be an object that contains a string in the "result" property.'})};const n=t.result,o=e.filter(s=>s.startsWith(n));return t.result.length===0||o.length===0?{success:!1,error:new da({value:t,cause:"value must be a string in the enum"})}:{success:!0,value:{partial:o.length>1?n:o[0],textDelta:r}}},createElementStream(){throw new Zo({functionality:"element streams in enum mode"})}}),tAe=Ev({prefix:"aiobj",size:24}),rAe=class{constructor(e){this.object=e.object,this.finishReason=e.finishReason,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.response=e.response,this.request=e.request,this.reasoning=e.reasoning}toJsonResponse(e){var t;return new Response(JSON.stringify(this.object),{status:(t=e?.status)!=null?t:200,headers:$T(e?.headers,{"content-type":"application/json; charset=utf-8"})})}},nAe=Ev({prefix:"aiobj",size:24}),oAe=class{constructor({model:e,headers:t,telemetry:r,settings:n,maxRetries:o,abortSignal:s,outputStrategy:i,system:a,prompt:l,messages:c,schemaName:u,schemaDescription:d,providerOptions:m,repairText:h,onError:g,onFinish:y,download:v,generateId:_,currentDate:b,now:T}){this._object=new gl,this._usage=new gl,this._providerMetadata=new gl,this._warnings=new gl,this._request=new gl,this._response=new gl,this._finishReason=new gl;const k=Sv(e),{maxRetries:A,retry:I}=nf({maxRetries:o,abortSignal:s}),P=rf(n),R=Cv({model:k,telemetry:r,headers:t,settings:{...P,maxRetries:A}}),x=kv(r),O=this,N=yke(),M=new TransformStream({transform(D,L){L.enqueue(D),D.type==="error"&&g({error:M1(D.error)})}});this.baseStream=N.stream.pipeThrough(M),ja({name:"ai.streamObject",attributes:$r({telemetry:r,attributes:{...za({operationId:"ai.streamObject",telemetry:r}),...R,"ai.prompt":{input:()=>JSON.stringify({system:a,prompt:l,messages:c})},"ai.schema":{input:async()=>JSON.stringify(await i.jsonSchema())},"ai.schema.name":u,"ai.schema.description":d,"ai.settings.output":i.type}}),tracer:x,endWhenDone:!1,fn:async D=>{const L=await P1({system:a,prompt:l,messages:c}),$={responseFormat:{type:"json",schema:await i.jsonSchema(),name:u,description:d},...rf(n),prompt:await R1({prompt:L,supportedUrls:await k.supportedUrls,download:v}),providerOptions:m,abortSignal:s,headers:t,includeRawChunks:!1},U={transform:(Se,ne)=>{switch(Se.type){case"text-delta":ne.enqueue(Se.delta);break;case"response-metadata":case"finish":case"error":case"stream-start":ne.enqueue(Se);break}}},{result:{stream:j,response:B,request:z},doStreamSpan:J,startTimestampMs:Y}=await I(()=>ja({name:"ai.streamObject.doStream",attributes:$r({telemetry:r,attributes:{...za({operationId:"ai.streamObject.doStream",telemetry:r}),...R,"ai.prompt.messages":{input:()=>D1($.prompt)},"gen_ai.system":k.provider,"gen_ai.request.model":k.modelId,"gen_ai.request.frequency_penalty":P.frequencyPenalty,"gen_ai.request.max_tokens":P.maxOutputTokens,"gen_ai.request.presence_penalty":P.presencePenalty,"gen_ai.request.temperature":P.temperature,"gen_ai.request.top_k":P.topK,"gen_ai.request.top_p":P.topP}}),tracer:x,endWhenDone:!1,fn:async Se=>({startTimestampMs:T(),doStreamSpan:Se,result:await k.doStream($)})}));O._request.resolve(z??{});let ie,ce=O1(),re,G,K,Ce,be="",ge="",H={id:_(),timestamp:b(),modelId:k.modelId},se,ye,Q=!0,me=!0;const $e=j.pipeThrough(new TransformStream(U)).pipeThrough(new TransformStream({async transform(Se,ne){var Fe,ae,oe;if(typeof Se=="object"&&Se.type==="stream-start"){ie=Se.warnings;return}if(Q){const pe=T()-Y;Q=!1,J.addEvent("ai.stream.firstChunk",{"ai.stream.msToFirstChunk":pe}),J.setAttributes({"ai.stream.msToFirstChunk":pe})}if(typeof Se=="string"){be+=Se,ge+=Se;const{value:pe,state:X}=await Av(be);if(pe!==void 0&&!L1(se,pe)){const Z=await i.validatePartialResult({value:pe,textDelta:ge,latestObject:ye,isFirstDelta:me,isFinalDelta:X==="successful-parse"});Z.success&&!L1(ye,Z.value.partial)&&(se=pe,ye=Z.value.partial,ne.enqueue({type:"object",object:ye}),ne.enqueue({type:"text-delta",textDelta:Z.value.textDelta}),ge="",me=!1)}return}switch(Se.type){case"response-metadata":{H={id:(Fe=Se.id)!=null?Fe:H.id,timestamp:(ae=Se.timestamp)!=null?ae:H.timestamp,modelId:(oe=Se.modelId)!=null?oe:H.modelId};break}case"finish":{ge!==""&&ne.enqueue({type:"text-delta",textDelta:ge}),re=Se.finishReason.unified,ce=xv(Se.usage),G=Se.providerMetadata,ne.enqueue({...Se,finishReason:Se.finishReason.unified,usage:ce,response:H}),Bu({warnings:ie??[],provider:k.provider,model:k.modelId}),O._usage.resolve(ce),O._providerMetadata.resolve(G),O._warnings.resolve(ie),O._response.resolve({...H,headers:B?.headers}),O._finishReason.resolve(re??"other");try{K=await Tke(be,i,h,{response:H,usage:ce,finishReason:re}),O._object.resolve(K)}catch(pe){Ce=pe,O._object.reject(pe)}break}default:{ne.enqueue(Se);break}}},async flush(Se){try{const ne=ce??{promptTokens:NaN,completionTokens:NaN,totalTokens:NaN};J.setAttributes(await $r({telemetry:r,attributes:{"ai.response.finishReason":re,"ai.response.object":{output:()=>JSON.stringify(K)},"ai.response.id":H.id,"ai.response.model":H.modelId,"ai.response.timestamp":H.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(G),"ai.usage.inputTokens":ne.inputTokens,"ai.usage.outputTokens":ne.outputTokens,"ai.usage.totalTokens":ne.totalTokens,"ai.usage.reasoningTokens":ne.reasoningTokens,"ai.usage.cachedInputTokens":ne.cachedInputTokens,"gen_ai.response.finish_reasons":[re],"gen_ai.response.id":H.id,"gen_ai.response.model":H.modelId,"gen_ai.usage.input_tokens":ne.inputTokens,"gen_ai.usage.output_tokens":ne.outputTokens}})),J.end(),D.setAttributes(await $r({telemetry:r,attributes:{"ai.usage.inputTokens":ne.inputTokens,"ai.usage.outputTokens":ne.outputTokens,"ai.usage.totalTokens":ne.totalTokens,"ai.usage.reasoningTokens":ne.reasoningTokens,"ai.usage.cachedInputTokens":ne.cachedInputTokens,"ai.response.object":{output:()=>JSON.stringify(K)},"ai.response.providerMetadata":JSON.stringify(G)}})),await y?.({usage:ne,object:K,error:Ce,response:{...H,headers:B?.headers},warnings:ie,providerMetadata:G})}catch(ne){Se.enqueue({type:"error",error:ne})}finally{D.end()}}}));N.addStream($e)}}).catch(D=>{N.addStream(new ReadableStream({start(L){L.enqueue({type:"error",error:D}),L.close()}}))}).finally(()=>{N.close()}),this.outputStrategy=i}get object(){return this._object.promise}get usage(){return this._usage.promise}get providerMetadata(){return this._providerMetadata.promise}get warnings(){return this._warnings.promise}get request(){return this._request.promise}get response(){return this._response.promise}get finishReason(){return this._finishReason.promise}get partialObjectStream(){return Ud(this.baseStream.pipeThrough(new TransformStream({transform(e,t){switch(e.type){case"object":t.enqueue(e.object);break;case"text-delta":case"finish":case"error":break;default:{const r=e;throw new Error(`Unsupported chunk type: ${r}`)}}}})))}get elementStream(){return this.outputStrategy.createElementStream(this.baseStream)}get textStream(){return Ud(this.baseStream.pipeThrough(new TransformStream({transform(e,t){switch(e.type){case"text-delta":t.enqueue(e.textDelta);break;case"object":case"finish":case"error":break;default:{const r=e;throw new Error(`Unsupported chunk type: ${r}`)}}}})))}get fullStream(){return Ud(this.baseStream)}pipeTextStreamToResponse(e,t){mke({response:e,textStream:this.textStream,...t})}toTextStreamResponse(e){return dke({textStream:this.textStream,...e})}},_vr=Cke(),hq=({model:e,middleware:t,modelId:r,providerId:n})=>[...gm(t)].reverse().reduce((o,s)=>sAe({model:o,middleware:s,modelId:r,providerId:n}),e),sAe=({model:e,middleware:{transformParams:t,wrapGenerate:r,wrapStream:n,overrideProvider:o,overrideModelId:s,overrideSupportedUrls:i},modelId:a,providerId:l})=>{var c,u,d;async function m({params:h,type:g}){return t?await t({params:h,type:g,model:e}):h}return{specificationVersion:"v3",provider:(c=l??o?.({model:e}))!=null?c:e.provider,modelId:(u=a??s?.({model:e}))!=null?u:e.modelId,supportedUrls:(d=i?.({model:e}))!=null?d:e.supportedUrls,async doGenerate(h){const g=await m({params:h,type:"generate"}),y=async()=>e.doGenerate(g);return r?r({doGenerate:y,doStream:async()=>e.doStream(g),params:g,model:e}):y()},async doStream(h){const g=await m({params:h,type:"stream"}),y=async()=>e.doGenerate(g),v=async()=>e.doStream(g);return n?n({doGenerate:y,doStream:v,params:g,model:e}):v()}}},iAe="AI_NoSuchProviderError",aAe=`vercel.ai.error.${iAe}`,lAe=Symbol.for(aAe),wvr=lAe,cAe=Cke(),uAe=class{constructor(e){var t;this.text=e.text,this.segments=e.segments,this.language=e.language,this.durationInSeconds=e.durationInSeconds,this.warnings=e.warnings,this.responses=e.responses,this.providerMetadata=(t=e.providerMetadata)!=null?t:{}}}}}),dAe={};he(dAe,{APICallError:()=>Gr,InvalidToolInputError:()=>Iv,NoObjectGeneratedError:()=>ki,NoOutputGeneratedError:()=>ac,NoSuchToolError:()=>Rv});var Bd=S({"src/lib/utils/generationErrors.ts"(){"use strict";fq(),Rt()}});function gq(e,t){if("get"in e&&typeof e.get=="function")return e.get(t);const r=t.toLowerCase();for(const[n,o]of Object.entries(e))if(n.toLowerCase()===r)return o;return null}function BT(e){const t=gq(e,"Retry-After");if(t){const n=parseInt(t,10);if(!Number.isNaN(n))return Math.max(0,n*1e3);const o=new Date(t);if(!Number.isNaN(o.getTime()))return Math.max(0,o.getTime()-Date.now())}const r=gq(e,"X-RateLimit-Reset");if(r){const n=parseInt(r,10);if(!Number.isNaN(n)){const o=n>1e12?n:n*1e3;return Math.max(0,o-Date.now())}}if(gq(e,"X-RateLimit-Remaining")==="0")return 1e3}var yq=S({"src/lib/utils/retryAfter.ts"(){"use strict"}});function zT(e){if(!e||typeof e!="object")return;const t=e;if(typeof t.statusCode=="number")return t.statusCode;if(typeof t.status=="number")return t.status;const r=t.$metadata;if(typeof r=="object"&&r!==null){const n=r.httpStatusCode;if(typeof n=="number")return n}}function pAe(e){if(!e||typeof e!="object")return;const t=e;if(typeof t.retryAfterMs=="number"&&Number.isFinite(t.retryAfterMs))return t.retryAfterMs;for(const r of[t.headers,t.responseHeaders])if(r&&typeof r=="object"){const n=BT(r);if(n!==void 0)return n}}function mAe(e){if(typeof e!="object"||e===null)return!1;const t=e;if(t.type==="insufficient_quota")return!0;if(typeof t.responseBody=="string")try{return JSON.parse(t.responseBody)?.error?.type==="insufficient_quota"}catch{return!1}return!1}function bvr(e){if(mAe(e))return!1;if(Gr.isInstance(e))return e.isRetryable;if(e instanceof Ne)return e.retriable;const t=zT(e);return t!==void 0?t===429||t>=500:!1}function hAe(e){return Gr.isInstance(e)?e.statusCode:zT(e)}function Tvr(e){if(Gr.isInstance(e)&&e.responseHeaders){const t=BT(e.responseHeaders);if(t!==void 0)return t}return e instanceof Ne&&e.retryAfterMs!==void 0&&Number.isFinite(e.retryAfterMs)?e.retryAfterMs:pAe(e)}async function Mv(e,t,r,n=yAe){for(let o=0;o<=U1;o++)try{const s=await e();return t?.setAttribute("gen_ai.provider.total_attempts",o+1),o>0&&f.info(`[providerRetry] ${r} succeeded after ${o+1} attempts`),s}catch(s){const i=bvr(s),a=hAe(s),l=s instanceof Error?s.message:String(s);if(!i||o===U1)throw t?.setAttribute("gen_ai.provider.total_attempts",o+1),o>0&&t?.setAttribute("gen_ai.provider.retries_exhausted",!0),f.warn(`[providerRetry] ${r} failed (non-retryable or retries exhausted)`,{attempt:o+1,retryable:i,statusCode:a,error:l}),s;const c=Tvr(s);if(c!==void 0&&c>vq){t?.setAttribute("gen_ai.provider.total_attempts",o+1),t?.addEvent("gen_ai.provider.retry_suppressed",{"retry.after_ms":c,...a!==void 0&&{"retry.status_code":a}});try{Object.assign(s,{isRetryable:!1,retryAfterMs:c})}catch{}throw f.warn(`[providerRetry] ${r} not retrying \u2014 server requested a ${Math.round(c/1e3)}s wait (cap ${vq/1e3}s); surfacing for fallback`,{attempt:o+1,retryAfterMs:c,statusCode:a}),s}const u=(c===void 0?void 0:Math.max(0,c))??Math.max(fAe*Math.pow(2,o),gAe);t?.addEvent("gen_ai.provider.retry",{"retry.attempt":o+1,"retry.delay_ms":u,...a!==void 0&&{"retry.status_code":a},"retry.error":l.slice(0,256)}),f.warn(`[providerRetry] ${r} retrying after ${a||"unknown"} error`,{attempt:o+1,maxRetries:U1,delayMs:u,statusCode:a,error:l}),await n(u)}throw new Error(`[providerRetry] ${r} exhausted all retries`)}var U1,fAe,gAe,vq,yAe,ym=S({"src/lib/utils/providerRetry.ts"(){"use strict";er(),ct(),q(),Bd(),yq(),U1=2,fAe=1e3,gAe=1e4,vq=6e4,yAe=e=>new Promise(t=>setTimeout(t,e))}}),_q,vAe=S({"src/lib/constants/networkErrorCodes.ts"(){"use strict";_q=new Set(["ECONNRESET","ETIMEDOUT","ECONNREFUSED","EPIPE","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT"])}}),jT={};he(jT,{AsyncLocalStorage:()=>LAe,Buffer:()=>ARe,Channel:()=>yRe,DatabaseSync:()=>xRe,Duplex:()=>FAe,EventEmitter:()=>NAe,Http2ServerRequest:()=>DRe,Http2ServerResponse:()=>ORe,Interface:()=>kRe,MIMEType:()=>BRe,PassThrough:()=>UAe,PerformanceObserver:()=>hRe,Readable:()=>bq,ReadableStream:()=>BAe,Resolver:()=>pRe,TextDecoder:()=>Sq,TextEncoder:()=>GT,Transform:()=>$Ae,URL:()=>QIe,URLSearchParams:()=>eRe,Worker:()=>bRe,Writable:()=>Tq,access:()=>hIe,appendFile:()=>WAe,appendFileSync:()=>TAe,arch:()=>MIe,arrayBuffer:()=>NRe,basename:()=>AAe,builtinModules:()=>JIe,callbackify:()=>aRe,channel:()=>gRe,chmodSync:()=>VAe,clearInterval:()=>URe,clearTimeout:()=>$Re,closeSync:()=>ZAe,connect:()=>LIe,constants:()=>IRe,copyFileSync:()=>JAe,cpSync:()=>EAe,cpus:()=>AIe,createConnection:()=>$Ie,createGunzip:()=>GIe,createGzip:()=>HIe,createHash:()=>Kc,createHmac:()=>wq,createInterface:()=>CRe,createReadStream:()=>aIe,createRequire:()=>KIe,createServer:()=>SAe,createWriteStream:()=>iIe,debug:()=>sRe,debuglog:()=>Eq,default:()=>_Ae,deflateSync:()=>UIe,deprecate:()=>iRe,deserialize:()=>wRe,dirname:()=>xAe,exec:()=>wIe,execFile:()=>TIe,execFileSync:()=>EIe,execSync:()=>bIe,existsSync:()=>qAe,extname:()=>IAe,fileURLToPath:()=>tRe,finished:()=>jAe,format:()=>XIe,freemem:()=>IIe,fstatSync:()=>XAe,get:()=>NIe,gunzip:()=>qIe,gunzipSync:()=>BIe,gzip:()=>jIe,gzipSync:()=>zIe,hasSubscribers:()=>vRe,homedir:()=>CIe,hostname:()=>xIe,inflateSync:()=>FIe,inherits:()=>nRe,inspect:()=>qT,isAbsolute:()=>PAe,isBuiltin:()=>YIe,isDeepStrictEqual:()=>lRe,isIP:()=>MRe,isIPv4:()=>PRe,isIPv6:()=>RRe,isMainThread:()=>TRe,join:()=>CAe,lookup:()=>dRe,mkdir:()=>uIe,mkdirSync:()=>QAe,monitorEventLoopDelay:()=>fRe,normalize:()=>OAe,ok:()=>VIe,open:()=>yIe,openSync:()=>YAe,parentPort:()=>ERe,parse:()=>ZIe,pathToFileURL:()=>rRe,performance:()=>mRe,pipeline:()=>zAe,platform:()=>SIe,posix:()=>DAe,promises:()=>wAe,promisify:()=>oRe,randomBytes:()=>af,randomUUID:()=>st,readFile:()=>lIe,readFileSync:()=>GAe,readdir:()=>pIe,readdirSync:()=>tIe,realpath:()=>vIe,realpathSync:()=>KAe,relative:()=>RAe,release:()=>DIe,rename:()=>fIe,renameSync:()=>nIe,request:()=>OIe,resolve:()=>kAe,rm:()=>gIe,rmSync:()=>sIe,rmdirSync:()=>oIe,sep:()=>MAe,serialize:()=>_Re,setInterval:()=>FRe,setTimeout:()=>LRe,spawn:()=>_Ie,stat:()=>dIe,statSync:()=>eIe,strict:()=>WIe,tmpdir:()=>kIe,toUSVString:()=>cRe,totalmem:()=>RIe,type:()=>PIe,types:()=>uRe,unlink:()=>mIe,unlinkSync:()=>rIe,webcrypto:()=>bAe,workerData:()=>SRe,writeFile:()=>cIe,writeFileSync:()=>HAe});var ho,In,_Ae,wAe,Kc,wq,af,st,bAe,TAe,EAe,SAe,CAe,kAe,xAe,AAe,IAe,RAe,PAe,MAe,DAe,OAe,NAe,LAe,bq,Tq,$Ae,FAe,UAe,BAe,zAe,jAe,qAe,GAe,HAe,VAe,WAe,KAe,JAe,YAe,ZAe,XAe,QAe,eIe,tIe,rIe,nIe,oIe,sIe,iIe,aIe,lIe,cIe,uIe,dIe,pIe,mIe,hIe,fIe,gIe,yIe,vIe,_Ie,wIe,bIe,TIe,EIe,SIe,CIe,kIe,xIe,AIe,IIe,RIe,PIe,MIe,DIe,OIe,NIe,LIe,$Ie,FIe,UIe,BIe,zIe,jIe,qIe,GIe,HIe,VIe,WIe,KIe,JIe,YIe,ZIe,XIe,QIe,eRe,tRe,rRe,nRe,oRe,Eq,sRe,qT,iRe,aRe,lRe,cRe,uRe,Sq,GT,dRe,pRe,mRe,hRe,fRe,gRe,yRe,vRe,_Re,wRe,bRe,TRe,ERe,SRe,CRe,kRe,xRe,ARe,IRe,RRe,PRe,MRe,DRe,ORe,NRe,Cq,LRe,$Re,FRe,URe,BRe,Ft=S({"node-stub:crypto"(){ho=()=>{},In=async()=>{},_Ae={},wAe={readFile:In,writeFile:In,mkdir:In,stat:In,readdir:In,unlink:In,access:In,rm:In,rename:In},Kc=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new GT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},wq=(e,t)=>Kc(e),af=e=>new Uint8Array(e||32),st=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),bAe=globalThis.crypto,TAe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},EAe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},SAe=()=>({listen:ho,close:ho,on:ho}),CAe=(...e)=>e.join("/"),kAe=(...e)=>e.join("/"),xAe=e=>e||"",AAe=e=>e?.split?.("/")?.pop?.()||"",IAe=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},RAe=(e,t)=>t||"",PAe=()=>!1,MAe="/",DAe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},OAe=e=>e,NAe=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},LAe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},bq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Tq=class{write(){return!0}end(){}on(){return this}destroy(){}},$Ae=class{push(){}on(){return this}},FAe=class{on(){return this}},UAe=class{pipe(){return this}on(){return this}},BAe=globalThis.ReadableStream||class{},zAe=ho,jAe=ho,qAe=()=>!1,GAe=()=>"",HAe=ho,VAe=ho,WAe=In,KAe=e=>e,JAe=ho,YAe=()=>0,ZAe=ho,XAe=()=>({}),QAe=ho,eIe=()=>({}),tIe=()=>[],rIe=ho,nIe=ho,oIe=ho,sIe=ho,iIe=()=>new Tq,aIe=()=>new bq,lIe=In,cIe=In,uIe=In,dIe=In,pIe=In,mIe=In,hIe=In,fIe=In,gIe=In,yIe=async()=>({stat:In,readFile:In,close:In,read:In,write:In}),vIe=async e=>e,_Ie=()=>({on:ho,stdout:{on:ho},stderr:{on:ho},kill:ho}),wIe=(e,t)=>t?.(null,"",""),bIe=()=>"",TIe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},EIe=()=>"",SIe="browser",CIe=()=>"/",kIe=()=>"/tmp",xIe=()=>"browser",AIe=()=>[{}],IIe=()=>0,RIe=()=>0,PIe=()=>"Browser",MIe=()=>"wasm",DIe=()=>"0",OIe=()=>({}),NIe=()=>({}),LIe=()=>({}),$Ie=()=>({}),FIe=()=>new Uint8Array,UIe=()=>new Uint8Array,BIe=()=>new Uint8Array,zIe=()=>new Uint8Array,jIe=(e,t)=>t?.(null,e),qIe=(e,t)=>t?.(null,e),GIe=()=>({}),HIe=()=>({}),VIe=ho,WIe={},KIe=()=>()=>({}),JIe=[],YIe=()=>!1,ZIe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),XIe=()=>"",QIe=globalThis.URL,eRe=globalThis.URLSearchParams,tRe=e=>typeof e=="string"?e.replace("file://",""):e,rRe=e=>new globalThis.URL("file://"+e),nRe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},oRe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Eq=e=>{const t=(...r)=>{};return t.enabled=!1,t},sRe=Eq,qT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},qT.custom=Symbol.for("nodejs.util.inspect.custom"),qT.colors={},qT.styles={},iRe=e=>e,aRe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},lRe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),cRe=e=>String(e),uRe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Sq=globalThis.TextDecoder,GT=globalThis.TextEncoder,dRe=(e,t)=>t?.(null,"127.0.0.1",4),pRe=class{},mRe=globalThis.performance||{now:()=>Date.now()},hRe=class{observe(){}disconnect(){}},fRe=()=>({enable:ho,disable:ho,percentile:()=>0}),gRe=()=>({}),yRe=class{},vRe=()=>!1,_Re=()=>new Uint8Array,wRe=ho,bRe=class{},TRe=!0,ERe=null,SRe=null,CRe=()=>({}),kRe=class{},xRe=class{},ARe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new GT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new GT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Sq().decode(this)}},IRe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},RRe=()=>!1,PRe=()=>!1,MRe=()=>0,DRe=class{},ORe=class{},NRe=async()=>new ArrayBuffer(0),Cq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),LRe=(...e)=>Cq(globalThis.setTimeout(...e)),$Re=globalThis.clearTimeout,FRe=(...e)=>Cq(globalThis.setInterval(...e)),URe=globalThis.clearInterval,BRe=class{constructor(e){this.type=e}toString(){return this.type}}}});function fo(e,t=500){return e&&e.slice(0,t).replace(HRe,"***")}function Dv(e){if(typeof e=="string")return e;try{return JSON.stringify(e)??String(e)}catch{return"[content too large to serialize]"}}function B1(e,t=1e4){try{const r=JSON.stringify(e);return r===void 0?String(e):r.length>t?`${r.slice(0,t)}\u2026[truncated ${r.length-t} chars]`:r}catch(r){return`[unserializable: ${r instanceof Error?r.message:String(r)}]`}}function Xn(e){return e.replace(/\/\/[^/\s"'<>]*@/g,"//***@").replace(/\/\/(?:(?!\/\/)[^\s"'<>])*@/g,"//***@")}function un(e){const t=r=>r.length>200?`${r.slice(0,200)}\u2026`:r;try{const r=new URL(e);return t(`${r.protocol}//${r.host}${r.pathname}`)}catch{const r=e.split(/[?#]/)[0];return t(Xn(r))}}function Evr(e){KRe.forEach(t=>e.searchParams.delete(t))}function Svr(e){const t=[],r=[];for(const[o,s]of e.searchParams.entries())WRe.includes(o.toLowerCase())&&(t.push(`${o.toLowerCase()}=${s}`),r.push(o));return t.length===0?"":(r.forEach(o=>e.searchParams.delete(o)),t.sort(),`\0auth=${Kc("sha256").update(t.join("&")).digest("hex").slice(0,16)}`)}function zRe(e){try{const t=new URL(e);Evr(t);const r=Svr(t);return t.toString()+r}catch{return e}}function z1(e){return e.replace(/[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s"'<>)]+/g,t=>un(t))}function jRe(e,t){const r=Vi(t);return e.split(Ld(t)).join(r).split(t).join(r)}function vm(e,t){const r=s=>{const i=z1(s);return t?.filePath?jRe(i,t.filePath):i};if(!(e instanceof Error))return new Error(r(String(e)));const n=new Error(r(e.message));n.name=e.name;const o=e.code;return o!==void 0&&(n.code=o),n}function j1(e,t=1e3){const r=new WeakSet,n=o=>{if(o==null)return o;if(typeof o=="string")return fo(o,t);if(typeof o!="object")return o;if(r.has(o))return"[Circular]";if(r.add(o),Array.isArray(o))return o.map(n);const s={};for(const[i,a]of Object.entries(o))VRe.some(l=>l.toLowerCase()===i.toLowerCase())?s[i]="***":s[i]=n(a);return s};return n(e)}var qRe,GRe,HRe,VRe,WRe,KRe,_r=S({"src/lib/utils/logSanitize.ts"(){"use strict";Ft(),Lr(),qRe=["sk","pk","r8","gsk","xai","tgp","fw","pplx","pa","jina","fish"],GRe=qRe.join("|"),HRe=new RegExp(`\\bBearer\\s+[A-Za-z0-9_\\-\\.]{8,}\\b|\\bToken\\s+[A-Za-z0-9_\\-\\.]{8,}\\b|\\bBasic\\s+[A-Za-z0-9+/=]{12,}\\b|\\b(?:${GRe})[_\\-][A-Za-z0-9_\\-\\.]{8,}\\b|\\b(?:api[_-]?key|access[_-]?token|secret[_-]?key|refresh[_-]?token)\\s*[:=]\\s*['"]?[^\\s,;'"&]+`,"gi"),VRe=["apikey","api_key","apiKey","access_token","accessToken","refresh_token","refreshToken","secret","secretkey","secret_key","secretKey","password","authorization","oauth","oauthToken","credentials","authContext","authToken","sessionToken","serviceAccountKey","secretAccessKey","userEmail"],WRe=["token","signature","x-amz-signature","x-amz-credential","x-amz-security-token","awsaccesskeyid","expires","sig","se","sp","sr","sv","x-goog-signature","x-goog-credential","x-goog-algorithm","x-goog-date","x-goog-expires","x-goog-signedheaders"],KRe=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","fbclid","gclid","_ga"]}});function Cvr(e){const t=[],r=new Set;let n=e;for(;n&&typeof n=="object"&&!r.has(n)&&t.length<YRe;){r.add(n);const o=n;t.push(o),n=o.cause}return t}function JRe(e,t){for(const r of e)if(typeof r[t]=="string")return r[t]}function kvr(e,t,r){const n=Cvr(e),o=n[0],s=typeof o?.message=="string"?o.message:e instanceof Error?e.message:"Unknown error",i=n[n.length-1],a=typeof i?.message=="string"?z1(i.message):void 0,l=a&&a!==s?`${s}: ${a}`:s;let c;for(const u of n)if(c=zT(u),c!==void 0)break;return{error:e,message:l,statusCode:c,errorName:JRe(n,"name"),errorCode:JRe(n,"code"),provider:t,modelName:r}}function Ki(e,t,r,n){if(e instanceof Od)return new jo(`Request timed out: ${e.message}`,r);const o=kvr(e,r,n),s=t.find(a=>a.match(o));if(!s)return new _t(`${r} error: ${o.message}`,r);const i=typeof s.message=="function"?s.message(o):s.message;return new s.errorClass(i,r)}var YRe,Qo,xi=S({"src/lib/utils/errorClassifier.ts"(){"use strict";yt(),Ua(),ym(),vAe(),_r(),YRe=5,Qo=[{match:e=>e.statusCode===401||/API_KEY_INVALID|Invalid API key|Unauthorized|invalid_api_key/i.test(e.message),errorClass:sr,message:e=>`Invalid ${e.provider} API key. Please check your credentials.`},{match:e=>e.statusCode===429||/rate limit/i.test(e.message),errorClass:Xs,message:e=>`${e.provider} rate limit exceeded. Please try again later.`},{match:e=>e.statusCode===404||/model_not_found|model not found/i.test(e.message),errorClass:co,message:e=>e.modelName?`${e.provider} model '${e.modelName}' not found.`:`${e.provider} model not found.`},{match:e=>/ECONNRESET|ENOTFOUND|ECONNREFUSED|ETIMEDOUT|network|connection/i.test(e.message)||e.errorCode!==void 0&&_q.has(e.errorCode),errorClass:jo,message:e=>`Connection error: ${e.message}`},{match:e=>e.statusCode!==void 0&&e.statusCode>=500&&e.statusCode<=599||/server error|bad gateway|service unavailable|gateway timeout|\berror\b\D{0,12}\b5\d\d\b|\b5\d\d\b\D{0,12}\berror\b|\bstatus(?:\s*code)?\b\D{0,12}\b5\d\d\b/i.test(e.message),errorClass:_t,message:e=>`${e.provider} server error: ${e.message}`}]}});function xvr(e){return`https://api.cloudflare.com/client/v4/accounts/${e}/ai/v1`}var ZRe,Avr=S({"src/lib/providers/openaiCompatCatalog.ts"(){"use strict";yt(),xi(),Yo(),ZRe=[{providerName:"cerebras",aliases:["cerebras"],apiKeyEnvVar:"CEREBRAS_API_KEY",baseURLEnvVar:"CEREBRAS_BASE_URL",defaultBaseURL:"https://api.cerebras.ai/v1",configOptions:Ccr(),modelEnvVar:"CEREBRAS_MODEL",defaultModel:"gpt-oss-120b",registryDefaultModel:"gpt-oss-120b",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"gemma-4-31b",fallbackModels:["gpt-oss-120b","gemma-4-31b"],errorRules:[{match:e=>e.statusCode===401||/wrong_api_key|Wrong API Key|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid Cerebras API key. Check CEREBRAS_API_KEY. Get one at https://cloud.cerebras.ai"},...Qo]},{providerName:"groq",aliases:["groq"],apiKeyEnvVar:"GROQ_API_KEY",baseURLEnvVar:"GROQ_BASE_URL",defaultBaseURL:"https://api.groq.com/openai/v1",configOptions:kcr(),modelEnvVar:"GROQ_MODEL",defaultModel:"llama-3.3-70b-versatile",registryDefaultModel:"llama-3.3-70b-versatile",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"llama-3.1-8b-instant",fallbackModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","gemma2-9b-it","mixtral-8x7b-32768","llama-3.2-90b-vision-preview","llama-3.2-11b-vision-preview"],timeoutErrorClass:_t,errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid Groq API key. Check GROQ_API_KEY. Get one at https://console.groq.com/keys"},{match:e=>/model_decommissioned/i.test(e.message),errorClass:co,message:e=>`Groq model '${e.modelName}' was decommissioned. Pick a current model from https://console.groq.com/docs/models.`},...Qo]},{providerName:"xai",aliases:["xai","grok"],apiKeyEnvVar:"XAI_API_KEY",baseURLEnvVar:"XAI_BASE_URL",defaultBaseURL:"https://api.x.ai/v1",configOptions:Scr(),modelEnvVar:"XAI_MODEL",defaultModel:"grok-3",registryDefaultModel:"grok-3",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"grok-3-mini",fallbackModels:["grok-3","grok-3-mini","grok-2-latest","grok-2-vision-latest","grok-beta"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid xAI API key. Please check your XAI_API_KEY environment variable. Get one at https://console.x.ai/"},{match:e=>/insufficient_quota|quota exceeded/i.test(e.message),errorClass:_t,message:"xAI account has insufficient quota. Top up at https://console.x.ai/"},...Qo]},{providerName:"together-ai",aliases:["together-ai","together"],apiKeyEnvVar:"TOGETHER_API_KEY",baseURLEnvVar:"TOGETHER_BASE_URL",defaultBaseURL:"https://api.together.xyz/v1",configOptions:Icr(),modelEnvVar:"TOGETHER_MODEL",defaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",registryDefaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",fallbackModels:["meta-llama/Llama-3.3-70B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","mistralai/Mixtral-8x22B-Instruct-v0.1","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1","deepseek-ai/DeepSeek-V3"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Together AI API key. Get one at https://api.together.xyz/settings/api-keys"},...Qo]},{providerName:"fireworks",aliases:["fireworks"],apiKeyEnvVar:"FIREWORKS_API_KEY",baseURLEnvVar:"FIREWORKS_BASE_URL",defaultBaseURL:"https://api.fireworks.ai/inference/v1",configOptions:Rcr(),modelEnvVar:"FIREWORKS_MODEL",defaultModel:"accounts/fireworks/models/deepseek-v4-pro",registryDefaultModel:"accounts/fireworks/models/deepseek-v4-pro",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"accounts/fireworks/models/deepseek-v4-pro",fallbackModels:["accounts/fireworks/models/deepseek-v4-pro","accounts/fireworks/models/glm-5p1","accounts/fireworks/models/glm-5","accounts/fireworks/models/kimi-k2p6","accounts/fireworks/models/kimi-k2p5","accounts/fireworks/models/gpt-oss-120b"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Fireworks API key. Get one at https://fireworks.ai/account/api-keys"},...Qo]},{providerName:"perplexity",aliases:["perplexity","pplx"],apiKeyEnvVar:"PERPLEXITY_API_KEY",baseURLEnvVar:"PERPLEXITY_BASE_URL",defaultBaseURL:"https://api.perplexity.ai",configOptions:Pcr(),modelEnvVar:"PERPLEXITY_MODEL",defaultModel:"sonar",registryDefaultModel:"sonar",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"gpt-3.5-turbo",fallbackModels:["sonar","sonar-pro","sonar-reasoning","sonar-reasoning-pro","sonar-deep-research"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Perplexity API key. Get one at https://www.perplexity.ai/settings/api"},...Qo]},{providerName:"mistral",aliases:["mistral"],apiKeyEnvVar:"MISTRAL_API_KEY",baseURLEnvVar:"MISTRAL_BASE_URL",defaultBaseURL:"https://api.mistral.ai/v1",configOptions:_cr(),modelEnvVar:"MISTRAL_MODEL",defaultModel:"mistral-small-2506",registryDefaultModel:"mistral-large-latest",registryDefaultModelChecksEnvVar:!1,fallbackModelName:"mistral-small-2506",fallbackModels:["mistral-small-2506","mistral-large-latest"],errorRules:[{match:e=>e.statusCode===401||/API_KEY_INVALID|Invalid API key|Unauthorized/i.test(e.message),errorClass:sr,message:"Invalid Mistral API key. Please check your MISTRAL_API_KEY environment variable."},...Qo]},{providerName:"cloudflare",aliases:["cloudflare","workers-ai","cf-ai"],apiKeyEnvVar:"CLOUDFLARE_API_KEY",computedBaseURL:{envVar:"CLOUDFLARE_ACCOUNT_ID",missingValueMessage:"CLOUDFLARE_ACCOUNT_ID is required (or pass credentials.cloudflare.accountId). Get the account id from https://dash.cloudflare.com/",build:xvr},configOptions:Lcr(),modelEnvVar:"CLOUDFLARE_MODEL",defaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",registryDefaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"@cf/meta/llama-3.1-8b-instruct-fast",fallbackModels:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/meta/llama-3.2-11b-vision-instruct","@cf/mistral/mistral-7b-instruct-v0.2","@cf/qwen/qwen1.5-14b-chat-awq"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Cloudflare API key. Use a token with Workers AI Read+Write scope. Get one at https://dash.cloudflare.com/profile/api-tokens"},...Qo]}]}});function Ov(e){const t=[];for(const r of zd)r.kind===e&&(t.push(r.name),r.aliases&&t.push(...r.aliases));return t}function Ivr(e){const t=zd.find(r=>r.kind===e);if(!t)throw new Error(`No media handler catalog entries registered for kind "${e}"`);return t.name}var zd,Nv=S({"src/lib/factories/mediaHandlerCatalog.ts"(){"use strict";zd=[{kind:"tts",name:"google-ai",aliases:["vertex"]},{kind:"tts",name:"openai-tts"},{kind:"tts",name:"elevenlabs",aliases:["elevenlabs-tts"]},{kind:"tts",name:"azure-tts"},{kind:"tts",name:"fish-audio"},{kind:"tts",name:"cartesia"},{kind:"stt",name:"whisper",aliases:["openai-stt"]},{kind:"stt",name:"deepgram"},{kind:"stt",name:"google-stt"},{kind:"stt",name:"azure-stt"},{kind:"realtime",name:"openai-realtime"},{kind:"realtime",name:"gemini-live"},{kind:"video",name:"vertex"},{kind:"video",name:"kling"},{kind:"video",name:"runway"},{kind:"video",name:"replicate"},{kind:"avatar",name:"d-id"},{kind:"avatar",name:"replicate",aliases:["musetalk"]},{kind:"avatar",name:"heygen"},{kind:"music",name:"beatoven"},{kind:"music",name:"replicate",aliases:["musicgen"]},{kind:"music",name:"elevenlabs-music",aliases:["elevenlabs-sound"]},{kind:"music",name:"lyria"}]}}),XRe={};he(XRe,{AsyncLocalStorage:()=>_1e,Buffer:()=>cMe,Channel:()=>XPe,DatabaseSync:()=>lMe,Duplex:()=>b1e,EventEmitter:()=>v1e,Http2ServerRequest:()=>hMe,Http2ServerResponse:()=>fMe,Interface:()=>aMe,MIMEType:()=>bMe,PassThrough:()=>T1e,PerformanceObserver:()=>JPe,Readable:()=>xq,ReadableStream:()=>E1e,Resolver:()=>WPe,TextDecoder:()=>Mq,TextEncoder:()=>VT,Transform:()=>w1e,URL:()=>OPe,URLSearchParams:()=>NPe,Worker:()=>rMe,Writable:()=>Aq,access:()=>Z1e,appendFile:()=>R1e,appendFileSync:()=>s1e,arch:()=>mPe,arrayBuffer:()=>gMe,basename:()=>d1e,builtinModules:()=>RPe,callbackify:()=>jPe,channel:()=>ZPe,chmodSync:()=>I1e,clearInterval:()=>wMe,clearTimeout:()=>vMe,closeSync:()=>O1e,connect:()=>yPe,constants:()=>uMe,copyFileSync:()=>M1e,cpSync:()=>i1e,cpus:()=>cPe,createConnection:()=>vPe,createGunzip:()=>CPe,createGzip:()=>kPe,createHash:()=>kq,createHmac:()=>t1e,createInterface:()=>iMe,createReadStream:()=>G1e,createRequire:()=>IPe,createServer:()=>a1e,createWriteStream:()=>q1e,debug:()=>BPe,debuglog:()=>Pq,default:()=>QRe,deflateSync:()=>wPe,deprecate:()=>zPe,deserialize:()=>tMe,dirname:()=>u1e,exec:()=>rPe,execFile:()=>Rq,execFileSync:()=>oPe,execSync:()=>nPe,existsSync:()=>k1e,extname:()=>p1e,fileURLToPath:()=>LPe,finished:()=>C1e,format:()=>DPe,freemem:()=>uPe,fstatSync:()=>N1e,get:()=>gPe,gunzip:()=>SPe,gunzipSync:()=>bPe,gzip:()=>EPe,gzipSync:()=>TPe,hasSubscribers:()=>QPe,homedir:()=>iPe,hostname:()=>lPe,inflateSync:()=>_Pe,inherits:()=>FPe,inspect:()=>HT,isAbsolute:()=>h1e,isBuiltin:()=>PPe,isDeepStrictEqual:()=>qPe,isIP:()=>mMe,isIPv4:()=>pMe,isIPv6:()=>dMe,isMainThread:()=>nMe,join:()=>l1e,lookup:()=>VPe,mkdir:()=>W1e,mkdirSync:()=>L1e,monitorEventLoopDelay:()=>YPe,normalize:()=>y1e,ok:()=>xPe,open:()=>ePe,openSync:()=>D1e,parentPort:()=>oMe,parse:()=>MPe,pathToFileURL:()=>$Pe,performance:()=>KPe,pipeline:()=>S1e,platform:()=>sPe,posix:()=>g1e,promises:()=>e1e,promisify:()=>UPe,randomBytes:()=>r1e,randomUUID:()=>n1e,readFile:()=>H1e,readFileSync:()=>x1e,readdir:()=>J1e,readdirSync:()=>F1e,realpath:()=>tPe,realpathSync:()=>P1e,relative:()=>m1e,release:()=>hPe,rename:()=>X1e,renameSync:()=>B1e,request:()=>fPe,resolve:()=>c1e,rm:()=>Q1e,rmSync:()=>j1e,rmdirSync:()=>z1e,sep:()=>f1e,serialize:()=>eMe,setInterval:()=>_Me,setTimeout:()=>yMe,spawn:()=>Iq,stat:()=>K1e,statSync:()=>$1e,strict:()=>APe,tmpdir:()=>aPe,toUSVString:()=>GPe,totalmem:()=>dPe,type:()=>pPe,types:()=>HPe,unlink:()=>Y1e,unlinkSync:()=>U1e,webcrypto:()=>o1e,workerData:()=>sMe,writeFile:()=>V1e,writeFileSync:()=>A1e});var go,Rn,QRe,e1e,kq,t1e,r1e,n1e,o1e,s1e,i1e,a1e,l1e,c1e,u1e,d1e,p1e,m1e,h1e,f1e,g1e,y1e,v1e,_1e,xq,Aq,w1e,b1e,T1e,E1e,S1e,C1e,k1e,x1e,A1e,I1e,R1e,P1e,M1e,D1e,O1e,N1e,L1e,$1e,F1e,U1e,B1e,z1e,j1e,q1e,G1e,H1e,V1e,W1e,K1e,J1e,Y1e,Z1e,X1e,Q1e,ePe,tPe,Iq,rPe,nPe,Rq,oPe,sPe,iPe,aPe,lPe,cPe,uPe,dPe,pPe,mPe,hPe,fPe,gPe,yPe,vPe,_Pe,wPe,bPe,TPe,EPe,SPe,CPe,kPe,xPe,APe,IPe,RPe,PPe,MPe,DPe,OPe,NPe,LPe,$Pe,FPe,UPe,Pq,BPe,HT,zPe,jPe,qPe,GPe,HPe,Mq,VT,VPe,WPe,KPe,JPe,YPe,ZPe,XPe,QPe,eMe,tMe,rMe,nMe,oMe,sMe,iMe,aMe,lMe,cMe,uMe,dMe,pMe,mMe,hMe,fMe,gMe,Dq,yMe,vMe,_Me,wMe,bMe,Oq=S({"node-stub:child_process"(){go=()=>{},Rn=async()=>{},QRe={},e1e={readFile:Rn,writeFile:Rn,mkdir:Rn,stat:Rn,readdir:Rn,unlink:Rn,access:Rn,rm:Rn,rename:Rn},kq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new VT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},t1e=(e,t)=>kq(e),r1e=e=>new Uint8Array(e||32),n1e=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),o1e=globalThis.crypto,s1e=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},i1e=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},a1e=()=>({listen:go,close:go,on:go}),l1e=(...e)=>e.join("/"),c1e=(...e)=>e.join("/"),u1e=e=>e||"",d1e=e=>e?.split?.("/")?.pop?.()||"",p1e=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},m1e=(e,t)=>t||"",h1e=()=>!1,f1e="/",g1e={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},y1e=e=>e,v1e=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},_1e=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},xq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Aq=class{write(){return!0}end(){}on(){return this}destroy(){}},w1e=class{push(){}on(){return this}},b1e=class{on(){return this}},T1e=class{pipe(){return this}on(){return this}},E1e=globalThis.ReadableStream||class{},S1e=go,C1e=go,k1e=()=>!1,x1e=()=>"",A1e=go,I1e=go,R1e=Rn,P1e=e=>e,M1e=go,D1e=()=>0,O1e=go,N1e=()=>({}),L1e=go,$1e=()=>({}),F1e=()=>[],U1e=go,B1e=go,z1e=go,j1e=go,q1e=()=>new Aq,G1e=()=>new xq,H1e=Rn,V1e=Rn,W1e=Rn,K1e=Rn,J1e=Rn,Y1e=Rn,Z1e=Rn,X1e=Rn,Q1e=Rn,ePe=async()=>({stat:Rn,readFile:Rn,close:Rn,read:Rn,write:Rn}),tPe=async e=>e,Iq=()=>({on:go,stdout:{on:go},stderr:{on:go},kill:go}),rPe=(e,t)=>t?.(null,"",""),nPe=()=>"",Rq=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},oPe=()=>"",sPe="browser",iPe=()=>"/",aPe=()=>"/tmp",lPe=()=>"browser",cPe=()=>[{}],uPe=()=>0,dPe=()=>0,pPe=()=>"Browser",mPe=()=>"wasm",hPe=()=>"0",fPe=()=>({}),gPe=()=>({}),yPe=()=>({}),vPe=()=>({}),_Pe=()=>new Uint8Array,wPe=()=>new Uint8Array,bPe=()=>new Uint8Array,TPe=()=>new Uint8Array,EPe=(e,t)=>t?.(null,e),SPe=(e,t)=>t?.(null,e),CPe=()=>({}),kPe=()=>({}),xPe=go,APe={},IPe=()=>()=>({}),RPe=[],PPe=()=>!1,MPe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),DPe=()=>"",OPe=globalThis.URL,NPe=globalThis.URLSearchParams,LPe=e=>typeof e=="string"?e.replace("file://",""):e,$Pe=e=>new globalThis.URL("file://"+e),FPe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},UPe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Pq=e=>{const t=(...r)=>{};return t.enabled=!1,t},BPe=Pq,HT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},HT.custom=Symbol.for("nodejs.util.inspect.custom"),HT.colors={},HT.styles={},zPe=e=>e,jPe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},qPe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),GPe=e=>String(e),HPe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Mq=globalThis.TextDecoder,VT=globalThis.TextEncoder,VPe=(e,t)=>t?.(null,"127.0.0.1",4),WPe=class{},KPe=globalThis.performance||{now:()=>Date.now()},JPe=class{observe(){}disconnect(){}},YPe=()=>({enable:go,disable:go,percentile:()=>0}),ZPe=()=>({}),XPe=class{},QPe=()=>!1,eMe=()=>new Uint8Array,tMe=go,rMe=class{},nMe=!0,oMe=null,sMe=null,iMe=()=>({}),aMe=class{},lMe=class{},cMe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new VT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new VT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Mq().decode(this)}},uMe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},dMe=()=>!1,pMe=()=>!1,mMe=()=>0,hMe=class{},fMe=class{},gMe=async()=>new ArrayBuffer(0),Dq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),yMe=(...e)=>Dq(globalThis.setTimeout(...e)),vMe=globalThis.clearTimeout,_Me=(...e)=>Dq(globalThis.setInterval(...e)),wMe=globalThis.clearInterval,bMe=class{constructor(e){this.type=e}toString(){return this.type}}}}),lf,Ns,TMe,Rvr,Pvr,Mvr,Dvr,Ovr,Nvr,Lvr,$vr,Fvr,Uvr,Bvr,zvr,jvr,qvr,Gvr,Hvr,Vvr,Wvr,Kvr,Jvr,Yvr,Zvr,Xvr,Qvr,e0r,t0r,r0r,n0r,o0r,s0r,i0r,a0r,l0r,c0r,u0r,d0r,p0r,m0r,h0r,f0r,g0r,y0r,v0r,_0r,w0r,b0r,T0r=S({"npm-stub:csv-parser"(){lf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:lf.get}):new Proxy(function(...r){return new Proxy({},{get:lf.get})},{get:lf.get,apply(r,n,o){return new Proxy({},{get:lf.get})},construct(r,n){return new Proxy({},{get:lf.get})}})}},Ns=new Proxy({},lf),TMe=Ns,{BedrockClient:Rvr,ListFoundationModelsCommand:Pvr,BedrockRuntimeClient:Mvr,ConverseCommand:Dvr,ConverseStreamCommand:Ovr,ImageFormat:Nvr,InvokeModelCommand:Lvr}=Ns,{SageMakerRuntimeClient:$vr,InvokeEndpointCommand:Fvr,InvokeEndpointWithResponseStreamCommand:Uvr}=Ns,{GoogleAuth:Bvr,VertexAI:zvr,TextToSpeechClient:jvr}=Ns,{Webhook:qvr}=Ns,{Hippocampus:Gvr,HippocampusConfig:Hvr}=Ns,{createClient:Vvr}=Ns,{Queue:Wvr,Worker:Kvr,Job:Jvr,QueueScheduler:Yvr,FlowProducer:Zvr}=Ns,{Cron:Xvr}=Ns,{parseBuffer:Qvr,selectCover:e0r}=Ns,{extractRawText:t0r,convertToHtml:r0r}=Ns,{Hono:n0r}=Ns,{cors:o0r,HTTPException:s0r,logger:i0r,secureHeaders:a0r,streamSSE:l0r,timeout:c0r}=Ns,u0r=globalThis.fetch,d0r=globalThis.Request,p0r=globalThis.Response,m0r=globalThis.Headers,h0r=globalThis.FormData,f0r=globalThis.File,g0r=globalThis.Blob,y0r=Ns.Agent,v0r=Ns.Pool,_0r=Ns.Client,w0r=Ns.Dispatcher,b0r=Ns.MockAgent}}),cf,Ls,zu,E0r,S0r,C0r,k0r,x0r,A0r,I0r,R0r,P0r,M0r,D0r,O0r,N0r,L0r,$0r,F0r,U0r,B0r,z0r,j0r,q0r,G0r,H0r,V0r,W0r,K0r,J0r,Y0r,Z0r,X0r,Q0r,e_r,t_r,r_r,n_r,o_r,s_r,i_r,a_r,l_r,c_r,u_r,d_r,p_r,m_r,h_r,EMe=S({"npm-stub:iconv-lite"(){cf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:cf.get}):new Proxy(function(...r){return new Proxy({},{get:cf.get})},{get:cf.get,apply(r,n,o){return new Proxy({},{get:cf.get})},construct(r,n){return new Proxy({},{get:cf.get})}})}},Ls=new Proxy({},cf),zu=Ls,{BedrockClient:E0r,ListFoundationModelsCommand:S0r,BedrockRuntimeClient:C0r,ConverseCommand:k0r,ConverseStreamCommand:x0r,ImageFormat:A0r,InvokeModelCommand:I0r}=Ls,{SageMakerRuntimeClient:R0r,InvokeEndpointCommand:P0r,InvokeEndpointWithResponseStreamCommand:M0r}=Ls,{GoogleAuth:D0r,VertexAI:O0r,TextToSpeechClient:N0r}=Ls,{Webhook:L0r}=Ls,{Hippocampus:$0r,HippocampusConfig:F0r}=Ls,{createClient:U0r}=Ls,{Queue:B0r,Worker:z0r,Job:j0r,QueueScheduler:q0r,FlowProducer:G0r}=Ls,{Cron:H0r}=Ls,{parseBuffer:V0r,selectCover:W0r}=Ls,{extractRawText:K0r,convertToHtml:J0r}=Ls,{Hono:Y0r}=Ls,{cors:Z0r,HTTPException:X0r,logger:Q0r,secureHeaders:e_r,streamSSE:t_r,timeout:r_r}=Ls,n_r=globalThis.fetch,o_r=globalThis.Request,s_r=globalThis.Response,i_r=globalThis.Headers,a_r=globalThis.FormData,l_r=globalThis.File,c_r=globalThis.Blob,u_r=Ls.Agent,d_r=Ls.Pool,p_r=Ls.Client,m_r=Ls.Dispatcher,h_r=Ls.MockAgent}}),Lv={};he(Lv,{AsyncLocalStorage:()=>GMe,Buffer:()=>L4e,Channel:()=>C4e,DatabaseSync:()=>N4e,Duplex:()=>VMe,EventEmitter:()=>qMe,Http2ServerRequest:()=>z4e,Http2ServerResponse:()=>j4e,Interface:()=>O4e,MIMEType:()=>K4e,PassThrough:()=>WMe,PerformanceObserver:()=>T4e,Readable:()=>_m,ReadableStream:()=>KMe,Resolver:()=>w4e,TextDecoder:()=>Fq,TextEncoder:()=>KT,Transform:()=>HMe,URL:()=>a4e,URLSearchParams:()=>l4e,Worker:()=>I4e,Writable:()=>Lq,access:()=>TDe,appendFile:()=>tDe,appendFileSync:()=>RMe,arch:()=>BDe,arrayBuffer:()=>q4e,basename:()=>LMe,builtinModules:()=>n4e,callbackify:()=>f4e,channel:()=>S4e,chmodSync:()=>eDe,clearInterval:()=>W4e,clearTimeout:()=>H4e,closeSync:()=>sDe,connect:()=>GDe,constants:()=>$4e,copyFileSync:()=>nDe,cpSync:()=>PMe,cpus:()=>LDe,createConnection:()=>HDe,createGunzip:()=>XDe,createGzip:()=>QDe,createHash:()=>Nq,createHmac:()=>kMe,createInterface:()=>D4e,createReadStream:()=>fDe,createRequire:()=>r4e,createServer:()=>MMe,createWriteStream:()=>hDe,debug:()=>m4e,debuglog:()=>$q,default:()=>SMe,deflateSync:()=>WDe,deprecate:()=>h4e,deserialize:()=>A4e,dirname:()=>NMe,exec:()=>ADe,execFile:()=>RDe,execFileSync:()=>PDe,execSync:()=>IDe,existsSync:()=>ZMe,extname:()=>$Me,fileURLToPath:()=>c4e,finished:()=>YMe,format:()=>i4e,freemem:()=>$De,fstatSync:()=>iDe,get:()=>qDe,gunzip:()=>ZDe,gunzipSync:()=>KDe,gzip:()=>YDe,gzipSync:()=>JDe,hasSubscribers:()=>k4e,homedir:()=>DDe,hostname:()=>NDe,inflateSync:()=>VDe,inherits:()=>d4e,inspect:()=>WT,isAbsolute:()=>UMe,isBuiltin:()=>o4e,isDeepStrictEqual:()=>g4e,isIP:()=>B4e,isIPv4:()=>U4e,isIPv6:()=>F4e,isMainThread:()=>R4e,join:()=>DMe,lookup:()=>_4e,mkdir:()=>vDe,mkdirSync:()=>aDe,monitorEventLoopDelay:()=>E4e,normalize:()=>jMe,ok:()=>e4e,open:()=>CDe,openSync:()=>oDe,parentPort:()=>P4e,parse:()=>s4e,pathToFileURL:()=>u4e,performance:()=>b4e,pipeline:()=>JMe,platform:()=>MDe,posix:()=>zMe,promises:()=>CMe,promisify:()=>p4e,randomBytes:()=>xMe,randomUUID:()=>AMe,readFile:()=>gDe,readFileSync:()=>XMe,readdir:()=>wDe,readdirSync:()=>cDe,realpath:()=>kDe,realpathSync:()=>rDe,relative:()=>FMe,release:()=>zDe,rename:()=>EDe,renameSync:()=>dDe,request:()=>jDe,resolve:()=>OMe,rm:()=>SDe,rmSync:()=>mDe,rmdirSync:()=>pDe,sep:()=>BMe,serialize:()=>x4e,setInterval:()=>V4e,setTimeout:()=>G4e,spawn:()=>xDe,stat:()=>_De,statSync:()=>lDe,strict:()=>t4e,tmpdir:()=>ODe,toUSVString:()=>y4e,totalmem:()=>FDe,type:()=>UDe,types:()=>v4e,unlink:()=>bDe,unlinkSync:()=>uDe,webcrypto:()=>IMe,workerData:()=>M4e,writeFile:()=>yDe,writeFileSync:()=>QMe});var yo,Pn,SMe,CMe,Nq,kMe,xMe,AMe,IMe,RMe,PMe,MMe,DMe,OMe,NMe,LMe,$Me,FMe,UMe,BMe,zMe,jMe,qMe,GMe,_m,Lq,HMe,VMe,WMe,KMe,JMe,YMe,ZMe,XMe,QMe,eDe,tDe,rDe,nDe,oDe,sDe,iDe,aDe,lDe,cDe,uDe,dDe,pDe,mDe,hDe,fDe,gDe,yDe,vDe,_De,wDe,bDe,TDe,EDe,SDe,CDe,kDe,xDe,ADe,IDe,RDe,PDe,MDe,DDe,ODe,NDe,LDe,$De,FDe,UDe,BDe,zDe,jDe,qDe,GDe,HDe,VDe,WDe,KDe,JDe,YDe,ZDe,XDe,QDe,e4e,t4e,r4e,n4e,o4e,s4e,i4e,a4e,l4e,c4e,u4e,d4e,p4e,$q,m4e,WT,h4e,f4e,g4e,y4e,v4e,Fq,KT,_4e,w4e,b4e,T4e,E4e,S4e,C4e,k4e,x4e,A4e,I4e,R4e,P4e,M4e,D4e,O4e,N4e,L4e,$4e,F4e,U4e,B4e,z4e,j4e,q4e,Uq,G4e,H4e,V4e,W4e,K4e,uf=S({"node-stub:stream"(){yo=()=>{},Pn=async()=>{},SMe={},CMe={readFile:Pn,writeFile:Pn,mkdir:Pn,stat:Pn,readdir:Pn,unlink:Pn,access:Pn,rm:Pn,rename:Pn},Nq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new KT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},kMe=(e,t)=>Nq(e),xMe=e=>new Uint8Array(e||32),AMe=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),IMe=globalThis.crypto,RMe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},PMe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},MMe=()=>({listen:yo,close:yo,on:yo}),DMe=(...e)=>e.join("/"),OMe=(...e)=>e.join("/"),NMe=e=>e||"",LMe=e=>e?.split?.("/")?.pop?.()||"",$Me=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},FMe=(e,t)=>t||"",UMe=()=>!1,BMe="/",zMe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},jMe=e=>e,qMe=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},GMe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},_m=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Lq=class{write(){return!0}end(){}on(){return this}destroy(){}},HMe=class{push(){}on(){return this}},VMe=class{on(){return this}},WMe=class{pipe(){return this}on(){return this}},KMe=globalThis.ReadableStream||class{},JMe=yo,YMe=yo,ZMe=()=>!1,XMe=()=>"",QMe=yo,eDe=yo,tDe=Pn,rDe=e=>e,nDe=yo,oDe=()=>0,sDe=yo,iDe=()=>({}),aDe=yo,lDe=()=>({}),cDe=()=>[],uDe=yo,dDe=yo,pDe=yo,mDe=yo,hDe=()=>new Lq,fDe=()=>new _m,gDe=Pn,yDe=Pn,vDe=Pn,_De=Pn,wDe=Pn,bDe=Pn,TDe=Pn,EDe=Pn,SDe=Pn,CDe=async()=>({stat:Pn,readFile:Pn,close:Pn,read:Pn,write:Pn}),kDe=async e=>e,xDe=()=>({on:yo,stdout:{on:yo},stderr:{on:yo},kill:yo}),ADe=(e,t)=>t?.(null,"",""),IDe=()=>"",RDe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},PDe=()=>"",MDe="browser",DDe=()=>"/",ODe=()=>"/tmp",NDe=()=>"browser",LDe=()=>[{}],$De=()=>0,FDe=()=>0,UDe=()=>"Browser",BDe=()=>"wasm",zDe=()=>"0",jDe=()=>({}),qDe=()=>({}),GDe=()=>({}),HDe=()=>({}),VDe=()=>new Uint8Array,WDe=()=>new Uint8Array,KDe=()=>new Uint8Array,JDe=()=>new Uint8Array,YDe=(e,t)=>t?.(null,e),ZDe=(e,t)=>t?.(null,e),XDe=()=>({}),QDe=()=>({}),e4e=yo,t4e={},r4e=()=>()=>({}),n4e=[],o4e=()=>!1,s4e=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),i4e=()=>"",a4e=globalThis.URL,l4e=globalThis.URLSearchParams,c4e=e=>typeof e=="string"?e.replace("file://",""):e,u4e=e=>new globalThis.URL("file://"+e),d4e=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},p4e=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),$q=e=>{const t=(...r)=>{};return t.enabled=!1,t},m4e=$q,WT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},WT.custom=Symbol.for("nodejs.util.inspect.custom"),WT.colors={},WT.styles={},h4e=e=>e,f4e=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},g4e=(e,t)=>JSON.stringify(e)===JSON.stringify(t),y4e=e=>String(e),v4e={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Fq=globalThis.TextDecoder,KT=globalThis.TextEncoder,_4e=(e,t)=>t?.(null,"127.0.0.1",4),w4e=class{},b4e=globalThis.performance||{now:()=>Date.now()},T4e=class{observe(){}disconnect(){}},E4e=()=>({enable:yo,disable:yo,percentile:()=>0}),S4e=()=>({}),C4e=class{},k4e=()=>!1,x4e=()=>new Uint8Array,A4e=yo,I4e=class{},R4e=!0,P4e=null,M4e=null,D4e=()=>({}),O4e=class{},N4e=class{},L4e=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new KT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new KT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Fq().decode(this)}},$4e={F_OK:0,R_OK:4,W_OK:2,X_OK:1},F4e=()=>!1,U4e=()=>!1,B4e=()=>0,z4e=class{},j4e=class{},q4e=async()=>new ArrayBuffer(0),Uq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),G4e=(...e)=>Uq(globalThis.setTimeout(...e)),H4e=globalThis.clearTimeout,V4e=(...e)=>Uq(globalThis.setInterval(...e)),W4e=globalThis.clearInterval,K4e=class{constructor(e){this.type=e}toString(){return this.type}}}});function df(e,t=","){const r=[];let n="",o=!1;for(let s=0;s<e.length;s++){const i=e[s];if(i==='"'){if(o&&e[s+1]==='"'){n+='"',s++;continue}o=!o}else i===t&&!o?(r.push(n),n=""):n+=i}return r.push(n),r}function f_r(e,t=","){return df(e,t).length}function q1(e,t){const r=e.filter(a=>a.trim()!=="").slice(0,5);if(r.length===0)return",";const n=t?.toLowerCase().replace(/^\./,""),o=n==="tsv"?" ":n==="psv"?"|":void 0;let s=",",i=-1;for(const a of Bq){const l=r.map(m=>f_r(m,a)),c=l[0];if(c<=1)continue;const u=l.every(m=>m===c),d=(a===o?1e3:0)+(u?100:0)+c+(a===","?.5:0);d>i&&(i=d,s=a)}return i<0&&o?o:s}var Bq,J4e=S({"src/lib/utils/csvUtils.ts"(){"use strict";Bq=[","," ",";","|"]}});function G1(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ar(e){return typeof e=="object"&&e!==null}function g_r(e){return e==null}var pf=S({"src/lib/utils/typeUtils.ts"(){"use strict"}}),mf,$s,Y4e,y_r,v_r,__r,w_r,b_r,T_r,E_r,S_r,C_r,k_r,x_r,A_r,I_r,R_r,P_r,M_r,D_r,O_r,N_r,L_r,$_r,F_r,U_r,B_r,z_r,j_r,q_r,G_r,H_r,V_r,W_r,K_r,J_r,Y_r,Z_r,X_r,Q_r,ewr,twr,rwr,nwr,owr,swr,iwr,awr,lwr,cwr=S({"npm-stub:chardet"(){mf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:mf.get}):new Proxy(function(...r){return new Proxy({},{get:mf.get})},{get:mf.get,apply(r,n,o){return new Proxy({},{get:mf.get})},construct(r,n){return new Proxy({},{get:mf.get})}})}},$s=new Proxy({},mf),Y4e=$s,{BedrockClient:y_r,ListFoundationModelsCommand:v_r,BedrockRuntimeClient:__r,ConverseCommand:w_r,ConverseStreamCommand:b_r,ImageFormat:T_r,InvokeModelCommand:E_r}=$s,{SageMakerRuntimeClient:S_r,InvokeEndpointCommand:C_r,InvokeEndpointWithResponseStreamCommand:k_r}=$s,{GoogleAuth:x_r,VertexAI:A_r,TextToSpeechClient:I_r}=$s,{Webhook:R_r}=$s,{Hippocampus:P_r,HippocampusConfig:M_r}=$s,{createClient:D_r}=$s,{Queue:O_r,Worker:N_r,Job:L_r,QueueScheduler:$_r,FlowProducer:F_r}=$s,{Cron:U_r}=$s,{parseBuffer:B_r,selectCover:z_r}=$s,{extractRawText:j_r,convertToHtml:q_r}=$s,{Hono:G_r}=$s,{cors:H_r,HTTPException:V_r,logger:W_r,secureHeaders:K_r,streamSSE:J_r,timeout:Y_r}=$s,Z_r=globalThis.fetch,X_r=globalThis.Request,Q_r=globalThis.Response,ewr=globalThis.Headers,twr=globalThis.FormData,rwr=globalThis.File,nwr=globalThis.Blob,owr=$s.Agent,swr=$s.Pool,iwr=$s.Client,awr=$s.Dispatcher,lwr=$s.MockAgent}});function JT(e){return e.charCodeAt(0)===65279?e.slice(1):e}function uwr(e){return e.length>=3&&e[0]===239&&e[1]===187&&e[2]===191?"utf-8":e.length>=2&&e[0]===255&&e[1]===254?"utf-16le":e.length>=2&&e[0]===254&&e[1]===255?"utf-16be":null}function dwr(e){if(!e)return null;const t=e.toLowerCase().replace(/[^a-z0-9]/g,""),n={utf8:"utf-8",utf16le:"utf-16le",utf16be:"utf-16be",ascii:"utf-8",windows1252:"windows-1252",iso88591:"latin1",latin1:"latin1",iso88592:"iso-8859-2",windows1251:"windows-1251",koi8r:"koi8-r",gb18030:"gb18030",big5:"big5",shiftjis:"shift_jis",euckr:"euc-kr",eucjp:"euc-jp"}[t]??e;return zu.encodingExists(n)?n:null}function zq(e,t,r=!0){if(t&&zu.encodingExists(t))return{text:JT(zu.decode(e,t)),encoding:t,confidence:100};t&&!zu.encodingExists(t)&&f.warn(`[textEncoding] Unsupported encoding override "${t}"; falling back to detection.`);const n=uwr(e);if(n)return{text:JT(zu.decode(e,n)),encoding:n,confidence:100};let o=!0;for(let a=0;a<e.length;a++)if(e[a]>=128){o=!1;break}if(o)return{text:JT(zu.decode(e,"utf-8")),encoding:"utf-8",confidence:r?100:60};let s=null;try{s=Y4e.detect(e)}catch(a){f.debug(`[textEncoding] chardet failed: ${String(a)}`)}const i=dwr(s);return i?{text:JT(zu.decode(e,i)),encoding:i,confidence:i==="utf-8"?100:80}:{text:JT(zu.decode(e,"utf-8")),encoding:"utf-8",confidence:0}}var pwr=S({"src/lib/utils/textEncoding.ts"(){"use strict";cwr(),EMe(),q()}});async function zt(e,t,r){let n;const o=new Promise((s,i)=>{n=setTimeout(()=>{i(new wm(r||`Operation timed out after ${t}ms`,t))},t)});try{return await Promise.race([e,o])}finally{n!==void 0&&clearTimeout(n)}}async function Z4e(e,t){if(!t||typeof t.addEventListener!="function")return e;const r=()=>{const n=new Error("Operation aborted");return n.name="AbortError",n};return t.aborted?(e.catch(()=>{}),Promise.reject(r())):new Promise((n,o)=>{const s=()=>{e.catch(()=>{}),o(r())};t.addEventListener("abort",s,{once:!0}),e.then(i=>{t.removeEventListener("abort",s),n(i)},i=>{t.removeEventListener("abort",s),o(i)})})}async function H1(e,t,r){return zt(e(),t,r)}var wm,yn=S({"src/lib/utils/async/withTimeout.ts"(){"use strict";wm=class Mlr extends Error{constructor(t,r){super(t),this.timeoutMs=r,this.name="TimeoutError",Error.captureStackTrace&&Error.captureStackTrace(this,Mlr)}timeoutMs}}});function mwr(e){const t=[];return!e||e.trim()===""?(t.push("Empty or blank column name"),t):(e!==e.trim()&&t.push("Leading or trailing whitespace"),/^\d/.test(e)&&t.push("Starts with a number"),/[^a-zA-Z0-9_\- ]/.test(e)&&t.push("Contains special characters"),e.length>64&&t.push("Name exceeds 64 characters"),/\s{2,}/.test(e)&&t.push("Contains multiple consecutive spaces"),t)}function X4e(e,t="snake_case",r=0){let o=(e??"").trim().split(/[^A-Za-z0-9]+/).filter(i=>i.length>0),s=o.join("_");return s===""?(s=`col_${r+1}`,o=[s]):/^[0-9]/.test(s)&&(s=`col_${s}`,o=s.split("_").filter(i=>i.length>0)),t==="camelCase"?o.map((i,a)=>a===0?i.charAt(0).toLowerCase()+i.slice(1):i.charAt(0).toUpperCase()+i.slice(1)).join(""):o.map(i=>i.toLowerCase()).join("_")}function Q4e(e){const t=new Set;return e.map(r=>{if(!t.has(r))return t.add(r),r;let n=2,o=`${r}_${n}`;for(;t.has(o);)n++,o=`${r}_${n}`;return t.add(o),o})}function eOe(e,t){const r=Q4e(e.map((o,s)=>X4e(o,t,s))),n=e.map((o,s)=>({original:o,sanitized:r[s]})).filter(o=>o.original!==o.sanitized);return{sanitized:r,mapping:n}}function hwr(e){return!G1(e)||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string"||t===void 0)}function fwr(e,t){if(!hwr(e))throw xe.csvRowInvalid(`[CSVProcessor] Invalid CSV row ${t}: expected a string-keyed object with string values, got ${Array.isArray(e)?"array":typeof e}`,t)}function YT(e){return Object.keys(e).length===0?!0:Object.values(e).every(r=>r===""||typeof r=="string"&&r.trim()==="")}function gwr(e,t){if(e.trim()==="")return!0;const r=df(e,t);if(r.length===0)return!0;const n=Object.create(null);for(let o=0;o<r.length;o++)n[`c${o}`]=r[o];return YT(n)}function jq(e){const t=[`[CSVProcessor] CSV ${e.stage==="read"?"file read":"parsing"} failed after ${e.count} row(s)`];return e.location&&t.push(`(${e.location})`),t.push(`: ${e.cause}`),t.push(typeof e.headerCount=="number"?`| headerCount: ${e.headerCount}`:"| headerCount: unknown (failed before headers were parsed)"),typeof e.bytesRead=="number"&&t.push(`| bytesRead: ${e.bytesRead}`),typeof e.lastRowColumnCount=="number"&&t.push(`| lastRow columns: ${e.lastRowColumnCount}`),t.push("| Expected RFC 4180 CSV (comma-separated, double-quote escaped)"),t.join(" ")}function qq(e){if(e===""||e===null||e===void 0)return"empty";const t=e.trim();if(t==="")return"empty";if(uOe.has(t.toLowerCase()))return"boolean";if(lOe.test(t))return"integer";if(cOe.test(t))return"float";if(iOe.test(t))return"email";if(aOe.test(t))return"url";for(const r of Wq)if(r.regex.test(t))return"datetime";for(const r of Vq)if(r.regex.test(t))return"date";return"string"}function ywr(e){const t=e.trim();for(const r of Wq)if(r.regex.test(t))return r.format;for(const r of Vq)if(r.regex.test(t))return r.format}function vwr(e){const t=e.filter(i=>i!=="empty");if(t.length===0)return{type:"empty",confidence:100};const r=new Map;for(const i of t)r.set(i,(r.get(i)||0)+1);let n="string",o=0;for(const[i,a]of r)a>o&&(o=a,n=i);const s=Math.round(o/t.length*100);if(r.has("integer")&&r.has("float")&&r.size===2){const i=(r.get("integer")||0)+(r.get("float")||0);return{type:"number",confidence:Math.round(i/t.length*100)}}return s<70&&r.size>1?{type:"mixed",confidence:s}:{type:n,confidence:s}}function _wr(e,t,r){const n=[],o=new Set,s=[];let i=0,a;for(const v of r){const _=v?.trim()??"";if(_===""){i++,n.push("empty");continue}o.add(_);const b=qq(_);if(n.push(b),b==="integer"||b==="float"){const T=parseFloat(_);isNaN(T)||s.push(T)}(b==="date"||b==="datetime")&&!a&&(a=ywr(_))}const{type:l,confidence:c}=vwr(n),u=Array.from(o).slice(0,5);let d,m,h;s.length>0&&(d=Math.min(...s),m=Math.max(...s),h=Math.round(s.reduce((v,_)=>v+_,0)/s.length*100)/100);const g=mwr(e),y={name:e,index:t,detectedType:l,typeConfidence:c,nullCount:i,uniqueCount:o.size,sampleValues:u};return d!==void 0&&(y.minValue=d),m!==void 0&&(y.maxValue=m),h!==void 0&&(y.avgValue=h),a&&(y.dateFormat=a),g.length>0&&(y.nameIssues=g),y}function wwr(e,t){const r=[];for(const n of e){const o=t>0?n.nullCount/t:0;o>.2&&r.push({column:n.name,type:"high_null_rate",message:`Column has ${Math.round(o*100)}% empty/null values (${n.nullCount} of ${t} rows)`,severity:o>.5?"warning":"info",affectedRows:n.nullCount}),n.nameIssues&&n.nameIssues.length>0&&r.push({column:n.name,type:"invalid_name",message:`Column name issues: ${n.nameIssues.join(", ")}`,severity:n.name.trim()===""?"error":"warning"}),(n.detectedType==="mixed"||n.typeConfidence<70)&&r.push({column:n.name,type:"mixed_types",message:`Column has inconsistent data types (${n.typeConfidence}% confidence for ${n.detectedType})`,severity:"warning"}),t>10&&n.uniqueCount===1&&n.nullCount===0&&r.push({column:n.name,type:"duplicates",message:`All ${t} rows have the same value`,severity:"info",affectedRows:t}),n.detectedType==="empty"&&r.push({column:n.name,type:"empty_values",message:"Column is entirely empty",severity:"warning",affectedRows:t})}return r}function bwr(e,t,r){if(e.length===0||r===0)return 0;let n=100;for(const l of t)switch(l.severity){case"error":n-=15;break;case"warning":n-=8;break;case"info":n-=3;break}const o=e.reduce((l,c)=>l+c.nullCount,0),s=e.length*r,i=s>0?o/s:0;n-=Math.round(i*30);const a=e.reduce((l,c)=>l+c.typeConfidence,0)/e.length;return a<80&&(n-=Math.round((80-a)/2)),Math.max(0,Math.min(100,n))}function tOe(e){const t=Math.max(0,Math.min(100,e));return Math.round((100+t)/2)}function rOe(e){if(e.length===0)return{columnMetadata:[],dataQualityWarnings:[],dataQualityScore:0};const t=Object.keys(e[0]),r=[];for(let s=0;s<t.length;s++){const i=t[s],a=e.map(l=>String(l[i]??""));r.push(_wr(i,s,a))}const n=wwr(r,e.length),o=bwr(r,n,e.length);return{columnMetadata:r,dataQualityWarnings:n,dataQualityScore:o}}function nOe(e,t){if(e.length===0)return!1;let r=0;for(const a of e){const l=a?.trim()??"";if(l==="")continue;qq(l)==="string"&&r++}const n=e.filter(a=>a?.trim()).length;if(n===0)return!1;const o=r/n,i=new Set(e.map(a=>a?.trim().toLowerCase())).size===e.length;if(t&&t.length>0){const a=Object.values(t[0]||{}).map(u=>String(u??""));let l=0;for(const u of a)qq(u?.trim()??"")==="string"&&l++;const c=a.length>0?l/a.length:0;if(o>.7&&c<o-.2)return!0}return o>=.7&&i}function Gq(e){return e.charCodeAt(0)===65279?e.slice(1):e}function oOe(e){let t=0,r=!1;for(let n=0;n<e.length;n++){const o=e[n];if(o==='"'){if(r&&e[n+1]==='"'){n++;continue}r=!r}else o===","&&!r&&t++}return t}function Twr(e){if(!e[0]||e.length<2)return!1;const t=e[0].trim(),r=e[1].trim();if(t.match(/^sep=/i))return!0;if(Ewr(r))return!1;const n=oOe(t),o=oOe(r);return n===0&&o>0?!0:o>0&&n!==o}function Ewr(e){const t=e.trim();return t===""?!0:/^[\s,;\t|]+$/.test(t)&&/[,;\t|]/.test(t)}function ZT(e){if(!Twr(e))return{dataLines:e,hasMetadataLine:!1};const t=e[0]?.trim().match(/^sep=(.)/i)?.[1],r=t&&Bq.includes(t)?t:void 0;return{dataLines:e.slice(1),hasMetadataLine:!0,explicitDelimiter:r}}function $v(e){const t=[];let r="",n=!1;for(let o=0;o<e.length;o++){const s=e[o];if(s==='"'){if(n&&e[o+1]==='"'){r+='""',o++;continue}n=!n,r+=s}else!n&&(s===`
|
|
116
|
+
`)}})}},pq={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"},yvr=We(()=>Ve(p.union([p.strictObject({type:p.literal("text-start"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("text-delta"),id:p.string(),delta:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("text-end"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("error"),errorText:p.string()}),p.strictObject({type:p.literal("tool-input-start"),toolCallId:p.string(),toolName:p.string(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-input-delta"),toolCallId:p.string(),inputTextDelta:p.string()}),p.strictObject({type:p.literal("tool-input-available"),toolCallId:p.string(),toolName:p.string(),input:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-input-error"),toolCallId:p.string(),toolName:p.string(),input:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),errorText:p.string(),title:p.string().optional()}),p.strictObject({type:p.literal("tool-approval-request"),approvalId:p.string(),toolCallId:p.string()}),p.strictObject({type:p.literal("tool-output-available"),toolCallId:p.string(),output:p.unknown(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional(),preliminary:p.boolean().optional()}),p.strictObject({type:p.literal("tool-output-error"),toolCallId:p.string(),errorText:p.string(),providerExecuted:p.boolean().optional(),providerMetadata:wt.optional(),dynamic:p.boolean().optional()}),p.strictObject({type:p.literal("tool-output-denied"),toolCallId:p.string()}),p.strictObject({type:p.literal("reasoning-start"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("reasoning-delta"),id:p.string(),delta:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("reasoning-end"),id:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("source-url"),sourceId:p.string(),url:p.string(),title:p.string().optional(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("source-document"),sourceId:p.string(),mediaType:p.string(),title:p.string(),filename:p.string().optional(),providerMetadata:wt.optional()}),p.strictObject({type:p.literal("file"),url:p.string(),mediaType:p.string(),providerMetadata:wt.optional()}),p.strictObject({type:p.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:p.string().optional(),data:p.unknown(),transient:p.boolean().optional()}),p.strictObject({type:p.literal("start-step")}),p.strictObject({type:p.literal("finish-step")}),p.strictObject({type:p.literal("start"),messageId:p.string().optional(),messageMetadata:p.unknown().optional()}),p.strictObject({type:p.literal("finish"),finishReason:p.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:p.unknown().optional()}),p.strictObject({type:p.literal("abort"),reason:p.string().optional()}),p.strictObject({type:p.literal("message-metadata"),messageMetadata:p.unknown()})]))),Kxe=Ev({prefix:"aitxt",size:24}),Jxe=class{constructor({model:e,telemetry:t,headers:r,settings:n,maxRetries:o,abortSignal:s,stepTimeoutMs:i,stepAbortController:a,chunkTimeoutMs:l,chunkAbortController:c,system:u,prompt:d,messages:m,tools:h,toolChoice:g,transforms:y,activeTools:v,repairToolCall:_,stopConditions:b,output:T,providerOptions:k,prepareStep:A,includeRawChunks:I,now:P,generateId:R,timeout:x,stopWhen:O,originalAbortSignal:N,onChunk:M,onError:D,onFinish:L,onAbort:$,onStepFinish:U,onStart:j,onStepStart:B,onToolCallStart:z,onToolCallFinish:J,experimental_context:Y,download:ie,include:ce}){this._totalUsage=new gl,this._finishReason=new gl,this._rawFinishReason=new gl,this._steps=new gl,this.outputSpecification=T,this.includeRawChunks=I,this.tools=h;const G=QCe()(t?.integrations);let K,Ce=[];const be=[];let ge,H,se,ye={},Q=[];const me=[],$e=new Map;let Se,ne={},Fe={};const ae=new TransformStream({async transform(Ee,ke){var fe,F,te,Ie;ke.enqueue(Ee);const{part:ee}=Ee;if((ee.type==="text-delta"||ee.type==="reasoning-delta"||ee.type==="source"||ee.type==="tool-call"||ee.type==="tool-result"||ee.type==="tool-input-start"||ee.type==="tool-input-delta"||ee.type==="raw")&&await M?.({chunk:ee}),ee.type==="error"&&await D({error:M1(ee.error)}),ee.type==="text-start"&&(ne[ee.id]={type:"text",text:"",providerMetadata:ee.providerMetadata},Ce.push(ne[ee.id])),ee.type==="text-delta"){const ue=ne[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`text part ${ee.id} not found`},partialOutput:void 0});return}ue.text+=ee.text,ue.providerMetadata=(fe=ee.providerMetadata)!=null?fe:ue.providerMetadata}if(ee.type==="text-end"){const ue=ne[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`text part ${ee.id} not found`},partialOutput:void 0});return}ue.providerMetadata=(F=ee.providerMetadata)!=null?F:ue.providerMetadata,delete ne[ee.id]}if(ee.type==="reasoning-start"&&(Fe[ee.id]={type:"reasoning",text:"",providerMetadata:ee.providerMetadata},Ce.push(Fe[ee.id])),ee.type==="reasoning-delta"){const ue=Fe[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`reasoning part ${ee.id} not found`},partialOutput:void 0});return}ue.text+=ee.text,ue.providerMetadata=(te=ee.providerMetadata)!=null?te:ue.providerMetadata}if(ee.type==="reasoning-end"){const ue=Fe[ee.id];if(ue==null){ke.enqueue({part:{type:"error",error:`reasoning part ${ee.id} not found`},partialOutput:void 0});return}ue.providerMetadata=(Ie=ee.providerMetadata)!=null?Ie:ue.providerMetadata,delete Fe[ee.id]}if(ee.type==="file"&&Ce.push({type:"file",file:ee.file,...ee.providerMetadata!=null?{providerMetadata:ee.providerMetadata}:{}}),ee.type==="source"&&Ce.push(ee),ee.type==="tool-call"&&Ce.push(ee),ee.type==="tool-result"&&!ee.preliminary&&Ce.push(ee),ee.type==="tool-approval-request"&&Ce.push(ee),ee.type==="tool-error"&&Ce.push(ee),ee.type==="start-step"&&(Ce=[],Fe={},ne={},ye=ee.request,Q=ee.warnings),ee.type==="finish-step"){const ue=await Ej({content:Ce,tools:h}),Ae=new uq({stepNumber:me.length,model:W,...ve,experimental_context:Y,content:Ce,finishReason:ee.finishReason,rawFinishReason:ee.rawFinishReason,usage:ee.usage,warnings:Q,request:ye,response:{...ee.response,messages:[...be,...ue]},providerMetadata:ee.providerMetadata});await Vc({event:Ae,callbacks:[U,G.onStepFinish]}),Bu({warnings:Q,provider:W.provider,model:W.modelId}),me.push(Ae),be.push(...ue),K.resolve()}ee.type==="finish"&&(se=ee.totalUsage,ge=ee.finishReason,H=ee.rawFinishReason)},async flush(Ee){var ke,fe,F,te,Ie,ee,ue;try{if(me.length===0){const Be=s?.aborted?s.reason:new ac({message:"No output generated. Check the stream for errors."});C._finishReason.reject(Be),C._rawFinishReason.reject(Be),C._totalUsage.reject(Be),C._steps.reject(Be);return}const Ae=ge??"other",Pe=se??O1();C._finishReason.resolve(Ae),C._rawFinishReason.resolve(H),C._totalUsage.resolve(Pe),C._steps.resolve(me);const Ue=me[me.length-1];await Vc({event:{stepNumber:Ue.stepNumber,model:Ue.model,functionId:Ue.functionId,metadata:Ue.metadata,experimental_context:Ue.experimental_context,finishReason:Ue.finishReason,rawFinishReason:Ue.rawFinishReason,totalUsage:Pe,usage:Ue.usage,content:Ue.content,text:Ue.text,reasoningText:Ue.reasoningText,reasoning:Ue.reasoning,files:Ue.files,sources:Ue.sources,toolCalls:Ue.toolCalls,staticToolCalls:Ue.staticToolCalls,dynamicToolCalls:Ue.dynamicToolCalls,toolResults:Ue.toolResults,staticToolResults:Ue.staticToolResults,dynamicToolResults:Ue.dynamicToolResults,request:Ue.request,response:Ue.response,warnings:Ue.warnings,providerMetadata:Ue.providerMetadata,steps:me},callbacks:[L,G.onFinish]}),Se.setAttributes(await $r({telemetry:t,attributes:{"ai.response.finishReason":Ae,"ai.response.text":{output:()=>Ue.text},"ai.response.reasoning":{output:()=>Ue.reasoningText},"ai.response.toolCalls":{output:()=>{var Be;return(Be=Ue.toolCalls)!=null&&Be.length?JSON.stringify(Ue.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(Ue.providerMetadata),"ai.usage.inputTokens":Pe.inputTokens,"ai.usage.inputTokenDetails.noCacheTokens":(ke=Pe.inputTokenDetails)==null?void 0:ke.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":(fe=Pe.inputTokenDetails)==null?void 0:fe.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":(F=Pe.inputTokenDetails)==null?void 0:F.cacheWriteTokens,"ai.usage.outputTokens":Pe.outputTokens,"ai.usage.outputTokenDetails.textTokens":(te=Pe.outputTokenDetails)==null?void 0:te.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":(Ie=Pe.outputTokenDetails)==null?void 0:Ie.reasoningTokens,"ai.usage.totalTokens":Pe.totalTokens,"ai.usage.reasoningTokens":(ee=Pe.outputTokenDetails)==null?void 0:ee.reasoningTokens,"ai.usage.cachedInputTokens":(ue=Pe.inputTokenDetails)==null?void 0:ue.cacheReadTokens}}))}catch(Ae){Ee.error(Ae)}finally{Se.end()}}}),oe=yke();this.addStream=oe.addStream,this.closeStream=oe.close;const pe=oe.stream.getReader();let X=new ReadableStream({async start(Ee){Ee.enqueue({type:"start"})},async pull(Ee){function ke(){$?.({steps:me}),Ee.enqueue({type:"abort",...s?.reason!==void 0?{reason:Zh(s.reason)}:{}}),Ee.close()}try{const{done:fe,value:F}=await pe.read();if(fe){Ee.close();return}if(s?.aborted){ke();return}Ee.enqueue(F)}catch(fe){Xh(fe)&&s?.aborted?ke():Ee.error(fe)}},cancel(Ee){return oe.stream.cancel(Ee)}});for(const Ee of y)X=X.pipeThrough(Ee({tools:h,stopStream(){oe.terminate()}}));this.baseStream=X.pipeThrough(lvr(T??UT())).pipeThrough(ae);const{maxRetries:Z,retry:_e}=nf({maxRetries:o,abortSignal:s}),Re=kv(t),we=rf(n),Je=Cv({model:e,telemetry:t,headers:r,settings:{...we,maxRetries:Z}}),C=this,W={provider:e.provider,modelId:e.modelId},ve={functionId:t?.functionId,metadata:t?.metadata};ja({name:"ai.streamText",attributes:$r({telemetry:t,attributes:{...za({operationId:"ai.streamText",telemetry:t}),...Je,"ai.prompt":{input:()=>JSON.stringify({system:u,prompt:d,messages:m})}}}),tracer:Re,endWhenDone:!1,fn:async Ee=>{Se=Ee;const ke=await P1({system:u,prompt:d,messages:m});await Vc({event:{model:W,system:u,prompt:d,messages:m,tools:h,toolChoice:g,activeTools:v,maxOutputTokens:we.maxOutputTokens,temperature:we.temperature,topP:we.topP,topK:we.topK,presencePenalty:we.presencePenalty,frequencyPenalty:we.frequencyPenalty,stopSequences:we.stopSequences,seed:we.seed,maxRetries:Z,timeout:x,headers:r,providerOptions:k,stopWhen:O,output:T,abortSignal:N,include:ce,...ve,experimental_context:Y},callbacks:[j,G.onStart]});const fe=ke.messages,F=[],{approvedToolApprovals:te,deniedToolApprovals:Ie}=rke({messages:fe});if(Ie.length>0||te.length>0){const ue=[...te,...Ie].filter(Ge=>Ge.toolCall.providerExecuted),Ae=te.filter(Ge=>!Ge.toolCall.providerExecuted),Pe=Ie.filter(Ge=>!Ge.toolCall.providerExecuted),Ue=Ie.filter(Ge=>Ge.toolCall.providerExecuted);let Be;const mt=new ReadableStream({start(Ge){Be=Ge}});C.addStream(mt);try{for(const ft of[...Pe,...Ue])Be?.enqueue({type:"tool-output-denied",toolCallId:ft.toolCall.toolCallId,toolName:ft.toolCall.toolName});const Ge=[];if(await Promise.all(Ae.map(async ft=>{const Ot=await _j({toolCall:ft.toolCall,tools:h,tracer:Re,telemetry:t,messages:fe,abortSignal:s,experimental_context:Y,stepNumber:me.length,model:W,onToolCallStart:[z,G.onToolCallStart],onToolCallFinish:[J,G.onToolCallFinish],onPreliminaryToolResult:mn=>{Be?.enqueue(mn)}});Ot!=null&&(Be?.enqueue(Ot),Ge.push(Ot))})),ue.length>0&&F.push({role:"tool",content:ue.map(ft=>({type:"tool-approval-response",approvalId:ft.approvalResponse.approvalId,approved:ft.approvalResponse.approved,reason:ft.approvalResponse.reason,providerExecuted:!0}))}),Ge.length>0||Pe.length>0){const ft=[];for(const Ot of Ge)ft.push({type:"tool-result",toolCallId:Ot.toolCallId,toolName:Ot.toolName,output:await OT({toolCallId:Ot.toolCallId,input:Ot.input,tool:h?.[Ot.toolName],output:Ot.type==="tool-result"?Ot.output:Ot.error,errorMode:Ot.type==="tool-error"?"text":"none"})});for(const Ot of Pe)ft.push({type:"tool-result",toolCallId:Ot.toolCall.toolCallId,toolName:Ot.toolCall.toolName,output:{type:"execution-denied",reason:Ot.approvalResponse.reason}});F.push({role:"tool",content:ft})}}finally{Be?.close()}}be.push(...F);async function ee({currentStep:ue,responseMessages:Ae,usage:Pe}){var Ue,Be,mt,Ge,ft,Ot,mn,zo,Vt;const Da=C.includeRawChunks,Hp=i!=null?setTimeout(()=>a.abort(),i):void 0;let Sd;function LA(){l!=null&&(Sd!=null&&clearTimeout(Sd),Sd=setTimeout(()=>c.abort(),l))}function Ih(){Sd!=null&&(clearTimeout(Sd),Sd=void 0)}function Ny(){Hp!=null&&clearTimeout(Hp)}try{K=new gl;const Vp=[...fe,...Ae],is=await A?.({model:e,steps:me,stepNumber:me.length,messages:Vp,experimental_context:Y}),Lc=Sv((Ue=is?.model)!=null?Ue:e),Wp={provider:Lc.provider,modelId:Lc.modelId},Ly=await R1({prompt:{system:(Be=is?.system)!=null?Be:ke.system,messages:(mt=is?.messages)!=null?mt:Vp},supportedUrls:await Lc.supportedUrls,download:ie}),$A=(Ge=is?.activeTools)!=null?Ge:v,{toolChoice:Rh,tools:nb}=await ZCe({tools:h,toolChoice:(ft=is?.toolChoice)!=null?ft:g,activeTools:$A});Y=(Ot=is?.experimental_context)!=null?Ot:Y;const fF=(mn=is?.messages)!=null?mn:Vp,gF=(zo=is?.system)!=null?zo:ke.system,ob=N1(k,is?.providerOptions);await Vc({event:{stepNumber:me.length,model:Wp,system:gF,messages:fF,tools:h,toolChoice:Rh,activeTools:$A,steps:[...me],providerOptions:ob,timeout:x,headers:r,stopWhen:O,output:T,abortSignal:N,include:ce,...ve,experimental_context:Y},callbacks:[B,G.onStepStart]});const{result:{stream:ur,response:Ui,request:Ph},doStreamSpan:ul,startTimestampMs:sb}=await _e(()=>ja({name:"ai.streamText.doStream",attributes:$r({telemetry:t,attributes:{...za({operationId:"ai.streamText.doStream",telemetry:t}),...Je,"ai.model.provider":Lc.provider,"ai.model.id":Lc.modelId,"ai.prompt.messages":{input:()=>D1(Ly)},"ai.prompt.tools":{input:()=>nb?.map(Pt=>JSON.stringify(Pt))},"ai.prompt.toolChoice":{input:()=>Rh!=null?JSON.stringify(Rh):void 0},"gen_ai.system":Lc.provider,"gen_ai.request.model":Lc.modelId,"gen_ai.request.frequency_penalty":we.frequencyPenalty,"gen_ai.request.max_tokens":we.maxOutputTokens,"gen_ai.request.presence_penalty":we.presencePenalty,"gen_ai.request.stop_sequences":we.stopSequences,"gen_ai.request.temperature":we.temperature,"gen_ai.request.top_k":we.topK,"gen_ai.request.top_p":we.topP}}),tracer:Re,endWhenDone:!1,fn:async Pt=>({startTimestampMs:P(),doStreamSpan:Pt,result:await Lc.doStream({...we,tools:nb,toolChoice:Rh,responseFormat:await T?.responseFormat,prompt:Ly,providerOptions:ob,abortSignal:s,headers:r,includeRawChunks:Da})})})),FA=avr({tools:h,generatorStream:ur,tracer:Re,telemetry:t,system:u,messages:Vp,repairToolCall:_,abortSignal:s,experimental_context:Y,generateId:R,stepNumber:me.length,model:Wp,onToolCallStart:[z,G.onToolCallStart],onToolCallFinish:[J,G.onToolCallFinish]}),UA=(Vt=ce?.requestBody)==null||Vt?Ph??{}:{...Ph,body:void 0},Kp=[],Jp=[];let $y;const Yr={};let dl="other",ib,Is=O1(),Sce,Cce=!0,Ou={id:R(),timestamp:new Date,modelId:W.modelId},lcr="";C.addStream(FA.pipeThrough(new TransformStream({async transform(Pt,Zs){var ab,lb,cb,ub,db;if(LA(),Pt.type==="stream-start"){$y=Pt.warnings;return}if(Cce){const Rs=P()-sb;Cce=!1,ul.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":Rs}),ul.setAttributes({"ai.response.msToFirstChunk":Rs}),Zs.enqueue({type:"start-step",request:UA,warnings:$y??[]})}const pb=Pt.type;switch(pb){case"tool-approval-request":case"text-start":case"text-end":{Zs.enqueue(Pt);break}case"text-delta":{Pt.delta.length>0&&(Zs.enqueue({type:"text-delta",id:Pt.id,text:Pt.delta,providerMetadata:Pt.providerMetadata}),lcr+=Pt.delta);break}case"reasoning-start":case"reasoning-end":{Zs.enqueue(Pt);break}case"reasoning-delta":{Zs.enqueue({type:"reasoning-delta",id:Pt.id,text:Pt.delta,providerMetadata:Pt.providerMetadata});break}case"tool-call":{Zs.enqueue(Pt),Kp.push(Pt);break}case"tool-result":{Zs.enqueue(Pt),Pt.preliminary||Jp.push(Pt);break}case"tool-error":{Zs.enqueue(Pt),Jp.push(Pt);break}case"response-metadata":{Ou={id:(ab=Pt.id)!=null?ab:Ou.id,timestamp:(lb=Pt.timestamp)!=null?lb:Ou.timestamp,modelId:(cb=Pt.modelId)!=null?cb:Ou.modelId};break}case"finish":{Is=Pt.usage,dl=Pt.finishReason,ib=Pt.rawFinishReason,Sce=Pt.providerMetadata;const Rs=P()-sb;ul.addEvent("ai.stream.finish"),ul.setAttributes({"ai.response.msToFinish":Rs,"ai.response.avgOutputTokensPerSecond":1e3*((ub=Is.outputTokens)!=null?ub:0)/Rs});break}case"file":{Zs.enqueue(Pt);break}case"source":{Zs.enqueue(Pt);break}case"tool-input-start":{Yr[Pt.id]=Pt.toolName;const Rs=h?.[Pt.toolName];Rs?.onInputStart!=null&&await Rs.onInputStart({toolCallId:Pt.id,messages:Vp,abortSignal:s,experimental_context:Y}),Zs.enqueue({...Pt,dynamic:(db=Pt.dynamic)!=null?db:Rs?.type==="dynamic",title:Rs?.title});break}case"tool-input-end":{delete Yr[Pt.id],Zs.enqueue(Pt);break}case"tool-input-delta":{const Rs=Yr[Pt.id],Fy=h?.[Rs];Fy?.onInputDelta!=null&&await Fy.onInputDelta({inputTextDelta:Pt.delta,toolCallId:Pt.id,messages:Vp,abortSignal:s,experimental_context:Y}),Zs.enqueue(Pt);break}case"error":{Zs.enqueue(Pt),dl="error";break}case"raw":{Da&&Zs.enqueue(Pt);break}default:{const Rs=pb;throw new Error(`Unknown chunk type: ${Rs}`)}}},async flush(Pt){var Zs,ab,lb,cb,ub,db,pb;const Rs=Kp.length>0?JSON.stringify(Kp):void 0;try{ul.setAttributes(await $r({telemetry:t,attributes:{"ai.response.finishReason":dl,"ai.response.toolCalls":{output:()=>Rs},"ai.response.id":Ou.id,"ai.response.model":Ou.modelId,"ai.response.timestamp":Ou.timestamp.toISOString(),"ai.usage.inputTokens":Is.inputTokens,"ai.usage.inputTokenDetails.noCacheTokens":(Zs=Is.inputTokenDetails)==null?void 0:Zs.noCacheTokens,"ai.usage.inputTokenDetails.cacheReadTokens":(ab=Is.inputTokenDetails)==null?void 0:ab.cacheReadTokens,"ai.usage.inputTokenDetails.cacheWriteTokens":(lb=Is.inputTokenDetails)==null?void 0:lb.cacheWriteTokens,"ai.usage.outputTokens":Is.outputTokens,"ai.usage.outputTokenDetails.textTokens":(cb=Is.outputTokenDetails)==null?void 0:cb.textTokens,"ai.usage.outputTokenDetails.reasoningTokens":(ub=Is.outputTokenDetails)==null?void 0:ub.reasoningTokens,"ai.usage.totalTokens":Is.totalTokens,"ai.usage.reasoningTokens":(db=Is.outputTokenDetails)==null?void 0:db.reasoningTokens,"ai.usage.cachedInputTokens":(pb=Is.inputTokenDetails)==null?void 0:pb.cacheReadTokens,"gen_ai.response.finish_reasons":[dl],"gen_ai.response.id":Ou.id,"gen_ai.response.model":Ou.modelId,"gen_ai.usage.input_tokens":Is.inputTokens,"gen_ai.usage.output_tokens":Is.outputTokens}}))}catch{}Pt.enqueue({type:"finish-step",finishReason:dl,rawFinishReason:ib,usage:Is,providerMetadata:Sce,response:{...Ou,headers:Ui?.headers}});const Fy=eke(Pe,Is);await K.promise;const yF=me[me.length-1];try{ul.setAttributes(await $r({telemetry:t,attributes:{"ai.response.text":{output:()=>yF.text},"ai.response.reasoning":{output:()=>yF.reasoningText},"ai.response.providerMetadata":JSON.stringify(yF.providerMetadata)}}))}catch{}finally{ul.end()}const kce=Kp.filter(Ei=>Ei.providerExecuted!==!0),ccr=Jp.filter(Ei=>Ei.providerExecuted!==!0);for(const Ei of Kp){if(Ei.providerExecuted!==!0)continue;const vF=h?.[Ei.toolName];vF?.type==="provider"&&vF.supportsDeferredResults&&(Jp.some(_F=>(_F.type==="tool-result"||_F.type==="tool-error")&&_F.toolCallId===Ei.toolCallId)||$e.set(Ei.toolCallId,{toolName:Ei.toolName}))}for(const Ei of Jp)(Ei.type==="tool-result"||Ei.type==="tool-error")&&$e.delete(Ei.toolCallId);if(Ny(),Ih(),(kce.length>0&&ccr.length===kce.length||$e.size>0)&&!await ake({stopConditions:b,steps:me})){Ae.push(...await Ej({content:me[me.length-1].content,tools:h}));try{await ee({currentStep:ue+1,responseMessages:Ae,usage:Fy})}catch(Ei){Pt.enqueue({type:"error",error:Ei}),C.closeStream()}}else Pt.enqueue({type:"finish",finishReason:dl,rawFinishReason:ib,totalUsage:Fy}),C.closeStream()}})))}finally{Ny(),Ih()}}await ee({currentStep:0,responseMessages:F,usage:O1()})}}).catch(Ee=>{C.addStream(new ReadableStream({start(ke){ke.enqueue({type:"error",error:Ee}),ke.close()}})),C.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}get rawFinishReason(){return this.consumeStream(),this._rawFinishReason.promise}teeStream(){const[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){e.type==="text-delta"&&t.enqueue(e.text)}})))}get fullStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await ivr({stream:this.fullStream,onError:e?.onError})}catch(r){(t=e?.onError)==null||t.call(e,r)}}get experimental_partialOutputStream(){return this.partialOutputStream}get partialOutputStream(){return Ud(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){e!=null&&t.enqueue(e)}})))}get elementStream(){var e,t,r;const n=(e=this.outputSpecification)==null?void 0:e.createElementStreamTransform();if(n==null)throw new Zo({functionality:`element streams in ${(r=(t=this.outputSpecification)==null?void 0:t.name)!=null?r:"text"} mode`});return Ud(this.teeStream().pipeThrough(n))}get output(){return this.finalStep.then(e=>{var t;return((t=this.outputSpecification)!=null?t:UT()).parseCompleteOutput({text:e.text},{response:e.response,usage:e.usage,finishReason:e.finishReason})})}toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o=!0,sendSources:s=!1,sendStart:i=!0,sendFinish:a=!0,onError:l=Zh}={}){const c=t!=null?Qyr({originalMessages:e,responseMessageId:t}):void 0,u=m=>{var h;const g=(h=this.tools)==null?void 0:h[m.toolName];return g==null?m.dynamic:g?.type==="dynamic"?!0:void 0},d=this.fullStream.pipeThrough(new TransformStream({transform:async(m,h)=>{const g=n?.({part:m}),y=m.type;switch(y){case"text-start":{h.enqueue({type:"text-start",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"text-delta":{h.enqueue({type:"text-delta",id:m.id,delta:m.text,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"text-end":{h.enqueue({type:"text-end",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-start":{h.enqueue({type:"reasoning-start",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-delta":{o&&h.enqueue({type:"reasoning-delta",id:m.id,delta:m.text,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"reasoning-end":{h.enqueue({type:"reasoning-end",id:m.id,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"file":{h.enqueue({type:"file",mediaType:m.file.mediaType,url:`data:${m.file.mediaType};base64,${m.file.base64}`,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"source":{s&&m.sourceType==="url"&&h.enqueue({type:"source-url",sourceId:m.id,url:m.url,title:m.title,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}}),s&&m.sourceType==="document"&&h.enqueue({type:"source-document",sourceId:m.id,mediaType:m.mediaType,title:m.title,filename:m.filename,...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{}});break}case"tool-input-start":{const v=u(m);h.enqueue({type:"tool-input-start",toolCallId:m.id,toolName:m.toolName,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},...m.title!=null?{title:m.title}:{}});break}case"tool-input-delta":{h.enqueue({type:"tool-input-delta",toolCallId:m.id,inputTextDelta:m.delta});break}case"tool-call":{const v=u(m);m.invalid?h.enqueue({type:"tool-input-error",toolCallId:m.toolCallId,toolName:m.toolName,input:m.input,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},errorText:l(m.error),...m.title!=null?{title:m.title}:{}}):h.enqueue({type:"tool-input-available",toolCallId:m.toolCallId,toolName:m.toolName,input:m.input,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{},...m.title!=null?{title:m.title}:{}});break}case"tool-approval-request":{h.enqueue({type:"tool-approval-request",approvalId:m.approvalId,toolCallId:m.toolCall.toolCallId});break}case"tool-result":{const v=u(m);h.enqueue({type:"tool-output-available",toolCallId:m.toolCallId,output:m.output,...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...m.preliminary!=null?{preliminary:m.preliminary}:{},...v!=null?{dynamic:v}:{}});break}case"tool-error":{const v=u(m);h.enqueue({type:"tool-output-error",toolCallId:m.toolCallId,errorText:m.providerExecuted?typeof m.error=="string"?m.error:JSON.stringify(m.error):l(m.error),...m.providerExecuted!=null?{providerExecuted:m.providerExecuted}:{},...m.providerMetadata!=null?{providerMetadata:m.providerMetadata}:{},...v!=null?{dynamic:v}:{}});break}case"tool-output-denied":{h.enqueue({type:"tool-output-denied",toolCallId:m.toolCallId});break}case"error":{h.enqueue({type:"error",errorText:l(m.error)});break}case"start-step":{h.enqueue({type:"start-step"});break}case"finish-step":{h.enqueue({type:"finish-step"});break}case"start":{i&&h.enqueue({type:"start",...g!=null?{messageMetadata:g}:{},...c!=null?{messageId:c}:{}});break}case"finish":{a&&h.enqueue({type:"finish",finishReason:m.finishReason,...g!=null?{messageMetadata:g}:{}});break}case"abort":{h.enqueue(m);break}case"tool-input-end":break;case"raw":break;default:{const v=y;throw new Error(`Unknown chunk type: ${v}`)}}g!=null&&y!=="start"&&y!=="finish"&&h.enqueue({type:"message-metadata",messageMetadata:g})}}));return Ud(ovr({stream:d,messageId:c??t?.(),originalMessages:e,onFinish:r,onError:l}))}pipeUIMessageStreamToResponse(e,{originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:o,sendReasoning:s,sendSources:i,sendFinish:a,sendStart:l,onError:c,...u}={}){svr({response:e,stream:this.toUIMessageStream({originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:o,sendReasoning:s,sendSources:i,sendFinish:a,sendStart:l,onError:c}),...u})}pipeTextStreamToResponse(e,t){mke({response:e,textStream:this.textStream,...t})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o,sendSources:s,sendFinish:i,sendStart:a,onError:l,...c}={}){return Xyr({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:o,sendSources:s,sendFinish:i,sendStart:a,onError:l}),...c})}toTextStreamResponse(e){return dke({textStream:this.textStream,...e})}},vvr=We(()=>Ve(p.array(p.object({id:p.string(),role:p.enum(["system","user","assistant"]),metadata:p.unknown().optional(),parts:p.array(p.union([p.object({type:p.literal("text"),text:p.string(),state:p.enum(["streaming","done"]).optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("reasoning"),text:p.string(),state:p.enum(["streaming","done"]).optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("source-url"),sourceId:p.string(),url:p.string(),title:p.string().optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("source-document"),sourceId:p.string(),mediaType:p.string(),title:p.string(),filename:p.string().optional(),providerMetadata:wt.optional()}),p.object({type:p.literal("file"),mediaType:p.string(),filename:p.string().optional(),url:p.string(),providerMetadata:wt.optional()}),p.object({type:p.literal("step-start")}),p.object({type:p.string().startsWith("data-"),id:p.string().optional(),data:p.unknown()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("input-streaming"),input:p.unknown().optional(),providerExecuted:p.boolean().optional(),callProviderMetadata:wt.optional(),output:p.never().optional(),errorText:p.never().optional(),approval:p.never().optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("input-available"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.never().optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("approval-requested"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.never().optional(),reason:p.never().optional()})}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("approval-responded"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.boolean(),reason:p.string().optional()})}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-available"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.unknown(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),preliminary:p.boolean().optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-error"),input:p.unknown(),rawInput:p.unknown().optional(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.string(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.literal("dynamic-tool"),toolName:p.string(),toolCallId:p.string(),state:p.literal("output-denied"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!1),reason:p.string().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("input-streaming"),providerExecuted:p.boolean().optional(),callProviderMetadata:wt.optional(),input:p.unknown().optional(),output:p.never().optional(),errorText:p.never().optional(),approval:p.never().optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("input-available"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.never().optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("approval-requested"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.never().optional(),reason:p.never().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("approval-responded"),input:p.unknown(),providerExecuted:p.boolean().optional(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.boolean(),reason:p.string().optional()})}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-available"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.unknown(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),preliminary:p.boolean().optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-error"),providerExecuted:p.boolean().optional(),input:p.unknown(),rawInput:p.unknown().optional(),output:p.never().optional(),errorText:p.string(),callProviderMetadata:wt.optional(),resultProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!0),reason:p.string().optional()}).optional()}),p.object({type:p.string().startsWith("tool-"),toolCallId:p.string(),state:p.literal("output-denied"),providerExecuted:p.boolean().optional(),input:p.unknown(),output:p.never().optional(),errorText:p.never().optional(),callProviderMetadata:wt.optional(),approval:p.object({id:p.string(),approved:p.literal(!1),reason:p.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty"))),Yxe=class{constructor(e){this.value=e.value,this.embedding=e.embedding,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.response=e.response}},mq=class{constructor(e){this.values=e.values,this.embeddings=e.embeddings,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.responses=e.responses}},Zxe={type:"no-schema",jsonSchema:async()=>{},async validatePartialResult({value:e,textDelta:t}){return{success:!0,value:{partial:e,textDelta:t}}},async validateFinalResult(e,t){return e===void 0?{success:!1,error:new ki({message:"No object generated: response did not match schema.",text:t.text,response:t.response,usage:t.usage,finishReason:t.finishReason})}:{success:!0,value:e}},createElementStream(){throw new Zo({functionality:"element streams in no-schema mode"})}},Xxe=e=>({type:"object",jsonSchema:async()=>await e.jsonSchema,async validatePartialResult({value:t,textDelta:r}){return{success:!0,value:{partial:t,textDelta:r}}},async validateFinalResult(t){return Ba({value:t,schema:e})},createElementStream(){throw new Zo({functionality:"element streams in object mode"})}}),Qxe=e=>({type:"array",jsonSchema:async()=>{const{$schema:t,...r}=await e.jsonSchema;return{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:r}},required:["elements"],additionalProperties:!1}},async validatePartialResult({value:t,latestObject:r,isFirstDelta:n,isFinalDelta:o}){var s;if(!d1(t)||!Gge(t.elements))return{success:!1,error:new da({value:t,cause:"value must be an object that contains an array of elements"})};const i=t.elements,a=[];for(let u=0;u<i.length;u++){const d=i[u],m=await Ba({value:d,schema:e});if(!(u===i.length-1&&!o)){if(!m.success)return m;a.push(m.value)}}const l=(s=r?.length)!=null?s:0;let c="";return n&&(c+="["),l>0&&(c+=","),c+=a.slice(l).map(u=>JSON.stringify(u)).join(","),o&&(c+="]"),{success:!0,value:{partial:a,textDelta:c}}},async validateFinalResult(t){if(!d1(t)||!Gge(t.elements))return{success:!1,error:new da({value:t,cause:"value must be an object that contains an array of elements"})};const r=t.elements;for(const n of r){const o=await Ba({value:n,schema:e});if(!o.success)return o}return{success:!0,value:r}},createElementStream(t){let r=0;return Ud(t.pipeThrough(new TransformStream({transform(n,o){switch(n.type){case"object":{const s=n.object;for(;r<s.length;r++)o.enqueue(s[r]);break}case"text-delta":case"finish":case"error":break;default:{const s=n;throw new Error(`Unsupported chunk type: ${s}`)}}}})))}}),eAe=e=>({type:"enum",jsonSchema:async()=>({$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1}),async validateFinalResult(t){if(!d1(t)||typeof t.result!="string")return{success:!1,error:new da({value:t,cause:'value must be an object that contains a string in the "result" property.'})};const r=t.result;return e.includes(r)?{success:!0,value:r}:{success:!1,error:new da({value:t,cause:"value must be a string in the enum"})}},async validatePartialResult({value:t,textDelta:r}){if(!d1(t)||typeof t.result!="string")return{success:!1,error:new da({value:t,cause:'value must be an object that contains a string in the "result" property.'})};const n=t.result,o=e.filter(s=>s.startsWith(n));return t.result.length===0||o.length===0?{success:!1,error:new da({value:t,cause:"value must be a string in the enum"})}:{success:!0,value:{partial:o.length>1?n:o[0],textDelta:r}}},createElementStream(){throw new Zo({functionality:"element streams in enum mode"})}}),tAe=Ev({prefix:"aiobj",size:24}),rAe=class{constructor(e){this.object=e.object,this.finishReason=e.finishReason,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.response=e.response,this.request=e.request,this.reasoning=e.reasoning}toJsonResponse(e){var t;return new Response(JSON.stringify(this.object),{status:(t=e?.status)!=null?t:200,headers:$T(e?.headers,{"content-type":"application/json; charset=utf-8"})})}},nAe=Ev({prefix:"aiobj",size:24}),oAe=class{constructor({model:e,headers:t,telemetry:r,settings:n,maxRetries:o,abortSignal:s,outputStrategy:i,system:a,prompt:l,messages:c,schemaName:u,schemaDescription:d,providerOptions:m,repairText:h,onError:g,onFinish:y,download:v,generateId:_,currentDate:b,now:T}){this._object=new gl,this._usage=new gl,this._providerMetadata=new gl,this._warnings=new gl,this._request=new gl,this._response=new gl,this._finishReason=new gl;const k=Sv(e),{maxRetries:A,retry:I}=nf({maxRetries:o,abortSignal:s}),P=rf(n),R=Cv({model:k,telemetry:r,headers:t,settings:{...P,maxRetries:A}}),x=kv(r),O=this,N=yke(),M=new TransformStream({transform(D,L){L.enqueue(D),D.type==="error"&&g({error:M1(D.error)})}});this.baseStream=N.stream.pipeThrough(M),ja({name:"ai.streamObject",attributes:$r({telemetry:r,attributes:{...za({operationId:"ai.streamObject",telemetry:r}),...R,"ai.prompt":{input:()=>JSON.stringify({system:a,prompt:l,messages:c})},"ai.schema":{input:async()=>JSON.stringify(await i.jsonSchema())},"ai.schema.name":u,"ai.schema.description":d,"ai.settings.output":i.type}}),tracer:x,endWhenDone:!1,fn:async D=>{const L=await P1({system:a,prompt:l,messages:c}),$={responseFormat:{type:"json",schema:await i.jsonSchema(),name:u,description:d},...rf(n),prompt:await R1({prompt:L,supportedUrls:await k.supportedUrls,download:v}),providerOptions:m,abortSignal:s,headers:t,includeRawChunks:!1},U={transform:(Se,ne)=>{switch(Se.type){case"text-delta":ne.enqueue(Se.delta);break;case"response-metadata":case"finish":case"error":case"stream-start":ne.enqueue(Se);break}}},{result:{stream:j,response:B,request:z},doStreamSpan:J,startTimestampMs:Y}=await I(()=>ja({name:"ai.streamObject.doStream",attributes:$r({telemetry:r,attributes:{...za({operationId:"ai.streamObject.doStream",telemetry:r}),...R,"ai.prompt.messages":{input:()=>D1($.prompt)},"gen_ai.system":k.provider,"gen_ai.request.model":k.modelId,"gen_ai.request.frequency_penalty":P.frequencyPenalty,"gen_ai.request.max_tokens":P.maxOutputTokens,"gen_ai.request.presence_penalty":P.presencePenalty,"gen_ai.request.temperature":P.temperature,"gen_ai.request.top_k":P.topK,"gen_ai.request.top_p":P.topP}}),tracer:x,endWhenDone:!1,fn:async Se=>({startTimestampMs:T(),doStreamSpan:Se,result:await k.doStream($)})}));O._request.resolve(z??{});let ie,ce=O1(),re,G,K,Ce,be="",ge="",H={id:_(),timestamp:b(),modelId:k.modelId},se,ye,Q=!0,me=!0;const $e=j.pipeThrough(new TransformStream(U)).pipeThrough(new TransformStream({async transform(Se,ne){var Fe,ae,oe;if(typeof Se=="object"&&Se.type==="stream-start"){ie=Se.warnings;return}if(Q){const pe=T()-Y;Q=!1,J.addEvent("ai.stream.firstChunk",{"ai.stream.msToFirstChunk":pe}),J.setAttributes({"ai.stream.msToFirstChunk":pe})}if(typeof Se=="string"){be+=Se,ge+=Se;const{value:pe,state:X}=await Av(be);if(pe!==void 0&&!L1(se,pe)){const Z=await i.validatePartialResult({value:pe,textDelta:ge,latestObject:ye,isFirstDelta:me,isFinalDelta:X==="successful-parse"});Z.success&&!L1(ye,Z.value.partial)&&(se=pe,ye=Z.value.partial,ne.enqueue({type:"object",object:ye}),ne.enqueue({type:"text-delta",textDelta:Z.value.textDelta}),ge="",me=!1)}return}switch(Se.type){case"response-metadata":{H={id:(Fe=Se.id)!=null?Fe:H.id,timestamp:(ae=Se.timestamp)!=null?ae:H.timestamp,modelId:(oe=Se.modelId)!=null?oe:H.modelId};break}case"finish":{ge!==""&&ne.enqueue({type:"text-delta",textDelta:ge}),re=Se.finishReason.unified,ce=xv(Se.usage),G=Se.providerMetadata,ne.enqueue({...Se,finishReason:Se.finishReason.unified,usage:ce,response:H}),Bu({warnings:ie??[],provider:k.provider,model:k.modelId}),O._usage.resolve(ce),O._providerMetadata.resolve(G),O._warnings.resolve(ie),O._response.resolve({...H,headers:B?.headers}),O._finishReason.resolve(re??"other");try{K=await Tke(be,i,h,{response:H,usage:ce,finishReason:re}),O._object.resolve(K)}catch(pe){Ce=pe,O._object.reject(pe)}break}default:{ne.enqueue(Se);break}}},async flush(Se){try{const ne=ce??{promptTokens:NaN,completionTokens:NaN,totalTokens:NaN};J.setAttributes(await $r({telemetry:r,attributes:{"ai.response.finishReason":re,"ai.response.object":{output:()=>JSON.stringify(K)},"ai.response.id":H.id,"ai.response.model":H.modelId,"ai.response.timestamp":H.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(G),"ai.usage.inputTokens":ne.inputTokens,"ai.usage.outputTokens":ne.outputTokens,"ai.usage.totalTokens":ne.totalTokens,"ai.usage.reasoningTokens":ne.reasoningTokens,"ai.usage.cachedInputTokens":ne.cachedInputTokens,"gen_ai.response.finish_reasons":[re],"gen_ai.response.id":H.id,"gen_ai.response.model":H.modelId,"gen_ai.usage.input_tokens":ne.inputTokens,"gen_ai.usage.output_tokens":ne.outputTokens}})),J.end(),D.setAttributes(await $r({telemetry:r,attributes:{"ai.usage.inputTokens":ne.inputTokens,"ai.usage.outputTokens":ne.outputTokens,"ai.usage.totalTokens":ne.totalTokens,"ai.usage.reasoningTokens":ne.reasoningTokens,"ai.usage.cachedInputTokens":ne.cachedInputTokens,"ai.response.object":{output:()=>JSON.stringify(K)},"ai.response.providerMetadata":JSON.stringify(G)}})),await y?.({usage:ne,object:K,error:Ce,response:{...H,headers:B?.headers},warnings:ie,providerMetadata:G})}catch(ne){Se.enqueue({type:"error",error:ne})}finally{D.end()}}}));N.addStream($e)}}).catch(D=>{N.addStream(new ReadableStream({start(L){L.enqueue({type:"error",error:D}),L.close()}}))}).finally(()=>{N.close()}),this.outputStrategy=i}get object(){return this._object.promise}get usage(){return this._usage.promise}get providerMetadata(){return this._providerMetadata.promise}get warnings(){return this._warnings.promise}get request(){return this._request.promise}get response(){return this._response.promise}get finishReason(){return this._finishReason.promise}get partialObjectStream(){return Ud(this.baseStream.pipeThrough(new TransformStream({transform(e,t){switch(e.type){case"object":t.enqueue(e.object);break;case"text-delta":case"finish":case"error":break;default:{const r=e;throw new Error(`Unsupported chunk type: ${r}`)}}}})))}get elementStream(){return this.outputStrategy.createElementStream(this.baseStream)}get textStream(){return Ud(this.baseStream.pipeThrough(new TransformStream({transform(e,t){switch(e.type){case"text-delta":t.enqueue(e.textDelta);break;case"object":case"finish":case"error":break;default:{const r=e;throw new Error(`Unsupported chunk type: ${r}`)}}}})))}get fullStream(){return Ud(this.baseStream)}pipeTextStreamToResponse(e,t){mke({response:e,textStream:this.textStream,...t})}toTextStreamResponse(e){return dke({textStream:this.textStream,...e})}},_vr=Cke(),hq=({model:e,middleware:t,modelId:r,providerId:n})=>[...gm(t)].reverse().reduce((o,s)=>sAe({model:o,middleware:s,modelId:r,providerId:n}),e),sAe=({model:e,middleware:{transformParams:t,wrapGenerate:r,wrapStream:n,overrideProvider:o,overrideModelId:s,overrideSupportedUrls:i},modelId:a,providerId:l})=>{var c,u,d;async function m({params:h,type:g}){return t?await t({params:h,type:g,model:e}):h}return{specificationVersion:"v3",provider:(c=l??o?.({model:e}))!=null?c:e.provider,modelId:(u=a??s?.({model:e}))!=null?u:e.modelId,supportedUrls:(d=i?.({model:e}))!=null?d:e.supportedUrls,async doGenerate(h){const g=await m({params:h,type:"generate"}),y=async()=>e.doGenerate(g);return r?r({doGenerate:y,doStream:async()=>e.doStream(g),params:g,model:e}):y()},async doStream(h){const g=await m({params:h,type:"stream"}),y=async()=>e.doGenerate(g),v=async()=>e.doStream(g);return n?n({doGenerate:y,doStream:v,params:g,model:e}):v()}}},iAe="AI_NoSuchProviderError",aAe=`vercel.ai.error.${iAe}`,lAe=Symbol.for(aAe),wvr=lAe,cAe=Cke(),uAe=class{constructor(e){var t;this.text=e.text,this.segments=e.segments,this.language=e.language,this.durationInSeconds=e.durationInSeconds,this.warnings=e.warnings,this.responses=e.responses,this.providerMetadata=(t=e.providerMetadata)!=null?t:{}}}}}),dAe={};he(dAe,{APICallError:()=>Gr,InvalidToolInputError:()=>Iv,NoObjectGeneratedError:()=>ki,NoOutputGeneratedError:()=>ac,NoSuchToolError:()=>Rv});var Bd=S({"src/lib/utils/generationErrors.ts"(){"use strict";fq(),Rt()}});function gq(e,t){if("get"in e&&typeof e.get=="function")return e.get(t);const r=t.toLowerCase();for(const[n,o]of Object.entries(e))if(n.toLowerCase()===r)return o;return null}function BT(e){const t=gq(e,"Retry-After");if(t){const n=parseInt(t,10);if(!Number.isNaN(n))return Math.max(0,n*1e3);const o=new Date(t);if(!Number.isNaN(o.getTime()))return Math.max(0,o.getTime()-Date.now())}const r=gq(e,"X-RateLimit-Reset");if(r){const n=parseInt(r,10);if(!Number.isNaN(n)){const o=n>1e12?n:n*1e3;return Math.max(0,o-Date.now())}}if(gq(e,"X-RateLimit-Remaining")==="0")return 1e3}var yq=S({"src/lib/utils/retryAfter.ts"(){"use strict"}});function zT(e){if(!e||typeof e!="object")return;const t=e;if(typeof t.statusCode=="number")return t.statusCode;if(typeof t.status=="number")return t.status;const r=t.$metadata;if(typeof r=="object"&&r!==null){const n=r.httpStatusCode;if(typeof n=="number")return n}}function pAe(e){if(!e||typeof e!="object")return;const t=e;if(typeof t.retryAfterMs=="number"&&Number.isFinite(t.retryAfterMs))return t.retryAfterMs;for(const r of[t.headers,t.responseHeaders])if(r&&typeof r=="object"){const n=BT(r);if(n!==void 0)return n}}function mAe(e){if(typeof e!="object"||e===null)return!1;const t=e;if(t.type==="insufficient_quota")return!0;if(typeof t.responseBody=="string")try{return JSON.parse(t.responseBody)?.error?.type==="insufficient_quota"}catch{return!1}return!1}function bvr(e){if(mAe(e))return!1;if(Gr.isInstance(e))return e.isRetryable;if(e instanceof Ne)return e.retriable;const t=zT(e);return t!==void 0?t===429||t>=500:!1}function hAe(e){return Gr.isInstance(e)?e.statusCode:zT(e)}function Tvr(e){if(Gr.isInstance(e)&&e.responseHeaders){const t=BT(e.responseHeaders);if(t!==void 0)return t}return e instanceof Ne&&e.retryAfterMs!==void 0&&Number.isFinite(e.retryAfterMs)?e.retryAfterMs:pAe(e)}async function Mv(e,t,r,n=yAe){for(let o=0;o<=U1;o++)try{const s=await e();return t?.setAttribute("gen_ai.provider.total_attempts",o+1),o>0&&f.info(`[providerRetry] ${r} succeeded after ${o+1} attempts`),s}catch(s){const i=bvr(s),a=hAe(s),l=s instanceof Error?s.message:String(s);if(!i||o===U1)throw t?.setAttribute("gen_ai.provider.total_attempts",o+1),o>0&&t?.setAttribute("gen_ai.provider.retries_exhausted",!0),f.warn(`[providerRetry] ${r} failed (non-retryable or retries exhausted)`,{attempt:o+1,retryable:i,statusCode:a,error:l}),s;const c=Tvr(s);if(c!==void 0&&c>vq){t?.setAttribute("gen_ai.provider.total_attempts",o+1),t?.addEvent("gen_ai.provider.retry_suppressed",{"retry.after_ms":c,...a!==void 0&&{"retry.status_code":a}});try{Object.assign(s,{isRetryable:!1,retryAfterMs:c})}catch{}throw f.warn(`[providerRetry] ${r} not retrying \u2014 server requested a ${Math.round(c/1e3)}s wait (cap ${vq/1e3}s); surfacing for fallback`,{attempt:o+1,retryAfterMs:c,statusCode:a}),s}const u=(c===void 0?void 0:Math.max(0,c))??Math.max(fAe*Math.pow(2,o),gAe);t?.addEvent("gen_ai.provider.retry",{"retry.attempt":o+1,"retry.delay_ms":u,...a!==void 0&&{"retry.status_code":a},"retry.error":l.slice(0,256)}),f.warn(`[providerRetry] ${r} retrying after ${a||"unknown"} error`,{attempt:o+1,maxRetries:U1,delayMs:u,statusCode:a,error:l}),await n(u)}throw new Error(`[providerRetry] ${r} exhausted all retries`)}var U1,fAe,gAe,vq,yAe,ym=S({"src/lib/utils/providerRetry.ts"(){"use strict";er(),ct(),q(),Bd(),yq(),U1=2,fAe=1e3,gAe=1e4,vq=6e4,yAe=e=>new Promise(t=>setTimeout(t,e))}}),_q,vAe=S({"src/lib/constants/networkErrorCodes.ts"(){"use strict";_q=new Set(["ECONNRESET","ETIMEDOUT","ECONNREFUSED","EPIPE","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT"])}}),jT={};he(jT,{AsyncLocalStorage:()=>LAe,Buffer:()=>ARe,Channel:()=>yRe,DatabaseSync:()=>xRe,Duplex:()=>FAe,EventEmitter:()=>NAe,Http2ServerRequest:()=>DRe,Http2ServerResponse:()=>ORe,Interface:()=>kRe,MIMEType:()=>BRe,PassThrough:()=>UAe,PerformanceObserver:()=>hRe,Readable:()=>bq,ReadableStream:()=>BAe,Resolver:()=>pRe,TextDecoder:()=>Sq,TextEncoder:()=>GT,Transform:()=>$Ae,URL:()=>QIe,URLSearchParams:()=>eRe,Worker:()=>bRe,Writable:()=>Tq,access:()=>hIe,appendFile:()=>WAe,appendFileSync:()=>TAe,arch:()=>MIe,arrayBuffer:()=>NRe,basename:()=>AAe,builtinModules:()=>JIe,callbackify:()=>aRe,channel:()=>gRe,chmodSync:()=>VAe,clearInterval:()=>URe,clearTimeout:()=>$Re,closeSync:()=>ZAe,connect:()=>LIe,constants:()=>IRe,copyFileSync:()=>JAe,cpSync:()=>EAe,cpus:()=>AIe,createConnection:()=>$Ie,createGunzip:()=>GIe,createGzip:()=>HIe,createHash:()=>Kc,createHmac:()=>wq,createInterface:()=>CRe,createReadStream:()=>aIe,createRequire:()=>KIe,createServer:()=>SAe,createWriteStream:()=>iIe,debug:()=>sRe,debuglog:()=>Eq,default:()=>_Ae,deflateSync:()=>UIe,deprecate:()=>iRe,deserialize:()=>wRe,dirname:()=>xAe,exec:()=>wIe,execFile:()=>TIe,execFileSync:()=>EIe,execSync:()=>bIe,existsSync:()=>qAe,extname:()=>IAe,fileURLToPath:()=>tRe,finished:()=>jAe,format:()=>XIe,freemem:()=>IIe,fstatSync:()=>XAe,get:()=>NIe,gunzip:()=>qIe,gunzipSync:()=>BIe,gzip:()=>jIe,gzipSync:()=>zIe,hasSubscribers:()=>vRe,homedir:()=>CIe,hostname:()=>xIe,inflateSync:()=>FIe,inherits:()=>nRe,inspect:()=>qT,isAbsolute:()=>PAe,isBuiltin:()=>YIe,isDeepStrictEqual:()=>lRe,isIP:()=>MRe,isIPv4:()=>PRe,isIPv6:()=>RRe,isMainThread:()=>TRe,join:()=>CAe,lookup:()=>dRe,mkdir:()=>uIe,mkdirSync:()=>QAe,monitorEventLoopDelay:()=>fRe,normalize:()=>OAe,ok:()=>VIe,open:()=>yIe,openSync:()=>YAe,parentPort:()=>ERe,parse:()=>ZIe,pathToFileURL:()=>rRe,performance:()=>mRe,pipeline:()=>zAe,platform:()=>SIe,posix:()=>DAe,promises:()=>wAe,promisify:()=>oRe,randomBytes:()=>af,randomUUID:()=>st,readFile:()=>lIe,readFileSync:()=>GAe,readdir:()=>pIe,readdirSync:()=>tIe,realpath:()=>vIe,realpathSync:()=>KAe,relative:()=>RAe,release:()=>DIe,rename:()=>fIe,renameSync:()=>nIe,request:()=>OIe,resolve:()=>kAe,rm:()=>gIe,rmSync:()=>sIe,rmdirSync:()=>oIe,sep:()=>MAe,serialize:()=>_Re,setInterval:()=>FRe,setTimeout:()=>LRe,spawn:()=>_Ie,stat:()=>dIe,statSync:()=>eIe,strict:()=>WIe,tmpdir:()=>kIe,toUSVString:()=>cRe,totalmem:()=>RIe,type:()=>PIe,types:()=>uRe,unlink:()=>mIe,unlinkSync:()=>rIe,webcrypto:()=>bAe,workerData:()=>SRe,writeFile:()=>cIe,writeFileSync:()=>HAe});var ho,In,_Ae,wAe,Kc,wq,af,st,bAe,TAe,EAe,SAe,CAe,kAe,xAe,AAe,IAe,RAe,PAe,MAe,DAe,OAe,NAe,LAe,bq,Tq,$Ae,FAe,UAe,BAe,zAe,jAe,qAe,GAe,HAe,VAe,WAe,KAe,JAe,YAe,ZAe,XAe,QAe,eIe,tIe,rIe,nIe,oIe,sIe,iIe,aIe,lIe,cIe,uIe,dIe,pIe,mIe,hIe,fIe,gIe,yIe,vIe,_Ie,wIe,bIe,TIe,EIe,SIe,CIe,kIe,xIe,AIe,IIe,RIe,PIe,MIe,DIe,OIe,NIe,LIe,$Ie,FIe,UIe,BIe,zIe,jIe,qIe,GIe,HIe,VIe,WIe,KIe,JIe,YIe,ZIe,XIe,QIe,eRe,tRe,rRe,nRe,oRe,Eq,sRe,qT,iRe,aRe,lRe,cRe,uRe,Sq,GT,dRe,pRe,mRe,hRe,fRe,gRe,yRe,vRe,_Re,wRe,bRe,TRe,ERe,SRe,CRe,kRe,xRe,ARe,IRe,RRe,PRe,MRe,DRe,ORe,NRe,Cq,LRe,$Re,FRe,URe,BRe,Ft=S({"node-stub:crypto"(){ho=()=>{},In=async()=>{},_Ae={},wAe={readFile:In,writeFile:In,mkdir:In,stat:In,readdir:In,unlink:In,access:In,rm:In,rename:In},Kc=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new GT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},wq=(e,t)=>Kc(e),af=e=>new Uint8Array(e||32),st=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),bAe=globalThis.crypto,TAe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},EAe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},SAe=()=>({listen:ho,close:ho,on:ho}),CAe=(...e)=>e.join("/"),kAe=(...e)=>e.join("/"),xAe=e=>e||"",AAe=e=>e?.split?.("/")?.pop?.()||"",IAe=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},RAe=(e,t)=>t||"",PAe=()=>!1,MAe="/",DAe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},OAe=e=>e,NAe=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},LAe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},bq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Tq=class{write(){return!0}end(){}on(){return this}destroy(){}},$Ae=class{push(){}on(){return this}},FAe=class{on(){return this}},UAe=class{pipe(){return this}on(){return this}},BAe=globalThis.ReadableStream||class{},zAe=ho,jAe=ho,qAe=()=>!1,GAe=()=>"",HAe=ho,VAe=ho,WAe=In,KAe=e=>e,JAe=ho,YAe=()=>0,ZAe=ho,XAe=()=>({}),QAe=ho,eIe=()=>({}),tIe=()=>[],rIe=ho,nIe=ho,oIe=ho,sIe=ho,iIe=()=>new Tq,aIe=()=>new bq,lIe=In,cIe=In,uIe=In,dIe=In,pIe=In,mIe=In,hIe=In,fIe=In,gIe=In,yIe=async()=>({stat:In,readFile:In,close:In,read:In,write:In}),vIe=async e=>e,_Ie=()=>({on:ho,stdout:{on:ho},stderr:{on:ho},kill:ho}),wIe=(e,t)=>t?.(null,"",""),bIe=()=>"",TIe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},EIe=()=>"",SIe="browser",CIe=()=>"/",kIe=()=>"/tmp",xIe=()=>"browser",AIe=()=>[{}],IIe=()=>0,RIe=()=>0,PIe=()=>"Browser",MIe=()=>"wasm",DIe=()=>"0",OIe=()=>({}),NIe=()=>({}),LIe=()=>({}),$Ie=()=>({}),FIe=()=>new Uint8Array,UIe=()=>new Uint8Array,BIe=()=>new Uint8Array,zIe=()=>new Uint8Array,jIe=(e,t)=>t?.(null,e),qIe=(e,t)=>t?.(null,e),GIe=()=>({}),HIe=()=>({}),VIe=ho,WIe={},KIe=()=>()=>({}),JIe=[],YIe=()=>!1,ZIe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),XIe=()=>"",QIe=globalThis.URL,eRe=globalThis.URLSearchParams,tRe=e=>typeof e=="string"?e.replace("file://",""):e,rRe=e=>new globalThis.URL("file://"+e),nRe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},oRe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Eq=e=>{const t=(...r)=>{};return t.enabled=!1,t},sRe=Eq,qT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},qT.custom=Symbol.for("nodejs.util.inspect.custom"),qT.colors={},qT.styles={},iRe=e=>e,aRe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},lRe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),cRe=e=>String(e),uRe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Sq=globalThis.TextDecoder,GT=globalThis.TextEncoder,dRe=(e,t)=>t?.(null,"127.0.0.1",4),pRe=class{},mRe=globalThis.performance||{now:()=>Date.now()},hRe=class{observe(){}disconnect(){}},fRe=()=>({enable:ho,disable:ho,percentile:()=>0}),gRe=()=>({}),yRe=class{},vRe=()=>!1,_Re=()=>new Uint8Array,wRe=ho,bRe=class{},TRe=!0,ERe=null,SRe=null,CRe=()=>({}),kRe=class{},xRe=class{},ARe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new GT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new GT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Sq().decode(this)}},IRe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},RRe=()=>!1,PRe=()=>!1,MRe=()=>0,DRe=class{},ORe=class{},NRe=async()=>new ArrayBuffer(0),Cq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),LRe=(...e)=>Cq(globalThis.setTimeout(...e)),$Re=globalThis.clearTimeout,FRe=(...e)=>Cq(globalThis.setInterval(...e)),URe=globalThis.clearInterval,BRe=class{constructor(e){this.type=e}toString(){return this.type}}}});function fo(e,t=500){return e&&e.slice(0,t).replace(HRe,"***")}function Dv(e){if(typeof e=="string")return e;try{return JSON.stringify(e)??String(e)}catch{return"[content too large to serialize]"}}function B1(e,t=1e4){try{const r=JSON.stringify(e);return r===void 0?String(e):r.length>t?`${r.slice(0,t)}\u2026[truncated ${r.length-t} chars]`:r}catch(r){return`[unserializable: ${r instanceof Error?r.message:String(r)}]`}}function Xn(e){return e.replace(/\/\/[^/\s"'<>]*@/g,"//***@").replace(/\/\/(?:(?!\/\/)[^\s"'<>])*@/g,"//***@")}function un(e){const t=r=>r.length>200?`${r.slice(0,200)}\u2026`:r;try{const r=new URL(e);return t(`${r.protocol}//${r.host}${r.pathname}`)}catch{const r=e.split(/[?#]/)[0];return t(Xn(r))}}function Evr(e){KRe.forEach(t=>e.searchParams.delete(t))}function Svr(e){const t=[],r=[];for(const[o,s]of e.searchParams.entries())WRe.includes(o.toLowerCase())&&(t.push(`${o.toLowerCase()}=${s}`),r.push(o));return t.length===0?"":(r.forEach(o=>e.searchParams.delete(o)),t.sort(),`\0auth=${Kc("sha256").update(t.join("&")).digest("hex").slice(0,16)}`)}function zRe(e){try{const t=new URL(e);Evr(t);const r=Svr(t);return t.toString()+r}catch{return e}}function z1(e){return e.replace(/[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s"'<>)]+/g,t=>un(t))}function jRe(e,t){const r=Vi(t);return e.split(Ld(t)).join(r).split(t).join(r)}function vm(e,t){const r=s=>{const i=z1(s);return t?.filePath?jRe(i,t.filePath):i};if(!(e instanceof Error))return new Error(r(String(e)));const n=new Error(r(e.message));n.name=e.name;const o=e.code;return o!==void 0&&(n.code=o),n}function j1(e,t=1e3){const r=new WeakSet,n=o=>{if(o==null)return o;if(typeof o=="string")return fo(o,t);if(typeof o!="object")return o;if(r.has(o))return"[Circular]";if(r.add(o),Array.isArray(o))return o.map(n);const s={};for(const[i,a]of Object.entries(o))VRe.some(l=>l.toLowerCase()===i.toLowerCase())?s[i]="***":s[i]=n(a);return s};return n(e)}var qRe,GRe,HRe,VRe,WRe,KRe,_r=S({"src/lib/utils/logSanitize.ts"(){"use strict";Ft(),Lr(),qRe=["sk","pk","r8","gsk","csk","xai","tgp","fw","pplx","pa","jina","fish"],GRe=qRe.join("|"),HRe=new RegExp(`\\bBearer\\s+[A-Za-z0-9_\\-\\.]{8,}\\b|\\bToken\\s+[A-Za-z0-9_\\-\\.]{8,}\\b|\\bBasic\\s+[A-Za-z0-9+/=]{12,}\\b|\\b(?:${GRe})[_\\-][A-Za-z0-9_\\-\\.]{8,}\\b|\\b(?:api[_-]?key|access[_-]?token|secret[_-]?key|refresh[_-]?token)\\s*[:=]\\s*['"]?[^\\s,;'"&]+`,"gi"),VRe=["apikey","api_key","apiKey","access_token","accessToken","refresh_token","refreshToken","secret","secretkey","secret_key","secretKey","password","authorization","oauth","oauthToken","credentials","authContext","authToken","sessionToken","serviceAccountKey","secretAccessKey","userEmail"],WRe=["token","signature","x-amz-signature","x-amz-credential","x-amz-security-token","awsaccesskeyid","expires","sig","se","sp","sr","sv","x-goog-signature","x-goog-credential","x-goog-algorithm","x-goog-date","x-goog-expires","x-goog-signedheaders"],KRe=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","fbclid","gclid","_ga"]}});function Cvr(e){const t=[],r=new Set;let n=e;for(;n&&typeof n=="object"&&!r.has(n)&&t.length<YRe;){r.add(n);const o=n;t.push(o),n=o.cause}return t}function JRe(e,t){for(const r of e)if(typeof r[t]=="string")return r[t]}function kvr(e,t,r){const n=Cvr(e),o=n[0],s=typeof o?.message=="string"?o.message:e instanceof Error?e.message:"Unknown error",i=n[n.length-1],a=typeof i?.message=="string"?z1(i.message):void 0,l=a&&a!==s?`${s}: ${a}`:s;let c;for(const u of n)if(c=zT(u),c!==void 0)break;return{error:e,message:l,statusCode:c,errorName:JRe(n,"name"),errorCode:JRe(n,"code"),provider:t,modelName:r}}function Ki(e,t,r,n){if(e instanceof Od)return new jo(`Request timed out: ${e.message}`,r);const o=kvr(e,r,n),s=t.find(a=>a.match(o));if(!s)return new _t(`${r} error: ${o.message}`,r);const i=typeof s.message=="function"?s.message(o):s.message;return new s.errorClass(i,r)}var YRe,Qo,xi=S({"src/lib/utils/errorClassifier.ts"(){"use strict";yt(),Ua(),ym(),vAe(),_r(),YRe=5,Qo=[{match:e=>e.statusCode===401||/API_KEY_INVALID|Invalid API key|Unauthorized|invalid_api_key/i.test(e.message),errorClass:sr,message:e=>`Invalid ${e.provider} API key. Please check your credentials.`},{match:e=>e.statusCode===429||/rate limit/i.test(e.message),errorClass:Xs,message:e=>`${e.provider} rate limit exceeded. Please try again later.`},{match:e=>e.statusCode===404||/model_not_found|model not found/i.test(e.message),errorClass:co,message:e=>e.modelName?`${e.provider} model '${e.modelName}' not found.`:`${e.provider} model not found.`},{match:e=>/ECONNRESET|ENOTFOUND|ECONNREFUSED|ETIMEDOUT|network|connection/i.test(e.message)||e.errorCode!==void 0&&_q.has(e.errorCode),errorClass:jo,message:e=>`Connection error: ${e.message}`},{match:e=>e.statusCode!==void 0&&e.statusCode>=500&&e.statusCode<=599||/server error|bad gateway|service unavailable|gateway timeout|\berror\b\D{0,12}\b5\d\d\b|\b5\d\d\b\D{0,12}\berror\b|\bstatus(?:\s*code)?\b\D{0,12}\b5\d\d\b/i.test(e.message),errorClass:_t,message:e=>`${e.provider} server error: ${e.message}`}]}});function xvr(e){return`https://api.cloudflare.com/client/v4/accounts/${e}/ai/v1`}var ZRe,Avr=S({"src/lib/providers/openaiCompatCatalog.ts"(){"use strict";yt(),xi(),Yo(),ZRe=[{providerName:"cerebras",aliases:["cerebras"],apiKeyEnvVar:"CEREBRAS_API_KEY",baseURLEnvVar:"CEREBRAS_BASE_URL",defaultBaseURL:"https://api.cerebras.ai/v1",configOptions:Ccr(),modelEnvVar:"CEREBRAS_MODEL",defaultModel:"gpt-oss-120b",registryDefaultModel:"gpt-oss-120b",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"gemma-4-31b",fallbackModels:["gpt-oss-120b","gemma-4-31b"],errorRules:[{match:e=>e.statusCode===401||/wrong_api_key|Wrong API Key|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid Cerebras API key. Check CEREBRAS_API_KEY. Get one at https://cloud.cerebras.ai"},...Qo]},{providerName:"groq",aliases:["groq"],apiKeyEnvVar:"GROQ_API_KEY",baseURLEnvVar:"GROQ_BASE_URL",defaultBaseURL:"https://api.groq.com/openai/v1",configOptions:kcr(),modelEnvVar:"GROQ_MODEL",defaultModel:"llama-3.3-70b-versatile",registryDefaultModel:"llama-3.3-70b-versatile",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"llama-3.1-8b-instant",fallbackModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","gemma2-9b-it","mixtral-8x7b-32768","llama-3.2-90b-vision-preview","llama-3.2-11b-vision-preview"],timeoutErrorClass:_t,errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid Groq API key. Check GROQ_API_KEY. Get one at https://console.groq.com/keys"},{match:e=>/model_decommissioned/i.test(e.message),errorClass:co,message:e=>`Groq model '${e.modelName}' was decommissioned. Pick a current model from https://console.groq.com/docs/models.`},...Qo]},{providerName:"xai",aliases:["xai","grok"],apiKeyEnvVar:"XAI_API_KEY",baseURLEnvVar:"XAI_BASE_URL",defaultBaseURL:"https://api.x.ai/v1",configOptions:Scr(),modelEnvVar:"XAI_MODEL",defaultModel:"grok-3",registryDefaultModel:"grok-3",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"grok-3-mini",fallbackModels:["grok-3","grok-3-mini","grok-2-latest","grok-2-vision-latest","grok-beta"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication|invalid_api_key/i.test(e.message),errorClass:sr,message:"Invalid xAI API key. Please check your XAI_API_KEY environment variable. Get one at https://console.x.ai/"},{match:e=>/insufficient_quota|quota exceeded/i.test(e.message),errorClass:_t,message:"xAI account has insufficient quota. Top up at https://console.x.ai/"},...Qo]},{providerName:"together-ai",aliases:["together-ai","together"],apiKeyEnvVar:"TOGETHER_API_KEY",baseURLEnvVar:"TOGETHER_BASE_URL",defaultBaseURL:"https://api.together.xyz/v1",configOptions:Icr(),modelEnvVar:"TOGETHER_MODEL",defaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",registryDefaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",fallbackModels:["meta-llama/Llama-3.3-70B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo","meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo","mistralai/Mixtral-8x22B-Instruct-v0.1","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1","deepseek-ai/DeepSeek-V3"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Together AI API key. Get one at https://api.together.xyz/settings/api-keys"},...Qo]},{providerName:"fireworks",aliases:["fireworks"],apiKeyEnvVar:"FIREWORKS_API_KEY",baseURLEnvVar:"FIREWORKS_BASE_URL",defaultBaseURL:"https://api.fireworks.ai/inference/v1",configOptions:Rcr(),modelEnvVar:"FIREWORKS_MODEL",defaultModel:"accounts/fireworks/models/deepseek-v4-pro",registryDefaultModel:"accounts/fireworks/models/deepseek-v4-pro",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"accounts/fireworks/models/deepseek-v4-pro",fallbackModels:["accounts/fireworks/models/deepseek-v4-pro","accounts/fireworks/models/glm-5p1","accounts/fireworks/models/glm-5","accounts/fireworks/models/kimi-k2p6","accounts/fireworks/models/kimi-k2p5","accounts/fireworks/models/gpt-oss-120b"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Fireworks API key. Get one at https://fireworks.ai/account/api-keys"},...Qo]},{providerName:"perplexity",aliases:["perplexity","pplx"],apiKeyEnvVar:"PERPLEXITY_API_KEY",baseURLEnvVar:"PERPLEXITY_BASE_URL",defaultBaseURL:"https://api.perplexity.ai",configOptions:Pcr(),modelEnvVar:"PERPLEXITY_MODEL",defaultModel:"sonar",registryDefaultModel:"sonar",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"gpt-3.5-turbo",fallbackModels:["sonar","sonar-pro","sonar-reasoning","sonar-reasoning-pro","sonar-deep-research"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Perplexity API key. Get one at https://www.perplexity.ai/settings/api"},...Qo]},{providerName:"mistral",aliases:["mistral"],apiKeyEnvVar:"MISTRAL_API_KEY",baseURLEnvVar:"MISTRAL_BASE_URL",defaultBaseURL:"https://api.mistral.ai/v1",configOptions:_cr(),modelEnvVar:"MISTRAL_MODEL",defaultModel:"mistral-small-2506",registryDefaultModel:"mistral-large-latest",registryDefaultModelChecksEnvVar:!1,fallbackModelName:"mistral-small-2506",fallbackModels:["mistral-small-2506","mistral-large-latest"],errorRules:[{match:e=>e.statusCode===401||/API_KEY_INVALID|Invalid API key|Unauthorized/i.test(e.message),errorClass:sr,message:"Invalid Mistral API key. Please check your MISTRAL_API_KEY environment variable."},...Qo]},{providerName:"cloudflare",aliases:["cloudflare","workers-ai","cf-ai"],apiKeyEnvVar:"CLOUDFLARE_API_KEY",computedBaseURL:{envVar:"CLOUDFLARE_ACCOUNT_ID",missingValueMessage:"CLOUDFLARE_ACCOUNT_ID is required (or pass credentials.cloudflare.accountId). Get the account id from https://dash.cloudflare.com/",build:xvr},configOptions:Lcr(),modelEnvVar:"CLOUDFLARE_MODEL",defaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",registryDefaultModel:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",registryDefaultModelChecksEnvVar:!0,fallbackModelName:"@cf/meta/llama-3.1-8b-instruct-fast",fallbackModels:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/meta/llama-3.2-11b-vision-instruct","@cf/mistral/mistral-7b-instruct-v0.2","@cf/qwen/qwen1.5-14b-chat-awq"],errorRules:[{match:e=>e.statusCode===401||/Invalid API key|Authentication/i.test(e.message),errorClass:sr,message:"Invalid Cloudflare API key. Use a token with Workers AI Read+Write scope. Get one at https://dash.cloudflare.com/profile/api-tokens"},...Qo]}]}});function Ov(e){const t=[];for(const r of zd)r.kind===e&&(t.push(r.name),r.aliases&&t.push(...r.aliases));return t}function Ivr(e){const t=zd.find(r=>r.kind===e);if(!t)throw new Error(`No media handler catalog entries registered for kind "${e}"`);return t.name}var zd,Nv=S({"src/lib/factories/mediaHandlerCatalog.ts"(){"use strict";zd=[{kind:"tts",name:"google-ai",aliases:["vertex"]},{kind:"tts",name:"openai-tts"},{kind:"tts",name:"elevenlabs",aliases:["elevenlabs-tts"]},{kind:"tts",name:"azure-tts"},{kind:"tts",name:"fish-audio"},{kind:"tts",name:"cartesia"},{kind:"stt",name:"whisper",aliases:["openai-stt"]},{kind:"stt",name:"deepgram"},{kind:"stt",name:"google-stt"},{kind:"stt",name:"azure-stt"},{kind:"realtime",name:"openai-realtime"},{kind:"realtime",name:"gemini-live"},{kind:"video",name:"vertex"},{kind:"video",name:"kling"},{kind:"video",name:"runway"},{kind:"video",name:"replicate"},{kind:"avatar",name:"d-id"},{kind:"avatar",name:"replicate",aliases:["musetalk"]},{kind:"avatar",name:"heygen"},{kind:"music",name:"beatoven"},{kind:"music",name:"replicate",aliases:["musicgen"]},{kind:"music",name:"elevenlabs-music",aliases:["elevenlabs-sound"]},{kind:"music",name:"lyria"}]}}),XRe={};he(XRe,{AsyncLocalStorage:()=>_1e,Buffer:()=>cMe,Channel:()=>XPe,DatabaseSync:()=>lMe,Duplex:()=>b1e,EventEmitter:()=>v1e,Http2ServerRequest:()=>hMe,Http2ServerResponse:()=>fMe,Interface:()=>aMe,MIMEType:()=>bMe,PassThrough:()=>T1e,PerformanceObserver:()=>JPe,Readable:()=>xq,ReadableStream:()=>E1e,Resolver:()=>WPe,TextDecoder:()=>Mq,TextEncoder:()=>VT,Transform:()=>w1e,URL:()=>OPe,URLSearchParams:()=>NPe,Worker:()=>rMe,Writable:()=>Aq,access:()=>Z1e,appendFile:()=>R1e,appendFileSync:()=>s1e,arch:()=>mPe,arrayBuffer:()=>gMe,basename:()=>d1e,builtinModules:()=>RPe,callbackify:()=>jPe,channel:()=>ZPe,chmodSync:()=>I1e,clearInterval:()=>wMe,clearTimeout:()=>vMe,closeSync:()=>O1e,connect:()=>yPe,constants:()=>uMe,copyFileSync:()=>M1e,cpSync:()=>i1e,cpus:()=>cPe,createConnection:()=>vPe,createGunzip:()=>CPe,createGzip:()=>kPe,createHash:()=>kq,createHmac:()=>t1e,createInterface:()=>iMe,createReadStream:()=>G1e,createRequire:()=>IPe,createServer:()=>a1e,createWriteStream:()=>q1e,debug:()=>BPe,debuglog:()=>Pq,default:()=>QRe,deflateSync:()=>wPe,deprecate:()=>zPe,deserialize:()=>tMe,dirname:()=>u1e,exec:()=>rPe,execFile:()=>Rq,execFileSync:()=>oPe,execSync:()=>nPe,existsSync:()=>k1e,extname:()=>p1e,fileURLToPath:()=>LPe,finished:()=>C1e,format:()=>DPe,freemem:()=>uPe,fstatSync:()=>N1e,get:()=>gPe,gunzip:()=>SPe,gunzipSync:()=>bPe,gzip:()=>EPe,gzipSync:()=>TPe,hasSubscribers:()=>QPe,homedir:()=>iPe,hostname:()=>lPe,inflateSync:()=>_Pe,inherits:()=>FPe,inspect:()=>HT,isAbsolute:()=>h1e,isBuiltin:()=>PPe,isDeepStrictEqual:()=>qPe,isIP:()=>mMe,isIPv4:()=>pMe,isIPv6:()=>dMe,isMainThread:()=>nMe,join:()=>l1e,lookup:()=>VPe,mkdir:()=>W1e,mkdirSync:()=>L1e,monitorEventLoopDelay:()=>YPe,normalize:()=>y1e,ok:()=>xPe,open:()=>ePe,openSync:()=>D1e,parentPort:()=>oMe,parse:()=>MPe,pathToFileURL:()=>$Pe,performance:()=>KPe,pipeline:()=>S1e,platform:()=>sPe,posix:()=>g1e,promises:()=>e1e,promisify:()=>UPe,randomBytes:()=>r1e,randomUUID:()=>n1e,readFile:()=>H1e,readFileSync:()=>x1e,readdir:()=>J1e,readdirSync:()=>F1e,realpath:()=>tPe,realpathSync:()=>P1e,relative:()=>m1e,release:()=>hPe,rename:()=>X1e,renameSync:()=>B1e,request:()=>fPe,resolve:()=>c1e,rm:()=>Q1e,rmSync:()=>j1e,rmdirSync:()=>z1e,sep:()=>f1e,serialize:()=>eMe,setInterval:()=>_Me,setTimeout:()=>yMe,spawn:()=>Iq,stat:()=>K1e,statSync:()=>$1e,strict:()=>APe,tmpdir:()=>aPe,toUSVString:()=>GPe,totalmem:()=>dPe,type:()=>pPe,types:()=>HPe,unlink:()=>Y1e,unlinkSync:()=>U1e,webcrypto:()=>o1e,workerData:()=>sMe,writeFile:()=>V1e,writeFileSync:()=>A1e});var go,Rn,QRe,e1e,kq,t1e,r1e,n1e,o1e,s1e,i1e,a1e,l1e,c1e,u1e,d1e,p1e,m1e,h1e,f1e,g1e,y1e,v1e,_1e,xq,Aq,w1e,b1e,T1e,E1e,S1e,C1e,k1e,x1e,A1e,I1e,R1e,P1e,M1e,D1e,O1e,N1e,L1e,$1e,F1e,U1e,B1e,z1e,j1e,q1e,G1e,H1e,V1e,W1e,K1e,J1e,Y1e,Z1e,X1e,Q1e,ePe,tPe,Iq,rPe,nPe,Rq,oPe,sPe,iPe,aPe,lPe,cPe,uPe,dPe,pPe,mPe,hPe,fPe,gPe,yPe,vPe,_Pe,wPe,bPe,TPe,EPe,SPe,CPe,kPe,xPe,APe,IPe,RPe,PPe,MPe,DPe,OPe,NPe,LPe,$Pe,FPe,UPe,Pq,BPe,HT,zPe,jPe,qPe,GPe,HPe,Mq,VT,VPe,WPe,KPe,JPe,YPe,ZPe,XPe,QPe,eMe,tMe,rMe,nMe,oMe,sMe,iMe,aMe,lMe,cMe,uMe,dMe,pMe,mMe,hMe,fMe,gMe,Dq,yMe,vMe,_Me,wMe,bMe,Oq=S({"node-stub:child_process"(){go=()=>{},Rn=async()=>{},QRe={},e1e={readFile:Rn,writeFile:Rn,mkdir:Rn,stat:Rn,readdir:Rn,unlink:Rn,access:Rn,rm:Rn,rename:Rn},kq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new VT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},t1e=(e,t)=>kq(e),r1e=e=>new Uint8Array(e||32),n1e=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),o1e=globalThis.crypto,s1e=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},i1e=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},a1e=()=>({listen:go,close:go,on:go}),l1e=(...e)=>e.join("/"),c1e=(...e)=>e.join("/"),u1e=e=>e||"",d1e=e=>e?.split?.("/")?.pop?.()||"",p1e=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},m1e=(e,t)=>t||"",h1e=()=>!1,f1e="/",g1e={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},y1e=e=>e,v1e=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},_1e=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},xq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Aq=class{write(){return!0}end(){}on(){return this}destroy(){}},w1e=class{push(){}on(){return this}},b1e=class{on(){return this}},T1e=class{pipe(){return this}on(){return this}},E1e=globalThis.ReadableStream||class{},S1e=go,C1e=go,k1e=()=>!1,x1e=()=>"",A1e=go,I1e=go,R1e=Rn,P1e=e=>e,M1e=go,D1e=()=>0,O1e=go,N1e=()=>({}),L1e=go,$1e=()=>({}),F1e=()=>[],U1e=go,B1e=go,z1e=go,j1e=go,q1e=()=>new Aq,G1e=()=>new xq,H1e=Rn,V1e=Rn,W1e=Rn,K1e=Rn,J1e=Rn,Y1e=Rn,Z1e=Rn,X1e=Rn,Q1e=Rn,ePe=async()=>({stat:Rn,readFile:Rn,close:Rn,read:Rn,write:Rn}),tPe=async e=>e,Iq=()=>({on:go,stdout:{on:go},stderr:{on:go},kill:go}),rPe=(e,t)=>t?.(null,"",""),nPe=()=>"",Rq=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},oPe=()=>"",sPe="browser",iPe=()=>"/",aPe=()=>"/tmp",lPe=()=>"browser",cPe=()=>[{}],uPe=()=>0,dPe=()=>0,pPe=()=>"Browser",mPe=()=>"wasm",hPe=()=>"0",fPe=()=>({}),gPe=()=>({}),yPe=()=>({}),vPe=()=>({}),_Pe=()=>new Uint8Array,wPe=()=>new Uint8Array,bPe=()=>new Uint8Array,TPe=()=>new Uint8Array,EPe=(e,t)=>t?.(null,e),SPe=(e,t)=>t?.(null,e),CPe=()=>({}),kPe=()=>({}),xPe=go,APe={},IPe=()=>()=>({}),RPe=[],PPe=()=>!1,MPe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),DPe=()=>"",OPe=globalThis.URL,NPe=globalThis.URLSearchParams,LPe=e=>typeof e=="string"?e.replace("file://",""):e,$Pe=e=>new globalThis.URL("file://"+e),FPe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},UPe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Pq=e=>{const t=(...r)=>{};return t.enabled=!1,t},BPe=Pq,HT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},HT.custom=Symbol.for("nodejs.util.inspect.custom"),HT.colors={},HT.styles={},zPe=e=>e,jPe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},qPe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),GPe=e=>String(e),HPe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Mq=globalThis.TextDecoder,VT=globalThis.TextEncoder,VPe=(e,t)=>t?.(null,"127.0.0.1",4),WPe=class{},KPe=globalThis.performance||{now:()=>Date.now()},JPe=class{observe(){}disconnect(){}},YPe=()=>({enable:go,disable:go,percentile:()=>0}),ZPe=()=>({}),XPe=class{},QPe=()=>!1,eMe=()=>new Uint8Array,tMe=go,rMe=class{},nMe=!0,oMe=null,sMe=null,iMe=()=>({}),aMe=class{},lMe=class{},cMe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new VT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new VT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Mq().decode(this)}},uMe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},dMe=()=>!1,pMe=()=>!1,mMe=()=>0,hMe=class{},fMe=class{},gMe=async()=>new ArrayBuffer(0),Dq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),yMe=(...e)=>Dq(globalThis.setTimeout(...e)),vMe=globalThis.clearTimeout,_Me=(...e)=>Dq(globalThis.setInterval(...e)),wMe=globalThis.clearInterval,bMe=class{constructor(e){this.type=e}toString(){return this.type}}}}),lf,Ns,TMe,Rvr,Pvr,Mvr,Dvr,Ovr,Nvr,Lvr,$vr,Fvr,Uvr,Bvr,zvr,jvr,qvr,Gvr,Hvr,Vvr,Wvr,Kvr,Jvr,Yvr,Zvr,Xvr,Qvr,e0r,t0r,r0r,n0r,o0r,s0r,i0r,a0r,l0r,c0r,u0r,d0r,p0r,m0r,h0r,f0r,g0r,y0r,v0r,_0r,w0r,b0r,T0r=S({"npm-stub:csv-parser"(){lf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:lf.get}):new Proxy(function(...r){return new Proxy({},{get:lf.get})},{get:lf.get,apply(r,n,o){return new Proxy({},{get:lf.get})},construct(r,n){return new Proxy({},{get:lf.get})}})}},Ns=new Proxy({},lf),TMe=Ns,{BedrockClient:Rvr,ListFoundationModelsCommand:Pvr,BedrockRuntimeClient:Mvr,ConverseCommand:Dvr,ConverseStreamCommand:Ovr,ImageFormat:Nvr,InvokeModelCommand:Lvr}=Ns,{SageMakerRuntimeClient:$vr,InvokeEndpointCommand:Fvr,InvokeEndpointWithResponseStreamCommand:Uvr}=Ns,{GoogleAuth:Bvr,VertexAI:zvr,TextToSpeechClient:jvr}=Ns,{Webhook:qvr}=Ns,{Hippocampus:Gvr,HippocampusConfig:Hvr}=Ns,{createClient:Vvr}=Ns,{Queue:Wvr,Worker:Kvr,Job:Jvr,QueueScheduler:Yvr,FlowProducer:Zvr}=Ns,{Cron:Xvr}=Ns,{parseBuffer:Qvr,selectCover:e0r}=Ns,{extractRawText:t0r,convertToHtml:r0r}=Ns,{Hono:n0r}=Ns,{cors:o0r,HTTPException:s0r,logger:i0r,secureHeaders:a0r,streamSSE:l0r,timeout:c0r}=Ns,u0r=globalThis.fetch,d0r=globalThis.Request,p0r=globalThis.Response,m0r=globalThis.Headers,h0r=globalThis.FormData,f0r=globalThis.File,g0r=globalThis.Blob,y0r=Ns.Agent,v0r=Ns.Pool,_0r=Ns.Client,w0r=Ns.Dispatcher,b0r=Ns.MockAgent}}),cf,Ls,zu,E0r,S0r,C0r,k0r,x0r,A0r,I0r,R0r,P0r,M0r,D0r,O0r,N0r,L0r,$0r,F0r,U0r,B0r,z0r,j0r,q0r,G0r,H0r,V0r,W0r,K0r,J0r,Y0r,Z0r,X0r,Q0r,e_r,t_r,r_r,n_r,o_r,s_r,i_r,a_r,l_r,c_r,u_r,d_r,p_r,m_r,h_r,EMe=S({"npm-stub:iconv-lite"(){cf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:cf.get}):new Proxy(function(...r){return new Proxy({},{get:cf.get})},{get:cf.get,apply(r,n,o){return new Proxy({},{get:cf.get})},construct(r,n){return new Proxy({},{get:cf.get})}})}},Ls=new Proxy({},cf),zu=Ls,{BedrockClient:E0r,ListFoundationModelsCommand:S0r,BedrockRuntimeClient:C0r,ConverseCommand:k0r,ConverseStreamCommand:x0r,ImageFormat:A0r,InvokeModelCommand:I0r}=Ls,{SageMakerRuntimeClient:R0r,InvokeEndpointCommand:P0r,InvokeEndpointWithResponseStreamCommand:M0r}=Ls,{GoogleAuth:D0r,VertexAI:O0r,TextToSpeechClient:N0r}=Ls,{Webhook:L0r}=Ls,{Hippocampus:$0r,HippocampusConfig:F0r}=Ls,{createClient:U0r}=Ls,{Queue:B0r,Worker:z0r,Job:j0r,QueueScheduler:q0r,FlowProducer:G0r}=Ls,{Cron:H0r}=Ls,{parseBuffer:V0r,selectCover:W0r}=Ls,{extractRawText:K0r,convertToHtml:J0r}=Ls,{Hono:Y0r}=Ls,{cors:Z0r,HTTPException:X0r,logger:Q0r,secureHeaders:e_r,streamSSE:t_r,timeout:r_r}=Ls,n_r=globalThis.fetch,o_r=globalThis.Request,s_r=globalThis.Response,i_r=globalThis.Headers,a_r=globalThis.FormData,l_r=globalThis.File,c_r=globalThis.Blob,u_r=Ls.Agent,d_r=Ls.Pool,p_r=Ls.Client,m_r=Ls.Dispatcher,h_r=Ls.MockAgent}}),Lv={};he(Lv,{AsyncLocalStorage:()=>GMe,Buffer:()=>L4e,Channel:()=>C4e,DatabaseSync:()=>N4e,Duplex:()=>VMe,EventEmitter:()=>qMe,Http2ServerRequest:()=>z4e,Http2ServerResponse:()=>j4e,Interface:()=>O4e,MIMEType:()=>K4e,PassThrough:()=>WMe,PerformanceObserver:()=>T4e,Readable:()=>_m,ReadableStream:()=>KMe,Resolver:()=>w4e,TextDecoder:()=>Fq,TextEncoder:()=>KT,Transform:()=>HMe,URL:()=>a4e,URLSearchParams:()=>l4e,Worker:()=>I4e,Writable:()=>Lq,access:()=>TDe,appendFile:()=>tDe,appendFileSync:()=>RMe,arch:()=>BDe,arrayBuffer:()=>q4e,basename:()=>LMe,builtinModules:()=>n4e,callbackify:()=>f4e,channel:()=>S4e,chmodSync:()=>eDe,clearInterval:()=>W4e,clearTimeout:()=>H4e,closeSync:()=>sDe,connect:()=>GDe,constants:()=>$4e,copyFileSync:()=>nDe,cpSync:()=>PMe,cpus:()=>LDe,createConnection:()=>HDe,createGunzip:()=>XDe,createGzip:()=>QDe,createHash:()=>Nq,createHmac:()=>kMe,createInterface:()=>D4e,createReadStream:()=>fDe,createRequire:()=>r4e,createServer:()=>MMe,createWriteStream:()=>hDe,debug:()=>m4e,debuglog:()=>$q,default:()=>SMe,deflateSync:()=>WDe,deprecate:()=>h4e,deserialize:()=>A4e,dirname:()=>NMe,exec:()=>ADe,execFile:()=>RDe,execFileSync:()=>PDe,execSync:()=>IDe,existsSync:()=>ZMe,extname:()=>$Me,fileURLToPath:()=>c4e,finished:()=>YMe,format:()=>i4e,freemem:()=>$De,fstatSync:()=>iDe,get:()=>qDe,gunzip:()=>ZDe,gunzipSync:()=>KDe,gzip:()=>YDe,gzipSync:()=>JDe,hasSubscribers:()=>k4e,homedir:()=>DDe,hostname:()=>NDe,inflateSync:()=>VDe,inherits:()=>d4e,inspect:()=>WT,isAbsolute:()=>UMe,isBuiltin:()=>o4e,isDeepStrictEqual:()=>g4e,isIP:()=>B4e,isIPv4:()=>U4e,isIPv6:()=>F4e,isMainThread:()=>R4e,join:()=>DMe,lookup:()=>_4e,mkdir:()=>vDe,mkdirSync:()=>aDe,monitorEventLoopDelay:()=>E4e,normalize:()=>jMe,ok:()=>e4e,open:()=>CDe,openSync:()=>oDe,parentPort:()=>P4e,parse:()=>s4e,pathToFileURL:()=>u4e,performance:()=>b4e,pipeline:()=>JMe,platform:()=>MDe,posix:()=>zMe,promises:()=>CMe,promisify:()=>p4e,randomBytes:()=>xMe,randomUUID:()=>AMe,readFile:()=>gDe,readFileSync:()=>XMe,readdir:()=>wDe,readdirSync:()=>cDe,realpath:()=>kDe,realpathSync:()=>rDe,relative:()=>FMe,release:()=>zDe,rename:()=>EDe,renameSync:()=>dDe,request:()=>jDe,resolve:()=>OMe,rm:()=>SDe,rmSync:()=>mDe,rmdirSync:()=>pDe,sep:()=>BMe,serialize:()=>x4e,setInterval:()=>V4e,setTimeout:()=>G4e,spawn:()=>xDe,stat:()=>_De,statSync:()=>lDe,strict:()=>t4e,tmpdir:()=>ODe,toUSVString:()=>y4e,totalmem:()=>FDe,type:()=>UDe,types:()=>v4e,unlink:()=>bDe,unlinkSync:()=>uDe,webcrypto:()=>IMe,workerData:()=>M4e,writeFile:()=>yDe,writeFileSync:()=>QMe});var yo,Pn,SMe,CMe,Nq,kMe,xMe,AMe,IMe,RMe,PMe,MMe,DMe,OMe,NMe,LMe,$Me,FMe,UMe,BMe,zMe,jMe,qMe,GMe,_m,Lq,HMe,VMe,WMe,KMe,JMe,YMe,ZMe,XMe,QMe,eDe,tDe,rDe,nDe,oDe,sDe,iDe,aDe,lDe,cDe,uDe,dDe,pDe,mDe,hDe,fDe,gDe,yDe,vDe,_De,wDe,bDe,TDe,EDe,SDe,CDe,kDe,xDe,ADe,IDe,RDe,PDe,MDe,DDe,ODe,NDe,LDe,$De,FDe,UDe,BDe,zDe,jDe,qDe,GDe,HDe,VDe,WDe,KDe,JDe,YDe,ZDe,XDe,QDe,e4e,t4e,r4e,n4e,o4e,s4e,i4e,a4e,l4e,c4e,u4e,d4e,p4e,$q,m4e,WT,h4e,f4e,g4e,y4e,v4e,Fq,KT,_4e,w4e,b4e,T4e,E4e,S4e,C4e,k4e,x4e,A4e,I4e,R4e,P4e,M4e,D4e,O4e,N4e,L4e,$4e,F4e,U4e,B4e,z4e,j4e,q4e,Uq,G4e,H4e,V4e,W4e,K4e,uf=S({"node-stub:stream"(){yo=()=>{},Pn=async()=>{},SMe={},CMe={readFile:Pn,writeFile:Pn,mkdir:Pn,stat:Pn,readdir:Pn,unlink:Pn,access:Pn,rm:Pn,rename:Pn},Nq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new KT().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},kMe=(e,t)=>Nq(e),xMe=e=>new Uint8Array(e||32),AMe=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),IMe=globalThis.crypto,RMe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},PMe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},MMe=()=>({listen:yo,close:yo,on:yo}),DMe=(...e)=>e.join("/"),OMe=(...e)=>e.join("/"),NMe=e=>e||"",LMe=e=>e?.split?.("/")?.pop?.()||"",$Me=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},FMe=(e,t)=>t||"",UMe=()=>!1,BMe="/",zMe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},jMe=e=>e,qMe=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},GMe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},_m=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Lq=class{write(){return!0}end(){}on(){return this}destroy(){}},HMe=class{push(){}on(){return this}},VMe=class{on(){return this}},WMe=class{pipe(){return this}on(){return this}},KMe=globalThis.ReadableStream||class{},JMe=yo,YMe=yo,ZMe=()=>!1,XMe=()=>"",QMe=yo,eDe=yo,tDe=Pn,rDe=e=>e,nDe=yo,oDe=()=>0,sDe=yo,iDe=()=>({}),aDe=yo,lDe=()=>({}),cDe=()=>[],uDe=yo,dDe=yo,pDe=yo,mDe=yo,hDe=()=>new Lq,fDe=()=>new _m,gDe=Pn,yDe=Pn,vDe=Pn,_De=Pn,wDe=Pn,bDe=Pn,TDe=Pn,EDe=Pn,SDe=Pn,CDe=async()=>({stat:Pn,readFile:Pn,close:Pn,read:Pn,write:Pn}),kDe=async e=>e,xDe=()=>({on:yo,stdout:{on:yo},stderr:{on:yo},kill:yo}),ADe=(e,t)=>t?.(null,"",""),IDe=()=>"",RDe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},PDe=()=>"",MDe="browser",DDe=()=>"/",ODe=()=>"/tmp",NDe=()=>"browser",LDe=()=>[{}],$De=()=>0,FDe=()=>0,UDe=()=>"Browser",BDe=()=>"wasm",zDe=()=>"0",jDe=()=>({}),qDe=()=>({}),GDe=()=>({}),HDe=()=>({}),VDe=()=>new Uint8Array,WDe=()=>new Uint8Array,KDe=()=>new Uint8Array,JDe=()=>new Uint8Array,YDe=(e,t)=>t?.(null,e),ZDe=(e,t)=>t?.(null,e),XDe=()=>({}),QDe=()=>({}),e4e=yo,t4e={},r4e=()=>()=>({}),n4e=[],o4e=()=>!1,s4e=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),i4e=()=>"",a4e=globalThis.URL,l4e=globalThis.URLSearchParams,c4e=e=>typeof e=="string"?e.replace("file://",""):e,u4e=e=>new globalThis.URL("file://"+e),d4e=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},p4e=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),$q=e=>{const t=(...r)=>{};return t.enabled=!1,t},m4e=$q,WT=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},WT.custom=Symbol.for("nodejs.util.inspect.custom"),WT.colors={},WT.styles={},h4e=e=>e,f4e=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},g4e=(e,t)=>JSON.stringify(e)===JSON.stringify(t),y4e=e=>String(e),v4e={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Fq=globalThis.TextDecoder,KT=globalThis.TextEncoder,_4e=(e,t)=>t?.(null,"127.0.0.1",4),w4e=class{},b4e=globalThis.performance||{now:()=>Date.now()},T4e=class{observe(){}disconnect(){}},E4e=()=>({enable:yo,disable:yo,percentile:()=>0}),S4e=()=>({}),C4e=class{},k4e=()=>!1,x4e=()=>new Uint8Array,A4e=yo,I4e=class{},R4e=!0,P4e=null,M4e=null,D4e=()=>({}),O4e=class{},N4e=class{},L4e=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new KT().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new KT().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Fq().decode(this)}},$4e={F_OK:0,R_OK:4,W_OK:2,X_OK:1},F4e=()=>!1,U4e=()=>!1,B4e=()=>0,z4e=class{},j4e=class{},q4e=async()=>new ArrayBuffer(0),Uq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),G4e=(...e)=>Uq(globalThis.setTimeout(...e)),H4e=globalThis.clearTimeout,V4e=(...e)=>Uq(globalThis.setInterval(...e)),W4e=globalThis.clearInterval,K4e=class{constructor(e){this.type=e}toString(){return this.type}}}});function df(e,t=","){const r=[];let n="",o=!1;for(let s=0;s<e.length;s++){const i=e[s];if(i==='"'){if(o&&e[s+1]==='"'){n+='"',s++;continue}o=!o}else i===t&&!o?(r.push(n),n=""):n+=i}return r.push(n),r}function f_r(e,t=","){return df(e,t).length}function q1(e,t){const r=e.filter(a=>a.trim()!=="").slice(0,5);if(r.length===0)return",";const n=t?.toLowerCase().replace(/^\./,""),o=n==="tsv"?" ":n==="psv"?"|":void 0;let s=",",i=-1;for(const a of Bq){const l=r.map(m=>f_r(m,a)),c=l[0];if(c<=1)continue;const u=l.every(m=>m===c),d=(a===o?1e3:0)+(u?100:0)+c+(a===","?.5:0);d>i&&(i=d,s=a)}return i<0&&o?o:s}var Bq,J4e=S({"src/lib/utils/csvUtils.ts"(){"use strict";Bq=[","," ",";","|"]}});function G1(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ar(e){return typeof e=="object"&&e!==null}function g_r(e){return e==null}var pf=S({"src/lib/utils/typeUtils.ts"(){"use strict"}}),mf,$s,Y4e,y_r,v_r,__r,w_r,b_r,T_r,E_r,S_r,C_r,k_r,x_r,A_r,I_r,R_r,P_r,M_r,D_r,O_r,N_r,L_r,$_r,F_r,U_r,B_r,z_r,j_r,q_r,G_r,H_r,V_r,W_r,K_r,J_r,Y_r,Z_r,X_r,Q_r,ewr,twr,rwr,nwr,owr,swr,iwr,awr,lwr,cwr=S({"npm-stub:chardet"(){mf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:mf.get}):new Proxy(function(...r){return new Proxy({},{get:mf.get})},{get:mf.get,apply(r,n,o){return new Proxy({},{get:mf.get})},construct(r,n){return new Proxy({},{get:mf.get})}})}},$s=new Proxy({},mf),Y4e=$s,{BedrockClient:y_r,ListFoundationModelsCommand:v_r,BedrockRuntimeClient:__r,ConverseCommand:w_r,ConverseStreamCommand:b_r,ImageFormat:T_r,InvokeModelCommand:E_r}=$s,{SageMakerRuntimeClient:S_r,InvokeEndpointCommand:C_r,InvokeEndpointWithResponseStreamCommand:k_r}=$s,{GoogleAuth:x_r,VertexAI:A_r,TextToSpeechClient:I_r}=$s,{Webhook:R_r}=$s,{Hippocampus:P_r,HippocampusConfig:M_r}=$s,{createClient:D_r}=$s,{Queue:O_r,Worker:N_r,Job:L_r,QueueScheduler:$_r,FlowProducer:F_r}=$s,{Cron:U_r}=$s,{parseBuffer:B_r,selectCover:z_r}=$s,{extractRawText:j_r,convertToHtml:q_r}=$s,{Hono:G_r}=$s,{cors:H_r,HTTPException:V_r,logger:W_r,secureHeaders:K_r,streamSSE:J_r,timeout:Y_r}=$s,Z_r=globalThis.fetch,X_r=globalThis.Request,Q_r=globalThis.Response,ewr=globalThis.Headers,twr=globalThis.FormData,rwr=globalThis.File,nwr=globalThis.Blob,owr=$s.Agent,swr=$s.Pool,iwr=$s.Client,awr=$s.Dispatcher,lwr=$s.MockAgent}});function JT(e){return e.charCodeAt(0)===65279?e.slice(1):e}function uwr(e){return e.length>=3&&e[0]===239&&e[1]===187&&e[2]===191?"utf-8":e.length>=2&&e[0]===255&&e[1]===254?"utf-16le":e.length>=2&&e[0]===254&&e[1]===255?"utf-16be":null}function dwr(e){if(!e)return null;const t=e.toLowerCase().replace(/[^a-z0-9]/g,""),n={utf8:"utf-8",utf16le:"utf-16le",utf16be:"utf-16be",ascii:"utf-8",windows1252:"windows-1252",iso88591:"latin1",latin1:"latin1",iso88592:"iso-8859-2",windows1251:"windows-1251",koi8r:"koi8-r",gb18030:"gb18030",big5:"big5",shiftjis:"shift_jis",euckr:"euc-kr",eucjp:"euc-jp"}[t]??e;return zu.encodingExists(n)?n:null}function zq(e,t,r=!0){if(t&&zu.encodingExists(t))return{text:JT(zu.decode(e,t)),encoding:t,confidence:100};t&&!zu.encodingExists(t)&&f.warn(`[textEncoding] Unsupported encoding override "${t}"; falling back to detection.`);const n=uwr(e);if(n)return{text:JT(zu.decode(e,n)),encoding:n,confidence:100};let o=!0;for(let a=0;a<e.length;a++)if(e[a]>=128){o=!1;break}if(o)return{text:JT(zu.decode(e,"utf-8")),encoding:"utf-8",confidence:r?100:60};let s=null;try{s=Y4e.detect(e)}catch(a){f.debug(`[textEncoding] chardet failed: ${String(a)}`)}const i=dwr(s);return i?{text:JT(zu.decode(e,i)),encoding:i,confidence:i==="utf-8"?100:80}:{text:JT(zu.decode(e,"utf-8")),encoding:"utf-8",confidence:0}}var pwr=S({"src/lib/utils/textEncoding.ts"(){"use strict";cwr(),EMe(),q()}});async function zt(e,t,r){let n;const o=new Promise((s,i)=>{n=setTimeout(()=>{i(new wm(r||`Operation timed out after ${t}ms`,t))},t)});try{return await Promise.race([e,o])}finally{n!==void 0&&clearTimeout(n)}}async function Z4e(e,t){if(!t||typeof t.addEventListener!="function")return e;const r=()=>{const n=new Error("Operation aborted");return n.name="AbortError",n};return t.aborted?(e.catch(()=>{}),Promise.reject(r())):new Promise((n,o)=>{const s=()=>{e.catch(()=>{}),o(r())};t.addEventListener("abort",s,{once:!0}),e.then(i=>{t.removeEventListener("abort",s),n(i)},i=>{t.removeEventListener("abort",s),o(i)})})}async function H1(e,t,r){return zt(e(),t,r)}var wm,yn=S({"src/lib/utils/async/withTimeout.ts"(){"use strict";wm=class Mlr extends Error{constructor(t,r){super(t),this.timeoutMs=r,this.name="TimeoutError",Error.captureStackTrace&&Error.captureStackTrace(this,Mlr)}timeoutMs}}});function mwr(e){const t=[];return!e||e.trim()===""?(t.push("Empty or blank column name"),t):(e!==e.trim()&&t.push("Leading or trailing whitespace"),/^\d/.test(e)&&t.push("Starts with a number"),/[^a-zA-Z0-9_\- ]/.test(e)&&t.push("Contains special characters"),e.length>64&&t.push("Name exceeds 64 characters"),/\s{2,}/.test(e)&&t.push("Contains multiple consecutive spaces"),t)}function X4e(e,t="snake_case",r=0){let o=(e??"").trim().split(/[^A-Za-z0-9]+/).filter(i=>i.length>0),s=o.join("_");return s===""?(s=`col_${r+1}`,o=[s]):/^[0-9]/.test(s)&&(s=`col_${s}`,o=s.split("_").filter(i=>i.length>0)),t==="camelCase"?o.map((i,a)=>a===0?i.charAt(0).toLowerCase()+i.slice(1):i.charAt(0).toUpperCase()+i.slice(1)).join(""):o.map(i=>i.toLowerCase()).join("_")}function Q4e(e){const t=new Set;return e.map(r=>{if(!t.has(r))return t.add(r),r;let n=2,o=`${r}_${n}`;for(;t.has(o);)n++,o=`${r}_${n}`;return t.add(o),o})}function eOe(e,t){const r=Q4e(e.map((o,s)=>X4e(o,t,s))),n=e.map((o,s)=>({original:o,sanitized:r[s]})).filter(o=>o.original!==o.sanitized);return{sanitized:r,mapping:n}}function hwr(e){return!G1(e)||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string"||t===void 0)}function fwr(e,t){if(!hwr(e))throw xe.csvRowInvalid(`[CSVProcessor] Invalid CSV row ${t}: expected a string-keyed object with string values, got ${Array.isArray(e)?"array":typeof e}`,t)}function YT(e){return Object.keys(e).length===0?!0:Object.values(e).every(r=>r===""||typeof r=="string"&&r.trim()==="")}function gwr(e,t){if(e.trim()==="")return!0;const r=df(e,t);if(r.length===0)return!0;const n=Object.create(null);for(let o=0;o<r.length;o++)n[`c${o}`]=r[o];return YT(n)}function jq(e){const t=[`[CSVProcessor] CSV ${e.stage==="read"?"file read":"parsing"} failed after ${e.count} row(s)`];return e.location&&t.push(`(${e.location})`),t.push(`: ${e.cause}`),t.push(typeof e.headerCount=="number"?`| headerCount: ${e.headerCount}`:"| headerCount: unknown (failed before headers were parsed)"),typeof e.bytesRead=="number"&&t.push(`| bytesRead: ${e.bytesRead}`),typeof e.lastRowColumnCount=="number"&&t.push(`| lastRow columns: ${e.lastRowColumnCount}`),t.push("| Expected RFC 4180 CSV (comma-separated, double-quote escaped)"),t.join(" ")}function qq(e){if(e===""||e===null||e===void 0)return"empty";const t=e.trim();if(t==="")return"empty";if(uOe.has(t.toLowerCase()))return"boolean";if(lOe.test(t))return"integer";if(cOe.test(t))return"float";if(iOe.test(t))return"email";if(aOe.test(t))return"url";for(const r of Wq)if(r.regex.test(t))return"datetime";for(const r of Vq)if(r.regex.test(t))return"date";return"string"}function ywr(e){const t=e.trim();for(const r of Wq)if(r.regex.test(t))return r.format;for(const r of Vq)if(r.regex.test(t))return r.format}function vwr(e){const t=e.filter(i=>i!=="empty");if(t.length===0)return{type:"empty",confidence:100};const r=new Map;for(const i of t)r.set(i,(r.get(i)||0)+1);let n="string",o=0;for(const[i,a]of r)a>o&&(o=a,n=i);const s=Math.round(o/t.length*100);if(r.has("integer")&&r.has("float")&&r.size===2){const i=(r.get("integer")||0)+(r.get("float")||0);return{type:"number",confidence:Math.round(i/t.length*100)}}return s<70&&r.size>1?{type:"mixed",confidence:s}:{type:n,confidence:s}}function _wr(e,t,r){const n=[],o=new Set,s=[];let i=0,a;for(const v of r){const _=v?.trim()??"";if(_===""){i++,n.push("empty");continue}o.add(_);const b=qq(_);if(n.push(b),b==="integer"||b==="float"){const T=parseFloat(_);isNaN(T)||s.push(T)}(b==="date"||b==="datetime")&&!a&&(a=ywr(_))}const{type:l,confidence:c}=vwr(n),u=Array.from(o).slice(0,5);let d,m,h;s.length>0&&(d=Math.min(...s),m=Math.max(...s),h=Math.round(s.reduce((v,_)=>v+_,0)/s.length*100)/100);const g=mwr(e),y={name:e,index:t,detectedType:l,typeConfidence:c,nullCount:i,uniqueCount:o.size,sampleValues:u};return d!==void 0&&(y.minValue=d),m!==void 0&&(y.maxValue=m),h!==void 0&&(y.avgValue=h),a&&(y.dateFormat=a),g.length>0&&(y.nameIssues=g),y}function wwr(e,t){const r=[];for(const n of e){const o=t>0?n.nullCount/t:0;o>.2&&r.push({column:n.name,type:"high_null_rate",message:`Column has ${Math.round(o*100)}% empty/null values (${n.nullCount} of ${t} rows)`,severity:o>.5?"warning":"info",affectedRows:n.nullCount}),n.nameIssues&&n.nameIssues.length>0&&r.push({column:n.name,type:"invalid_name",message:`Column name issues: ${n.nameIssues.join(", ")}`,severity:n.name.trim()===""?"error":"warning"}),(n.detectedType==="mixed"||n.typeConfidence<70)&&r.push({column:n.name,type:"mixed_types",message:`Column has inconsistent data types (${n.typeConfidence}% confidence for ${n.detectedType})`,severity:"warning"}),t>10&&n.uniqueCount===1&&n.nullCount===0&&r.push({column:n.name,type:"duplicates",message:`All ${t} rows have the same value`,severity:"info",affectedRows:t}),n.detectedType==="empty"&&r.push({column:n.name,type:"empty_values",message:"Column is entirely empty",severity:"warning",affectedRows:t})}return r}function bwr(e,t,r){if(e.length===0||r===0)return 0;let n=100;for(const l of t)switch(l.severity){case"error":n-=15;break;case"warning":n-=8;break;case"info":n-=3;break}const o=e.reduce((l,c)=>l+c.nullCount,0),s=e.length*r,i=s>0?o/s:0;n-=Math.round(i*30);const a=e.reduce((l,c)=>l+c.typeConfidence,0)/e.length;return a<80&&(n-=Math.round((80-a)/2)),Math.max(0,Math.min(100,n))}function tOe(e){const t=Math.max(0,Math.min(100,e));return Math.round((100+t)/2)}function rOe(e){if(e.length===0)return{columnMetadata:[],dataQualityWarnings:[],dataQualityScore:0};const t=Object.keys(e[0]),r=[];for(let s=0;s<t.length;s++){const i=t[s],a=e.map(l=>String(l[i]??""));r.push(_wr(i,s,a))}const n=wwr(r,e.length),o=bwr(r,n,e.length);return{columnMetadata:r,dataQualityWarnings:n,dataQualityScore:o}}function nOe(e,t){if(e.length===0)return!1;let r=0;for(const a of e){const l=a?.trim()??"";if(l==="")continue;qq(l)==="string"&&r++}const n=e.filter(a=>a?.trim()).length;if(n===0)return!1;const o=r/n,i=new Set(e.map(a=>a?.trim().toLowerCase())).size===e.length;if(t&&t.length>0){const a=Object.values(t[0]||{}).map(u=>String(u??""));let l=0;for(const u of a)qq(u?.trim()??"")==="string"&&l++;const c=a.length>0?l/a.length:0;if(o>.7&&c<o-.2)return!0}return o>=.7&&i}function Gq(e){return e.charCodeAt(0)===65279?e.slice(1):e}function oOe(e){let t=0,r=!1;for(let n=0;n<e.length;n++){const o=e[n];if(o==='"'){if(r&&e[n+1]==='"'){n++;continue}r=!r}else o===","&&!r&&t++}return t}function Twr(e){if(!e[0]||e.length<2)return!1;const t=e[0].trim(),r=e[1].trim();if(t.match(/^sep=/i))return!0;if(Ewr(r))return!1;const n=oOe(t),o=oOe(r);return n===0&&o>0?!0:o>0&&n!==o}function Ewr(e){const t=e.trim();return t===""?!0:/^[\s,;\t|]+$/.test(t)&&/[,;\t|]/.test(t)}function ZT(e){if(!Twr(e))return{dataLines:e,hasMetadataLine:!1};const t=e[0]?.trim().match(/^sep=(.)/i)?.[1],r=t&&Bq.includes(t)?t:void 0;return{dataLines:e.slice(1),hasMetadataLine:!0,explicitDelimiter:r}}function $v(e){const t=[];let r="",n=!1;for(let o=0;o<e.length;o++){const s=e[o];if(s==='"'){if(n&&e[o+1]==='"'){r+='""',o++;continue}n=!n,r+=s}else!n&&(s===`
|
|
117
117
|
`||s==="\r")?(s==="\r"&&e[o+1]===`
|
|
118
118
|
`&&o++,t.push(r),r=""):r+=s}return t.push(r),t}var sOe,V1,Hq,Vq,Wq,iOe,aOe,lOe,cOe,uOe,XT,Kq=S({"src/lib/utils/csvProcessor.ts"(){"use strict";T0r(),EMe(),uf(),Lr(),q(),J4e(),pf(),pwr(),ct(),yn(),sOe=10*1024*1024,V1=3e4,Hq=3e5,Vq=[{regex:/^\d{4}-\d{2}-\d{2}$/,format:"YYYY-MM-DD"},{regex:/^\d{2}\/\d{2}\/\d{4}$/,format:"MM/DD/YYYY"},{regex:/^\d{2}-\d{2}-\d{4}$/,format:"DD-MM-YYYY"},{regex:/^\d{2}\.\d{2}\.\d{4}$/,format:"DD.MM.YYYY"},{regex:/^\d{4}\/\d{2}\/\d{2}$/,format:"YYYY/MM/DD"}],Wq=[{regex:/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/,format:"ISO8601"},{regex:/^\d{2}\/\d{2}\/\d{4} \d{2}:\d{2}/,format:"MM/DD/YYYY HH:mm"}],iOe=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,aOe=/^(https?:\/\/|www\.)[^\s]+$/i,lOe=/^-?\d+$/,cOe=/^-?\d+\.\d+$/,uOe=new Set(["true","false","yes","no","1","0","t","f","y","n"]),XT=class{static async process(e,t){const{maxRows:r=1e3,formatStyle:n="raw",includeHeaders:o=!0,sampleDataFormat:s="json",extension:i=null,encoding:a,sanitizeColumnNames:l=!1,columnNameCase:c="snake_case",parseTimeoutMs:u=V1,skipEmptyLines:d=!0}=t||{},m=Math.max(1,Math.min(1e4,r));f.debug("[CSVProcessor] Starting CSV processing",{contentSize:e.length,formatStyle:n,maxRows:m,includeHeaders:o,skipEmptyLines:d});const{text:h,encoding:g,confidence:y}=zq(e,a),v=$v(h),{dataLines:_,hasMetadataLine:b,explicitDelimiter:T}=ZT(v),k=T??q1(_,i??void 0);if(n==="raw"){b&&f.debug("[CSVProcessor] Detected metadata line, skipping first line");const G=_,K=G[0]??"",Ce=G.slice(1),be=d?Ce.filter(Z=>!gwr(Z,k)):Ce,ge=be.slice(0,m),H=G.length===0?[]:[K,...ge];let se;if(l&&H.length>0){const Z=df(H[0]||"",k),{sanitized:_e,mapping:Re}=eOe(Z,c);H[0]=_e.join(k),se=Re.length>0?Re:void 0}const ye=H.join(`
|
|
119
119
|
`),Q=df(H[0]||"",k),me=ge.length,$e=be.length,Se=me<$e;Se&&f.warn(`[CSVProcessor] CSV data truncated: showing ${me} of ${$e} rows (limit: ${m})`),f.debug(`[CSVProcessor] raw format: ${me} rows (original: ${$e}) \u2192 ${ye.length} chars`,{formatStyle:"raw",originalSize:h.length,limitedSize:ye.length}),f.info("[CSVProcessor] \u2705 Processed CSV file",{formatStyle:"raw",rowCount:me,columnCount:Q.length,truncated:Se});const ne=Math.min(me,500),{rows:Fe,timedOut:ae}=await this.streamParse(_m.from([H.join(`
|
|
@@ -708,7 +708,7 @@ Warning: ${t.alerts.high} high-severity alerts detected.
|
|
|
708
708
|
|
|
709
709
|
Generate a new, complete response that incorporates this feedback.
|
|
710
710
|
`}}}}),Wu,f7=S({"src/lib/evaluation/index.ts"(){"use strict";hH(),DH(),vxr(),Rxr(),Uxr(),$E(),Jxr(),m7(),Qxr(),eAr(),tAr(),DH(),rAr(),Wu=class{contextBuilder;config;ragasEvaluator;constructor(e={}){this.config=e,this.contextBuilder=new xP,this.ragasEvaluator=new DP(this.config.evaluationModel,this.config.provider,this.config.threshold,this.config.promptGenerator)}async evaluate(e,t,r,n){const o=this.config.evaluationStrategy||"ragas",s=this.config.customEvaluator;switch(o){case"ragas":{const{evaluationResult:i,evalContext:a}=await this.evaluateWithRAGAS(e,t);return OUe(a,i,r,n.offTopicThreshold,n.highSeverityThreshold)}case"custom":{if(s){const{evaluationResult:i,evalContext:a}=await s(e,t);return OUe(a,i,r,n.offTopicThreshold,n.highSeverityThreshold)}throw new Error("Custom evaluator function not provided in config.")}default:throw new Error(`Unsupported evaluation strategy: ${o} `)}}async evaluateWithRAGAS(e,t){const r=this.contextBuilder.buildContext(e,t);return{evaluationResult:await this.ragasEvaluator.evaluate(r),evalContext:r}}}}});function Sze(e={}){const t={id:"autoEvaluation",name:"Auto Evaluation",description:"Automatically evaluates response quality and retries if needed.",priority:90,defaultEnabled:!1};return f.debug("Auto-Evaluation Middleware Config:",e),{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n,params:o})=>{const s=o,i=await n(),a=i.reasoning,l=i.content.filter(g=>g.type==="text").map(g=>g.text),c=i.content.filter(g=>g.type==="tool-call"),u=i.usage.inputTokens.total??0,d=i.usage.outputTokens.total??0,m={content:l.join(""),finishReason:i.finishReason.unified,reasoning:typeof a=="string"?a:Array.isArray(a)?a.map(g=>typeof g=="string"?g:g?.text??JSON.stringify(g)).join(`
|
|
711
|
-
`):void 0,usage:{input:u,output:d,total:u+d},toolCalls:c.length>0?c.map(g=>{let y;try{y=JSON.parse(g.input)}catch(v){f.warn(`Failed to parse tool call args for tool ${g.toolName}:`,v),y={raw:g.input}}return{toolCallId:g.toolCallId,toolName:g.toolName,args:y}}):void 0};if(e.blocking!==!1){const g=await g7(e,s,m);return{...i,evaluationResult:g}}else return g7(e,s,m).catch(g=>{f.error("Non-blocking auto-evaluation error:",g)}),i},wrapStream:async({doStream:n,params:o})=>{const s=o,i=await n(),[a,l]=i.stream.tee();return nAr(e,s,l).catch(c=>{f.error("Non-blocking stream auto-evaluation error:",c)}),{...i,stream:a}}},metadata:t}}async function g7(e,t,r){const n=e.blocking!==!1,o=e.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{const i=await new Wu({threshold:o,provider:e.provider,promptGenerator:e.promptGenerator,evaluationModel:e.evaluationModel}).evaluate(t,r,o,e);e.onEvaluationComplete&&await e.onEvaluationComplete(i)}catch(s){if(f.error("Error during auto-evaluation:",s),n)throw s}}async function nAr(e,t,r){let n="",o;const s=[],i=r.getReader();try{for(;;){const{done:c,value:u}=await i.read();if(c)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let d;try{d=JSON.parse(u.input)}catch(m){f.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),d={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:d})}break;case"finish":{const d=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:d,output:m,total:d+m}}break}}}finally{i.releaseLock()}const a={content:n,usage:o,toolCalls:s.length>0?s:void 0};e.blocking&&f.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");const l={...e,blocking:!1};await g7(l,t,a)}var oAr=S({"src/lib/middleware/builtin/autoEvaluation.ts"(){"use strict";f7(),q()}});function Cze(e){try{Object.defineProperty(e,XP,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function UE(e){return e===null||typeof e!="object"?!1:e[XP]===!0}function ZP(e){e===null||typeof e!="object"||e[XP]!==!0&&Cze(e)}function y7(e,t,r){if(typeof e=="function"&&!UE(t)){t!==null&&typeof t=="object"&&Cze(t);try{const n=e(r);Promise.resolve(n).catch(()=>{})}catch{}}}var XP,v7=S({"src/lib/utils/lifecycleCallbacks.ts"(){"use strict";XP=Symbol.for("neurolink.onErrorFired")}});function _7(e){if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){const t=e,r=typeof t.message=="string"?t.message:String(e);return Object.assign(new Error(r),t)}return new Error(String(e))}function w7(e={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{const o=Date.now();try{const s=await n();if(e.onFinish)try{const i=s.content?.map(l=>l.type==="text"?l.text:"").join("")??"",a=e.onFinish({text:i,usage:s.usage?{promptTokens:s.usage.inputTokens?.total??0,completionTokens:s.usage.outputTokens?.total??0}:void 0,duration:Date.now()-o,finishReason:String(s.finishReason??"")});Promise.resolve(a).catch(l=>{f.warn("[LifecycleMiddleware] onFinish callback error:",l)})}catch(i){f.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){const i=_7(s);throw y7(e.onError,i,{error:i,duration:Date.now()-o,recoverable:l1(i)}),i}},wrapStream:async({doStream:n})=>{const o=Date.now();try{const s=await n();if(!e.onChunk&&!e.onFinish&&!e.onError)return s;let i=0,a="";const l=new TransformStream({transform(c,u){try{if(c.type==="text-delta"&&(a+=c.textDelta),e.onChunk&&c.type)try{const d=e.onChunk({type:c.type,textDelta:c.type==="text-delta"?c.textDelta:void 0,sequenceNumber:i++});Promise.resolve(d).catch(m=>{f.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(d){f.warn("[LifecycleMiddleware] onChunk callback error:",d)}u.enqueue(c)}catch(d){const m=_7(d);throw y7(e.onError,m,{error:m,duration:Date.now()-o,recoverable:l1(m)}),m}},flush(){if(e.onFinish)try{const c=e.onFinish({text:a,duration:Date.now()-o});Promise.resolve(c).catch(u=>{f.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(c){f.warn("[LifecycleMiddleware] onFinish callback error:",c)}}});return{...s,stream:s.stream.pipeThrough(l)}}catch(s){const i=_7(s);throw y7(e.onError,i,{error:i,duration:Date.now()-o,recoverable:l1(i)}),i}}},metadata:{id:"lifecycle",name:"Lifecycle Callbacks",description:"Provides onFinish, onError, and onChunk callbacks for generation and streaming lifecycle events",priority:110,defaultEnabled:!1}}}var kze=S({"src/lib/middleware/builtin/lifecycle.ts"(){"use strict";q(),ct(),v7()}}),b7,xze=S({"src/lib/middleware/factory.ts"(){"use strict";Zkr(),kLe(),uxr(),oAr(),kze(),q(),Wv(),b7=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new CLe,this.initialize(e)}initialize(e){const t={analytics:mH,guardrails:RLe,autoEvaluation:Sze,lifecycle:w7};if(this.registerPreset({name:"default",description:"Default preset with analytics enabled.",config:{analytics:{enabled:!0}}}),this.registerPreset({name:"all",description:"Enables all available middleware.",config:{analytics:{enabled:!0},guardrails:{enabled:!0}}}),this.registerPreset({name:"security",description:"Focuses on security with guardrails.",config:{guardrails:{enabled:!0}}}),f.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){f.debug("Registering custom middleware");for(const r of e.middleware)this.register(r)}for(const r in t)if(!this.registry.has(r)){const n=t[r],o=e.middlewareConfig?.[r]?.config;f.debug(`Registering built-in middleware '${r}'`,o),this.registry.register(n(o))}}registerPreset(e,t=!1){if(this.presets.has(e.name)&&!t)throw new Error(`Preset with name '${e.name}' already exists. Use replace: true to override.`);this.presets.set(e.name,e)}register(e,t){this.registry.register(e,t)}applyMiddleware(e,t,r={}){const n=Date.now();try{const o={...this.options,...r,middlewareConfig:{...this.options.middlewareConfig,...r.middlewareConfig}},s=this.buildMiddlewareConfig(o);for(const[u,d]of Object.entries(s))if(f.debug(`Configuring middleware '${u}'`,{config:d}),d.enabled&&this.registry.has(u)){const m=this.getCreator(u);m&&this.registry.register(m(d.config),{replace:!0})}const i=this.registry.buildChain(t,s);if(i.length===0)return f.debug("No middleware to apply",{provider:t.provider}),e;f.debug(`Applying ${i.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:i.length});const l=hq({model:e,middleware:i}),c=Date.now()-n;return f.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:i.length,processingTime:c}),l}catch(o){return f.error("Failed to apply middleware",{provider:t.provider,error:o instanceof Error?o.message:String(o)}),e}}getCreator(e){const t={analytics:mH,guardrails:RLe,autoEvaluation:Sze,lifecycle:w7};return f.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){const t={},r=this.registry.list();for(const o of r)t[o.metadata.id]={enabled:!1,config:{}};let n=e.preset;if(!n&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(n="default"),n){const o=this.getPresetConfig(n);if(o)for(const[s,i]of Object.entries(o))t[s]&&(t[s]={...t[s],...i})}if(e.middlewareConfig)for(const[o,s]of Object.entries(e.middlewareConfig))t[o]={...t[o],...s};if(e.enabledMiddleware)for(const o of e.enabledMiddleware)t[o]&&(t[o].enabled=!0);if(e.disabledMiddleware)for(const o of e.disabledMiddleware)t[o]&&(t[o].enabled=!1);return t}getPresetConfig(e){const t=this.presets.get(e);return t?t.config:null}createContext(e,t,r={},n){return{provider:e,model:t,options:r,session:n,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){const t=[],r=[];for(const[n,o]of Object.entries(e)){if(!this.registry.has(n)){t.push(`Middleware '${n}' is not registered`);continue}o.enabled!==void 0&&typeof o.enabled!="boolean"&&t.push(`Middleware '${n}' enabled property must be boolean`),o.config&&typeof o.config!="object"&&t.push(`Middleware '${n}' config property must be an object`),o.conditions?.providers&&o.conditions.providers.length===0&&r.push(`Middleware '${n}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:r}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){const r=this.registry.buildChain(e,t),n=this.registry.getAggregatedStats(),o={};let s=0,i=0;for(const[a,l]of Object.entries(n))t[a]?.enabled&&(o[a]={applied:!0,executionTime:l.averageExecutionTime},s+=l.averageExecutionTime,i++);return{totalMiddleware:r.length,appliedMiddleware:i,totalExecutionTime:s,results:o}}createModelFactory(e,t={}){return async(r,n={})=>{const o=await e(),s={...t,...n,middlewareConfig:{...t.middlewareConfig,...n.middlewareConfig}};return this.applyMiddleware(o,r,s)}}}}}),QP,T7=S({"src/lib/models/manifests/anthropic.ts"(){"use strict";QP={defaultContextWindow:2e5,familyRules:[{pattern:/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,patch:{vision:!0}},{pattern:/claude-(?:fable|mythos)-\d/i,patch:{vision:!0}}],models:{"claude-sonnet-5":{aliases:["sonnet-5","claude-sonnet"],displayName:"Claude Sonnet 5",contextWindow:1e6,maxOutputTokens:64e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-opus-4-6":{aliases:["opus-4.6","claude-opus-latest"],displayName:"Claude Opus 4.6",contextWindow:1e6,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-6":{aliases:["sonnet-4.6"],displayName:"Claude Sonnet 4.6",contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-5-20251101":{aliases:["claude-opus-4-5","opus-4.5"],displayName:"Claude Opus 4.5",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"claude-sonnet-4-5-20250929":{aliases:["claude-sonnet-4-5","sonnet-4.5"],displayName:"Claude Sonnet 4.5",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-haiku-4-5-20251001":{aliases:["claude-haiku-4-5","haiku-4.5","claude-4-5-haiku"],displayName:"Claude 4.5 Haiku",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-opus-4-1-20250805":{aliases:["claude-opus-4-1","opus-4.1"],displayName:"Claude Opus 4.1",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-20250514":{aliases:["claude-opus-4"],displayName:"Claude Opus 4",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-20250514":{aliases:["claude-sonnet-4"],displayName:"Claude Sonnet 4",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-7-sonnet-20250219":{aliases:["claude-3-7-sonnet"],displayName:"Claude 3.7 Sonnet",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-5-sonnet-20241022":{aliases:["claude-3-5-sonnet"],displayName:"Claude 3.5 Sonnet",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-3-5-haiku-20241022":{aliases:["claude-3-5-haiku"],displayName:"Claude 3.5 Haiku",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:.8,output:4,cacheRead:.08,cacheWrite:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-3-opus-20240229":{aliases:["claude-3-opus"],displayName:"Claude 3 Opus",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-sonnet-20240229":{aliases:["claude-3-sonnet"],displayName:"Claude 3 Sonnet",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-haiku-20240307":{aliases:["claude-3-haiku"],displayName:"Claude 3 Haiku",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0}}}}}),E7,Aze=S({"src/lib/models/manifests/openai.ts"(){"use strict";E7={defaultContextWindow:128e3,models:{"gpt-4o":{aliases:["gpt4o","gpt-4-omni","openai-flagship"],displayName:"GPT-4 Omni",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:2.5,output:10,cacheRead:.625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},category:"general"}},"gpt-4o-mini":{aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],displayName:"GPT-4 Omni Mini",contextWindow:128e3,maxOutputTokens:16384,pricingPerMTok:{input:.15,output:.6,cacheRead:.0375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"gpt-5":{aliases:["gpt5","gpt-5-flagship","openai-latest"],displayName:"GPT-5",contextWindow:4e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10,cacheRead:.3125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5-mini":{aliases:["gpt5-mini","gpt-5-fast"],displayName:"GPT-5 Mini",contextWindow:4e5,maxOutputTokens:16384,pricingPerMTok:{input:.25,output:2,cacheRead:.0625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},o3:{aliases:["o3-reasoning","o3-thinking"],displayName:"O3",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},category:"reasoning"}},"o3-mini":{aliases:["o3-mini-reasoning"],displayName:"O3 Mini",contextWindow:2e5,maxOutputTokens:65536,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},category:"reasoning"}},"gpt-5-nano":{aliases:["gpt5-nano","gpt-5-cheapest"],displayName:"GPT-5 Nano",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:.05,output:.4,cacheRead:.0125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},category:"general"}},"gpt-5.2":{aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],displayName:"GPT-5.2 Thinking",contextWindow:4e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5.2-chat-latest":{aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],displayName:"GPT-5.2 Instant",contextWindow:128e3,maxOutputTokens:32e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},category:"general"}},"gpt-5.2-pro":{aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],displayName:"GPT-5.2 Pro",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-4.1":{aliases:["gpt-4.1","gpt41","million-context"],displayName:"GPT-4.1",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},category:"coding"}},"gpt-4.1-mini":{aliases:["gpt-4.1-mini","gpt41-mini"],displayName:"GPT-4.1 Mini",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.4,output:1.6,cacheRead:.1},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"coding"}},"gpt-4.1-nano":{aliases:["gpt-4.1-nano","gpt41-nano"],displayName:"GPT-4.1 Nano",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.1,output:.4,cacheRead:.025},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},category:"coding"}},"o3-pro":{aliases:["o3-pro","o3-professional"],displayName:"O3 Pro",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o4-mini":{aliases:["o4-mini","o4-fast"],displayName:"O4 Mini",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},category:"reasoning"}},o1:{aliases:["o1-full","o1-premium"],displayName:"O1",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:15,output:60,cacheRead:3.75},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o1-mini":{aliases:["o1-mini","o1-budget"],displayName:"O1 Mini",contextWindow:128e3,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:2.2,cacheRead:.1375},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},category:"reasoning"}},"gpt-4":{aliases:["gpt4","gpt-4-base"],displayName:"GPT-4",contextWindow:8192,maxOutputTokens:4096,pricingPerMTok:{input:30,output:60},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-4-turbo":{aliases:["gpt4-turbo","gpt-4-turbo-preview"],displayName:"GPT-4 Turbo",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:10,output:30},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-3.5-turbo":{aliases:["gpt35","gpt-3.5","chatgpt"],displayName:"GPT-3.5 Turbo",contextWindow:16385,maxOutputTokens:4096,pricingPerMTok:{input:.5,output:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},category:"general"}}}}}}),S7,Ize=S({"src/lib/models/manifests/google-ai.ts"(){"use strict";S7={defaultContextWindow:1048576,models:{"gemini-2.5-pro":{aliases:["gemini-pro","google-flagship","best-analysis"],displayName:"Gemini 2.5 Pro",contextWindow:2097152,maxOutputTokens:8192,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gemini-2.5-flash":{aliases:["gemini-flash","google-fast","best-value"],displayName:"Gemini 2.5 Flash",contextWindow:1048576,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:2.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),C7,Rze=S({"src/lib/models/manifests/vertex.ts"(){"use strict";C7={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),k7,Pze=S({"src/lib/models/manifests/bedrock.ts"(){"use strict";k7={defaultContextWindow:2e5,models:{"amazon.nova-premier-v1:0":{aliases:["nova-premier","aws-flagship"],displayName:"Amazon Nova Premier",contextWindow:1e6,maxOutputTokens:25e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!1},"amazon.nova-pro-v1:0":{aliases:["nova-pro","aws-balanced"],displayName:"Amazon Nova Pro",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"amazon.nova-lite-v1:0":{aliases:["nova-lite","aws-lite","aws-cheap"],displayName:"Amazon Nova Lite",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"anthropic.claude-opus-4-5-20251101-v1:0":{aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],displayName:"Claude 4.5 Opus (Bedrock)",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:5,output:25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"meta.llama4-maverick-17b-instruct-v1:0":{aliases:["bedrock-llama4","bedrock-llama-maverick"],displayName:"Llama 4 Maverick (Bedrock)",contextWindow:1e6,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1}}}}}),x7,Mze=S({"src/lib/models/manifests/azure.ts"(){"use strict";x7={defaultContextWindow:128e3,models:{"gpt-5.1":{aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],displayName:"GPT-5.1 (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-chat":{aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],displayName:"GPT-5.1 Chat (Azure)",contextWindow:3e5,maxOutputTokens:32e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex":{aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],displayName:"GPT-5.1 Codex (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-mini":{aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],displayName:"GPT-5.1 Codex Mini (Azure)",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-max":{aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],displayName:"GPT-5.1 Codex Max (Azure)",contextWindow:5e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-pro":{aliases:["azure-gpt-5-pro","gpt5-pro-azure"],displayName:"GPT-5 Pro (Azure)",contextWindow:256e3,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-turbo":{aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],displayName:"GPT-5 Turbo (Azure)",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),A7,Dze=S({"src/lib/models/manifests/mistral.ts"(){"use strict";A7={defaultContextWindow:128e3,models:{"mistral-large-latest":{aliases:["mistral-large","mistral-flagship"],displayName:"Mistral Large",contextWindow:131072,maxOutputTokens:8192,pricingPerMTok:{input:2,output:6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-small-latest":{aliases:["mistral-small","mistral-cheap"],displayName:"Mistral Small",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.2,output:.6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"codestral-latest":{aliases:["codestral","mistral-code"],displayName:"Codestral",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:.9},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"pixtral-large":{aliases:["pixtral","mistral-vision"],displayName:"Pixtral Large",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),I7,Oze=S({"src/lib/models/manifests/ollama.ts"(){"use strict";I7={defaultContextWindow:128e3,models:{"llama4:latest":{aliases:["llama4","llama4-local"],displayName:"Llama 4",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.3:latest":{aliases:["llama3.3","llama3.3-local"],displayName:"Llama 3.3",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.2:latest":{aliases:["llama3.2","llama","local","offline"],displayName:"Llama 3.2 Latest",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"deepseek-r1:70b":{aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],displayName:"DeepSeek-R1 70B",contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"qwen3:72b":{aliases:["qwen3","qwen3-72b-local"],displayName:"Qwen 3 72B",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-large:latest":{aliases:["mistral-large-local"],displayName:"Mistral Large (Local)",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),R7,Nze=S({"src/lib/models/manifests/litellm.ts"(){"use strict";R7={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:128e3,vision:!1,functionCalling:!1}}}}});function sAr(e){if(!e)return!1;for(const t of BE){if(e===t)return!0;const r=e.indexOf(t);if(r===-1)continue;const n=r===0?"":e[r-1],o=e[r+t.length]??"",s=i=>i===""||/[-_:./@]/.test(i);if(s(n)&&s(o))return!0}return!1}function Vd(e){const t={};for(const[r,n]of Object.entries(e.models))r!=="_default"&&(t[r]=n.maxOutputTokens);return t}var BE,P7,M7,Ai,Sf,zE,jE,D7,eM,Lze,Cf,Bs,O7,oi,qa,$ze,iAr,es=S({"src/lib/core/constants.ts"(){"use strict";T7(),Aze(),Ize(),Rze(),Pze(),Mze(),Dze(),Oze(),Nze(),BE=["gemini-3-pro-image-preview","gemini-2.5-flash-image","gemini-3.1-flash-image-preview","stable-image-ultra","stable-image-core","sd3.5-large","sd3.5-large-turbo","sd3.5-medium","V_1","V_1_TURBO","V_2","V_2_TURBO","V_2A","V_2A_TURBO","V_3","recraftv3","recraftv2","gpt-image-1","dall-e-3","dall-e-2","black-forest-labs/flux","stability-ai/sdxl","stability-ai/stable-diffusion"],P7=[...BE,"gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-pro-preview-customtools","gemini-3-pro-preview","gemini-3-pro-preview-11-2025","gemini-3-pro-latest","gemini-3-flash-preview"],M7=.7,Ai=200,Sf=2,zE=3e5,jE=3e5,D7=12e4,eM=.85,Lze=3e4,Cf=5e3,Bs={min:1,max:500,default:Ai},O7={anthropic:{default:64e3,...Vd(QP)},openai:{default:128e3,...Vd(E7)},"google-ai":{default:64e3,...Vd(S7)},vertex:{default:64e3,...Vd(C7)},bedrock:{default:64e3,...Vd(k7)},azure:{default:128e3,...Vd(x7)},mistral:{default:128e3,...Vd(A7)},ollama:{default:64e3,...Vd(I7)},litellm:{default:128e3,...Vd(R7)},default:64e3},oi={MAX_SIZE_MB:20,DEFAULT_MAX_PAGES:20,MAX_SCALE:10,MIN_SCALE:.1,DEFAULT_SCALE:1.5,PAGE_COUNT_TIMEOUT_MS:5e3,DEFAULT_MAX_CANVAS_PIXELS:16777216,MIN_EFFECTIVE_SCALE:.1},qa={MAX_PROMPT_LENGTH:1e6,HIGH_MEMORY_THRESHOLD:100,LONG_TIMEOUT_WARNING:3e5,DEFAULT_CONCURRENCY_LIMIT:3,MAX_CONCURRENCY_LIMIT:5,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_INITIAL_DELAY:1e3,DEFAULT_MAX_DELAY:3e4,DEFAULT_BACKOFF_MULTIPLIER:2},$ze=15e3,iAr={maxTokens:(()=>{if(!process.env.NEUROLINK_DEFAULT_MAX_TOKENS)return;const e=parseInt(process.env.NEUROLINK_DEFAULT_MAX_TOKENS,10);return Number.isFinite(e)?e:void 0})(),temperature:process.env.NEUROLINK_DEFAULT_TEMPERATURE?(()=>{const e=parseFloat(process.env.NEUROLINK_DEFAULT_TEMPERATURE);return Number.isFinite(e)?e:M7})():M7}}}),Fze,aAr=S({"src/lib/models/manifests/openai-compatible.ts"(){"use strict";Fze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Uze,lAr=S({"src/lib/models/manifests/openrouter.ts"(){"use strict";Uze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Bze,cAr=S({"src/lib/models/manifests/huggingface.ts"(){"use strict";Bze={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),zze,uAr=S({"src/lib/models/manifests/sagemaker.ts"(){"use strict";zze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),jze,dAr=S({"src/lib/models/manifests/deepseek.ts"(){"use strict";jze={defaultContextWindow:64e3,models:{_default:{aliases:[],contextWindow:64e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),qze,pAr=S({"src/lib/models/manifests/nvidia-nim.ts"(){"use strict";qze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Gze,mAr=S({"src/lib/models/manifests/lm-studio.ts"(){"use strict";Gze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),Hze,hAr=S({"src/lib/models/manifests/llamacpp.ts"(){"use strict";Hze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),Vze,fAr=S({"src/lib/models/manifests/xai.ts"(){"use strict";Vze={defaultContextWindow:131072,models:{_default:{aliases:[],contextWindow:131072,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Wze,gAr=S({"src/lib/models/manifests/groq.ts"(){"use strict";Wze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Kze,yAr=S({"src/lib/models/manifests/cerebras.ts"(){"use strict";Kze={defaultContextWindow:65536,models:{_default:{aliases:[],contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!0}}}}}),Jze,vAr=S({"src/lib/models/manifests/cohere.ts"(){"use strict";Jze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Yze,_Ar=S({"src/lib/models/manifests/together-ai.ts"(){"use strict";Yze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Zze,wAr=S({"src/lib/models/manifests/fireworks.ts"(){"use strict";Zze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Xze,bAr=S({"src/lib/models/manifests/perplexity.ts"(){"use strict";Xze={defaultContextWindow:127e3,models:{_default:{aliases:[],contextWindow:127e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Qze,TAr=S({"src/lib/models/manifests/cloudflare.ts"(){"use strict";Qze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),eje,EAr=S({"src/lib/models/manifests/replicate.ts"(){"use strict";eje={defaultContextWindow:32768,models:{_default:{aliases:[],contextWindow:32768,maxOutputTokens:32768,vision:!1,functionCalling:!1}}}}}),tje,SAr=S({"src/lib/models/manifests/voyage.ts"(){"use strict";tje={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),rje,CAr=S({"src/lib/models/manifests/jina.ts"(){"use strict";rje={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),nje,kAr=S({"src/lib/models/manifests/stability.ts"(){"use strict";nje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),oje,xAr=S({"src/lib/models/manifests/ideogram.ts"(){"use strict";oje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),sje,AAr=S({"src/lib/models/manifests/recraft.ts"(){"use strict";sje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}});function ije(e){return GE[e]}function aje(){return Object.keys(GE)}function qE(e,t,r){if(!e.familyRules)return r;let n=r;for(const o of e.familyRules)o.pattern.test(t)&&(n={...n,...o.patch});return n}function N7(e,t){const r=GE[e];if(!r)return;const n=r.models[t];if(n)return qE(r,t,n);const o=Object.entries(r.models).find(([s,i])=>s!=="_default"&&i.aliases.includes(t));if(o)return qE(r,t,o[1])}function IAr(e,t){const r=GE[e];if(!r)return;const n=r.models[t];if(n)return qE(r,t,n);const o=Object.entries(r.models).find(([a,l])=>a!=="_default"&&l.aliases.includes(t));if(o)return qE(r,t,o[1]);const i=Object.keys(r.models).filter(a=>a!=="_default").sort((a,l)=>l.length-a.length).find(a=>t.startsWith(a));if(i)return qE(r,t,r.models[i])}var GE,tM=S({"src/lib/models/manifestRegistry.ts"(){"use strict";T7(),Aze(),Mze(),Pze(),Oze(),Dze(),Ize(),aAr(),lAr(),Rze(),cAr(),Nze(),uAr(),dAr(),pAr(),mAr(),hAr(),fAr(),gAr(),yAr(),vAr(),_Ar(),wAr(),bAr(),TAr(),EAr(),SAr(),CAr(),kAr(),xAr(),AAr(),GE={anthropic:QP,openai:E7,azure:x7,bedrock:k7,ollama:I7,mistral:A7,"google-ai":S7,"openai-compatible":Fze,openrouter:Uze,vertex:C7,huggingface:Bze,litellm:R7,sagemaker:zze,deepseek:jze,"nvidia-nim":qze,"lm-studio":Gze,llamacpp:Hze,xai:Vze,groq:Wze,cerebras:Kze,cohere:Jze,"together-ai":Yze,fireworks:Zze,perplexity:Xze,cloudflare:Qze,replicate:eje,voyage:tje,jina:rje,stability:nje,ideogram:oje,recraft:sje}}});function RAr(e){return/mini|nano|haiku|flash|lite/i.test(e)?"fast":/opus|^o1|^o3|-pro$/i.test(e)?"slow":"medium"}function lje(e){return e.reasoning?"high":"medium"}function PAr(){const e={};for(const t of aje()){const r=ije(t);if(r)for(const[n,o]of Object.entries(r.models)){if(n==="_default"||!o.pricingPerMTok)continue;if(e[n]){f.debug(`[modelRegistry] Manifest id collision: "${n}" already derived from ${e[n].provider}; keeping first, skipping ${t}`);continue}const s=o.reasoning?9:6,i=L7[n];e[n]={id:n,name:o.displayName??n,provider:t,description:o.displayName??n,capabilities:{vision:o.vision,functionCalling:o.functionCalling,codeGeneration:!0,reasoning:o.reasoning??!1,multimodal:o.vision||o.nativeAudio===!0,streaming:!0,jsonMode:o.jsonMode??!1,samplingParams:o.samplingParams},pricing:{inputCostPer1K:o.pricingPerMTok.input/1e3,outputCostPer1K:o.pricingPerMTok.output/1e3,currency:"USD"},performance:o.curated?.performance??{speed:RAr(n),quality:lje(o),accuracy:lje(o)},limits:{maxContextTokens:o.contextWindow,maxOutputTokens:o.maxOutputTokens,...i?.limits?.maxRequestsPerMinute!==void 0?{maxRequestsPerMinute:i.limits.maxRequestsPerMinute}:{}},useCases:o.curated?.useCases??{coding:o.functionCalling?8:5,creative:o.vision?7:6,analysis:s,conversation:7,reasoning:s,translation:6,summarization:7},aliases:o.aliases,deprecated:i?.deprecated??!1,...i?.releaseDate!==void 0?{releaseDate:i.releaseDate}:{},isLocal:t==="ollama"||t==="lm-studio"||t==="llamacpp",category:o.curated?.category??(o.reasoning?"reasoning":"general")}}}return e}function HE(){return Object.values(Ku)}function MAr(e){return Ku[e]}function DAr(e,t,r){const n=r.toLowerCase(),o=xm[n]??n,s=Ku[o];return!s||s.provider!==t.toLowerCase()?!0:s.capabilities[e]??!0}function OAr(e,t){const r=(t??"").toLowerCase();if(!r)return!0;const n=xm[r]??r,o=Ku[n];return o&&o.provider===e.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!uje.some(s=>s.test(n)||s.test(r))}function eu(e,t,r,n){return OAr(e,t)?r:((r.temperature!==void 0||r.topP!==void 0)&&f.debug(`[ModelRegistry] Stripping sampling params for ${e}/${t} at ${n} \u2014 model rejects temperature/topP`,{provider:e,model:t,site:n,hadTemperature:r.temperature!==void 0,hadTopP:r.topP!==void 0}),{})}function NAr(e){return Object.values(Ku).filter(t=>t.provider===e)}function LAr(){return aje()}function $Ar(e,t,r){const n=t/1e3*e.pricing.inputCostPer1K,o=r/1e3*e.pricing.outputCostPer1K;return n+o}var L7,Ku,xm,cje,uje,Am=S({"src/lib/models/modelRegistry.ts"(){"use strict";yt(),q(),tM(),L7={"gpt-4o":{id:"gpt-4o",name:"GPT-4 Omni",provider:"openai",description:"Most capable OpenAI model with vision and advanced reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.005,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},aliases:["gpt4o","gpt-4-omni","openai-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-13",category:"general"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4 Omni Mini",provider:"openai",description:"Fast and cost-effective model with strong performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:15e-5,outputCostPer1K:6e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-07-18",category:"general"},"gpt-5":{id:"gpt-5",name:"GPT-5",provider:"openai",description:"OpenAI's most advanced model with breakthrough reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32768,maxRequestsPerMinute:200},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["gpt5","gpt-5-flagship","openai-latest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",provider:"openai",description:"Fast and efficient GPT-5 variant for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["gpt5-mini","gpt-5-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},o3:{id:"o3",name:"O3",provider:"openai",description:"Advanced reasoning model with extended thinking capabilities for complex tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:100},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["o3-reasoning","o3-thinking"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"o3-mini":{id:"o3-mini",name:"O3 Mini",provider:"openai",description:"Cost-effective reasoning model with strong logical capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},aliases:["o3-mini-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",provider:"openai",description:"Fastest and most cost-effective GPT-5 variant for simple tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-5,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:272e3,maxOutputTokens:128e3,maxRequestsPerMinute:2e3},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},aliases:["gpt5-nano","gpt-5-cheapest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"OpenAI's latest flagship model with deep reasoning capabilities, 100% on AIME 2025, 80% SWE-bench Verified",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:150},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"Fast everyday model for quick tasks with excellent performance across all domains",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"general"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",provider:"openai",description:"Highest quality model for science, math, and complex problem-solving with 92.4% GPQA Diamond performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.021,outputCostPer1K:.168,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",provider:"openai",description:"Advanced coding model with 1 million token context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.008,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:200},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["gpt-4.1","gpt41","million-context"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",provider:"openai",description:"Fast GPT-4.1 variant with 1M context for efficient coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:4e-4,outputCostPer1K:.0016,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:500},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt-4.1-mini","gpt41-mini"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",provider:"openai",description:"Most cost-effective GPT-4.1 variant with 1M context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:1e-4,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:1e3},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},aliases:["gpt-4.1-nano","gpt41-nano"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"o3-pro":{id:"o3-pro",name:"O3 Pro",provider:"openai",description:"Most powerful reasoning model for complex scientific and coding tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.12,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o3-pro","o3-professional"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},"o4-mini":{id:"o4-mini",name:"O4 Mini",provider:"openai",description:"Fast reasoning model optimized for math, coding, and visual tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},aliases:["o4-mini","o4-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},o1:{id:"o1",name:"O1",provider:"openai",description:"Premium reasoning model with highest capability for mission-critical tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.15,outputCostPer1K:.6,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o1-full","o1-premium"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-preview":{id:"o1-preview",name:"O1 Preview",provider:"openai",description:"Preview version of O1 reasoning model",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:100},useCases:{coding:9,creative:6,analysis:9,conversation:6,reasoning:9,translation:5,summarization:6},aliases:["o1-preview"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-mini":{id:"o1-mini",name:"O1 Mini",provider:"openai",description:"Cost-effective O1 variant with strong reasoning capabilities",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},aliases:["o1-mini","o1-budget"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"gpt-4":{id:"gpt-4",name:"GPT-4",provider:"openai",description:"Previous generation flagship model (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:8192,maxOutputTokens:4096,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4","gpt-4-base"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-14",category:"general"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",provider:"openai",description:"Faster GPT-4 variant with extended context (legacy)",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4-turbo","gpt-4-turbo-preview"],deprecated:!0,isLocal:!1,releaseDate:"2024-04-09",category:"general"},"gpt-3.5-turbo":{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo",provider:"openai",description:"Fast and cost-effective model for simpler tasks (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!1,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-4,outputCostPer1K:.0015,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:16385,maxOutputTokens:4096,maxRequestsPerMinute:3500},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},aliases:["gpt35","gpt-3.5","chatgpt"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-01",category:"general"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google-ai",description:"Google's most capable multimodal model with large context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00125,outputCostPer1K:.005,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2097152,maxOutputTokens:8192,maxRequestsPerMinute:360},useCases:{coding:9,creative:8,analysis:10,conversation:8,reasoning:9,translation:9,summarization:9},aliases:["gemini-pro","google-flagship","best-analysis"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"reasoning"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google-ai",description:"Fast and efficient multimodal model with large context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:75e-6,outputCostPer1K:3e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1048576,maxOutputTokens:8192,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gemini-flash","google-fast","best-value"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"general"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",description:"Anthropic's most capable model with exceptional reasoning, coding, and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["claude-4.5-opus","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",provider:"anthropic",description:"For complex agentic coding and enterprise work",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-5","claude-opus-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-07-24",category:"reasoning"},"claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",provider:"anthropic",description:"The best combination of speed and intelligence",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.002,outputCostPer1K:.01,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["sonnet-5","claude-sonnet-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-30",category:"general"},"claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",provider:"anthropic",description:"Next-generation intelligence for long-running agents",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.01,outputCostPer1K:.05,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["fable-5"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-09",category:"reasoning"},"claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",provider:"anthropic",description:"Anthropic Opus 4.8, superseded by Claude Opus 5",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.8"],deprecated:!1,isLocal:!1,releaseDate:"2026-05-28",category:"reasoning"},"claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",provider:"anthropic",description:"Anthropic Opus 4.7, superseded by Claude Opus 4.8",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.7"],deprecated:!1,isLocal:!1,releaseDate:"2026-04-16",category:"reasoning"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Balanced Claude model with excellent performance across all tasks including vision and reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-4.5-sonnet","sonnet-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-09-29",category:"coding"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku",provider:"anthropic",description:"Latest fast and efficient Claude model with vision support",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["claude-4.5-haiku","claude-haiku-latest","haiku-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-10-15",category:"general"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Anthropic's most capable model with excellent reasoning and coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-3.5-sonnet","claude-sonnet","best-coding","claude-latest"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"coding"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku",provider:"anthropic",description:"Fast and efficient Claude model for quick tasks",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["claude-3.5-haiku","claude-haiku","claude-fast"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"general"},"mistral-large-latest":{id:"mistral-large-latest",name:"Mistral Large",provider:"mistral",description:"Mistral's flagship model with excellent reasoning and multilingual capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["mistral-large","mistral-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"mistral-small-latest":{id:"mistral-small-latest",name:"Mistral Small",provider:"mistral",description:"Efficient model for simple tasks and cost-sensitive applications",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:6,creative:6,analysis:7,conversation:7,reasoning:6,translation:7,summarization:7},aliases:["mistral-small","mistral-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-02-26",category:"general"},"codestral-latest":{id:"codestral-latest",name:"Codestral",provider:"mistral",description:"Specialized code generation model trained on 80+ programming languages",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:10,creative:5,analysis:7,conversation:5,reasoning:8,translation:5,summarization:6},aliases:["codestral","mistral-code"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-29",category:"coding"},"pixtral-large":{id:"pixtral-large",name:"Pixtral Large",provider:"mistral",description:"Multimodal vision-language model for image understanding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:9,conversation:7,reasoning:8,translation:7,summarization:8},aliases:["pixtral","mistral-vision"],deprecated:!0,isLocal:!1,releaseDate:"2024-09-01",category:"vision"},"llama4:latest":{id:"llama4:latest",name:"Llama 4",provider:"ollama",description:"Latest Llama 4 with multimodal vision and tool capabilities, runs locally",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:8},aliases:["llama4","llama4-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"llama3.3:latest":{id:"llama3.3:latest",name:"Llama 3.3",provider:"ollama",description:"High-performance Llama 3.3 for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["llama3.3","llama3.3-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-12-01",category:"general"},"llama3.2:latest":{id:"llama3.2:latest",name:"Llama 3.2 Latest",provider:"ollama",description:"Local Llama model for private, offline AI generation",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:6,creative:7,analysis:6,conversation:7,reasoning:6,translation:6,summarization:6},aliases:["llama3.2","llama","local","offline"],deprecated:!1,isLocal:!0,releaseDate:"2024-09-25",category:"general"},"deepseek-r1:70b":{id:"deepseek-r1:70b",name:"DeepSeek-R1 70B",provider:"ollama",description:"State-of-the-art reasoning model rivaling OpenAI O1, runs locally",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:65536,maxOutputTokens:8192},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:7,summarization:7},aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],deprecated:!1,isLocal:!0,releaseDate:"2025-01-20",category:"reasoning"},"qwen3:72b":{id:"qwen3:72b",name:"Qwen 3 72B",provider:"ollama",description:"Advanced reasoning and multilingual model from Alibaba",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["qwen3","qwen3-72b-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"mistral-large:latest":{id:"mistral-large:latest",name:"Mistral Large (Local)",provider:"ollama",description:"Mistral Large model for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:9,summarization:8},aliases:["mistral-large-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-02-26",category:"general"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Amazon Nova Premier",provider:"bedrock",description:"Amazon's most capable foundation model with advanced multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.0025,outputCostPer1K:.0125,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:100},useCases:{coding:9,creative:9,analysis:10,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["nova-premier","aws-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-01",category:"reasoning"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Amazon Nova Pro",provider:"bedrock",description:"Highly capable multimodal model balancing accuracy and speed",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:8e-4,outputCostPer1K:.0032,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["nova-pro","aws-balanced"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Amazon Nova Lite",provider:"bedrock",description:"Fast and cost-effective multimodal model optimized for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:6e-5,outputCostPer1K:24e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:500},useCases:{coding:7,creative:7,analysis:8,conversation:8,reasoning:7,translation:8,summarization:9},aliases:["nova-lite","aws-lite","aws-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude 4.5 Opus (Bedrock)",provider:"bedrock",description:"Anthropic's most capable model available on Bedrock for enterprise workloads",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.015,outputCostPer1K:.075,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick (Bedrock)",provider:"bedrock",description:"Meta's latest Llama 4 model with vision on Bedrock",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:19e-5,outputCostPer1K:55e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["bedrock-llama4","bedrock-llama-maverick"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-01",category:"general"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1 (Azure)",provider:"azure",description:"Azure's latest GPT-5.1 flagship model with enhanced reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.045,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"gpt-5.1-chat":{id:"gpt-5.1-chat",name:"GPT-5.1 Chat (Azure)",provider:"azure",description:"Azure GPT-5.1 optimized for conversational interactions",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:32e3,maxRequestsPerMinute:150},useCases:{coding:8,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"general"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex (Azure)",provider:"azure",description:"Azure GPT-5.1 specialized for code generation and software development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:7,analysis:9,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini (Azure)",provider:"azure",description:"Fast and efficient Azure code model for quick development tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.009,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:6,analysis:8,conversation:7,reasoning:8,translation:6,summarization:7},aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max (Azure)",provider:"azure",description:"Azure's most powerful code model for complex enterprise development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.025,outputCostPer1K:.075,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:5e5,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro (Azure)",provider:"azure",description:"Azure GPT-5 Pro with enhanced enterprise features",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.02,outputCostPer1K:.06,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5-pro","gpt5-pro-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-turbo":{id:"gpt-5-turbo",name:"GPT-5 Turbo (Azure)",provider:"azure",description:"Azure GPT-5 Turbo optimized for fast responses",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.008,outputCostPer1K:.024,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32768,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],deprecated:!0,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},Ku={...L7,...PAr()},xm={},Object.values(Ku).forEach(e=>{e.aliases.forEach(t=>{xm[t.toLowerCase()]=e.id})}),Object.entries(t1).forEach(([e,t])=>{xm[e.toLowerCase().replace(/_/g,"-")]=t}),xm.local="llama3.2:latest",cje={coding:["gpt-5.2-pro","claude-opus-4-5-20251101","gpt-5.2","codestral-latest","claude-sonnet-4-5-20250929"],creative:["gpt-5.2","claude-opus-4-5-20251101","gpt-5","gemini-2.5-pro"],analysis:["gpt-5.2-pro","gemini-2.5-pro","claude-opus-4-5-20251101","o3","amazon.nova-premier-v1:0"],conversation:["gpt-5.2-chat-latest","gpt-5","claude-sonnet-4-5-20250929","gpt-4o"],reasoning:["gpt-5.2-pro","gpt-5.2","o3","claude-opus-4-5-20251101","gemini-2.5-pro","deepseek-r1:70b"],translation:["gemini-2.5-pro","mistral-large-latest","gpt-5"],summarization:["gemini-2.5-flash","gpt-5-mini","claude-haiku-4-5-20251001"],"cost-effective":["gemini-2.5-flash","gpt-4o-mini","mistral-small-latest","amazon.nova-lite-v1:0"],"high-quality":["gpt-5.2-pro","gpt-5.2","claude-opus-4-5-20251101","gemini-2.5-pro"],fast:["gpt-5.2-chat-latest","gpt-5-mini","gemini-2.5-flash","claude-haiku-4-5-20251001","o3-mini"],local:["llama4:latest","deepseek-r1:70b","qwen3:72b","llama3.3:latest"],multimodal:["gpt-5.2","gpt-5.2-pro","claude-opus-4-5-20251101","gemini-2.5-pro","amazon.nova-premier-v1:0"]},uje=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]}});function e0(e,t){if(e.output?.mode==="music")return"music";if(e.output?.mode==="avatar")return"avatar";if(e.output?.mode==="video")return"video";if(e.output?.mode==="ppt")return"ppt";const r=e.output?.format==="json"||e.output?.format==="structured"||e.output?.format==="text";return sAr(t)&&!r?"image":e.tts?.enabled&&!e.tts?.useAiResponse?"tts-direct":"text"}var rM=S({"src/lib/core/resolveRequestKind.ts"(){"use strict";es()}}),$7,dje,pje,F7,mje=S({"otel-stub:@opentelemetry/sdk-trace-base"(){$7={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},dje={startSpan(){return $7},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)($7)}},pje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return dje}shutdown(){return Promise.resolve()}},F7=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}}}),U7,hje=S({"otel-stub:@opentelemetry/exporter-trace-otlp-http"(){U7=class{export(){}shutdown(){return Promise.resolve()}}}}),B7,fje=S({"otel-stub:@opentelemetry/resources"(){B7=e=>({attributes:e||{},merge(){return this}})}}),z7,j7,gje=S({"otel-stub:@opentelemetry/semantic-conventions"(){z7="service.name",j7="service.version"}}),yje={};he(yje,{ATTR_SERVICE_NAME:()=>Vje,ATTR_SERVICE_VERSION:()=>Wje,AsyncLocalStorageContextManager:()=>Gje,BasicTracerProvider:()=>Aje,BatchLogRecordProcessor:()=>Bje,BatchSpanProcessor:()=>Pje,DiagConsoleLogger:()=>_je,DiagLogLevel:()=>wje,INVALID_SPAN_CONTEXT:()=>Cje,LangfuseSpanProcessor:()=>Fje,LoggerProvider:()=>Uje,MeterProvider:()=>zje,NodeSDK:()=>xje,NodeTracerProvider:()=>Ije,OTLPLogExporter:()=>Dje,OTLPMetricExporter:()=>Oje,OTLPTraceExporter:()=>Mje,PeriodicExportingMetricReader:()=>jje,SEMRESATTRS_SERVICE_NAME:()=>Kje,SEMRESATTRS_SERVICE_VERSION:()=>Jje,SeverityNumber:()=>qje,SimpleSpanProcessor:()=>Rje,SpanKind:()=>K7,SpanStatusCode:()=>W7,TraceFlags:()=>vje,ValueType:()=>bje,W3CTraceContextPropagator:()=>Hje,baggageEntryMetadataFromString:()=>kje,context:()=>G7,default:()=>Yje,diag:()=>sM,getNodeAutoInstrumentations:()=>Nje,isSpanContextValid:()=>Tje,isValidSpanId:()=>Sje,isValidTraceId:()=>Eje,metrics:()=>V7,propagation:()=>H7,registerInstrumentations:()=>Lje,resourceFromAttributes:()=>$je,trace:()=>q7});var nM,VE,oM,WE,q7,G7,H7,V7,sM,W7,K7,vje,_je,wje,bje,Tje,Eje,Sje,Cje,kje,xje,Aje,Ije,Rje,Pje,Mje,Dje,Oje,Nje,Lje,$je,Fje,Uje,Bje,zje,jje,qje,Gje,Hje,Vje,Wje,Kje,Jje,Yje,FAr=S({"otel-stub:@opentelemetry/context-async-hooks"(){nM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},VE={startSpan(){return nM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(nM)}},oM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},WE={getValue(){},setValue(){return WE},deleteValue(){return WE}},q7={getTracer(){return VE},getTracerProvider(){return{getTracer(){return VE}}},setGlobalTracerProvider(){},getSpan(){return nM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},G7={active(){return WE},with(e,t){return t()},bind(e,t){return t},setValue(){return WE},getValue(){}},H7={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},V7={getMeter(){return oM},getMeterProvider(){return{getMeter(){return oM}}},setGlobalMeterProvider(){}},sM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return sM}},W7={UNSET:0,OK:1,ERROR:2},K7={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},vje={NONE:0,SAMPLED:1},_je=class{},wje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},bje={INT:0,DOUBLE:1},Tje=()=>!1,Eje=()=>!1,Sje=()=>!1,Cje={traceId:"0",spanId:"0",traceFlags:0},kje=()=>({}),xje=class{start(){}shutdown(){return Promise.resolve()}},Aje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return VE}shutdown(){return Promise.resolve()}},Ije=class{register(){}addSpanProcessor(){}getTracer(){return VE}shutdown(){return Promise.resolve()}},Rje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Pje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Mje=class{export(){}shutdown(){return Promise.resolve()}},Dje=class{export(){}shutdown(){return Promise.resolve()}},Oje=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Nje=()=>[],Lje=()=>{},$je=e=>({attributes:e||{},merge(){return this}}),Fje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Uje=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},Bje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},zje=class{constructor(){}getMeter(){return oM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},jje=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},qje={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},Gje=class{enable(){return this}disable(){return this}},Hje=class{inject(){}extract(e){return e}fields(){return[]}},Vje="service.name",Wje="service.version",Kje="service.name",Jje="service.version",Yje={trace:q7,context:G7,propagation:H7,metrics:V7,diag:sM,SpanStatusCode:W7,SpanKind:K7}}}),J7={};he(J7,{TelemetryService:()=>kf});var kf,KE=S({"src/lib/telemetry/telemetryService.ts"(){"use strict";er(),mje(),hje(),fje(),gje(),q(),kf=class PA{static instance;tracerProvider;enabled=!1;initialized=!1;usingExternalTracerProvider=!1;meter;tracer;aiRequestCounter;aiRequestDuration;aiTokensUsed;aiProviderErrors;aiCostUsd;mcpToolCalls;connectionCounter;responseTimeHistogram;activeConnectionCount=0;errorCount=0;requestCount=0;totalResponseTime=0;responseTimeCount=0;constructor(){this.enabled=this.isTelemetryEnabled(),this.enabled?this.initializeTelemetry():f.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return PA.instance||(PA.instance=new PA),PA.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{const t=vt.getTracerProvider();if(!t)return!1;const r=t.constructor?.name||"";if(r&&r!=="ProxyTracerProvider"&&r!=="NoopTracerProvider")return!0;const o=(typeof t.getDelegate=="function"?t.getDelegate():t._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(t){return f.warn("[Telemetry] Failed checking for external TracerProvider",{error:t instanceof Error?t.message:String(t)}),!1}}adoptExternalTracerProvider(t){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=Mh.getMeter("neurolink-ai"),this.tracer=vt.getTracer("neurolink-ai"),this.initializeMetrics(),f.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:t,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered");return}const t=B7({[z7]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[j7]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),r=new U7({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new pje({resource:t,spanProcessors:[new F7(r)]}),this.meter=Mh.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),f.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(t){const r=t instanceof Error?t.message:String(t);if((r.includes("duplicate registration")||r.includes("already registered")||r.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected");return}f.error("[Telemetry] Failed to initialize:",t),this.enabled=!1}}initializeMetrics(){!this.enabled||!this.meter||(this.aiRequestCounter=this.meter.createCounter("ai_requests_total",{description:"Total number of AI requests"}),this.aiRequestDuration=this.meter.createHistogram("ai_request_duration_ms",{description:"AI request duration in milliseconds"}),this.aiTokensUsed=this.meter.createCounter("ai_tokens_used_total",{description:"Total number of AI tokens used"}),this.aiCostUsd=this.meter.createCounter("ai_cost_usd_total",{description:"Total accumulated AI cost in USD"}),this.aiProviderErrors=this.meter.createCounter("ai_provider_errors_total",{description:"Total number of AI provider errors"}),this.mcpToolCalls=this.meter.createCounter("mcp_tool_calls_total",{description:"Total number of MCP tool calls"}),this.connectionCounter=this.meter.createCounter("connections_total",{description:"Total number of connections"}),this.responseTimeHistogram=this.meter.createHistogram("response_time_ms",{description:"Response time in milliseconds"}))}async initialize(){if(this.enabled){if(this.usingExternalTracerProvider){this.initialized=!0,f.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,f.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{const{AsyncLocalStorageContextManager:t}=await Promise.resolve().then(()=>(FAr(),yje));Er.setGlobalContextManager(new t().enable())}catch{}this.initialized=!0,f.debug("[Telemetry] Tracer provider started successfully")}catch(t){f.error("[Telemetry] Failed to start:",t),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(t,r,n="generate_text"){if(!this.enabled||!this.tracer)return await r();const o=this.tracer.startSpan(`ai.${t}.${n}`,{attributes:{"ai.provider":t,"ai.operation":n}});try{const s=await r();return o.setStatus({code:1}),s}catch(s){throw o.setStatus({code:2,message:s instanceof Error?s.message:"Unknown error"}),o.recordException(s),s}finally{o.end()}}recordAIRequest(t,r,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!this.enabled||!this.aiRequestCounter)return;const i={provider:t,model:r};this.aiRequestCounter.add(1,i),this.aiRequestDuration?.record(o,i),this.aiTokensUsed?.add(n,i),s!==void 0&&Number.isFinite(s)&&s>0&&this.aiCostUsd?.add(s,i)}recordAIError(t,r){this.errorCount++,!(!this.enabled||!this.aiProviderErrors)&&this.aiProviderErrors.add(1,{provider:t,error:r.name,message:r.message.substring(0,100)})}recordMCPToolCall(t,r,n){!this.enabled||!this.mcpToolCalls||this.mcpToolCalls.add(1,{tool:t,success:n.toString(),duration_bucket:this.getDurationBucket(r)})}recordConnection(t){this.activeConnectionCount++,!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(1,{connection_type:t})}recordConnectionClosed(t){this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(-1,{connection_type:t,event:"disconnect"})}recordResponseTime(t,r,n){this.totalResponseTime+=n,this.responseTimeCount++,!(!this.enabled||!this.responseTimeHistogram)&&this.responseTimeHistogram.record(n,{endpoint:t,method:r,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(t,r,n){if(!this.enabled||!this.meter)return;this.meter.createCounter(`custom_${t}`,{description:`Custom metric: ${t}`}).add(r,n||{})}recordCustomHistogram(t,r,n){if(!this.enabled||!this.meter)return;this.meter.createHistogram(`custom_${t}_histogram`,{description:`Custom histogram: ${t}`}).record(r,n||{})}async getHealthMetrics(){const t=process.memoryUsage(),r=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:t,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(r*100)/100,averageResponseTime:Math.round(n*100)/100}}isEnabled(){return this.enabled}getStatus(){return{enabled:this.enabled,initialized:this.initialized,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,service:process.env.OTEL_SERVICE_NAME||"neurolink-ai",version:process.env.OTEL_SERVICE_VERSION||"3.0.1"}}getDurationBucket(t){return t<100?"fast":t<500?"medium":t<1e3?"slow":"very_slow"}getStatusBucket(t){return t<200?"excellent":t<500?"good":t<1e3?"acceptable":"poor"}async shutdown(){if(this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,f.debug("[Telemetry] Tracer provider shutdown completed")}catch(t){f.error("[Telemetry] Error during shutdown:",t)}}}}});function Ji(e,t=Zje){let r;try{r=typeof e=="string"?e:JSON.stringify(e)??String(e)}catch{r=String(e)}if(r.length>t){const n=`...[truncated ${r.length-t} chars]`,o=Math.max(0,t-n.length);return`${r.slice(0,o)}${n}`}return r}var Me,eo,Zje,iM=S({"src/lib/telemetry/attributes.ts"(){"use strict";Me={GEN_AI_SYSTEM:"gen_ai.system",GEN_AI_MODEL:"gen_ai.request.model",GEN_AI_OPERATION:"gen_ai.operation.name",GEN_AI_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",GEN_AI_FINISH_REASON:"gen_ai.response.finish_reason",GEN_AI_COST_USD:"gen_ai.cost_usd",GEN_AI_TOOL_NAME:"gen_ai.tool.name",GEN_AI_TEMPERATURE:"gen_ai.request.temperature",GEN_AI_MAX_TOKENS:"gen_ai.request.max_tokens",NL_PROVIDER:"neurolink.provider",NL_MODEL:"neurolink.model",NL_STREAM_MODE:"neurolink.stream_mode",NL_TOOL_COUNT:"neurolink.tool_count",NL_MESSAGE_COUNT:"neurolink.message_count",NL_HAS_TOOLS:"neurolink.has_tools",NL_INPUT_LENGTH:"neurolink.input_length",NL_OUTPUT_LENGTH:"neurolink.output_length",NL_REQUEST_ID:"neurolink.request_id",NL_PATH:"neurolink.path",NL_HAS_MEMORY:"neurolink.has_conversation_memory",NL_COST:"neurolink.cost",NL_STRUCTURED_OUTPUT:"neurolink.structured_output",NL_HAS_FALLBACK:"neurolink.has_fallback",MCP_SERVER_ID:"mcp.server_id",MCP_TOOL_NAME:"mcp.tool_name",MCP_TIMEOUT_MS:"mcp.timeout_ms",MCP_TRANSPORT:"mcp.transport",MCP_CIRCUIT_STATE:"mcp.circuit_state",SESSION_ID:"session.id",USER_ID:"user.id",MEMORY_TYPE:"memory.type",MESSAGE_COUNT:"message.count",CONTENT_LENGTH:"content.length",RAG_FILE_COUNT:"rag.file_count",RAG_STRATEGY:"rag.strategy",RAG_CHUNK_SIZE:"rag.chunk_size",RAG_TOP_K:"rag.top_k",RAG_RESULT_COUNT:"rag.result_count",MSG_COUNT:"message.build.count",MSG_HAS_IMAGES:"message.has_images",MSG_HAS_FILES:"message.has_files",MSG_HAS_SYSTEM_PROMPT:"message.has_system_prompt",MSG_TOTAL_CONTENT_LENGTH:"message.total_content_length",MSG_IS_MULTIMODAL:"message.is_multimodal",FILE_NAME:"file.name",FILE_MIMETYPE:"file.mimetype",FILE_SIZE_BYTES:"file.size_bytes",FILE_CATEGORY:"file.category",FILE_OUTPUT_LENGTH:"file.output_length",FILE_SUCCESS:"file.success",FILE_PROCESSOR_USED:"file.processor_used",FILE_CONFIDENCE:"file.detection_confidence",FILE_HAS_IMAGES:"file.has_images",FILE_IMAGE_COUNT:"file.image_count",FILE_ERROR:"file.error",FILE_SKIPPED_REASON:"file.skipped_reason",FILE_TOTAL_COUNT:"file.total_count",FILE_INCLUDED_COUNT:"file.included_count",FILE_CONTENT_TYPE:"file.content_type",VIDEO_DURATION_SEC:"video.duration_sec",VIDEO_WIDTH:"video.width",VIDEO_HEIGHT:"video.height",VIDEO_CODEC:"video.codec",VIDEO_AUDIO_CODEC:"video.audio_codec",VIDEO_FORMAT:"video.format",VIDEO_BITRATE:"video.bitrate",VIDEO_KEYFRAMES_EXTRACTED:"video.keyframes_extracted",VIDEO_TARGET_FRAMES:"video.target_frames",VIDEO_INTERVAL_SEC:"video.interval_sec",VIDEO_FRAME_QUALITY:"video.frame_quality",VIDEO_FRAME_RESIZE_PX:"video.frame_resize_px",VIDEO_FRAMES_RESIZED:"video.frames_resized",VIDEO_TOTAL_FRAME_BYTES:"video.total_frame_bytes",VIDEO_HAS_SUBTITLES:"video.has_subtitles",VIDEO_SUBTITLE_LENGTH:"video.subtitle_length",VIDEO_TEXT_CONTENT_LENGTH:"video.text_content_length",VIDEO_HAS_METADATA:"video.has_metadata",VIDEO_HAS_KEYFRAMES:"video.has_keyframes",VIDEO_TEMP_PATH:"video.temp_path",VIDEO_BYTES_WRITTEN:"video.bytes_written",VIDEO_WRITE_DURATION_MS:"video.write_duration_ms",VIDEO_STEP:"video.step",CONTEXT_STAGE:"context.compaction_stage",CONTEXT_TOKENS_BEFORE:"context.tokens_before",CONTEXT_TOKENS_AFTER:"context.tokens_after",MW_COUNT:"middleware.count",MW_NAMES:"middleware.names",AR_TAG:"autoresearch.tag",AR_BRANCH:"autoresearch.branch",AR_PHASE:"autoresearch.phase",AR_PHASE_FROM:"autoresearch.phase_from",AR_PHASE_TO:"autoresearch.phase_to",AR_RUN_COUNT:"autoresearch.run_count",AR_KEEP_COUNT:"autoresearch.keep_count",AR_STATUS:"autoresearch.status",AR_METRIC:"autoresearch.metric",AR_BEST_METRIC:"autoresearch.best_metric",AR_DIRECTION:"autoresearch.metric_direction",AR_COMMIT:"autoresearch.commit",AR_DURATION_MS:"autoresearch.duration_ms",AR_DESCRIPTION:"autoresearch.description",AR_ERROR_CODE:"autoresearch.error_code"},eo={TRACE_NAME:"langfuse.trace.name",TRACE_INPUT:"langfuse.trace.input",TRACE_OUTPUT:"langfuse.trace.output",OBSERVATION_TYPE:"langfuse.observation.type",OBSERVATION_INPUT:"langfuse.observation.input",OBSERVATION_OUTPUT:"langfuse.observation.output",OBSERVATION_METADATA:"langfuse.observation.metadata",OBSERVATION_MODEL_NAME:"langfuse.observation.model.name",OBSERVATION_MODEL_PARAMETERS:"langfuse.observation.model.parameters",OBSERVATION_USAGE_DETAILS:"langfuse.observation.usage_details",OBSERVATION_LEVEL:"langfuse.observation.level",OBSERVATION_STATUS_MESSAGE:"langfuse.observation.status_message",OBSERVATION_COMPLETION_START_TIME:"langfuse.observation.completion_start_time"},Zje=4e4}});async function UAr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(KE(),J7)),t=e.getInstance();return t.isEnabled()&&(await t.initialize(),f.info("[NeuroLink] Telemetry initialized")),t}async function BAr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(KE(),J7));return e.getInstance().getStatus()}var Cl=S({"src/lib/telemetry/index.ts"(){"use strict";yr(),Vr(),iM(),q()}}),Xje={};he(Xje,{MODEL_NAMES:()=>lr,ModelConfigurationManager:()=>aM,modelConfig:()=>xf});var lr,aM,xf,Af=S({"src/lib/core/modelConfiguration.ts"(){"use strict";q(),lr={GOOGLE_AI:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},GOOGLE_VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},OPENAI:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},ANTHROPIC:{FAST:"claude-3-haiku-20240307",BALANCED:"claude-3-sonnet-20240229",QUALITY:"claude-3-5-sonnet-20241022"},VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},BEDROCK:{FAST:"anthropic.claude-3-haiku-20240307-v1:0",BALANCED:"anthropic.claude-3-sonnet-20240229-v1:0",QUALITY:"anthropic.claude-3-opus-20240229-v1:0"},AZURE:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},OLLAMA:{FAST:"llama3.2:latest",BALANCED:"llama3.1:8b",QUALITY:"llama3.1:70b"},HUGGINGFACE:{FAST:"microsoft/DialoGPT-medium",BALANCED:"microsoft/DialoGPT-large",QUALITY:"meta-llama/Llama-2-7b-chat-hf"},MISTRAL:{FAST:"mistral-small-latest",BALANCED:"mistral-medium-latest",QUALITY:"mistral-large-latest"}},aM=class MA{static instance;configurations=new Map;configSource="default";lastUpdated=Date.now();constructor(){this.loadDefaultConfigurations()}static getInstance(){return MA.instance||(MA.instance=new MA),MA.instance}createGoogleAIConfig(){return{provider:"google-ai",models:{fast:this.getConfigValue("GOOGLE_AI_FAST_MODEL",lr.GOOGLE_AI.FAST),balanced:this.getConfigValue("GOOGLE_AI_BALANCED_MODEL",lr.GOOGLE_AI.BALANCED),quality:this.getConfigValue("GOOGLE_AI_QUALITY_MODEL",lr.GOOGLE_AI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_AI_API_KEY"],performance:{speed:this.parseInt(process.env.GOOGLE_AI_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_AI_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_AI_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_AI_MAX_TOKENS_ISSUES",[lr.GOOGLE_AI.FAST,lr.GOOGLE_AI.BALANCED])}}}createVertexConfig(){return{provider:"google-vertex",models:{fast:this.getConfigValue("GOOGLE_VERTEX_FAST_MODEL",lr.GOOGLE_VERTEX.FAST),balanced:this.getConfigValue("GOOGLE_VERTEX_BALANCED_MODEL",lr.GOOGLE_VERTEX.BALANCED),quality:this.getConfigValue("GOOGLE_VERTEX_QUALITY_MODEL",lr.GOOGLE_VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.GOOGLE_VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_VERTEX_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_VERTEX_MAX_TOKENS_ISSUES",[lr.GOOGLE_VERTEX.FAST,lr.GOOGLE_VERTEX.BALANCED])}}}createOpenAIConfig(){return{provider:"openai",models:{fast:this.getConfigValue("OPENAI_FAST_MODEL",lr.OPENAI.FAST),balanced:this.getConfigValue("OPENAI_BALANCED_MODEL",lr.OPENAI.BALANCED),quality:this.getConfigValue("OPENAI_QUALITY_MODEL",lr.OPENAI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OPENAI_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.OPENAI_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["OPENAI_API_KEY"],performance:{speed:this.parseInt(process.env.OPENAI_SPEED_RATING,2),quality:this.parseInt(process.env.OPENAI_QUALITY_RATING,3),cost:this.parseInt(process.env.OPENAI_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("OPENAI_MAX_TOKENS_ISSUES",[]),specialHandling:this.getConfigObject("OPENAI_SPECIAL_HANDLING",{})}}}createAllProviderConfigurations(){return{"google-ai":this.createGoogleAIConfig(),"google-vertex":this.createVertexConfig(),openai:this.createOpenAIConfig(),anthropic:this.createAnthropicConfig(),vertex:this.createVertexAlternativeConfig(),bedrock:this.createBedrockConfig(),azure:this.createAzureConfig(),ollama:this.createOllamaConfig(),huggingface:this.createHuggingFaceConfig(),mistral:this.createMistralConfig()}}createAnthropicConfig(){return{provider:"anthropic",models:{fast:this.getConfigValue("ANTHROPIC_FAST_MODEL",lr.ANTHROPIC.FAST),balanced:this.getConfigValue("ANTHROPIC_BALANCED_MODEL",lr.ANTHROPIC.BALANCED),quality:this.getConfigValue("ANTHROPIC_QUALITY_MODEL",lr.ANTHROPIC.QUALITY)},defaultCost:{input:this.parseFloat(process.env.ANTHROPIC_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.ANTHROPIC_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["ANTHROPIC_API_KEY"],performance:{speed:this.parseInt(process.env.ANTHROPIC_SPEED_RATING,3),quality:this.parseInt(process.env.ANTHROPIC_QUALITY_RATING,4),cost:this.parseInt(process.env.ANTHROPIC_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("ANTHROPIC_MAX_TOKENS_ISSUES",[])}}}createVertexAlternativeConfig(){return{provider:"vertex",models:{fast:this.getConfigValue("VERTEX_FAST_MODEL",lr.VERTEX.FAST),balanced:this.getConfigValue("VERTEX_BALANCED_MODEL",lr.VERTEX.BALANCED),quality:this.getConfigValue("VERTEX_QUALITY_MODEL",lr.VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.VERTEX_QUALITY_RATING,4),cost:this.parseInt(process.env.VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("VERTEX_MAX_TOKENS_ISSUES",[])}}}createBedrockConfig(){return{provider:"bedrock",models:{fast:this.getConfigValue("BEDROCK_FAST_MODEL",lr.BEDROCK.FAST),balanced:this.getConfigValue("BEDROCK_BALANCED_MODEL",lr.BEDROCK.BALANCED),quality:this.getConfigValue("BEDROCK_QUALITY_MODEL",lr.BEDROCK.QUALITY)},defaultCost:{input:this.parseFloat(process.env.BEDROCK_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.BEDROCK_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY"],performance:{speed:this.parseInt(process.env.BEDROCK_SPEED_RATING,3),quality:this.parseInt(process.env.BEDROCK_QUALITY_RATING,4),cost:this.parseInt(process.env.BEDROCK_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("BEDROCK_MAX_TOKENS_ISSUES",[])}}}createAzureConfig(){return{provider:"azure",models:{fast:this.getConfigValue("AZURE_FAST_MODEL",lr.AZURE.FAST),balanced:this.getConfigValue("AZURE_BALANCED_MODEL",lr.AZURE.BALANCED),quality:this.getConfigValue("AZURE_QUALITY_MODEL",lr.AZURE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.AZURE_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.AZURE_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["AZURE_API_KEY","AZURE_ENDPOINT"],performance:{speed:this.parseInt(process.env.AZURE_SPEED_RATING,2),quality:this.parseInt(process.env.AZURE_QUALITY_RATING,3),cost:this.parseInt(process.env.AZURE_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("AZURE_MAX_TOKENS_ISSUES",[])}}}createOllamaConfig(){return{provider:"ollama",models:{fast:this.getConfigValue("OLLAMA_FAST_MODEL",lr.OLLAMA.FAST),balanced:this.getConfigValue("OLLAMA_BALANCED_MODEL",lr.OLLAMA.BALANCED),quality:this.getConfigValue("OLLAMA_QUALITY_MODEL",lr.OLLAMA.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OLLAMA_DEFAULT_INPUT_COST,0),output:this.parseFloat(process.env.OLLAMA_DEFAULT_OUTPUT_COST,0)},requiredEnvVars:[],performance:{speed:this.parseInt(process.env.OLLAMA_SPEED_RATING,4),quality:this.parseInt(process.env.OLLAMA_QUALITY_RATING,2),cost:this.parseInt(process.env.OLLAMA_COST_RATING,5)},modelBehavior:{maxTokensIssues:this.getConfigArray("OLLAMA_MAX_TOKENS_ISSUES",[lr.OLLAMA.FAST,lr.OLLAMA.BALANCED,lr.OLLAMA.QUALITY]),toolCapableModels:this.getConfigArray("OLLAMA_TOOL_CAPABLE_MODELS",["llama3.1","mistral","hermes3","qwen2.5","codellama","dolphin","openchat","solar"]),specialHandling:this.getConfigObject("OLLAMA_SPECIAL_HANDLING",{baseUrl:this.getConfigValue("OLLAMA_BASE_URL","http://localhost:11434")})}}}createHuggingFaceConfig(){return{provider:"huggingface",models:{fast:this.getConfigValue("HUGGINGFACE_FAST_MODEL",lr.HUGGINGFACE.FAST),balanced:this.getConfigValue("HUGGINGFACE_BALANCED_MODEL",lr.HUGGINGFACE.BALANCED),quality:this.getConfigValue("HUGGINGFACE_QUALITY_MODEL",lr.HUGGINGFACE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_INPUT_COST,2e-4),output:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_OUTPUT_COST,8e-4)},requiredEnvVars:["HUGGINGFACE_API_KEY"],performance:{speed:this.parseInt(process.env.HUGGINGFACE_SPEED_RATING,3),quality:this.parseInt(process.env.HUGGINGFACE_QUALITY_RATING,3),cost:this.parseInt(process.env.HUGGINGFACE_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("HUGGINGFACE_MAX_TOKENS_ISSUES",[])}}}createMistralConfig(){return{provider:"mistral",models:{fast:this.getConfigValue("MISTRAL_FAST_MODEL",lr.MISTRAL.FAST),balanced:this.getConfigValue("MISTRAL_BALANCED_MODEL",lr.MISTRAL.BALANCED),quality:this.getConfigValue("MISTRAL_QUALITY_MODEL",lr.MISTRAL.QUALITY)},defaultCost:{input:this.parseFloat(process.env.MISTRAL_DEFAULT_INPUT_COST,1e-4),output:this.parseFloat(process.env.MISTRAL_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["MISTRAL_API_KEY"],performance:{speed:this.parseInt(process.env.MISTRAL_SPEED_RATING,3),quality:this.parseInt(process.env.MISTRAL_QUALITY_RATING,3),cost:this.parseInt(process.env.MISTRAL_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("MISTRAL_MAX_TOKENS_ISSUES",[])}}}loadDefaultConfigurations(){const t=this.createAllProviderConfigurations();for(const[r,n]of Object.entries(t))this.configurations.set(r,n);f.debug(`Loaded ${this.configurations.size} provider configurations from ${this.configSource}`)}getConfigValue(t,r){const n=process.env[t];return n&&!this.isValidConfigValue(n)?(f.warn(`Environment variable ${t} has an invalid value: "${n}". Falling back to default value.`),r):n||r}isValidConfigValue(t){return!(/[<>;"'`${}]/.test(t)||t.length>500||t.includes("\0")||new RegExp("[\0-\b\v\f-\x7F]").test(t))}getConfigArray(t,r){const n=process.env[t];return n?n.split(",").map(o=>o.trim()).filter(Boolean):r}parseFloat(t,r){if(!t)return r;const n=Number.parseFloat(t);return Number.isNaN(n)?r:n}parseInt(t,r){if(!t)return r;const n=Number.parseInt(t,10);return Number.isNaN(n)?r:n}getConfigObject(t,r){const n=process.env[t];if(!n)return r;try{const o=JSON.parse(n);return typeof o=="object"&&o!==null?o:r}catch{return f.warn(`Invalid JSON in environment variable ${t}, using default`),r}}getProviderConfiguration(t){return this.configurations.get(t)||null}getAllConfigurations(){return new Map(this.configurations)}getModelForTier(t,r){return this.getProviderConfiguration(t)?.models[r]||null}getCostInfo(t,r){const n=this.getProviderConfiguration(t);return n?r&&n.modelConfigs?.[r]?n.modelConfigs[r].cost:n.defaultCost:null}isProviderAvailable(t){const r=this.getProviderConfiguration(t);return r?r.requiredEnvVars.length===0?!0:r.requiredEnvVars.some(n=>!!process.env[n]):!1}getAvailableProviders(){return Array.from(this.configurations.values()).filter(t=>this.isProviderAvailable(t.provider))}},xf=aM.getInstance()}});function zAr(e){return typeof e.input=="number"?e.input:typeof e.inputTokens=="number"?e.inputTokens:typeof e.promptTokens=="number"?e.promptTokens:0}function jAr(e){return typeof e.output=="number"?e.output:typeof e.outputTokens=="number"?e.outputTokens:typeof e.completionTokens=="number"?e.completionTokens:0}function qAr(e,t,r){return typeof e.total=="number"&&e.total>0?e.total:typeof e.totalTokens=="number"&&e.totalTokens>0?e.totalTokens:t+r}function GAr(e){if(typeof e.reasoningTokens=="number"&&e.reasoningTokens>0)return e.reasoningTokens;if(typeof e.thinkingTokens=="number"&&e.thinkingTokens>0)return e.thinkingTokens;if(typeof e.reasoning_tokens=="number"&&e.reasoning_tokens>0)return e.reasoning_tokens;if(typeof e.reasoning=="number"&&e.reasoning>0)return e.reasoning}function Qje(e){if(typeof e.cacheCreationInputTokens=="number"&&e.cacheCreationInputTokens>0)return e.cacheCreationInputTokens;if(typeof e.cacheCreationTokens=="number"&&e.cacheCreationTokens>0)return e.cacheCreationTokens;if(typeof e.inputTokenDetails?.cacheWriteTokens=="number"&&e.inputTokenDetails.cacheWriteTokens>0)return e.inputTokenDetails.cacheWriteTokens}function eqe(e){if(typeof e.cacheReadInputTokens=="number"&&e.cacheReadInputTokens>0)return e.cacheReadInputTokens;if(typeof e.cacheReadTokens=="number"&&e.cacheReadTokens>0)return e.cacheReadTokens;if(typeof e.cachedInputTokens=="number"&&e.cachedInputTokens>0)return e.cachedInputTokens;if(typeof e.inputTokenDetails?.cacheReadTokens=="number"&&e.inputTokenDetails.cacheReadTokens>0)return e.inputTokenDetails.cacheReadTokens}function HAr(e){const t=e.prompt_tokens_details?.cached_tokens;if(typeof t=="number"&&t>0)return t}function tqe(e,t){if(e===void 0||e<=0)return;const r=t+e;if(!(r<=0))return Math.round(e/r*100)}function t0(e,t={}){const{calculateCacheSavings:r=!0,missingOptionalBehavior:n="undefined"}=t;if(!e)return{input:0,output:0,total:0};const o=e.usage&&typeof e.usage=="object"?e.usage:e;let s=zAr(o);const i=jAr(o),a=GAr(o),l=Qje(o);let c=eqe(o);if(c===void 0){const h=HAr(o);h!==void 0&&h<=s&&(c=h,s=Math.max(0,s-h))}if((c!==void 0||l!==void 0)&&o.cacheReadInputTokens===void 0&&o.cacheReadTokens===void 0&&o.cacheCreationInputTokens===void 0&&o.cacheCreationTokens===void 0&&o.prompt_tokens_details?.cached_tokens===void 0&&(o.cachedInputTokens!==void 0||o.inputTokenDetails!==void 0)){const h=o.inputTokenDetails?.noCacheTokens;typeof h=="number"?s=h:s=Math.max(0,s-(c??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}const u=qAr(o,s+(c??0)+(l??0),i),d=r?tqe(c,s):void 0,m={input:s,output:i,total:u};return n==="zero"?(m.cacheCreationTokens=l??0,m.cacheReadTokens=c??0,m.reasoning=a??0,m.cacheSavingsPercent=d??0):(l!==void 0&&(m.cacheCreationTokens=l),c!==void 0&&(m.cacheReadTokens=c),a!==void 0&&(m.reasoning=a),d!==void 0&&(m.cacheSavingsPercent=d)),m}function rqe(){return{input:0,output:0,total:0}}var JE=S({"src/lib/utils/tokenUtils.ts"(){"use strict"}});function VAr(e,t){return!e.startsWith(t)||e===t?!1:sqe.test(e.slice(t.length))}function WAr(e,t){const r=ije(e);return r?Object.prototype.hasOwnProperty.call(r.models,t)?!0:Object.values(r.models).some(n=>n.aliases.includes(t)):!1}function nqe(e,t,r){const n=e.toLowerCase().replace(/[^a-z]/g,""),o=oqe[n]??n;if(o==="__cross_provider__"){for(const c of Object.values(ZE)){if(c[t])return r&&(r.exact=!0),c[t];const u=Object.keys(c).sort((h,g)=>g.length-h.length),d=u.find(h=>h.startsWith(t));if(d)return c[d];const m=u.find(h=>t.startsWith(h));if(m)return c[m]}return}const s=ZE[o]||ZE[e];if(!s)return;const i=n==="bedrock"||n==="amazonbedrock"?t.replace(/^.*\banthropic\./,""):t;if(WAr(o,i)){const c=IAr(o,i);if(c?.pricingPerMTok)return r&&(r.exact=!0),{input:c.pricingPerMTok.input/1e6,output:c.pricingPerMTok.output/1e6,cacheRead:c.pricingPerMTok.cacheRead!==void 0?c.pricingPerMTok.cacheRead/1e6:void 0,cacheCreation:c.pricingPerMTok.cacheWrite!==void 0?c.pricingPerMTok.cacheWrite/1e6:void 0}}if(s[i])return r&&(r.exact=!0),s[i];const l=Object.keys(s).filter(c=>c!=="_default").sort((c,u)=>u.length-c.length).find(c=>i.startsWith(c));if(l)return r&&VAr(i,l)&&(r.exact=!0),s[l];if(o==="vertex"&&t.startsWith("gemini")){const c=ZE.google;if(c){if(c[t])return r&&(r.exact=!0),c[t];const d=Object.keys(c).sort((m,h)=>h.length-m.length).find(m=>t.startsWith(m));if(d)return c[d]}}if(s._default)return s._default}function Ga(e,t,r){const n=nqe(e,t);if(!n)return 0;let o=0;return o+=(r.input||0)*n.input,o+=(r.output||0)*n.output,r.cacheReadTokens&&(o+=r.cacheReadTokens*(n.cacheRead??n.input)),r.cacheCreationTokens&&n.cacheCreation&&(o+=r.cacheCreationTokens*n.cacheCreation),Math.round(o*1e6)/1e6}function YE(e,t){const r=nqe(e,t);return r?r.input>0||r.output>0||(r.cacheRead??0)>0||(r.cacheCreation??0)>0:!1}var ZE,oqe,sqe,uc=S({"src/lib/utils/pricing.ts"(){"use strict";tM(),ZE={anthropic:{"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-8":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-7":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5-20250929":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5-20251001":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-opus-4-1":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-opus-4":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-sonnet-4":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-7-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-opus":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-3-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-haiku":{input:.25/1e6,output:1.25/1e6,cacheRead:.025/1e6,cacheCreation:.3125/1e6}},vertex:{"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6}},openai:{"gpt-5.6-sol":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"gpt-5.6-terra":{input:2/1e6,output:12/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"gpt-5.6-luna":{input:.2/1e6,output:1.2/1e6,cacheRead:.02/1e6,cacheCreation:.25/1e6},"gpt-5.5":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6},"gpt-5.4":{input:2.5/1e6,output:15/1e6,cacheRead:.625/1e6},"gpt-5.2":{input:1.75/1e6,output:14/1e6,cacheRead:.4375/1e6},"gpt-5.1":{input:.625/1e6,output:5/1e6,cacheRead:.15625/1e6},"gpt-5.1-codex":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5-mini":{input:.25/1e6,output:2/1e6,cacheRead:.0625/1e6},"gpt-5-nano":{input:.05/1e6,output:.4/1e6,cacheRead:.0125/1e6},"gpt-4.1":{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"gpt-4.1-mini":{input:.4/1e6,output:1.6/1e6,cacheRead:.1/1e6},"gpt-4.1-nano":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gpt-4o":{input:2.5/1e6,output:10/1e6,cacheRead:.625/1e6},"gpt-4o-mini":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},o3:{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"o3-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},"o4-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},o1:{input:15/1e6,output:60/1e6,cacheRead:3.75/1e6},"o1-mini":{input:.55/1e6,output:2.2/1e6,cacheRead:.1375/1e6},"gpt-4-turbo":{input:10/1e6,output:30/1e6},"gpt-4":{input:30/1e6,output:60/1e6},"gpt-3.5-turbo":{input:.5/1e6,output:1/1e6}},google:{"gemini-3.1-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3.1-flash-lite-preview":{input:.25/1e6,output:1.5/1e6,cacheRead:.0625/1e6},"gemini-3.1-flash-image-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3.1-pro-preview-customtools":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-flash-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3-pro-image-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-2.5-flash":{input:.3/1e6,output:2.5/1e6,cacheRead:.075/1e6},"gemini-2.5-pro":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gemini-2.5-flash-lite":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gemini-2.0-flash":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},"gemini-2.0-flash-lite":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6},"gemini-1.5-pro":{input:1.25/1e6,output:5/1e6,cacheRead:.3125/1e6},"gemini-1.5-flash":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6}},mistral:{"mistral-large":{input:2/1e6,output:6/1e6},"mistral-medium":{input:2.7/1e6,output:8.1/1e6},"mistral-small":{input:.2/1e6,output:.6/1e6},codestral:{input:.3/1e6,output:.9/1e6},"open-mistral-nemo":{input:.15/1e6,output:.15/1e6}},deepseek:{"deepseek-chat":{input:.27/1e6,output:1.1/1e6,cacheRead:.07/1e6},"deepseek-reasoner":{input:.55/1e6,output:2.19/1e6,cacheRead:.14/1e6}},"nvidia-nim":{"meta/llama-3.3-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.1-405b-instruct":{input:1.79/1e6,output:1.79/1e6},"meta/llama-3.1-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.2-90b-vision-instruct":{input:.5/1e6,output:.5/1e6},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:.3/1e6,output:.3/1e6},"deepseek-ai/deepseek-r1":{input:.55/1e6,output:2.19/1e6},"mistralai/mixtral-8x22b-instruct-v0.1":{input:.6/1e6,output:.6/1e6},"mistralai/mixtral-8x7b-instruct-v0.1":{input:.24/1e6,output:.24/1e6},"microsoft/phi-4":{input:.07/1e6,output:.07/1e6},"google/gemma-3-27b-it":{input:.07/1e6,output:.07/1e6}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},xai:{_default:{input:3/1e6,output:15/1e6},"grok-3":{input:3/1e6,output:15/1e6},"grok-3-mini":{input:.3/1e6,output:.5/1e6},"grok-2-latest":{input:2/1e6,output:10/1e6},"grok-2-vision-latest":{input:2/1e6,output:10/1e6},"grok-beta":{input:5/1e6,output:15/1e6}},groq:{_default:{input:.59/1e6,output:.79/1e6},"llama-3.3-70b-versatile":{input:.59/1e6,output:.79/1e6},"llama-3.1-8b-instant":{input:.05/1e6,output:.08/1e6},"llama-3.2-90b-vision-preview":{input:.9/1e6,output:.9/1e6},"llama-3.2-11b-vision-preview":{input:.18/1e6,output:.18/1e6},"gemma2-9b-it":{input:.2/1e6,output:.2/1e6},"mixtral-8x7b-32768":{input:.24/1e6,output:.24/1e6}},cohere:{_default:{input:2.5/1e6,output:10/1e6},"command-r-plus":{input:2.5/1e6,output:10/1e6},"command-r":{input:.15/1e6,output:.6/1e6},"command-r7b-12-2024":{input:.0375/1e6,output:.15/1e6}},"together-ai":{_default:{input:.88/1e6,output:.88/1e6},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{input:.88/1e6,output:.88/1e6},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{input:3.5/1e6,output:3.5/1e6},"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":{input:.88/1e6,output:.88/1e6},"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":{input:.18/1e6,output:.18/1e6},"mistralai/Mixtral-8x22B-Instruct-v0.1":{input:1.2/1e6,output:1.2/1e6},"mistralai/Mixtral-8x7B-Instruct-v0.1":{input:.6/1e6,output:.6/1e6},"Qwen/Qwen2.5-72B-Instruct-Turbo":{input:1.2/1e6,output:1.2/1e6},"deepseek-ai/DeepSeek-R1":{input:7/1e6,output:7/1e6},"deepseek-ai/DeepSeek-V3":{input:1.25/1e6,output:1.25/1e6}},fireworks:{_default:{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3/1e6,output:3/1e6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:.2/1e6,output:.2/1e6},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:1.2/1e6,output:1.2/1e6},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/deepseek-v3":{input:.75/1e6,output:3/1e6}},perplexity:{_default:{input:1/1e6,output:1/1e6},sonar:{input:1/1e6,output:1/1e6},"sonar-pro":{input:3/1e6,output:15/1e6},"sonar-reasoning":{input:1/1e6,output:5/1e6},"sonar-reasoning-pro":{input:2/1e6,output:8/1e6},"sonar-deep-research":{input:2/1e6,output:8/1e6}},cloudflare:{_default:{input:.011/1e6,output:.011/1e6}},replicate:{_default:{input:.5/1e6,output:1.5/1e6}},voyage:{_default:{input:.18/1e6,output:0},"voyage-3.5":{input:.06/1e6,output:0},"voyage-3.5-lite":{input:.02/1e6,output:0},"voyage-3-large":{input:.18/1e6,output:0},"voyage-code-3":{input:.18/1e6,output:0},"voyage-finance-2":{input:.12/1e6,output:0},"voyage-law-2":{input:.12/1e6,output:0},"voyage-multilingual-2":{input:.12/1e6,output:0}},jina:{_default:{input:.02/1e6,output:0},"jina-embeddings-v3":{input:.02/1e6,output:0},"jina-reranker-v2-base-multilingual":{input:.05/1e6,output:0}},stability:{_default:{input:0,output:.04/1e3}},ideogram:{_default:{input:0,output:.08/1e3}},recraft:{_default:{input:0,output:.04/1e3}}},oqe={googleai:"google",googleaistudio:"google",googlevertex:"vertex",anthropic:"anthropic",openai:"openai",vertex:"vertex",google:"google",mistral:"mistral",mistralai:"mistral",azure:"openai",azureopenai:"openai",bedrock:"anthropic",amazonbedrock:"anthropic",litellm:"__cross_provider__",openrouter:"__cross_provider__",openaicompatible:"__cross_provider__",deepseek:"deepseek",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",lmstudio:"lm-studio",llamacpp:"llamacpp",xai:"xai",grok:"xai",groq:"groq",cohere:"cohere",togetherai:"together-ai",together:"together-ai",fireworks:"fireworks",perplexity:"perplexity",pplx:"perplexity",cloudflare:"cloudflare",workersai:"cloudflare",cfai:"cloudflare",replicate:"replicate",voyage:"voyage",voyageai:"voyage",jina:"jina",jinaai:"jina",stability:"stability",stabilityai:"stability",sd:"stability",ideogram:"ideogram",recraft:"recraft"},sqe=/^[-@](\d{8}|v\d+(:\d+)?|latest)([-@:](\d{8}|v\d+(:\d+)?))*$/}}),iqe={};he(iqe,{createAnalytics:()=>r0});function r0(e,t,r,n,o){const s="createAnalytics";try{const i=KAr(r),a=JAr(e,t,i),l=r,c=Array.isArray(l.toolExecutions)?l.toolExecutions.length:Array.isArray(l.toolsUsed)?l.toolsUsed.length:void 0,u={provider:e,model:t,tokenUsage:i,cost:a,requestDuration:n,context:o,timestamp:new Date().toISOString(),...typeof l.stepsUsed=="number"&&{stepsUsed:l.stepsUsed},...c!==void 0&&{toolCallCount:c},...typeof l.stopReason=="string"&&{stopReason:l.stopReason},...typeof l.responseTime=="number"&&{elapsedMs:l.responseTime},...typeof l.rawFinishReason=="string"&&{rawFinishReason:l.rawFinishReason}};return f.debug(`[${s}] Analytics created`,{provider:e,model:t,tokens:i.total,responseTime:n,cost:a}),u}catch(i){return f.error(`[${s}] Failed to create analytics`,{error:i}),{provider:e,model:t,tokenUsage:{input:0,output:0,total:0},requestDuration:n,context:o,timestamp:new Date().toISOString()}}}function KAr(e){return t0(e.usage)}function JAr(e,t,r){try{if(YE(e,t))return Ga(e,t,r);const n=xf.getCostInfo(e.toLowerCase(),t);if(!n)return;const o=(r.input+(r.cacheReadTokens??0)+(r.cacheCreationTokens??0))/1e3*n.input,s=r.output/1e3*n.output;return Math.round((o+s)*1e6)/1e6}catch(n){f.debug("Cost estimation failed",{provider:e,model:t,error:n});return}}var XE=S({"src/lib/core/analytics.ts"(){"use strict";q(),Af(),JE(),uc()}});function Y7(e){if(e&&typeof e.timeoutMs=="number"&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>=0)return e.timeoutMs;const t=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(t){const r=Number(t);if(Number.isFinite(r)&&r>=0)return r}return aqe}var aqe,lqe=S({"src/lib/utils/lifecycleTimeout.ts"(){"use strict";aqe=5e3}}),If,n0=S({"src/lib/core/handlerRegistry.ts"(){"use strict";q(),_r(),If=class{constructor(e){this.scopeName=e}scopeName;handlers=new Map;register(e,t){if(!e)throw new Error("Provider name is required");if(!t)throw new Error("Handler is required");const r=e.toLowerCase();this.handlers.has(r)&&f.warn(`[${this.scopeName}] Overwriting existing handler for provider: ${fo(r)}`),this.handlers.set(r,t)}supports(e){return e?this.handlers.has(e.toLowerCase()):!1}get(e){return this.handlers.get(e.toLowerCase())}list(){return Array.from(this.handlers.keys())}clear(){this.handlers.clear(),f.debug(`[${this.scopeName}] Cleared all handlers`)}}}}),cqe={};he(cqe,{IncrementalTTSSynthesisError:()=>lM,TTSError:()=>Ut,TTSProcessor:()=>tu,TTS_ERROR_CODES:()=>Gt});function YAr(e){const t=[];for(const r of e.matchAll(pqe))t.push((r.index??0)+r[0].length);return t}function ZAr(e,t){if(t<=1||t>=e.length)return t;const r=e.charCodeAt(t-1),n=e.charCodeAt(t);return r>=mqe&&r<=hqe&&n>=fqe&&n<=gqe?t-1:t}function uqe(e,t,r,n){const o=e.slice(0,r),s=YAr(o);let i=e.length>=t?s.at(-1):void 0;if(i===void 0&&e.length>=r&&(i=s.at(-1)??r),i===void 0&&n&&e.trim()&&(i=Math.min(e.length,r)),i===void 0)return;i=ZAr(e,i);const a=e.slice(0,i).trim(),l=e.slice(i).trimStart();return a?{segment:a,remainder:l}:{segment:"",remainder:l}}var Gt,dqe,pqe,lM,mqe,hqe,fqe,gqe,Ut,tu,dc=S({"src/lib/utils/ttsProcessor.ts"(){"use strict";q(),ct(),n0(),Qn(),Gt={EMPTY_TEXT:"TTS_EMPTY_TEXT",TEXT_TOO_LONG:"TTS_TEXT_TOO_LONG",PROVIDER_NOT_SUPPORTED:"TTS_PROVIDER_NOT_SUPPORTED",PROVIDER_NOT_CONFIGURED:"TTS_PROVIDER_NOT_CONFIGURED",SYNTHESIS_FAILED:"TTS_SYNTHESIS_FAILED",INVALID_INPUT:"TTS_INVALID_INPUT"},dqe=120,pqe=/[.!?]+(?:["')\]]+)?(?=\s|$)/g,lM=class extends Error{firstError;failedSegments;constructor(e,t){super(`Incremental TTS failed for ${t.length} segment${t.length===1?"":"s"}`),this.name="IncrementalTTSSynthesisError",this.firstError=e,this.failedSegments=[...t]}},mqe=55296,hqe=56319,fqe=56320,gqe=57343,Ut=class extends Ne{constructor(e){super({code:e.code,message:e.message,category:e.category??"validation",severity:e.severity??"medium",retriable:e.retriable??!1,context:e.context,originalError:e.originalError}),this.name="TTSError"}},tu=class{static registry=new If("TTSProcessor");static DEFAULT_MAX_TEXT_LENGTH=3e3;static registerHandler(e,t){const r=e&&e.toLowerCase();this.registry.register(e,t),f.debug(`[TTSProcessor] Registered TTS handler for provider: ${r}`)}static getHandler(e){return this.registry.get(e)}static listProviders(){return this.registry.list()}static clearHandlers(){this.registry.clear()}static supports(e){if(!e)return f.error("[TTSProcessor] Provider name is required for supports check"),!1;const t=this.registry.supports(e);return t||f.debug(`[TTSProcessor] Provider ${e} is not supported`),t}static async synthesize(e,t,r){const n=Oe.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":t,"tts.voice":r.voice,"tts.format":r.format});try{const o=e.trim();if(!o)throw f.error("[TTSProcessor] Text is required for synthesis"),new Ut({code:Gt.EMPTY_TEXT,message:"Text is required for TTS synthesis",severity:"low",retriable:!1,context:{provider:t}});const s=this.getHandler(t);if(!s)throw f.error(`[TTSProcessor] Provider "${t}" is not registered`),new Ut({code:Gt.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${t}" is not supported. Use TTSProcessor.registerHandler() to register it.`,severity:"high",retriable:!1,context:{provider:t,availableProviders:this.registry.list()}});const i=s.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH;if(o.length>i)throw f.error(`[TTSProcessor] Text exceeds maximum length of ${i} characters for provider "${t}"`),new Ut({code:Gt.TEXT_TOO_LONG,message:`Text length (${o.length}) exceeds maximum allowed length (${i} characters) for provider "${t}"`,severity:"medium",retriable:!1,context:{provider:t,textLength:o.length,maxLength:i}});if(!s.isConfigured())throw f.warn(`[TTSProcessor] Provider "${t}" is not properly configured`),new Ut({code:Gt.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${t}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:t}});f.debug(`[TTSProcessor] Starting synthesis with provider: ${t}`);const a=await s.synthesize(o,r),l={...a,voice:a.voice??r.voice};f.info(`[TTSProcessor] Successfully synthesized ${a.size} bytes of audio`);const c=Oe.endSpan(n,1);return dt().recordSpan(c),l}catch(o){const s=Oe.endSpan(n,2,o instanceof Error?o.message:String(o));if(dt().recordSpan(s),o instanceof Ut)throw o;const i=o instanceof Error?o.message:String(o||"Unknown error");throw f.error(`[TTSProcessor] Synthesis failed for provider "${t}": ${i}`),new Ut({code:Gt.SYNTHESIS_FAILED,message:`TTS synthesis failed for provider "${t}": ${i}`,category:"execution",severity:"high",retriable:!0,context:{provider:t,textLength:e.trim().length,options:r},originalError:o instanceof Error?o:void 0})}}static async*synthesizeStream(e,t,r,n){const o=this.getHandler(t),s=Math.max(1,o?.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH),i=r.streamingBufferSize??dqe,a=Math.min(Math.max(1,Math.trunc(i)),s);let l="",c=0,u=0,d=0,m,h=0,g;const y=[],v=async _=>{const b=++h;try{const T=await this.synthesize(_,t,r);return u+=T.size,d+=T.duration??0,{data:T.buffer,format:T.format,index:c++,isFinal:!1,cumulativeSize:u,estimatedDuration:d||void 0,voice:T.voice,sampleRate:T.sampleRate}}catch(T){y.length===0&&(g=T),y.push(b),f.warn(`[TTSProcessor] Incremental synthesis skipped a buffered segment: ${T instanceof Error?T.message:String(T)}`);return}};for await(const _ of e){if(n?.())break;for(l+=_;!n?.();){const b=uqe(l,a,s,!1);if(!b)break;if(l=b.remainder,!b.segment)continue;const T=await v(b.segment);T&&(m&&(yield m),m=T)}}for(;!n?.();){const _=uqe(l,a,s,!0);if(!_)break;if(l=_.remainder,!_.segment)continue;const b=await v(_.segment);b&&(m&&(yield m),m=b)}if(m&&(yield{...m,isFinal:!0}),y.length>0)throw new lM(g,y)}}}});function yqe(e){e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"&&e.catch(()=>{})}function XAr(e,t){return Object.defineProperty(e,Z7,{value:t,enumerable:!1,configurable:!0,writable:!0}),e}function vqe(e){if(e!=null&&!(typeof e!="object"&&typeof e!="function"))try{const t=e[Z7];if(typeof t!="function")return;yqe(t())}catch{}}function QAr(e){try{const t=e.return;if(typeof t!="function")return;yqe(t.call(e,void 0))}catch{}}var Z7,_qe=S({"src/lib/utils/streamCancellation.ts"(){"use strict";Z7=Symbol.for("neurolink.streamCancel")}});function eIr(e){const t=e instanceof lM?e:void 0,r=t?.firstError??e,n=vm(r).message;let o;r instanceof wm?o={code:Gt.SYNTHESIS_FAILED,message:n,retriable:!0}:r instanceof Ne?o={code:r.code,message:n,retriable:r.retriable}:o={code:Gt.SYNTHESIS_FAILED,message:n};const s=t?.failedSegments,i=s?.length??1,a=s?.join(", ")??"unknown";return{...o,message:`Incremental TTS failed for ${i} segment${i===1?"":"s"} (segment${i===1?"":"s"} ${a}): ${o.message}`}}function wqe(e){return e.next().then(t=>({kind:"source",result:t}),t=>({kind:"source-error",error:t}))}function bqe(e){return e.next().then(t=>({kind:"audio",result:t}),t=>({kind:"audio-error",error:t}))}function tIr(e){if(e&&typeof e=="object"&&"content"in e&&typeof e.content=="string"&&e.content.length>0)return e.content}function Tqe(e){const t=e.at(-1);if(!t)return;const r=Buffer.concat(e.map(n=>n.data));return{buffer:r,format:t.format,size:r.length,duration:t.estimatedDuration,voice:t.voice,sampleRate:t.sampleRate}}function rIr(){return new Promise(e=>{setTimeout(e,Cqe).unref?.()})}async function*Eqe(e){const{stream:t,provider:r,options:n,onComplete:o}=e;if(!tu.supports(r)){try{for await(const g of t)yield g}finally{o?.(void 0)}return}const s=new Sqe,i=t[Symbol.asyncIterator]();let a=!1;const l=tu.synthesizeStream(s,r,n,()=>a)[Symbol.asyncIterator](),c=[];let u=wqe(i),d=bqe(l),m=!1,h=!1;try{for(;u||d;){const g=u&&d?await Promise.race(h?[d,u]:[u,d]):u?await u:d?await d:void 0;if(!g)break;if(g.kind==="source-error")throw s.fail(g.error),g.error;if(g.kind==="audio-error"){s.end();const y=eIr(g.error);f.warn(`[TTSProcessor] Incremental stream disabled after an audio error: ${g.error instanceof Error?g.error.message:String(g.error)}`),d=void 0,h=!1,m=!0,o?.(Tqe(c),y);continue}if(g.kind==="source"){if(g.result.done){u=void 0,s.end(),h=!0;continue}const y=tIr(g.result.value);y&&s.push(y),u=wqe(i),h=!0,yield g.result.value;continue}if(g.result.done){d=void 0,m=!0,o?.(Tqe(c));continue}c.push(g.result.value),d=bqe(l),h=!1,yield{type:"tts_audio",audio:g.result.value}}}finally{m||(a=!0,vqe(t)),s.end();const g=[];u&&i.return&&g.push(Promise.resolve().then(()=>i.return?.(void 0))),d&&l.return&&g.push(Promise.resolve().then(()=>l.return?.(void 0))),await Promise.race([Promise.allSettled(g),rIr()]),m||o?.(void 0)}}var Sqe,Cqe,kqe=S({"src/lib/utils/ttsStream.ts"(){"use strict";ct(),_r(),q(),dc(),yn(),_qe(),Sqe=class{values=[];waiters=[];ended=!1;failure;[Symbol.asyncIterator](){return this}next(){if(this.values.length>0){const e=this.values.shift();if(e!==void 0)return Promise.resolve({value:e,done:!1})}return this.failure!==void 0?Promise.reject(this.failure):this.ended?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}push(e){if(this.ended||this.failure!==void 0)return;const t=this.waiters.shift();if(t){t.resolve({value:e,done:!1});return}this.values.push(e)}end(){if(!(this.ended||this.failure!==void 0)){this.ended=!0;for(const e of this.waiters.splice(0))e.resolve({value:void 0,done:!0})}}fail(e){if(!(this.ended||this.failure!==void 0)){this.failure=e;for(const t of this.waiters.splice(0))t.reject(e)}}},Cqe=5e3}}),nIr=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/Types.js"(){}}),X7,Q7=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAnyOf.js"(){kl(),X7=(e,t)=>e.anyOf.length?e.anyOf.length===1?ts(e.anyOf[0],{...t,path:[...t.path,"anyOf",0]}):`z.union([${e.anyOf.map((r,n)=>ts(r,{...t,path:[...t.path,"anyOf",n]})).join(", ")}])`:"z.any()"}}),xqe,Aqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseBoolean.js"(){xqe=e=>"z.boolean()"}}),Iqe,Rqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseDefault.js"(){Iqe=e=>"z.any()"}}),Pqe,Mqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseMultipleType.js"(){kl(),Pqe=(e,t)=>`z.union([${e.type.map(r=>ts({...e,type:r},{...t,withoutDefaults:!0})).join(", ")}])`}}),Dqe,Oqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNot.js"(){kl(),Dqe=(e,t)=>`z.any().refine((value) => !${ts(e.not,{...t,path:[...t.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`}}),Nqe,Lqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNull.js"(){Nqe=e=>"z.null()"}}),$qe,Fqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/half.js"(){$qe=e=>[e.slice(0,e.length/2),e.slice(e.length/2)]}});function cM(e,t){if(e.allOf.length===0)return"z.never()";if(e.allOf.length===1){const r=e.allOf[0];return ts(r,{...t,path:[...t.path,"allOf",r[o0]]})}else{const[r,n]=$qe(Uqe(e.allOf));return`z.intersection(${cM({allOf:r},t)}, ${cM({allOf:n},t)})`}}var o0,Uqe,eV=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAllOf.js"(){kl(),Fqe(),o0=Symbol("Original index"),Uqe=e=>{let t=[];for(let r=0;r<e.length;r++){const n=e[r];if(typeof n=="boolean")t.push(n?{[o0]:r}:{[o0]:r,not:{}});else{if(o0 in n)return e;t.push({...n,[o0]:r})}}return t}}});function zs(e,t,r,n){const o=e[t];let s="";if(o!==void 0){const i=r({value:o,json:JSON.stringify(o)});if(i){const a=i[0],l=i.length===3?i[1]:"",c=i.length===3?i[2]:i[1];s+=a;const u=e.errorMessage?.[t]??n;u!==void 0&&(s+=l+JSON.stringify(u)),s+=c}}return s}var uM=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/withMessage.js"(){}}),Bqe,zqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseArray.js"(){uM(),kl(),Bqe=(e,t)=>{if(Array.isArray(e.items))return`z.tuple([${e.items.map((n,o)=>ts(n,{...t,path:[...t.path,"items",o]}))}])`;let r=e.items?`z.array(${ts(e.items,{...t,path:[...t.path,"items"]})})`:"z.array(z.any())";return r+=zs(e,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),r+=zs(e,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),e.uniqueItems===!0&&(r+=zs(e,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),r}}}),jqe,qqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseConst.js"(){jqe=e=>`z.literal(${JSON.stringify(e.const)})`}}),Gqe,Hqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseEnum.js"(){Gqe=e=>e.enum.length===0?"z.never()":e.enum.length===1?`z.literal(${JSON.stringify(e.enum[0])})`:e.enum.every(t=>typeof t=="string")?`z.enum([${e.enum.map(t=>JSON.stringify(t))}])`:`z.union([${e.enum.map(t=>`z.literal(${JSON.stringify(t)})`).join(", ")}])`}}),Vqe,Wqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseIfThenElse.js"(){kl(),Vqe=(e,t)=>{const r=ts(e.if,{...t,path:[...t.path,"if"]}),n=ts(e.then,{...t,path:[...t.path,"then"]}),o=ts(e.else,{...t,path:[...t.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
|
|
711
|
+
`):void 0,usage:{input:u,output:d,total:u+d},toolCalls:c.length>0?c.map(g=>{let y;try{y=JSON.parse(g.input)}catch(v){f.warn(`Failed to parse tool call args for tool ${g.toolName}:`,v),y={raw:g.input}}return{toolCallId:g.toolCallId,toolName:g.toolName,args:y}}):void 0};if(e.blocking!==!1){const g=await g7(e,s,m);return{...i,evaluationResult:g}}else return g7(e,s,m).catch(g=>{f.error("Non-blocking auto-evaluation error:",g)}),i},wrapStream:async({doStream:n,params:o})=>{const s=o,i=await n(),[a,l]=i.stream.tee();return nAr(e,s,l).catch(c=>{f.error("Non-blocking stream auto-evaluation error:",c)}),{...i,stream:a}}},metadata:t}}async function g7(e,t,r){const n=e.blocking!==!1,o=e.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{const i=await new Wu({threshold:o,provider:e.provider,promptGenerator:e.promptGenerator,evaluationModel:e.evaluationModel}).evaluate(t,r,o,e);e.onEvaluationComplete&&await e.onEvaluationComplete(i)}catch(s){if(f.error("Error during auto-evaluation:",s),n)throw s}}async function nAr(e,t,r){let n="",o;const s=[],i=r.getReader();try{for(;;){const{done:c,value:u}=await i.read();if(c)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let d;try{d=JSON.parse(u.input)}catch(m){f.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),d={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:d})}break;case"finish":{const d=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:d,output:m,total:d+m}}break}}}finally{i.releaseLock()}const a={content:n,usage:o,toolCalls:s.length>0?s:void 0};e.blocking&&f.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");const l={...e,blocking:!1};await g7(l,t,a)}var oAr=S({"src/lib/middleware/builtin/autoEvaluation.ts"(){"use strict";f7(),q()}});function Cze(e){try{Object.defineProperty(e,XP,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function UE(e){return e===null||typeof e!="object"?!1:e[XP]===!0}function ZP(e){e===null||typeof e!="object"||e[XP]!==!0&&Cze(e)}function y7(e,t,r){if(typeof e=="function"&&!UE(t)){t!==null&&typeof t=="object"&&Cze(t);try{const n=e(r);Promise.resolve(n).catch(()=>{})}catch{}}}var XP,v7=S({"src/lib/utils/lifecycleCallbacks.ts"(){"use strict";XP=Symbol.for("neurolink.onErrorFired")}});function _7(e){if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){const t=e,r=typeof t.message=="string"?t.message:String(e);return Object.assign(new Error(r),t)}return new Error(String(e))}function w7(e={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{const o=Date.now();try{const s=await n();if(e.onFinish)try{const i=s.content?.map(l=>l.type==="text"?l.text:"").join("")??"",a=e.onFinish({text:i,usage:s.usage?{promptTokens:s.usage.inputTokens?.total??0,completionTokens:s.usage.outputTokens?.total??0}:void 0,duration:Date.now()-o,finishReason:String(s.finishReason??"")});Promise.resolve(a).catch(l=>{f.warn("[LifecycleMiddleware] onFinish callback error:",l)})}catch(i){f.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){const i=_7(s);throw y7(e.onError,i,{error:i,duration:Date.now()-o,recoverable:l1(i)}),i}},wrapStream:async({doStream:n})=>{const o=Date.now();try{const s=await n();if(!e.onChunk&&!e.onFinish&&!e.onError)return s;let i=0,a="";const l=new TransformStream({transform(c,u){try{if(c.type==="text-delta"&&(a+=c.textDelta),e.onChunk&&c.type)try{const d=e.onChunk({type:c.type,textDelta:c.type==="text-delta"?c.textDelta:void 0,sequenceNumber:i++});Promise.resolve(d).catch(m=>{f.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(d){f.warn("[LifecycleMiddleware] onChunk callback error:",d)}u.enqueue(c)}catch(d){const m=_7(d);throw y7(e.onError,m,{error:m,duration:Date.now()-o,recoverable:l1(m)}),m}},flush(){if(e.onFinish)try{const c=e.onFinish({text:a,duration:Date.now()-o});Promise.resolve(c).catch(u=>{f.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(c){f.warn("[LifecycleMiddleware] onFinish callback error:",c)}}});return{...s,stream:s.stream.pipeThrough(l)}}catch(s){const i=_7(s);throw y7(e.onError,i,{error:i,duration:Date.now()-o,recoverable:l1(i)}),i}}},metadata:{id:"lifecycle",name:"Lifecycle Callbacks",description:"Provides onFinish, onError, and onChunk callbacks for generation and streaming lifecycle events",priority:110,defaultEnabled:!1}}}var kze=S({"src/lib/middleware/builtin/lifecycle.ts"(){"use strict";q(),ct(),v7()}}),b7,xze=S({"src/lib/middleware/factory.ts"(){"use strict";Zkr(),kLe(),uxr(),oAr(),kze(),q(),Wv(),b7=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new CLe,this.initialize(e)}initialize(e){const t={analytics:mH,guardrails:RLe,autoEvaluation:Sze,lifecycle:w7};if(this.registerPreset({name:"default",description:"Default preset with analytics enabled.",config:{analytics:{enabled:!0}}}),this.registerPreset({name:"all",description:"Enables all available middleware.",config:{analytics:{enabled:!0},guardrails:{enabled:!0}}}),this.registerPreset({name:"security",description:"Focuses on security with guardrails.",config:{guardrails:{enabled:!0}}}),f.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){f.debug("Registering custom middleware");for(const r of e.middleware)this.register(r)}for(const r in t)if(!this.registry.has(r)){const n=t[r],o=e.middlewareConfig?.[r]?.config;f.debug(`Registering built-in middleware '${r}'`,o),this.registry.register(n(o))}}registerPreset(e,t=!1){if(this.presets.has(e.name)&&!t)throw new Error(`Preset with name '${e.name}' already exists. Use replace: true to override.`);this.presets.set(e.name,e)}register(e,t){this.registry.register(e,t)}applyMiddleware(e,t,r={}){const n=Date.now();try{const o={...this.options,...r,middlewareConfig:{...this.options.middlewareConfig,...r.middlewareConfig}},s=this.buildMiddlewareConfig(o);for(const[u,d]of Object.entries(s))if(f.debug(`Configuring middleware '${u}'`,{config:d}),d.enabled&&this.registry.has(u)){const m=this.getCreator(u);m&&this.registry.register(m(d.config),{replace:!0})}const i=this.registry.buildChain(t,s);if(i.length===0)return f.debug("No middleware to apply",{provider:t.provider}),e;f.debug(`Applying ${i.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:i.length});const l=hq({model:e,middleware:i}),c=Date.now()-n;return f.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:i.length,processingTime:c}),l}catch(o){return f.error("Failed to apply middleware",{provider:t.provider,error:o instanceof Error?o.message:String(o)}),e}}getCreator(e){const t={analytics:mH,guardrails:RLe,autoEvaluation:Sze,lifecycle:w7};return f.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){const t={},r=this.registry.list();for(const o of r)t[o.metadata.id]={enabled:!1,config:{}};let n=e.preset;if(!n&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(n="default"),n){const o=this.getPresetConfig(n);if(o)for(const[s,i]of Object.entries(o))t[s]&&(t[s]={...t[s],...i})}if(e.middlewareConfig)for(const[o,s]of Object.entries(e.middlewareConfig))t[o]={...t[o],...s};if(e.enabledMiddleware)for(const o of e.enabledMiddleware)t[o]&&(t[o].enabled=!0);if(e.disabledMiddleware)for(const o of e.disabledMiddleware)t[o]&&(t[o].enabled=!1);return t}getPresetConfig(e){const t=this.presets.get(e);return t?t.config:null}createContext(e,t,r={},n){return{provider:e,model:t,options:r,session:n,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){const t=[],r=[];for(const[n,o]of Object.entries(e)){if(!this.registry.has(n)){t.push(`Middleware '${n}' is not registered`);continue}o.enabled!==void 0&&typeof o.enabled!="boolean"&&t.push(`Middleware '${n}' enabled property must be boolean`),o.config&&typeof o.config!="object"&&t.push(`Middleware '${n}' config property must be an object`),o.conditions?.providers&&o.conditions.providers.length===0&&r.push(`Middleware '${n}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:r}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){const r=this.registry.buildChain(e,t),n=this.registry.getAggregatedStats(),o={};let s=0,i=0;for(const[a,l]of Object.entries(n))t[a]?.enabled&&(o[a]={applied:!0,executionTime:l.averageExecutionTime},s+=l.averageExecutionTime,i++);return{totalMiddleware:r.length,appliedMiddleware:i,totalExecutionTime:s,results:o}}createModelFactory(e,t={}){return async(r,n={})=>{const o=await e(),s={...t,...n,middlewareConfig:{...t.middlewareConfig,...n.middlewareConfig}};return this.applyMiddleware(o,r,s)}}}}}),QP,T7=S({"src/lib/models/manifests/anthropic.ts"(){"use strict";QP={defaultContextWindow:2e5,familyRules:[{pattern:/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,patch:{vision:!0}},{pattern:/claude-(?:fable|mythos)-\d/i,patch:{vision:!0}}],models:{"claude-sonnet-5":{aliases:["sonnet-5","claude-sonnet"],displayName:"Claude Sonnet 5",contextWindow:1e6,maxOutputTokens:64e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-opus-4-6":{aliases:["opus-4.6","claude-opus-latest"],displayName:"Claude Opus 4.6",contextWindow:1e6,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-6":{aliases:["sonnet-4.6"],displayName:"Claude Sonnet 4.6",contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-5-20251101":{aliases:["claude-opus-4-5","opus-4.5"],displayName:"Claude Opus 4.5",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"claude-sonnet-4-5-20250929":{aliases:["claude-sonnet-4-5","sonnet-4.5"],displayName:"Claude Sonnet 4.5",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-haiku-4-5-20251001":{aliases:["claude-haiku-4-5","haiku-4.5","claude-4-5-haiku"],displayName:"Claude 4.5 Haiku",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-opus-4-1-20250805":{aliases:["claude-opus-4-1","opus-4.1"],displayName:"Claude Opus 4.1",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-20250514":{aliases:["claude-opus-4"],displayName:"Claude Opus 4",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-20250514":{aliases:["claude-sonnet-4"],displayName:"Claude Sonnet 4",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-7-sonnet-20250219":{aliases:["claude-3-7-sonnet"],displayName:"Claude 3.7 Sonnet",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-5-sonnet-20241022":{aliases:["claude-3-5-sonnet"],displayName:"Claude 3.5 Sonnet",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-3-5-haiku-20241022":{aliases:["claude-3-5-haiku"],displayName:"Claude 3.5 Haiku",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:.8,output:4,cacheRead:.08,cacheWrite:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-3-opus-20240229":{aliases:["claude-3-opus"],displayName:"Claude 3 Opus",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-sonnet-20240229":{aliases:["claude-3-sonnet"],displayName:"Claude 3 Sonnet",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-haiku-20240307":{aliases:["claude-3-haiku"],displayName:"Claude 3 Haiku",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0}}}}}),E7,Aze=S({"src/lib/models/manifests/openai.ts"(){"use strict";E7={defaultContextWindow:128e3,models:{"gpt-4o":{aliases:["gpt4o","gpt-4-omni","openai-flagship"],displayName:"GPT-4 Omni",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:2.5,output:10,cacheRead:.625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},category:"general"}},"gpt-4o-mini":{aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],displayName:"GPT-4 Omni Mini",contextWindow:128e3,maxOutputTokens:16384,pricingPerMTok:{input:.15,output:.6,cacheRead:.0375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"gpt-5":{aliases:["gpt5","gpt-5-flagship","openai-latest"],displayName:"GPT-5",contextWindow:4e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10,cacheRead:.3125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5-mini":{aliases:["gpt5-mini","gpt-5-fast"],displayName:"GPT-5 Mini",contextWindow:4e5,maxOutputTokens:16384,pricingPerMTok:{input:.25,output:2,cacheRead:.0625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},o3:{aliases:["o3-reasoning","o3-thinking"],displayName:"O3",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},category:"reasoning"}},"o3-mini":{aliases:["o3-mini-reasoning"],displayName:"O3 Mini",contextWindow:2e5,maxOutputTokens:65536,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},category:"reasoning"}},"gpt-5-nano":{aliases:["gpt5-nano","gpt-5-cheapest"],displayName:"GPT-5 Nano",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:.05,output:.4,cacheRead:.0125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},category:"general"}},"gpt-5.2":{aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],displayName:"GPT-5.2 Thinking",contextWindow:4e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5.2-chat-latest":{aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],displayName:"GPT-5.2 Instant",contextWindow:128e3,maxOutputTokens:32e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},category:"general"}},"gpt-5.2-pro":{aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],displayName:"GPT-5.2 Pro",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-4.1":{aliases:["gpt-4.1","gpt41","million-context"],displayName:"GPT-4.1",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},category:"coding"}},"gpt-4.1-mini":{aliases:["gpt-4.1-mini","gpt41-mini"],displayName:"GPT-4.1 Mini",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.4,output:1.6,cacheRead:.1},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"coding"}},"gpt-4.1-nano":{aliases:["gpt-4.1-nano","gpt41-nano"],displayName:"GPT-4.1 Nano",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.1,output:.4,cacheRead:.025},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},category:"coding"}},"o3-pro":{aliases:["o3-pro","o3-professional"],displayName:"O3 Pro",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o4-mini":{aliases:["o4-mini","o4-fast"],displayName:"O4 Mini",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},category:"reasoning"}},o1:{aliases:["o1-full","o1-premium"],displayName:"O1",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:15,output:60,cacheRead:3.75},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o1-mini":{aliases:["o1-mini","o1-budget"],displayName:"O1 Mini",contextWindow:128e3,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:2.2,cacheRead:.1375},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},category:"reasoning"}},"gpt-4":{aliases:["gpt4","gpt-4-base"],displayName:"GPT-4",contextWindow:8192,maxOutputTokens:4096,pricingPerMTok:{input:30,output:60},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-4-turbo":{aliases:["gpt4-turbo","gpt-4-turbo-preview"],displayName:"GPT-4 Turbo",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:10,output:30},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-3.5-turbo":{aliases:["gpt35","gpt-3.5","chatgpt"],displayName:"GPT-3.5 Turbo",contextWindow:16385,maxOutputTokens:4096,pricingPerMTok:{input:.5,output:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},category:"general"}}}}}}),S7,Ize=S({"src/lib/models/manifests/google-ai.ts"(){"use strict";S7={defaultContextWindow:1048576,models:{"gemini-2.5-pro":{aliases:["gemini-pro","google-flagship","best-analysis"],displayName:"Gemini 2.5 Pro",contextWindow:2097152,maxOutputTokens:8192,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gemini-2.5-flash":{aliases:["gemini-flash","google-fast","best-value"],displayName:"Gemini 2.5 Flash",contextWindow:1048576,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:2.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),C7,Rze=S({"src/lib/models/manifests/vertex.ts"(){"use strict";C7={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),k7,Pze=S({"src/lib/models/manifests/bedrock.ts"(){"use strict";k7={defaultContextWindow:2e5,models:{"amazon.nova-premier-v1:0":{aliases:["nova-premier","aws-flagship"],displayName:"Amazon Nova Premier",contextWindow:1e6,maxOutputTokens:25e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!1},"amazon.nova-pro-v1:0":{aliases:["nova-pro","aws-balanced"],displayName:"Amazon Nova Pro",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"amazon.nova-lite-v1:0":{aliases:["nova-lite","aws-lite","aws-cheap"],displayName:"Amazon Nova Lite",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"anthropic.claude-opus-4-5-20251101-v1:0":{aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],displayName:"Claude 4.5 Opus (Bedrock)",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:5,output:25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"meta.llama4-maverick-17b-instruct-v1:0":{aliases:["bedrock-llama4","bedrock-llama-maverick"],displayName:"Llama 4 Maverick (Bedrock)",contextWindow:1e6,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1}}}}}),x7,Mze=S({"src/lib/models/manifests/azure.ts"(){"use strict";x7={defaultContextWindow:128e3,models:{"gpt-5.1":{aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],displayName:"GPT-5.1 (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-chat":{aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],displayName:"GPT-5.1 Chat (Azure)",contextWindow:3e5,maxOutputTokens:32e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex":{aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],displayName:"GPT-5.1 Codex (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-mini":{aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],displayName:"GPT-5.1 Codex Mini (Azure)",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-max":{aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],displayName:"GPT-5.1 Codex Max (Azure)",contextWindow:5e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-pro":{aliases:["azure-gpt-5-pro","gpt5-pro-azure"],displayName:"GPT-5 Pro (Azure)",contextWindow:256e3,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-turbo":{aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],displayName:"GPT-5 Turbo (Azure)",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),A7,Dze=S({"src/lib/models/manifests/mistral.ts"(){"use strict";A7={defaultContextWindow:128e3,models:{"mistral-large-latest":{aliases:["mistral-large","mistral-flagship"],displayName:"Mistral Large",contextWindow:131072,maxOutputTokens:8192,pricingPerMTok:{input:2,output:6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-small-latest":{aliases:["mistral-small","mistral-cheap"],displayName:"Mistral Small",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.2,output:.6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"codestral-latest":{aliases:["codestral","mistral-code"],displayName:"Codestral",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:.9},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"pixtral-large":{aliases:["pixtral","mistral-vision"],displayName:"Pixtral Large",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),I7,Oze=S({"src/lib/models/manifests/ollama.ts"(){"use strict";I7={defaultContextWindow:128e3,models:{"llama4:latest":{aliases:["llama4","llama4-local"],displayName:"Llama 4",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.3:latest":{aliases:["llama3.3","llama3.3-local"],displayName:"Llama 3.3",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.2:latest":{aliases:["llama3.2","llama","local","offline"],displayName:"Llama 3.2 Latest",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"deepseek-r1:70b":{aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],displayName:"DeepSeek-R1 70B",contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"qwen3:72b":{aliases:["qwen3","qwen3-72b-local"],displayName:"Qwen 3 72B",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-large:latest":{aliases:["mistral-large-local"],displayName:"Mistral Large (Local)",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),R7,Nze=S({"src/lib/models/manifests/litellm.ts"(){"use strict";R7={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:128e3,vision:!1,functionCalling:!1}}}}});function sAr(e){if(!e)return!1;for(const t of BE){if(e===t)return!0;const r=e.indexOf(t);if(r===-1)continue;const n=r===0?"":e[r-1],o=e[r+t.length]??"",s=i=>i===""||/[-_:./@]/.test(i);if(s(n)&&s(o))return!0}return!1}function Vd(e){const t={};for(const[r,n]of Object.entries(e.models))r!=="_default"&&(t[r]=n.maxOutputTokens);return t}var BE,P7,M7,Ai,Sf,zE,jE,D7,eM,Lze,Cf,Bs,O7,oi,qa,$ze,iAr,es=S({"src/lib/core/constants.ts"(){"use strict";T7(),Aze(),Ize(),Rze(),Pze(),Mze(),Dze(),Oze(),Nze(),BE=["gemini-3-pro-image-preview","gemini-2.5-flash-image","gemini-3.1-flash-image-preview","stable-image-ultra","stable-image-core","sd3.5-large","sd3.5-large-turbo","sd3.5-medium","V_1","V_1_TURBO","V_2","V_2_TURBO","V_2A","V_2A_TURBO","V_3","recraftv3","recraftv2","gpt-image-1","dall-e-3","dall-e-2","black-forest-labs/flux","stability-ai/sdxl","stability-ai/stable-diffusion"],P7=[...BE,"gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-pro-preview-customtools","gemini-3-pro-preview","gemini-3-pro-preview-11-2025","gemini-3-pro-latest","gemini-3-flash-preview"],M7=.7,Ai=200,Sf=2,zE=3e5,jE=3e5,D7=12e4,eM=.85,Lze=3e4,Cf=5e3,Bs={min:1,max:500,default:Ai},O7={anthropic:{default:64e3,...Vd(QP)},openai:{default:128e3,...Vd(E7)},"google-ai":{default:64e3,...Vd(S7)},vertex:{default:64e3,...Vd(C7)},bedrock:{default:64e3,...Vd(k7)},azure:{default:128e3,...Vd(x7)},mistral:{default:128e3,...Vd(A7)},ollama:{default:64e3,...Vd(I7)},litellm:{default:128e3,...Vd(R7)},default:64e3},oi={MAX_SIZE_MB:20,DEFAULT_MAX_PAGES:20,MAX_SCALE:10,MIN_SCALE:.1,DEFAULT_SCALE:1.5,PAGE_COUNT_TIMEOUT_MS:5e3,DEFAULT_MAX_CANVAS_PIXELS:16777216,MIN_EFFECTIVE_SCALE:.1},qa={MAX_PROMPT_LENGTH:1e6,HIGH_MEMORY_THRESHOLD:100,LONG_TIMEOUT_WARNING:3e5,DEFAULT_CONCURRENCY_LIMIT:3,MAX_CONCURRENCY_LIMIT:5,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_INITIAL_DELAY:1e3,DEFAULT_MAX_DELAY:3e4,DEFAULT_BACKOFF_MULTIPLIER:2},$ze=15e3,iAr={maxTokens:(()=>{if(!process.env.NEUROLINK_DEFAULT_MAX_TOKENS)return;const e=parseInt(process.env.NEUROLINK_DEFAULT_MAX_TOKENS,10);return Number.isFinite(e)?e:void 0})(),temperature:process.env.NEUROLINK_DEFAULT_TEMPERATURE?(()=>{const e=parseFloat(process.env.NEUROLINK_DEFAULT_TEMPERATURE);return Number.isFinite(e)?e:M7})():M7}}}),Fze,aAr=S({"src/lib/models/manifests/openai-compatible.ts"(){"use strict";Fze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Uze,lAr=S({"src/lib/models/manifests/openrouter.ts"(){"use strict";Uze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Bze,cAr=S({"src/lib/models/manifests/huggingface.ts"(){"use strict";Bze={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),zze,uAr=S({"src/lib/models/manifests/sagemaker.ts"(){"use strict";zze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),jze,dAr=S({"src/lib/models/manifests/deepseek.ts"(){"use strict";jze={defaultContextWindow:64e3,models:{_default:{aliases:[],contextWindow:64e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),qze,pAr=S({"src/lib/models/manifests/nvidia-nim.ts"(){"use strict";qze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Gze,mAr=S({"src/lib/models/manifests/lm-studio.ts"(){"use strict";Gze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),Hze,hAr=S({"src/lib/models/manifests/llamacpp.ts"(){"use strict";Hze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),Vze,fAr=S({"src/lib/models/manifests/xai.ts"(){"use strict";Vze={defaultContextWindow:131072,models:{_default:{aliases:[],contextWindow:131072,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Wze,gAr=S({"src/lib/models/manifests/groq.ts"(){"use strict";Wze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Kze,yAr=S({"src/lib/models/manifests/cerebras.ts"(){"use strict";Kze={defaultContextWindow:65536,models:{_default:{aliases:[],contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!0}}}}}),Jze,vAr=S({"src/lib/models/manifests/cohere.ts"(){"use strict";Jze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Yze,_Ar=S({"src/lib/models/manifests/together-ai.ts"(){"use strict";Yze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Zze,wAr=S({"src/lib/models/manifests/fireworks.ts"(){"use strict";Zze={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Xze,bAr=S({"src/lib/models/manifests/perplexity.ts"(){"use strict";Xze={defaultContextWindow:127e3,models:{_default:{aliases:[],contextWindow:127e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),Qze,TAr=S({"src/lib/models/manifests/cloudflare.ts"(){"use strict";Qze={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),eje,EAr=S({"src/lib/models/manifests/replicate.ts"(){"use strict";eje={defaultContextWindow:32768,models:{_default:{aliases:[],contextWindow:32768,maxOutputTokens:32768,vision:!1,functionCalling:!1}}}}}),tje,SAr=S({"src/lib/models/manifests/voyage.ts"(){"use strict";tje={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),rje,CAr=S({"src/lib/models/manifests/jina.ts"(){"use strict";rje={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),nje,kAr=S({"src/lib/models/manifests/stability.ts"(){"use strict";nje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),oje,xAr=S({"src/lib/models/manifests/ideogram.ts"(){"use strict";oje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),sje,AAr=S({"src/lib/models/manifests/recraft.ts"(){"use strict";sje={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}});function ije(e){return GE[e]}function aje(){return Object.keys(GE)}function qE(e,t,r){if(!e.familyRules)return r;let n=r;for(const o of e.familyRules)o.pattern.test(t)&&(n={...n,...o.patch});return n}function N7(e,t){const r=GE[e];if(!r)return;const n=r.models[t];if(n)return qE(r,t,n);const o=Object.entries(r.models).find(([s,i])=>s!=="_default"&&i.aliases.includes(t));if(o)return qE(r,t,o[1])}function IAr(e,t){const r=GE[e];if(!r)return;const n=r.models[t];if(n)return qE(r,t,n);const o=Object.entries(r.models).find(([a,l])=>a!=="_default"&&l.aliases.includes(t));if(o)return qE(r,t,o[1]);const i=Object.keys(r.models).filter(a=>a!=="_default").sort((a,l)=>l.length-a.length).find(a=>t.startsWith(a));if(i)return qE(r,t,r.models[i])}var GE,tM=S({"src/lib/models/manifestRegistry.ts"(){"use strict";T7(),Aze(),Mze(),Pze(),Oze(),Dze(),Ize(),aAr(),lAr(),Rze(),cAr(),Nze(),uAr(),dAr(),pAr(),mAr(),hAr(),fAr(),gAr(),yAr(),vAr(),_Ar(),wAr(),bAr(),TAr(),EAr(),SAr(),CAr(),kAr(),xAr(),AAr(),GE={anthropic:QP,openai:E7,azure:x7,bedrock:k7,ollama:I7,mistral:A7,"google-ai":S7,"openai-compatible":Fze,openrouter:Uze,vertex:C7,huggingface:Bze,litellm:R7,sagemaker:zze,deepseek:jze,"nvidia-nim":qze,"lm-studio":Gze,llamacpp:Hze,xai:Vze,groq:Wze,cerebras:Kze,cohere:Jze,"together-ai":Yze,fireworks:Zze,perplexity:Xze,cloudflare:Qze,replicate:eje,voyage:tje,jina:rje,stability:nje,ideogram:oje,recraft:sje}}});function RAr(e){return/mini|nano|haiku|flash|lite/i.test(e)?"fast":/opus|^o1|^o3|-pro$/i.test(e)?"slow":"medium"}function lje(e){return e.reasoning?"high":"medium"}function PAr(){const e={};for(const t of aje()){const r=ije(t);if(r)for(const[n,o]of Object.entries(r.models)){if(n==="_default"||!o.pricingPerMTok)continue;if(e[n]){f.debug(`[modelRegistry] Manifest id collision: "${n}" already derived from ${e[n].provider}; keeping first, skipping ${t}`);continue}const s=o.reasoning?9:6,i=L7[n];e[n]={id:n,name:o.displayName??n,provider:t,description:o.displayName??n,capabilities:{vision:o.vision,functionCalling:o.functionCalling,codeGeneration:!0,reasoning:o.reasoning??!1,multimodal:o.vision||o.nativeAudio===!0,streaming:!0,jsonMode:o.jsonMode??!1,samplingParams:o.samplingParams},pricing:{inputCostPer1K:o.pricingPerMTok.input/1e3,outputCostPer1K:o.pricingPerMTok.output/1e3,currency:"USD"},performance:o.curated?.performance??{speed:RAr(n),quality:lje(o),accuracy:lje(o)},limits:{maxContextTokens:o.contextWindow,maxOutputTokens:o.maxOutputTokens,...i?.limits?.maxRequestsPerMinute!==void 0?{maxRequestsPerMinute:i.limits.maxRequestsPerMinute}:{}},useCases:o.curated?.useCases??{coding:o.functionCalling?8:5,creative:o.vision?7:6,analysis:s,conversation:7,reasoning:s,translation:6,summarization:7},aliases:o.aliases,deprecated:i?.deprecated??!1,...i?.releaseDate!==void 0?{releaseDate:i.releaseDate}:{},isLocal:t==="ollama"||t==="lm-studio"||t==="llamacpp",category:o.curated?.category??(o.reasoning?"reasoning":"general")}}}return e}function HE(){return Object.values(Ku)}function MAr(e){return Ku[e]}function DAr(e,t,r){const n=r.toLowerCase(),o=xm[n]??n,s=Ku[o];return!s||s.provider!==t.toLowerCase()?!0:s.capabilities[e]??!0}function OAr(e,t){const r=(t??"").toLowerCase();if(!r)return!0;const n=xm[r]??r,o=Ku[n];return o&&o.provider===e.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!uje.some(s=>s.test(n)||s.test(r))}function eu(e,t,r,n){return OAr(e,t)?r:((r.temperature!==void 0||r.topP!==void 0)&&f.debug(`[ModelRegistry] Stripping sampling params for ${e}/${t} at ${n} \u2014 model rejects temperature/topP`,{provider:e,model:t,site:n,hadTemperature:r.temperature!==void 0,hadTopP:r.topP!==void 0}),{})}function NAr(e){return Object.values(Ku).filter(t=>t.provider===e)}function LAr(){return aje()}function $Ar(e,t,r){const n=t/1e3*e.pricing.inputCostPer1K,o=r/1e3*e.pricing.outputCostPer1K;return n+o}var L7,Ku,xm,cje,uje,Am=S({"src/lib/models/modelRegistry.ts"(){"use strict";yt(),q(),tM(),L7={"gpt-4o":{id:"gpt-4o",name:"GPT-4 Omni",provider:"openai",description:"Most capable OpenAI model with vision and advanced reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.005,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},aliases:["gpt4o","gpt-4-omni","openai-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-13",category:"general"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4 Omni Mini",provider:"openai",description:"Fast and cost-effective model with strong performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:15e-5,outputCostPer1K:6e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-07-18",category:"general"},"gpt-5":{id:"gpt-5",name:"GPT-5",provider:"openai",description:"OpenAI's most advanced model with breakthrough reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32768,maxRequestsPerMinute:200},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["gpt5","gpt-5-flagship","openai-latest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",provider:"openai",description:"Fast and efficient GPT-5 variant for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["gpt5-mini","gpt-5-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},o3:{id:"o3",name:"O3",provider:"openai",description:"Advanced reasoning model with extended thinking capabilities for complex tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:100},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["o3-reasoning","o3-thinking"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"o3-mini":{id:"o3-mini",name:"O3 Mini",provider:"openai",description:"Cost-effective reasoning model with strong logical capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},aliases:["o3-mini-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",provider:"openai",description:"Fastest and most cost-effective GPT-5 variant for simple tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-5,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:272e3,maxOutputTokens:128e3,maxRequestsPerMinute:2e3},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},aliases:["gpt5-nano","gpt-5-cheapest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"OpenAI's latest flagship model with deep reasoning capabilities, 100% on AIME 2025, 80% SWE-bench Verified",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:150},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"Fast everyday model for quick tasks with excellent performance across all domains",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"general"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",provider:"openai",description:"Highest quality model for science, math, and complex problem-solving with 92.4% GPQA Diamond performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.021,outputCostPer1K:.168,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",provider:"openai",description:"Advanced coding model with 1 million token context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.008,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:200},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["gpt-4.1","gpt41","million-context"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",provider:"openai",description:"Fast GPT-4.1 variant with 1M context for efficient coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:4e-4,outputCostPer1K:.0016,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:500},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt-4.1-mini","gpt41-mini"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",provider:"openai",description:"Most cost-effective GPT-4.1 variant with 1M context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:1e-4,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:1e3},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},aliases:["gpt-4.1-nano","gpt41-nano"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"o3-pro":{id:"o3-pro",name:"O3 Pro",provider:"openai",description:"Most powerful reasoning model for complex scientific and coding tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.12,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o3-pro","o3-professional"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},"o4-mini":{id:"o4-mini",name:"O4 Mini",provider:"openai",description:"Fast reasoning model optimized for math, coding, and visual tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},aliases:["o4-mini","o4-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},o1:{id:"o1",name:"O1",provider:"openai",description:"Premium reasoning model with highest capability for mission-critical tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.15,outputCostPer1K:.6,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o1-full","o1-premium"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-preview":{id:"o1-preview",name:"O1 Preview",provider:"openai",description:"Preview version of O1 reasoning model",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:100},useCases:{coding:9,creative:6,analysis:9,conversation:6,reasoning:9,translation:5,summarization:6},aliases:["o1-preview"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-mini":{id:"o1-mini",name:"O1 Mini",provider:"openai",description:"Cost-effective O1 variant with strong reasoning capabilities",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},aliases:["o1-mini","o1-budget"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"gpt-4":{id:"gpt-4",name:"GPT-4",provider:"openai",description:"Previous generation flagship model (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:8192,maxOutputTokens:4096,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4","gpt-4-base"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-14",category:"general"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",provider:"openai",description:"Faster GPT-4 variant with extended context (legacy)",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4-turbo","gpt-4-turbo-preview"],deprecated:!0,isLocal:!1,releaseDate:"2024-04-09",category:"general"},"gpt-3.5-turbo":{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo",provider:"openai",description:"Fast and cost-effective model for simpler tasks (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!1,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-4,outputCostPer1K:.0015,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:16385,maxOutputTokens:4096,maxRequestsPerMinute:3500},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},aliases:["gpt35","gpt-3.5","chatgpt"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-01",category:"general"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google-ai",description:"Google's most capable multimodal model with large context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00125,outputCostPer1K:.005,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2097152,maxOutputTokens:8192,maxRequestsPerMinute:360},useCases:{coding:9,creative:8,analysis:10,conversation:8,reasoning:9,translation:9,summarization:9},aliases:["gemini-pro","google-flagship","best-analysis"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"reasoning"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google-ai",description:"Fast and efficient multimodal model with large context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:75e-6,outputCostPer1K:3e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1048576,maxOutputTokens:8192,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gemini-flash","google-fast","best-value"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"general"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",description:"Anthropic's most capable model with exceptional reasoning, coding, and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["claude-4.5-opus","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",provider:"anthropic",description:"For complex agentic coding and enterprise work",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-5","claude-opus-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-07-24",category:"reasoning"},"claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",provider:"anthropic",description:"The best combination of speed and intelligence",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.002,outputCostPer1K:.01,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["sonnet-5","claude-sonnet-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-30",category:"general"},"claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",provider:"anthropic",description:"Next-generation intelligence for long-running agents",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.01,outputCostPer1K:.05,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["fable-5"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-09",category:"reasoning"},"claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",provider:"anthropic",description:"Anthropic Opus 4.8, superseded by Claude Opus 5",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.8"],deprecated:!1,isLocal:!1,releaseDate:"2026-05-28",category:"reasoning"},"claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",provider:"anthropic",description:"Anthropic Opus 4.7, superseded by Claude Opus 4.8",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.7"],deprecated:!1,isLocal:!1,releaseDate:"2026-04-16",category:"reasoning"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Balanced Claude model with excellent performance across all tasks including vision and reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-4.5-sonnet","sonnet-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-09-29",category:"coding"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku",provider:"anthropic",description:"Latest fast and efficient Claude model with vision support",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["claude-4.5-haiku","claude-haiku-latest","haiku-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-10-15",category:"general"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Anthropic's most capable model with excellent reasoning and coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-3.5-sonnet","claude-sonnet","best-coding","claude-latest"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"coding"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku",provider:"anthropic",description:"Fast and efficient Claude model for quick tasks",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["claude-3.5-haiku","claude-haiku","claude-fast"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"general"},"mistral-large-latest":{id:"mistral-large-latest",name:"Mistral Large",provider:"mistral",description:"Mistral's flagship model with excellent reasoning and multilingual capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["mistral-large","mistral-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"mistral-small-latest":{id:"mistral-small-latest",name:"Mistral Small",provider:"mistral",description:"Efficient model for simple tasks and cost-sensitive applications",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:6,creative:6,analysis:7,conversation:7,reasoning:6,translation:7,summarization:7},aliases:["mistral-small","mistral-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-02-26",category:"general"},"codestral-latest":{id:"codestral-latest",name:"Codestral",provider:"mistral",description:"Specialized code generation model trained on 80+ programming languages",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:10,creative:5,analysis:7,conversation:5,reasoning:8,translation:5,summarization:6},aliases:["codestral","mistral-code"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-29",category:"coding"},"pixtral-large":{id:"pixtral-large",name:"Pixtral Large",provider:"mistral",description:"Multimodal vision-language model for image understanding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:9,conversation:7,reasoning:8,translation:7,summarization:8},aliases:["pixtral","mistral-vision"],deprecated:!0,isLocal:!1,releaseDate:"2024-09-01",category:"vision"},"llama4:latest":{id:"llama4:latest",name:"Llama 4",provider:"ollama",description:"Latest Llama 4 with multimodal vision and tool capabilities, runs locally",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:8},aliases:["llama4","llama4-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"llama3.3:latest":{id:"llama3.3:latest",name:"Llama 3.3",provider:"ollama",description:"High-performance Llama 3.3 for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["llama3.3","llama3.3-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-12-01",category:"general"},"llama3.2:latest":{id:"llama3.2:latest",name:"Llama 3.2 Latest",provider:"ollama",description:"Local Llama model for private, offline AI generation",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:6,creative:7,analysis:6,conversation:7,reasoning:6,translation:6,summarization:6},aliases:["llama3.2","llama","local","offline"],deprecated:!1,isLocal:!0,releaseDate:"2024-09-25",category:"general"},"deepseek-r1:70b":{id:"deepseek-r1:70b",name:"DeepSeek-R1 70B",provider:"ollama",description:"State-of-the-art reasoning model rivaling OpenAI O1, runs locally",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:65536,maxOutputTokens:8192},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:7,summarization:7},aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],deprecated:!1,isLocal:!0,releaseDate:"2025-01-20",category:"reasoning"},"qwen3:72b":{id:"qwen3:72b",name:"Qwen 3 72B",provider:"ollama",description:"Advanced reasoning and multilingual model from Alibaba",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["qwen3","qwen3-72b-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"mistral-large:latest":{id:"mistral-large:latest",name:"Mistral Large (Local)",provider:"ollama",description:"Mistral Large model for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:9,summarization:8},aliases:["mistral-large-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-02-26",category:"general"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Amazon Nova Premier",provider:"bedrock",description:"Amazon's most capable foundation model with advanced multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.0025,outputCostPer1K:.0125,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:100},useCases:{coding:9,creative:9,analysis:10,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["nova-premier","aws-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-01",category:"reasoning"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Amazon Nova Pro",provider:"bedrock",description:"Highly capable multimodal model balancing accuracy and speed",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:8e-4,outputCostPer1K:.0032,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["nova-pro","aws-balanced"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Amazon Nova Lite",provider:"bedrock",description:"Fast and cost-effective multimodal model optimized for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:6e-5,outputCostPer1K:24e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:500},useCases:{coding:7,creative:7,analysis:8,conversation:8,reasoning:7,translation:8,summarization:9},aliases:["nova-lite","aws-lite","aws-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude 4.5 Opus (Bedrock)",provider:"bedrock",description:"Anthropic's most capable model available on Bedrock for enterprise workloads",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.015,outputCostPer1K:.075,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick (Bedrock)",provider:"bedrock",description:"Meta's latest Llama 4 model with vision on Bedrock",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:19e-5,outputCostPer1K:55e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["bedrock-llama4","bedrock-llama-maverick"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-01",category:"general"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1 (Azure)",provider:"azure",description:"Azure's latest GPT-5.1 flagship model with enhanced reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.045,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"gpt-5.1-chat":{id:"gpt-5.1-chat",name:"GPT-5.1 Chat (Azure)",provider:"azure",description:"Azure GPT-5.1 optimized for conversational interactions",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:32e3,maxRequestsPerMinute:150},useCases:{coding:8,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"general"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex (Azure)",provider:"azure",description:"Azure GPT-5.1 specialized for code generation and software development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:7,analysis:9,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini (Azure)",provider:"azure",description:"Fast and efficient Azure code model for quick development tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.009,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:6,analysis:8,conversation:7,reasoning:8,translation:6,summarization:7},aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max (Azure)",provider:"azure",description:"Azure's most powerful code model for complex enterprise development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.025,outputCostPer1K:.075,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:5e5,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro (Azure)",provider:"azure",description:"Azure GPT-5 Pro with enhanced enterprise features",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.02,outputCostPer1K:.06,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5-pro","gpt5-pro-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-turbo":{id:"gpt-5-turbo",name:"GPT-5 Turbo (Azure)",provider:"azure",description:"Azure GPT-5 Turbo optimized for fast responses",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.008,outputCostPer1K:.024,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32768,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],deprecated:!0,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},Ku={...L7,...PAr()},xm={},Object.values(Ku).forEach(e=>{e.aliases.forEach(t=>{xm[t.toLowerCase()]=e.id})}),Object.entries(t1).forEach(([e,t])=>{xm[e.toLowerCase().replace(/_/g,"-")]=t}),xm.local="llama3.2:latest",cje={coding:["gpt-5.2-pro","claude-opus-4-5-20251101","gpt-5.2","codestral-latest","claude-sonnet-4-5-20250929"],creative:["gpt-5.2","claude-opus-4-5-20251101","gpt-5","gemini-2.5-pro"],analysis:["gpt-5.2-pro","gemini-2.5-pro","claude-opus-4-5-20251101","o3","amazon.nova-premier-v1:0"],conversation:["gpt-5.2-chat-latest","gpt-5","claude-sonnet-4-5-20250929","gpt-4o"],reasoning:["gpt-5.2-pro","gpt-5.2","o3","claude-opus-4-5-20251101","gemini-2.5-pro","deepseek-r1:70b"],translation:["gemini-2.5-pro","mistral-large-latest","gpt-5"],summarization:["gemini-2.5-flash","gpt-5-mini","claude-haiku-4-5-20251001"],"cost-effective":["gemini-2.5-flash","gpt-4o-mini","mistral-small-latest","amazon.nova-lite-v1:0"],"high-quality":["gpt-5.2-pro","gpt-5.2","claude-opus-4-5-20251101","gemini-2.5-pro"],fast:["gpt-5.2-chat-latest","gpt-5-mini","gemini-2.5-flash","claude-haiku-4-5-20251001","o3-mini"],local:["llama4:latest","deepseek-r1:70b","qwen3:72b","llama3.3:latest"],multimodal:["gpt-5.2","gpt-5.2-pro","claude-opus-4-5-20251101","gemini-2.5-pro","amazon.nova-premier-v1:0"]},uje=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]}});function e0(e,t){if(e.output?.mode==="music")return"music";if(e.output?.mode==="avatar")return"avatar";if(e.output?.mode==="video")return"video";if(e.output?.mode==="ppt")return"ppt";const r=e.output?.format==="json"||e.output?.format==="structured"||e.output?.format==="text";return sAr(t)&&!r?"image":e.tts?.enabled&&!e.tts?.useAiResponse?"tts-direct":"text"}var rM=S({"src/lib/core/resolveRequestKind.ts"(){"use strict";es()}}),$7,dje,pje,F7,mje=S({"otel-stub:@opentelemetry/sdk-trace-base"(){$7={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},dje={startSpan(){return $7},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)($7)}},pje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return dje}shutdown(){return Promise.resolve()}},F7=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}}}),U7,hje=S({"otel-stub:@opentelemetry/exporter-trace-otlp-http"(){U7=class{export(){}shutdown(){return Promise.resolve()}}}}),B7,fje=S({"otel-stub:@opentelemetry/resources"(){B7=e=>({attributes:e||{},merge(){return this}})}}),z7,j7,gje=S({"otel-stub:@opentelemetry/semantic-conventions"(){z7="service.name",j7="service.version"}}),yje={};he(yje,{ATTR_SERVICE_NAME:()=>Vje,ATTR_SERVICE_VERSION:()=>Wje,AsyncLocalStorageContextManager:()=>Gje,BasicTracerProvider:()=>Aje,BatchLogRecordProcessor:()=>Bje,BatchSpanProcessor:()=>Pje,DiagConsoleLogger:()=>_je,DiagLogLevel:()=>wje,INVALID_SPAN_CONTEXT:()=>Cje,LangfuseSpanProcessor:()=>Fje,LoggerProvider:()=>Uje,MeterProvider:()=>zje,NodeSDK:()=>xje,NodeTracerProvider:()=>Ije,OTLPLogExporter:()=>Dje,OTLPMetricExporter:()=>Oje,OTLPTraceExporter:()=>Mje,PeriodicExportingMetricReader:()=>jje,SEMRESATTRS_SERVICE_NAME:()=>Kje,SEMRESATTRS_SERVICE_VERSION:()=>Jje,SeverityNumber:()=>qje,SimpleSpanProcessor:()=>Rje,SpanKind:()=>K7,SpanStatusCode:()=>W7,TraceFlags:()=>vje,ValueType:()=>bje,W3CTraceContextPropagator:()=>Hje,baggageEntryMetadataFromString:()=>kje,context:()=>G7,default:()=>Yje,diag:()=>sM,getNodeAutoInstrumentations:()=>Nje,isSpanContextValid:()=>Tje,isValidSpanId:()=>Sje,isValidTraceId:()=>Eje,metrics:()=>V7,propagation:()=>H7,registerInstrumentations:()=>Lje,resourceFromAttributes:()=>$je,trace:()=>q7});var nM,VE,oM,WE,q7,G7,H7,V7,sM,W7,K7,vje,_je,wje,bje,Tje,Eje,Sje,Cje,kje,xje,Aje,Ije,Rje,Pje,Mje,Dje,Oje,Nje,Lje,$je,Fje,Uje,Bje,zje,jje,qje,Gje,Hje,Vje,Wje,Kje,Jje,Yje,FAr=S({"otel-stub:@opentelemetry/context-async-hooks"(){nM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},VE={startSpan(){return nM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(nM)}},oM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},WE={getValue(){},setValue(){return WE},deleteValue(){return WE}},q7={getTracer(){return VE},getTracerProvider(){return{getTracer(){return VE}}},setGlobalTracerProvider(){},getSpan(){return nM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},G7={active(){return WE},with(e,t){return t()},bind(e,t){return t},setValue(){return WE},getValue(){}},H7={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},V7={getMeter(){return oM},getMeterProvider(){return{getMeter(){return oM}}},setGlobalMeterProvider(){}},sM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return sM}},W7={UNSET:0,OK:1,ERROR:2},K7={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},vje={NONE:0,SAMPLED:1},_je=class{},wje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},bje={INT:0,DOUBLE:1},Tje=()=>!1,Eje=()=>!1,Sje=()=>!1,Cje={traceId:"0",spanId:"0",traceFlags:0},kje=()=>({}),xje=class{start(){}shutdown(){return Promise.resolve()}},Aje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return VE}shutdown(){return Promise.resolve()}},Ije=class{register(){}addSpanProcessor(){}getTracer(){return VE}shutdown(){return Promise.resolve()}},Rje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Pje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Mje=class{export(){}shutdown(){return Promise.resolve()}},Dje=class{export(){}shutdown(){return Promise.resolve()}},Oje=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Nje=()=>[],Lje=()=>{},$je=e=>({attributes:e||{},merge(){return this}}),Fje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Uje=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},Bje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},zje=class{constructor(){}getMeter(){return oM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},jje=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},qje={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},Gje=class{enable(){return this}disable(){return this}},Hje=class{inject(){}extract(e){return e}fields(){return[]}},Vje="service.name",Wje="service.version",Kje="service.name",Jje="service.version",Yje={trace:q7,context:G7,propagation:H7,metrics:V7,diag:sM,SpanStatusCode:W7,SpanKind:K7}}}),J7={};he(J7,{TelemetryService:()=>kf});var kf,KE=S({"src/lib/telemetry/telemetryService.ts"(){"use strict";er(),mje(),hje(),fje(),gje(),q(),kf=class PA{static instance;tracerProvider;enabled=!1;initialized=!1;usingExternalTracerProvider=!1;meter;tracer;aiRequestCounter;aiRequestDuration;aiTokensUsed;aiProviderErrors;aiCostUsd;mcpToolCalls;connectionCounter;responseTimeHistogram;activeConnectionCount=0;errorCount=0;requestCount=0;totalResponseTime=0;responseTimeCount=0;constructor(){this.enabled=this.isTelemetryEnabled(),this.enabled?this.initializeTelemetry():f.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return PA.instance||(PA.instance=new PA),PA.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{const t=vt.getTracerProvider();if(!t)return!1;const r=t.constructor?.name||"";if(r&&r!=="ProxyTracerProvider"&&r!=="NoopTracerProvider")return!0;const o=(typeof t.getDelegate=="function"?t.getDelegate():t._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(t){return f.warn("[Telemetry] Failed checking for external TracerProvider",{error:t instanceof Error?t.message:String(t)}),!1}}adoptExternalTracerProvider(t){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=Mh.getMeter("neurolink-ai"),this.tracer=vt.getTracer("neurolink-ai"),this.initializeMetrics(),f.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:t,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered");return}const t=B7({[z7]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[j7]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),r=new U7({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new pje({resource:t,spanProcessors:[new F7(r)]}),this.meter=Mh.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),f.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(t){const r=t instanceof Error?t.message:String(t);if((r.includes("duplicate registration")||r.includes("already registered")||r.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected");return}f.error("[Telemetry] Failed to initialize:",t),this.enabled=!1}}initializeMetrics(){!this.enabled||!this.meter||(this.aiRequestCounter=this.meter.createCounter("ai_requests_total",{description:"Total number of AI requests"}),this.aiRequestDuration=this.meter.createHistogram("ai_request_duration_ms",{description:"AI request duration in milliseconds"}),this.aiTokensUsed=this.meter.createCounter("ai_tokens_used_total",{description:"Total number of AI tokens used"}),this.aiCostUsd=this.meter.createCounter("ai_cost_usd_total",{description:"Total accumulated AI cost in USD"}),this.aiProviderErrors=this.meter.createCounter("ai_provider_errors_total",{description:"Total number of AI provider errors"}),this.mcpToolCalls=this.meter.createCounter("mcp_tool_calls_total",{description:"Total number of MCP tool calls"}),this.connectionCounter=this.meter.createCounter("connections_total",{description:"Total number of connections"}),this.responseTimeHistogram=this.meter.createHistogram("response_time_ms",{description:"Response time in milliseconds"}))}async initialize(){if(this.enabled){if(this.usingExternalTracerProvider){this.initialized=!0,f.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,f.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{const{AsyncLocalStorageContextManager:t}=await Promise.resolve().then(()=>(FAr(),yje));Er.setGlobalContextManager(new t().enable())}catch{}this.initialized=!0,f.debug("[Telemetry] Tracer provider started successfully")}catch(t){f.error("[Telemetry] Failed to start:",t),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(t,r,n="generate_text"){if(!this.enabled||!this.tracer)return await r();const o=this.tracer.startSpan(`ai.${t}.${n}`,{attributes:{"ai.provider":t,"ai.operation":n}});try{const s=await r();return o.setStatus({code:1}),s}catch(s){throw o.setStatus({code:2,message:s instanceof Error?s.message:"Unknown error"}),o.recordException(s),s}finally{o.end()}}recordAIRequest(t,r,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!this.enabled||!this.aiRequestCounter)return;const i={provider:t,model:r};this.aiRequestCounter.add(1,i),this.aiRequestDuration?.record(o,i),this.aiTokensUsed?.add(n,i),s!==void 0&&Number.isFinite(s)&&s>0&&this.aiCostUsd?.add(s,i)}recordAIError(t,r){this.errorCount++,!(!this.enabled||!this.aiProviderErrors)&&this.aiProviderErrors.add(1,{provider:t,error:r.name,message:r.message.substring(0,100)})}recordMCPToolCall(t,r,n){!this.enabled||!this.mcpToolCalls||this.mcpToolCalls.add(1,{tool:t,success:n.toString(),duration_bucket:this.getDurationBucket(r)})}recordConnection(t){this.activeConnectionCount++,!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(1,{connection_type:t})}recordConnectionClosed(t){this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(-1,{connection_type:t,event:"disconnect"})}recordResponseTime(t,r,n){this.totalResponseTime+=n,this.responseTimeCount++,!(!this.enabled||!this.responseTimeHistogram)&&this.responseTimeHistogram.record(n,{endpoint:t,method:r,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(t,r,n){if(!this.enabled||!this.meter)return;this.meter.createCounter(`custom_${t}`,{description:`Custom metric: ${t}`}).add(r,n||{})}recordCustomHistogram(t,r,n){if(!this.enabled||!this.meter)return;this.meter.createHistogram(`custom_${t}_histogram`,{description:`Custom histogram: ${t}`}).record(r,n||{})}async getHealthMetrics(){const t=process.memoryUsage(),r=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:t,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(r*100)/100,averageResponseTime:Math.round(n*100)/100}}isEnabled(){return this.enabled}getStatus(){return{enabled:this.enabled,initialized:this.initialized,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,service:process.env.OTEL_SERVICE_NAME||"neurolink-ai",version:process.env.OTEL_SERVICE_VERSION||"3.0.1"}}getDurationBucket(t){return t<100?"fast":t<500?"medium":t<1e3?"slow":"very_slow"}getStatusBucket(t){return t<200?"excellent":t<500?"good":t<1e3?"acceptable":"poor"}async shutdown(){if(this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,f.debug("[Telemetry] Tracer provider shutdown completed")}catch(t){f.error("[Telemetry] Error during shutdown:",t)}}}}});function Ji(e,t=Zje){let r;try{r=typeof e=="string"?e:JSON.stringify(e)??String(e)}catch{r=String(e)}if(r.length>t){const n=`...[truncated ${r.length-t} chars]`,o=Math.max(0,t-n.length);return`${r.slice(0,o)}${n}`}return r}var Me,eo,Zje,iM=S({"src/lib/telemetry/attributes.ts"(){"use strict";Me={GEN_AI_SYSTEM:"gen_ai.system",GEN_AI_MODEL:"gen_ai.request.model",GEN_AI_OPERATION:"gen_ai.operation.name",GEN_AI_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",GEN_AI_FINISH_REASON:"gen_ai.response.finish_reason",GEN_AI_COST_USD:"gen_ai.cost_usd",GEN_AI_TOOL_NAME:"gen_ai.tool.name",GEN_AI_TEMPERATURE:"gen_ai.request.temperature",GEN_AI_MAX_TOKENS:"gen_ai.request.max_tokens",NL_PROVIDER:"neurolink.provider",NL_MODEL:"neurolink.model",NL_STREAM_MODE:"neurolink.stream_mode",NL_TOOL_COUNT:"neurolink.tool_count",NL_MESSAGE_COUNT:"neurolink.message_count",NL_HAS_TOOLS:"neurolink.has_tools",NL_INPUT_LENGTH:"neurolink.input_length",NL_OUTPUT_LENGTH:"neurolink.output_length",NL_REQUEST_ID:"neurolink.request_id",NL_PATH:"neurolink.path",NL_HAS_MEMORY:"neurolink.has_conversation_memory",NL_COST:"neurolink.cost",NL_STRUCTURED_OUTPUT:"neurolink.structured_output",NL_HAS_FALLBACK:"neurolink.has_fallback",MCP_SERVER_ID:"mcp.server_id",MCP_TOOL_NAME:"mcp.tool_name",MCP_TIMEOUT_MS:"mcp.timeout_ms",MCP_TRANSPORT:"mcp.transport",MCP_CIRCUIT_STATE:"mcp.circuit_state",SESSION_ID:"session.id",USER_ID:"user.id",MEMORY_TYPE:"memory.type",MESSAGE_COUNT:"message.count",CONTENT_LENGTH:"content.length",RAG_FILE_COUNT:"rag.file_count",RAG_STRATEGY:"rag.strategy",RAG_CHUNK_SIZE:"rag.chunk_size",RAG_TOP_K:"rag.top_k",RAG_RESULT_COUNT:"rag.result_count",MSG_COUNT:"message.build.count",MSG_HAS_IMAGES:"message.has_images",MSG_HAS_FILES:"message.has_files",MSG_HAS_SYSTEM_PROMPT:"message.has_system_prompt",MSG_TOTAL_CONTENT_LENGTH:"message.total_content_length",MSG_IS_MULTIMODAL:"message.is_multimodal",FILE_NAME:"file.name",FILE_MIMETYPE:"file.mimetype",FILE_SIZE_BYTES:"file.size_bytes",FILE_CATEGORY:"file.category",FILE_OUTPUT_LENGTH:"file.output_length",FILE_SUCCESS:"file.success",FILE_PROCESSOR_USED:"file.processor_used",FILE_CONFIDENCE:"file.detection_confidence",FILE_HAS_IMAGES:"file.has_images",FILE_IMAGE_COUNT:"file.image_count",FILE_ERROR:"file.error",FILE_SKIPPED_REASON:"file.skipped_reason",FILE_TOTAL_COUNT:"file.total_count",FILE_INCLUDED_COUNT:"file.included_count",FILE_CONTENT_TYPE:"file.content_type",VIDEO_DURATION_SEC:"video.duration_sec",VIDEO_WIDTH:"video.width",VIDEO_HEIGHT:"video.height",VIDEO_CODEC:"video.codec",VIDEO_AUDIO_CODEC:"video.audio_codec",VIDEO_FORMAT:"video.format",VIDEO_BITRATE:"video.bitrate",VIDEO_KEYFRAMES_EXTRACTED:"video.keyframes_extracted",VIDEO_TARGET_FRAMES:"video.target_frames",VIDEO_INTERVAL_SEC:"video.interval_sec",VIDEO_FRAME_QUALITY:"video.frame_quality",VIDEO_FRAME_RESIZE_PX:"video.frame_resize_px",VIDEO_FRAMES_RESIZED:"video.frames_resized",VIDEO_TOTAL_FRAME_BYTES:"video.total_frame_bytes",VIDEO_HAS_SUBTITLES:"video.has_subtitles",VIDEO_SUBTITLE_LENGTH:"video.subtitle_length",VIDEO_TEXT_CONTENT_LENGTH:"video.text_content_length",VIDEO_HAS_METADATA:"video.has_metadata",VIDEO_HAS_KEYFRAMES:"video.has_keyframes",VIDEO_TEMP_PATH:"video.temp_path",VIDEO_BYTES_WRITTEN:"video.bytes_written",VIDEO_WRITE_DURATION_MS:"video.write_duration_ms",VIDEO_STEP:"video.step",CONTEXT_STAGE:"context.compaction_stage",CONTEXT_TOKENS_BEFORE:"context.tokens_before",CONTEXT_TOKENS_AFTER:"context.tokens_after",MW_COUNT:"middleware.count",MW_NAMES:"middleware.names",AR_TAG:"autoresearch.tag",AR_BRANCH:"autoresearch.branch",AR_PHASE:"autoresearch.phase",AR_PHASE_FROM:"autoresearch.phase_from",AR_PHASE_TO:"autoresearch.phase_to",AR_RUN_COUNT:"autoresearch.run_count",AR_KEEP_COUNT:"autoresearch.keep_count",AR_STATUS:"autoresearch.status",AR_METRIC:"autoresearch.metric",AR_BEST_METRIC:"autoresearch.best_metric",AR_DIRECTION:"autoresearch.metric_direction",AR_COMMIT:"autoresearch.commit",AR_DURATION_MS:"autoresearch.duration_ms",AR_DESCRIPTION:"autoresearch.description",AR_ERROR_CODE:"autoresearch.error_code"},eo={TRACE_NAME:"langfuse.trace.name",TRACE_INPUT:"langfuse.trace.input",TRACE_OUTPUT:"langfuse.trace.output",OBSERVATION_TYPE:"langfuse.observation.type",OBSERVATION_INPUT:"langfuse.observation.input",OBSERVATION_OUTPUT:"langfuse.observation.output",OBSERVATION_METADATA:"langfuse.observation.metadata",OBSERVATION_MODEL_NAME:"langfuse.observation.model.name",OBSERVATION_MODEL_PARAMETERS:"langfuse.observation.model.parameters",OBSERVATION_USAGE_DETAILS:"langfuse.observation.usage_details",OBSERVATION_LEVEL:"langfuse.observation.level",OBSERVATION_STATUS_MESSAGE:"langfuse.observation.status_message",OBSERVATION_COMPLETION_START_TIME:"langfuse.observation.completion_start_time"},Zje=4e4}});async function UAr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(KE(),J7)),t=e.getInstance();return t.isEnabled()&&(await t.initialize(),f.info("[NeuroLink] Telemetry initialized")),t}async function BAr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(KE(),J7));return e.getInstance().getStatus()}var Cl=S({"src/lib/telemetry/index.ts"(){"use strict";yr(),Vr(),iM(),q()}}),Xje={};he(Xje,{MODEL_NAMES:()=>lr,ModelConfigurationManager:()=>aM,modelConfig:()=>xf});var lr,aM,xf,Af=S({"src/lib/core/modelConfiguration.ts"(){"use strict";q(),lr={GOOGLE_AI:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},GOOGLE_VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},OPENAI:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},ANTHROPIC:{FAST:"claude-3-haiku-20240307",BALANCED:"claude-3-sonnet-20240229",QUALITY:"claude-3-5-sonnet-20241022"},VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},BEDROCK:{FAST:"anthropic.claude-3-haiku-20240307-v1:0",BALANCED:"anthropic.claude-3-sonnet-20240229-v1:0",QUALITY:"anthropic.claude-3-opus-20240229-v1:0"},AZURE:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},OLLAMA:{FAST:"llama3.2:latest",BALANCED:"llama3.1:8b",QUALITY:"llama3.1:70b"},HUGGINGFACE:{FAST:"microsoft/DialoGPT-medium",BALANCED:"microsoft/DialoGPT-large",QUALITY:"meta-llama/Llama-2-7b-chat-hf"},MISTRAL:{FAST:"mistral-small-latest",BALANCED:"mistral-medium-latest",QUALITY:"mistral-large-latest"}},aM=class MA{static instance;configurations=new Map;configSource="default";lastUpdated=Date.now();constructor(){this.loadDefaultConfigurations()}static getInstance(){return MA.instance||(MA.instance=new MA),MA.instance}createGoogleAIConfig(){return{provider:"google-ai",models:{fast:this.getConfigValue("GOOGLE_AI_FAST_MODEL",lr.GOOGLE_AI.FAST),balanced:this.getConfigValue("GOOGLE_AI_BALANCED_MODEL",lr.GOOGLE_AI.BALANCED),quality:this.getConfigValue("GOOGLE_AI_QUALITY_MODEL",lr.GOOGLE_AI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_AI_API_KEY"],performance:{speed:this.parseInt(process.env.GOOGLE_AI_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_AI_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_AI_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_AI_MAX_TOKENS_ISSUES",[lr.GOOGLE_AI.FAST,lr.GOOGLE_AI.BALANCED])}}}createVertexConfig(){return{provider:"google-vertex",models:{fast:this.getConfigValue("GOOGLE_VERTEX_FAST_MODEL",lr.GOOGLE_VERTEX.FAST),balanced:this.getConfigValue("GOOGLE_VERTEX_BALANCED_MODEL",lr.GOOGLE_VERTEX.BALANCED),quality:this.getConfigValue("GOOGLE_VERTEX_QUALITY_MODEL",lr.GOOGLE_VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.GOOGLE_VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_VERTEX_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_VERTEX_MAX_TOKENS_ISSUES",[lr.GOOGLE_VERTEX.FAST,lr.GOOGLE_VERTEX.BALANCED])}}}createOpenAIConfig(){return{provider:"openai",models:{fast:this.getConfigValue("OPENAI_FAST_MODEL",lr.OPENAI.FAST),balanced:this.getConfigValue("OPENAI_BALANCED_MODEL",lr.OPENAI.BALANCED),quality:this.getConfigValue("OPENAI_QUALITY_MODEL",lr.OPENAI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OPENAI_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.OPENAI_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["OPENAI_API_KEY"],performance:{speed:this.parseInt(process.env.OPENAI_SPEED_RATING,2),quality:this.parseInt(process.env.OPENAI_QUALITY_RATING,3),cost:this.parseInt(process.env.OPENAI_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("OPENAI_MAX_TOKENS_ISSUES",[]),specialHandling:this.getConfigObject("OPENAI_SPECIAL_HANDLING",{})}}}createAllProviderConfigurations(){return{"google-ai":this.createGoogleAIConfig(),"google-vertex":this.createVertexConfig(),openai:this.createOpenAIConfig(),anthropic:this.createAnthropicConfig(),vertex:this.createVertexAlternativeConfig(),bedrock:this.createBedrockConfig(),azure:this.createAzureConfig(),ollama:this.createOllamaConfig(),huggingface:this.createHuggingFaceConfig(),mistral:this.createMistralConfig()}}createAnthropicConfig(){return{provider:"anthropic",models:{fast:this.getConfigValue("ANTHROPIC_FAST_MODEL",lr.ANTHROPIC.FAST),balanced:this.getConfigValue("ANTHROPIC_BALANCED_MODEL",lr.ANTHROPIC.BALANCED),quality:this.getConfigValue("ANTHROPIC_QUALITY_MODEL",lr.ANTHROPIC.QUALITY)},defaultCost:{input:this.parseFloat(process.env.ANTHROPIC_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.ANTHROPIC_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["ANTHROPIC_API_KEY"],performance:{speed:this.parseInt(process.env.ANTHROPIC_SPEED_RATING,3),quality:this.parseInt(process.env.ANTHROPIC_QUALITY_RATING,4),cost:this.parseInt(process.env.ANTHROPIC_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("ANTHROPIC_MAX_TOKENS_ISSUES",[])}}}createVertexAlternativeConfig(){return{provider:"vertex",models:{fast:this.getConfigValue("VERTEX_FAST_MODEL",lr.VERTEX.FAST),balanced:this.getConfigValue("VERTEX_BALANCED_MODEL",lr.VERTEX.BALANCED),quality:this.getConfigValue("VERTEX_QUALITY_MODEL",lr.VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.VERTEX_QUALITY_RATING,4),cost:this.parseInt(process.env.VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("VERTEX_MAX_TOKENS_ISSUES",[])}}}createBedrockConfig(){return{provider:"bedrock",models:{fast:this.getConfigValue("BEDROCK_FAST_MODEL",lr.BEDROCK.FAST),balanced:this.getConfigValue("BEDROCK_BALANCED_MODEL",lr.BEDROCK.BALANCED),quality:this.getConfigValue("BEDROCK_QUALITY_MODEL",lr.BEDROCK.QUALITY)},defaultCost:{input:this.parseFloat(process.env.BEDROCK_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.BEDROCK_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY"],performance:{speed:this.parseInt(process.env.BEDROCK_SPEED_RATING,3),quality:this.parseInt(process.env.BEDROCK_QUALITY_RATING,4),cost:this.parseInt(process.env.BEDROCK_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("BEDROCK_MAX_TOKENS_ISSUES",[])}}}createAzureConfig(){return{provider:"azure",models:{fast:this.getConfigValue("AZURE_FAST_MODEL",lr.AZURE.FAST),balanced:this.getConfigValue("AZURE_BALANCED_MODEL",lr.AZURE.BALANCED),quality:this.getConfigValue("AZURE_QUALITY_MODEL",lr.AZURE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.AZURE_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.AZURE_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["AZURE_API_KEY","AZURE_ENDPOINT"],performance:{speed:this.parseInt(process.env.AZURE_SPEED_RATING,2),quality:this.parseInt(process.env.AZURE_QUALITY_RATING,3),cost:this.parseInt(process.env.AZURE_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("AZURE_MAX_TOKENS_ISSUES",[])}}}createOllamaConfig(){return{provider:"ollama",models:{fast:this.getConfigValue("OLLAMA_FAST_MODEL",lr.OLLAMA.FAST),balanced:this.getConfigValue("OLLAMA_BALANCED_MODEL",lr.OLLAMA.BALANCED),quality:this.getConfigValue("OLLAMA_QUALITY_MODEL",lr.OLLAMA.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OLLAMA_DEFAULT_INPUT_COST,0),output:this.parseFloat(process.env.OLLAMA_DEFAULT_OUTPUT_COST,0)},requiredEnvVars:[],performance:{speed:this.parseInt(process.env.OLLAMA_SPEED_RATING,4),quality:this.parseInt(process.env.OLLAMA_QUALITY_RATING,2),cost:this.parseInt(process.env.OLLAMA_COST_RATING,5)},modelBehavior:{maxTokensIssues:this.getConfigArray("OLLAMA_MAX_TOKENS_ISSUES",[lr.OLLAMA.FAST,lr.OLLAMA.BALANCED,lr.OLLAMA.QUALITY]),toolCapableModels:this.getConfigArray("OLLAMA_TOOL_CAPABLE_MODELS",["llama3.1","mistral","hermes3","qwen2.5","codellama","dolphin","openchat","solar"]),specialHandling:this.getConfigObject("OLLAMA_SPECIAL_HANDLING",{baseUrl:this.getConfigValue("OLLAMA_BASE_URL","http://localhost:11434")})}}}createHuggingFaceConfig(){return{provider:"huggingface",models:{fast:this.getConfigValue("HUGGINGFACE_FAST_MODEL",lr.HUGGINGFACE.FAST),balanced:this.getConfigValue("HUGGINGFACE_BALANCED_MODEL",lr.HUGGINGFACE.BALANCED),quality:this.getConfigValue("HUGGINGFACE_QUALITY_MODEL",lr.HUGGINGFACE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_INPUT_COST,2e-4),output:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_OUTPUT_COST,8e-4)},requiredEnvVars:["HUGGINGFACE_API_KEY"],performance:{speed:this.parseInt(process.env.HUGGINGFACE_SPEED_RATING,3),quality:this.parseInt(process.env.HUGGINGFACE_QUALITY_RATING,3),cost:this.parseInt(process.env.HUGGINGFACE_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("HUGGINGFACE_MAX_TOKENS_ISSUES",[])}}}createMistralConfig(){return{provider:"mistral",models:{fast:this.getConfigValue("MISTRAL_FAST_MODEL",lr.MISTRAL.FAST),balanced:this.getConfigValue("MISTRAL_BALANCED_MODEL",lr.MISTRAL.BALANCED),quality:this.getConfigValue("MISTRAL_QUALITY_MODEL",lr.MISTRAL.QUALITY)},defaultCost:{input:this.parseFloat(process.env.MISTRAL_DEFAULT_INPUT_COST,1e-4),output:this.parseFloat(process.env.MISTRAL_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["MISTRAL_API_KEY"],performance:{speed:this.parseInt(process.env.MISTRAL_SPEED_RATING,3),quality:this.parseInt(process.env.MISTRAL_QUALITY_RATING,3),cost:this.parseInt(process.env.MISTRAL_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("MISTRAL_MAX_TOKENS_ISSUES",[])}}}loadDefaultConfigurations(){const t=this.createAllProviderConfigurations();for(const[r,n]of Object.entries(t))this.configurations.set(r,n);f.debug(`Loaded ${this.configurations.size} provider configurations from ${this.configSource}`)}getConfigValue(t,r){const n=process.env[t];return n&&!this.isValidConfigValue(n)?(f.warn(`Environment variable ${t} has an invalid value: "${n}". Falling back to default value.`),r):n||r}isValidConfigValue(t){return!(/[<>;"'`${}]/.test(t)||t.length>500||t.includes("\0")||new RegExp("[\0-\b\v\f-\x7F]").test(t))}getConfigArray(t,r){const n=process.env[t];return n?n.split(",").map(o=>o.trim()).filter(Boolean):r}parseFloat(t,r){if(!t)return r;const n=Number.parseFloat(t);return Number.isNaN(n)?r:n}parseInt(t,r){if(!t)return r;const n=Number.parseInt(t,10);return Number.isNaN(n)?r:n}getConfigObject(t,r){const n=process.env[t];if(!n)return r;try{const o=JSON.parse(n);return typeof o=="object"&&o!==null?o:r}catch{return f.warn(`Invalid JSON in environment variable ${t}, using default`),r}}getProviderConfiguration(t){return this.configurations.get(t)||null}getAllConfigurations(){return new Map(this.configurations)}getModelForTier(t,r){return this.getProviderConfiguration(t)?.models[r]||null}getCostInfo(t,r){const n=this.getProviderConfiguration(t);return n?r&&n.modelConfigs?.[r]?n.modelConfigs[r].cost:n.defaultCost:null}isProviderAvailable(t){const r=this.getProviderConfiguration(t);return r?r.requiredEnvVars.length===0?!0:r.requiredEnvVars.some(n=>!!process.env[n]):!1}getAvailableProviders(){return Array.from(this.configurations.values()).filter(t=>this.isProviderAvailable(t.provider))}},xf=aM.getInstance()}});function zAr(e){return typeof e.input=="number"?e.input:typeof e.inputTokens=="number"?e.inputTokens:typeof e.promptTokens=="number"?e.promptTokens:0}function jAr(e){return typeof e.output=="number"?e.output:typeof e.outputTokens=="number"?e.outputTokens:typeof e.completionTokens=="number"?e.completionTokens:0}function qAr(e,t,r){return typeof e.total=="number"&&e.total>0?e.total:typeof e.totalTokens=="number"&&e.totalTokens>0?e.totalTokens:t+r}function GAr(e){if(typeof e.reasoningTokens=="number"&&e.reasoningTokens>0)return e.reasoningTokens;if(typeof e.thinkingTokens=="number"&&e.thinkingTokens>0)return e.thinkingTokens;if(typeof e.reasoning_tokens=="number"&&e.reasoning_tokens>0)return e.reasoning_tokens;if(typeof e.reasoning=="number"&&e.reasoning>0)return e.reasoning}function Qje(e){if(typeof e.cacheCreationInputTokens=="number"&&e.cacheCreationInputTokens>0)return e.cacheCreationInputTokens;if(typeof e.cacheCreationTokens=="number"&&e.cacheCreationTokens>0)return e.cacheCreationTokens;if(typeof e.inputTokenDetails?.cacheWriteTokens=="number"&&e.inputTokenDetails.cacheWriteTokens>0)return e.inputTokenDetails.cacheWriteTokens}function eqe(e){if(typeof e.cacheReadInputTokens=="number"&&e.cacheReadInputTokens>0)return e.cacheReadInputTokens;if(typeof e.cacheReadTokens=="number"&&e.cacheReadTokens>0)return e.cacheReadTokens;if(typeof e.cachedInputTokens=="number"&&e.cachedInputTokens>0)return e.cachedInputTokens;if(typeof e.inputTokenDetails?.cacheReadTokens=="number"&&e.inputTokenDetails.cacheReadTokens>0)return e.inputTokenDetails.cacheReadTokens}function HAr(e){const t=e.prompt_tokens_details?.cached_tokens;if(typeof t=="number"&&t>0)return t}function tqe(e,t){if(e===void 0||e<=0)return;const r=t+e;if(!(r<=0))return Math.round(e/r*100)}function t0(e,t={}){const{calculateCacheSavings:r=!0,missingOptionalBehavior:n="undefined"}=t;if(!e)return{input:0,output:0,total:0};const o=e.usage&&typeof e.usage=="object"?e.usage:e;let s=zAr(o);const i=jAr(o),a=GAr(o),l=Qje(o);let c=eqe(o);if(c===void 0){const h=HAr(o);h!==void 0&&h<=s&&(c=h,s=Math.max(0,s-h))}if((c!==void 0||l!==void 0)&&o.cacheReadInputTokens===void 0&&o.cacheReadTokens===void 0&&o.cacheCreationInputTokens===void 0&&o.cacheCreationTokens===void 0&&o.prompt_tokens_details?.cached_tokens===void 0&&(o.cachedInputTokens!==void 0||o.inputTokenDetails!==void 0)){const h=o.inputTokenDetails?.noCacheTokens;typeof h=="number"?s=h:s=Math.max(0,s-(c??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}const u=qAr(o,s+(c??0)+(l??0),i),d=r?tqe(c,s):void 0,m={input:s,output:i,total:u};return n==="zero"?(m.cacheCreationTokens=l??0,m.cacheReadTokens=c??0,m.reasoning=a??0,m.cacheSavingsPercent=d??0):(l!==void 0&&(m.cacheCreationTokens=l),c!==void 0&&(m.cacheReadTokens=c),a!==void 0&&(m.reasoning=a),d!==void 0&&(m.cacheSavingsPercent=d)),m}function rqe(){return{input:0,output:0,total:0}}var JE=S({"src/lib/utils/tokenUtils.ts"(){"use strict"}});function VAr(e,t){return!e.startsWith(t)||e===t?!1:sqe.test(e.slice(t.length))}function WAr(e,t){const r=ije(e);return r?Object.prototype.hasOwnProperty.call(r.models,t)?!0:Object.values(r.models).some(n=>n.aliases.includes(t)):!1}function nqe(e,t,r){const n=e.toLowerCase().replace(/[^a-z]/g,""),o=oqe[n]??n;if(o==="__cross_provider__"){for(const c of Object.values(ZE)){if(c[t])return r&&(r.exact=!0),c[t];const u=Object.keys(c).sort((h,g)=>g.length-h.length),d=u.find(h=>h.startsWith(t));if(d)return c[d];const m=u.find(h=>t.startsWith(h));if(m)return c[m]}return}const s=ZE[o]||ZE[e];if(!s)return;const i=n==="bedrock"||n==="amazonbedrock"?t.replace(/^.*\banthropic\./,""):t;if(WAr(o,i)){const c=IAr(o,i);if(c?.pricingPerMTok)return r&&(r.exact=!0),{input:c.pricingPerMTok.input/1e6,output:c.pricingPerMTok.output/1e6,cacheRead:c.pricingPerMTok.cacheRead!==void 0?c.pricingPerMTok.cacheRead/1e6:void 0,cacheCreation:c.pricingPerMTok.cacheWrite!==void 0?c.pricingPerMTok.cacheWrite/1e6:void 0}}if(s[i])return r&&(r.exact=!0),s[i];const l=Object.keys(s).filter(c=>c!=="_default").sort((c,u)=>u.length-c.length).find(c=>i.startsWith(c));if(l)return r&&VAr(i,l)&&(r.exact=!0),s[l];if(o==="vertex"&&t.startsWith("gemini")){const c=ZE.google;if(c){if(c[t])return r&&(r.exact=!0),c[t];const d=Object.keys(c).sort((m,h)=>h.length-m.length).find(m=>t.startsWith(m));if(d)return c[d]}}if(s._default)return s._default}function Ga(e,t,r){const n=nqe(e,t);if(!n)return 0;let o=0;return o+=(r.input||0)*n.input,o+=(r.output||0)*n.output,r.cacheReadTokens&&(o+=r.cacheReadTokens*(n.cacheRead??n.input)),r.cacheCreationTokens&&n.cacheCreation&&(o+=r.cacheCreationTokens*n.cacheCreation),Math.round(o*1e6)/1e6}function YE(e,t){const r=nqe(e,t);return r?r.input>0||r.output>0||(r.cacheRead??0)>0||(r.cacheCreation??0)>0:!1}var ZE,oqe,sqe,uc=S({"src/lib/utils/pricing.ts"(){"use strict";tM(),ZE={anthropic:{"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-8":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-7":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5-20250929":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5-20251001":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-opus-4-1":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-opus-4":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-sonnet-4":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-7-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-opus":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-3-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-haiku":{input:.25/1e6,output:1.25/1e6,cacheRead:.025/1e6,cacheCreation:.3125/1e6}},vertex:{"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6}},openai:{"gpt-5.6-sol":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"gpt-5.6-terra":{input:2/1e6,output:12/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"gpt-5.6-luna":{input:.2/1e6,output:1.2/1e6,cacheRead:.02/1e6,cacheCreation:.25/1e6},"gpt-5.5":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6},"gpt-5.4":{input:2.5/1e6,output:15/1e6,cacheRead:.625/1e6},"gpt-5.2":{input:1.75/1e6,output:14/1e6,cacheRead:.4375/1e6},"gpt-5.1":{input:.625/1e6,output:5/1e6,cacheRead:.15625/1e6},"gpt-5.1-codex":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5-mini":{input:.25/1e6,output:2/1e6,cacheRead:.0625/1e6},"gpt-5-nano":{input:.05/1e6,output:.4/1e6,cacheRead:.0125/1e6},"gpt-4.1":{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"gpt-4.1-mini":{input:.4/1e6,output:1.6/1e6,cacheRead:.1/1e6},"gpt-4.1-nano":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gpt-4o":{input:2.5/1e6,output:10/1e6,cacheRead:.625/1e6},"gpt-4o-mini":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},o3:{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"o3-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},"o4-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},o1:{input:15/1e6,output:60/1e6,cacheRead:3.75/1e6},"o1-mini":{input:.55/1e6,output:2.2/1e6,cacheRead:.1375/1e6},"gpt-4-turbo":{input:10/1e6,output:30/1e6},"gpt-4":{input:30/1e6,output:60/1e6},"gpt-3.5-turbo":{input:.5/1e6,output:1/1e6}},google:{"gemini-3.1-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3.1-flash-lite-preview":{input:.25/1e6,output:1.5/1e6,cacheRead:.0625/1e6},"gemini-3.1-flash-image-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3.1-pro-preview-customtools":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-flash-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3-pro-image-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-2.5-flash":{input:.3/1e6,output:2.5/1e6,cacheRead:.075/1e6},"gemini-2.5-pro":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gemini-2.5-flash-lite":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gemini-2.0-flash":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},"gemini-2.0-flash-lite":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6},"gemini-1.5-pro":{input:1.25/1e6,output:5/1e6,cacheRead:.3125/1e6},"gemini-1.5-flash":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6}},mistral:{"mistral-large":{input:2/1e6,output:6/1e6},"mistral-medium":{input:2.7/1e6,output:8.1/1e6},"mistral-small":{input:.2/1e6,output:.6/1e6},codestral:{input:.3/1e6,output:.9/1e6},"open-mistral-nemo":{input:.15/1e6,output:.15/1e6}},deepseek:{"deepseek-chat":{input:.27/1e6,output:1.1/1e6,cacheRead:.07/1e6},"deepseek-reasoner":{input:.55/1e6,output:2.19/1e6,cacheRead:.14/1e6}},"nvidia-nim":{"meta/llama-3.3-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.1-405b-instruct":{input:1.79/1e6,output:1.79/1e6},"meta/llama-3.1-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.2-90b-vision-instruct":{input:.5/1e6,output:.5/1e6},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:.3/1e6,output:.3/1e6},"deepseek-ai/deepseek-r1":{input:.55/1e6,output:2.19/1e6},"mistralai/mixtral-8x22b-instruct-v0.1":{input:.6/1e6,output:.6/1e6},"mistralai/mixtral-8x7b-instruct-v0.1":{input:.24/1e6,output:.24/1e6},"microsoft/phi-4":{input:.07/1e6,output:.07/1e6},"google/gemma-3-27b-it":{input:.07/1e6,output:.07/1e6}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},xai:{_default:{input:3/1e6,output:15/1e6},"grok-3":{input:3/1e6,output:15/1e6},"grok-3-mini":{input:.3/1e6,output:.5/1e6},"grok-2-latest":{input:2/1e6,output:10/1e6},"grok-2-vision-latest":{input:2/1e6,output:10/1e6},"grok-beta":{input:5/1e6,output:15/1e6}},groq:{_default:{input:.59/1e6,output:.79/1e6},"llama-3.3-70b-versatile":{input:.59/1e6,output:.79/1e6},"llama-3.1-8b-instant":{input:.05/1e6,output:.08/1e6},"llama-3.2-90b-vision-preview":{input:.9/1e6,output:.9/1e6},"llama-3.2-11b-vision-preview":{input:.18/1e6,output:.18/1e6},"gemma2-9b-it":{input:.2/1e6,output:.2/1e6},"mixtral-8x7b-32768":{input:.24/1e6,output:.24/1e6}},cerebras:{_default:{input:.35/1e6,output:.75/1e6},"gpt-oss-120b":{input:.35/1e6,output:.75/1e6},"gemma-4-31b":{input:.99/1e6,output:1.49/1e6}},cohere:{_default:{input:2.5/1e6,output:10/1e6},"command-r-plus":{input:2.5/1e6,output:10/1e6},"command-r":{input:.15/1e6,output:.6/1e6},"command-r7b-12-2024":{input:.0375/1e6,output:.15/1e6}},"together-ai":{_default:{input:.88/1e6,output:.88/1e6},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{input:.88/1e6,output:.88/1e6},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{input:3.5/1e6,output:3.5/1e6},"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":{input:.88/1e6,output:.88/1e6},"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":{input:.18/1e6,output:.18/1e6},"mistralai/Mixtral-8x22B-Instruct-v0.1":{input:1.2/1e6,output:1.2/1e6},"mistralai/Mixtral-8x7B-Instruct-v0.1":{input:.6/1e6,output:.6/1e6},"Qwen/Qwen2.5-72B-Instruct-Turbo":{input:1.2/1e6,output:1.2/1e6},"deepseek-ai/DeepSeek-R1":{input:7/1e6,output:7/1e6},"deepseek-ai/DeepSeek-V3":{input:1.25/1e6,output:1.25/1e6}},fireworks:{_default:{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3/1e6,output:3/1e6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:.2/1e6,output:.2/1e6},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:1.2/1e6,output:1.2/1e6},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/deepseek-v3":{input:.75/1e6,output:3/1e6}},perplexity:{_default:{input:1/1e6,output:1/1e6},sonar:{input:1/1e6,output:1/1e6},"sonar-pro":{input:3/1e6,output:15/1e6},"sonar-reasoning":{input:1/1e6,output:5/1e6},"sonar-reasoning-pro":{input:2/1e6,output:8/1e6},"sonar-deep-research":{input:2/1e6,output:8/1e6}},cloudflare:{_default:{input:.011/1e6,output:.011/1e6}},replicate:{_default:{input:.5/1e6,output:1.5/1e6}},voyage:{_default:{input:.18/1e6,output:0},"voyage-3.5":{input:.06/1e6,output:0},"voyage-3.5-lite":{input:.02/1e6,output:0},"voyage-3-large":{input:.18/1e6,output:0},"voyage-code-3":{input:.18/1e6,output:0},"voyage-finance-2":{input:.12/1e6,output:0},"voyage-law-2":{input:.12/1e6,output:0},"voyage-multilingual-2":{input:.12/1e6,output:0}},jina:{_default:{input:.02/1e6,output:0},"jina-embeddings-v3":{input:.02/1e6,output:0},"jina-reranker-v2-base-multilingual":{input:.05/1e6,output:0}},stability:{_default:{input:0,output:.04/1e3}},ideogram:{_default:{input:0,output:.08/1e3}},recraft:{_default:{input:0,output:.04/1e3}}},oqe={googleai:"google",googleaistudio:"google",googlevertex:"vertex",anthropic:"anthropic",openai:"openai",vertex:"vertex",google:"google",mistral:"mistral",mistralai:"mistral",azure:"openai",azureopenai:"openai",bedrock:"anthropic",amazonbedrock:"anthropic",litellm:"__cross_provider__",openrouter:"__cross_provider__",openaicompatible:"__cross_provider__",deepseek:"deepseek",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",lmstudio:"lm-studio",llamacpp:"llamacpp",xai:"xai",grok:"xai",groq:"groq",cerebras:"cerebras",cohere:"cohere",togetherai:"together-ai",together:"together-ai",fireworks:"fireworks",perplexity:"perplexity",pplx:"perplexity",cloudflare:"cloudflare",workersai:"cloudflare",cfai:"cloudflare",replicate:"replicate",voyage:"voyage",voyageai:"voyage",jina:"jina",jinaai:"jina",stability:"stability",stabilityai:"stability",sd:"stability",ideogram:"ideogram",recraft:"recraft"},sqe=/^[-@](\d{8}|v\d+(:\d+)?|latest)([-@:](\d{8}|v\d+(:\d+)?))*$/}}),iqe={};he(iqe,{createAnalytics:()=>r0});function r0(e,t,r,n,o){const s="createAnalytics";try{const i=KAr(r),a=JAr(e,t,i),l=r,c=Array.isArray(l.toolExecutions)?l.toolExecutions.length:Array.isArray(l.toolsUsed)?l.toolsUsed.length:void 0,u={provider:e,model:t,tokenUsage:i,cost:a,requestDuration:n,context:o,timestamp:new Date().toISOString(),...typeof l.stepsUsed=="number"&&{stepsUsed:l.stepsUsed},...c!==void 0&&{toolCallCount:c},...typeof l.stopReason=="string"&&{stopReason:l.stopReason},...typeof l.responseTime=="number"&&{elapsedMs:l.responseTime},...typeof l.rawFinishReason=="string"&&{rawFinishReason:l.rawFinishReason}};return f.debug(`[${s}] Analytics created`,{provider:e,model:t,tokens:i.total,responseTime:n,cost:a}),u}catch(i){return f.error(`[${s}] Failed to create analytics`,{error:i}),{provider:e,model:t,tokenUsage:{input:0,output:0,total:0},requestDuration:n,context:o,timestamp:new Date().toISOString()}}}function KAr(e){return t0(e.usage)}function JAr(e,t,r){try{if(YE(e,t))return Ga(e,t,r);const n=xf.getCostInfo(e.toLowerCase(),t);if(!n)return;const o=(r.input+(r.cacheReadTokens??0)+(r.cacheCreationTokens??0))/1e3*n.input,s=r.output/1e3*n.output;return Math.round((o+s)*1e6)/1e6}catch(n){f.debug("Cost estimation failed",{provider:e,model:t,error:n});return}}var XE=S({"src/lib/core/analytics.ts"(){"use strict";q(),Af(),JE(),uc()}});function Y7(e){if(e&&typeof e.timeoutMs=="number"&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>=0)return e.timeoutMs;const t=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(t){const r=Number(t);if(Number.isFinite(r)&&r>=0)return r}return aqe}var aqe,lqe=S({"src/lib/utils/lifecycleTimeout.ts"(){"use strict";aqe=5e3}}),If,n0=S({"src/lib/core/handlerRegistry.ts"(){"use strict";q(),_r(),If=class{constructor(e){this.scopeName=e}scopeName;handlers=new Map;register(e,t){if(!e)throw new Error("Provider name is required");if(!t)throw new Error("Handler is required");const r=e.toLowerCase();this.handlers.has(r)&&f.warn(`[${this.scopeName}] Overwriting existing handler for provider: ${fo(r)}`),this.handlers.set(r,t)}supports(e){return e?this.handlers.has(e.toLowerCase()):!1}get(e){return this.handlers.get(e.toLowerCase())}list(){return Array.from(this.handlers.keys())}clear(){this.handlers.clear(),f.debug(`[${this.scopeName}] Cleared all handlers`)}}}}),cqe={};he(cqe,{IncrementalTTSSynthesisError:()=>lM,TTSError:()=>Ut,TTSProcessor:()=>tu,TTS_ERROR_CODES:()=>Gt});function YAr(e){const t=[];for(const r of e.matchAll(pqe))t.push((r.index??0)+r[0].length);return t}function ZAr(e,t){if(t<=1||t>=e.length)return t;const r=e.charCodeAt(t-1),n=e.charCodeAt(t);return r>=mqe&&r<=hqe&&n>=fqe&&n<=gqe?t-1:t}function uqe(e,t,r,n){const o=e.slice(0,r),s=YAr(o);let i=e.length>=t?s.at(-1):void 0;if(i===void 0&&e.length>=r&&(i=s.at(-1)??r),i===void 0&&n&&e.trim()&&(i=Math.min(e.length,r)),i===void 0)return;i=ZAr(e,i);const a=e.slice(0,i).trim(),l=e.slice(i).trimStart();return a?{segment:a,remainder:l}:{segment:"",remainder:l}}var Gt,dqe,pqe,lM,mqe,hqe,fqe,gqe,Ut,tu,dc=S({"src/lib/utils/ttsProcessor.ts"(){"use strict";q(),ct(),n0(),Qn(),Gt={EMPTY_TEXT:"TTS_EMPTY_TEXT",TEXT_TOO_LONG:"TTS_TEXT_TOO_LONG",PROVIDER_NOT_SUPPORTED:"TTS_PROVIDER_NOT_SUPPORTED",PROVIDER_NOT_CONFIGURED:"TTS_PROVIDER_NOT_CONFIGURED",SYNTHESIS_FAILED:"TTS_SYNTHESIS_FAILED",INVALID_INPUT:"TTS_INVALID_INPUT"},dqe=120,pqe=/[.!?]+(?:["')\]]+)?(?=\s|$)/g,lM=class extends Error{firstError;failedSegments;constructor(e,t){super(`Incremental TTS failed for ${t.length} segment${t.length===1?"":"s"}`),this.name="IncrementalTTSSynthesisError",this.firstError=e,this.failedSegments=[...t]}},mqe=55296,hqe=56319,fqe=56320,gqe=57343,Ut=class extends Ne{constructor(e){super({code:e.code,message:e.message,category:e.category??"validation",severity:e.severity??"medium",retriable:e.retriable??!1,context:e.context,originalError:e.originalError}),this.name="TTSError"}},tu=class{static registry=new If("TTSProcessor");static DEFAULT_MAX_TEXT_LENGTH=3e3;static registerHandler(e,t){const r=e&&e.toLowerCase();this.registry.register(e,t),f.debug(`[TTSProcessor] Registered TTS handler for provider: ${r}`)}static getHandler(e){return this.registry.get(e)}static listProviders(){return this.registry.list()}static clearHandlers(){this.registry.clear()}static supports(e){if(!e)return f.error("[TTSProcessor] Provider name is required for supports check"),!1;const t=this.registry.supports(e);return t||f.debug(`[TTSProcessor] Provider ${e} is not supported`),t}static async synthesize(e,t,r){const n=Oe.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":t,"tts.voice":r.voice,"tts.format":r.format});try{const o=e.trim();if(!o)throw f.error("[TTSProcessor] Text is required for synthesis"),new Ut({code:Gt.EMPTY_TEXT,message:"Text is required for TTS synthesis",severity:"low",retriable:!1,context:{provider:t}});const s=this.getHandler(t);if(!s)throw f.error(`[TTSProcessor] Provider "${t}" is not registered`),new Ut({code:Gt.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${t}" is not supported. Use TTSProcessor.registerHandler() to register it.`,severity:"high",retriable:!1,context:{provider:t,availableProviders:this.registry.list()}});const i=s.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH;if(o.length>i)throw f.error(`[TTSProcessor] Text exceeds maximum length of ${i} characters for provider "${t}"`),new Ut({code:Gt.TEXT_TOO_LONG,message:`Text length (${o.length}) exceeds maximum allowed length (${i} characters) for provider "${t}"`,severity:"medium",retriable:!1,context:{provider:t,textLength:o.length,maxLength:i}});if(!s.isConfigured())throw f.warn(`[TTSProcessor] Provider "${t}" is not properly configured`),new Ut({code:Gt.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${t}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:t}});f.debug(`[TTSProcessor] Starting synthesis with provider: ${t}`);const a=await s.synthesize(o,r),l={...a,voice:a.voice??r.voice};f.info(`[TTSProcessor] Successfully synthesized ${a.size} bytes of audio`);const c=Oe.endSpan(n,1);return dt().recordSpan(c),l}catch(o){const s=Oe.endSpan(n,2,o instanceof Error?o.message:String(o));if(dt().recordSpan(s),o instanceof Ut)throw o;const i=o instanceof Error?o.message:String(o||"Unknown error");throw f.error(`[TTSProcessor] Synthesis failed for provider "${t}": ${i}`),new Ut({code:Gt.SYNTHESIS_FAILED,message:`TTS synthesis failed for provider "${t}": ${i}`,category:"execution",severity:"high",retriable:!0,context:{provider:t,textLength:e.trim().length,options:r},originalError:o instanceof Error?o:void 0})}}static async*synthesizeStream(e,t,r,n){const o=this.getHandler(t),s=Math.max(1,o?.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH),i=r.streamingBufferSize??dqe,a=Math.min(Math.max(1,Math.trunc(i)),s);let l="",c=0,u=0,d=0,m,h=0,g;const y=[],v=async _=>{const b=++h;try{const T=await this.synthesize(_,t,r);return u+=T.size,d+=T.duration??0,{data:T.buffer,format:T.format,index:c++,isFinal:!1,cumulativeSize:u,estimatedDuration:d||void 0,voice:T.voice,sampleRate:T.sampleRate}}catch(T){y.length===0&&(g=T),y.push(b),f.warn(`[TTSProcessor] Incremental synthesis skipped a buffered segment: ${T instanceof Error?T.message:String(T)}`);return}};for await(const _ of e){if(n?.())break;for(l+=_;!n?.();){const b=uqe(l,a,s,!1);if(!b)break;if(l=b.remainder,!b.segment)continue;const T=await v(b.segment);T&&(m&&(yield m),m=T)}}for(;!n?.();){const _=uqe(l,a,s,!0);if(!_)break;if(l=_.remainder,!_.segment)continue;const b=await v(_.segment);b&&(m&&(yield m),m=b)}if(m&&(yield{...m,isFinal:!0}),y.length>0)throw new lM(g,y)}}}});function yqe(e){e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"&&e.catch(()=>{})}function XAr(e,t){return Object.defineProperty(e,Z7,{value:t,enumerable:!1,configurable:!0,writable:!0}),e}function vqe(e){if(e!=null&&!(typeof e!="object"&&typeof e!="function"))try{const t=e[Z7];if(typeof t!="function")return;yqe(t())}catch{}}function QAr(e){try{const t=e.return;if(typeof t!="function")return;yqe(t.call(e,void 0))}catch{}}var Z7,_qe=S({"src/lib/utils/streamCancellation.ts"(){"use strict";Z7=Symbol.for("neurolink.streamCancel")}});function eIr(e){const t=e instanceof lM?e:void 0,r=t?.firstError??e,n=vm(r).message;let o;r instanceof wm?o={code:Gt.SYNTHESIS_FAILED,message:n,retriable:!0}:r instanceof Ne?o={code:r.code,message:n,retriable:r.retriable}:o={code:Gt.SYNTHESIS_FAILED,message:n};const s=t?.failedSegments,i=s?.length??1,a=s?.join(", ")??"unknown";return{...o,message:`Incremental TTS failed for ${i} segment${i===1?"":"s"} (segment${i===1?"":"s"} ${a}): ${o.message}`}}function wqe(e){return e.next().then(t=>({kind:"source",result:t}),t=>({kind:"source-error",error:t}))}function bqe(e){return e.next().then(t=>({kind:"audio",result:t}),t=>({kind:"audio-error",error:t}))}function tIr(e){if(e&&typeof e=="object"&&"content"in e&&typeof e.content=="string"&&e.content.length>0)return e.content}function Tqe(e){const t=e.at(-1);if(!t)return;const r=Buffer.concat(e.map(n=>n.data));return{buffer:r,format:t.format,size:r.length,duration:t.estimatedDuration,voice:t.voice,sampleRate:t.sampleRate}}function rIr(){return new Promise(e=>{setTimeout(e,Cqe).unref?.()})}async function*Eqe(e){const{stream:t,provider:r,options:n,onComplete:o}=e;if(!tu.supports(r)){try{for await(const g of t)yield g}finally{o?.(void 0)}return}const s=new Sqe,i=t[Symbol.asyncIterator]();let a=!1;const l=tu.synthesizeStream(s,r,n,()=>a)[Symbol.asyncIterator](),c=[];let u=wqe(i),d=bqe(l),m=!1,h=!1;try{for(;u||d;){const g=u&&d?await Promise.race(h?[d,u]:[u,d]):u?await u:d?await d:void 0;if(!g)break;if(g.kind==="source-error")throw s.fail(g.error),g.error;if(g.kind==="audio-error"){s.end();const y=eIr(g.error);f.warn(`[TTSProcessor] Incremental stream disabled after an audio error: ${g.error instanceof Error?g.error.message:String(g.error)}`),d=void 0,h=!1,m=!0,o?.(Tqe(c),y);continue}if(g.kind==="source"){if(g.result.done){u=void 0,s.end(),h=!0;continue}const y=tIr(g.result.value);y&&s.push(y),u=wqe(i),h=!0,yield g.result.value;continue}if(g.result.done){d=void 0,m=!0,o?.(Tqe(c));continue}c.push(g.result.value),d=bqe(l),h=!1,yield{type:"tts_audio",audio:g.result.value}}}finally{m||(a=!0,vqe(t)),s.end();const g=[];u&&i.return&&g.push(Promise.resolve().then(()=>i.return?.(void 0))),d&&l.return&&g.push(Promise.resolve().then(()=>l.return?.(void 0))),await Promise.race([Promise.allSettled(g),rIr()]),m||o?.(void 0)}}var Sqe,Cqe,kqe=S({"src/lib/utils/ttsStream.ts"(){"use strict";ct(),_r(),q(),dc(),yn(),_qe(),Sqe=class{values=[];waiters=[];ended=!1;failure;[Symbol.asyncIterator](){return this}next(){if(this.values.length>0){const e=this.values.shift();if(e!==void 0)return Promise.resolve({value:e,done:!1})}return this.failure!==void 0?Promise.reject(this.failure):this.ended?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}push(e){if(this.ended||this.failure!==void 0)return;const t=this.waiters.shift();if(t){t.resolve({value:e,done:!1});return}this.values.push(e)}end(){if(!(this.ended||this.failure!==void 0)){this.ended=!0;for(const e of this.waiters.splice(0))e.resolve({value:void 0,done:!0})}}fail(e){if(!(this.ended||this.failure!==void 0)){this.failure=e;for(const t of this.waiters.splice(0))t.reject(e)}}},Cqe=5e3}}),nIr=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/Types.js"(){}}),X7,Q7=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAnyOf.js"(){kl(),X7=(e,t)=>e.anyOf.length?e.anyOf.length===1?ts(e.anyOf[0],{...t,path:[...t.path,"anyOf",0]}):`z.union([${e.anyOf.map((r,n)=>ts(r,{...t,path:[...t.path,"anyOf",n]})).join(", ")}])`:"z.any()"}}),xqe,Aqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseBoolean.js"(){xqe=e=>"z.boolean()"}}),Iqe,Rqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseDefault.js"(){Iqe=e=>"z.any()"}}),Pqe,Mqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseMultipleType.js"(){kl(),Pqe=(e,t)=>`z.union([${e.type.map(r=>ts({...e,type:r},{...t,withoutDefaults:!0})).join(", ")}])`}}),Dqe,Oqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNot.js"(){kl(),Dqe=(e,t)=>`z.any().refine((value) => !${ts(e.not,{...t,path:[...t.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`}}),Nqe,Lqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNull.js"(){Nqe=e=>"z.null()"}}),$qe,Fqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/half.js"(){$qe=e=>[e.slice(0,e.length/2),e.slice(e.length/2)]}});function cM(e,t){if(e.allOf.length===0)return"z.never()";if(e.allOf.length===1){const r=e.allOf[0];return ts(r,{...t,path:[...t.path,"allOf",r[o0]]})}else{const[r,n]=$qe(Uqe(e.allOf));return`z.intersection(${cM({allOf:r},t)}, ${cM({allOf:n},t)})`}}var o0,Uqe,eV=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAllOf.js"(){kl(),Fqe(),o0=Symbol("Original index"),Uqe=e=>{let t=[];for(let r=0;r<e.length;r++){const n=e[r];if(typeof n=="boolean")t.push(n?{[o0]:r}:{[o0]:r,not:{}});else{if(o0 in n)return e;t.push({...n,[o0]:r})}}return t}}});function zs(e,t,r,n){const o=e[t];let s="";if(o!==void 0){const i=r({value:o,json:JSON.stringify(o)});if(i){const a=i[0],l=i.length===3?i[1]:"",c=i.length===3?i[2]:i[1];s+=a;const u=e.errorMessage?.[t]??n;u!==void 0&&(s+=l+JSON.stringify(u)),s+=c}}return s}var uM=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/withMessage.js"(){}}),Bqe,zqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseArray.js"(){uM(),kl(),Bqe=(e,t)=>{if(Array.isArray(e.items))return`z.tuple([${e.items.map((n,o)=>ts(n,{...t,path:[...t.path,"items",o]}))}])`;let r=e.items?`z.array(${ts(e.items,{...t,path:[...t.path,"items"]})})`:"z.array(z.any())";return r+=zs(e,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),r+=zs(e,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),e.uniqueItems===!0&&(r+=zs(e,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),r}}}),jqe,qqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseConst.js"(){jqe=e=>`z.literal(${JSON.stringify(e.const)})`}}),Gqe,Hqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseEnum.js"(){Gqe=e=>e.enum.length===0?"z.never()":e.enum.length===1?`z.literal(${JSON.stringify(e.enum[0])})`:e.enum.every(t=>typeof t=="string")?`z.enum([${e.enum.map(t=>JSON.stringify(t))}])`:`z.union([${e.enum.map(t=>`z.literal(${JSON.stringify(t)})`).join(", ")}])`}}),Vqe,Wqe=S({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseIfThenElse.js"(){kl(),Vqe=(e,t)=>{const r=ts(e.if,{...t,path:[...t.path,"if"]}),n=ts(e.then,{...t,path:[...t.path,"then"]}),o=ts(e.else,{...t,path:[...t.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
|
|
712
712
|
const result = ${r}.safeParse(value).success
|
|
713
713
|
? ${n}.safeParse(value)
|
|
714
714
|
: ${o}.safeParse(value);
|
|
@@ -820,7 +820,7 @@ Ensure the final response is fully self-sufficient and does not reference extern
|
|
|
820
820
|
`)}
|
|
821
821
|
\u2026 and ${i} more (search by task description to find them)`}function IIr(e,t,r,n){const o=r.name.toLowerCase();if(o===e)return 100;let s=0;(e.includes(o)||o.includes(e))&&(s+=20);const i=`${o} ${n.toLowerCase()}`;for(const a of t)a.length<3||(o.includes(a)?s+=8:i.includes(a)&&(s+=2));return r.serverId&&e.includes(r.serverId.toLowerCase())&&(s+=3),s}function RIr(e,t){const r=t.deferrableNames.filter(a=>a in e&&!t.pinnedNames.has(a)).sort();if(r.length===0)return e;if("search_tools"in e)return kIr(),e;const n=new Set(r),o=Object.create(null);for(const[a,l]of Object.entries(e))n.has(a)||(o[a]=l);const s=r.map(a=>{const l=e[a];return{name:a,summary:xIr(l.description??""),serverId:typeof l.serverId=="string"?l.serverId:void 0}});return o.search_tools=PIr(s,e,o,t.onHydrate),Object.defineProperty(o,AV,{value:a=>{if(a in o)return o[a];if(!n.has(a))return;const l=e[a];if(l)return o[a]=l,t.onHydrate([a]),f.debug("[ToolDiscovery] Auto-hydrated deferred tool on direct call",{name:a}),l},enumerable:!1,writable:!1,configurable:!0}),f.debug("[ToolDiscovery] Deferred external tools behind search_tools",{hotCount:Object.keys(o).length-1,deferredCount:r.length,pinnedCount:t.pinnedNames.size}),o}function kV(e,t){if(!e)return;const r=e[AV];return typeof r=="function"?r(t):void 0}function xV(e,t){if(e)return e[t]??kV(e,t)}function PIr(e,t,r,n){const o=AIr(e),s={description:`Search and load additional tools on demand. ${e.length} more tools are available but not yet loaded:
|
|
822
822
|
${o}
|
|
823
|
-
Call this with a task description or an exact tool name; matching tools are loaded and become directly callable.`,inputSchema:p.object({query:p.string().describe("What you need to do, or an exact tool name to load")}),execute:async({query:i})=>{const a=i.toLowerCase().trim(),l=a.split(/[^a-z0-9_.-]+/).filter(Boolean),c=e.map(d=>{const m=t[d.name];return{entry:d,score:IIr(a,l,d,m?.description??"")}}).filter(d=>d.score>0).sort((d,m)=>m.score-d.score||(d.entry.name<m.entry.name?-1:1)).slice(0,YHe);if(c.length===0)return{found:0,message:"No tools matched. Try different words, or use one of the exact names from the catalog in this tool's description."};const u=c.map(({entry:d})=>{const m=t[d.name];r[d.name]=m;const h=m;return{name:d.name,description:h.description??"",inputSchema:js(h.inputSchema)}});return n(u.map(d=>d.name)),f.debug("[ToolDiscovery] search_tools hydrated tools",{query:i,loaded:u.map(d=>d.name)}),{found:u.length,tools:u,message:"These tools are now loaded for this session. Call them directly by name with arguments matching their inputSchema."}}};return s[RV]=!0,s}var AV,JHe,TM,YHe,IV,RV,PV,sS=S({"src/lib/tools/toolDiscovery.ts"(){"use strict";jr(),lc(),Yi(),q(),AV=Symbol.for("neurolink.deferredToolResolver"),JHe=40,TM=15e3,YHe=5,IV=100,RV="__nlDiscoveryMetaTool",PV=!1}});function MIr(e){return typeof e=="object"&&e!==null&&"modelId"in e}function EM(e,t="unknown"){return typeof e=="string"?e:MIr(e)?e.modelId:t}var DIr=S({"src/lib/providers/providerTypeUtils.ts"(){"use strict"}});function a0(e,t={}){return{...t,tool:e,toolName:e}}var MV=S({"src/lib/core/toolEvents.ts"(){"use strict"}});function DV(e,t){if(!(!e||!t||t.length===0))for(const r of t){const n=r.output??r.result,o=!!r.error||n!=null&&typeof n=="object"&&"isError"in n&&n.isError===!0;let s;if(o){if(r.error)s=r.error;else if(n&&typeof n=="object"){const i=n.content;if(Array.isArray(i)){const a=i.filter(l=>l.type==="text"&&l.text).map(l=>l.text);s=a.length>0?a.join(" "):"Tool returned isError: true"}else s="Tool returned isError: true"}}e.emit("tool:end",a0(r.toolName,{responseTime:0,success:!o,timestamp:Date.now(),result:n,error:s}))}}var OV=S({"src/lib/utils/toolEndEmitter.ts"(){"use strict";MV()}}),NV,iS,LV=S({"src/lib/core/dynamicModels.ts"(){"use strict";ct(),q(),yt(),NV=class Vlr{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new Vlr),this.instance}async initialize(){const t=[{url:process.env.MODEL_CONFIG_URL||"http://localhost:3001/api/v1/models",timeout:3e3,name:"local-server"},{url:`https://raw.githubusercontent.com/${process.env.MODEL_CONFIG_GITHUB_REPO||"juspay/neurolink"}/${process.env.MODEL_CONFIG_GITHUB_BRANCH||"release"}/config/models.json`,timeout:5e3,name:"github-raw"},{url:"./config/models.json",timeout:1e3,name:"local-file"}],r=[];for(const n of t)try{f.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);const o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=vB.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),f.info(`[DynamicModelProvider] Successfully loaded model registry from: ${n.name}`,{source:n.url,modelCount:this.getTotalModelCount(),providerCount:Object.keys(s.models).length,loadTime:`<${n.timeout}ms`});return}catch(o){const s=o instanceof Error?o.message:String(o);r.push({source:n.name,error:s}),f.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw f.warn("[DynamicModelProvider] All model configuration sources failed",{errors:r}),new Error(`Failed to load model configuration from all source. Attempted: ${r.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(t,r){if(t.startsWith("http")){const n=new AbortController,o=setTimeout(()=>n.abort(),r);try{(t.includes("localhost")||t.includes("127.0.0.1"))&&await this.healthCheckLocalhost(t,Math.min(r,1e3));const s=await fetch(t,{headers:{"User-Agent":"NeuroLink/1.0 (+https://github.com/juspay/neurolink)",Accept:"application/json","Cache-Control":"no-cache"},signal:n.signal});if(clearTimeout(o),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(s){throw clearTimeout(o),qr(s)?new Error(`Request timeout after ${r}ms`,{cause:s}):s}}else return new Promise((n,o)=>{const s=setTimeout(()=>{o(new Error(`File read timeout after ${r}ms`))},r);(async()=>{try{const i=await Promise.resolve().then(()=>(gn(),_l)),l=(await Promise.resolve().then(()=>(Lr(),Hc))).resolve(t);if(!i.existsSync(l))throw new Error(`File not found: ${l}`);const c=i.readFileSync(l,"utf8"),u=JSON.parse(c);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(t,r){const n=t.replace(/\/api\/.*$/,"/health")||`${t}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),r);try{const i=await fetch(n,{method:"HEAD",signal:o.signal});if(clearTimeout(s),i.status>=500)throw new Error(`Server error: ${i.status}`)}catch(i){if(clearTimeout(s),qr(i))throw new Error("Localhost health check timeout - server may not be running",{cause:i});if(i instanceof Error&&i.message.includes("ECONNREFUSED"))throw new Error(`Localhost server not running at ${t}`,{cause:i});f.debug(`Health check failed for ${t}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(t){return this.ensureInitialized(),this.modelRegistry?.models[t]||{}}resolveModel(t,r){this.ensureInitialized();const n=this.getModelsForProvider(t);if(!r){const i=this.modelRegistry?.defaults?.[t];return i?n[i]:null}if(n[r])return n[r];const o=this.modelRegistry?.aliases?.[r];if(o){const[i,a]=o.split("/");return this.resolveModel(i,a)}const s=Object.keys(n).find(i=>i.toLowerCase().includes(r.toLowerCase())||r.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(t,r={}){this.ensureInitialized();const n=[];if(!this.modelRegistry)return n;for(const[o,s]of Object.entries(this.modelRegistry.models))if(!(r.provider&&o!==r.provider))for(const[i,a]of Object.entries(s))r.excludeDeprecated&&a.deprecated||r.maxPrice&&a.pricing.input>r.maxPrice||a.capabilities.includes(t)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(t){switch(this.ensureInitialized(),t){case"coding":return this.searchByCapability("functionCalling",{excludeDeprecated:!0})[0]||null;case"analysis":return this.searchByCapability("analysis",{excludeDeprecated:!0})[0]||null;case"vision":return this.searchByCapability("vision",{excludeDeprecated:!0})[0]||null;case"fastest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();const t=[];if(!this.modelRegistry)return t;for(const[r,n]of Object.entries(this.modelRegistry.models))for(const[o,s]of Object.entries(n))t.push({provider:r,model:o,config:s});return t}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((t,r)=>t+Object.keys(r).length,0):0}needsRefresh(){return Date.now()-this.lastFetch>this.CACHE_DURATION}async refresh(){this.modelRegistry=null,await this.initialize()}ensureInitialized(){if(!this.modelRegistry)throw new Error("Model registry not initialized. Call initialize() first.")}getMetadata(){return this.modelRegistry?{version:this.modelRegistry.version,lastUpdated:this.modelRegistry.lastUpdated,modelCount:this.getTotalModelCount()}:null}},iS=NV.getInstance()}});function OIr(e){const t=e.toLowerCase().replace(/[^a-z]/g,"");return t7e[t]??t}function ZHe(e,t,r){!Number.isFinite(r)||r<=0||SM.set(`${e}:${t}`,r)}function NIr(e,t){if(t)return SM.get(`${e}:${t}`)}function LIr(e,t,r){!Number.isFinite(r)||r<=0||UV.set(`${e}:${t}`,r)}function XHe(e,t){if(t)return UV.get(`${e}:${t}`)}function Kd(e,t){if(t)try{const s=NV.getInstance().resolveModel(e,t);if(s?.contextWindow)return f.debug(`[ContextWindow] Resolved via dynamic registry: provider=${e}, model=${t}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(t){const o=SM.get(`${e}:${t}`);if(o!==void 0)return o}const r=OIr(e);if(t){const o=N7(r,t)??N7(e,t);if(o)return o.contextWindow}const n=FV[r]??FV[e];if(!n)return $V;if(t&&n[t]!==void 0)return n[t];if(t){for(const[o,s]of Object.entries(n))if(o!=="_default"&&t.startsWith(o))return s}return n._default??$V}function $Ir(e,t){return t!==void 0&&t>0?t:Math.min(QHe,Math.ceil(e*e7e))}function ou(e,t,r){const n=Kd(e,t),o=$Ir(n,r);return n-o}var $V,QHe,e7e,FV,t7e,SM,UV,Ju=S({"src/lib/constants/contextWindows.ts"(){"use strict";LV(),q(),tM(),$V=128e3,QHe=64e3,e7e=.35,FV={deepseek:{_default:64e3,"deepseek-chat":64e3,"deepseek-reasoner":64e3},"nvidia-nim":{_default:128e3,"meta/llama-3.3-70b-instruct":128e3,"meta/llama-3.1-405b-instruct":128e3,"meta/llama-3.1-70b-instruct":128e3,"meta/llama-3.2-90b-vision-instruct":128e3,"meta/llama-3.2-11b-vision-instruct":128e3,"nvidia/llama-3.3-nemotron-super-49b-v1":128e3,"nvidia/llama-3.1-nemotron-nano-8b-v1":128e3,"nvidia/llama-3.1-nemotron-70b-instruct":128e3,"deepseek-ai/deepseek-r1":128e3,"deepseek-ai/deepseek-r1-distill-llama-70b":128e3,"mistralai/mixtral-8x22b-instruct-v0.1":65536,"mistralai/mixtral-8x7b-instruct-v0.1":32768,"microsoft/phi-4":16384,"google/gemma-3-27b-it":8192},"lm-studio":{_default:8192},llamacpp:{_default:8192},xai:{_default:131072,"grok-3":131072,"grok-3-mini":131072,"grok-2-latest":131072,"grok-2-vision-latest":32768,"grok-beta":131072},groq:{_default:128e3,"llama-3.3-70b-versatile":131072,"llama-3.1-8b-instant":128e3,"llama-3.2-90b-vision-preview":128e3,"llama-3.2-11b-vision-preview":128e3,"llama-guard-3-8b":8192,"gemma2-9b-it":8192,"mixtral-8x7b-32768":32768},cohere:{_default:128e3,"command-r-plus":128e3,"command-r":128e3,"command-r7b-12-2024":128e3},"together-ai":{_default:128e3,"meta-llama/Llama-3.3-70B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":128e3,"mistralai/Mixtral-8x22B-Instruct-v0.1":65536,"mistralai/Mixtral-8x7B-Instruct-v0.1":32768,"Qwen/Qwen2.5-72B-Instruct-Turbo":32768,"Qwen/Qwen2.5-Coder-32B-Instruct":32768,"deepseek-ai/DeepSeek-R1":64e3,"deepseek-ai/DeepSeek-V3":64e3,"google/gemma-2-27b-it":8192,"microsoft/WizardLM-2-8x22B":65536},fireworks:{_default:128e3,"accounts/fireworks/models/llama-v3p1-70b-instruct":131072,"accounts/fireworks/models/llama-v3p1-405b-instruct":128e3,"accounts/fireworks/models/llama-v3p1-8b-instruct":128e3,"accounts/fireworks/models/llama-v3p3-70b-instruct":128e3,"accounts/fireworks/models/mixtral-8x22b-instruct":65536,"accounts/fireworks/models/qwen2p5-72b-instruct":32768,"accounts/fireworks/models/qwen2p5-coder-32b-instruct":32768,"accounts/fireworks/models/deepseek-v3":64e3},perplexity:{_default:127e3,sonar:127e3,"sonar-pro":2e5,"sonar-reasoning":127e3,"sonar-reasoning-pro":127e3,"sonar-deep-research":2e5},cloudflare:{_default:8192,"@cf/meta/llama-3.3-70b-instruct-fp8-fast":24e3,"@cf/meta/llama-3.1-70b-instruct":24e3,"@cf/meta/llama-3.1-8b-instruct-fast":24e3,"@cf/meta/llama-3.2-11b-vision-instruct":24e3,"@cf/mistral/mistral-7b-instruct-v0.2":32768,"@cf/qwen/qwen1.5-14b-chat-awq":7500,"@cf/google/gemma-2b-it-lora":4096},replicate:{_default:32768},voyage:{_default:32e3,"voyage-3.5":32e3,"voyage-3.5-lite":32e3,"voyage-3-large":32e3,"voyage-code-3":32e3,"voyage-finance-2":32e3,"voyage-law-2":16e3,"voyage-multilingual-2":32e3},jina:{_default:8192,"jina-embeddings-v3":8192,"jina-embeddings-v2-base-en":8192,"jina-embeddings-v2-small-en":8192,"jina-colbert-v2":32e3},stability:{_default:2e3},ideogram:{_default:2e3},recraft:{_default:2e3},anthropic:{_default:2e5,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-opus-4-5-20251101":2e5,"claude-sonnet-4-5-20250929":2e5,"claude-haiku-4-5-20251001":2e5,"claude-opus-4-1-20250805":2e5,"claude-opus-4-20250514":2e5,"claude-sonnet-4-20250514":2e5,"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-opus-20240229":2e5,"claude-3-sonnet-20240229":2e5,"claude-3-haiku-20240307":2e5},openai:{_default:128e3,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.3-codex":4e5,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.2-chat-latest":128e3,"gpt-5.1":4e5,"gpt-5.1-codex":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-chat-latest":128e3,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-5-nano":4e5,"gpt-5-pro":4e5,"gpt-5-codex":4e5,"gpt-5-chat-latest":128e3,"gpt-oss-120b":128e3,"gpt-oss-20b":128e3,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4.1-nano":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o1:2e5,"o1-mini":128e3,"o1-pro":2e5,o3:2e5,"o3-mini":2e5,"o3-pro":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385},"google-ai":{_default:1048576,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.5-flash-lite":1048576,"gemini-2.5-flash-image":32768,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},vertex:{_default:1048576,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-sonnet-4-5":2e5,"claude-opus-4-5":2e5,"claude-haiku-4-5":2e5,"claude-sonnet-4":2e5,"claude-sonnet-4-20250514":2e5,"claude-opus-4-20250514":2e5,"claude-opus-4":2e5,"claude-":2e5,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},bedrock:{_default:2e5,"anthropic.claude-opus-4-6-v1":1e6,"anthropic.claude-sonnet-4-6":1e6,"anthropic.claude-opus-4-5-20251101-v1:0":2e5,"anthropic.claude-sonnet-4-5-20250929-v1:0":2e5,"anthropic.claude-haiku-4-5-20251001-v1:0":2e5,"anthropic.claude-3-5-sonnet-20241022-v1:0":2e5,"anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"anthropic.claude-3-opus-20240229-v1:0":2e5,"anthropic.claude-3-sonnet-20240229-v1:0":2e5,"anthropic.claude-3-haiku-20240307-v1:0":2e5,"amazon.nova-pro-v1:0":3e5,"amazon.nova-lite-v1:0":3e5,"amazon.nova-2-lite-v1:0":1e6,"writer.palmyra-x5-v1:0":1e6,"writer.palmyra-x4-v1:0":128e3,"nvidia.nemotron-nano-3-30b":256e3},azure:{_default:128e3,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.1":4e5,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192},mistral:{_default:128e3,"mistral-large-latest":256e3,"mistral-large-2512":256e3,"mistral-medium-latest":128e3,"mistral-small-latest":128e3,"codestral-latest":256e3,"codestral-2508":256e3,"devstral-2512":256e3,"devstral-small-2512":256e3,"magistral-medium-latest":128e3,"mistral-small-2603":256e3},ollama:{_default:128e3},litellm:{_default:128e3},huggingface:{_default:32e3},sagemaker:{_default:128e3,"nvidia-nemotron-3-nano-30b":1e6,"qwen3-vl-8b-instruct":32768}},t7e={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"},SM=new Map,UV=new Map}});function r7e(e){return e?c7e[e]??1:1}function mr(e,t,r){if(!e||e.length===0)return 0;const n=r?i7e:aS,o=Math.ceil(e.length/n),s=r7e(t),i=o*s,a=o*BV;return Math.ceil(i+a)}function n7e(e){if(typeof e=="string")return e;try{return JSON.stringify(e)??""}catch{return"x".repeat(l7e)}}function o7e(e,t){let r="";if(e.content)if(typeof e.content=="string")r=e.content;else try{r=JSON.stringify(e.content)}catch{r=String(e.content)}let n=mr(r,t)+xl;const o=e.args;o&&(n+=mr(n7e(o),t));const s=e.result?.error;return s&&(n+=mr(n7e(s),t)),n}function Vo(e,t){return!e||e.length===0?0:e.reduce((n,o)=>n+o7e(o,t),0)+a7e}function s7e(e,t,r){if(mr(e,r)<=t)return{text:e,truncated:!1};const o=r7e(r)+BV,s=Math.floor(t/o*aS);if(s<=0)return{text:"",truncated:!0};const i=e.slice(0,s),a=Math.max(i.lastIndexOf(". "),i.lastIndexOf("! "),i.lastIndexOf("? "),i.lastIndexOf(`
|
|
823
|
+
Call this with a task description or an exact tool name; matching tools are loaded and become directly callable.`,inputSchema:p.object({query:p.string().describe("What you need to do, or an exact tool name to load")}),execute:async({query:i})=>{const a=i.toLowerCase().trim(),l=a.split(/[^a-z0-9_.-]+/).filter(Boolean),c=e.map(d=>{const m=t[d.name];return{entry:d,score:IIr(a,l,d,m?.description??"")}}).filter(d=>d.score>0).sort((d,m)=>m.score-d.score||(d.entry.name<m.entry.name?-1:1)).slice(0,YHe);if(c.length===0)return{found:0,message:"No tools matched. Try different words, or use one of the exact names from the catalog in this tool's description."};const u=c.map(({entry:d})=>{const m=t[d.name];r[d.name]=m;const h=m;return{name:d.name,description:h.description??"",inputSchema:js(h.inputSchema)}});return n(u.map(d=>d.name)),f.debug("[ToolDiscovery] search_tools hydrated tools",{query:i,loaded:u.map(d=>d.name)}),{found:u.length,tools:u,message:"These tools are now loaded for this session. Call them directly by name with arguments matching their inputSchema."}}};return s[RV]=!0,s}var AV,JHe,TM,YHe,IV,RV,PV,sS=S({"src/lib/tools/toolDiscovery.ts"(){"use strict";jr(),lc(),Yi(),q(),AV=Symbol.for("neurolink.deferredToolResolver"),JHe=40,TM=15e3,YHe=5,IV=100,RV="__nlDiscoveryMetaTool",PV=!1}});function MIr(e){return typeof e=="object"&&e!==null&&"modelId"in e}function EM(e,t="unknown"){return typeof e=="string"?e:MIr(e)?e.modelId:t}var DIr=S({"src/lib/providers/providerTypeUtils.ts"(){"use strict"}});function a0(e,t={}){return{...t,tool:e,toolName:e}}var MV=S({"src/lib/core/toolEvents.ts"(){"use strict"}});function DV(e,t){if(!(!e||!t||t.length===0))for(const r of t){const n=r.output??r.result,o=!!r.error||n!=null&&typeof n=="object"&&"isError"in n&&n.isError===!0;let s;if(o){if(r.error)s=r.error;else if(n&&typeof n=="object"){const i=n.content;if(Array.isArray(i)){const a=i.filter(l=>l.type==="text"&&l.text).map(l=>l.text);s=a.length>0?a.join(" "):"Tool returned isError: true"}else s="Tool returned isError: true"}}e.emit("tool:end",a0(r.toolName,{responseTime:0,success:!o,timestamp:Date.now(),result:n,error:s}))}}var OV=S({"src/lib/utils/toolEndEmitter.ts"(){"use strict";MV()}}),NV,iS,LV=S({"src/lib/core/dynamicModels.ts"(){"use strict";ct(),q(),yt(),NV=class Vlr{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new Vlr),this.instance}async initialize(){const t=[{url:process.env.MODEL_CONFIG_URL||"http://localhost:3001/api/v1/models",timeout:3e3,name:"local-server"},{url:`https://raw.githubusercontent.com/${process.env.MODEL_CONFIG_GITHUB_REPO||"juspay/neurolink"}/${process.env.MODEL_CONFIG_GITHUB_BRANCH||"release"}/config/models.json`,timeout:5e3,name:"github-raw"},{url:"./config/models.json",timeout:1e3,name:"local-file"}],r=[];for(const n of t)try{f.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);const o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=vB.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),f.info(`[DynamicModelProvider] Successfully loaded model registry from: ${n.name}`,{source:n.url,modelCount:this.getTotalModelCount(),providerCount:Object.keys(s.models).length,loadTime:`<${n.timeout}ms`});return}catch(o){const s=o instanceof Error?o.message:String(o);r.push({source:n.name,error:s}),f.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw f.warn("[DynamicModelProvider] All model configuration sources failed",{errors:r}),new Error(`Failed to load model configuration from all source. Attempted: ${r.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(t,r){if(t.startsWith("http")){const n=new AbortController,o=setTimeout(()=>n.abort(),r);try{(t.includes("localhost")||t.includes("127.0.0.1"))&&await this.healthCheckLocalhost(t,Math.min(r,1e3));const s=await fetch(t,{headers:{"User-Agent":"NeuroLink/1.0 (+https://github.com/juspay/neurolink)",Accept:"application/json","Cache-Control":"no-cache"},signal:n.signal});if(clearTimeout(o),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(s){throw clearTimeout(o),qr(s)?new Error(`Request timeout after ${r}ms`,{cause:s}):s}}else return new Promise((n,o)=>{const s=setTimeout(()=>{o(new Error(`File read timeout after ${r}ms`))},r);(async()=>{try{const i=await Promise.resolve().then(()=>(gn(),_l)),l=(await Promise.resolve().then(()=>(Lr(),Hc))).resolve(t);if(!i.existsSync(l))throw new Error(`File not found: ${l}`);const c=i.readFileSync(l,"utf8"),u=JSON.parse(c);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(t,r){const n=t.replace(/\/api\/.*$/,"/health")||`${t}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),r);try{const i=await fetch(n,{method:"HEAD",signal:o.signal});if(clearTimeout(s),i.status>=500)throw new Error(`Server error: ${i.status}`)}catch(i){if(clearTimeout(s),qr(i))throw new Error("Localhost health check timeout - server may not be running",{cause:i});if(i instanceof Error&&i.message.includes("ECONNREFUSED"))throw new Error(`Localhost server not running at ${t}`,{cause:i});f.debug(`Health check failed for ${t}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(t){return this.ensureInitialized(),this.modelRegistry?.models[t]||{}}resolveModel(t,r){this.ensureInitialized();const n=this.getModelsForProvider(t);if(!r){const i=this.modelRegistry?.defaults?.[t];return i?n[i]:null}if(n[r])return n[r];const o=this.modelRegistry?.aliases?.[r];if(o){const[i,a]=o.split("/");return this.resolveModel(i,a)}const s=Object.keys(n).find(i=>i.toLowerCase().includes(r.toLowerCase())||r.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(t,r={}){this.ensureInitialized();const n=[];if(!this.modelRegistry)return n;for(const[o,s]of Object.entries(this.modelRegistry.models))if(!(r.provider&&o!==r.provider))for(const[i,a]of Object.entries(s))r.excludeDeprecated&&a.deprecated||r.maxPrice&&a.pricing.input>r.maxPrice||a.capabilities.includes(t)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(t){switch(this.ensureInitialized(),t){case"coding":return this.searchByCapability("functionCalling",{excludeDeprecated:!0})[0]||null;case"analysis":return this.searchByCapability("analysis",{excludeDeprecated:!0})[0]||null;case"vision":return this.searchByCapability("vision",{excludeDeprecated:!0})[0]||null;case"fastest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();const t=[];if(!this.modelRegistry)return t;for(const[r,n]of Object.entries(this.modelRegistry.models))for(const[o,s]of Object.entries(n))t.push({provider:r,model:o,config:s});return t}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((t,r)=>t+Object.keys(r).length,0):0}needsRefresh(){return Date.now()-this.lastFetch>this.CACHE_DURATION}async refresh(){this.modelRegistry=null,await this.initialize()}ensureInitialized(){if(!this.modelRegistry)throw new Error("Model registry not initialized. Call initialize() first.")}getMetadata(){return this.modelRegistry?{version:this.modelRegistry.version,lastUpdated:this.modelRegistry.lastUpdated,modelCount:this.getTotalModelCount()}:null}},iS=NV.getInstance()}});function OIr(e){const t=e.toLowerCase().replace(/[^a-z]/g,"");return t7e[t]??t}function ZHe(e,t,r){!Number.isFinite(r)||r<=0||SM.set(`${e}:${t}`,r)}function NIr(e,t){if(t)return SM.get(`${e}:${t}`)}function LIr(e,t,r){!Number.isFinite(r)||r<=0||UV.set(`${e}:${t}`,r)}function XHe(e,t){if(t)return UV.get(`${e}:${t}`)}function Kd(e,t){if(t)try{const s=NV.getInstance().resolveModel(e,t);if(s?.contextWindow)return f.debug(`[ContextWindow] Resolved via dynamic registry: provider=${e}, model=${t}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(t){const o=SM.get(`${e}:${t}`);if(o!==void 0)return o}const r=OIr(e);if(t){const o=N7(r,t)??N7(e,t);if(o)return o.contextWindow}const n=FV[r]??FV[e];if(!n)return $V;if(t&&n[t]!==void 0)return n[t];if(t){for(const[o,s]of Object.entries(n))if(o!=="_default"&&t.startsWith(o))return s}return n._default??$V}function $Ir(e,t){return t!==void 0&&t>0?t:Math.min(QHe,Math.ceil(e*e7e))}function ou(e,t,r){const n=Kd(e,t),o=$Ir(n,r);return n-o}var $V,QHe,e7e,FV,t7e,SM,UV,Ju=S({"src/lib/constants/contextWindows.ts"(){"use strict";LV(),q(),tM(),$V=128e3,QHe=64e3,e7e=.35,FV={deepseek:{_default:64e3,"deepseek-chat":64e3,"deepseek-reasoner":64e3},"nvidia-nim":{_default:128e3,"meta/llama-3.3-70b-instruct":128e3,"meta/llama-3.1-405b-instruct":128e3,"meta/llama-3.1-70b-instruct":128e3,"meta/llama-3.2-90b-vision-instruct":128e3,"meta/llama-3.2-11b-vision-instruct":128e3,"nvidia/llama-3.3-nemotron-super-49b-v1":128e3,"nvidia/llama-3.1-nemotron-nano-8b-v1":128e3,"nvidia/llama-3.1-nemotron-70b-instruct":128e3,"deepseek-ai/deepseek-r1":128e3,"deepseek-ai/deepseek-r1-distill-llama-70b":128e3,"mistralai/mixtral-8x22b-instruct-v0.1":65536,"mistralai/mixtral-8x7b-instruct-v0.1":32768,"microsoft/phi-4":16384,"google/gemma-3-27b-it":8192},"lm-studio":{_default:8192},llamacpp:{_default:8192},xai:{_default:131072,"grok-3":131072,"grok-3-mini":131072,"grok-2-latest":131072,"grok-2-vision-latest":32768,"grok-beta":131072},groq:{_default:128e3,"llama-3.3-70b-versatile":131072,"llama-3.1-8b-instant":128e3,"llama-3.2-90b-vision-preview":128e3,"llama-3.2-11b-vision-preview":128e3,"llama-guard-3-8b":8192,"gemma2-9b-it":8192,"mixtral-8x7b-32768":32768},cerebras:{_default:65536,"gpt-oss-120b":65536,"gemma-4-31b":65536},cohere:{_default:128e3,"command-r-plus":128e3,"command-r":128e3,"command-r7b-12-2024":128e3},"together-ai":{_default:128e3,"meta-llama/Llama-3.3-70B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":128e3,"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":128e3,"mistralai/Mixtral-8x22B-Instruct-v0.1":65536,"mistralai/Mixtral-8x7B-Instruct-v0.1":32768,"Qwen/Qwen2.5-72B-Instruct-Turbo":32768,"Qwen/Qwen2.5-Coder-32B-Instruct":32768,"deepseek-ai/DeepSeek-R1":64e3,"deepseek-ai/DeepSeek-V3":64e3,"google/gemma-2-27b-it":8192,"microsoft/WizardLM-2-8x22B":65536},fireworks:{_default:128e3,"accounts/fireworks/models/llama-v3p1-70b-instruct":131072,"accounts/fireworks/models/llama-v3p1-405b-instruct":128e3,"accounts/fireworks/models/llama-v3p1-8b-instruct":128e3,"accounts/fireworks/models/llama-v3p3-70b-instruct":128e3,"accounts/fireworks/models/mixtral-8x22b-instruct":65536,"accounts/fireworks/models/qwen2p5-72b-instruct":32768,"accounts/fireworks/models/qwen2p5-coder-32b-instruct":32768,"accounts/fireworks/models/deepseek-v3":64e3},perplexity:{_default:127e3,sonar:127e3,"sonar-pro":2e5,"sonar-reasoning":127e3,"sonar-reasoning-pro":127e3,"sonar-deep-research":2e5},cloudflare:{_default:8192,"@cf/meta/llama-3.3-70b-instruct-fp8-fast":24e3,"@cf/meta/llama-3.1-70b-instruct":24e3,"@cf/meta/llama-3.1-8b-instruct-fast":24e3,"@cf/meta/llama-3.2-11b-vision-instruct":24e3,"@cf/mistral/mistral-7b-instruct-v0.2":32768,"@cf/qwen/qwen1.5-14b-chat-awq":7500,"@cf/google/gemma-2b-it-lora":4096},replicate:{_default:32768},voyage:{_default:32e3,"voyage-3.5":32e3,"voyage-3.5-lite":32e3,"voyage-3-large":32e3,"voyage-code-3":32e3,"voyage-finance-2":32e3,"voyage-law-2":16e3,"voyage-multilingual-2":32e3},jina:{_default:8192,"jina-embeddings-v3":8192,"jina-embeddings-v2-base-en":8192,"jina-embeddings-v2-small-en":8192,"jina-colbert-v2":32e3},stability:{_default:2e3},ideogram:{_default:2e3},recraft:{_default:2e3},anthropic:{_default:2e5,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-opus-4-5-20251101":2e5,"claude-sonnet-4-5-20250929":2e5,"claude-haiku-4-5-20251001":2e5,"claude-opus-4-1-20250805":2e5,"claude-opus-4-20250514":2e5,"claude-sonnet-4-20250514":2e5,"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-opus-20240229":2e5,"claude-3-sonnet-20240229":2e5,"claude-3-haiku-20240307":2e5},openai:{_default:128e3,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.3-codex":4e5,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.2-chat-latest":128e3,"gpt-5.1":4e5,"gpt-5.1-codex":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-chat-latest":128e3,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-5-nano":4e5,"gpt-5-pro":4e5,"gpt-5-codex":4e5,"gpt-5-chat-latest":128e3,"gpt-oss-120b":128e3,"gpt-oss-20b":128e3,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4.1-nano":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o1:2e5,"o1-mini":128e3,"o1-pro":2e5,o3:2e5,"o3-mini":2e5,"o3-pro":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385},"google-ai":{_default:1048576,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.5-flash-lite":1048576,"gemini-2.5-flash-image":32768,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},vertex:{_default:1048576,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-sonnet-4-5":2e5,"claude-opus-4-5":2e5,"claude-haiku-4-5":2e5,"claude-sonnet-4":2e5,"claude-sonnet-4-20250514":2e5,"claude-opus-4-20250514":2e5,"claude-opus-4":2e5,"claude-":2e5,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},bedrock:{_default:2e5,"anthropic.claude-opus-4-6-v1":1e6,"anthropic.claude-sonnet-4-6":1e6,"anthropic.claude-opus-4-5-20251101-v1:0":2e5,"anthropic.claude-sonnet-4-5-20250929-v1:0":2e5,"anthropic.claude-haiku-4-5-20251001-v1:0":2e5,"anthropic.claude-3-5-sonnet-20241022-v1:0":2e5,"anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"anthropic.claude-3-opus-20240229-v1:0":2e5,"anthropic.claude-3-sonnet-20240229-v1:0":2e5,"anthropic.claude-3-haiku-20240307-v1:0":2e5,"amazon.nova-pro-v1:0":3e5,"amazon.nova-lite-v1:0":3e5,"amazon.nova-2-lite-v1:0":1e6,"writer.palmyra-x5-v1:0":1e6,"writer.palmyra-x4-v1:0":128e3,"nvidia.nemotron-nano-3-30b":256e3},azure:{_default:128e3,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.1":4e5,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192},mistral:{_default:128e3,"mistral-large-latest":256e3,"mistral-large-2512":256e3,"mistral-medium-latest":128e3,"mistral-small-latest":128e3,"codestral-latest":256e3,"codestral-2508":256e3,"devstral-2512":256e3,"devstral-small-2512":256e3,"magistral-medium-latest":128e3,"mistral-small-2603":256e3},ollama:{_default:128e3},litellm:{_default:128e3},huggingface:{_default:32e3},sagemaker:{_default:128e3,"nvidia-nemotron-3-nano-30b":1e6,"qwen3-vl-8b-instruct":32768}},t7e={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"},SM=new Map,UV=new Map}});function r7e(e){return e?c7e[e]??1:1}function mr(e,t,r){if(!e||e.length===0)return 0;const n=r?i7e:aS,o=Math.ceil(e.length/n),s=r7e(t),i=o*s,a=o*BV;return Math.ceil(i+a)}function n7e(e){if(typeof e=="string")return e;try{return JSON.stringify(e)??""}catch{return"x".repeat(l7e)}}function o7e(e,t){let r="";if(e.content)if(typeof e.content=="string")r=e.content;else try{r=JSON.stringify(e.content)}catch{r=String(e.content)}let n=mr(r,t)+xl;const o=e.args;o&&(n+=mr(n7e(o),t));const s=e.result?.error;return s&&(n+=mr(n7e(s),t)),n}function Vo(e,t){return!e||e.length===0?0:e.reduce((n,o)=>n+o7e(o,t),0)+a7e}function s7e(e,t,r){if(mr(e,r)<=t)return{text:e,truncated:!1};const o=r7e(r)+BV,s=Math.floor(t/o*aS);if(s<=0)return{text:"",truncated:!0};const i=e.slice(0,s),a=Math.max(i.lastIndexOf(". "),i.lastIndexOf("! "),i.lastIndexOf("? "),i.lastIndexOf(`
|
|
824
824
|
`)),l=a>s*.5?a+1:s;return{text:e.slice(0,l)+"...",truncated:!0}}var aS,i7e,BV,xl,a7e,l7e,c7e,si=S({"src/lib/utils/tokenEstimation.ts"(){"use strict";aS=4,i7e=3,BV=.05,xl=4,a7e=24,l7e=2e5,c7e={anthropic:1.23,"google-ai":1.18,vertex:1.18,mistral:1.26,openai:1,azure:1,bedrock:1.23,ollama:1,litellm:1,huggingface:1,sagemaker:1}}});function u7e(e,t){const r=t?.maxBytes??zV,n=t?.maxLines??jV;return Buffer.byteLength(e,"utf-8")>r||e.split(`
|
|
825
825
|
`).length>n}function pc(e,t){const r=t?.maxBytes??zV,n=t?.maxLines??jV,o=t?.headRatio??d7e,s=t?.tailRatio??m7e,i=Math.max(0,Math.min(1,o)),a=Math.max(0,Math.min(1,s)),l=Buffer.byteLength(e,"utf-8"),c=e.split(`
|
|
826
826
|
`),u=l>r,d=c.length>n;if(!u&&!d)return{preview:e,truncated:!1,originalSize:l};const m=Math.max(1,Math.floor(n*i)),h=Math.max(1,n-m);let g,y;d?(g=c.slice(0,m).join(`
|