@juspay/neurolink 11.3.0 → 11.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var Rrt=Object.create;var LD=Object.defineProperty;var krt=Object.getOwnPropertyDescriptor;var Art=Object.getOwnPropertyNames;var Irt=Object.getPrototypeOf,Prt=Object.prototype.hasOwnProperty;var Jhe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var E=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var _t=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},de=(r,e)=>{for(var t in e)LD(r,t,{get:e[t],enumerable:!0})},Xhe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Art(e))!Prt.call(r,o)&&o!==t&&LD(r,o,{get:()=>e[o],enumerable:!(n=krt(e,o))||n.enumerable});return r};var Ho=(r,e,t)=>(t=r!=null?Rrt(Irt(r)):{},Xhe(e||!r||!r.__esModule?LD(t,"default",{value:r,enumerable:!0}):t,r)),ir=r=>Xhe(LD({},"__esModule",{value:!0}),r);var _3={};de(_3,{ATTR_SERVICE_NAME:()=>int,ATTR_SERVICE_VERSION:()=>ant,AsyncLocalStorageContextManager:()=>ont,BasicTracerProvider:()=>jrt,BatchLogRecordProcessor:()=>ent,BatchSpanProcessor:()=>Vrt,DiagConsoleLogger:()=>Ort,DiagLogLevel:()=>Nrt,INVALID_SPAN_CONTEXT:()=>$rt,LangfuseSpanProcessor:()=>Zrt,LoggerProvider:()=>Qrt,MeterProvider:()=>tnt,NodeSDK:()=>zrt,NodeTracerProvider:()=>Grt,OTLPLogExporter:()=>Krt,OTLPMetricExporter:()=>Wrt,OTLPTraceExporter:()=>Hrt,PeriodicExportingMetricReader:()=>rnt,SEMRESATTRS_SERVICE_NAME:()=>lnt,SEMRESATTRS_SERVICE_VERSION:()=>cnt,SeverityNumber:()=>nnt,SimpleSpanProcessor:()=>qrt,SpanKind:()=>hr,SpanStatusCode:()=>Fe,TraceFlags:()=>Mrt,ValueType:()=>Drt,W3CTraceContextPropagator:()=>snt,baggageEntryMetadataFromString:()=>Brt,context:()=>ur,default:()=>unt,diag:()=>w3,getNodeAutoInstrumentations:()=>Jrt,isSpanContextValid:()=>Lrt,isValidSpanId:()=>Frt,isValidTraceId:()=>Urt,metrics:()=>Um,propagation:()=>fx,registerInstrumentations:()=>Xrt,resourceFromAttributes:()=>Yrt,trace:()=>pt});var T3,UD,S3,FD,pt,ur,fx,Um,w3,Fe,hr,Mrt,Ort,Nrt,Drt,Lrt,Urt,Frt,$rt,Brt,zrt,jrt,Grt,qrt,Vrt,Hrt,Krt,Wrt,Jrt,Xrt,Yrt,Zrt,Qrt,ent,tnt,rnt,nnt,ont,snt,int,ant,lnt,cnt,unt,gr=E(()=>{T3={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}}},UD={startSpan(){return T3},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(T3)}},S3={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},FD={getValue(){},setValue(){return FD},deleteValue(){return FD}},pt={getTracer(){return UD},getTracerProvider(){return{getTracer(){return UD}}},setGlobalTracerProvider(){},getSpan(){return T3},getActiveSpan(){},setSpan(r){return r},deleteSpan(r){return r},setSpanContext(r){return r},getSpanContext(){}},ur={active(){return FD},with(r,e){return e()},bind(r,e){return e},setValue(){return FD},getValue(){}},fx={inject(){},extract(r){return r},setGlobalPropagator(){},getBaggage(){},setBaggage(r){return r},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},Um={getMeter(){return S3},getMeterProvider(){return{getMeter(){return S3}}},setGlobalMeterProvider(){}},w3={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return w3}},Fe={UNSET:0,OK:1,ERROR:2},hr={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},Mrt={NONE:0,SAMPLED:1},Ort=class{},Nrt={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},Drt={INT:0,DOUBLE:1},Lrt=()=>!1,Urt=()=>!1,Frt=()=>!1,$rt={traceId:"0",spanId:"0",traceFlags:0},Brt=()=>({}),zrt=class{start(){}shutdown(){return Promise.resolve()}},jrt=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return UD}shutdown(){return Promise.resolve()}},Grt=class{register(){}addSpanProcessor(){}getTracer(){return UD}shutdown(){return Promise.resolve()}},qrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Vrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Hrt=class{export(){}shutdown(){return Promise.resolve()}},Krt=class{export(){}shutdown(){return Promise.resolve()}},Wrt=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Jrt=()=>[],Xrt=()=>{},Yrt=r=>({attributes:r||{},merge(){return this}}),Zrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Qrt=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},ent=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},tnt=class{constructor(){}getMeter(){return S3}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},rnt=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},nnt={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},ont=class{enable(){return this}disable(){return this}},snt=class{inject(){}extract(r){return r}fields(){return[]}},int="service.name",ant="service.version",lnt="service.name",cnt="service.version",unt={trace:pt,context:ur,propagation:fx,metrics:Um,diag:w3,SpanStatusCode:Fe,SpanKind:hr}});var Oe,Ar=E(()=>{"use strict";gr();Oe={sdk:pt.getTracer("neurolink"),provider:pt.getTracer("neurolink.provider"),generation:pt.getTracer("neurolink.generation"),stream:pt.getTracer("neurolink.stream"),http:pt.getTracer("neurolink.http"),mcp:pt.getTracer("neurolink.mcp"),memory:pt.getTracer("neurolink.memory"),redis:pt.getTracer("neurolink.redis"),factory:pt.getTracer("neurolink.factory"),rag:pt.getTracer("neurolink.rag"),context:pt.getTracer("neurolink.context"),middleware:pt.getTracer("neurolink.middleware"),processor:pt.getTracer("neurolink.processor"),file:pt.getTracer("neurolink.file"),autoresearch:pt.getTracer("neurolink.autoresearch"),auth:pt.getTracer("neurolink.auth"),workflow:pt.getTracer("neurolink.workflow")}});async function dnt(){return E3||(E3=Promise.resolve().then(()=>(gr(),_3)).then(r=>(BD=r,r)).catch(()=>null)),E3}function $D(r,e){if(r.length===0)return;let t=(()=>{try{return typeof r[0]=="string"?r[0]:JSON.stringify(r[0])}catch{return"[Unserializable Object]"}})(),n=r.length===2?r[1]:r.length>2?r.slice(1):void 0;e(t,n)}var BD,E3,pnt,C3,li,g,fe,Sr,Y=E(()=>{"use strict";BD=null,E3=null;dnt();pnt={debug:"DEBUG",info:"INFO",warn:"WARN",error:"ERROR"},C3=class{logLevel="info";logs=[];maxLogs=1e3;isDebugMode;eventEmitter;constructor(){this.isDebugMode=process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true";let e=process.env.NEUROLINK_LOG_LEVEL?.toLowerCase();e&&["debug","info","warn","error"].includes(e)&&(this.logLevel=e)}setEventEmitter(e){this.eventEmitter=e}clearEventEmitter(e){e!==void 0&&this.eventEmitter!==e||(this.eventEmitter=void 0)}setLogLevel(e){this.logLevel=e}shouldLog(e){if(!(process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true")&&e!=="error")return!1;let n=["debug","info","warn","error"];return n.indexOf(e)>=n.indexOf(this.logLevel)}getLogPrefix(e,t){return`[${e}] [NEUROLINK:${pnt[t]}]`}getTraceContext(){if(!BD)return{};try{let e=BD.trace.getSpan(BD.context.active());if(!e)return{};let t=e.spanContext();return!t||t.traceId==="00000000000000000000000000000000"?{}:{trace_id:t.traceId,span_id:t.spanId,trace_flags:String(t.traceFlags)}}catch{return{}}}serializeData(e){if(e==null||typeof e!="object")return String(e);try{return JSON.stringify(e,(t,n)=>n instanceof Error?{name:n.name,message:n.message,stack:n.stack}:n)}catch{let t=[];try{return JSON.stringify(e,function(n,o){if(o instanceof Error)return{name:o.name,message:o.message,stack:o.stack};if(typeof o=="object"&&o!==null){if(t.includes(o))return"[Circular]";t.push(o)}return o})}catch{return"[Unserializable Object]"}}}outputToConsole(e,t,n,o){let s={debug:console.debug,info:console.info,warn:console.warn,error:console.error}[e],i=this.getTraceContext(),a=i.trace_id?` [trace_id=${i.trace_id} span_id=${i.span_id}]`:"";o!=null?s(t+a,n,this.serializeData(o)):s(t+a,n)}log(e,t,n){if(!this.shouldLog(e))return;let o={level:e,message:t,timestamp:new Date,data:n};if(this.eventEmitter)try{this.eventEmitter.emit("log-event",{level:e,message:t,timestamp:new Date().getTime(),data:n})}catch{}this.logs.push(o),this.logs.length>this.maxLogs&&(this.logs=this.logs.slice(-this.maxLogs));let s=o.timestamp.toISOString(),i=this.getLogPrefix(s,e);this.outputToConsole(e,i,t,n)}debug(e,t){this.log("debug",e,t)}info(e,t){this.log("info",e,t)}warn(e,t){this.log("warn",e,t)}error(e,t){this.log("error",e,t)}getLogs(e){return e?this.logs.filter(t=>t.level===e):[...this.logs]}clearLogs(){this.logs=[]}always(...e){console.log(...e)}alwaysStderr(...e){console.error(...e)}table(e){console.table(e)}},li=new C3;g={debug:(...r)=>{li.shouldLog("debug")&&$D(r,(e,t)=>li.debug(e,t))},info:(...r)=>{li.shouldLog("info")&&$D(r,(e,t)=>li.info(e,t))},warn:(...r)=>{li.shouldLog("warn")&&$D(r,(e,t)=>li.warn(e,t))},error:(...r)=>{li.shouldLog("error")&&$D(r,(e,t)=>li.error(e,t))},always:(...r)=>{li.always(...r)},alwaysStderr:(...r)=>{li.alwaysStderr(...r)},table:r=>{li.table(r)},shouldLog:r=>li.shouldLog(r),setLogLevel:r=>li.setLogLevel(r),getLogs:r=>li.getLogs(r),clearLogs:()=>li.clearLogs(),setEventEmitter:r=>li.setEventEmitter(r),clearEventEmitter:r=>li.clearEventEmitter(r)},fe=li,Sr=li});var zD,Yhe,Zhe,Qhe,R3=E(()=>{"use strict";zD=(j=>(j.BEDROCK="bedrock",j.OPENAI="openai",j.OPENAI_COMPATIBLE="openai-compatible",j.OPENROUTER="openrouter",j.VERTEX="vertex",j.ANTHROPIC="anthropic",j.AZURE="azure",j.GOOGLE_AI="google-ai",j.HUGGINGFACE="huggingface",j.OLLAMA="ollama",j.MISTRAL="mistral",j.LITELLM="litellm",j.SAGEMAKER="sagemaker",j.DEEPSEEK="deepseek",j.NVIDIA_NIM="nvidia-nim",j.LM_STUDIO="lm-studio",j.LLAMACPP="llamacpp",j.XAI="xai",j.GROQ="groq",j.COHERE="cohere",j.TOGETHER_AI="together-ai",j.FIREWORKS="fireworks",j.PERPLEXITY="perplexity",j.CLOUDFLARE="cloudflare",j.REPLICATE="replicate",j.VOYAGE="voyage",j.JINA="jina",j.STABILITY="stability",j.IDEOGRAM="ideogram",j.RECRAFT="recraft",j.AUTO="auto",j))(zD||{}),Yhe=(nt=>(nt.CLAUDE_4_6_OPUS="anthropic.claude-opus-4-6-v1:0",nt.CLAUDE_4_6_SONNET="anthropic.claude-sonnet-4-6",nt.CLAUDE_4_5_OPUS="anthropic.claude-opus-4-5-20251124-v1:0",nt.CLAUDE_4_5_SONNET="anthropic.claude-sonnet-4-5-20250929-v1:0",nt.CLAUDE_4_5_HAIKU="anthropic.claude-haiku-4-5-20251001-v1:0",nt.CLAUDE_4_1_OPUS="anthropic.claude-opus-4-1-20250805-v1:0",nt.CLAUDE_4_SONNET="anthropic.claude-sonnet-4-20250514-v1:0",nt.CLAUDE_3_7_SONNET="anthropic.claude-3-7-sonnet-20250219-v1:0",nt.CLAUDE_3_5_SONNET="anthropic.claude-3-5-sonnet-20241022-v1:0",nt.CLAUDE_3_5_HAIKU="anthropic.claude-3-5-haiku-20241022-v1:0",nt.CLAUDE_3_SONNET="anthropic.claude-3-sonnet-20240229-v1:0",nt.CLAUDE_3_HAIKU="anthropic.claude-3-haiku-20240307-v1:0",nt.NOVA_PREMIER="amazon.nova-premier-v1:0",nt.NOVA_PRO="amazon.nova-pro-v1:0",nt.NOVA_LITE="amazon.nova-lite-v1:0",nt.NOVA_MICRO="amazon.nova-micro-v1:0",nt.NOVA_2_LITE="amazon.nova-2-lite-v1:0",nt.NOVA_2_SONIC="amazon.nova-2-sonic-v1:0",nt.NOVA_SONIC="amazon.nova-sonic-v1:0",nt.NOVA_CANVAS="amazon.nova-canvas-v1:0",nt.NOVA_REEL="amazon.nova-reel-v1:0",nt.NOVA_REEL_V1_1="amazon.nova-reel-v1:1",nt.NOVA_MULTIMODAL_EMBEDDINGS="amazon.nova-2-multimodal-embeddings-v1:0",nt.TITAN_TEXT_LARGE="amazon.titan-tg1-large",nt.TITAN_EMBED_TEXT_V2="amazon.titan-embed-text-v2:0",nt.TITAN_EMBED_TEXT_V1="amazon.titan-embed-text-v1",nt.TITAN_EMBED_G1_TEXT_02="amazon.titan-embed-g1-text-02",nt.TITAN_EMBED_IMAGE_V1="amazon.titan-embed-image-v1",nt.TITAN_IMAGE_GENERATOR_V2="amazon.titan-image-generator-v2:0",nt.LLAMA_4_MAVERICK_17B="meta.llama4-maverick-17b-instruct-v1:0",nt.LLAMA_4_SCOUT_17B="meta.llama4-scout-17b-instruct-v1:0",nt.LLAMA_3_3_70B="meta.llama3-3-70b-instruct-v1:0",nt.LLAMA_3_2_90B="meta.llama3-2-90b-instruct-v1:0",nt.LLAMA_3_2_11B="meta.llama3-2-11b-instruct-v1:0",nt.LLAMA_3_2_3B="meta.llama3-2-3b-instruct-v1:0",nt.LLAMA_3_2_1B="meta.llama3-2-1b-instruct-v1:0",nt.LLAMA_3_1_405B="meta.llama3-1-405b-instruct-v1:0",nt.LLAMA_3_1_70B="meta.llama3-1-70b-instruct-v1:0",nt.LLAMA_3_1_8B="meta.llama3-1-8b-instruct-v1:0",nt.LLAMA_3_70B="meta.llama3-70b-instruct-v1:0",nt.LLAMA_3_8B="meta.llama3-8b-instruct-v1:0",nt.MISTRAL_LARGE_3="mistral.mistral-large-3-675b-instruct",nt.MISTRAL_LARGE_2407="mistral.mistral-large-2407-v1:0",nt.MISTRAL_LARGE_2402="mistral.mistral-large-2402-v1:0",nt.MAGISTRAL_SMALL_2509="mistral.magistral-small-2509",nt.MINISTRAL_3_14B="mistral.ministral-3-14b-instruct",nt.MINISTRAL_3_8B="mistral.ministral-3-8b-instruct",nt.MINISTRAL_3_3B="mistral.ministral-3-3b-instruct",nt.MISTRAL_7B="mistral.mistral-7b-instruct-v0:2",nt.MIXTRAL_8x7B="mistral.mixtral-8x7b-instruct-v0:1",nt.PIXTRAL_LARGE_2502="mistral.pixtral-large-2502-v1:0",nt.VOXTRAL_SMALL_24B="mistral.voxtral-small-24b-2507",nt.VOXTRAL_MINI_3B="mistral.voxtral-mini-3b-2507",nt.COHERE_COMMAND_R_PLUS="cohere.command-r-plus-v1:0",nt.COHERE_COMMAND_R="cohere.command-r-v1:0",nt.DEEPSEEK_R1="deepseek.r1-v1:0",nt.DEEPSEEK_V3="deepseek.v3-v1:0",nt.QWEN_3_235B_A22B="qwen.qwen3-235b-a22b-2507-v1:0",nt.QWEN_3_CODER_480B_A35B="qwen.qwen3-coder-480b-a35b-v1:0",nt.QWEN_3_CODER_30B_A3B="qwen.qwen3-coder-30b-a3b-v1:0",nt.QWEN_3_32B="qwen.qwen3-32b-v1:0",nt.QWEN_3_NEXT_80B_A3B="qwen.qwen3-next-80b-a3b",nt.QWEN_3_VL_235B_A22B="qwen.qwen3-vl-235b-a22b",nt.GEMMA_3_27B_IT="google.gemma-3-27b-it",nt.GEMMA_3_12B_IT="google.gemma-3-12b-it",nt.GEMMA_3_4B_IT="google.gemma-3-4b-it",nt.JAMBA_1_5_LARGE="ai21.jamba-1-5-large-v1:0",nt.JAMBA_1_5_MINI="ai21.jamba-1-5-mini-v1:0",nt.WRITER_PALMYRA_X5="writer.palmyra-x5-v1:0",nt.WRITER_PALMYRA_X4="writer.palmyra-x4-v1:0",nt.MINIMAX_M2_1="minimax.minimax-m2.1",nt.MINIMAX_M2="minimax.minimax-m2",nt.KIMI_K2_THINKING="moonshot.kimi-k2-thinking",nt.KIMI_K2_5="moonshotai.kimi-k2.5",nt.NVIDIA_NEMOTRON_NANO_3_30B="nvidia.nemotron-nano-3-30b",nt.NVIDIA_NEMOTRON_NANO_12B_V2="nvidia.nemotron-nano-12b-v2",nt.NVIDIA_NEMOTRON_NANO_9B_V2="nvidia.nemotron-nano-9b-v2",nt.OPENAI_GPT_OSS_120B="openai.gpt-oss-120b-1:0",nt.OPENAI_GPT_OSS_20B="openai.gpt-oss-20b-1:0",nt.GLM_4_7="zai.glm-4.7",nt.GLM_4_7_FLASH="zai.glm-4.7-flash",nt.COHERE_EMBED_ENGLISH_V3="cohere.embed-english-v3",nt.COHERE_EMBED_MULTILINGUAL_V3="cohere.embed-multilingual-v3",nt.COHERE_EMBED_V4="cohere.embed-v4:0",nt.COHERE_RERANK_V3_5="cohere.rerank-v3-5:0",nt.AMAZON_RERANK_V1="amazon.rerank-v1:0",nt.DEVSTRAL_2_123B="mistral.devstral-2-123b",nt))(Yhe||{}),Zhe=(J=>(J.GPT_5_3_CODEX="gpt-5.3-codex",J.GPT_5_4="gpt-5.4",J.GPT_5_4_MINI="gpt-5.4-mini",J.GPT_5_4_NANO="gpt-5.4-nano",J.GPT_5_4_PRO="gpt-5.4-pro",J.GPT_5_2="gpt-5.2",J.GPT_5_2_CHAT_LATEST="gpt-5.2-chat-latest",J.GPT_5_2_PRO="gpt-5.2-pro",J.GPT_5_2_CODEX="gpt-5.2-codex",J.GPT_5_1="gpt-5.1",J.GPT_5_1_CHAT_LATEST="gpt-5.1-chat-latest",J.GPT_5_1_CODEX="gpt-5.1-codex",J.GPT_5_1_CODEX_MAX="gpt-5.1-codex-max",J.GPT_5_1_CODEX_MINI="gpt-5.1-codex-mini",J.GPT_5="gpt-5",J.GPT_5_MINI="gpt-5-mini",J.GPT_5_NANO="gpt-5-nano",J.GPT_5_PRO="gpt-5-pro",J.GPT_5_CHAT_LATEST="gpt-5-chat-latest",J.GPT_5_CODEX="gpt-5-codex",J.GPT_OSS_120B="gpt-oss-120b",J.GPT_OSS_20B="gpt-oss-20b",J.GPT_4_1="gpt-4.1",J.GPT_4_1_MINI="gpt-4.1-mini",J.GPT_4_1_NANO="gpt-4.1-nano",J.GPT_4O="gpt-4o",J.GPT_4O_MINI="gpt-4o-mini",J.O3="o3",J.O3_MINI="o3-mini",J.O3_PRO="o3-pro",J.O4_MINI="o4-mini",J.O1="o1",J.O1_PREVIEW="o1-preview",J.O1_MINI="o1-mini",J.GPT_4="gpt-4",J.GPT_4_TURBO="gpt-4-turbo",J.GPT_3_5_TURBO="gpt-3.5-turbo",J.GPT_IMAGE_1="gpt-image-1",J.DALL_E_3="dall-e-3",J.DALL_E_2="dall-e-2",J))(Zhe||{}),Qhe=(N=>(N.CLAUDE_4_6_OPUS="claude-opus-4-6",N.CLAUDE_4_6_SONNET="claude-sonnet-4-6",N.CLAUDE_4_5_OPUS="claude-opus-4-5@20251124",N.CLAUDE_4_5_SONNET="claude-sonnet-4-5@20250929",N.CLAUDE_4_5_HAIKU="claude-haiku-4-5@20251001",N.CLAUDE_4_0_SONNET="claude-sonnet-4@20250514",N.CLAUDE_4_0_OPUS="claude-opus-4@20250514",N.CLAUDE_3_7_SONNET="claude-3-7-sonnet@20250219",N.CLAUDE_3_5_SONNET="claude-3-5-sonnet-20241022",N.CLAUDE_3_5_HAIKU="claude-3-5-haiku-20241022",N.CLAUDE_3_SONNET="claude-3-sonnet-20240229",N.CLAUDE_3_OPUS="claude-3-opus-20240229",N.CLAUDE_3_HAIKU="claude-3-haiku-20240307",N.GEMINI_3_1_PRO_PREVIEW="gemini-3.1-pro-preview",N.GEMINI_3_1_FLASH_LITE_PREVIEW="gemini-3.1-flash-lite-preview",N.GEMINI_3_1_FLASH_IMAGE_PREVIEW="gemini-3.1-flash-image-preview",N.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS="gemini-3.1-pro-preview-customtools",N.GEMINI_3_FLASH_PREVIEW="gemini-3-flash-preview",N.GEMINI_3_PRO_IMAGE_PREVIEW="gemini-3-pro-image-preview",N.GEMINI_3_PRO_PREVIEW="gemini-3-pro-preview",N.GEMINI_2_5_PRO="gemini-2.5-pro",N.GEMINI_2_5_FLASH="gemini-2.5-flash",N.GEMINI_2_5_FLASH_LITE="gemini-2.5-flash-lite",N.GEMINI_2_5_FLASH_IMAGE="gemini-2.5-flash-image",N.GEMINI_2_0_FLASH="gemini-2.0-flash",N.GEMINI_2_0_FLASH_001="gemini-2.0-flash-001",N.GEMINI_2_0_FLASH_LITE="gemini-2.0-flash-lite",N.GEMINI_1_5_PRO="gemini-1.5-pro-002",N.GEMINI_1_5_FLASH="gemini-1.5-flash-002",N))(Qhe||{})});function an(r){let e=process.env[r.envVarName];if(!e&&r.fallbackEnvVars){for(let t of r.fallbackEnvVars)if(e=process.env[t],e)break}if(!e){if(r.optional)return"";throw new Error(mnt(r))}return e}function mnt(r){let e=r.fallbackEnvVars?[r.envVarName,...r.fallbackEnvVars].join(" or "):r.envVarName;return`\u274C ${r.providerName} Provider Configuration Error
1
+ var Rrt=Object.create;var LD=Object.defineProperty;var krt=Object.getOwnPropertyDescriptor;var Art=Object.getOwnPropertyNames;var Irt=Object.getPrototypeOf,Prt=Object.prototype.hasOwnProperty;var Jhe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var E=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(n){throw t=[n],n}};var _t=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},de=(r,e)=>{for(var t in e)LD(r,t,{get:e[t],enumerable:!0})},Xhe=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Art(e))!Prt.call(r,o)&&o!==t&&LD(r,o,{get:()=>e[o],enumerable:!(n=krt(e,o))||n.enumerable});return r};var Ho=(r,e,t)=>(t=r!=null?Rrt(Irt(r)):{},Xhe(e||!r||!r.__esModule?LD(t,"default",{value:r,enumerable:!0}):t,r)),ir=r=>Xhe(LD({},"__esModule",{value:!0}),r);var _3={};de(_3,{ATTR_SERVICE_NAME:()=>int,ATTR_SERVICE_VERSION:()=>ant,AsyncLocalStorageContextManager:()=>ont,BasicTracerProvider:()=>jrt,BatchLogRecordProcessor:()=>ent,BatchSpanProcessor:()=>Vrt,DiagConsoleLogger:()=>Ort,DiagLogLevel:()=>Nrt,INVALID_SPAN_CONTEXT:()=>$rt,LangfuseSpanProcessor:()=>Zrt,LoggerProvider:()=>Qrt,MeterProvider:()=>tnt,NodeSDK:()=>zrt,NodeTracerProvider:()=>Grt,OTLPLogExporter:()=>Krt,OTLPMetricExporter:()=>Wrt,OTLPTraceExporter:()=>Hrt,PeriodicExportingMetricReader:()=>rnt,SEMRESATTRS_SERVICE_NAME:()=>lnt,SEMRESATTRS_SERVICE_VERSION:()=>cnt,SeverityNumber:()=>nnt,SimpleSpanProcessor:()=>qrt,SpanKind:()=>hr,SpanStatusCode:()=>Fe,TraceFlags:()=>Mrt,ValueType:()=>Drt,W3CTraceContextPropagator:()=>snt,baggageEntryMetadataFromString:()=>Brt,context:()=>ur,default:()=>unt,diag:()=>w3,getNodeAutoInstrumentations:()=>Jrt,isSpanContextValid:()=>Lrt,isValidSpanId:()=>Frt,isValidTraceId:()=>Urt,metrics:()=>Um,propagation:()=>fx,registerInstrumentations:()=>Xrt,resourceFromAttributes:()=>Yrt,trace:()=>pt});var T3,UD,S3,FD,pt,ur,fx,Um,w3,Fe,hr,Mrt,Ort,Nrt,Drt,Lrt,Urt,Frt,$rt,Brt,zrt,jrt,Grt,qrt,Vrt,Hrt,Krt,Wrt,Jrt,Xrt,Yrt,Zrt,Qrt,ent,tnt,rnt,nnt,ont,snt,int,ant,lnt,cnt,unt,gr=E(()=>{T3={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}}},UD={startSpan(){return T3},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(T3)}},S3={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},FD={getValue(){},setValue(){return FD},deleteValue(){return FD}},pt={getTracer(){return UD},getTracerProvider(){return{getTracer(){return UD}}},setGlobalTracerProvider(){},getSpan(){return T3},getActiveSpan(){},setSpan(r){return r},deleteSpan(r){return r},setSpanContext(r){return r},getSpanContext(){}},ur={active(){return FD},with(r,e){return e()},bind(r,e){return e},setValue(){return FD},getValue(){}},fx={inject(){},extract(r){return r},setGlobalPropagator(){},getBaggage(){},setBaggage(r){return r},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},Um={getMeter(){return S3},getMeterProvider(){return{getMeter(){return S3}}},setGlobalMeterProvider(){}},w3={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return w3}},Fe={UNSET:0,OK:1,ERROR:2},hr={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},Mrt={NONE:0,SAMPLED:1},Ort=class{},Nrt={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},Drt={INT:0,DOUBLE:1},Lrt=()=>!1,Urt=()=>!1,Frt=()=>!1,$rt={traceId:"0",spanId:"0",traceFlags:0},Brt=()=>({}),zrt=class{start(){}shutdown(){return Promise.resolve()}},jrt=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return UD}shutdown(){return Promise.resolve()}},Grt=class{register(){}addSpanProcessor(){}getTracer(){return UD}shutdown(){return Promise.resolve()}},qrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Vrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Hrt=class{export(){}shutdown(){return Promise.resolve()}},Krt=class{export(){}shutdown(){return Promise.resolve()}},Wrt=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Jrt=()=>[],Xrt=()=>{},Yrt=r=>({attributes:r||{},merge(){return this}}),Zrt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Qrt=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},ent=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},tnt=class{constructor(){}getMeter(){return S3}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},rnt=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},nnt={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},ont=class{enable(){return this}disable(){return this}},snt=class{inject(){}extract(r){return r}fields(){return[]}},int="service.name",ant="service.version",lnt="service.name",cnt="service.version",unt={trace:pt,context:ur,propagation:fx,metrics:Um,diag:w3,SpanStatusCode:Fe,SpanKind:hr}});var Oe,Ar=E(()=>{"use strict";gr();Oe={sdk:pt.getTracer("neurolink"),provider:pt.getTracer("neurolink.provider"),generation:pt.getTracer("neurolink.generation"),stream:pt.getTracer("neurolink.stream"),http:pt.getTracer("neurolink.http"),mcp:pt.getTracer("neurolink.mcp"),memory:pt.getTracer("neurolink.memory"),redis:pt.getTracer("neurolink.redis"),factory:pt.getTracer("neurolink.factory"),rag:pt.getTracer("neurolink.rag"),context:pt.getTracer("neurolink.context"),middleware:pt.getTracer("neurolink.middleware"),processor:pt.getTracer("neurolink.processor"),file:pt.getTracer("neurolink.file"),autoresearch:pt.getTracer("neurolink.autoresearch"),auth:pt.getTracer("neurolink.auth"),workflow:pt.getTracer("neurolink.workflow")}});async function dnt(){return E3||(E3=Promise.resolve().then(()=>(gr(),_3)).then(r=>(BD=r,r)).catch(()=>null)),E3}function $D(r,e){if(r.length===0)return;let t=(()=>{try{return typeof r[0]=="string"?r[0]:JSON.stringify(r[0])}catch{return"[Unserializable Object]"}})(),n=r.length===2?r[1]:r.length>2?r.slice(1):void 0;e(t,n)}var BD,E3,pnt,C3,li,g,fe,Sr,Y=E(()=>{"use strict";BD=null,E3=null;dnt();pnt={debug:"DEBUG",info:"INFO",warn:"WARN",error:"ERROR"},C3=class{logLevel="info";logs=[];maxLogs=1e3;isDebugMode;eventEmitter;constructor(){this.isDebugMode=process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true";let e=process.env.NEUROLINK_LOG_LEVEL?.toLowerCase();e&&["debug","info","warn","error"].includes(e)&&(this.logLevel=e)}setEventEmitter(e){this.eventEmitter=e}clearEventEmitter(e){e!==void 0&&this.eventEmitter!==e||(this.eventEmitter=void 0)}setLogLevel(e){this.logLevel=e}shouldLog(e){if(!(process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true")&&e!=="error")return!1;let n=["debug","info","warn","error"];return n.indexOf(e)>=n.indexOf(this.logLevel)}getLogPrefix(e,t){return`[${e}] [NEUROLINK:${pnt[t]}]`}getTraceContext(){if(!BD)return{};try{let e=BD.trace.getSpan(BD.context.active());if(!e)return{};let t=e.spanContext();return!t||t.traceId==="00000000000000000000000000000000"?{}:{trace_id:t.traceId,span_id:t.spanId,trace_flags:String(t.traceFlags)}}catch{return{}}}serializeData(e){if(e==null||typeof e!="object")return String(e);try{return JSON.stringify(e,(t,n)=>n instanceof Error?{name:n.name,message:n.message,stack:n.stack}:n)}catch{let t=[];try{return JSON.stringify(e,function(n,o){if(o instanceof Error)return{name:o.name,message:o.message,stack:o.stack};if(typeof o=="object"&&o!==null){if(t.includes(o))return"[Circular]";t.push(o)}return o})}catch{return"[Unserializable Object]"}}}outputToConsole(e,t,n,o){let s={debug:console.debug,info:console.info,warn:console.warn,error:console.error}[e],i=this.getTraceContext(),a=i.trace_id?` [trace_id=${i.trace_id} span_id=${i.span_id}]`:"";o!=null?s(t+a,n,this.serializeData(o)):s(t+a,n)}log(e,t,n){if(!this.shouldLog(e))return;let o={level:e,message:t,timestamp:new Date,data:n};if(this.eventEmitter)try{this.eventEmitter.emit("log-event",{level:e,message:t,timestamp:new Date().getTime(),data:n})}catch{}this.logs.push(o),this.logs.length>this.maxLogs&&(this.logs=this.logs.slice(-this.maxLogs));let s=o.timestamp.toISOString(),i=this.getLogPrefix(s,e);this.outputToConsole(e,i,t,n)}debug(e,t){this.log("debug",e,t)}info(e,t){this.log("info",e,t)}warn(e,t){this.log("warn",e,t)}error(e,t){this.log("error",e,t)}getLogs(e){return e?this.logs.filter(t=>t.level===e):[...this.logs]}clearLogs(){this.logs=[]}always(...e){console.log(...e)}alwaysStderr(...e){console.error(...e)}table(e){console.table(e)}},li=new C3;g={debug:(...r)=>{li.shouldLog("debug")&&$D(r,(e,t)=>li.debug(e,t))},info:(...r)=>{li.shouldLog("info")&&$D(r,(e,t)=>li.info(e,t))},warn:(...r)=>{li.shouldLog("warn")&&$D(r,(e,t)=>li.warn(e,t))},error:(...r)=>{li.shouldLog("error")&&$D(r,(e,t)=>li.error(e,t))},always:(...r)=>{li.always(...r)},alwaysStderr:(...r)=>{li.alwaysStderr(...r)},table:r=>{li.table(r)},shouldLog:r=>li.shouldLog(r),setLogLevel:r=>li.setLogLevel(r),getLogs:r=>li.getLogs(r),clearLogs:()=>li.clearLogs(),setEventEmitter:r=>li.setEventEmitter(r),clearEventEmitter:r=>li.clearEventEmitter(r)},fe=li,Sr=li});var zD,Yhe,Zhe,Qhe,R3=E(()=>{"use strict";zD=(j=>(j.BEDROCK="bedrock",j.OPENAI="openai",j.OPENAI_COMPATIBLE="openai-compatible",j.OPENROUTER="openrouter",j.VERTEX="vertex",j.ANTHROPIC="anthropic",j.AZURE="azure",j.GOOGLE_AI="google-ai",j.HUGGINGFACE="huggingface",j.OLLAMA="ollama",j.MISTRAL="mistral",j.LITELLM="litellm",j.SAGEMAKER="sagemaker",j.DEEPSEEK="deepseek",j.NVIDIA_NIM="nvidia-nim",j.LM_STUDIO="lm-studio",j.LLAMACPP="llamacpp",j.XAI="xai",j.GROQ="groq",j.COHERE="cohere",j.TOGETHER_AI="together-ai",j.FIREWORKS="fireworks",j.PERPLEXITY="perplexity",j.CLOUDFLARE="cloudflare",j.REPLICATE="replicate",j.VOYAGE="voyage",j.JINA="jina",j.STABILITY="stability",j.IDEOGRAM="ideogram",j.RECRAFT="recraft",j.AUTO="auto",j))(zD||{}),Yhe=(nt=>(nt.CLAUDE_4_6_OPUS="anthropic.claude-opus-4-6-v1:0",nt.CLAUDE_4_6_SONNET="anthropic.claude-sonnet-4-6",nt.CLAUDE_4_5_OPUS="anthropic.claude-opus-4-5-20251101-v1:0",nt.CLAUDE_4_5_SONNET="anthropic.claude-sonnet-4-5-20250929-v1:0",nt.CLAUDE_4_5_HAIKU="anthropic.claude-haiku-4-5-20251001-v1:0",nt.CLAUDE_4_1_OPUS="anthropic.claude-opus-4-1-20250805-v1:0",nt.CLAUDE_4_SONNET="anthropic.claude-sonnet-4-20250514-v1:0",nt.CLAUDE_3_7_SONNET="anthropic.claude-3-7-sonnet-20250219-v1:0",nt.CLAUDE_3_5_SONNET="anthropic.claude-3-5-sonnet-20241022-v1:0",nt.CLAUDE_3_5_HAIKU="anthropic.claude-3-5-haiku-20241022-v1:0",nt.CLAUDE_3_SONNET="anthropic.claude-3-sonnet-20240229-v1:0",nt.CLAUDE_3_HAIKU="anthropic.claude-3-haiku-20240307-v1:0",nt.NOVA_PREMIER="amazon.nova-premier-v1:0",nt.NOVA_PRO="amazon.nova-pro-v1:0",nt.NOVA_LITE="amazon.nova-lite-v1:0",nt.NOVA_MICRO="amazon.nova-micro-v1:0",nt.NOVA_2_LITE="amazon.nova-2-lite-v1:0",nt.NOVA_2_SONIC="amazon.nova-2-sonic-v1:0",nt.NOVA_SONIC="amazon.nova-sonic-v1:0",nt.NOVA_CANVAS="amazon.nova-canvas-v1:0",nt.NOVA_REEL="amazon.nova-reel-v1:0",nt.NOVA_REEL_V1_1="amazon.nova-reel-v1:1",nt.NOVA_MULTIMODAL_EMBEDDINGS="amazon.nova-2-multimodal-embeddings-v1:0",nt.TITAN_TEXT_LARGE="amazon.titan-tg1-large",nt.TITAN_EMBED_TEXT_V2="amazon.titan-embed-text-v2:0",nt.TITAN_EMBED_TEXT_V1="amazon.titan-embed-text-v1",nt.TITAN_EMBED_G1_TEXT_02="amazon.titan-embed-g1-text-02",nt.TITAN_EMBED_IMAGE_V1="amazon.titan-embed-image-v1",nt.TITAN_IMAGE_GENERATOR_V2="amazon.titan-image-generator-v2:0",nt.LLAMA_4_MAVERICK_17B="meta.llama4-maverick-17b-instruct-v1:0",nt.LLAMA_4_SCOUT_17B="meta.llama4-scout-17b-instruct-v1:0",nt.LLAMA_3_3_70B="meta.llama3-3-70b-instruct-v1:0",nt.LLAMA_3_2_90B="meta.llama3-2-90b-instruct-v1:0",nt.LLAMA_3_2_11B="meta.llama3-2-11b-instruct-v1:0",nt.LLAMA_3_2_3B="meta.llama3-2-3b-instruct-v1:0",nt.LLAMA_3_2_1B="meta.llama3-2-1b-instruct-v1:0",nt.LLAMA_3_1_405B="meta.llama3-1-405b-instruct-v1:0",nt.LLAMA_3_1_70B="meta.llama3-1-70b-instruct-v1:0",nt.LLAMA_3_1_8B="meta.llama3-1-8b-instruct-v1:0",nt.LLAMA_3_70B="meta.llama3-70b-instruct-v1:0",nt.LLAMA_3_8B="meta.llama3-8b-instruct-v1:0",nt.MISTRAL_LARGE_3="mistral.mistral-large-3-675b-instruct",nt.MISTRAL_LARGE_2407="mistral.mistral-large-2407-v1:0",nt.MISTRAL_LARGE_2402="mistral.mistral-large-2402-v1:0",nt.MAGISTRAL_SMALL_2509="mistral.magistral-small-2509",nt.MINISTRAL_3_14B="mistral.ministral-3-14b-instruct",nt.MINISTRAL_3_8B="mistral.ministral-3-8b-instruct",nt.MINISTRAL_3_3B="mistral.ministral-3-3b-instruct",nt.MISTRAL_7B="mistral.mistral-7b-instruct-v0:2",nt.MIXTRAL_8x7B="mistral.mixtral-8x7b-instruct-v0:1",nt.PIXTRAL_LARGE_2502="mistral.pixtral-large-2502-v1:0",nt.VOXTRAL_SMALL_24B="mistral.voxtral-small-24b-2507",nt.VOXTRAL_MINI_3B="mistral.voxtral-mini-3b-2507",nt.COHERE_COMMAND_R_PLUS="cohere.command-r-plus-v1:0",nt.COHERE_COMMAND_R="cohere.command-r-v1:0",nt.DEEPSEEK_R1="deepseek.r1-v1:0",nt.DEEPSEEK_V3="deepseek.v3-v1:0",nt.QWEN_3_235B_A22B="qwen.qwen3-235b-a22b-2507-v1:0",nt.QWEN_3_CODER_480B_A35B="qwen.qwen3-coder-480b-a35b-v1:0",nt.QWEN_3_CODER_30B_A3B="qwen.qwen3-coder-30b-a3b-v1:0",nt.QWEN_3_32B="qwen.qwen3-32b-v1:0",nt.QWEN_3_NEXT_80B_A3B="qwen.qwen3-next-80b-a3b",nt.QWEN_3_VL_235B_A22B="qwen.qwen3-vl-235b-a22b",nt.GEMMA_3_27B_IT="google.gemma-3-27b-it",nt.GEMMA_3_12B_IT="google.gemma-3-12b-it",nt.GEMMA_3_4B_IT="google.gemma-3-4b-it",nt.JAMBA_1_5_LARGE="ai21.jamba-1-5-large-v1:0",nt.JAMBA_1_5_MINI="ai21.jamba-1-5-mini-v1:0",nt.WRITER_PALMYRA_X5="writer.palmyra-x5-v1:0",nt.WRITER_PALMYRA_X4="writer.palmyra-x4-v1:0",nt.MINIMAX_M2_1="minimax.minimax-m2.1",nt.MINIMAX_M2="minimax.minimax-m2",nt.KIMI_K2_THINKING="moonshot.kimi-k2-thinking",nt.KIMI_K2_5="moonshotai.kimi-k2.5",nt.NVIDIA_NEMOTRON_NANO_3_30B="nvidia.nemotron-nano-3-30b",nt.NVIDIA_NEMOTRON_NANO_12B_V2="nvidia.nemotron-nano-12b-v2",nt.NVIDIA_NEMOTRON_NANO_9B_V2="nvidia.nemotron-nano-9b-v2",nt.OPENAI_GPT_OSS_120B="openai.gpt-oss-120b-1:0",nt.OPENAI_GPT_OSS_20B="openai.gpt-oss-20b-1:0",nt.GLM_4_7="zai.glm-4.7",nt.GLM_4_7_FLASH="zai.glm-4.7-flash",nt.COHERE_EMBED_ENGLISH_V3="cohere.embed-english-v3",nt.COHERE_EMBED_MULTILINGUAL_V3="cohere.embed-multilingual-v3",nt.COHERE_EMBED_V4="cohere.embed-v4:0",nt.COHERE_RERANK_V3_5="cohere.rerank-v3-5:0",nt.AMAZON_RERANK_V1="amazon.rerank-v1:0",nt.DEVSTRAL_2_123B="mistral.devstral-2-123b",nt))(Yhe||{}),Zhe=(J=>(J.GPT_5_3_CODEX="gpt-5.3-codex",J.GPT_5_4="gpt-5.4",J.GPT_5_4_MINI="gpt-5.4-mini",J.GPT_5_4_NANO="gpt-5.4-nano",J.GPT_5_4_PRO="gpt-5.4-pro",J.GPT_5_2="gpt-5.2",J.GPT_5_2_CHAT_LATEST="gpt-5.2-chat-latest",J.GPT_5_2_PRO="gpt-5.2-pro",J.GPT_5_2_CODEX="gpt-5.2-codex",J.GPT_5_1="gpt-5.1",J.GPT_5_1_CHAT_LATEST="gpt-5.1-chat-latest",J.GPT_5_1_CODEX="gpt-5.1-codex",J.GPT_5_1_CODEX_MAX="gpt-5.1-codex-max",J.GPT_5_1_CODEX_MINI="gpt-5.1-codex-mini",J.GPT_5="gpt-5",J.GPT_5_MINI="gpt-5-mini",J.GPT_5_NANO="gpt-5-nano",J.GPT_5_PRO="gpt-5-pro",J.GPT_5_CHAT_LATEST="gpt-5-chat-latest",J.GPT_5_CODEX="gpt-5-codex",J.GPT_OSS_120B="gpt-oss-120b",J.GPT_OSS_20B="gpt-oss-20b",J.GPT_4_1="gpt-4.1",J.GPT_4_1_MINI="gpt-4.1-mini",J.GPT_4_1_NANO="gpt-4.1-nano",J.GPT_4O="gpt-4o",J.GPT_4O_MINI="gpt-4o-mini",J.O3="o3",J.O3_MINI="o3-mini",J.O3_PRO="o3-pro",J.O4_MINI="o4-mini",J.O1="o1",J.O1_PREVIEW="o1-preview",J.O1_MINI="o1-mini",J.GPT_4="gpt-4",J.GPT_4_TURBO="gpt-4-turbo",J.GPT_3_5_TURBO="gpt-3.5-turbo",J.GPT_IMAGE_1="gpt-image-1",J.DALL_E_3="dall-e-3",J.DALL_E_2="dall-e-2",J))(Zhe||{}),Qhe=(N=>(N.CLAUDE_4_6_OPUS="claude-opus-4-6",N.CLAUDE_4_6_SONNET="claude-sonnet-4-6",N.CLAUDE_4_5_OPUS="claude-opus-4-5@20251101",N.CLAUDE_4_5_SONNET="claude-sonnet-4-5@20250929",N.CLAUDE_4_5_HAIKU="claude-haiku-4-5@20251001",N.CLAUDE_4_0_SONNET="claude-sonnet-4@20250514",N.CLAUDE_4_0_OPUS="claude-opus-4@20250514",N.CLAUDE_3_7_SONNET="claude-3-7-sonnet@20250219",N.CLAUDE_3_5_SONNET="claude-3-5-sonnet-20241022",N.CLAUDE_3_5_HAIKU="claude-3-5-haiku-20241022",N.CLAUDE_3_SONNET="claude-3-sonnet-20240229",N.CLAUDE_3_OPUS="claude-3-opus-20240229",N.CLAUDE_3_HAIKU="claude-3-haiku-20240307",N.GEMINI_3_1_PRO_PREVIEW="gemini-3.1-pro-preview",N.GEMINI_3_1_FLASH_LITE_PREVIEW="gemini-3.1-flash-lite-preview",N.GEMINI_3_1_FLASH_IMAGE_PREVIEW="gemini-3.1-flash-image-preview",N.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS="gemini-3.1-pro-preview-customtools",N.GEMINI_3_FLASH_PREVIEW="gemini-3-flash-preview",N.GEMINI_3_PRO_IMAGE_PREVIEW="gemini-3-pro-image-preview",N.GEMINI_3_PRO_PREVIEW="gemini-3-pro-preview",N.GEMINI_2_5_PRO="gemini-2.5-pro",N.GEMINI_2_5_FLASH="gemini-2.5-flash",N.GEMINI_2_5_FLASH_LITE="gemini-2.5-flash-lite",N.GEMINI_2_5_FLASH_IMAGE="gemini-2.5-flash-image",N.GEMINI_2_0_FLASH="gemini-2.0-flash",N.GEMINI_2_0_FLASH_001="gemini-2.0-flash-001",N.GEMINI_2_0_FLASH_LITE="gemini-2.0-flash-lite",N.GEMINI_1_5_PRO="gemini-1.5-pro-002",N.GEMINI_1_5_FLASH="gemini-1.5-flash-002",N))(Qhe||{})});function an(r){let e=process.env[r.envVarName];if(!e&&r.fallbackEnvVars){for(let t of r.fallbackEnvVars)if(e=process.env[t],e)break}if(!e){if(r.optional)return"";throw new Error(mnt(r))}return e}function mnt(r){let e=r.fallbackEnvVars?[r.envVarName,...r.fallbackEnvVars].join(" or "):r.envVarName;return`\u274C ${r.providerName} Provider Configuration Error
2
2
 
3
3
  Missing required environment variable: ${e}
4
4
 
@@ -15,7 +15,7 @@ Restart your application to load the new environment variables.`}function ln(r,e
15
15
  ]))`;continue}else if(n[l]==="$"){o+=`($|(?=[\r
16
16
  ]))`;continue}}if(t.s&&n[l]==="."){o+=i?`${n[l]}\r
17
17
  `:`[${n[l]}\r
18
- ]`;continue}o+=n[l],n[l]==="\\"?s=!0:i&&n[l]==="]"?i=!1:!i&&n[l]==="["&&(i=!0)}try{new RegExp(o)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),r.source}return o}var Z3,dd,Hnt,rL=E(()=>{Gf();dd={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Z3===void 0&&(Z3=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Z3),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Hnt=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});function nL(r,e){if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&r.keyType?._def.typeName===be.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((n,o)=>({...n,[o]:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",o]})??yo(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let t={type:"object",additionalProperties:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===be.ZodString&&r.keyType._def.checks?.length){let{type:n,...o}=tL(r.keyType._def,e);return{...t,propertyNames:o}}else{if(r.keyType?._def.typeName===be.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};if(r.keyType?._def.typeName===be.ZodBranded&&r.keyType._def.type._def.typeName===be.ZodString&&r.keyType._def.type._def.checks?.length){let{type:n,...o}=QD(r.keyType._def,e);return{...t,propertyNames:o}}}return t}var oL=E(()=>{ud();Ks();rL();eL();Su()});function Kye(r,e){if(e.mapStrategy==="record")return nL(r,e);let t=Yt(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||yo(e),n=Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||yo(e);return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}var e6=E(()=>{Ks();oL();Su()});function Wye(r){let e=r.values,n=Object.keys(r.values).filter(s=>typeof e[e[s]]!="number").map(s=>e[s]),o=Array.from(new Set(n.map(s=>typeof s)));return{type:o.length===1?o[0]==="string"?"string":"number":["string","number"],enum:n}}var t6=E(()=>{});function Jye(r){return r.target==="openAi"?void 0:{not:yo({...r,currentPath:[...r.currentPath,"not"]})}}var r6=E(()=>{Su()});function Xye(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var n6=E(()=>{});function Zye(r,e){if(e.target==="openApi3")return Yye(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in FR&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((o,s)=>{let i=FR[s._def.typeName];return i&&!o.includes(i)?[...o,i]:o},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((o,s)=>{let i=typeof s._def.value;switch(i){case"string":case"number":case"boolean":return[...o,i];case"bigint":return[...o,"integer"];case"object":if(s._def.value===null)return[...o,"null"];default:return o}},[]);if(n.length===t.length){let o=n.filter((s,i,a)=>a.indexOf(s)===i);return{type:o.length>1?o:o[0],enum:t.reduce((s,i)=>s.includes(i._def.value)?s:[...s,i._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,o)=>[...n,...o._def.values.filter(s=>!n.includes(s))],[])};return Yye(r,e)}var FR,Yye,sL=E(()=>{Ks();FR={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};Yye=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,o)=>Yt(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${o}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0}});function Qye(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"?{type:FR[r.innerType._def.typeName],nullable:!0}:{type:[FR[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}var o6=E(()=>{Ks();sL()});function exe(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",I3(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?zr(t,"minimum",n.value,n.message,e):zr(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),zr(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?zr(t,"maximum",n.value,n.message,e):zr(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),zr(t,"maximum",n.value,n.message,e));break;case"multipleOf":zr(t,"multipleOf",n.value,n.message,e);break}return t}var s6=E(()=>{Gf()});function txe(r,e){let t=e.target==="openAi",n={type:"object",properties:{}},o=[],s=r.shape();for(let a in s){let l=s[a];if(l===void 0||l._def===void 0)continue;let c=Jnt(l);c&&t&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),c=!1);let u=Yt(l._def,{...e,currentPath:[...e.currentPath,"properties",a],propertyPath:[...e.currentPath,"properties",a]});u!==void 0&&(n.properties[a]=u,c||o.push(a))}o.length&&(n.required=o);let i=Wnt(r,e);return i!==void 0&&(n.additionalProperties=i),n}function Wnt(r,e){if(r.catchall._def.typeName!=="ZodNever")return Yt(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(r.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function Jnt(r){try{return r.isOptional()}catch{return!0}}var i6=E(()=>{Ks()});var rxe,a6=E(()=>{Ks();Su();rxe=(r,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return Yt(r.innerType._def,e);let t=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:yo(e)},t]}:yo(e)}});var nxe,l6=E(()=>{Ks();nxe=(r,e)=>{if(e.pipeStrategy==="input")return Yt(r.in._def,e);if(e.pipeStrategy==="output")return Yt(r.out._def,e);let t=Yt(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=Yt(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(o=>o!==void 0)}}});function oxe(r,e){return Yt(r.type._def,e)}var c6=E(()=>{Ks()});function sxe(r,e){let n={type:"array",uniqueItems:!0,items:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&zr(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&zr(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}var u6=E(()=>{Gf();Ks()});function ixe(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>Yt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:Yt(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>Yt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}var d6=E(()=>{Ks()});function axe(r){return{not:yo(r)}}var p6=E(()=>{Su()});function lxe(r){return yo(r)}var m6=E(()=>{Su()});var cxe,g6=E(()=>{Ks();cxe=(r,e)=>Yt(r.innerType._def,e)});var uxe,f6=E(()=>{ud();Su();z3();j3();G3();eL();q3();H3();K3();W3();J3();X3();Y3();e6();t6();r6();n6();o6();s6();i6();a6();l6();c6();oL();u6();rL();d6();p6();sL();m6();g6();uxe=(r,e,t)=>{switch(e){case be.ZodString:return tL(r,t);case be.ZodNumber:return exe(r,t);case be.ZodObject:return txe(r,t);case be.ZodBigInt:return Fye(r,t);case be.ZodBoolean:return $ye();case be.ZodDate:return V3(r,t);case be.ZodUndefined:return axe(t);case be.ZodNull:return Xye(t);case be.ZodArray:return Uye(r,t);case be.ZodUnion:case be.ZodDiscriminatedUnion:return Zye(r,t);case be.ZodIntersection:return qye(r,t);case be.ZodTuple:return ixe(r,t);case be.ZodRecord:return nL(r,t);case be.ZodLiteral:return Vye(r,t);case be.ZodEnum:return Gye(r);case be.ZodNativeEnum:return Wye(r);case be.ZodNullable:return Qye(r,t);case be.ZodOptional:return rxe(r,t);case be.ZodMap:return Kye(r,t);case be.ZodSet:return sxe(r,t);case be.ZodLazy:return()=>r.getter()._def;case be.ZodPromise:return oxe(r,t);case be.ZodNaN:case be.ZodNever:return Jye(t);case be.ZodEffects:return jye(r,t);case be.ZodAny:return yo(t);case be.ZodUnknown:return lxe(t);case be.ZodDefault:return zye(r,t);case be.ZodBranded:return QD(r,t);case be.ZodReadonly:return cxe(r,t);case be.ZodCatch:return Bye(r,t);case be.ZodPipeline:return nxe(r,t);case be.ZodFunction:case be.ZodVoid:case be.ZodSymbol:return;default:return(n=>{})(e)}}});function Yt(r,e,t=!1){let n=e.seen.get(r);if(e.override){let a=e.override?.(r,e,n,t);if(a!==Cye)return a}if(n&&!t){let a=Xnt(n,e);if(a!==void 0)return a}let o={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,o);let s=uxe(r,r.typeName,e),i=typeof s=="function"?Yt(s(),e):s;if(i&&Ynt(r,e,i),e.postProcess){let a=e.postProcess(i,r,e);return o.jsonSchema=i,a}return o.jsonSchema=i,i}var Xnt,Ynt,Ks=E(()=>{VD();f6();KD();Su();Xnt=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"relative":return{$ref:HD(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((t,n)=>e.currentPath[n]===t)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),yo(e)):e.$refStrategy==="seen"?yo(e):void 0}},Ynt=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t)});var dxe=E(()=>{});var iL,h6=E(()=>{Ks();A3();Su();iL=(r,e)=>{let t=kye(e),n=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((l,[c,u])=>({...l,[c]:Yt(u._def,{...t,currentPath:[...t.basePath,t.definitionPath,c]},!0)??yo(t)}),{}):void 0,o=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,s=Yt(r._def,o===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,o]},!1)??yo(t),i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(s.title=i),t.flags.hasReferencedOpenAiAnyType&&(n||(n={}),n[t.openAiAnyTypeName]||(n[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:t.$refStrategy==="relative"?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let a=o===void 0?n?{...s,[t.definitionPath]:n}:s:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,o].join("/"),[t.definitionPath]:{...n,[o]:s}};return t.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(t.target==="jsonSchema2019-09"||t.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),t.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a}});var aL=E(()=>{VD();A3();Gf();KD();Ks();dxe();Su();z3();j3();G3();eL();q3();H3();K3();W3();J3();X3();Y3();e6();t6();r6();n6();o6();s6();i6();a6();l6();c6();g6();oL();u6();rL();d6();p6();sL();m6();f6();h6();h6()});function Znt(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Qnt(r){return Znt(r)&&Object.values(r).every(e=>e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||Array.isArray(e)||Qnt(e))}function Sfn(r){return Array.isArray(r)&&r.every(e=>typeof e=="string")}function wfn(r){return typeof r=="function"}var pxe=E(()=>{"use strict";aL()});var mxe=E(()=>{"use strict"});var gxe=E(()=>{"use strict"});var fxe=E(()=>{"use strict"});var Kf,hxe=E(()=>{"use strict";Kf={programPath:"program.md",resultsPath:"results.tsv",statePath:".autoresearch/state.json",logPath:"run.log",timeoutMs:6e5,branchPrefix:"autoresearch/",thinkingLevel:"medium"}});var el,yxe=E(()=>{"use strict";el=class extends Error{breakerName;retryAfter;retryAfterMs;breakerState;failureCount;constructor(e){let t=e.retryAfter.toISOString();super(`Circuit breaker '${e.breakerName}' is ${e.breakerState}. Tool temporarily unavailable after ${e.failureCount} failures. Retry after: ${t} (${Math.ceil(e.retryAfterMs/1e3)}s).`),this.name="CircuitBreakerOpenError",this.breakerName=e.breakerName,this.retryAfter=t,this.retryAfterMs=e.retryAfterMs,this.breakerState=e.breakerState,this.failureCount=e.failureCount}}});function Rfn(r){return typeof r=="object"&&r!==null&&"content"in r&&typeof r.content=="string"}function kfn(r){return typeof r=="object"&&r!==null&&"success"in r&&typeof r.success=="boolean"}var xxe=E(()=>{"use strict"});var vxe=E(()=>{"use strict"});var bxe=E(()=>{"use strict"});function Txe(r){return r instanceof Error}function Sxe(r){return typeof r=="object"&&r!==null&&"message"in r&&typeof r.message=="string"}function eot(r){return Txe(r)||Sxe(r)?r.message:typeof r=="string"?r:String(r)}function Ifn(r){return Txe(r)?{message:r.message,stack:r.stack,code:r.code}:Sxe(r)?r:{message:eot(r)}}var wxe=E(()=>{"use strict"});var Hl,Kl,vx,y6,_xe,Exe,Cxe,bx,tot,rot,not,lL,tS=E(()=>{"use strict";Hl={EXECUTION_DEFAULT_MS:3e4,EXECUTION_FAST_MS:5e3,EXECUTION_COMPLEX_MS:6e4,EXECUTION_BATCH_MS:12e4},Kl={TEST_MS:5e3,CONNECTION_MS:1e4,AUTH_MS:3e3,MODEL_CHECK_MS:8e3,CAPABILITY_DISCOVERY_MS:15e3},vx={INITIALIZATION_MS:3e3,TOOL_DISCOVERY_MS:1e4,CLIENT_CONNECTION_MS:5e3,EXTERNAL_SERVER_STARTUP_MS:15e3,SHUTDOWN_MS:5e3},y6={RESET_MS:6e4,HALF_OPEN_MS:3e4,MONITORING_WINDOW_MS:3e5},_xe={REQUEST_MS:15e3,QUICK_CHECK_MS:2e3,TRANSFER_PER_MB_MS:1e3,DNS_RESOLUTION_MS:3e3,WEBSOCKET_CONNECTION_MS:1e4},Exe={GRACEFUL_SHUTDOWN_MS:3e4,CLEANUP_OPERATION_MS:5e3,CACHE_FLUSH_MS:3e3,HEALTH_CHECK_INTERVAL_MS:3e4,METRICS_COLLECTION_MS:1e3},Cxe={DEBUG_EXTENDED_MS:3e5,UNIT_TEST_MS:1e4,INTEGRATION_TEST_MS:6e4,MOCK_DELAY_MS:100},bx={TOOL:Hl,PROVIDER:Kl,MCP:vx,CIRCUIT_BREAKER:y6,NETWORK:_xe,SYSTEM:Exe,DEV:Cxe},tot=Hl.EXECUTION_DEFAULT_MS,rot=Kl.TEST_MS,not=vx.INITIALIZATION_MS,lL=y6.RESET_MS});var Qo,zn,Wf,$R,Wl,oot,sot,iot,aot,lot,cot,x6=E(()=>{"use strict";Qo={DEFAULT:3,CRITICAL:5,QUICK:1,NETWORK:4,AUTH:2,DATABASE:3,FILE_IO:2},zn={BASE_MS:1e3,MIN_MS:500,MAX_MS:3e4,QUICK_MS:200,NETWORK_BASE_MS:2e3,AUTH_MS:3e3},Wf={MULTIPLIER:2,CONSERVATIVE_MULTIPLIER:1.5,AGGRESSIVE_MULTIPLIER:3,JITTER_FACTOR:.1,MAX_JITTER_MS:1e3},$R={FAILURE_THRESHOLD:5,SUCCESS_THRESHOLD:3,MIN_CALLS:10,FAILURE_RATE_THRESHOLD:.5,MONITORING_WINDOW_MS:3e5,HALF_OPEN_MAX_CALLS:3},Wl={OPENAI:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},ANTHROPIC:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.CONSERVATIVE_MULTIPLIER},GOOGLE:{maxAttempts:Qo.NETWORK,baseDelay:zn.NETWORK_BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},BEDROCK:{maxAttempts:Qo.CRITICAL,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.CONSERVATIVE_MULTIPLIER},AZURE:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},OLLAMA:{maxAttempts:Qo.QUICK,baseDelay:zn.QUICK_MS,maxDelay:5e3,multiplier:Wf.CONSERVATIVE_MULTIPLIER}},oot={TOOL_EXECUTION:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,circuitBreaker:!0},MCP_OPERATION:{maxAttempts:Qo.QUICK,baseDelay:zn.QUICK_MS,circuitBreaker:!1},NETWORK_REQUEST:{maxAttempts:Qo.NETWORK,baseDelay:zn.NETWORK_BASE_MS,circuitBreaker:!0},DATABASE_OPERATION:{maxAttempts:Qo.DATABASE,baseDelay:zn.BASE_MS,circuitBreaker:!0},AUTHENTICATION:{maxAttempts:Qo.AUTH,baseDelay:zn.AUTH_MS,circuitBreaker:!1}},sot=Qo.DEFAULT,iot=zn.BASE_MS,aot=zn.MAX_MS,lot=Wf.MULTIPLIER,cot=$R.FAILURE_THRESHOLD});var Rxe,v6,Tp,Jf,Xf,kxe,uot,dot,pot,mot,got,fot,md,b6=E(()=>{"use strict";tS();Rxe={NANOSECOND_TO_MS_DIVISOR:1e6,MICROSECOND_TO_MS_DIVISOR:1e3,SECOND_TO_MS_MULTIPLIER:1e3,MINUTE_TO_MS_MULTIPLIER:6e4,HOUR_TO_MS_MULTIPLIER:36e5},v6={SUCCESS_RATE_THRESHOLD:.8,HIGH_SUCCESS_RATE:.95,LOW_SUCCESS_RATE_WARNING:.6,CRITICAL_SUCCESS_RATE:.5,TOOL_EXECUTION_WARNING_MS:1e4,LARGE_TOOL_COLLECTION:100,CIRCUIT_BREAKER_FAILURES:5,CIRCUIT_BREAKER_RESET_MS:bx.CIRCUIT_BREAKER.RESET_MS},Tp={WARNING_MB:100,CRITICAL_MB:200,TOOL_WARNING_MB:20,TOOL_CRITICAL_MB:50,LEAK_DETECTION_MB:300,MAX_ALLOWED_MB:500,GROWTH_RATE_WARNING_MB_PER_MIN:10,MODERATE_USAGE_MB:30,LOW_USAGE_MB:10,OPERATION_MODERATE_MB:30,OPERATION_SMALL_MB:10,OPERATION_LARGE_MB:50},Jf={DEFAULT:5,HIGH_LOAD:10,LOW_RESOURCE:2,PROVIDER:3,TOOL_EXECUTION:4,MCP_SERVER:8,NETWORK_REQUEST:6,MAX_STREAMS:3,DATABASE:5},Xf={SMALL_BYTES:1024,STANDARD_BYTES:4096,LARGE_BYTES:8192,XLARGE_BYTES:16384,STREAM_BYTES:2048,NETWORK_BYTES:4096,FILE_IO_BYTES:8192,MAX_BYTES:32768},kxe={SMALL_SIZE:100,DEFAULT_SIZE:1e3,LARGE_SIZE:1e4,PROVIDER_CACHE_SIZE:500,TOOL_REGISTRY_SIZE:200,MODEL_CONFIG_SIZE:50,SESSION_CACHE_SIZE:1e3,MAX_SIZE:5e4,DEFAULT_TTL_MS:3e5,SHORT_TTL_MS:6e4,LONG_TTL_MS:36e5},uot=Tp.WARNING_MB,dot=Jf.DEFAULT,pot=Jf.HIGH_LOAD,mot=Xf.SMALL_BYTES,got=Xf.LARGE_BYTES,fot=kxe.DEFAULT_SIZE,md=Rxe.NANOSECOND_TO_MS_DIVISOR});var nS,cL,Tl,rS,oS,Lfn,Ufn,Ffn,$fn,Bfn,zfn,jfn,Axe=E(()=>{"use strict";nS={CONSERVATIVE:4096,STANDARD:8192,HIGH_CAPACITY:16384,LARGE_CONTEXT:1e5,ULTRA_LARGE_CONTEXT:2e5,MAXIMUM_CONTEXT:2097152},cL={EVALUATION:500,ANALYSIS:800,SUMMARY:1e3,DOCUMENTATION:12e3,CODE_GENERATION:4e3,CREATIVE_WRITING:6e3,TRANSLATION:2e3,CONVERSATION:2048,TECHNICAL_EXPLANATION:3e3,RESEARCH:8e3},Tl={ANTHROPIC:{"claude-sonnet-4-5-20250929":8192,"claude-opus-4-5-20251101":8192,"claude-haiku-4-5-20251001":8192,"claude-3-5-sonnet-20241022":4096,"claude-3-5-haiku-20241022":4096,"claude-3-haiku-20240307":4096,"claude-3-opus-20240229":4096,"claude-3-sonnet-20240229":4096,default:4096},OPENAI:{"gpt-5.4":128e3,"gpt-5.4-mini":128e3,"gpt-5.4-nano":128e3,"gpt-5.4-pro":128e3,"gpt-4o":16384,"gpt-4o-mini":16384,"gpt-3.5-turbo":4096,"gpt-4":8192,"gpt-4-turbo":4096,"o1-preview":8192,"o1-mini":8192,default:8192},GOOGLE_AI:{"gemini-3.1-pro-preview":8192,"gemini-3.1-flash-lite-preview":65536,"gemini-3.1-flash-image-preview":8192,"gemini-3.1-pro-preview-customtools":8192,"gemini-3-flash-preview":65536,"gemini-3-pro-image-preview":8192,"gemini-3-pro-preview":8192,"gemini-2.5-pro":8192,"gemini-2.5-flash":8192,"gemini-2.5-flash-lite":8192,"gemini-2.0-flash-001":8192,"gemini-2.0-flash-lite":8192,"gemini-1.5-pro":8192,"gemini-1.5-flash":8192,"gemini-1.5-flash-lite":8192,default:4096},VERTEX:{"gemini-3.1-pro-preview":8192,"gemini-3.1-flash-lite-preview":65536,"gemini-3.1-flash-image-preview":8192,"gemini-3.1-pro-preview-customtools":8192,"gemini-3-flash-preview":65536,"gemini-3-pro-image-preview":8192,"gemini-3-pro-preview":8192,"gemini-2.5-pro":8192,"gemini-2.5-flash":8192,"gemini-2.5-flash-lite":8192,"gemini-2.0-flash-001":8192,"gemini-2.0-flash-lite":8192,"gemini-1.5-pro":8192,"gemini-1.5-flash":8192,"claude-sonnet-4-5@20250929":8192,"claude-opus-4-5@20251124":8192,"claude-haiku-4-5@20251001":8192,"claude-sonnet-4@20250514":4096,"claude-opus-4@20250514":4096,"claude-3-5-sonnet-20241022":4096,"claude-3-5-haiku-20241022":4096,"claude-3-sonnet-20240229":4096,"claude-3-haiku-20240307":4096,"claude-3-opus-20240229":4096,default:4096},BEDROCK:{"anthropic.claude-sonnet-4-5-20250929-v1:0":8192,"anthropic.claude-opus-4-5-20251101-v1:0":8192,"anthropic.claude-haiku-4-5-20251001-v1:0":8192,"us.anthropic.claude-3-7-sonnet-20250219-v1:0":4096,"anthropic.claude-3-5-sonnet-20241022-v1:0":4096,"anthropic.claude-3-5-haiku-20241022-v1:0":4096,"anthropic.claude-3-sonnet-20240229-v1:0":4096,"anthropic.claude-3-haiku-20240307-v1:0":4096,"anthropic.claude-3-opus-20240229-v1:0":4096,default:4096},AZURE:{"gpt-4o":16384,"gpt-4o-mini":16384,"gpt-4":8192,"gpt-35-turbo":4096,default:8192},OLLAMA:{"llama3.2:latest":8192,llama2:4096,codellama:8192,mistral:4096,default:8192},HUGGINGFACE:{default:2048},MISTRAL:{"mistral-small-latest":4096,"mistral-medium-latest":4096,"mistral-large-latest":8192,default:4096},LITELLM:{default:4096},DEFAULT:4096},rS={CHARS_PER_TOKEN:4,WORDS_PER_TOKEN:.75,CODE_CHARS_PER_TOKEN:3,SAFETY_MARGIN:.8},oS={getProviderTokenLimit:(r,e)=>{let t=r.toLowerCase().replace(/[-_]/g,""),n;switch(t){case"anthropic":n=Tl.ANTHROPIC;break;case"openai":n=Tl.OPENAI;break;case"googleai":n=Tl.GOOGLE_AI;break;case"vertex":n=Tl.VERTEX;break;case"bedrock":n=Tl.BEDROCK;break;case"azure":n=Tl.AZURE;break;case"ollama":n=Tl.OLLAMA;break;case"huggingface":n=Tl.HUGGINGFACE;break;case"mistral":n=Tl.MISTRAL;break;case"litellm":n=Tl.LITELLM;break;default:return Tl.DEFAULT}return e&&n[e]?n[e]:n.default||Tl.DEFAULT},getUseCaseTokenLimit:r=>cL[r]||nS.STANDARD,estimateTokenCount:(r,e=!1)=>{let t=e?rS.CODE_CHARS_PER_TOKEN:rS.CHARS_PER_TOKEN,n=Math.ceil(r.length/t);return Math.ceil(n/rS.SAFETY_MARGIN)},exceedsTokenLimit:(r,e,t=!1)=>oS.estimateTokenCount(r,t)>e,getTokenLimitCategory:r=>r<=nS.CONSERVATIVE?"CONSERVATIVE":r<=nS.STANDARD?"STANDARD":r<=nS.HIGH_CAPACITY?"HIGH_CAPACITY":r<=nS.LARGE_CONTEXT?"LARGE_CONTEXT":"ULTRA_LARGE_CONTEXT",truncateToTokenLimit:(r,e,t=!1)=>{let n=t?rS.CODE_CHARS_PER_TOKEN:rS.CHARS_PER_TOKEN,o=Math.floor(e*n*rS.SAFETY_MARGIN);return r.length<=o?r:r.substring(0,o-3)+"..."}},Lfn=nS.STANDARD,Ufn=cL.EVALUATION,Ffn=cL.ANALYSIS,$fn=cL.DOCUMENTATION,Bfn=Tl.ANTHROPIC.default,zfn=Tl.OPENAI.default,jfn=Tl.GOOGLE_AI.default});var lt,Sp=E(()=>{"use strict";lt={GENERATION_FAILED:"VIDEO_GENERATION_FAILED",PROVIDER_NOT_CONFIGURED:"VIDEO_PROVIDER_NOT_CONFIGURED",PROVIDER_NOT_SUPPORTED:"VIDEO_PROVIDER_NOT_SUPPORTED",TRANSITION_NOT_SUPPORTED:"VIDEO_TRANSITION_NOT_SUPPORTED",POLL_TIMEOUT:"VIDEO_POLL_TIMEOUT",INVALID_INPUT:"VIDEO_INVALID_INPUT",DIRECTOR_SEGMENT_MISMATCH:"DIRECTOR_SEGMENT_MISMATCH",DIRECTOR_SEGMENT_LIMIT_EXCEEDED:"DIRECTOR_SEGMENT_LIMIT_EXCEEDED",DIRECTOR_INVALID_TRANSITION_DURATION:"DIRECTOR_INVALID_TRANSITION_DURATION",DIRECTOR_CLIP_FAILED:"DIRECTOR_CLIP_FAILED",DIRECTOR_FRAME_EXTRACTION_FAILED:"DIRECTOR_FRAME_EXTRACTION_FAILED",DIRECTOR_TRANSITION_FAILED:"DIRECTOR_TRANSITION_FAILED",DIRECTOR_MERGE_FAILED:"DIRECTOR_MERGE_FAILED",DIRECTOR_PIPELINE_TIMEOUT:"DIRECTOR_PIPELINE_TIMEOUT"}});var ehn,ohn,shn,ihn,Ixe=E(()=>{"use strict";tS();x6();b6();tS();x6();b6();ehn={QUICK:Kl.TEST_MS,STANDARD:Hl.EXECUTION_DEFAULT_MS,EXTENDED:Hl.EXECUTION_COMPLEX_MS,CRITICAL:Hl.EXECUTION_BATCH_MS},ohn={OPENAI:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.OPENAI.maxAttempts,retryDelay:Wl.OPENAI.baseDelay},ANTHROPIC:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.ANTHROPIC.maxAttempts,retryDelay:Wl.ANTHROPIC.baseDelay},GOOGLE_AI:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.GOOGLE.maxAttempts,retryDelay:Wl.GOOGLE.baseDelay},BEDROCK:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.BEDROCK.maxAttempts,retryDelay:Wl.BEDROCK.baseDelay},AZURE:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.AZURE.maxAttempts,retryDelay:Wl.AZURE.baseDelay},OLLAMA:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.OLLAMA.maxAttempts,retryDelay:Wl.OLLAMA.baseDelay}},shn={INITIALIZATION:{timeout:vx.INITIALIZATION_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},TOOL_DISCOVERY:{timeout:vx.TOOL_DISCOVERY_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},TOOL_EXECUTION:{timeout:vx.TOOL_DISCOVERY_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},HEALTH_CHECK:{timeout:Kl.TEST_MS,maxRetries:Qo.QUICK,retryDelay:zn.QUICK_MS}},ihn={LOW_LOAD:{concurrency:Jf.LOW_RESOURCE,memoryThreshold:Tp.WARNING_MB,bufferSize:Xf.SMALL_BYTES},NORMAL_LOAD:{concurrency:Jf.DEFAULT,memoryThreshold:Tp.WARNING_MB,bufferSize:Xf.STANDARD_BYTES},HIGH_LOAD:{concurrency:Jf.HIGH_LOAD,memoryThreshold:Tp.CRITICAL_MB,bufferSize:Xf.LARGE_BYTES},ENTERPRISE:{concurrency:Jf.HIGH_LOAD,memoryThreshold:Tp.LEAK_DETECTION_MB,bufferSize:Xf.XLARGE_BYTES}}});var Pxe,Mxe=E(()=>{"use strict";Pxe={providers:{googleAi:{model:"gemini-2.5-pro",available:!0,features:["streaming","functionCalling"]}},performance:{cache:{enabled:!0,ttlMs:3e5,strategy:"memory",maxSize:1e3},fallback:{enabled:!0,maxAttempts:3,delayMs:1e3,circuitBreaker:!0},timeoutMs:3e4,maxConcurrency:5},analytics:{enabled:!0,trackTokens:!0,trackCosts:!0,trackPerformance:!0,retention:{days:30,maxEntries:1e4}},tools:{disableBuiltinTools:!1,allowCustomTools:!0,maxToolsPerProvider:100,enableMCPTools:!0},configVersion:"3.0.1"}});var T6,Oxe,Nxe=E(()=>{"use strict";T6=class r{static DEFAULT_FRAMEWORK_FIELDS={defaultFields:["sessionId","userId","apiToken","authToken","apiEndpoint","serviceUrl","endpoint","environment","region","enabledFeatures","platformType","platformUrl","platformId","enableDemoMode"],additionalFields:[],includeFields:[]};static frameworkFieldsConfig=r.DEFAULT_FRAMEWORK_FIELDS;static isFrameworkFieldsInitialized=!1;static configureFrameworkFields(e){r.frameworkFieldsConfig={...r.DEFAULT_FRAMEWORK_FIELDS,...e},r.isFrameworkFieldsInitialized=!0}static getFrameworkFieldsConfig(){return r.isFrameworkFieldsInitialized||(r.loadFrameworkFieldsFromEnv(),r.isFrameworkFieldsInitialized=!0),{...r.frameworkFieldsConfig}}static resetFrameworkFieldsConfig(){r.frameworkFieldsConfig={...r.DEFAULT_FRAMEWORK_FIELDS}}static loadFrameworkFieldsFromEnv(){let e=process.env.NEUROLINK_CONTEXT_EXCLUDE_FIELDS,t=process.env.NEUROLINK_CONTEXT_INCLUDE_FIELDS,n=process.env.NEUROLINK_CONTEXT_OVERRIDE_FIELDS,o={};e&&(o.additionalFields=e.split(",").map(i=>i.trim()).filter(Boolean)),t&&(o.includeFields=t.split(",").map(i=>i.trim()).filter(Boolean)),n&&(o.overrideFields=n.split(",").map(i=>i.trim()).filter(Boolean)),(o.additionalFields||o.includeFields||o.overrideFields)&&r.configureFrameworkFields(o),r.isFrameworkFieldsInitialized=!0}static addFrameworkFieldsToExclude(e){let t=r.frameworkFieldsConfig;r.configureFrameworkFields({additionalFields:[...t.additionalFields||[],...e]})}static addFrameworkFieldsToInclude(e){let t=r.frameworkFieldsConfig;r.configureFrameworkFields({includeFields:[...t.includeFields||[],...e]})}static DEFAULT_CONFIG={mode:"metadata_only",includeInPrompt:!1,includeInAnalytics:!0,includeInEvaluation:!0,maxLength:1e3};static validateContext(e){if(!e||typeof e!="object")return null;try{let t=JSON.stringify(e),n=JSON.parse(t);return typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}static processContext(e,t={}){let n=Date.now(),o={...r.DEFAULT_CONFIG,...t},s=null,i="default",a=!1;o.includeInPrompt&&o.mode!=="metadata_only"&&(s=r.formatContextForPrompt(e,o),o.maxLength&&s.length>o.maxLength&&(s=s.substring(0,o.maxLength)+"...",a=!0));let l=Date.now()-n;return{originalContext:e,processedContext:s,config:o,metadata:{truncated:a,processingTime:l,template:i,mode:o.mode}}}static formatContextForPrompt(e,t){switch(t.mode){case"prompt_prefix":return r.formatAsPrefix(e);case"prompt_suffix":return r.formatAsSuffix(e);case"system_prompt":return r.formatForSystemPrompt(e);case"structured_prompt":return r.formatStructured(e);default:return""}}static formatAsPrefix(e){let t=[];return e.userId&&t.push(`User: ${e.userId}`),e.userRole&&t.push(`Role: ${e.userRole}`),e.sessionId&&t.push(`Session: ${e.sessionId}`),t.length===0?"":`Context: ${t.join(", ")}
18
+ ]`;continue}o+=n[l],n[l]==="\\"?s=!0:i&&n[l]==="]"?i=!1:!i&&n[l]==="["&&(i=!0)}try{new RegExp(o)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),r.source}return o}var Z3,dd,Hnt,rL=E(()=>{Gf();dd={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Z3===void 0&&(Z3=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Z3),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};Hnt=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789")});function nL(r,e){if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&r.keyType?._def.typeName===be.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((n,o)=>({...n,[o]:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",o]})??yo(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let t={type:"object",additionalProperties:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===be.ZodString&&r.keyType._def.checks?.length){let{type:n,...o}=tL(r.keyType._def,e);return{...t,propertyNames:o}}else{if(r.keyType?._def.typeName===be.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};if(r.keyType?._def.typeName===be.ZodBranded&&r.keyType._def.type._def.typeName===be.ZodString&&r.keyType._def.type._def.checks?.length){let{type:n,...o}=QD(r.keyType._def,e);return{...t,propertyNames:o}}}return t}var oL=E(()=>{ud();Ks();rL();eL();Su()});function Kye(r,e){if(e.mapStrategy==="record")return nL(r,e);let t=Yt(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||yo(e),n=Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||yo(e);return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}var e6=E(()=>{Ks();oL();Su()});function Wye(r){let e=r.values,n=Object.keys(r.values).filter(s=>typeof e[e[s]]!="number").map(s=>e[s]),o=Array.from(new Set(n.map(s=>typeof s)));return{type:o.length===1?o[0]==="string"?"string":"number":["string","number"],enum:n}}var t6=E(()=>{});function Jye(r){return r.target==="openAi"?void 0:{not:yo({...r,currentPath:[...r.currentPath,"not"]})}}var r6=E(()=>{Su()});function Xye(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var n6=E(()=>{});function Zye(r,e){if(e.target==="openApi3")return Yye(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in FR&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((o,s)=>{let i=FR[s._def.typeName];return i&&!o.includes(i)?[...o,i]:o},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((o,s)=>{let i=typeof s._def.value;switch(i){case"string":case"number":case"boolean":return[...o,i];case"bigint":return[...o,"integer"];case"object":if(s._def.value===null)return[...o,"null"];default:return o}},[]);if(n.length===t.length){let o=n.filter((s,i,a)=>a.indexOf(s)===i);return{type:o.length>1?o:o[0],enum:t.reduce((s,i)=>s.includes(i._def.value)?s:[...s,i._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,o)=>[...n,...o._def.values.filter(s=>!n.includes(s))],[])};return Yye(r,e)}var FR,Yye,sL=E(()=>{Ks();FR={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};Yye=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,o)=>Yt(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${o}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0}});function Qye(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"?{type:FR[r.innerType._def.typeName],nullable:!0}:{type:[FR[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}var o6=E(()=>{Ks();sL()});function exe(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",I3(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?zr(t,"minimum",n.value,n.message,e):zr(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),zr(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?zr(t,"maximum",n.value,n.message,e):zr(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),zr(t,"maximum",n.value,n.message,e));break;case"multipleOf":zr(t,"multipleOf",n.value,n.message,e);break}return t}var s6=E(()=>{Gf()});function txe(r,e){let t=e.target==="openAi",n={type:"object",properties:{}},o=[],s=r.shape();for(let a in s){let l=s[a];if(l===void 0||l._def===void 0)continue;let c=Jnt(l);c&&t&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),c=!1);let u=Yt(l._def,{...e,currentPath:[...e.currentPath,"properties",a],propertyPath:[...e.currentPath,"properties",a]});u!==void 0&&(n.properties[a]=u,c||o.push(a))}o.length&&(n.required=o);let i=Wnt(r,e);return i!==void 0&&(n.additionalProperties=i),n}function Wnt(r,e){if(r.catchall._def.typeName!=="ZodNever")return Yt(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(r.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function Jnt(r){try{return r.isOptional()}catch{return!0}}var i6=E(()=>{Ks()});var rxe,a6=E(()=>{Ks();Su();rxe=(r,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return Yt(r.innerType._def,e);let t=Yt(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:yo(e)},t]}:yo(e)}});var nxe,l6=E(()=>{Ks();nxe=(r,e)=>{if(e.pipeStrategy==="input")return Yt(r.in._def,e);if(e.pipeStrategy==="output")return Yt(r.out._def,e);let t=Yt(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=Yt(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(o=>o!==void 0)}}});function oxe(r,e){return Yt(r.type._def,e)}var c6=E(()=>{Ks()});function sxe(r,e){let n={type:"array",uniqueItems:!0,items:Yt(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&zr(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&zr(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}var u6=E(()=>{Gf();Ks()});function ixe(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>Yt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:Yt(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>Yt(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}var d6=E(()=>{Ks()});function axe(r){return{not:yo(r)}}var p6=E(()=>{Su()});function lxe(r){return yo(r)}var m6=E(()=>{Su()});var cxe,g6=E(()=>{Ks();cxe=(r,e)=>Yt(r.innerType._def,e)});var uxe,f6=E(()=>{ud();Su();z3();j3();G3();eL();q3();H3();K3();W3();J3();X3();Y3();e6();t6();r6();n6();o6();s6();i6();a6();l6();c6();oL();u6();rL();d6();p6();sL();m6();g6();uxe=(r,e,t)=>{switch(e){case be.ZodString:return tL(r,t);case be.ZodNumber:return exe(r,t);case be.ZodObject:return txe(r,t);case be.ZodBigInt:return Fye(r,t);case be.ZodBoolean:return $ye();case be.ZodDate:return V3(r,t);case be.ZodUndefined:return axe(t);case be.ZodNull:return Xye(t);case be.ZodArray:return Uye(r,t);case be.ZodUnion:case be.ZodDiscriminatedUnion:return Zye(r,t);case be.ZodIntersection:return qye(r,t);case be.ZodTuple:return ixe(r,t);case be.ZodRecord:return nL(r,t);case be.ZodLiteral:return Vye(r,t);case be.ZodEnum:return Gye(r);case be.ZodNativeEnum:return Wye(r);case be.ZodNullable:return Qye(r,t);case be.ZodOptional:return rxe(r,t);case be.ZodMap:return Kye(r,t);case be.ZodSet:return sxe(r,t);case be.ZodLazy:return()=>r.getter()._def;case be.ZodPromise:return oxe(r,t);case be.ZodNaN:case be.ZodNever:return Jye(t);case be.ZodEffects:return jye(r,t);case be.ZodAny:return yo(t);case be.ZodUnknown:return lxe(t);case be.ZodDefault:return zye(r,t);case be.ZodBranded:return QD(r,t);case be.ZodReadonly:return cxe(r,t);case be.ZodCatch:return Bye(r,t);case be.ZodPipeline:return nxe(r,t);case be.ZodFunction:case be.ZodVoid:case be.ZodSymbol:return;default:return(n=>{})(e)}}});function Yt(r,e,t=!1){let n=e.seen.get(r);if(e.override){let a=e.override?.(r,e,n,t);if(a!==Cye)return a}if(n&&!t){let a=Xnt(n,e);if(a!==void 0)return a}let o={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,o);let s=uxe(r,r.typeName,e),i=typeof s=="function"?Yt(s(),e):s;if(i&&Ynt(r,e,i),e.postProcess){let a=e.postProcess(i,r,e);return o.jsonSchema=i,a}return o.jsonSchema=i,i}var Xnt,Ynt,Ks=E(()=>{VD();f6();KD();Su();Xnt=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"relative":return{$ref:HD(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((t,n)=>e.currentPath[n]===t)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),yo(e)):e.$refStrategy==="seen"?yo(e):void 0}},Ynt=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t)});var dxe=E(()=>{});var iL,h6=E(()=>{Ks();A3();Su();iL=(r,e)=>{let t=kye(e),n=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((l,[c,u])=>({...l,[c]:Yt(u._def,{...t,currentPath:[...t.basePath,t.definitionPath,c]},!0)??yo(t)}),{}):void 0,o=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,s=Yt(r._def,o===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,o]},!1)??yo(t),i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(s.title=i),t.flags.hasReferencedOpenAiAnyType&&(n||(n={}),n[t.openAiAnyTypeName]||(n[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:t.$refStrategy==="relative"?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let a=o===void 0?n?{...s,[t.definitionPath]:n}:s:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,o].join("/"),[t.definitionPath]:{...n,[o]:s}};return t.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":(t.target==="jsonSchema2019-09"||t.target==="openAi")&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),t.target==="openAi"&&("anyOf"in a||"oneOf"in a||"allOf"in a||"type"in a&&Array.isArray(a.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),a}});var aL=E(()=>{VD();A3();Gf();KD();Ks();dxe();Su();z3();j3();G3();eL();q3();H3();K3();W3();J3();X3();Y3();e6();t6();r6();n6();o6();s6();i6();a6();l6();c6();g6();oL();u6();rL();d6();p6();sL();m6();f6();h6();h6()});function Znt(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Qnt(r){return Znt(r)&&Object.values(r).every(e=>e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||Array.isArray(e)||Qnt(e))}function Sfn(r){return Array.isArray(r)&&r.every(e=>typeof e=="string")}function wfn(r){return typeof r=="function"}var pxe=E(()=>{"use strict";aL()});var mxe=E(()=>{"use strict"});var gxe=E(()=>{"use strict"});var fxe=E(()=>{"use strict"});var Kf,hxe=E(()=>{"use strict";Kf={programPath:"program.md",resultsPath:"results.tsv",statePath:".autoresearch/state.json",logPath:"run.log",timeoutMs:6e5,branchPrefix:"autoresearch/",thinkingLevel:"medium"}});var el,yxe=E(()=>{"use strict";el=class extends Error{breakerName;retryAfter;retryAfterMs;breakerState;failureCount;constructor(e){let t=e.retryAfter.toISOString();super(`Circuit breaker '${e.breakerName}' is ${e.breakerState}. Tool temporarily unavailable after ${e.failureCount} failures. Retry after: ${t} (${Math.ceil(e.retryAfterMs/1e3)}s).`),this.name="CircuitBreakerOpenError",this.breakerName=e.breakerName,this.retryAfter=t,this.retryAfterMs=e.retryAfterMs,this.breakerState=e.breakerState,this.failureCount=e.failureCount}}});function Rfn(r){return typeof r=="object"&&r!==null&&"content"in r&&typeof r.content=="string"}function kfn(r){return typeof r=="object"&&r!==null&&"success"in r&&typeof r.success=="boolean"}var xxe=E(()=>{"use strict"});var vxe=E(()=>{"use strict"});var bxe=E(()=>{"use strict"});function Txe(r){return r instanceof Error}function Sxe(r){return typeof r=="object"&&r!==null&&"message"in r&&typeof r.message=="string"}function eot(r){return Txe(r)||Sxe(r)?r.message:typeof r=="string"?r:String(r)}function Ifn(r){return Txe(r)?{message:r.message,stack:r.stack,code:r.code}:Sxe(r)?r:{message:eot(r)}}var wxe=E(()=>{"use strict"});var Hl,Kl,vx,y6,_xe,Exe,Cxe,bx,tot,rot,not,lL,tS=E(()=>{"use strict";Hl={EXECUTION_DEFAULT_MS:3e4,EXECUTION_FAST_MS:5e3,EXECUTION_COMPLEX_MS:6e4,EXECUTION_BATCH_MS:12e4},Kl={TEST_MS:5e3,CONNECTION_MS:1e4,AUTH_MS:3e3,MODEL_CHECK_MS:8e3,CAPABILITY_DISCOVERY_MS:15e3},vx={INITIALIZATION_MS:3e3,TOOL_DISCOVERY_MS:1e4,CLIENT_CONNECTION_MS:5e3,EXTERNAL_SERVER_STARTUP_MS:15e3,SHUTDOWN_MS:5e3},y6={RESET_MS:6e4,HALF_OPEN_MS:3e4,MONITORING_WINDOW_MS:3e5},_xe={REQUEST_MS:15e3,QUICK_CHECK_MS:2e3,TRANSFER_PER_MB_MS:1e3,DNS_RESOLUTION_MS:3e3,WEBSOCKET_CONNECTION_MS:1e4},Exe={GRACEFUL_SHUTDOWN_MS:3e4,CLEANUP_OPERATION_MS:5e3,CACHE_FLUSH_MS:3e3,HEALTH_CHECK_INTERVAL_MS:3e4,METRICS_COLLECTION_MS:1e3},Cxe={DEBUG_EXTENDED_MS:3e5,UNIT_TEST_MS:1e4,INTEGRATION_TEST_MS:6e4,MOCK_DELAY_MS:100},bx={TOOL:Hl,PROVIDER:Kl,MCP:vx,CIRCUIT_BREAKER:y6,NETWORK:_xe,SYSTEM:Exe,DEV:Cxe},tot=Hl.EXECUTION_DEFAULT_MS,rot=Kl.TEST_MS,not=vx.INITIALIZATION_MS,lL=y6.RESET_MS});var Qo,zn,Wf,$R,Wl,oot,sot,iot,aot,lot,cot,x6=E(()=>{"use strict";Qo={DEFAULT:3,CRITICAL:5,QUICK:1,NETWORK:4,AUTH:2,DATABASE:3,FILE_IO:2},zn={BASE_MS:1e3,MIN_MS:500,MAX_MS:3e4,QUICK_MS:200,NETWORK_BASE_MS:2e3,AUTH_MS:3e3},Wf={MULTIPLIER:2,CONSERVATIVE_MULTIPLIER:1.5,AGGRESSIVE_MULTIPLIER:3,JITTER_FACTOR:.1,MAX_JITTER_MS:1e3},$R={FAILURE_THRESHOLD:5,SUCCESS_THRESHOLD:3,MIN_CALLS:10,FAILURE_RATE_THRESHOLD:.5,MONITORING_WINDOW_MS:3e5,HALF_OPEN_MAX_CALLS:3},Wl={OPENAI:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},ANTHROPIC:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.CONSERVATIVE_MULTIPLIER},GOOGLE:{maxAttempts:Qo.NETWORK,baseDelay:zn.NETWORK_BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},BEDROCK:{maxAttempts:Qo.CRITICAL,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.CONSERVATIVE_MULTIPLIER},AZURE:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,maxDelay:zn.MAX_MS,multiplier:Wf.MULTIPLIER},OLLAMA:{maxAttempts:Qo.QUICK,baseDelay:zn.QUICK_MS,maxDelay:5e3,multiplier:Wf.CONSERVATIVE_MULTIPLIER}},oot={TOOL_EXECUTION:{maxAttempts:Qo.DEFAULT,baseDelay:zn.BASE_MS,circuitBreaker:!0},MCP_OPERATION:{maxAttempts:Qo.QUICK,baseDelay:zn.QUICK_MS,circuitBreaker:!1},NETWORK_REQUEST:{maxAttempts:Qo.NETWORK,baseDelay:zn.NETWORK_BASE_MS,circuitBreaker:!0},DATABASE_OPERATION:{maxAttempts:Qo.DATABASE,baseDelay:zn.BASE_MS,circuitBreaker:!0},AUTHENTICATION:{maxAttempts:Qo.AUTH,baseDelay:zn.AUTH_MS,circuitBreaker:!1}},sot=Qo.DEFAULT,iot=zn.BASE_MS,aot=zn.MAX_MS,lot=Wf.MULTIPLIER,cot=$R.FAILURE_THRESHOLD});var Rxe,v6,Tp,Jf,Xf,kxe,uot,dot,pot,mot,got,fot,md,b6=E(()=>{"use strict";tS();Rxe={NANOSECOND_TO_MS_DIVISOR:1e6,MICROSECOND_TO_MS_DIVISOR:1e3,SECOND_TO_MS_MULTIPLIER:1e3,MINUTE_TO_MS_MULTIPLIER:6e4,HOUR_TO_MS_MULTIPLIER:36e5},v6={SUCCESS_RATE_THRESHOLD:.8,HIGH_SUCCESS_RATE:.95,LOW_SUCCESS_RATE_WARNING:.6,CRITICAL_SUCCESS_RATE:.5,TOOL_EXECUTION_WARNING_MS:1e4,LARGE_TOOL_COLLECTION:100,CIRCUIT_BREAKER_FAILURES:5,CIRCUIT_BREAKER_RESET_MS:bx.CIRCUIT_BREAKER.RESET_MS},Tp={WARNING_MB:100,CRITICAL_MB:200,TOOL_WARNING_MB:20,TOOL_CRITICAL_MB:50,LEAK_DETECTION_MB:300,MAX_ALLOWED_MB:500,GROWTH_RATE_WARNING_MB_PER_MIN:10,MODERATE_USAGE_MB:30,LOW_USAGE_MB:10,OPERATION_MODERATE_MB:30,OPERATION_SMALL_MB:10,OPERATION_LARGE_MB:50},Jf={DEFAULT:5,HIGH_LOAD:10,LOW_RESOURCE:2,PROVIDER:3,TOOL_EXECUTION:4,MCP_SERVER:8,NETWORK_REQUEST:6,MAX_STREAMS:3,DATABASE:5},Xf={SMALL_BYTES:1024,STANDARD_BYTES:4096,LARGE_BYTES:8192,XLARGE_BYTES:16384,STREAM_BYTES:2048,NETWORK_BYTES:4096,FILE_IO_BYTES:8192,MAX_BYTES:32768},kxe={SMALL_SIZE:100,DEFAULT_SIZE:1e3,LARGE_SIZE:1e4,PROVIDER_CACHE_SIZE:500,TOOL_REGISTRY_SIZE:200,MODEL_CONFIG_SIZE:50,SESSION_CACHE_SIZE:1e3,MAX_SIZE:5e4,DEFAULT_TTL_MS:3e5,SHORT_TTL_MS:6e4,LONG_TTL_MS:36e5},uot=Tp.WARNING_MB,dot=Jf.DEFAULT,pot=Jf.HIGH_LOAD,mot=Xf.SMALL_BYTES,got=Xf.LARGE_BYTES,fot=kxe.DEFAULT_SIZE,md=Rxe.NANOSECOND_TO_MS_DIVISOR});var nS,cL,Tl,rS,oS,Lfn,Ufn,Ffn,$fn,Bfn,zfn,jfn,Axe=E(()=>{"use strict";nS={CONSERVATIVE:4096,STANDARD:8192,HIGH_CAPACITY:16384,LARGE_CONTEXT:1e5,ULTRA_LARGE_CONTEXT:2e5,MAXIMUM_CONTEXT:2097152},cL={EVALUATION:500,ANALYSIS:800,SUMMARY:1e3,DOCUMENTATION:12e3,CODE_GENERATION:4e3,CREATIVE_WRITING:6e3,TRANSLATION:2e3,CONVERSATION:2048,TECHNICAL_EXPLANATION:3e3,RESEARCH:8e3},Tl={ANTHROPIC:{"claude-sonnet-4-5-20250929":8192,"claude-opus-4-5-20251101":8192,"claude-haiku-4-5-20251001":8192,"claude-3-5-sonnet-20241022":4096,"claude-3-5-haiku-20241022":4096,"claude-3-haiku-20240307":4096,"claude-3-opus-20240229":4096,"claude-3-sonnet-20240229":4096,default:4096},OPENAI:{"gpt-5.4":128e3,"gpt-5.4-mini":128e3,"gpt-5.4-nano":128e3,"gpt-5.4-pro":128e3,"gpt-4o":16384,"gpt-4o-mini":16384,"gpt-3.5-turbo":4096,"gpt-4":8192,"gpt-4-turbo":4096,"o1-preview":8192,"o1-mini":8192,default:8192},GOOGLE_AI:{"gemini-3.1-pro-preview":8192,"gemini-3.1-flash-lite-preview":65536,"gemini-3.1-flash-image-preview":8192,"gemini-3.1-pro-preview-customtools":8192,"gemini-3-flash-preview":65536,"gemini-3-pro-image-preview":8192,"gemini-3-pro-preview":8192,"gemini-2.5-pro":8192,"gemini-2.5-flash":8192,"gemini-2.5-flash-lite":8192,"gemini-2.0-flash-001":8192,"gemini-2.0-flash-lite":8192,"gemini-1.5-pro":8192,"gemini-1.5-flash":8192,"gemini-1.5-flash-lite":8192,default:4096},VERTEX:{"gemini-3.1-pro-preview":8192,"gemini-3.1-flash-lite-preview":65536,"gemini-3.1-flash-image-preview":8192,"gemini-3.1-pro-preview-customtools":8192,"gemini-3-flash-preview":65536,"gemini-3-pro-image-preview":8192,"gemini-3-pro-preview":8192,"gemini-2.5-pro":8192,"gemini-2.5-flash":8192,"gemini-2.5-flash-lite":8192,"gemini-2.0-flash-001":8192,"gemini-2.0-flash-lite":8192,"gemini-1.5-pro":8192,"gemini-1.5-flash":8192,"claude-sonnet-4-5@20250929":8192,"claude-opus-4-5@20251101":8192,"claude-haiku-4-5@20251001":8192,"claude-sonnet-4@20250514":4096,"claude-opus-4@20250514":4096,"claude-3-5-sonnet-20241022":4096,"claude-3-5-haiku-20241022":4096,"claude-3-sonnet-20240229":4096,"claude-3-haiku-20240307":4096,"claude-3-opus-20240229":4096,default:4096},BEDROCK:{"anthropic.claude-sonnet-4-5-20250929-v1:0":8192,"anthropic.claude-opus-4-5-20251101-v1:0":8192,"anthropic.claude-haiku-4-5-20251001-v1:0":8192,"us.anthropic.claude-3-7-sonnet-20250219-v1:0":4096,"anthropic.claude-3-5-sonnet-20241022-v1:0":4096,"anthropic.claude-3-5-haiku-20241022-v1:0":4096,"anthropic.claude-3-sonnet-20240229-v1:0":4096,"anthropic.claude-3-haiku-20240307-v1:0":4096,"anthropic.claude-3-opus-20240229-v1:0":4096,default:4096},AZURE:{"gpt-4o":16384,"gpt-4o-mini":16384,"gpt-4":8192,"gpt-35-turbo":4096,default:8192},OLLAMA:{"llama3.2:latest":8192,llama2:4096,codellama:8192,mistral:4096,default:8192},HUGGINGFACE:{default:2048},MISTRAL:{"mistral-small-latest":4096,"mistral-medium-latest":4096,"mistral-large-latest":8192,default:4096},LITELLM:{default:4096},DEFAULT:4096},rS={CHARS_PER_TOKEN:4,WORDS_PER_TOKEN:.75,CODE_CHARS_PER_TOKEN:3,SAFETY_MARGIN:.8},oS={getProviderTokenLimit:(r,e)=>{let t=r.toLowerCase().replace(/[-_]/g,""),n;switch(t){case"anthropic":n=Tl.ANTHROPIC;break;case"openai":n=Tl.OPENAI;break;case"googleai":n=Tl.GOOGLE_AI;break;case"vertex":n=Tl.VERTEX;break;case"bedrock":n=Tl.BEDROCK;break;case"azure":n=Tl.AZURE;break;case"ollama":n=Tl.OLLAMA;break;case"huggingface":n=Tl.HUGGINGFACE;break;case"mistral":n=Tl.MISTRAL;break;case"litellm":n=Tl.LITELLM;break;default:return Tl.DEFAULT}return e&&n[e]?n[e]:n.default||Tl.DEFAULT},getUseCaseTokenLimit:r=>cL[r]||nS.STANDARD,estimateTokenCount:(r,e=!1)=>{let t=e?rS.CODE_CHARS_PER_TOKEN:rS.CHARS_PER_TOKEN,n=Math.ceil(r.length/t);return Math.ceil(n/rS.SAFETY_MARGIN)},exceedsTokenLimit:(r,e,t=!1)=>oS.estimateTokenCount(r,t)>e,getTokenLimitCategory:r=>r<=nS.CONSERVATIVE?"CONSERVATIVE":r<=nS.STANDARD?"STANDARD":r<=nS.HIGH_CAPACITY?"HIGH_CAPACITY":r<=nS.LARGE_CONTEXT?"LARGE_CONTEXT":"ULTRA_LARGE_CONTEXT",truncateToTokenLimit:(r,e,t=!1)=>{let n=t?rS.CODE_CHARS_PER_TOKEN:rS.CHARS_PER_TOKEN,o=Math.floor(e*n*rS.SAFETY_MARGIN);return r.length<=o?r:r.substring(0,o-3)+"..."}},Lfn=nS.STANDARD,Ufn=cL.EVALUATION,Ffn=cL.ANALYSIS,$fn=cL.DOCUMENTATION,Bfn=Tl.ANTHROPIC.default,zfn=Tl.OPENAI.default,jfn=Tl.GOOGLE_AI.default});var lt,Sp=E(()=>{"use strict";lt={GENERATION_FAILED:"VIDEO_GENERATION_FAILED",PROVIDER_NOT_CONFIGURED:"VIDEO_PROVIDER_NOT_CONFIGURED",PROVIDER_NOT_SUPPORTED:"VIDEO_PROVIDER_NOT_SUPPORTED",TRANSITION_NOT_SUPPORTED:"VIDEO_TRANSITION_NOT_SUPPORTED",POLL_TIMEOUT:"VIDEO_POLL_TIMEOUT",INVALID_INPUT:"VIDEO_INVALID_INPUT",DIRECTOR_SEGMENT_MISMATCH:"DIRECTOR_SEGMENT_MISMATCH",DIRECTOR_SEGMENT_LIMIT_EXCEEDED:"DIRECTOR_SEGMENT_LIMIT_EXCEEDED",DIRECTOR_INVALID_TRANSITION_DURATION:"DIRECTOR_INVALID_TRANSITION_DURATION",DIRECTOR_CLIP_FAILED:"DIRECTOR_CLIP_FAILED",DIRECTOR_FRAME_EXTRACTION_FAILED:"DIRECTOR_FRAME_EXTRACTION_FAILED",DIRECTOR_TRANSITION_FAILED:"DIRECTOR_TRANSITION_FAILED",DIRECTOR_MERGE_FAILED:"DIRECTOR_MERGE_FAILED",DIRECTOR_PIPELINE_TIMEOUT:"DIRECTOR_PIPELINE_TIMEOUT"}});var ehn,ohn,shn,ihn,Ixe=E(()=>{"use strict";tS();x6();b6();tS();x6();b6();ehn={QUICK:Kl.TEST_MS,STANDARD:Hl.EXECUTION_DEFAULT_MS,EXTENDED:Hl.EXECUTION_COMPLEX_MS,CRITICAL:Hl.EXECUTION_BATCH_MS},ohn={OPENAI:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.OPENAI.maxAttempts,retryDelay:Wl.OPENAI.baseDelay},ANTHROPIC:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.ANTHROPIC.maxAttempts,retryDelay:Wl.ANTHROPIC.baseDelay},GOOGLE_AI:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.GOOGLE.maxAttempts,retryDelay:Wl.GOOGLE.baseDelay},BEDROCK:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.BEDROCK.maxAttempts,retryDelay:Wl.BEDROCK.baseDelay},AZURE:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.AZURE.maxAttempts,retryDelay:Wl.AZURE.baseDelay},OLLAMA:{timeout:Kl.CONNECTION_MS,maxRetries:Wl.OLLAMA.maxAttempts,retryDelay:Wl.OLLAMA.baseDelay}},shn={INITIALIZATION:{timeout:vx.INITIALIZATION_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},TOOL_DISCOVERY:{timeout:vx.TOOL_DISCOVERY_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},TOOL_EXECUTION:{timeout:vx.TOOL_DISCOVERY_MS,maxRetries:Qo.DEFAULT,retryDelay:zn.BASE_MS},HEALTH_CHECK:{timeout:Kl.TEST_MS,maxRetries:Qo.QUICK,retryDelay:zn.QUICK_MS}},ihn={LOW_LOAD:{concurrency:Jf.LOW_RESOURCE,memoryThreshold:Tp.WARNING_MB,bufferSize:Xf.SMALL_BYTES},NORMAL_LOAD:{concurrency:Jf.DEFAULT,memoryThreshold:Tp.WARNING_MB,bufferSize:Xf.STANDARD_BYTES},HIGH_LOAD:{concurrency:Jf.HIGH_LOAD,memoryThreshold:Tp.CRITICAL_MB,bufferSize:Xf.LARGE_BYTES},ENTERPRISE:{concurrency:Jf.HIGH_LOAD,memoryThreshold:Tp.LEAK_DETECTION_MB,bufferSize:Xf.XLARGE_BYTES}}});var Pxe,Mxe=E(()=>{"use strict";Pxe={providers:{googleAi:{model:"gemini-2.5-pro",available:!0,features:["streaming","functionCalling"]}},performance:{cache:{enabled:!0,ttlMs:3e5,strategy:"memory",maxSize:1e3},fallback:{enabled:!0,maxAttempts:3,delayMs:1e3,circuitBreaker:!0},timeoutMs:3e4,maxConcurrency:5},analytics:{enabled:!0,trackTokens:!0,trackCosts:!0,trackPerformance:!0,retention:{days:30,maxEntries:1e4}},tools:{disableBuiltinTools:!1,allowCustomTools:!0,maxToolsPerProvider:100,enableMCPTools:!0},configVersion:"3.0.1"}});var T6,Oxe,Nxe=E(()=>{"use strict";T6=class r{static DEFAULT_FRAMEWORK_FIELDS={defaultFields:["sessionId","userId","apiToken","authToken","apiEndpoint","serviceUrl","endpoint","environment","region","enabledFeatures","platformType","platformUrl","platformId","enableDemoMode"],additionalFields:[],includeFields:[]};static frameworkFieldsConfig=r.DEFAULT_FRAMEWORK_FIELDS;static isFrameworkFieldsInitialized=!1;static configureFrameworkFields(e){r.frameworkFieldsConfig={...r.DEFAULT_FRAMEWORK_FIELDS,...e},r.isFrameworkFieldsInitialized=!0}static getFrameworkFieldsConfig(){return r.isFrameworkFieldsInitialized||(r.loadFrameworkFieldsFromEnv(),r.isFrameworkFieldsInitialized=!0),{...r.frameworkFieldsConfig}}static resetFrameworkFieldsConfig(){r.frameworkFieldsConfig={...r.DEFAULT_FRAMEWORK_FIELDS}}static loadFrameworkFieldsFromEnv(){let e=process.env.NEUROLINK_CONTEXT_EXCLUDE_FIELDS,t=process.env.NEUROLINK_CONTEXT_INCLUDE_FIELDS,n=process.env.NEUROLINK_CONTEXT_OVERRIDE_FIELDS,o={};e&&(o.additionalFields=e.split(",").map(i=>i.trim()).filter(Boolean)),t&&(o.includeFields=t.split(",").map(i=>i.trim()).filter(Boolean)),n&&(o.overrideFields=n.split(",").map(i=>i.trim()).filter(Boolean)),(o.additionalFields||o.includeFields||o.overrideFields)&&r.configureFrameworkFields(o),r.isFrameworkFieldsInitialized=!0}static addFrameworkFieldsToExclude(e){let t=r.frameworkFieldsConfig;r.configureFrameworkFields({additionalFields:[...t.additionalFields||[],...e]})}static addFrameworkFieldsToInclude(e){let t=r.frameworkFieldsConfig;r.configureFrameworkFields({includeFields:[...t.includeFields||[],...e]})}static DEFAULT_CONFIG={mode:"metadata_only",includeInPrompt:!1,includeInAnalytics:!0,includeInEvaluation:!0,maxLength:1e3};static validateContext(e){if(!e||typeof e!="object")return null;try{let t=JSON.stringify(e),n=JSON.parse(t);return typeof n!="object"||Array.isArray(n)?null:n}catch{return null}}static processContext(e,t={}){let n=Date.now(),o={...r.DEFAULT_CONFIG,...t},s=null,i="default",a=!1;o.includeInPrompt&&o.mode!=="metadata_only"&&(s=r.formatContextForPrompt(e,o),o.maxLength&&s.length>o.maxLength&&(s=s.substring(0,o.maxLength)+"...",a=!0));let l=Date.now()-n;return{originalContext:e,processedContext:s,config:o,metadata:{truncated:a,processingTime:l,template:i,mode:o.mode}}}static formatContextForPrompt(e,t){switch(t.mode){case"prompt_prefix":return r.formatAsPrefix(e);case"prompt_suffix":return r.formatAsSuffix(e);case"system_prompt":return r.formatForSystemPrompt(e);case"structured_prompt":return r.formatStructured(e);default:return""}}static formatAsPrefix(e){let t=[];return e.userId&&t.push(`User: ${e.userId}`),e.userRole&&t.push(`Role: ${e.userRole}`),e.sessionId&&t.push(`Session: ${e.sessionId}`),t.length===0?"":`Context: ${t.join(", ")}
19
19
 
20
20
  `}static formatAsSuffix(e){let t=Object.keys(e).filter(o=>!["userId","sessionId","requestId"].includes(o));if(t.length===0)return"";let n=t.reduce((o,s)=>(o[s]=e[s],o),{});return`
21
21
 
@@ -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
  `}}});var Xc,bB=E(()=>{"use strict";k2();B2();qIe();lPe();yPe();Uw();VPe();xB();JPe();YPe();QPe();B2();eMe();Xc=class{contextBuilder;config;ragasEvaluator;constructor(e={}){this.config=e,this.contextBuilder=new Cw,this.ragasEvaluator=new iv(this.config.evaluationModel,this.config.provider,this.config.threshold,this.config.promptGenerator)}async evaluate(e,t,n,o){let s=this.config.evaluationStrategy||"ragas",i=this.config.customEvaluator;switch(s){case"ragas":{let{evaluationResult:a,evalContext:l}=await this.evaluateWithRAGAS(e,t);return x7(l,a,n,o.offTopicThreshold,o.highSeverityThreshold)}case"custom":{if(i){let{evaluationResult:a,evalContext:l}=await i(e,t);return x7(l,a,n,o.offTopicThreshold,o.highSeverityThreshold)}throw new Error("Custom evaluator function not provided in config.")}default:throw new Error(`Unsupported evaluation strategy: ${s} `)}}async evaluateWithRAGAS(e,t){let n=this.contextBuilder.buildContext(e,t);return{evaluationResult:await this.ragasEvaluator.evaluate(n),evalContext:n}}}});function oQ(r={}){let e={id:"autoEvaluation",name:"Auto Evaluation",description:"Automatically evaluates response quality and retries if needed.",priority:90,defaultEnabled:!1};return g.debug("Auto-Evaluation Middleware Config:",r),{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n,params:o})=>{let s=o,i=await n(),a=i.reasoning,l=i.content.filter(h=>h.type==="text").map(h=>h.text),c=i.content.filter(h=>h.type==="tool-call"),u=i.usage.inputTokens.total??0,p=i.usage.outputTokens.total??0,m={content:l.join(""),finishReason:i.finishReason.unified,reasoning:typeof a=="string"?a:Array.isArray(a)?a.map(h=>typeof h=="string"?h:h?.text??JSON.stringify(h)).join(`
711
- `):void 0,usage:{input:u,output:p,total:u+p},toolCalls:c.length>0?c.map(h=>{let y;try{y=JSON.parse(h.input)}catch(x){g.warn(`Failed to parse tool call args for tool ${h.toolName}:`,x),y={raw:h.input}}return{toolCallId:h.toolCallId,toolName:h.toolName,args:y}}):void 0};if(r.blocking!==!1){let h=await nQ(r,s,m);return{...i,evaluationResult:h}}else return nQ(r,s,m).catch(h=>{g.error("Non-blocking auto-evaluation error:",h)}),i},wrapStream:async({doStream:n,params:o})=>{let s=o,i=await n(),[a,l]=i.stream.tee();return BBt(r,s,l).catch(c=>{g.error("Non-blocking stream auto-evaluation error:",c)}),{...i,stream:a}}},metadata:e}}async function nQ(r,e,t){let n=r.blocking!==!1,o=r.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{let i=await new Xc({threshold:o,provider:r.provider,promptGenerator:r.promptGenerator,evaluationModel:r.evaluationModel}).evaluate(e,t,o,r);r.onEvaluationComplete&&await r.onEvaluationComplete(i)}catch(s){if(g.error("Error during auto-evaluation:",s),n)throw s}}async function BBt(r,e,t){let n="",o,s=[],i=t.getReader();try{for(;;){let{done:c,value:u}=await i.read();if(c)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let p;try{p=JSON.parse(u.input)}catch(m){g.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),p={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:p})}break;case"finish":{let p=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:p,output:m,total:p+m}}break}}}finally{i.releaseLock()}let a={content:n,usage:o,toolCalls:s.length>0?s:void 0};r.blocking&&g.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");let l={...r,blocking:!1};await nQ(l,e,a)}var tMe=E(()=>{"use strict";bB();Y()});function rMe(r){try{Object.defineProperty(r,sQ,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function Tv(r){return r===null||typeof r!="object"?!1:r[sQ]===!0}function $w(r){r===null||typeof r!="object"||r[sQ]!==!0&&rMe(r)}function wB(r,e,t){if(typeof r=="function"&&!Tv(e)){e!==null&&typeof e=="object"&&rMe(e);try{let n=r(t);Promise.resolve(n).catch(()=>{})}catch{}}}var sQ,_B=E(()=>{"use strict";sQ=Symbol.for("neurolink.onErrorFired")});function iQ(r){if(r instanceof Error)return r;if(typeof r=="object"&&r!==null){let e=r,t=typeof e.message=="string"?e.message:String(r);return Object.assign(new Error(t),e)}return new Error(String(r))}function EB(r={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{let o=Date.now();try{let s=await n();if(r.onFinish)try{let i=s.content?.map(l=>l.type==="text"?l.text:"").join("")??"",a=r.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=>{g.warn("[LifecycleMiddleware] onFinish callback error:",l)})}catch(i){g.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){let i=iQ(s);throw wB(r.onError,i,{error:i,duration:Date.now()-o,recoverable:Xk(i)}),i}},wrapStream:async({doStream:n})=>{let o=Date.now();try{let s=await n();if(!r.onChunk&&!r.onFinish&&!r.onError)return s;let i=0,a="",l=new TransformStream({transform(c,u){try{if(c.type==="text-delta"&&(a+=c.textDelta),r.onChunk&&c.type)try{let p=r.onChunk({type:c.type,textDelta:c.type==="text-delta"?c.textDelta:void 0,sequenceNumber:i++});Promise.resolve(p).catch(m=>{g.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(p){g.warn("[LifecycleMiddleware] onChunk callback error:",p)}u.enqueue(c)}catch(p){let m=iQ(p);throw wB(r.onError,m,{error:m,duration:Date.now()-o,recoverable:Xk(m)}),m}},flush(){if(r.onFinish)try{let c=r.onFinish({text:a,duration:Date.now()-o});Promise.resolve(c).catch(u=>{g.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(c){g.warn("[LifecycleMiddleware] onFinish callback error:",c)}}});return{...s,stream:s.stream.pipeThrough(l)}}catch(s){let i=iQ(s);throw wB(r.onError,i,{error:i,duration:Date.now()-o,recoverable:Xk(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 aQ=E(()=>{"use strict";Y();Tt();_B()});var YA,lQ=E(()=>{"use strict";fIe();i7();TIe();tMe();aQ();Y();nv();YA=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new C2,this.initialize(e)}initialize(e){let t={analytics:R2,guardrails:l7,autoEvaluation:oQ,lifecycle:EB};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}}}),g.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){g.debug("Registering custom middleware");for(let n of e.middleware)this.register(n)}for(let n in t)if(!this.registry.has(n)){let o=t[n],s=e.middlewareConfig?.[n]?.config;g.debug(`Registering built-in middleware '${n}'`,s),this.registry.register(o(s))}}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,n={}){let o=Date.now();try{let s={...this.options,...n,middlewareConfig:{...this.options.middlewareConfig,...n.middlewareConfig}},i=this.buildMiddlewareConfig(s);for(let[p,m]of Object.entries(i))if(g.debug(`Configuring middleware '${p}'`,{config:m}),m.enabled&&this.registry.has(p)){let f=this.getCreator(p);f&&this.registry.register(f(m.config),{replace:!0})}let a=this.registry.buildChain(t,i);if(a.length===0)return g.debug("No middleware to apply",{provider:t.provider}),e;g.debug(`Applying ${a.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:a.length});let c=r$({model:e,middleware:a}),u=Date.now()-o;return g.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:a.length,processingTime:u}),c}catch(s){return g.error("Failed to apply middleware",{provider:t.provider,error:s instanceof Error?s.message:String(s)}),e}}getCreator(e){let t={analytics:R2,guardrails:l7,autoEvaluation:oQ,lifecycle:EB};return g.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){let t={},n=this.registry.list();for(let s of n)t[s.metadata.id]={enabled:!1,config:{}};let o=e.preset;if(!o&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(o="default"),o){let s=this.getPresetConfig(o);if(s)for(let[i,a]of Object.entries(s))t[i]&&(t[i]={...t[i],...a})}if(e.middlewareConfig)for(let[s,i]of Object.entries(e.middlewareConfig))t[s]={...t[s],...i};if(e.enabledMiddleware)for(let s of e.enabledMiddleware)t[s]&&(t[s].enabled=!0);if(e.disabledMiddleware)for(let s of e.disabledMiddleware)t[s]&&(t[s].enabled=!1);return t}getPresetConfig(e){let t=this.presets.get(e);return t?t.config:null}createContext(e,t,n={},o){return{provider:e,model:t,options:n,session:o,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){let t=[],n=[];for(let[o,s]of Object.entries(e)){if(!this.registry.has(o)){t.push(`Middleware '${o}' is not registered`);continue}s.enabled!==void 0&&typeof s.enabled!="boolean"&&t.push(`Middleware '${o}' enabled property must be boolean`),s.config&&typeof s.config!="object"&&t.push(`Middleware '${o}' config property must be an object`),s.conditions?.providers&&s.conditions.providers.length===0&&n.push(`Middleware '${o}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:n}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){let n=this.registry.buildChain(e,t),o=this.registry.getAggregatedStats(),s={},i=0,a=0;for(let[l,c]of Object.entries(o))t[l]?.enabled&&(s[l]={applied:!0,executionTime:c.averageExecutionTime},i+=c.averageExecutionTime,a++);return{totalMiddleware:n.length,appliedMiddleware:a,totalExecutionTime:i,results:s}}createModelFactory(e,t={}){return async(n,o={})=>{let s=await e(),i={...t,...o,middlewareConfig:{...t.middlewareConfig,...o.middlewareConfig}};return this.applyMiddleware(s,n,i)}}}});function Bw(){return Object.values(Pd)}function oMe(r){return Pd[r]}function sMe(r,e,t){let n=t.toLowerCase(),o=kh[n]??n,s=Pd[o];return!s||s.provider!==e.toLowerCase()?!0:s.capabilities[r]??!0}function jBt(r,e){let t=(e??"").toLowerCase();if(!t)return!0;let n=kh[t]??t,o=Pd[n];return o&&o.provider===r.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!zBt.some(s=>s.test(n)||s.test(t))}function _a(r,e,t,n){return jBt(r,e)?t:((t.temperature!==void 0||t.topP!==void 0)&&g.debug(`[ModelRegistry] Stripping sampling params for ${r}/${e} at ${n} \u2014 model rejects temperature/topP`,{provider:r,model:e,site:n,hadTemperature:t.temperature!==void 0,hadTopP:t.topP!==void 0}),{})}function iMe(r){return Object.values(Pd).filter(e=>e.provider===r)}function aMe(){let r=new Set;return Object.values(Pd).forEach(e=>{r.add(e.provider)}),Array.from(r)}function lMe(r,e,t){let n=e/1e3*r.pricing.inputCostPer1K,o=t/1e3*r.pricing.outputCostPer1K;return n+o}var Pd,kh,nMe,zBt,lg=E(()=>{"use strict";Lt();Y();Pd={"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:.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:["claude-4.5-opus","claude-opus-latest","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",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","claude-sonnet-latest","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:!1,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-20251124-v1:0":{id:"anthropic.claude-opus-4-5-20251124-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:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},kh={};Object.values(Pd).forEach(r=>{r.aliases.forEach(e=>{kh[e.toLowerCase()]=r.id})});Object.entries(A9).forEach(([r,e])=>{kh[r.toLowerCase().replace(/_/g,"-")]=e});kh.local="llama3.2:latest";nMe={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","pixtral-large","amazon.nova-premier-v1:0"]};zBt=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]});var cMe,GBt,uMe,CB,cQ=E(()=>{cMe={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}}},GBt={startSpan(){return cMe},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(cMe)}},uMe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return GBt}shutdown(){return Promise.resolve()}},CB=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}});var RB,uQ=E(()=>{RB=class{export(){}shutdown(){return Promise.resolve()}}});var kB,dQ=E(()=>{kB=r=>({attributes:r||{},merge(){return this}})});var AB,IB,pQ=E(()=>{AB="service.name",IB="service.version"});var yMe={};de(yMe,{ATTR_SERVICE_NAME:()=>xzt,ATTR_SERVICE_VERSION:()=>vzt,AsyncLocalStorageContextManager:()=>hzt,BasicTracerProvider:()=>ezt,BatchLogRecordProcessor:()=>pzt,BatchSpanProcessor:()=>nzt,DiagConsoleLogger:()=>VBt,DiagLogLevel:()=>HBt,INVALID_SPAN_CONTEXT:()=>YBt,LangfuseSpanProcessor:()=>uzt,LoggerProvider:()=>dzt,MeterProvider:()=>mzt,NodeSDK:()=>QBt,NodeTracerProvider:()=>tzt,OTLPLogExporter:()=>szt,OTLPMetricExporter:()=>izt,OTLPTraceExporter:()=>ozt,PeriodicExportingMetricReader:()=>gzt,SEMRESATTRS_SERVICE_NAME:()=>bzt,SEMRESATTRS_SERVICE_VERSION:()=>Tzt,SeverityNumber:()=>fzt,SimpleSpanProcessor:()=>rzt,SpanKind:()=>hMe,SpanStatusCode:()=>fMe,TraceFlags:()=>qBt,ValueType:()=>KBt,W3CTraceContextPropagator:()=>yzt,baggageEntryMetadataFromString:()=>ZBt,context:()=>pMe,default:()=>Szt,diag:()=>fQ,getNodeAutoInstrumentations:()=>azt,isSpanContextValid:()=>WBt,isValidSpanId:()=>XBt,isValidTraceId:()=>JBt,metrics:()=>gMe,propagation:()=>mMe,registerInstrumentations:()=>lzt,resourceFromAttributes:()=>czt,trace:()=>dMe});var mQ,PB,gQ,MB,dMe,pMe,mMe,gMe,fQ,fMe,hMe,qBt,VBt,HBt,KBt,WBt,JBt,XBt,YBt,ZBt,QBt,ezt,tzt,rzt,nzt,ozt,szt,izt,azt,lzt,czt,uzt,dzt,pzt,mzt,gzt,fzt,hzt,yzt,xzt,vzt,bzt,Tzt,Szt,xMe=E(()=>{mQ={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}}},PB={startSpan(){return mQ},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(mQ)}},gQ={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},MB={getValue(){},setValue(){return MB},deleteValue(){return MB}},dMe={getTracer(){return PB},getTracerProvider(){return{getTracer(){return PB}}},setGlobalTracerProvider(){},getSpan(){return mQ},getActiveSpan(){},setSpan(r){return r},deleteSpan(r){return r},setSpanContext(r){return r},getSpanContext(){}},pMe={active(){return MB},with(r,e){return e()},bind(r,e){return e},setValue(){return MB},getValue(){}},mMe={inject(){},extract(r){return r},setGlobalPropagator(){},getBaggage(){},setBaggage(r){return r},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},gMe={getMeter(){return gQ},getMeterProvider(){return{getMeter(){return gQ}}},setGlobalMeterProvider(){}},fQ={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return fQ}},fMe={UNSET:0,OK:1,ERROR:2},hMe={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},qBt={NONE:0,SAMPLED:1},VBt=class{},HBt={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},KBt={INT:0,DOUBLE:1},WBt=()=>!1,JBt=()=>!1,XBt=()=>!1,YBt={traceId:"0",spanId:"0",traceFlags:0},ZBt=()=>({}),QBt=class{start(){}shutdown(){return Promise.resolve()}},ezt=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return PB}shutdown(){return Promise.resolve()}},tzt=class{register(){}addSpanProcessor(){}getTracer(){return PB}shutdown(){return Promise.resolve()}},rzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},nzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ozt=class{export(){}shutdown(){return Promise.resolve()}},szt=class{export(){}shutdown(){return Promise.resolve()}},izt=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},azt=()=>[],lzt=()=>{},czt=r=>({attributes:r||{},merge(){return this}}),uzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},dzt=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},pzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},mzt=class{constructor(){}getMeter(){return gQ}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},gzt=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},fzt={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},hzt=class{enable(){return this}disable(){return this}},yzt=class{inject(){}extract(r){return r}fields(){return[]}},xzt="service.name",vzt="service.version",bzt="service.name",Tzt="service.version",Szt={trace:dMe,context:pMe,propagation:mMe,metrics:gMe,diag:fQ,SpanStatusCode:fMe,SpanKind:hMe}});var hQ={};de(hQ,{TelemetryService:()=>Md});var Md,zw=E(()=>{"use strict";gr();cQ();uQ();dQ();pQ();Y();Md=class r{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():g.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return r.instance||(r.instance=new r),r.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{let e=pt.getTracerProvider();if(!e)return!1;let t=e.constructor?.name||"";if(t&&t!=="ProxyTracerProvider"&&t!=="NoopTracerProvider")return!0;let o=(typeof e.getDelegate=="function"?e.getDelegate():e._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(e){return g.warn("[Telemetry] Failed checking for external TracerProvider",{error:e instanceof Error?e.message:String(e)}),!1}}adoptExternalTracerProvider(e){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=Um.getMeter("neurolink-ai"),this.tracer=pt.getTracer("neurolink-ai"),this.initializeMetrics(),g.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:e,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered");return}let e=kB({[AB]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[IB]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),t=new RB({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new uMe({resource:e,spanProcessors:[new CB(t)]}),this.meter=Um.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),g.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(e){let t=e instanceof Error?e.message:String(e);if((t.includes("duplicate registration")||t.includes("already registered")||t.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected");return}g.error("[Telemetry] Failed to initialize:",e),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,g.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,g.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{let{AsyncLocalStorageContextManager:e}=await Promise.resolve().then(()=>(xMe(),yMe));ur.setGlobalContextManager(new e().enable())}catch{}this.initialized=!0,g.debug("[Telemetry] Tracer provider started successfully")}catch(e){g.error("[Telemetry] Failed to start:",e),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(e,t,n="generate_text"){if(!this.enabled||!this.tracer)return await t();let o=this.tracer.startSpan(`ai.${e}.${n}`,{attributes:{"ai.provider":e,"ai.operation":n}});try{let s=await t();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(e,t,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!this.enabled||!this.aiRequestCounter)return;let i={provider:e,model:t};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(e,t){this.errorCount++,!(!this.enabled||!this.aiProviderErrors)&&this.aiProviderErrors.add(1,{provider:e,error:t.name,message:t.message.substring(0,100)})}recordMCPToolCall(e,t,n){!this.enabled||!this.mcpToolCalls||this.mcpToolCalls.add(1,{tool:e,success:n.toString(),duration_bucket:this.getDurationBucket(t)})}recordConnection(e){this.activeConnectionCount++,!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(1,{connection_type:e})}recordConnectionClosed(e){this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(-1,{connection_type:e,event:"disconnect"})}recordResponseTime(e,t,n){this.totalResponseTime+=n,this.responseTimeCount++,!(!this.enabled||!this.responseTimeHistogram)&&this.responseTimeHistogram.record(n,{endpoint:e,method:t,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(e,t,n){if(!this.enabled||!this.meter)return;this.meter.createCounter(`custom_${e}`,{description:`Custom metric: ${e}`}).add(t,n||{})}recordCustomHistogram(e,t,n){if(!this.enabled||!this.meter)return;this.meter.createHistogram(`custom_${e}_histogram`,{description:`Custom histogram: ${e}`}).record(t,n||{})}async getHealthMetrics(){let e=process.memoryUsage(),t=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:e,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(t*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(e){return e<100?"fast":e<500?"medium":e<1e3?"slow":"very_slow"}getStatusBucket(e){return e<200?"excellent":e<500?"good":e<1e3?"acceptable":"poor"}async shutdown(){if(this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,g.debug("[Telemetry] Tracer provider shutdown completed")}catch(e){g.error("[Telemetry] Error during shutdown:",e)}}}});function Jo(r,e=vMe){let t;try{t=typeof r=="string"?r:JSON.stringify(r)??String(r)}catch{t=String(r)}if(t.length>e){let n=`...[truncated ${t.length-e} chars]`,o=Math.max(0,e-n.length);return`${t.slice(0,o)}${n}`}return t}var Pe,Cn,vMe,ZA=E(()=>{"use strict";Pe={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"},Cn={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"},vMe=4e4});async function bMe(){let{TelemetryService:r}=await Promise.resolve().then(()=>(zw(),hQ)),e=r.getInstance();return e.isEnabled()&&(await e.initialize(),g.info("[NeuroLink] Telemetry initialized")),e}async function TMe(){let{TelemetryService:r}=await Promise.resolve().then(()=>(zw(),hQ));return r.getInstance().getStatus()}var ac=E(()=>{"use strict";Ar();yn();ZA();Y()});function QA(r){if(r&&typeof r.timeoutMs=="number"&&Number.isFinite(r.timeoutMs)&&r.timeoutMs>=0)return r.timeoutMs;let e=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(e){let t=Number(e);if(Number.isFinite(t)&&t>=0)return t}return 5e3}var yQ=E(()=>{"use strict"});var SMe=E(()=>{});var OB,NB=E(()=>{lc();OB=(r,e)=>r.anyOf.length?r.anyOf.length===1?nn(r.anyOf[0],{...e,path:[...e.path,"anyOf",0]}):`z.union([${r.anyOf.map((t,n)=>nn(t,{...e,path:[...e.path,"anyOf",n]})).join(", ")}])`:"z.any()"});var wMe,xQ=E(()=>{wMe=r=>"z.boolean()"});var _Me,vQ=E(()=>{_Me=r=>"z.any()"});var EMe,bQ=E(()=>{lc();EMe=(r,e)=>`z.union([${r.type.map(t=>nn({...r,type:t},{...e,withoutDefaults:!0})).join(", ")}])`});var CMe,TQ=E(()=>{lc();CMe=(r,e)=>`z.any().refine((value) => !${nn(r.not,{...e,path:[...e.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`});var RMe,SQ=E(()=>{RMe=r=>"z.null()"});var kMe,wQ=E(()=>{kMe=r=>[r.slice(0,r.length/2),r.slice(r.length/2)]});function jw(r,e){if(r.allOf.length===0)return"z.never()";if(r.allOf.length===1){let t=r.allOf[0];return nn(t,{...e,path:[...e.path,"allOf",t[eI]]})}else{let[t,n]=kMe(wzt(r.allOf));return`z.intersection(${jw({allOf:t},e)}, ${jw({allOf:n},e)})`}}var eI,wzt,DB=E(()=>{lc();wQ();eI=Symbol("Original index"),wzt=r=>{let e=[];for(let t=0;t<r.length;t++){let n=r[t];if(typeof n=="boolean")e.push(n?{[eI]:t}:{[eI]:t,not:{}});else{if(eI in n)return r;e.push({...n,[eI]:t})}}return e}});function fs(r,e,t,n){let o=r[e],s="";if(o!==void 0){let i=t({value:o,json:JSON.stringify(o)});if(i){let a=i[0],l=i.length===3?i[1]:"",c=i.length===3?i[2]:i[1];s+=a;let u=r.errorMessage?.[e]??n;u!==void 0&&(s+=l+JSON.stringify(u)),s+=c}}return s}var tI=E(()=>{});var AMe,_Q=E(()=>{tI();lc();AMe=(r,e)=>{if(Array.isArray(r.items))return`z.tuple([${r.items.map((n,o)=>nn(n,{...e,path:[...e.path,"items",o]}))}])`;let t=r.items?`z.array(${nn(r.items,{...e,path:[...e.path,"items"]})})`:"z.array(z.any())";return t+=fs(r,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),t+=fs(r,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),r.uniqueItems===!0&&(t+=fs(r,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),t}});var IMe,EQ=E(()=>{IMe=r=>`z.literal(${JSON.stringify(r.const)})`});var PMe,CQ=E(()=>{PMe=r=>r.enum.length===0?"z.never()":r.enum.length===1?`z.literal(${JSON.stringify(r.enum[0])})`:r.enum.every(e=>typeof e=="string")?`z.enum([${r.enum.map(e=>JSON.stringify(e))}])`:`z.union([${r.enum.map(e=>`z.literal(${JSON.stringify(e)})`).join(", ")}])`});var MMe,RQ=E(()=>{lc();MMe=(r,e)=>{let t=nn(r.if,{...e,path:[...e.path,"if"]}),n=nn(r.then,{...e,path:[...e.path,"then"]}),o=nn(r.else,{...e,path:[...e.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
711
+ `):void 0,usage:{input:u,output:p,total:u+p},toolCalls:c.length>0?c.map(h=>{let y;try{y=JSON.parse(h.input)}catch(x){g.warn(`Failed to parse tool call args for tool ${h.toolName}:`,x),y={raw:h.input}}return{toolCallId:h.toolCallId,toolName:h.toolName,args:y}}):void 0};if(r.blocking!==!1){let h=await nQ(r,s,m);return{...i,evaluationResult:h}}else return nQ(r,s,m).catch(h=>{g.error("Non-blocking auto-evaluation error:",h)}),i},wrapStream:async({doStream:n,params:o})=>{let s=o,i=await n(),[a,l]=i.stream.tee();return BBt(r,s,l).catch(c=>{g.error("Non-blocking stream auto-evaluation error:",c)}),{...i,stream:a}}},metadata:e}}async function nQ(r,e,t){let n=r.blocking!==!1,o=r.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{let i=await new Xc({threshold:o,provider:r.provider,promptGenerator:r.promptGenerator,evaluationModel:r.evaluationModel}).evaluate(e,t,o,r);r.onEvaluationComplete&&await r.onEvaluationComplete(i)}catch(s){if(g.error("Error during auto-evaluation:",s),n)throw s}}async function BBt(r,e,t){let n="",o,s=[],i=t.getReader();try{for(;;){let{done:c,value:u}=await i.read();if(c)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let p;try{p=JSON.parse(u.input)}catch(m){g.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),p={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:p})}break;case"finish":{let p=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:p,output:m,total:p+m}}break}}}finally{i.releaseLock()}let a={content:n,usage:o,toolCalls:s.length>0?s:void 0};r.blocking&&g.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");let l={...r,blocking:!1};await nQ(l,e,a)}var tMe=E(()=>{"use strict";bB();Y()});function rMe(r){try{Object.defineProperty(r,sQ,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function Tv(r){return r===null||typeof r!="object"?!1:r[sQ]===!0}function $w(r){r===null||typeof r!="object"||r[sQ]!==!0&&rMe(r)}function wB(r,e,t){if(typeof r=="function"&&!Tv(e)){e!==null&&typeof e=="object"&&rMe(e);try{let n=r(t);Promise.resolve(n).catch(()=>{})}catch{}}}var sQ,_B=E(()=>{"use strict";sQ=Symbol.for("neurolink.onErrorFired")});function iQ(r){if(r instanceof Error)return r;if(typeof r=="object"&&r!==null){let e=r,t=typeof e.message=="string"?e.message:String(r);return Object.assign(new Error(t),e)}return new Error(String(r))}function EB(r={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{let o=Date.now();try{let s=await n();if(r.onFinish)try{let i=s.content?.map(l=>l.type==="text"?l.text:"").join("")??"",a=r.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=>{g.warn("[LifecycleMiddleware] onFinish callback error:",l)})}catch(i){g.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){let i=iQ(s);throw wB(r.onError,i,{error:i,duration:Date.now()-o,recoverable:Xk(i)}),i}},wrapStream:async({doStream:n})=>{let o=Date.now();try{let s=await n();if(!r.onChunk&&!r.onFinish&&!r.onError)return s;let i=0,a="",l=new TransformStream({transform(c,u){try{if(c.type==="text-delta"&&(a+=c.textDelta),r.onChunk&&c.type)try{let p=r.onChunk({type:c.type,textDelta:c.type==="text-delta"?c.textDelta:void 0,sequenceNumber:i++});Promise.resolve(p).catch(m=>{g.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(p){g.warn("[LifecycleMiddleware] onChunk callback error:",p)}u.enqueue(c)}catch(p){let m=iQ(p);throw wB(r.onError,m,{error:m,duration:Date.now()-o,recoverable:Xk(m)}),m}},flush(){if(r.onFinish)try{let c=r.onFinish({text:a,duration:Date.now()-o});Promise.resolve(c).catch(u=>{g.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(c){g.warn("[LifecycleMiddleware] onFinish callback error:",c)}}});return{...s,stream:s.stream.pipeThrough(l)}}catch(s){let i=iQ(s);throw wB(r.onError,i,{error:i,duration:Date.now()-o,recoverable:Xk(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 aQ=E(()=>{"use strict";Y();Tt();_B()});var YA,lQ=E(()=>{"use strict";fIe();i7();TIe();tMe();aQ();Y();nv();YA=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new C2,this.initialize(e)}initialize(e){let t={analytics:R2,guardrails:l7,autoEvaluation:oQ,lifecycle:EB};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}}}),g.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){g.debug("Registering custom middleware");for(let n of e.middleware)this.register(n)}for(let n in t)if(!this.registry.has(n)){let o=t[n],s=e.middlewareConfig?.[n]?.config;g.debug(`Registering built-in middleware '${n}'`,s),this.registry.register(o(s))}}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,n={}){let o=Date.now();try{let s={...this.options,...n,middlewareConfig:{...this.options.middlewareConfig,...n.middlewareConfig}},i=this.buildMiddlewareConfig(s);for(let[p,m]of Object.entries(i))if(g.debug(`Configuring middleware '${p}'`,{config:m}),m.enabled&&this.registry.has(p)){let f=this.getCreator(p);f&&this.registry.register(f(m.config),{replace:!0})}let a=this.registry.buildChain(t,i);if(a.length===0)return g.debug("No middleware to apply",{provider:t.provider}),e;g.debug(`Applying ${a.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:a.length});let c=r$({model:e,middleware:a}),u=Date.now()-o;return g.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:a.length,processingTime:u}),c}catch(s){return g.error("Failed to apply middleware",{provider:t.provider,error:s instanceof Error?s.message:String(s)}),e}}getCreator(e){let t={analytics:R2,guardrails:l7,autoEvaluation:oQ,lifecycle:EB};return g.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){let t={},n=this.registry.list();for(let s of n)t[s.metadata.id]={enabled:!1,config:{}};let o=e.preset;if(!o&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(o="default"),o){let s=this.getPresetConfig(o);if(s)for(let[i,a]of Object.entries(s))t[i]&&(t[i]={...t[i],...a})}if(e.middlewareConfig)for(let[s,i]of Object.entries(e.middlewareConfig))t[s]={...t[s],...i};if(e.enabledMiddleware)for(let s of e.enabledMiddleware)t[s]&&(t[s].enabled=!0);if(e.disabledMiddleware)for(let s of e.disabledMiddleware)t[s]&&(t[s].enabled=!1);return t}getPresetConfig(e){let t=this.presets.get(e);return t?t.config:null}createContext(e,t,n={},o){return{provider:e,model:t,options:n,session:o,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){let t=[],n=[];for(let[o,s]of Object.entries(e)){if(!this.registry.has(o)){t.push(`Middleware '${o}' is not registered`);continue}s.enabled!==void 0&&typeof s.enabled!="boolean"&&t.push(`Middleware '${o}' enabled property must be boolean`),s.config&&typeof s.config!="object"&&t.push(`Middleware '${o}' config property must be an object`),s.conditions?.providers&&s.conditions.providers.length===0&&n.push(`Middleware '${o}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:n}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){let n=this.registry.buildChain(e,t),o=this.registry.getAggregatedStats(),s={},i=0,a=0;for(let[l,c]of Object.entries(o))t[l]?.enabled&&(s[l]={applied:!0,executionTime:c.averageExecutionTime},i+=c.averageExecutionTime,a++);return{totalMiddleware:n.length,appliedMiddleware:a,totalExecutionTime:i,results:s}}createModelFactory(e,t={}){return async(n,o={})=>{let s=await e(),i={...t,...o,middlewareConfig:{...t.middlewareConfig,...o.middlewareConfig}};return this.applyMiddleware(s,n,i)}}}});function Bw(){return Object.values(Pd)}function oMe(r){return Pd[r]}function sMe(r,e,t){let n=t.toLowerCase(),o=kh[n]??n,s=Pd[o];return!s||s.provider!==e.toLowerCase()?!0:s.capabilities[r]??!0}function jBt(r,e){let t=(e??"").toLowerCase();if(!t)return!0;let n=kh[t]??t,o=Pd[n];return o&&o.provider===r.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!zBt.some(s=>s.test(n)||s.test(t))}function _a(r,e,t,n){return jBt(r,e)?t:((t.temperature!==void 0||t.topP!==void 0)&&g.debug(`[ModelRegistry] Stripping sampling params for ${r}/${e} at ${n} \u2014 model rejects temperature/topP`,{provider:r,model:e,site:n,hadTemperature:t.temperature!==void 0,hadTopP:t.topP!==void 0}),{})}function iMe(r){return Object.values(Pd).filter(e=>e.provider===r)}function aMe(){let r=new Set;return Object.values(Pd).forEach(e=>{r.add(e.provider)}),Array.from(r)}function lMe(r,e,t){let n=e/1e3*r.pricing.inputCostPer1K,o=t/1e3*r.pricing.outputCostPer1K;return n+o}var Pd,kh,nMe,zBt,lg=E(()=>{"use strict";Lt();Y();Pd={"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:.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:["claude-4.5-opus","claude-opus-latest","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",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","claude-sonnet-latest","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:!1,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:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},kh={};Object.values(Pd).forEach(r=>{r.aliases.forEach(e=>{kh[e.toLowerCase()]=r.id})});Object.entries(A9).forEach(([r,e])=>{kh[r.toLowerCase().replace(/_/g,"-")]=e});kh.local="llama3.2:latest";nMe={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","pixtral-large","amazon.nova-premier-v1:0"]};zBt=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]});var cMe,GBt,uMe,CB,cQ=E(()=>{cMe={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}}},GBt={startSpan(){return cMe},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(cMe)}},uMe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return GBt}shutdown(){return Promise.resolve()}},CB=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}}});var RB,uQ=E(()=>{RB=class{export(){}shutdown(){return Promise.resolve()}}});var kB,dQ=E(()=>{kB=r=>({attributes:r||{},merge(){return this}})});var AB,IB,pQ=E(()=>{AB="service.name",IB="service.version"});var yMe={};de(yMe,{ATTR_SERVICE_NAME:()=>xzt,ATTR_SERVICE_VERSION:()=>vzt,AsyncLocalStorageContextManager:()=>hzt,BasicTracerProvider:()=>ezt,BatchLogRecordProcessor:()=>pzt,BatchSpanProcessor:()=>nzt,DiagConsoleLogger:()=>VBt,DiagLogLevel:()=>HBt,INVALID_SPAN_CONTEXT:()=>YBt,LangfuseSpanProcessor:()=>uzt,LoggerProvider:()=>dzt,MeterProvider:()=>mzt,NodeSDK:()=>QBt,NodeTracerProvider:()=>tzt,OTLPLogExporter:()=>szt,OTLPMetricExporter:()=>izt,OTLPTraceExporter:()=>ozt,PeriodicExportingMetricReader:()=>gzt,SEMRESATTRS_SERVICE_NAME:()=>bzt,SEMRESATTRS_SERVICE_VERSION:()=>Tzt,SeverityNumber:()=>fzt,SimpleSpanProcessor:()=>rzt,SpanKind:()=>hMe,SpanStatusCode:()=>fMe,TraceFlags:()=>qBt,ValueType:()=>KBt,W3CTraceContextPropagator:()=>yzt,baggageEntryMetadataFromString:()=>ZBt,context:()=>pMe,default:()=>Szt,diag:()=>fQ,getNodeAutoInstrumentations:()=>azt,isSpanContextValid:()=>WBt,isValidSpanId:()=>XBt,isValidTraceId:()=>JBt,metrics:()=>gMe,propagation:()=>mMe,registerInstrumentations:()=>lzt,resourceFromAttributes:()=>czt,trace:()=>dMe});var mQ,PB,gQ,MB,dMe,pMe,mMe,gMe,fQ,fMe,hMe,qBt,VBt,HBt,KBt,WBt,JBt,XBt,YBt,ZBt,QBt,ezt,tzt,rzt,nzt,ozt,szt,izt,azt,lzt,czt,uzt,dzt,pzt,mzt,gzt,fzt,hzt,yzt,xzt,vzt,bzt,Tzt,Szt,xMe=E(()=>{mQ={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}}},PB={startSpan(){return mQ},startActiveSpan(r,e,t){return(typeof e=="function"?e:t)(mQ)}},gQ={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},MB={getValue(){},setValue(){return MB},deleteValue(){return MB}},dMe={getTracer(){return PB},getTracerProvider(){return{getTracer(){return PB}}},setGlobalTracerProvider(){},getSpan(){return mQ},getActiveSpan(){},setSpan(r){return r},deleteSpan(r){return r},setSpanContext(r){return r},getSpanContext(){}},pMe={active(){return MB},with(r,e){return e()},bind(r,e){return e},setValue(){return MB},getValue(){}},mMe={inject(){},extract(r){return r},setGlobalPropagator(){},getBaggage(){},setBaggage(r){return r},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},gMe={getMeter(){return gQ},getMeterProvider(){return{getMeter(){return gQ}}},setGlobalMeterProvider(){}},fQ={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return fQ}},fMe={UNSET:0,OK:1,ERROR:2},hMe={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},qBt={NONE:0,SAMPLED:1},VBt=class{},HBt={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},KBt={INT:0,DOUBLE:1},WBt=()=>!1,JBt=()=>!1,XBt=()=>!1,YBt={traceId:"0",spanId:"0",traceFlags:0},ZBt=()=>({}),QBt=class{start(){}shutdown(){return Promise.resolve()}},ezt=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return PB}shutdown(){return Promise.resolve()}},tzt=class{register(){}addSpanProcessor(){}getTracer(){return PB}shutdown(){return Promise.resolve()}},rzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},nzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ozt=class{export(){}shutdown(){return Promise.resolve()}},szt=class{export(){}shutdown(){return Promise.resolve()}},izt=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},azt=()=>[],lzt=()=>{},czt=r=>({attributes:r||{},merge(){return this}}),uzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},dzt=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},pzt=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},mzt=class{constructor(){}getMeter(){return gQ}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},gzt=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},fzt={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},hzt=class{enable(){return this}disable(){return this}},yzt=class{inject(){}extract(r){return r}fields(){return[]}},xzt="service.name",vzt="service.version",bzt="service.name",Tzt="service.version",Szt={trace:dMe,context:pMe,propagation:mMe,metrics:gMe,diag:fQ,SpanStatusCode:fMe,SpanKind:hMe}});var hQ={};de(hQ,{TelemetryService:()=>Md});var Md,zw=E(()=>{"use strict";gr();cQ();uQ();dQ();pQ();Y();Md=class r{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():g.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return r.instance||(r.instance=new r),r.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{let e=pt.getTracerProvider();if(!e)return!1;let t=e.constructor?.name||"";if(t&&t!=="ProxyTracerProvider"&&t!=="NoopTracerProvider")return!0;let o=(typeof e.getDelegate=="function"?e.getDelegate():e._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(e){return g.warn("[Telemetry] Failed checking for external TracerProvider",{error:e instanceof Error?e.message:String(e)}),!1}}adoptExternalTracerProvider(e){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=Um.getMeter("neurolink-ai"),this.tracer=pt.getTracer("neurolink-ai"),this.initializeMetrics(),g.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:e,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered");return}let e=kB({[AB]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[IB]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),t=new RB({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new uMe({resource:e,spanProcessors:[new CB(t)]}),this.meter=Um.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),g.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(e){let t=e instanceof Error?e.message:String(e);if((t.includes("duplicate registration")||t.includes("already registered")||t.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected");return}g.error("[Telemetry] Failed to initialize:",e),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,g.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,g.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{let{AsyncLocalStorageContextManager:e}=await Promise.resolve().then(()=>(xMe(),yMe));ur.setGlobalContextManager(new e().enable())}catch{}this.initialized=!0,g.debug("[Telemetry] Tracer provider started successfully")}catch(e){g.error("[Telemetry] Failed to start:",e),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(e,t,n="generate_text"){if(!this.enabled||!this.tracer)return await t();let o=this.tracer.startSpan(`ai.${e}.${n}`,{attributes:{"ai.provider":e,"ai.operation":n}});try{let s=await t();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(e,t,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!this.enabled||!this.aiRequestCounter)return;let i={provider:e,model:t};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(e,t){this.errorCount++,!(!this.enabled||!this.aiProviderErrors)&&this.aiProviderErrors.add(1,{provider:e,error:t.name,message:t.message.substring(0,100)})}recordMCPToolCall(e,t,n){!this.enabled||!this.mcpToolCalls||this.mcpToolCalls.add(1,{tool:e,success:n.toString(),duration_bucket:this.getDurationBucket(t)})}recordConnection(e){this.activeConnectionCount++,!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(1,{connection_type:e})}recordConnectionClosed(e){this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!(!this.enabled||!this.connectionCounter)&&this.connectionCounter.add(-1,{connection_type:e,event:"disconnect"})}recordResponseTime(e,t,n){this.totalResponseTime+=n,this.responseTimeCount++,!(!this.enabled||!this.responseTimeHistogram)&&this.responseTimeHistogram.record(n,{endpoint:e,method:t,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(e,t,n){if(!this.enabled||!this.meter)return;this.meter.createCounter(`custom_${e}`,{description:`Custom metric: ${e}`}).add(t,n||{})}recordCustomHistogram(e,t,n){if(!this.enabled||!this.meter)return;this.meter.createHistogram(`custom_${e}_histogram`,{description:`Custom histogram: ${e}`}).record(t,n||{})}async getHealthMetrics(){let e=process.memoryUsage(),t=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:e,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(t*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(e){return e<100?"fast":e<500?"medium":e<1e3?"slow":"very_slow"}getStatusBucket(e){return e<200?"excellent":e<500?"good":e<1e3?"acceptable":"poor"}async shutdown(){if(this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,g.debug("[Telemetry] Tracer provider shutdown completed")}catch(e){g.error("[Telemetry] Error during shutdown:",e)}}}});function Jo(r,e=vMe){let t;try{t=typeof r=="string"?r:JSON.stringify(r)??String(r)}catch{t=String(r)}if(t.length>e){let n=`...[truncated ${t.length-e} chars]`,o=Math.max(0,e-n.length);return`${t.slice(0,o)}${n}`}return t}var Pe,Cn,vMe,ZA=E(()=>{"use strict";Pe={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"},Cn={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"},vMe=4e4});async function bMe(){let{TelemetryService:r}=await Promise.resolve().then(()=>(zw(),hQ)),e=r.getInstance();return e.isEnabled()&&(await e.initialize(),g.info("[NeuroLink] Telemetry initialized")),e}async function TMe(){let{TelemetryService:r}=await Promise.resolve().then(()=>(zw(),hQ));return r.getInstance().getStatus()}var ac=E(()=>{"use strict";Ar();yn();ZA();Y()});function QA(r){if(r&&typeof r.timeoutMs=="number"&&Number.isFinite(r.timeoutMs)&&r.timeoutMs>=0)return r.timeoutMs;let e=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(e){let t=Number(e);if(Number.isFinite(t)&&t>=0)return t}return 5e3}var yQ=E(()=>{"use strict"});var SMe=E(()=>{});var OB,NB=E(()=>{lc();OB=(r,e)=>r.anyOf.length?r.anyOf.length===1?nn(r.anyOf[0],{...e,path:[...e.path,"anyOf",0]}):`z.union([${r.anyOf.map((t,n)=>nn(t,{...e,path:[...e.path,"anyOf",n]})).join(", ")}])`:"z.any()"});var wMe,xQ=E(()=>{wMe=r=>"z.boolean()"});var _Me,vQ=E(()=>{_Me=r=>"z.any()"});var EMe,bQ=E(()=>{lc();EMe=(r,e)=>`z.union([${r.type.map(t=>nn({...r,type:t},{...e,withoutDefaults:!0})).join(", ")}])`});var CMe,TQ=E(()=>{lc();CMe=(r,e)=>`z.any().refine((value) => !${nn(r.not,{...e,path:[...e.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`});var RMe,SQ=E(()=>{RMe=r=>"z.null()"});var kMe,wQ=E(()=>{kMe=r=>[r.slice(0,r.length/2),r.slice(r.length/2)]});function jw(r,e){if(r.allOf.length===0)return"z.never()";if(r.allOf.length===1){let t=r.allOf[0];return nn(t,{...e,path:[...e.path,"allOf",t[eI]]})}else{let[t,n]=kMe(wzt(r.allOf));return`z.intersection(${jw({allOf:t},e)}, ${jw({allOf:n},e)})`}}var eI,wzt,DB=E(()=>{lc();wQ();eI=Symbol("Original index"),wzt=r=>{let e=[];for(let t=0;t<r.length;t++){let n=r[t];if(typeof n=="boolean")e.push(n?{[eI]:t}:{[eI]:t,not:{}});else{if(eI in n)return r;e.push({...n,[eI]:t})}}return e}});function fs(r,e,t,n){let o=r[e],s="";if(o!==void 0){let i=t({value:o,json:JSON.stringify(o)});if(i){let a=i[0],l=i.length===3?i[1]:"",c=i.length===3?i[2]:i[1];s+=a;let u=r.errorMessage?.[e]??n;u!==void 0&&(s+=l+JSON.stringify(u)),s+=c}}return s}var tI=E(()=>{});var AMe,_Q=E(()=>{tI();lc();AMe=(r,e)=>{if(Array.isArray(r.items))return`z.tuple([${r.items.map((n,o)=>nn(n,{...e,path:[...e.path,"items",o]}))}])`;let t=r.items?`z.array(${nn(r.items,{...e,path:[...e.path,"items"]})})`:"z.array(z.any())";return t+=fs(r,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),t+=fs(r,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),r.uniqueItems===!0&&(t+=fs(r,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),t}});var IMe,EQ=E(()=>{IMe=r=>`z.literal(${JSON.stringify(r.const)})`});var PMe,CQ=E(()=>{PMe=r=>r.enum.length===0?"z.never()":r.enum.length===1?`z.literal(${JSON.stringify(r.enum[0])})`:r.enum.every(e=>typeof e=="string")?`z.enum([${r.enum.map(e=>JSON.stringify(e))}])`:`z.union([${r.enum.map(e=>`z.literal(${JSON.stringify(e)})`).join(", ")}])`});var MMe,RQ=E(()=>{lc();MMe=(r,e)=>{let t=nn(r.if,{...e,path:[...e.path,"if"]}),n=nn(r.then,{...e,path:[...e.path,"then"]}),o=nn(r.else,{...e,path:[...e.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
712
712
  const result = ${t}.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 rqt(r,e,t,n){let o=t.name.toLowerCase();if(o===r)return 100;let s=0;(r.includes(o)||o.includes(r))&&(s+=20);let i=`${o} ${n.toLowerCase()}`;for(let a of e)a.length<3||(o.includes(a)?s+=8:i.includes(a)&&(s+=2));return t.serverId&&r.includes(t.serverId.toLowerCase())&&(s+=3),s}function IOe(r,e){let t=e.deferrableNames.filter(a=>a in r&&!e.pinnedNames.has(a)).sort();if(t.length===0)return r;if("search_tools"in r)return QGt(),r;let n=new Set(t),o=Object.create(null);for(let[a,l]of Object.entries(r))n.has(a)||(o[a]=l);let s=t.map(a=>{let l=r[a];return{name:a,summary:eqt(l.description??""),serverId:typeof l.serverId=="string"?l.serverId:void 0}});return o.search_tools=nqt(s,r,o,e.onHydrate),Object.defineProperty(o,COe,{value:a=>{if(a in o)return o[a];if(!n.has(a))return;let l=r[a];if(l)return o[a]=l,e.onHydrate([a]),g.debug("[ToolDiscovery] Auto-hydrated deferred tool on direct call",{name:a}),l},enumerable:!1,writable:!1,configurable:!0}),g.debug("[ToolDiscovery] Deferred external tools behind search_tools",{hotCount:Object.keys(o).length-1,deferredCount:t.length,pinnedCount:e.pinnedNames.size}),o}function cI(r,e){if(!r)return;let t=r[COe];return typeof t=="function"?t(e):void 0}function uI(r,e){if(r)return r[e]??cI(r,e)}function nqt(r,e,t,n){let o=tqt(r),s={description:`Search and load additional tools on demand. ${r.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:d.object({query:d.string().describe("What you need to do, or an exact tool name to load")}),execute:async({query:i})=>{let a=i.toLowerCase().trim(),l=a.split(/[^a-z0-9_.-]+/).filter(Boolean),c=r.map(p=>{let m=e[p.name];return{entry:p,score:rqt(a,l,p,m?.description??"")}}).filter(p=>p.score>0).sort((p,m)=>m.score-p.score||(p.entry.name<m.entry.name?-1:1)).slice(0,ZGt);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."};let u=c.map(({entry:p})=>{let m=e[p.name];t[p.name]=m;let f=m;return{name:p.name,description:f.description??"",inputSchema:xn(f.inputSchema)}});return n(u.map(p=>p.name)),g.debug("[ToolDiscovery] search_tools hydrated tools",{query:i,loaded:u.map(p=>p.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[kOe]=!0,s}var COe,ROe,VQ,ZGt,_Oe,kOe,EOe,Kw=E(()=>{"use strict";Qn();Ea();Y();COe=Symbol.for("neurolink.deferredToolResolver"),ROe=40,VQ=15e3,ZGt=5,_Oe=100,kOe="__nlDiscoveryMetaTool";EOe=!1});function oqt(r){return typeof r=="object"&&r!==null&&"modelId"in r}function dI(r,e="unknown"){return typeof r=="string"?r:oqt(r)?r.modelId:e}var POe=E(()=>{"use strict"});function cg(r,e={}){return{...e,tool:r,toolName:r}}var XB=E(()=>{"use strict"});function Ih(r,e){if(!(!r||!e||e.length===0))for(let t of e){let n=t.output??t.result,o=!!t.error||n!=null&&typeof n=="object"&&"isError"in n&&n.isError===!0,s;if(o){if(t.error)s=t.error;else if(n&&typeof n=="object"){let i=n.content;if(Array.isArray(i)){let 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"}}r.emit("tool:end",cg(t.toolName,{responseTime:0,success:!o,timestamp:Date.now(),result:n,error:s}))}}var pI=E(()=>{"use strict";XB()});function MOe(r,e){let t=r.toLowerCase().replace(/[^a-z]/g,""),n=sqt[t]??t;if(n==="__cross_provider__"){for(let l of Object.values(YB)){if(l[e])return l[e];let c=Object.keys(l).sort((m,f)=>f.length-m.length),u=c.find(m=>m.startsWith(e));if(u)return l[u];let p=c.find(m=>e.startsWith(m));if(p)return l[p]}return}let o=YB[n]||YB[r];if(!o)return;let s=t==="bedrock"||t==="amazonbedrock"?e.replace(/^.*\banthropic\./,""):e;if(o[s])return o[s];let a=Object.keys(o).filter(l=>l!=="_default").sort((l,c)=>c.length-l.length).find(l=>s.startsWith(l));if(a)return o[a];if(n==="vertex"&&e.startsWith("gemini")){let l=YB.google;if(l){if(l[e])return l[e];let u=Object.keys(l).sort((p,m)=>m.length-p.length).find(p=>e.startsWith(p));if(u)return l[u]}}if(o._default)return o._default}function Xo(r,e,t){let n=MOe(r,e);if(!n)return 0;let o=0;return o+=(t.input||0)*n.input,o+=(t.output||0)*n.output,t.cacheReadTokens&&(o+=t.cacheReadTokens*(n.cacheRead??n.input)),t.cacheCreationTokens&&n.cacheCreation&&(o+=t.cacheCreationTokens*n.cacheCreation),Math.round(o*1e6)/1e6}function mI(r,e){let t=MOe(r,e);return t?t.input>0||t.output>0||(t.cacheRead??0)>0||(t.cacheCreation??0)>0:!1}var YB,sqt,Du=E(()=>{"use strict";YB={anthropic:{"claude-opus-4-6":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-5":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cacheRead:10000000000000001e-23,cacheCreation:125e-8},"claude-opus-4-1":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-opus-4":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-sonnet-4":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-7-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-5-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-5-haiku":{input:8000000000000001e-22,output:4e-6,cacheRead:8e-8,cacheCreation:1e-6},"claude-3-opus":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-3-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-haiku":{input:25e-8,output:125e-8,cacheRead:25000000000000002e-24,cacheCreation:3125e-10}},vertex:{"claude-sonnet-4-6":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-6":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-5":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-haiku-4-5":{input:1e-6,output:5e-6,cacheRead:10000000000000001e-23,cacheCreation:125e-8},"claude-3-5-haiku":{input:8000000000000001e-22,output:4e-6,cacheRead:8e-8,cacheCreation:1e-6},"claude-3-5-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8}},openai:{"gpt-5.4":{input:25e-7,output:15e-6,cacheRead:625e-9},"gpt-5.2":{input:175e-8,output:14e-6,cacheRead:4375e-10},"gpt-5.1":{input:625e-9,output:5e-6,cacheRead:15625e-11},"gpt-5.1-codex":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gpt-5":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gpt-5-mini":{input:25e-8,output:2e-6,cacheRead:625e-10},"gpt-5-nano":{input:50000000000000004e-24,output:40000000000000003e-23,cacheRead:12500000000000001e-24},"gpt-4.1":{input:2e-6,output:8e-6,cacheRead:5e-7},"gpt-4.1-mini":{input:40000000000000003e-23,output:16000000000000001e-22,cacheRead:10000000000000001e-23},"gpt-4.1-nano":{input:10000000000000001e-23,output:40000000000000003e-23,cacheRead:25000000000000002e-24},"gpt-4o":{input:25e-7,output:1e-5,cacheRead:625e-9},"gpt-4o-mini":{input:15e-8,output:6e-7,cacheRead:375e-10},o3:{input:2e-6,output:8e-6,cacheRead:5e-7},"o3-mini":{input:11e-7,output:44e-7,cacheRead:275e-9},"o4-mini":{input:11e-7,output:44e-7,cacheRead:275e-9},o1:{input:15e-6,output:6e-5,cacheRead:375e-8},"o1-mini":{input:55e-8,output:22e-7,cacheRead:1375e-10},"gpt-4-turbo":{input:1e-5,output:3e-5},"gpt-4":{input:3e-5,output:6e-5},"gpt-3.5-turbo":{input:5e-7,output:1e-6}},google:{"gemini-3.1-pro-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3.1-flash-lite-preview":{input:25e-8,output:15e-7,cacheRead:625e-10},"gemini-3.1-flash-image-preview":{input:5e-7,output:3e-6,cacheRead:125e-9},"gemini-3.1-pro-preview-customtools":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3-flash-preview":{input:5e-7,output:3e-6,cacheRead:125e-9},"gemini-3-pro-image-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3-pro-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-2.5-flash":{input:3e-7,output:25e-7,cacheRead:75e-9},"gemini-2.5-pro":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gemini-2.5-flash-lite":{input:10000000000000001e-23,output:40000000000000003e-23,cacheRead:25000000000000002e-24},"gemini-2.0-flash":{input:15e-8,output:6e-7,cacheRead:375e-10},"gemini-2.0-flash-lite":{input:75e-9,output:3e-7,cacheRead:1875e-11},"gemini-1.5-pro":{input:125e-8,output:5e-6,cacheRead:3125e-10},"gemini-1.5-flash":{input:75e-9,output:3e-7,cacheRead:1875e-11}},mistral:{"mistral-large":{input:2e-6,output:6e-6},"mistral-medium":{input:27e-7,output:81e-7},"mistral-small":{input:20000000000000002e-23,output:6e-7},codestral:{input:3e-7,output:9000000000000001e-22},"open-mistral-nemo":{input:15e-8,output:15e-8}},deepseek:{"deepseek-chat":{input:27e-8,output:11e-7,cacheRead:7e-8},"deepseek-reasoner":{input:55e-8,output:21899999999999998e-22,cacheRead:14e-8}},"nvidia-nim":{"meta/llama-3.3-70b-instruct":{input:40000000000000003e-23,output:40000000000000003e-23},"meta/llama-3.1-405b-instruct":{input:179e-8,output:179e-8},"meta/llama-3.1-70b-instruct":{input:40000000000000003e-23,output:40000000000000003e-23},"meta/llama-3.2-90b-vision-instruct":{input:5e-7,output:5e-7},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:3e-7,output:3e-7},"deepseek-ai/deepseek-r1":{input:55e-8,output:21899999999999998e-22},"mistralai/mixtral-8x22b-instruct-v0.1":{input:6e-7,output:6e-7},"mistralai/mixtral-8x7b-instruct-v0.1":{input:24e-8,output:24e-8},"microsoft/phi-4":{input:7e-8,output:7e-8},"google/gemma-3-27b-it":{input:7e-8,output:7e-8}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},xai:{_default:{input:3e-6,output:15e-6},"grok-3":{input:3e-6,output:15e-6},"grok-3-mini":{input:3e-7,output:5e-7},"grok-2-latest":{input:2e-6,output:1e-5},"grok-2-vision-latest":{input:2e-6,output:1e-5},"grok-beta":{input:5e-6,output:15e-6}},groq:{_default:{input:59e-8,output:7900000000000001e-22},"llama-3.3-70b-versatile":{input:59e-8,output:7900000000000001e-22},"llama-3.1-8b-instant":{input:50000000000000004e-24,output:8e-8},"llama-3.2-90b-vision-preview":{input:9000000000000001e-22,output:9000000000000001e-22},"llama-3.2-11b-vision-preview":{input:18e-8,output:18e-8},"gemma2-9b-it":{input:20000000000000002e-23,output:20000000000000002e-23},"mixtral-8x7b-32768":{input:24e-8,output:24e-8}},cohere:{_default:{input:25e-7,output:1e-5},"command-r-plus":{input:25e-7,output:1e-5},"command-r":{input:15e-8,output:6e-7},"command-r7b-12-2024":{input:375e-10,output:15e-8}},"together-ai":{_default:{input:88e-8,output:88e-8},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{input:88e-8,output:88e-8},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{input:35e-7,output:35e-7},"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":{input:88e-8,output:88e-8},"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":{input:18e-8,output:18e-8},"mistralai/Mixtral-8x22B-Instruct-v0.1":{input:12e-7,output:12e-7},"mistralai/Mixtral-8x7B-Instruct-v0.1":{input:6e-7,output:6e-7},"Qwen/Qwen2.5-72B-Instruct-Turbo":{input:12e-7,output:12e-7},"deepseek-ai/DeepSeek-R1":{input:7e-6,output:7e-6},"deepseek-ai/DeepSeek-V3":{input:125e-8,output:125e-8}},fireworks:{_default:{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3e-6,output:3e-6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:20000000000000002e-23,output:20000000000000002e-23},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:12e-7,output:12e-7},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/deepseek-v3":{input:75e-8,output:3e-6}},perplexity:{_default:{input:1e-6,output:1e-6},sonar:{input:1e-6,output:1e-6},"sonar-pro":{input:3e-6,output:15e-6},"sonar-reasoning":{input:1e-6,output:5e-6},"sonar-reasoning-pro":{input:2e-6,output:8e-6},"sonar-deep-research":{input:2e-6,output:8e-6}},cloudflare:{_default:{input:11e-9,output:11e-9}},replicate:{_default:{input:5e-7,output:15e-7}},voyage:{_default:{input:18e-8,output:0},"voyage-3.5":{input:6e-8,output:0},"voyage-3.5-lite":{input:2e-8,output:0},"voyage-3-large":{input:18e-8,output:0},"voyage-code-3":{input:18e-8,output:0},"voyage-finance-2":{input:12e-8,output:0},"voyage-law-2":{input:12e-8,output:0},"voyage-multilingual-2":{input:12e-8,output:0}},jina:{_default:{input:2e-8,output:0},"jina-embeddings-v3":{input:2e-8,output:0},"jina-reranker-v2-base-multilingual":{input:50000000000000004e-24,output:0}},stability:{_default:{input:0,output:4e-5}},ideogram:{_default:{input:0,output:8e-5}},recraft:{_default:{input:0,output:4e-5}}},sqt={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"}});function iqt(r){return typeof r.input=="number"?r.input:typeof r.inputTokens=="number"?r.inputTokens:typeof r.promptTokens=="number"?r.promptTokens:0}function aqt(r){return typeof r.output=="number"?r.output:typeof r.outputTokens=="number"?r.outputTokens:typeof r.completionTokens=="number"?r.completionTokens:0}function lqt(r,e,t){return typeof r.total=="number"&&r.total>0?r.total:typeof r.totalTokens=="number"&&r.totalTokens>0?r.totalTokens:e+t}function cqt(r){if(typeof r.reasoningTokens=="number"&&r.reasoningTokens>0)return r.reasoningTokens;if(typeof r.thinkingTokens=="number"&&r.thinkingTokens>0)return r.thinkingTokens;if(typeof r.reasoning_tokens=="number"&&r.reasoning_tokens>0)return r.reasoning_tokens;if(typeof r.reasoning=="number"&&r.reasoning>0)return r.reasoning}function HQ(r){if(typeof r.cacheCreationInputTokens=="number"&&r.cacheCreationInputTokens>0)return r.cacheCreationInputTokens;if(typeof r.cacheCreationTokens=="number"&&r.cacheCreationTokens>0)return r.cacheCreationTokens;if(typeof r.inputTokenDetails?.cacheWriteTokens=="number"&&r.inputTokenDetails.cacheWriteTokens>0)return r.inputTokenDetails.cacheWriteTokens}function KQ(r){if(typeof r.cacheReadInputTokens=="number"&&r.cacheReadInputTokens>0)return r.cacheReadInputTokens;if(typeof r.cacheReadTokens=="number"&&r.cacheReadTokens>0)return r.cacheReadTokens;if(typeof r.cachedInputTokens=="number"&&r.cachedInputTokens>0)return r.cachedInputTokens;if(typeof r.inputTokenDetails?.cacheReadTokens=="number"&&r.inputTokenDetails.cacheReadTokens>0)return r.inputTokenDetails.cacheReadTokens}function uqt(r){let e=r.prompt_tokens_details?.cached_tokens;if(typeof e=="number"&&e>0)return e}function WQ(r,e){if(r===void 0||r<=0)return;let t=e+r;if(!(t<=0))return Math.round(r/t*100)}function Nd(r,e={}){let{calculateCacheSavings:t=!0,missingOptionalBehavior:n="undefined"}=e;if(!r)return{input:0,output:0,total:0};let o=r.usage&&typeof r.usage=="object"?r.usage:r,s=iqt(o),i=aqt(o),a=cqt(o),l=HQ(o),c=KQ(o);if(c===void 0){let f=uqt(o);f!==void 0&&f<=s&&(c=f,s=Math.max(0,s-f))}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)){let f=o.inputTokenDetails?.noCacheTokens;typeof f=="number"?s=f:s=Math.max(0,s-(c??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}let u=lqt(o,s+(c??0)+(l??0),i),p=t?WQ(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=p??0):(l!==void 0&&(m.cacheCreationTokens=l),c!==void 0&&(m.cacheReadTokens=c),a!==void 0&&(m.reasoning=a),p!==void 0&&(m.cacheSavingsPercent=p)),m}function JQ(){return{input:0,output:0,total:0}}var Ww=E(()=>{"use strict"});var gI,fI,ZB=E(()=>{"use strict";Tt();Y();Lt();gI=class r{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new r),this.instance}async initialize(){let e=[{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"}],t=[];for(let n of e)try{g.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);let o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=rwe.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),g.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){let s=o instanceof Error?o.message:String(o);t.push({source:n.name,error:s}),g.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw g.warn("[DynamicModelProvider] All model configuration sources failed",{errors:t}),new Error(`Failed to load model configuration from all source. Attempted: ${t.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(e,t){if(e.startsWith("http")){let n=new AbortController,o=setTimeout(()=>n.abort(),t);try{(e.includes("localhost")||e.includes("127.0.0.1"))&&await this.healthCheckLocalhost(e,Math.min(t,1e3));let s=await fetch(e,{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),wr(s)?new Error(`Request timeout after ${t}ms`,{cause:s}):s}}else return new Promise((n,o)=>{let s=setTimeout(()=>{o(new Error(`File read timeout after ${t}ms`))},t);(async()=>{try{let i=await Promise.resolve().then(()=>(ro(),Rl)),l=(await Promise.resolve().then(()=>(Qr(),ll))).resolve(e);if(!i.existsSync(l))throw new Error(`File not found: ${l}`);let c=i.readFileSync(l,"utf8"),u=JSON.parse(c);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(e,t){let n=e.replace(/\/api\/.*$/,"/health")||`${e}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),t);try{let 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),wr(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 ${e}`,{cause:i});g.debug(`Health check failed for ${e}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(e){return this.ensureInitialized(),this.modelRegistry?.models[e]||{}}resolveModel(e,t){this.ensureInitialized();let n=this.getModelsForProvider(e);if(!t){let i=this.modelRegistry?.defaults?.[e];return i?n[i]:null}if(n[t])return n[t];let o=this.modelRegistry?.aliases?.[t];if(o){let[i,a]=o.split("/");return this.resolveModel(i,a)}let s=Object.keys(n).find(i=>i.toLowerCase().includes(t.toLowerCase())||t.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(e,t={}){this.ensureInitialized();let n=[];if(!this.modelRegistry)return n;for(let[o,s]of Object.entries(this.modelRegistry.models))if(!(t.provider&&o!==t.provider))for(let[i,a]of Object.entries(s))t.excludeDeprecated&&a.deprecated||t.maxPrice&&a.pricing.input>t.maxPrice||a.capabilities.includes(e)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(e){switch(this.ensureInitialized(),e){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(t=>!t.config.deprecated).sort((t,n)=>t.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(t=>!t.config.deprecated).sort((t,n)=>t.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();let e=[];if(!this.modelRegistry)return e;for(let[t,n]of Object.entries(this.modelRegistry.models))for(let[o,s]of Object.entries(n))e.push({provider:t,model:o,config:s});return e}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((e,t)=>e+Object.keys(t).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}},fI=gI.getInstance()});function gqt(r){let e=r.toLowerCase().replace(/[^a-z]/g,"");return mqt[e]??e}function QB(r,e,t){!Number.isFinite(t)||t<=0||XQ.set(`${r}:${e}`,t)}function DOe(r,e){if(e)return XQ.get(`${r}:${e}`)}function UOe(r,e,t){!Number.isFinite(t)||t<=0||LOe.set(`${r}:${e}`,t)}function ez(r,e){if(e)return LOe.get(`${r}:${e}`)}function Dd(r,e){if(e)try{let s=gI.getInstance().resolveModel(r,e);if(s?.contextWindow)return g.debug(`[ContextWindow] Resolved via dynamic registry: provider=${r}, model=${e}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(e){let o=XQ.get(`${r}:${e}`);if(o!==void 0)return o}let t=gqt(r),n=NOe[t]??NOe[r];if(!n)return OOe;if(e&&n[e]!==void 0)return n[e];if(e){for(let[o,s]of Object.entries(n))if(o!=="_default"&&e.startsWith(o))return s}return n._default??OOe}function fqt(r,e){return e!==void 0&&e>0?e:Math.min(dqt,Math.ceil(r*pqt))}function mi(r,e,t){let n=Dd(r,e),o=fqt(n,t);return n-o}var OOe,dqt,pqt,NOe,mqt,XQ,LOe,Ld=E(()=>{"use strict";ZB();Y();OOe=128e3,dqt=64e3,pqt=.35,NOe={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:0":1e6,"anthropic.claude-sonnet-4-6":1e6,"anthropic.claude-opus-4-5-20251124-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}},mqt={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"};XQ=new Map;LOe=new Map});function $Oe(r){return r?hqt[r]??1:1}function zt(r,e,t){if(!r||r.length===0)return 0;let n=t?3:4,o=Math.ceil(r.length/n),s=$Oe(e),i=o*s,a=o*.05;return Math.ceil(i+a)}function FOe(r){if(typeof r=="string")return r;try{return JSON.stringify(r)??""}catch{return"x".repeat(2e5)}}function YQ(r,e){let t="";if(r.content)if(typeof r.content=="string")t=r.content;else try{t=JSON.stringify(r.content)}catch{t=String(r.content)}let n=zt(t,e)+4,o=r.args;o&&(n+=zt(FOe(o),e));let s=r.result?.error;return s&&(n+=zt(FOe(s),e)),n}function Wn(r,e){return!r||r.length===0?0:r.reduce((n,o)=>n+YQ(o,e),0)+24}function tz(r,e,t){if(zt(r,t)<=e)return{text:r,truncated:!1};let o=$Oe(t)+.05,s=Math.floor(e/o*4);if(s<=0)return{text:"",truncated:!0};let i=r.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:d.object({query:d.string().describe("What you need to do, or an exact tool name to load")}),execute:async({query:i})=>{let a=i.toLowerCase().trim(),l=a.split(/[^a-z0-9_.-]+/).filter(Boolean),c=r.map(p=>{let m=e[p.name];return{entry:p,score:rqt(a,l,p,m?.description??"")}}).filter(p=>p.score>0).sort((p,m)=>m.score-p.score||(p.entry.name<m.entry.name?-1:1)).slice(0,ZGt);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."};let u=c.map(({entry:p})=>{let m=e[p.name];t[p.name]=m;let f=m;return{name:p.name,description:f.description??"",inputSchema:xn(f.inputSchema)}});return n(u.map(p=>p.name)),g.debug("[ToolDiscovery] search_tools hydrated tools",{query:i,loaded:u.map(p=>p.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[kOe]=!0,s}var COe,ROe,VQ,ZGt,_Oe,kOe,EOe,Kw=E(()=>{"use strict";Qn();Ea();Y();COe=Symbol.for("neurolink.deferredToolResolver"),ROe=40,VQ=15e3,ZGt=5,_Oe=100,kOe="__nlDiscoveryMetaTool";EOe=!1});function oqt(r){return typeof r=="object"&&r!==null&&"modelId"in r}function dI(r,e="unknown"){return typeof r=="string"?r:oqt(r)?r.modelId:e}var POe=E(()=>{"use strict"});function cg(r,e={}){return{...e,tool:r,toolName:r}}var XB=E(()=>{"use strict"});function Ih(r,e){if(!(!r||!e||e.length===0))for(let t of e){let n=t.output??t.result,o=!!t.error||n!=null&&typeof n=="object"&&"isError"in n&&n.isError===!0,s;if(o){if(t.error)s=t.error;else if(n&&typeof n=="object"){let i=n.content;if(Array.isArray(i)){let 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"}}r.emit("tool:end",cg(t.toolName,{responseTime:0,success:!o,timestamp:Date.now(),result:n,error:s}))}}var pI=E(()=>{"use strict";XB()});function MOe(r,e){let t=r.toLowerCase().replace(/[^a-z]/g,""),n=sqt[t]??t;if(n==="__cross_provider__"){for(let l of Object.values(YB)){if(l[e])return l[e];let c=Object.keys(l).sort((m,f)=>f.length-m.length),u=c.find(m=>m.startsWith(e));if(u)return l[u];let p=c.find(m=>e.startsWith(m));if(p)return l[p]}return}let o=YB[n]||YB[r];if(!o)return;let s=t==="bedrock"||t==="amazonbedrock"?e.replace(/^.*\banthropic\./,""):e;if(o[s])return o[s];let a=Object.keys(o).filter(l=>l!=="_default").sort((l,c)=>c.length-l.length).find(l=>s.startsWith(l));if(a)return o[a];if(n==="vertex"&&e.startsWith("gemini")){let l=YB.google;if(l){if(l[e])return l[e];let u=Object.keys(l).sort((p,m)=>m.length-p.length).find(p=>e.startsWith(p));if(u)return l[u]}}if(o._default)return o._default}function Xo(r,e,t){let n=MOe(r,e);if(!n)return 0;let o=0;return o+=(t.input||0)*n.input,o+=(t.output||0)*n.output,t.cacheReadTokens&&(o+=t.cacheReadTokens*(n.cacheRead??n.input)),t.cacheCreationTokens&&n.cacheCreation&&(o+=t.cacheCreationTokens*n.cacheCreation),Math.round(o*1e6)/1e6}function mI(r,e){let t=MOe(r,e);return t?t.input>0||t.output>0||(t.cacheRead??0)>0||(t.cacheCreation??0)>0:!1}var YB,sqt,Du=E(()=>{"use strict";YB={anthropic:{"claude-opus-4-6":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-sonnet-4-6":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-sonnet-4-5-20250929":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-5":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-haiku-4-5-20251001":{input:1e-6,output:5e-6,cacheRead:10000000000000001e-23,cacheCreation:125e-8},"claude-opus-4-1":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-opus-4":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-sonnet-4":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-7-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-5-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-5-haiku":{input:8000000000000001e-22,output:4e-6,cacheRead:8e-8,cacheCreation:1e-6},"claude-3-opus":{input:15e-6,output:75e-6,cacheRead:15e-7,cacheCreation:1875e-8},"claude-3-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-3-haiku":{input:25e-8,output:125e-8,cacheRead:25000000000000002e-24,cacheCreation:3125e-10}},vertex:{"claude-sonnet-4-6":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-6":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-sonnet-4-5":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8},"claude-opus-4-5":{input:5e-6,output:25e-6,cacheRead:5e-7,cacheCreation:625e-8},"claude-haiku-4-5":{input:1e-6,output:5e-6,cacheRead:10000000000000001e-23,cacheCreation:125e-8},"claude-3-5-haiku":{input:8000000000000001e-22,output:4e-6,cacheRead:8e-8,cacheCreation:1e-6},"claude-3-5-sonnet":{input:3e-6,output:15e-6,cacheRead:3e-7,cacheCreation:375e-8}},openai:{"gpt-5.4":{input:25e-7,output:15e-6,cacheRead:625e-9},"gpt-5.2":{input:175e-8,output:14e-6,cacheRead:4375e-10},"gpt-5.1":{input:625e-9,output:5e-6,cacheRead:15625e-11},"gpt-5.1-codex":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gpt-5":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gpt-5-mini":{input:25e-8,output:2e-6,cacheRead:625e-10},"gpt-5-nano":{input:50000000000000004e-24,output:40000000000000003e-23,cacheRead:12500000000000001e-24},"gpt-4.1":{input:2e-6,output:8e-6,cacheRead:5e-7},"gpt-4.1-mini":{input:40000000000000003e-23,output:16000000000000001e-22,cacheRead:10000000000000001e-23},"gpt-4.1-nano":{input:10000000000000001e-23,output:40000000000000003e-23,cacheRead:25000000000000002e-24},"gpt-4o":{input:25e-7,output:1e-5,cacheRead:625e-9},"gpt-4o-mini":{input:15e-8,output:6e-7,cacheRead:375e-10},o3:{input:2e-6,output:8e-6,cacheRead:5e-7},"o3-mini":{input:11e-7,output:44e-7,cacheRead:275e-9},"o4-mini":{input:11e-7,output:44e-7,cacheRead:275e-9},o1:{input:15e-6,output:6e-5,cacheRead:375e-8},"o1-mini":{input:55e-8,output:22e-7,cacheRead:1375e-10},"gpt-4-turbo":{input:1e-5,output:3e-5},"gpt-4":{input:3e-5,output:6e-5},"gpt-3.5-turbo":{input:5e-7,output:1e-6}},google:{"gemini-3.1-pro-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3.1-flash-lite-preview":{input:25e-8,output:15e-7,cacheRead:625e-10},"gemini-3.1-flash-image-preview":{input:5e-7,output:3e-6,cacheRead:125e-9},"gemini-3.1-pro-preview-customtools":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3-flash-preview":{input:5e-7,output:3e-6,cacheRead:125e-9},"gemini-3-pro-image-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-3-pro-preview":{input:2e-6,output:12e-6,cacheRead:5e-7},"gemini-2.5-flash":{input:3e-7,output:25e-7,cacheRead:75e-9},"gemini-2.5-pro":{input:125e-8,output:1e-5,cacheRead:3125e-10},"gemini-2.5-flash-lite":{input:10000000000000001e-23,output:40000000000000003e-23,cacheRead:25000000000000002e-24},"gemini-2.0-flash":{input:15e-8,output:6e-7,cacheRead:375e-10},"gemini-2.0-flash-lite":{input:75e-9,output:3e-7,cacheRead:1875e-11},"gemini-1.5-pro":{input:125e-8,output:5e-6,cacheRead:3125e-10},"gemini-1.5-flash":{input:75e-9,output:3e-7,cacheRead:1875e-11}},mistral:{"mistral-large":{input:2e-6,output:6e-6},"mistral-medium":{input:27e-7,output:81e-7},"mistral-small":{input:20000000000000002e-23,output:6e-7},codestral:{input:3e-7,output:9000000000000001e-22},"open-mistral-nemo":{input:15e-8,output:15e-8}},deepseek:{"deepseek-chat":{input:27e-8,output:11e-7,cacheRead:7e-8},"deepseek-reasoner":{input:55e-8,output:21899999999999998e-22,cacheRead:14e-8}},"nvidia-nim":{"meta/llama-3.3-70b-instruct":{input:40000000000000003e-23,output:40000000000000003e-23},"meta/llama-3.1-405b-instruct":{input:179e-8,output:179e-8},"meta/llama-3.1-70b-instruct":{input:40000000000000003e-23,output:40000000000000003e-23},"meta/llama-3.2-90b-vision-instruct":{input:5e-7,output:5e-7},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:3e-7,output:3e-7},"deepseek-ai/deepseek-r1":{input:55e-8,output:21899999999999998e-22},"mistralai/mixtral-8x22b-instruct-v0.1":{input:6e-7,output:6e-7},"mistralai/mixtral-8x7b-instruct-v0.1":{input:24e-8,output:24e-8},"microsoft/phi-4":{input:7e-8,output:7e-8},"google/gemma-3-27b-it":{input:7e-8,output:7e-8}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},xai:{_default:{input:3e-6,output:15e-6},"grok-3":{input:3e-6,output:15e-6},"grok-3-mini":{input:3e-7,output:5e-7},"grok-2-latest":{input:2e-6,output:1e-5},"grok-2-vision-latest":{input:2e-6,output:1e-5},"grok-beta":{input:5e-6,output:15e-6}},groq:{_default:{input:59e-8,output:7900000000000001e-22},"llama-3.3-70b-versatile":{input:59e-8,output:7900000000000001e-22},"llama-3.1-8b-instant":{input:50000000000000004e-24,output:8e-8},"llama-3.2-90b-vision-preview":{input:9000000000000001e-22,output:9000000000000001e-22},"llama-3.2-11b-vision-preview":{input:18e-8,output:18e-8},"gemma2-9b-it":{input:20000000000000002e-23,output:20000000000000002e-23},"mixtral-8x7b-32768":{input:24e-8,output:24e-8}},cohere:{_default:{input:25e-7,output:1e-5},"command-r-plus":{input:25e-7,output:1e-5},"command-r":{input:15e-8,output:6e-7},"command-r7b-12-2024":{input:375e-10,output:15e-8}},"together-ai":{_default:{input:88e-8,output:88e-8},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{input:88e-8,output:88e-8},"meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo":{input:35e-7,output:35e-7},"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo":{input:88e-8,output:88e-8},"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo":{input:18e-8,output:18e-8},"mistralai/Mixtral-8x22B-Instruct-v0.1":{input:12e-7,output:12e-7},"mistralai/Mixtral-8x7B-Instruct-v0.1":{input:6e-7,output:6e-7},"Qwen/Qwen2.5-72B-Instruct-Turbo":{input:12e-7,output:12e-7},"deepseek-ai/DeepSeek-R1":{input:7e-6,output:7e-6},"deepseek-ai/DeepSeek-V3":{input:125e-8,output:125e-8}},fireworks:{_default:{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3e-6,output:3e-6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:20000000000000002e-23,output:20000000000000002e-23},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:12e-7,output:12e-7},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:9000000000000001e-22,output:9000000000000001e-22},"accounts/fireworks/models/deepseek-v3":{input:75e-8,output:3e-6}},perplexity:{_default:{input:1e-6,output:1e-6},sonar:{input:1e-6,output:1e-6},"sonar-pro":{input:3e-6,output:15e-6},"sonar-reasoning":{input:1e-6,output:5e-6},"sonar-reasoning-pro":{input:2e-6,output:8e-6},"sonar-deep-research":{input:2e-6,output:8e-6}},cloudflare:{_default:{input:11e-9,output:11e-9}},replicate:{_default:{input:5e-7,output:15e-7}},voyage:{_default:{input:18e-8,output:0},"voyage-3.5":{input:6e-8,output:0},"voyage-3.5-lite":{input:2e-8,output:0},"voyage-3-large":{input:18e-8,output:0},"voyage-code-3":{input:18e-8,output:0},"voyage-finance-2":{input:12e-8,output:0},"voyage-law-2":{input:12e-8,output:0},"voyage-multilingual-2":{input:12e-8,output:0}},jina:{_default:{input:2e-8,output:0},"jina-embeddings-v3":{input:2e-8,output:0},"jina-reranker-v2-base-multilingual":{input:50000000000000004e-24,output:0}},stability:{_default:{input:0,output:4e-5}},ideogram:{_default:{input:0,output:8e-5}},recraft:{_default:{input:0,output:4e-5}}},sqt={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"}});function iqt(r){return typeof r.input=="number"?r.input:typeof r.inputTokens=="number"?r.inputTokens:typeof r.promptTokens=="number"?r.promptTokens:0}function aqt(r){return typeof r.output=="number"?r.output:typeof r.outputTokens=="number"?r.outputTokens:typeof r.completionTokens=="number"?r.completionTokens:0}function lqt(r,e,t){return typeof r.total=="number"&&r.total>0?r.total:typeof r.totalTokens=="number"&&r.totalTokens>0?r.totalTokens:e+t}function cqt(r){if(typeof r.reasoningTokens=="number"&&r.reasoningTokens>0)return r.reasoningTokens;if(typeof r.thinkingTokens=="number"&&r.thinkingTokens>0)return r.thinkingTokens;if(typeof r.reasoning_tokens=="number"&&r.reasoning_tokens>0)return r.reasoning_tokens;if(typeof r.reasoning=="number"&&r.reasoning>0)return r.reasoning}function HQ(r){if(typeof r.cacheCreationInputTokens=="number"&&r.cacheCreationInputTokens>0)return r.cacheCreationInputTokens;if(typeof r.cacheCreationTokens=="number"&&r.cacheCreationTokens>0)return r.cacheCreationTokens;if(typeof r.inputTokenDetails?.cacheWriteTokens=="number"&&r.inputTokenDetails.cacheWriteTokens>0)return r.inputTokenDetails.cacheWriteTokens}function KQ(r){if(typeof r.cacheReadInputTokens=="number"&&r.cacheReadInputTokens>0)return r.cacheReadInputTokens;if(typeof r.cacheReadTokens=="number"&&r.cacheReadTokens>0)return r.cacheReadTokens;if(typeof r.cachedInputTokens=="number"&&r.cachedInputTokens>0)return r.cachedInputTokens;if(typeof r.inputTokenDetails?.cacheReadTokens=="number"&&r.inputTokenDetails.cacheReadTokens>0)return r.inputTokenDetails.cacheReadTokens}function uqt(r){let e=r.prompt_tokens_details?.cached_tokens;if(typeof e=="number"&&e>0)return e}function WQ(r,e){if(r===void 0||r<=0)return;let t=e+r;if(!(t<=0))return Math.round(r/t*100)}function Nd(r,e={}){let{calculateCacheSavings:t=!0,missingOptionalBehavior:n="undefined"}=e;if(!r)return{input:0,output:0,total:0};let o=r.usage&&typeof r.usage=="object"?r.usage:r,s=iqt(o),i=aqt(o),a=cqt(o),l=HQ(o),c=KQ(o);if(c===void 0){let f=uqt(o);f!==void 0&&f<=s&&(c=f,s=Math.max(0,s-f))}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)){let f=o.inputTokenDetails?.noCacheTokens;typeof f=="number"?s=f:s=Math.max(0,s-(c??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}let u=lqt(o,s+(c??0)+(l??0),i),p=t?WQ(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=p??0):(l!==void 0&&(m.cacheCreationTokens=l),c!==void 0&&(m.cacheReadTokens=c),a!==void 0&&(m.reasoning=a),p!==void 0&&(m.cacheSavingsPercent=p)),m}function JQ(){return{input:0,output:0,total:0}}var Ww=E(()=>{"use strict"});var gI,fI,ZB=E(()=>{"use strict";Tt();Y();Lt();gI=class r{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new r),this.instance}async initialize(){let e=[{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"}],t=[];for(let n of e)try{g.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);let o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=rwe.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),g.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){let s=o instanceof Error?o.message:String(o);t.push({source:n.name,error:s}),g.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw g.warn("[DynamicModelProvider] All model configuration sources failed",{errors:t}),new Error(`Failed to load model configuration from all source. Attempted: ${t.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(e,t){if(e.startsWith("http")){let n=new AbortController,o=setTimeout(()=>n.abort(),t);try{(e.includes("localhost")||e.includes("127.0.0.1"))&&await this.healthCheckLocalhost(e,Math.min(t,1e3));let s=await fetch(e,{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),wr(s)?new Error(`Request timeout after ${t}ms`,{cause:s}):s}}else return new Promise((n,o)=>{let s=setTimeout(()=>{o(new Error(`File read timeout after ${t}ms`))},t);(async()=>{try{let i=await Promise.resolve().then(()=>(ro(),Rl)),l=(await Promise.resolve().then(()=>(Qr(),ll))).resolve(e);if(!i.existsSync(l))throw new Error(`File not found: ${l}`);let c=i.readFileSync(l,"utf8"),u=JSON.parse(c);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(e,t){let n=e.replace(/\/api\/.*$/,"/health")||`${e}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),t);try{let 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),wr(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 ${e}`,{cause:i});g.debug(`Health check failed for ${e}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(e){return this.ensureInitialized(),this.modelRegistry?.models[e]||{}}resolveModel(e,t){this.ensureInitialized();let n=this.getModelsForProvider(e);if(!t){let i=this.modelRegistry?.defaults?.[e];return i?n[i]:null}if(n[t])return n[t];let o=this.modelRegistry?.aliases?.[t];if(o){let[i,a]=o.split("/");return this.resolveModel(i,a)}let s=Object.keys(n).find(i=>i.toLowerCase().includes(t.toLowerCase())||t.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(e,t={}){this.ensureInitialized();let n=[];if(!this.modelRegistry)return n;for(let[o,s]of Object.entries(this.modelRegistry.models))if(!(t.provider&&o!==t.provider))for(let[i,a]of Object.entries(s))t.excludeDeprecated&&a.deprecated||t.maxPrice&&a.pricing.input>t.maxPrice||a.capabilities.includes(e)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(e){switch(this.ensureInitialized(),e){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(t=>!t.config.deprecated).sort((t,n)=>t.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(t=>!t.config.deprecated).sort((t,n)=>t.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();let e=[];if(!this.modelRegistry)return e;for(let[t,n]of Object.entries(this.modelRegistry.models))for(let[o,s]of Object.entries(n))e.push({provider:t,model:o,config:s});return e}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((e,t)=>e+Object.keys(t).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}},fI=gI.getInstance()});function gqt(r){let e=r.toLowerCase().replace(/[^a-z]/g,"");return mqt[e]??e}function QB(r,e,t){!Number.isFinite(t)||t<=0||XQ.set(`${r}:${e}`,t)}function DOe(r,e){if(e)return XQ.get(`${r}:${e}`)}function UOe(r,e,t){!Number.isFinite(t)||t<=0||LOe.set(`${r}:${e}`,t)}function ez(r,e){if(e)return LOe.get(`${r}:${e}`)}function Dd(r,e){if(e)try{let s=gI.getInstance().resolveModel(r,e);if(s?.contextWindow)return g.debug(`[ContextWindow] Resolved via dynamic registry: provider=${r}, model=${e}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(e){let o=XQ.get(`${r}:${e}`);if(o!==void 0)return o}let t=gqt(r),n=NOe[t]??NOe[r];if(!n)return OOe;if(e&&n[e]!==void 0)return n[e];if(e){for(let[o,s]of Object.entries(n))if(o!=="_default"&&e.startsWith(o))return s}return n._default??OOe}function fqt(r,e){return e!==void 0&&e>0?e:Math.min(dqt,Math.ceil(r*pqt))}function mi(r,e,t){let n=Dd(r,e),o=fqt(n,t);return n-o}var OOe,dqt,pqt,NOe,mqt,XQ,LOe,Ld=E(()=>{"use strict";ZB();Y();OOe=128e3,dqt=64e3,pqt=.35,NOe={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:0":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}},mqt={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"};XQ=new Map;LOe=new Map});function $Oe(r){return r?hqt[r]??1:1}function zt(r,e,t){if(!r||r.length===0)return 0;let n=t?3:4,o=Math.ceil(r.length/n),s=$Oe(e),i=o*s,a=o*.05;return Math.ceil(i+a)}function FOe(r){if(typeof r=="string")return r;try{return JSON.stringify(r)??""}catch{return"x".repeat(2e5)}}function YQ(r,e){let t="";if(r.content)if(typeof r.content=="string")t=r.content;else try{t=JSON.stringify(r.content)}catch{t=String(r.content)}let n=zt(t,e)+4,o=r.args;o&&(n+=zt(FOe(o),e));let s=r.result?.error;return s&&(n+=zt(FOe(s),e)),n}function Wn(r,e){return!r||r.length===0?0:r.reduce((n,o)=>n+YQ(o,e),0)+24}function tz(r,e,t){if(zt(r,t)<=e)return{text:r,truncated:!1};let o=$Oe(t)+.05,s=Math.floor(e/o*4);if(s<=0)return{text:"",truncated:!0};let i=r.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:r.slice(0,l)+"...",truncated:!0}}var hqt,gi=E(()=>{"use strict";hqt={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 rz(r,e){let t=e?.maxBytes??51200,n=e?.maxLines??2e3;return Buffer.byteLength(r,"utf-8")>t||r.split(`
825
825
  `).length>n}function fi(r,e){let t=e?.maxBytes??51200,n=e?.maxLines??2e3,o=e?.headRatio??.25,s=e?.tailRatio??.75,i=Math.max(0,Math.min(1,o)),a=Math.max(0,Math.min(1,s)),l=Buffer.byteLength(r,"utf-8"),c=r.split(`
826
826
  `),u=l>t,p=c.length>n;if(!u&&!p)return{preview:r,truncated:!1,originalSize:l};let m=Math.max(1,Math.floor(n*i)),f=Math.max(1,n-m),h,y;p?(h=c.slice(0,m).join(`
@@ -842,7 +842,7 @@ ${t}
842
842
  `,r:"\r",t:" "}});var oNe=E(()=>{nNe()});function uee(r,e=0){for(let t=e;t<r.length;t++){let n=r[t];if(n!=="{"&&n!=="[")continue;let o=n==="{"?"}":"]",s=0,i=!1,a=!1;for(let l=t;l<r.length;l++){let c=r[l];if(a){a=!1;continue}if(c==="\\"){a=!0;continue}if(c==='"'){i=!i;continue}if(!i){if(c===n)s++;else if(c===o&&(s--,s===0))return{span:r.substring(t,l+1),end:l+1}}}}return null}var sNe=E(()=>{"use strict"});function iNe(r){return typeof r.safeParse=="function"}function bI(r,e){return!r||!iNe(r)?!0:r.safeParse(e).success}function iz(r,e){try{let t=JSON.parse(r);return t===""?{kind:"empty"}:t==null?{kind:"nullish"}:bI(e,t)?{kind:"accepted",value:t}:{kind:"rejected",value:t}}catch{return{kind:"not-json"}}}function aNe(r){try{return{value:JSON.parse(r),repaired:!1}}catch{}try{let e=cee(r),t=JSON.parse(e);return e!==r&&g.shouldLog("debug")&&g.debug("[coerceJsonToSchema] jsonrepair altered model output",{originalLength:r.length,repairedLength:e.length}),{value:t,repaired:e!==r}}catch{return}}function Mqt(r){let e=r;for(let t=0;t<Pqt&&e.length>1;t++){let n=Math.max(e.lastIndexOf(","),e.lastIndexOf("}"),e.lastIndexOf("]"));if(n<=0)break;e=e.slice(0,n);let o=aNe(e);if(o!==void 0&&o.value!==null&&typeof o.value=="object")return o.value}}function dee(r,e=0){if(e>Iqt)return{value:r,changed:!1};if(typeof r=="string"){let t=r.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{let o=JSON.parse(t);if(o!==null&&typeof o=="object")return{value:o,changed:!0}}catch{}return{value:r,changed:!1}}if(Array.isArray(r)){let t=!1,n=r.map(o=>{let s=dee(o,e+1);return s.changed&&(t=!0),s.value});return{value:t?n:r,changed:t}}if(r!==null&&typeof r=="object"){let t=!1,n={};for(let[o,s]of Object.entries(r)){let i=dee(s,e+1);i.changed&&(t=!0),n[o]=i.value}return{value:t?n:r,changed:t}}return{value:r,changed:!1}}function az(r,e){if(typeof r!="string"||r.trim().length===0)return null;let t=[],n=[r.indexOf("{"),r.indexOf("[")].filter(b=>b>=0),o=n.length>0?Math.min(...n):-1,s=!1,i=0;for(;;){let b=uee(r,i);if(!b)break;let T=b.end-b.span.length;T===o&&(s=!0),t.push({text:b.span,truncated:!1,rootAligned:T===o}),i=b.end}let a=o>=0&&!s,l=Math.max(r.lastIndexOf("}"),r.lastIndexOf("]"));o>=0&&l>o&&t.push({text:r.slice(o,l+1),truncated:a,rootAligned:!0}),o>=0&&t.push({text:r.slice(o),truncated:!0,rootAligned:!0});let c=r.trim();if(c.length>1&&c.startsWith('"')&&c.endsWith('"'))try{let b=JSON.parse(c);if(typeof b=="string"){let T=0;for(;;){let w=uee(b,T);if(!w)break;t.push({text:w.span,truncated:!1,rootAligned:!1}),T=w.end}}}catch{}let u=[...t.filter(b=>b.rootAligned),...t.filter(b=>!b.rootAligned)],p,m=[],f=!!(e&&iNe(e)),h=new Set;for(let b of u){if(h.has(b.text))continue;h.add(b.text);let T=aNe(b.text);if(T===void 0||T.value===null||typeof T.value!="object")continue;let w={value:T.value,repaired:T.repaired,truncated:b.truncated,rootAligned:b.rootAligned};if(p===void 0&&(p=w),!f)break;let C=e;if(C.safeParse(T.value).success)m.push(w);else{let R=dee(T.value);R.changed&&R.value!==null&&typeof R.value=="object"&&C.safeParse(R.value).success?m.push({value:R.value,repaired:!0,truncated:b.truncated,rootAligned:b.rootAligned}):Array.isArray(T.value)&&T.value.length===1&&T.value[0]!==null&&typeof T.value[0]=="object"&&!Array.isArray(T.value[0])&&C.safeParse(T.value[0]).success&&m.push({value:T.value[0],repaired:!0,truncated:b.truncated,rootAligned:b.rootAligned})}}let y=m.length>0?m.reduce((b,T)=>JSON.stringify(T.value).length>JSON.stringify(b.value).length?T:b):void 0,x=y??p;if(a&&y===void 0&&(x===void 0||!x.rootAligned)){let b=Mqt(r.slice(o));b!==void 0?(g.debug("[coerceJsonToSchema] salvaged a partial truncated object",{textLength:r.length}),x={value:b,repaired:!0,truncated:!0,rootAligned:!0}):x!==void 0&&(x={...x,truncated:!0})}return x===void 0?null:{content:JSON.stringify(x.value),structuredData:x.value,repaired:x.repaired,truncated:x.truncated}}var Iqt,Pqt,pee=E(()=>{"use strict";oNe();Y();sNe();Iqt=6,Pqt=8});function lNe(r){let e=[],t=[];for(let n of r)n.role==="system"?e.push(n):t.push(n);return e.length===0||t.length===0?{system:void 0,messages:r}:{system:e,messages:t}}var cNe=E(()=>{"use strict"});var mee={};de(mee,{coerceType:()=>lz,createToolCallRepair:()=>Oqt});function Oqt(){return async({toolCall:r,tools:e,inputSchema:t,error:n})=>{let{NoSuchToolError:o,InvalidToolInputError:s}=await Promise.resolve().then(()=>(Mp(),uke));if(o.isInstance(n))return Nqt(r,Object.keys(e));if(s.isInstance(n))try{let i=await t({toolName:r.toolName});return Dqt(r,i)}catch{return null}return null}}function Nqt(r,e){let t=r.toolName;if(!t||t.trim().length===0)return null;let n=e.find(l=>l.toLowerCase()===t.toLowerCase());if(n)return g.debug(`[ToolCallRepair] Name repair (case): "${t}" \u2192 "${n}"`),{...r,toolName:n};let o=t.toLowerCase(),s=e.filter(l=>{let c=l.toLowerCase();return c.includes(o)||o.includes(c)});if(s.length===1)return g.debug(`[ToolCallRepair] Name repair (substring): "${t}" \u2192 "${s[0]}"`),{...r,toolName:s[0]};let i=null,a=1/0;for(let l of e){let c=uNe(o,l.toLowerCase()),u=Math.max(t.length,l.length),p=u===0?0:c/u;p<.3&&p<a&&(a=p,i=l)}return i?(g.debug(`[ToolCallRepair] Name repair (levenshtein ${a.toFixed(2)}): "${t}" \u2192 "${i}"`),{...r,toolName:i}):(g.debug(`[ToolCallRepair] Could not repair tool name "${t}". Available: [${e.join(", ")}]`),null)}function Dqt(r,e){let t;try{t=JSON.parse(r.input)}catch{return null}if(!t||typeof t!="object"||Array.isArray(t))return null;let n=e.properties;if(!n)return null;let o=Object.keys(n),s=t,i=Object.keys(s),a=Object.create(null),l=!1,c=e.additionalProperties===!1;for(let u of i){if(o.includes(u)){a[u]=s[u];continue}let p=Lqt(u,o);if(p){if(Object.prototype.hasOwnProperty.call(a,p)){l=!0;continue}g.debug(`[ToolCallRepair] Param repair: "${u}" \u2192 "${p}" (tool: ${r.toolName})`),a[p]=s[u],l=!0}else c?(g.debug(`[ToolCallRepair] Dropping unmapped key "${u}" (additionalProperties: false, tool: ${r.toolName})`),l=!0):a[u]=s[u]}for(let u of Object.keys(a)){let p=n[u];if(!p)continue;let m=lz(a[u],p);m!==a[u]&&(g.debug(`[ToolCallRepair] Type coercion on "${u}": ${typeof a[u]} \u2192 ${typeof m} (tool: ${r.toolName})`),a[u]=m,l=!0)}return l?{...r,input:JSON.stringify(a)}:null}function Lqt(r,e){let t=r.toLowerCase(),n=e.find(i=>i.toLowerCase()===t);if(n)return n;let o=null,s=1/0;for(let i of e){let a=uNe(t,i.toLowerCase());a<=2&&a<s&&(s=a,o=i)}return o}function lz(r,e){let t=e.type;if(!t||r===null||r===void 0)return r;if(t==="number"&&typeof r=="string"){let n=r.trim();if(n!==""){let o=Number(n);if(isFinite(o))return o}}if(t==="integer"&&typeof r=="string"){let n=r.trim();if(/^[+-]?\d+$/.test(n)){let o=Number(n);if(Number.isSafeInteger(o))return o}}if(t==="boolean"&&typeof r=="string"){if(r.toLowerCase()==="true")return!0;if(r.toLowerCase()==="false")return!1}if(t==="object"&&typeof r=="string")try{let n=JSON.parse(r);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}if(t==="array"&&typeof r=="string")try{let n=JSON.parse(r);if(Array.isArray(n))return n}catch{}return t==="array"&&!Array.isArray(r)&&typeof r!="string"?[r]:r}function uNe(r,e){if(r===e)return 0;if(r.length===0)return e.length;if(e.length===0)return r.length;r.length>e.length&&([r,e]=[e,r]);let t=r.length,n=e.length,o=new Array(t+1),s=new Array(t+1);for(let i=0;i<=t;i++)o[i]=i;for(let i=1;i<=n;i++){s[0]=i;for(let a=1;a<=t;a++){let l=r[a-1]===e[i-1]?0:1;s[a]=Math.min(o[a]+1,s[a-1]+1,o[a-1]+l)}[o,s]=[s,o]}return o[t]}var cz=E(()=>{"use strict";Y()});function Fqt(r){if(r===void 0)return"";try{return((typeof r=="string"?r:JSON.stringify(r))??"").substring(0,200)}catch{return"[unserializable]"}}function $qt(r,e){let t=sl(r.timeout),n=typeof r.turnTimeoutMs=="number"&&Number.isFinite(r.turnTimeoutMs)&&r.turnTimeoutMs>0;r.turnTimeoutMs!==void 0&&!n&&g.warn("[GenerationHandler] Ignoring invalid turnTimeoutMs \u2014 expected a positive number of milliseconds; falling back to the timeout option",{turnTimeoutMs:r.turnTimeoutMs});let o=n?r.turnTimeoutMs:t,s=o?Math.min(r.wrapupTimeLeadMs??jA,Math.floor(o/4)):0;!n&&o!==void 0&&s>0&&(o=o-s,s=Math.min(s,Math.floor(o/4)));let i=o?e+o:void 0;return{callerTimeoutMs:t,turnBudgetMs:o,wrapupLeadMs:s,turnDeadline:i}}function Bqt(r,e,t,n){let o={};return t!==void 0&&(o.neurolink={timeoutMs:t}),n&&(o.anthropic={finalResultSchema:n}),r.thinkingConfig?.enabled&&e&&(o.google={thinkingConfig:{...r.thinkingConfig.thinkingLevel&&{thinkingLevel:r.thinkingConfig.thinkingLevel},...r.thinkingConfig.budgetTokens&&!r.thinkingConfig.thinkingLevel&&{thinkingBudget:r.thinkingConfig.budgetTokens},includeThoughts:!0}}),Object.keys(o).length>0?o:void 0}function zqt(r,e){let t=r?.messages??e;return{...r??{},messages:[...t,{role:"user",content:"The time budget for this task is nearly exhausted. Do not call any more tools. Give your best final answer NOW from the information already gathered, and note anything you could not verify in the remaining time."}],toolChoice:"none"}}var Uqt,TI,dNe=E(()=>{"use strict";gr();POe();lg();Ar();Y();pI();Du();hh();_l();Ww();us();VOe();oz();pee();Ea();Mp();TA();nv();cNe();Uqt=Oe.generation;TI=class{constructor(e,t,n,o,s,i={}){this.providerName=e;this.modelName=t;this.supportsToolsFn=n;this.getTelemetryConfigFn=o;this.handleToolStorageFn=s;this.deps=i}providerName;modelName;supportsToolsFn;getTelemetryConfigFn;handleToolStorageFn;deps;async callGenerateText(e,t,n,o,s){let{shouldUseTools:i,includeStructuredOutput:a,turnStartMs:l}=s,c=this.providerName==="google-ai"||this.providerName==="vertex",u=this.providerName==="anthropic"||this.providerName==="bedrock"||this.providerName==="vertex"&&this.modelName?.startsWith("claude-"),m=a&&(!!o.schema||o.output?.format==="json"||o.output?.format==="structured")&&!yI(this.providerName,this.modelName,i,Object.keys(n).length),f=n;if(u&&i&&Object.keys(f).length>0){let U=Object.keys(f),N=U[U.length-1];if(N&&f[N]){let z=f[N];f[N]={...z,providerOptions:{...z.providerOptions??{},anthropic:{cacheControl:{type:"ephemeral"}}}}}}let h=o.prepareStep,{callerTimeoutMs:y,turnBudgetMs:x,wrapupLeadMs:b,turnDeadline:T}=$qt(o,l),w=!1,C=this.providerName==="anthropic"&&o.schema&&i&&Object.keys(n).length>0?xn(o.schema):void 0,R=Bqt(o,c,y,C),{system:k,messages:P}=lNe(t),I={toolCount:-1,tokens:0},A=qOe({provider:this.providerName??"unknown",model:this.modelName,maxTokens:o.maxTokens,getFixedOverheadTokens:()=>{let U=i?Object.keys(f).length:0;return U!==I.toolCount&&(I={toolCount:U,tokens:GOe(k,i?f:void 0,this.providerName)}),I.tokens}}),M=_a(this.providerName,dI(e,this.modelName||""),o.temperature!==void 0?{temperature:o.temperature}:{},"aiSdk.generateText"),F=await(this.deps.generateTextFn??Xm)({model:e,...k&&{system:k},messages:P,...i&&Object.keys(f).length>0&&{tools:f},stopWhen:gA(o.maxSteps??cs),...i&&o.toolChoice&&{toolChoice:o.toolChoice},experimental_prepareStep:(async U=>{let N=h?await h({...U,maxSteps:o.maxSteps??cs}):void 0,z=N?.messages,j=U.steps[U.steps.length-1],$=A(z??U.messages,j?.usage?.inputTokens),B=$?{...N??{},messages:$}:N;return T!==void 0&&i&&Date.now()>=T-b?(w||(w=!0,g.warn("[GenerationHandler] Turn budget nearly exhausted \u2014 forcing wrap-up (toolChoice: none)",{provider:this.providerName,turnBudgetMs:x,wrapupLeadMs:b,stepNumber:U.stepNumber})),zqt(B,U.messages)):B}),temperature:M.temperature,maxOutputTokens:o.maxTokens,maxRetries:0,abortSignal:o.abortSignal,...i&&!o.disableToolCallRepair&&{experimental_repairToolCall:(async(...U)=>{let{createToolCallRepair:N}=await Promise.resolve().then(()=>(cz(),mee));return N()(...U)})},...R&&{providerOptions:R},...m&&o.schema&&{experimental_output:t$.object({schema:o.schema})},...o.thinkingConfig?.enabled&&u&&o.thinkingConfig.budgetTokens&&!o.thinkingConfig.thinkingLevel&&{experimental_thinking:{type:"enabled",budgetTokens:o.thinkingConfig.budgetTokens}},experimental_telemetry:this.getTelemetryConfigFn(o,"generate"),onStepFinish:({toolCalls:U,toolResults:N})=>{g.info("Tool execution completed",{toolResults:N,toolCalls:U}),Ih(this.deps.getEmitterFn?.(),N),this.handleToolStorageFn(U,N,o,new Date).catch(z=>{g.warn("[GenerationHandler] Failed to store tool executions",{provider:this.providerName,error:z instanceof Error?z.message:String(z)})})}});return w&&Object.defineProperty(F,"__nlTurnWrapup",{value:!0,enumerable:!1}),F}async executeGeneration(e,t,n,o){return Uqt.startActiveSpan("neurolink.executeGeneration",{kind:hr.INTERNAL},async s=>{let i=!o.disableTools&&this.supportsToolsFn(),a=Object.keys(n||{}).length,l=!!o.schema||o.output?.format==="json"||o.output?.format==="structured";s.setAttribute("gen_ai.system",this.providerName||"unknown"),s.setAttribute("neurolink.structured_output",l),s.setAttribute("neurolink.tool_count",a),s.setAttribute("neurolink.message_count",t.length),s.setAttribute("gen_ai.request.model",dI(e,this.modelName||"unknown"));let c=o.requestId||o.context?.requestId||"unknown";if(g.info("[GenerationHandler] Calling generateText",{requestId:c,model:dI(e),messageCount:t.length,toolCount:a,maxSteps:o.maxSteps,temperature:o.temperature}),g.shouldLog("debug"))try{g.debug("[Observability] Full generateText parameters",{requestId:c,model:dI(e),messageCount:t.length,messages:t.map((p,m)=>({index:m,role:p.role,contentLength:typeof p.content=="string"?p.content.length:Fqt(p.content).length,contentPreview:typeof p.content=="string"?p.content.substring(0,200):"[multimodal]"})),toolNames:Object.keys(n||{}),toolCount:a,maxSteps:o.maxSteps,temperature:o.temperature,maxTokens:o.maxTokens})}catch{}let u=Date.now();try{let p=await Op(()=>this.callGenerateText(e,t,n,o,{shouldUseTools:i,includeStructuredOutput:!0,turnStartMs:u}),s,"generateText");return g.info("[GenerationHandler] generateText returned",{requestId:c,durationMs:Date.now()-u,finishReason:p.finishReason,steps:p.steps?.length||1,toolCallsTotal:p.toolCalls?.length||0,responseChars:p.text?.length||0}),g.shouldLog("debug")&&g.debug("[Observability] LLM response metadata",{requestId:c,responseLength:p.text?.length||0,hasToolCalls:!!(p.toolCalls&&p.toolCalls.length>0),toolCallCount:p.toolCalls?.length||0,toolNames:p.toolCalls?.map(m=>m.toolName),finishReason:p.finishReason,stepCount:p.steps?.length||0,steps:p.steps?.map((m,f)=>({stepIndex:f,stepType:m.stepType,textLength:m.text?.length||0,toolCallCount:m.toolCalls?.length||0,toolNames:m.toolCalls?.map(h=>h.toolName),toolResultCount:m.toolResults?.length||0,finishReason:m.finishReason})),usage:p.usage}),this.setUsageSpanAttributes(s,p),p.finishReason&&s.setAttribute("gen_ai.response.finish_reason",p.finishReason),s.setStatus({code:Fe.OK}),p}catch(p){let m=l&&nz(p);if(l&&(p instanceof Qi||HOe(p)||m)){s.setAttribute("neurolink.has_fallback",!0),s.addEvent("retry.initial_failure",{"error.message":p instanceof Error?p.message:String(p),"retry.attempt":1,"retry.reason":p instanceof Qi?"NoObjectGeneratedError_structured_output_fallback":m?"schema_complexity_structured_output_fallback":"tools_schema_conflict_structured_output_fallback"}),m?g.warn("[GenerationHandler] schema too complex for provider constrained decoding \u2014 retrying with prompt-based JSON",{provider:this.providerName,model:this.modelName,error:p instanceof Error?p.message:String(p)}):g.debug("[GenerationHandler] structured-output conflict caught - falling back to manual JSON extraction",{provider:this.providerName,model:this.modelName,error:p instanceof Error?p.message:String(p)});let h=await Op(()=>this.callGenerateText(e,t,n,o,{shouldUseTools:i,includeStructuredOutput:!1,turnStartMs:u}),s,"generateText(fallback)");return s.addEvent("retry.recovered",{"retry.attempts":2,"retry.strategy":"structured_output_disabled"}),s.setAttribute("retry.count",1),g.info("[GenerationHandler] generateText returned (fallback)",{requestId:c,durationMs:Date.now()-u,finishReason:h.finishReason,steps:h.steps?.length||1,toolCallsTotal:h.toolCalls?.length||0,responseChars:h.text?.length||0}),this.setUsageSpanAttributes(s,h),h.finishReason&&s.setAttribute("gen_ai.response.finish_reason",h.finishReason),s.setStatus({code:Fe.OK}),h}if(KOe(p)&&typeof o.temperature=="number"){s.setAttribute("neurolink.has_fallback",!0),s.addEvent("retry.initial_failure",{"error.message":p instanceof Error?p.message:String(p),"retry.attempt":1,"retry.reason":"temperature_deprecated"}),g.debug("[GenerationHandler] temperature-deprecated error caught - retrying without temperature",{provider:this.providerName,model:this.modelName,error:p instanceof Error?p.message:String(p)});let h=await Op(()=>this.callGenerateText(e,t,n,{...o,temperature:void 0},{shouldUseTools:i,includeStructuredOutput:!0,turnStartMs:u}),s,"generateText(no-temperature)");return s.addEvent("retry.recovered",{"retry.attempts":2,"retry.strategy":"temperature_omitted"}),s.setAttribute("retry.count",1),this.setUsageSpanAttributes(s,h),h.finishReason&&s.setAttribute("gen_ai.response.finish_reason",h.finishReason),s.setStatus({code:Fe.OK}),h}throw s.setStatus({code:Fe.ERROR,message:p instanceof Error?p.message:String(p)}),p}finally{s.end()}})}setUsageSpanAttributes(e,t){let n=t.totalUsage??t.usage;if(!n)return;e.setAttribute("gen_ai.usage.input_tokens",n.inputTokens||0),e.setAttribute("gen_ai.usage.output_tokens",n.outputTokens||0);let o=Xo(this.providerName,this.modelName,Nd(n));e.setAttribute("neurolink.cost",o??0)}extractCacheMetricsFromProviderMetadata(e){let t=e.providerMetadata;if(!t)return{};let n=t.anthropic;if(n){let o=HQ(n),s=KQ(n);return{...o!==void 0&&{cacheCreationTokens:o},...s!==void 0&&{cacheReadTokens:s}}}return{}}logGenerationComplete(e){let t=this.extractCacheMetricsFromProviderMetadata(e);g.shouldLog("debug")&&g.debug("generateText completed",{provider:this.providerName,model:this.modelName,responseLength:e.text?.length||0,toolResultsCount:e.toolResults?.length||0,finishReason:e.finishReason,usage:e.usage,...t.cacheCreationTokens!==void 0&&{cacheCreationTokens:t.cacheCreationTokens},...t.cacheReadTokens!==void 0&&{cacheReadTokens:t.cacheReadTokens},timestamp:Date.now()})}extractToolInformation(e){let t=[],n=[];if(e.toolCalls&&e.toolCalls.length>0&&t.push(...e.toolCalls.map(o=>o.toolName||o.name||"unknown")),e.steps&&Array.isArray(e.steps)){let o=new Map;for(let s of e.steps||[]){if(s?.toolCalls&&Array.isArray(s.toolCalls))for(let i of s.toolCalls){let a=i,l=a.toolName||a.name||"unknown",c=a.toolCallId||a.id||l;t.push(l);let u={};a.args?u=a.args:a.arguments?u=a.arguments:a.parameters&&(u=a.parameters),o.set(c,u),o.set(l,u)}if(s?.toolResults&&Array.isArray(s.toolResults))for(let i of s.toolResults){let a=i,l=a.toolName||"unknown",c=a.toolCallId||a.id,u=a.args??a.arguments??a.parameters??a.input??o.get(c||l)??{};n.push({name:l,input:u,output:a.output??a.result??"success"})}}}return{toolsUsed:[...new Set(t)],toolExecutions:n}}formatEnhancedResult(e,t,n,o,s){let i=!!s.schema||s.output?.format==="json"||s.output?.format==="structured",a,l,c=!1,u=!1,p=C=>{let R=C.replace(/^```(?:json)?\s*\n?/i,"").replace(/\n?```\s*$/i,"").trim(),k=az(R,s.schema);if(k)return l=k.structuredData,k.repaired&&(c=!0),k.truncated&&(u=!0),k.content;let P=iz(R,s.schema);switch(P.kind){case"empty":return g.warn("[GenerationHandler] schema requested but the model returned an empty JSON string; normalizing to empty content",{provider:this.providerName,model:this.modelName}),"";case"accepted":return l=P.value,R;case"rejected":return g.warn("[GenerationHandler] recovered a JSON scalar the requested schema rejects; leaving structuredData unset",{provider:this.providerName,model:this.modelName,scalarType:typeof P.value}),R;case"nullish":case"not-json":return g.warn("[GenerationHandler] schema requested but no JSON could be recovered from model text; returning raw text",{provider:this.providerName,model:this.modelName}),R}};if(i)try{let C=e.experimental_output,R=typeof C=="string"&&C===(e.text??""),k=typeof C=="string"&&!!s.schema&&!bI(s.schema,C);C!==void 0&&!R&&!k?(l=C,a=JSON.stringify(C)):a=p(e.text||"")}catch(C){g.debug("[GenerationHandler] experimental_output threw, falling back to text parsing",{error:C instanceof Error?C.message:String(C)}),a=p(e.text||"")}else a=e.text;i&&e.finishReason==="length"&&(u=!0,g.warn("[GenerationHandler] Structured output truncated by token cap (finishReason=length); increase maxTokens",{provider:this.providerName,model:this.modelName}));let m=Nd(e.totalUsage??e.usage);if(m.cacheCreationTokens===void 0||m.cacheReadTokens===void 0){let C=this.extractCacheMetricsFromProviderMetadata(e);if(m.cacheCreationTokens===void 0&&C.cacheCreationTokens!==void 0&&(m.cacheCreationTokens=C.cacheCreationTokens),m.cacheReadTokens===void 0&&C.cacheReadTokens!==void 0&&(m.cacheReadTokens=C.cacheReadTokens),m.cacheReadTokens!==void 0){let R=WQ(m.cacheReadTokens,m.input);R!==void 0&&(m.cacheSavingsPercent=R)}}let f=e.reasoning,h=f?typeof f=="string"?f:Array.isArray(f)?f.map(C=>typeof C=="string"?C:C.text??JSON.stringify(C)).join(`
843
843
  `):String(f):void 0,y=m.reasoning??void 0,x=e.steps,b=Array.isArray(x)?x.length:void 0,T=s.maxSteps??cs,w;return e.__nlTurnWrapup===!0?w="time-limit":b!==void 0&&b>=T&&e.finishReason==="tool-calls"?w="step-cap":e.finishReason==="error"?w="provider-error":b!==void 0&&(w="completed"),{content:a,structuredData:l,usage:m,finishReason:e.finishReason,stopReason:w,stepsUsed:b,jsonRepaired:c||void 0,jsonTruncated:u||void 0,provider:this.providerName,model:this.modelName,reasoning:h,reasoningTokens:y,toolCalls:e.toolCalls?e.toolCalls.map(C=>({toolCallId:C.toolCallId||"unknown",toolName:C.toolName||"unknown",args:C.args||{}})):[],toolResults:e.toolResults??[],toolsUsed:n,toolExecutions:o,availableTools:Object.keys(t).map(C=>{let R=t[C];return{name:C,description:R.description||"No description available",parameters:R.inputSchema||{},server:R.serverId||"direct"}})}}analyzeAIResponse(e){if(e===null||typeof e!="object")return;let t=e;g.debug("NeuroLink Raw AI Response Analysis",{provider:this.providerName,model:this.modelName,responseTextLength:t.text?.length||0,responsePreview:t.text?.substring(0,500)??"",finishReason:t.finishReason,usage:t.usage});let n={hasToolCalls:!!t.toolCalls,toolCallsLength:t.toolCalls?.length||0,toolCalls:t.toolCalls?.map((o,s)=>{let i=o,a=i.toolName||i.name||"unknown";return{index:s+1,toolName:a,toolId:i.toolCallId||i.id||"none",hasArgs:!!i.args,argsKeys:i.args&&typeof i.args=="object"?Object.keys(i.args):[]}})||[]};g.debug("Tool Calls Analysis",n)}}});var pg={};de(pg,{AsyncLocalStorage:()=>lVt,Buffer:()=>WHt,Channel:()=>UHt,DatabaseSync:()=>KHt,Duplex:()=>uVt,EventEmitter:()=>aVt,Http2ServerRequest:()=>QHt,Http2ServerResponse:()=>e4t,Interface:()=>HHt,MIMEType:()=>i4t,PassThrough:()=>dVt,PerformanceObserver:()=>NHt,Readable:()=>mNe,ReadableStream:()=>pVt,Resolver:()=>MHt,TextDecoder:()=>hNe,TextEncoder:()=>uz,Transform:()=>cVt,URL:()=>vHt,URLSearchParams:()=>bHt,Worker:()=>zHt,Writable:()=>gNe,access:()=>LVt,appendFile:()=>vVt,appendFileSync:()=>Wqt,arch:()=>ZVt,arrayBuffer:()=>t4t,basename:()=>eVt,builtinModules:()=>fHt,callbackify:()=>RHt,channel:()=>LHt,chmodSync:()=>xVt,clearInterval:()=>s4t,clearTimeout:()=>n4t,closeSync:()=>wVt,connect:()=>rHt,constants:()=>JHt,copyFileSync:()=>TVt,cpSync:()=>Jqt,cpus:()=>WVt,createConnection:()=>nHt,createGunzip:()=>uHt,createGzip:()=>dHt,createHash:()=>pNe,createHmac:()=>qqt,createInterface:()=>VHt,createReadStream:()=>OVt,createRequire:()=>gHt,createServer:()=>Xqt,createWriteStream:()=>MVt,debug:()=>EHt,debuglog:()=>fNe,default:()=>jqt,deflateSync:()=>sHt,deprecate:()=>CHt,deserialize:()=>BHt,dirname:()=>Qqt,exec:()=>BVt,execFile:()=>jVt,execFileSync:()=>GVt,execSync:()=>zVt,existsSync:()=>fVt,extname:()=>tVt,fileURLToPath:()=>THt,finished:()=>gVt,format:()=>xHt,freemem:()=>JVt,fstatSync:()=>_Vt,get:()=>tHt,gunzip:()=>cHt,gunzipSync:()=>iHt,gzip:()=>lHt,gzipSync:()=>aHt,hasSubscribers:()=>FHt,homedir:()=>VVt,hostname:()=>KVt,inflateSync:()=>oHt,inherits:()=>wHt,inspect:()=>mz,isAbsolute:()=>nVt,isBuiltin:()=>hHt,isDeepStrictEqual:()=>kHt,isIP:()=>ZHt,isIPv4:()=>YHt,isIPv6:()=>XHt,isMainThread:()=>jHt,join:()=>Yqt,lookup:()=>PHt,mkdir:()=>gee,mkdirSync:()=>EVt,monitorEventLoopDelay:()=>DHt,normalize:()=>iVt,ok:()=>pHt,open:()=>dz,openSync:()=>SVt,parentPort:()=>GHt,parse:()=>yHt,pathToFileURL:()=>SHt,performance:()=>OHt,pipeline:()=>mVt,platform:()=>qVt,posix:()=>sVt,promises:()=>Gqt,promisify:()=>_Ht,randomBytes:()=>Vqt,randomUUID:()=>Hqt,readFile:()=>dg,readFileSync:()=>hVt,readdir:()=>NVt,readdirSync:()=>RVt,realpath:()=>pz,realpathSync:()=>bVt,relative:()=>rVt,release:()=>QVt,rename:()=>UVt,renameSync:()=>AVt,request:()=>eHt,resolve:()=>Zqt,rm:()=>FVt,rmSync:()=>PVt,rmdirSync:()=>IVt,sep:()=>oVt,serialize:()=>$Ht,setInterval:()=>o4t,setTimeout:()=>r4t,spawn:()=>$Vt,stat:()=>Yw,statSync:()=>CVt,strict:()=>mHt,tmpdir:()=>HVt,toUSVString:()=>AHt,totalmem:()=>XVt,type:()=>YVt,types:()=>IHt,unlink:()=>DVt,unlinkSync:()=>kVt,webcrypto:()=>Kqt,workerData:()=>qHt,writeFile:()=>Xw,writeFileSync:()=>yVt});var ys,Io,jqt,Gqt,pNe,qqt,Vqt,Hqt,Kqt,Wqt,Jqt,Xqt,Yqt,Zqt,Qqt,eVt,tVt,rVt,nVt,oVt,sVt,iVt,aVt,lVt,mNe,gNe,cVt,uVt,dVt,pVt,mVt,gVt,fVt,hVt,yVt,xVt,vVt,bVt,TVt,SVt,wVt,_Vt,EVt,CVt,RVt,kVt,AVt,IVt,PVt,MVt,OVt,dg,Xw,gee,Yw,NVt,DVt,LVt,UVt,FVt,dz,pz,$Vt,BVt,zVt,jVt,GVt,qVt,VVt,HVt,KVt,WVt,JVt,XVt,YVt,ZVt,QVt,eHt,tHt,rHt,nHt,oHt,sHt,iHt,aHt,lHt,cHt,uHt,dHt,pHt,mHt,gHt,fHt,hHt,yHt,xHt,vHt,bHt,THt,SHt,wHt,_Ht,fNe,EHt,mz,CHt,RHt,kHt,AHt,IHt,hNe,uz,PHt,MHt,OHt,NHt,DHt,LHt,UHt,FHt,$Ht,BHt,zHt,jHt,GHt,qHt,VHt,HHt,KHt,WHt,JHt,XHt,YHt,ZHt,QHt,e4t,t4t,yNe,r4t,n4t,o4t,s4t,i4t,Zc=E(()=>{ys=()=>{},Io=async()=>{},jqt={},Gqt={readFile:Io,writeFile:Io,mkdir:Io,stat:Io,readdir:Io,unlink:Io,access:Io,rm:Io,rename:Io},pNe=r=>{let e=[];return{update(t){return e.push(typeof t=="string"?new uz().encode(t):t),this},digest(t){let n=0;for(let s of e)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;let o=(n>>>0).toString(16).padStart(8,"0");return t==="hex"?o:t==="base64"?btoa(o):o}}},qqt=(r,e)=>pNe(r),Vqt=r=>new Uint8Array(r||32),Hqt=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),Kqt=globalThis.crypto,Wqt=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},Jqt=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},Xqt=()=>({listen:ys,close:ys,on:ys}),Yqt=(...r)=>r.join("/"),Zqt=(...r)=>r.join("/"),Qqt=r=>r||"",eVt=r=>r?.split?.("/")?.pop?.()||"",tVt=r=>{let e=r?.match?.(/\.[^.]+$/);return e?e[0]:""},rVt=(r,e)=>e||"",nVt=()=>!1,oVt="/",sVt={normalize:r=>r,join:(...r)=>r.join("/"),resolve:(...r)=>r.join("/"),sep:"/"},iVt=r=>r,aVt=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},lVt=class{getStore(){}run(r,e,...t){return e(...t)}enterWith(){}disable(){}},mNe=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},gNe=class{write(){return!0}end(){}on(){return this}destroy(){}},cVt=class{push(){}on(){return this}},uVt=class{on(){return this}},dVt=class{pipe(){return this}on(){return this}},pVt=globalThis.ReadableStream||class{},mVt=ys,gVt=ys,fVt=()=>!1,hVt=()=>"",yVt=ys,xVt=ys,vVt=Io,bVt=r=>r,TVt=ys,SVt=()=>0,wVt=ys,_Vt=()=>({}),EVt=ys,CVt=()=>({}),RVt=()=>[],kVt=ys,AVt=ys,IVt=ys,PVt=ys,MVt=()=>new gNe,OVt=()=>new mNe,dg=Io,Xw=Io,gee=Io,Yw=Io,NVt=Io,DVt=Io,LVt=Io,UVt=Io,FVt=Io,dz=async()=>({stat:Io,readFile:Io,close:Io,read:Io,write:Io}),pz=async r=>r,$Vt=()=>({on:ys,stdout:{on:ys},stderr:{on:ys},kill:ys}),BVt=(r,e)=>e?.(null,"",""),zVt=()=>"",jVt=(r,e,t)=>{typeof e=="function"?e(null,"",""):t?.(null,"","")},GVt=()=>"",qVt="browser",VVt=()=>"/",HVt=()=>"/tmp",KVt=()=>"browser",WVt=()=>[{}],JVt=()=>0,XVt=()=>0,YVt=()=>"Browser",ZVt=()=>"wasm",QVt=()=>"0",eHt=()=>({}),tHt=()=>({}),rHt=()=>({}),nHt=()=>({}),oHt=()=>new Uint8Array,sHt=()=>new Uint8Array,iHt=()=>new Uint8Array,aHt=()=>new Uint8Array,lHt=(r,e)=>e?.(null,r),cHt=(r,e)=>e?.(null,r),uHt=()=>({}),dHt=()=>({}),pHt=ys,mHt={},gHt=()=>()=>({}),fHt=[],hHt=()=>!1,yHt=r=>({pathname:r||"",hostname:"",protocol:"",search:"",hash:""}),xHt=()=>"",vHt=globalThis.URL,bHt=globalThis.URLSearchParams,THt=r=>typeof r=="string"?r.replace("file://",""):r,SHt=r=>new globalThis.URL("file://"+r),wHt=(r,e)=>{e&&(r.super_=e,Object.setPrototypeOf(r.prototype,e.prototype))},_Ht=r=>(...e)=>new Promise((t,n)=>r(...e,(o,s)=>o?n(o):t(s))),fNe=r=>{let e=(...t)=>{};return e.enabled=!1,e},EHt=fNe,mz=r=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}};mz.custom=Symbol.for("nodejs.util.inspect.custom");mz.colors={};mz.styles={};CHt=r=>r,RHt=r=>(...e)=>{let t=e.pop();r(...e).then(n=>t(null,n)).catch(t)},kHt=(r,e)=>JSON.stringify(r)===JSON.stringify(e),AHt=r=>String(r),IHt={isPromise:r=>r instanceof Promise,isDate:r=>r instanceof Date,isRegExp:r=>r instanceof RegExp,isNativeError:r=>r instanceof Error,isArrayBuffer:r=>r instanceof ArrayBuffer,isTypedArray:r=>ArrayBuffer.isView(r),isUint8Array:r=>r instanceof Uint8Array,isProxy:()=>!1},hNe=globalThis.TextDecoder,uz=globalThis.TextEncoder,PHt=(r,e)=>e?.(null,"127.0.0.1",4),MHt=class{},OHt=globalThis.performance||{now:()=>Date.now()},NHt=class{observe(){}disconnect(){}},DHt=()=>({enable:ys,disable:ys,percentile:()=>0}),LHt=()=>({}),UHt=class{},FHt=()=>!1,$Ht=()=>new Uint8Array,BHt=ys,zHt=class{},jHt=!0,GHt=null,qHt=null,VHt=()=>({}),HHt=class{},KHt=class{},WHt=globalThis.Buffer||class extends Uint8Array{static from(e,t){if(typeof e=="string"){let n=(t||"utf8").toLowerCase();if(n==="base64"){let o=atob(e),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){let o=new Uint8Array(e.length/2);for(let s=0;s<e.length;s+=2)o[s/2]=parseInt(e.substr(s,2),16);return o}return new uz().encode(e)}return new Uint8Array(e)}static alloc(e){return new Uint8Array(e)}static isBuffer(e){return e instanceof Uint8Array}static concat(e){let t=e.reduce((s,i)=>s+i.length,0),n=new Uint8Array(t),o=0;for(let s of e)n.set(s,o),o+=s.length;return n}static byteLength(e,t){return t==="base64"?Math.ceil(e.length*3/4):new uz().encode(e).length}toString(e){let t=(e||"utf8").toLowerCase();if(t==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new hNe().decode(this)}},JHt={F_OK:0,R_OK:4,W_OK:2,X_OK:1},XHt=()=>!1,YHt=()=>!1,ZHt=()=>0,QHt=class{},e4t=class{},t4t=async()=>new ArrayBuffer(0),yNe=r=>({[Symbol.toPrimitive](){return r},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),r4t=(...r)=>yNe(globalThis.setTimeout(...r)),n4t=globalThis.clearTimeout,o4t=(...r)=>yNe(globalThis.setInterval(...r)),s4t=globalThis.clearInterval,i4t=class{constructor(r){this.type=r}toString(){return this.type}}});var hee={};de(hee,{Agent:()=>SI,BedrockClient:()=>l4t,BedrockRuntimeClient:()=>u4t,Blob:()=>H4t,Client:()=>W4t,ConverseCommand:()=>d4t,ConverseStreamCommand:()=>p4t,Cron:()=>A4t,Dispatcher:()=>J4t,File:()=>V4t,FlowProducer:()=>k4t,FormData:()=>q4t,GoogleAuth:()=>y4t,HTTPException:()=>L4t,Headers:()=>G4t,Hippocampus:()=>T4t,HippocampusConfig:()=>S4t,Hono:()=>N4t,ImageFormat:()=>m4t,InvokeEndpointCommand:()=>f4t,InvokeEndpointWithResponseStreamCommand:()=>h4t,Job:()=>C4t,ListFoundationModelsCommand:()=>c4t,MockAgent:()=>Y4t,Pool:()=>K4t,Queue:()=>_4t,QueueScheduler:()=>R4t,Request:()=>z4t,Response:()=>j4t,SageMakerRuntimeClient:()=>g4t,TextToSpeechClient:()=>v4t,VertexAI:()=>x4t,Webhook:()=>b4t,Worker:()=>E4t,convertToHtml:()=>O4t,cors:()=>D4t,createClient:()=>w4t,default:()=>a4t,extractRawText:()=>M4t,fetch:()=>fee,getGlobalDispatcher:()=>Rv,interceptors:()=>kv,logger:()=>U4t,parseBuffer:()=>I4t,request:()=>Av,secureHeaders:()=>F4t,selectCover:()=>P4t,setGlobalDispatcher:()=>X4t,streamSSE:()=>$4t,timeout:()=>B4t});var Zw,hi,a4t,l4t,c4t,u4t,d4t,p4t,m4t,g4t,f4t,h4t,y4t,x4t,v4t,b4t,T4t,S4t,w4t,_4t,E4t,C4t,R4t,k4t,A4t,I4t,P4t,M4t,O4t,N4t,D4t,L4t,U4t,F4t,$4t,B4t,fee,z4t,j4t,G4t,q4t,V4t,H4t,SI,K4t,W4t,J4t,X4t,Rv,Y4t,kv,Av,Iv=E(()=>{Zw={get(r,e){return e==="__esModule"?!0:e==="default"?new Proxy({},{get:Zw.get}):new Proxy(function(...t){return new Proxy({},{get:Zw.get})},{get:Zw.get,apply(t,n,o){return new Proxy({},{get:Zw.get})},construct(t,n){return new Proxy({},{get:Zw.get})}})}},hi=new Proxy({},Zw),a4t=hi,{BedrockClient:l4t,ListFoundationModelsCommand:c4t,BedrockRuntimeClient:u4t,ConverseCommand:d4t,ConverseStreamCommand:p4t,ImageFormat:m4t}=hi,{SageMakerRuntimeClient:g4t,InvokeEndpointCommand:f4t,InvokeEndpointWithResponseStreamCommand:h4t}=hi,{GoogleAuth:y4t,VertexAI:x4t,TextToSpeechClient:v4t}=hi,{Webhook:b4t}=hi,{Hippocampus:T4t,HippocampusConfig:S4t}=hi,{createClient:w4t}=hi,{Queue:_4t,Worker:E4t,Job:C4t,QueueScheduler:R4t,FlowProducer:k4t}=hi,{Cron:A4t}=hi,{parseBuffer:I4t,selectCover:P4t}=hi,{extractRawText:M4t,convertToHtml:O4t}=hi,{Hono:N4t}=hi,{cors:D4t,HTTPException:L4t,logger:U4t,secureHeaders:F4t,streamSSE:$4t,timeout:B4t}=hi,fee=globalThis.fetch,z4t=globalThis.Request,j4t=globalThis.Response,G4t=globalThis.Headers,q4t=globalThis.FormData,V4t=globalThis.File,H4t=globalThis.Blob,SI=hi.Agent,K4t=hi.Pool,W4t=hi.Client,J4t=hi.Dispatcher,X4t=()=>{},Rv=()=>hi,Y4t=hi.MockAgent,kv={redirect:()=>r=>r,retry:()=>r=>r},Av=async(r,e)=>{let t=await globalThis.fetch(r,e);return{statusCode:t.status,headers:Object.fromEntries(t.headers.entries()),body:{text:()=>t.text(),json:()=>t.json(),arrayBuffer:()=>t.arrayBuffer()}}}});function Z4t(){for(let r of Nh){for(let e of r.extensions){let t=wI.get(e);if(t)throw new Error(`File-type registry: extension "${e}" is claimed by both "${t.label}" and "${r.label}".`);wI.set(e,r)}for(let e of r.mimeTypes){let t=e.toLowerCase(),n=yee.get(t);if(n)throw new Error(`File-type registry: MIME type "${e}" is claimed by both "${n.label}" and "${r.label}".`);yee.set(t,r)}}}function Qw(r){let e=r.trim().toLowerCase();if(!e)return"";let t=e.slice(Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"))+1),n=t.indexOf(".");if(n===-1)return`.${t}`;for(let o=n;o!==-1;o=t.indexOf(".",o+1)){let s=t.slice(o);if(wI.has(s))return s}return t.slice(t.lastIndexOf("."))}function vNe(r){return wI.get(Qw(r))}function gz(r){return yee.get(r.split(";")[0].trim().toLowerCase())}function bNe(r){let e=Qw(r),t=xee[e];return t?t.fileType:wI.get(e)?.fileType}function TNe(r){return gz(r)?.extensions[0]}function Ud(r){return Nh.filter(e=>e.modality===r).flatMap(e=>[...e.extensions]).filter(e=>{let t=xee[e];return!t||t.modality===r})}function fz(r){return Nh.filter(e=>e.modality===r).flatMap(e=>[...e.mimeTypes])}var Nh,xee,xNe,wI,yee,Dh=E(()=>{"use strict";Nh=[{label:"JPEG image",extensions:[".jpg",".jpeg",".jpe",".jfif"],mimeTypes:["image/jpeg","image/jpg"],fileType:"image",modality:"image"},{label:"PNG image",extensions:[".png"],mimeTypes:["image/png"],fileType:"image",modality:"image"},{label:"Animated PNG",extensions:[".apng"],mimeTypes:["image/apng"],fileType:"image",modality:"image"},{label:"GIF image",extensions:[".gif"],mimeTypes:["image/gif"],fileType:"image",modality:"image"},{label:"WebP image",extensions:[".webp"],mimeTypes:["image/webp"],fileType:"image",modality:"image"},{label:"BMP image",extensions:[".bmp",".dib"],mimeTypes:["image/bmp","image/x-ms-bmp"],fileType:"image",modality:"image"},{label:"TIFF image",extensions:[".tiff",".tif"],mimeTypes:["image/tiff","image/x-tiff"],fileType:"image",modality:"image"},{label:"AVIF image",extensions:[".avif"],mimeTypes:["image/avif"],fileType:"image",modality:"image"},{label:"HEIC image",extensions:[".heic",".heics"],mimeTypes:["image/heic","image/heic-sequence"],fileType:"image",modality:"image"},{label:"HEIF image",extensions:[".heif",".heifs"],mimeTypes:["image/heif","image/heif-sequence"],fileType:"image",modality:"image"},{label:"JPEG 2000 image",extensions:[".jp2",".j2k",".jpf",".jpx"],mimeTypes:["image/jp2","image/jpx"],fileType:"image",modality:"image"},{label:"Icon",extensions:[".ico"],mimeTypes:["image/x-icon","image/vnd.microsoft.icon"],fileType:"image",modality:"image"},{label:"SVG image",extensions:[".svg",".svgz"],mimeTypes:["image/svg+xml"],fileType:"svg",modality:"image"},{label:"MP4 video",extensions:[".mp4",".m4v"],mimeTypes:["video/mp4","video/x-m4v"],fileType:"video",modality:"video"},{label:"QuickTime video",extensions:[".mov",".qt"],mimeTypes:["video/quicktime"],fileType:"video",modality:"video"},{label:"Matroska video",extensions:[".mkv"],mimeTypes:["video/x-matroska"],fileType:"video",modality:"video"},{label:"WebM video",extensions:[".webm"],mimeTypes:["video/webm"],fileType:"video",modality:"video"},{label:"AVI video",extensions:[".avi"],mimeTypes:["video/x-msvideo","video/avi","video/msvideo"],fileType:"video",modality:"video"},{label:"Windows Media video",extensions:[".wmv",".asf"],mimeTypes:["video/x-ms-wmv","video/x-ms-asf"],fileType:"video",modality:"video"},{label:"Flash video",extensions:[".flv",".f4v"],mimeTypes:["video/x-flv"],fileType:"video",modality:"video"},{label:"MPEG video",extensions:[".mpg",".mpeg",".mpe",".m1v",".m2v",".vob"],mimeTypes:["video/mpeg","video/x-mpeg"],fileType:"video",modality:"video"},{label:"MPEG transport stream",extensions:[".m2ts",".mts",".ts",".m2t"],mimeTypes:["video/mp2t"],fileType:"video",modality:"video"},{label:"3GPP video",extensions:[".3gp",".3gpp"],mimeTypes:["video/3gpp"],fileType:"video",modality:"video"},{label:"3GPP2 video",extensions:[".3g2",".3gpp2"],mimeTypes:["video/3gpp2"],fileType:"video",modality:"video"},{label:"Ogg video",extensions:[".ogv"],mimeTypes:["video/ogg"],fileType:"video",modality:"video"},{label:"MP3 audio",extensions:[".mp3",".mp2",".mpga"],mimeTypes:["audio/mpeg","audio/mp3","audio/x-mpeg"],fileType:"audio",modality:"audio"},{label:"WAV audio",extensions:[".wav",".wave"],mimeTypes:["audio/wav","audio/x-wav","audio/wave","audio/vnd.wave"],fileType:"audio",modality:"audio"},{label:"FLAC audio",extensions:[".flac"],mimeTypes:["audio/flac","audio/x-flac"],fileType:"audio",modality:"audio"},{label:"Ogg audio",extensions:[".ogg",".oga"],mimeTypes:["audio/ogg","audio/vorbis","audio/x-vorbis+ogg"],fileType:"audio",modality:"audio"},{label:"Opus audio",extensions:[".opus"],mimeTypes:["audio/opus"],fileType:"audio",modality:"audio"},{label:"MPEG-4 audio",extensions:[".m4a",".m4b",".m4p"],mimeTypes:["audio/mp4","audio/x-m4a","audio/m4a"],fileType:"audio",modality:"audio"},{label:"AAC audio",extensions:[".aac",".adts"],mimeTypes:["audio/aac","audio/aacp","audio/x-aac"],fileType:"audio",modality:"audio"},{label:"Windows Media audio",extensions:[".wma"],mimeTypes:["audio/x-ms-wma"],fileType:"audio",modality:"audio"},{label:"AIFF audio",extensions:[".aiff",".aif",".aifc"],mimeTypes:["audio/aiff","audio/x-aiff"],fileType:"audio",modality:"audio"},{label:"AMR audio",extensions:[".amr"],mimeTypes:["audio/amr","audio/3gpp"],fileType:"audio",modality:"audio"},{label:"Monkey's Audio",extensions:[".ape"],mimeTypes:["audio/x-ape","audio/ape"],fileType:"audio",modality:"audio"},{label:"WavPack audio",extensions:[".wv"],mimeTypes:["audio/x-wavpack","audio/wavpack"],fileType:"audio",modality:"audio"},{label:"MIDI",extensions:[".mid",".midi"],mimeTypes:["audio/midi","audio/x-midi"],fileType:"audio",modality:"audio"},{label:"Core Audio",extensions:[".caf"],mimeTypes:["audio/x-caf"],fileType:"audio",modality:"audio"},{label:"Sun audio",extensions:[".au",".snd"],mimeTypes:["audio/basic"],fileType:"audio",modality:"audio"},{label:"PDF document",extensions:[".pdf"],mimeTypes:["application/pdf","application/x-pdf"],fileType:"pdf",modality:"document"},{label:"Word document",extensions:[".docx"],mimeTypes:["application/vnd.openxmlformats-officedocument.wordprocessingml.document"],fileType:"docx",modality:"document"},{label:"Legacy Word document",extensions:[".doc"],mimeTypes:["application/msword"],fileType:"docx",modality:"document"},{label:"Excel spreadsheet",extensions:[".xlsx"],mimeTypes:["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],fileType:"xlsx",modality:"document"},{label:"Legacy Excel spreadsheet",extensions:[".xls"],mimeTypes:["application/vnd.ms-excel"],fileType:"xlsx",modality:"document"},{label:"PowerPoint presentation",extensions:[".pptx"],mimeTypes:["application/vnd.openxmlformats-officedocument.presentationml.presentation"],fileType:"pptx",modality:"document"},{label:"Legacy PowerPoint presentation",extensions:[".ppt"],mimeTypes:["application/vnd.ms-powerpoint"],fileType:"pptx",modality:"document"},{label:"OpenDocument text",extensions:[".odt"],mimeTypes:["application/vnd.oasis.opendocument.text"],fileType:"docx",modality:"document"},{label:"OpenDocument spreadsheet",extensions:[".ods"],mimeTypes:["application/vnd.oasis.opendocument.spreadsheet"],fileType:"xlsx",modality:"document"},{label:"OpenDocument presentation",extensions:[".odp"],mimeTypes:["application/vnd.oasis.opendocument.presentation"],fileType:"pptx",modality:"document"},{label:"Rich Text Format",extensions:[".rtf"],mimeTypes:["application/rtf","text/rtf"],fileType:"docx",modality:"document"},{label:"CSV data",extensions:[".csv"],mimeTypes:["text/csv","application/csv"],fileType:"csv",modality:"data"},{label:"TSV data",extensions:[".tsv",".tab"],mimeTypes:["text/tab-separated-values"],fileType:"csv",modality:"data"},{label:"ZIP archive",extensions:[".zip"],mimeTypes:["application/zip","application/x-zip-compressed"],fileType:"archive",modality:"archive"},{label:"TAR archive",extensions:[".tar"],mimeTypes:["application/x-tar"],fileType:"archive",modality:"archive"},{label:"GZIP archive",extensions:[".gz",".tgz",".tar.gz"],mimeTypes:["application/gzip","application/x-gzip"],fileType:"archive",modality:"archive"},{label:"BZIP2 archive",extensions:[".bz2",".tbz2",".tar.bz2"],mimeTypes:["application/x-bzip2"],fileType:"archive",modality:"archive"},{label:"XZ archive",extensions:[".xz",".txz",".tar.xz"],mimeTypes:["application/x-xz"],fileType:"archive",modality:"archive"},{label:"Zstandard archive",extensions:[".zst"],mimeTypes:["application/zstd"],fileType:"archive",modality:"archive"},{label:"RAR archive",extensions:[".rar"],mimeTypes:["application/x-rar-compressed","application/vnd.rar"],fileType:"archive",modality:"archive"},{label:"7-Zip archive",extensions:[".7z"],mimeTypes:["application/x-7z-compressed"],fileType:"archive",modality:"archive"},{label:"Java archive",extensions:[".jar"],mimeTypes:["application/java-archive"],fileType:"archive",modality:"archive"}],xee={".ts":{fileType:"text",mimeType:"text/typescript",modality:null}},xNe=Object.fromEntries(Object.entries(xee).map(([r,e])=>[r,e.mimeType])),wI=new Map,yee=new Map;Z4t()});async function yi(r,e){try{return await import(r)}catch(t){throw Q4t(t,r)?new Error(`${e} requires the "${r}" package. Install it with:
844
844
  pnpm add ${r}`,{cause:t}):t}}function Q4t(r,e){if(!(r instanceof Error)||!eKt(e))return!1;let t=r.code;return t!=="ERR_MODULE_NOT_FOUND"&&t!=="MODULE_NOT_FOUND"?!1:r.message.includes(`'${e}'`)||r.message.includes(`"${e}"`)}function eKt(r){return r.length===0||r.startsWith("/")||r.startsWith("./")||r.startsWith("../")?!1:!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(r)}var Kp=E(()=>{"use strict"});var $d={};de($d,{AsyncLocalStorage:()=>bKt,Buffer:()=>e5t,Channel:()=>GWt,DatabaseSync:()=>QWt,Duplex:()=>SKt,EventEmitter:()=>vKt,Http2ServerRequest:()=>o5t,Http2ServerResponse:()=>s5t,Interface:()=>ZWt,MIMEType:()=>d5t,PassThrough:()=>wKt,PerformanceObserver:()=>BWt,Readable:()=>wNe,ReadableStream:()=>_Kt,Resolver:()=>FWt,TextDecoder:()=>CNe,TextEncoder:()=>hz,Transform:()=>TKt,URL:()=>EWt,URLSearchParams:()=>CWt,Worker:()=>KWt,Writable:()=>_Ne,access:()=>BKt,appendFile:()=>kKt,appendFileSync:()=>yz,arch:()=>oWt,arrayBuffer:()=>i5t,basename:()=>pKt,builtinModules:()=>TWt,callbackify:()=>OWt,channel:()=>jWt,chmodSync:()=>RKt,clearInterval:()=>u5t,clearTimeout:()=>l5t,closeSync:()=>PKt,connect:()=>lWt,constants:()=>See,copyFileSync:()=>AKt,cpSync:()=>aKt,cpus:()=>eWt,createConnection:()=>cWt,createGunzip:()=>hWt,createGzip:()=>yWt,createHash:()=>SNe,createHmac:()=>nKt,createInterface:()=>YWt,createReadStream:()=>Lh,createRequire:()=>bWt,createServer:()=>lKt,createWriteStream:()=>Tee,debug:()=>PWt,debuglog:()=>ENe,default:()=>tKt,deflateSync:()=>dWt,deprecate:()=>MWt,deserialize:()=>HWt,dirname:()=>dKt,exec:()=>HKt,execFile:()=>WKt,execFileSync:()=>JKt,execSync:()=>KKt,existsSync:()=>vs,extname:()=>mKt,fileURLToPath:()=>RWt,finished:()=>CKt,format:()=>_Wt,freemem:()=>tWt,fstatSync:()=>MKt,get:()=>aWt,gunzip:()=>fWt,gunzipSync:()=>pWt,gzip:()=>gWt,gzipSync:()=>mWt,hasSubscribers:()=>qWt,homedir:()=>YKt,hostname:()=>QKt,inflateSync:()=>uWt,inherits:()=>AWt,inspect:()=>vz,isAbsolute:()=>fKt,isBuiltin:()=>SWt,isDeepStrictEqual:()=>NWt,isIP:()=>n5t,isIPv4:()=>r5t,isIPv6:()=>t5t,isMainThread:()=>WWt,join:()=>cKt,lookup:()=>UWt,mkdir:()=>LKt,mkdirSync:()=>Qc,monitorEventLoopDelay:()=>zWt,normalize:()=>xKt,ok:()=>xWt,open:()=>GKt,openSync:()=>IKt,parentPort:()=>JWt,parse:()=>wWt,pathToFileURL:()=>kWt,performance:()=>$Wt,pipeline:()=>EKt,platform:()=>XKt,posix:()=>yKt,promises:()=>rKt,promisify:()=>IWt,randomBytes:()=>oKt,randomUUID:()=>sKt,readFile:()=>NKt,readFileSync:()=>bs,readdir:()=>FKt,readdirSync:()=>e_,realpath:()=>qKt,realpathSync:()=>xz,relative:()=>gKt,release:()=>sWt,rename:()=>zKt,renameSync:()=>vee,request:()=>iWt,resolve:()=>uKt,rm:()=>jKt,rmSync:()=>OKt,rmdirSync:()=>bee,sep:()=>hKt,serialize:()=>VWt,setInterval:()=>c5t,setTimeout:()=>a5t,spawn:()=>VKt,stat:()=>UKt,statSync:()=>Pv,strict:()=>vWt,tmpdir:()=>ZKt,toUSVString:()=>DWt,totalmem:()=>rWt,type:()=>nWt,types:()=>LWt,unlink:()=>$Kt,unlinkSync:()=>_I,webcrypto:()=>iKt,workerData:()=>XWt,writeFile:()=>DKt,writeFileSync:()=>Fd});var xs,Po,tKt,rKt,SNe,nKt,oKt,sKt,iKt,yz,aKt,lKt,cKt,uKt,dKt,pKt,mKt,gKt,fKt,hKt,yKt,xKt,vKt,bKt,wNe,_Ne,TKt,SKt,wKt,_Kt,EKt,CKt,vs,bs,Fd,RKt,kKt,xz,AKt,IKt,PKt,MKt,Qc,Pv,e_,_I,vee,bee,OKt,Tee,Lh,NKt,DKt,LKt,UKt,FKt,$Kt,BKt,zKt,jKt,GKt,qKt,VKt,HKt,KKt,WKt,JKt,XKt,YKt,ZKt,QKt,eWt,tWt,rWt,nWt,oWt,sWt,iWt,aWt,lWt,cWt,uWt,dWt,pWt,mWt,gWt,fWt,hWt,yWt,xWt,vWt,bWt,TWt,SWt,wWt,_Wt,EWt,CWt,RWt,kWt,AWt,IWt,ENe,PWt,vz,MWt,OWt,NWt,DWt,LWt,CNe,hz,UWt,FWt,$Wt,BWt,zWt,jWt,GWt,qWt,VWt,HWt,KWt,WWt,JWt,XWt,YWt,ZWt,QWt,e5t,See,t5t,r5t,n5t,o5t,s5t,i5t,RNe,a5t,l5t,c5t,u5t,d5t,$s=E(()=>{xs=()=>{},Po=async()=>{},tKt={},rKt={readFile:Po,writeFile:Po,mkdir:Po,stat:Po,readdir:Po,unlink:Po,access:Po,rm:Po,rename:Po},SNe=r=>{let e=[];return{update(t){return e.push(typeof t=="string"?new hz().encode(t):t),this},digest(t){let n=0;for(let s of e)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;let o=(n>>>0).toString(16).padStart(8,"0");return t==="hex"?o:t==="base64"?btoa(o):o}}},nKt=(r,e)=>SNe(r),oKt=r=>new Uint8Array(r||32),sKt=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),iKt=globalThis.crypto,yz=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},aKt=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},lKt=()=>({listen:xs,close:xs,on:xs}),cKt=(...r)=>r.join("/"),uKt=(...r)=>r.join("/"),dKt=r=>r||"",pKt=r=>r?.split?.("/")?.pop?.()||"",mKt=r=>{let e=r?.match?.(/\.[^.]+$/);return e?e[0]:""},gKt=(r,e)=>e||"",fKt=()=>!1,hKt="/",yKt={normalize:r=>r,join:(...r)=>r.join("/"),resolve:(...r)=>r.join("/"),sep:"/"},xKt=r=>r,vKt=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},bKt=class{getStore(){}run(r,e,...t){return e(...t)}enterWith(){}disable(){}},wNe=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},_Ne=class{write(){return!0}end(){}on(){return this}destroy(){}},TKt=class{push(){}on(){return this}},SKt=class{on(){return this}},wKt=class{pipe(){return this}on(){return this}},_Kt=globalThis.ReadableStream||class{},EKt=xs,CKt=xs,vs=()=>!1,bs=()=>"",Fd=xs,RKt=xs,kKt=Po,xz=r=>r,AKt=xs,IKt=()=>0,PKt=xs,MKt=()=>({}),Qc=xs,Pv=()=>({}),e_=()=>[],_I=xs,vee=xs,bee=xs,OKt=xs,Tee=()=>new _Ne,Lh=()=>new wNe,NKt=Po,DKt=Po,LKt=Po,UKt=Po,FKt=Po,$Kt=Po,BKt=Po,zKt=Po,jKt=Po,GKt=async()=>({stat:Po,readFile:Po,close:Po,read:Po,write:Po}),qKt=async r=>r,VKt=()=>({on:xs,stdout:{on:xs},stderr:{on:xs},kill:xs}),HKt=(r,e)=>e?.(null,"",""),KKt=()=>"",WKt=(r,e,t)=>{typeof e=="function"?e(null,"",""):t?.(null,"","")},JKt=()=>"",XKt="browser",YKt=()=>"/",ZKt=()=>"/tmp",QKt=()=>"browser",eWt=()=>[{}],tWt=()=>0,rWt=()=>0,nWt=()=>"Browser",oWt=()=>"wasm",sWt=()=>"0",iWt=()=>({}),aWt=()=>({}),lWt=()=>({}),cWt=()=>({}),uWt=()=>new Uint8Array,dWt=()=>new Uint8Array,pWt=()=>new Uint8Array,mWt=()=>new Uint8Array,gWt=(r,e)=>e?.(null,r),fWt=(r,e)=>e?.(null,r),hWt=()=>({}),yWt=()=>({}),xWt=xs,vWt={},bWt=()=>()=>({}),TWt=[],SWt=()=>!1,wWt=r=>({pathname:r||"",hostname:"",protocol:"",search:"",hash:""}),_Wt=()=>"",EWt=globalThis.URL,CWt=globalThis.URLSearchParams,RWt=r=>typeof r=="string"?r.replace("file://",""):r,kWt=r=>new globalThis.URL("file://"+r),AWt=(r,e)=>{e&&(r.super_=e,Object.setPrototypeOf(r.prototype,e.prototype))},IWt=r=>(...e)=>new Promise((t,n)=>r(...e,(o,s)=>o?n(o):t(s))),ENe=r=>{let e=(...t)=>{};return e.enabled=!1,e},PWt=ENe,vz=r=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}};vz.custom=Symbol.for("nodejs.util.inspect.custom");vz.colors={};vz.styles={};MWt=r=>r,OWt=r=>(...e)=>{let t=e.pop();r(...e).then(n=>t(null,n)).catch(t)},NWt=(r,e)=>JSON.stringify(r)===JSON.stringify(e),DWt=r=>String(r),LWt={isPromise:r=>r instanceof Promise,isDate:r=>r instanceof Date,isRegExp:r=>r instanceof RegExp,isNativeError:r=>r instanceof Error,isArrayBuffer:r=>r instanceof ArrayBuffer,isTypedArray:r=>ArrayBuffer.isView(r),isUint8Array:r=>r instanceof Uint8Array,isProxy:()=>!1},CNe=globalThis.TextDecoder,hz=globalThis.TextEncoder,UWt=(r,e)=>e?.(null,"127.0.0.1",4),FWt=class{},$Wt=globalThis.performance||{now:()=>Date.now()},BWt=class{observe(){}disconnect(){}},zWt=()=>({enable:xs,disable:xs,percentile:()=>0}),jWt=()=>({}),GWt=class{},qWt=()=>!1,VWt=()=>new Uint8Array,HWt=xs,KWt=class{},WWt=!0,JWt=null,XWt=null,YWt=()=>({}),ZWt=class{},QWt=class{},e5t=globalThis.Buffer||class extends Uint8Array{static from(e,t){if(typeof e=="string"){let n=(t||"utf8").toLowerCase();if(n==="base64"){let o=atob(e),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){let o=new Uint8Array(e.length/2);for(let s=0;s<e.length;s+=2)o[s/2]=parseInt(e.substr(s,2),16);return o}return new hz().encode(e)}return new Uint8Array(e)}static alloc(e){return new Uint8Array(e)}static isBuffer(e){return e instanceof Uint8Array}static concat(e){let t=e.reduce((s,i)=>s+i.length,0),n=new Uint8Array(t),o=0;for(let s of e)n.set(s,o),o+=s.length;return n}static byteLength(e,t){return t==="base64"?Math.ceil(e.length*3/4):new hz().encode(e).length}toString(e){let t=(e||"utf8").toLowerCase();if(t==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new CNe().decode(this)}},See={F_OK:0,R_OK:4,W_OK:2,X_OK:1},t5t=()=>!1,r5t=()=>!1,n5t=()=>0,o5t=class{},s5t=class{},i5t=async()=>new ArrayBuffer(0),RNe=r=>({[Symbol.toPrimitive](){return r},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),a5t=(...r)=>RNe(globalThis.setTimeout(...r)),l5t=globalThis.clearTimeout,c5t=(...r)=>RNe(globalThis.setInterval(...r)),u5t=globalThis.clearInterval,d5t=class{constructor(r){this.type=r}toString(){return this.type}}});var wee={};de(wee,{AsyncLocalStorage:()=>M5t,Buffer:()=>S6t,Channel:()=>d6t,DatabaseSync:()=>T6t,Duplex:()=>N5t,EventEmitter:()=>P5t,Http2ServerRequest:()=>R6t,Http2ServerResponse:()=>k6t,Interface:()=>b6t,MIMEType:()=>N6t,PassThrough:()=>D5t,PerformanceObserver:()=>l6t,Readable:()=>ANe,ReadableStream:()=>L5t,Resolver:()=>i6t,TextDecoder:()=>MNe,TextEncoder:()=>bz,Transform:()=>O5t,URL:()=>K3t,URLSearchParams:()=>W3t,Worker:()=>f6t,Writable:()=>INe,access:()=>u3t,appendFile:()=>G5t,appendFileSync:()=>x5t,arch:()=>C3t,arrayBuffer:()=>A6t,basename:()=>_5t,builtinModules:()=>G3t,callbackify:()=>t6t,channel:()=>u6t,chmodSync:()=>j5t,clearInterval:()=>O6t,clearTimeout:()=>P6t,closeSync:()=>K5t,connect:()=>I3t,constants:()=>w6t,copyFileSync:()=>V5t,cpSync:()=>v5t,cpus:()=>S3t,createConnection:()=>P3t,createGunzip:()=>F3t,createGzip:()=>$3t,createHash:()=>kNe,createHmac:()=>g5t,createInterface:()=>v6t,createReadStream:()=>n3t,createRequire:()=>j3t,createServer:()=>b5t,createWriteStream:()=>r3t,debug:()=>Q3t,debuglog:()=>PNe,default:()=>p5t,deflateSync:()=>O3t,deprecate:()=>e6t,deserialize:()=>g6t,dirname:()=>w5t,exec:()=>h3t,execFile:()=>x3t,execFileSync:()=>v3t,execSync:()=>y3t,existsSync:()=>$5t,extname:()=>E5t,fileURLToPath:()=>J3t,finished:()=>F5t,format:()=>H3t,freemem:()=>w3t,fstatSync:()=>W5t,get:()=>A3t,gunzip:()=>U3t,gunzipSync:()=>N3t,gzip:()=>L3t,gzipSync:()=>D3t,hasSubscribers:()=>p6t,homedir:()=>EI,hostname:()=>T3t,inflateSync:()=>M3t,inherits:()=>Y3t,inspect:()=>Tz,isAbsolute:()=>R5t,isBuiltin:()=>q3t,isDeepStrictEqual:()=>r6t,isIP:()=>C6t,isIPv4:()=>E6t,isIPv6:()=>_6t,isMainThread:()=>h6t,join:()=>T5t,lookup:()=>s6t,mkdir:()=>i3t,mkdirSync:()=>J5t,monitorEventLoopDelay:()=>c6t,normalize:()=>I5t,ok:()=>B3t,open:()=>m3t,openSync:()=>H5t,parentPort:()=>y6t,parse:()=>V3t,pathToFileURL:()=>X3t,performance:()=>a6t,pipeline:()=>U5t,platform:()=>b3t,posix:()=>A5t,promises:()=>m5t,promisify:()=>Z3t,randomBytes:()=>f5t,randomUUID:()=>h5t,readFile:()=>o3t,readFileSync:()=>B5t,readdir:()=>l3t,readdirSync:()=>Y5t,realpath:()=>g3t,realpathSync:()=>q5t,relative:()=>C5t,release:()=>R3t,rename:()=>d3t,renameSync:()=>Q5t,request:()=>k3t,resolve:()=>S5t,rm:()=>p3t,rmSync:()=>t3t,rmdirSync:()=>e3t,sep:()=>k5t,serialize:()=>m6t,setInterval:()=>M6t,setTimeout:()=>I6t,spawn:()=>f3t,stat:()=>a3t,statSync:()=>X5t,strict:()=>z3t,tmpdir:()=>Mv,toUSVString:()=>n6t,totalmem:()=>_3t,type:()=>E3t,types:()=>o6t,unlink:()=>c3t,unlinkSync:()=>Z5t,webcrypto:()=>y5t,workerData:()=>x6t,writeFile:()=>s3t,writeFileSync:()=>z5t});var Ts,Mo,p5t,m5t,kNe,g5t,f5t,h5t,y5t,x5t,v5t,b5t,T5t,S5t,w5t,_5t,E5t,C5t,R5t,k5t,A5t,I5t,P5t,M5t,ANe,INe,O5t,N5t,D5t,L5t,U5t,F5t,$5t,B5t,z5t,j5t,G5t,q5t,V5t,H5t,K5t,W5t,J5t,X5t,Y5t,Z5t,Q5t,e3t,t3t,r3t,n3t,o3t,s3t,i3t,a3t,l3t,c3t,u3t,d3t,p3t,m3t,g3t,f3t,h3t,y3t,x3t,v3t,b3t,EI,Mv,T3t,S3t,w3t,_3t,E3t,C3t,R3t,k3t,A3t,I3t,P3t,M3t,O3t,N3t,D3t,L3t,U3t,F3t,$3t,B3t,z3t,j3t,G3t,q3t,V3t,H3t,K3t,W3t,J3t,X3t,Y3t,Z3t,PNe,Q3t,Tz,e6t,t6t,r6t,n6t,o6t,MNe,bz,s6t,i6t,a6t,l6t,c6t,u6t,d6t,p6t,m6t,g6t,f6t,h6t,y6t,x6t,v6t,b6t,T6t,S6t,w6t,_6t,E6t,C6t,R6t,k6t,A6t,ONe,I6t,P6t,M6t,O6t,N6t,Uh=E(()=>{Ts=()=>{},Mo=async()=>{},p5t={},m5t={readFile:Mo,writeFile:Mo,mkdir:Mo,stat:Mo,readdir:Mo,unlink:Mo,access:Mo,rm:Mo,rename:Mo},kNe=r=>{let e=[];return{update(t){return e.push(typeof t=="string"?new bz().encode(t):t),this},digest(t){let n=0;for(let s of e)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;let o=(n>>>0).toString(16).padStart(8,"0");return t==="hex"?o:t==="base64"?btoa(o):o}}},g5t=(r,e)=>kNe(r),f5t=r=>new Uint8Array(r||32),h5t=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),y5t=globalThis.crypto,x5t=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},v5t=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},b5t=()=>({listen:Ts,close:Ts,on:Ts}),T5t=(...r)=>r.join("/"),S5t=(...r)=>r.join("/"),w5t=r=>r||"",_5t=r=>r?.split?.("/")?.pop?.()||"",E5t=r=>{let e=r?.match?.(/\.[^.]+$/);return e?e[0]:""},C5t=(r,e)=>e||"",R5t=()=>!1,k5t="/",A5t={normalize:r=>r,join:(...r)=>r.join("/"),resolve:(...r)=>r.join("/"),sep:"/"},I5t=r=>r,P5t=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},M5t=class{getStore(){}run(r,e,...t){return e(...t)}enterWith(){}disable(){}},ANe=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},INe=class{write(){return!0}end(){}on(){return this}destroy(){}},O5t=class{push(){}on(){return this}},N5t=class{on(){return this}},D5t=class{pipe(){return this}on(){return this}},L5t=globalThis.ReadableStream||class{},U5t=Ts,F5t=Ts,$5t=()=>!1,B5t=()=>"",z5t=Ts,j5t=Ts,G5t=Mo,q5t=r=>r,V5t=Ts,H5t=()=>0,K5t=Ts,W5t=()=>({}),J5t=Ts,X5t=()=>({}),Y5t=()=>[],Z5t=Ts,Q5t=Ts,e3t=Ts,t3t=Ts,r3t=()=>new INe,n3t=()=>new ANe,o3t=Mo,s3t=Mo,i3t=Mo,a3t=Mo,l3t=Mo,c3t=Mo,u3t=Mo,d3t=Mo,p3t=Mo,m3t=async()=>({stat:Mo,readFile:Mo,close:Mo,read:Mo,write:Mo}),g3t=async r=>r,f3t=()=>({on:Ts,stdout:{on:Ts},stderr:{on:Ts},kill:Ts}),h3t=(r,e)=>e?.(null,"",""),y3t=()=>"",x3t=(r,e,t)=>{typeof e=="function"?e(null,"",""):t?.(null,"","")},v3t=()=>"",b3t="browser",EI=()=>"/",Mv=()=>"/tmp",T3t=()=>"browser",S3t=()=>[{}],w3t=()=>0,_3t=()=>0,E3t=()=>"Browser",C3t=()=>"wasm",R3t=()=>"0",k3t=()=>({}),A3t=()=>({}),I3t=()=>({}),P3t=()=>({}),M3t=()=>new Uint8Array,O3t=()=>new Uint8Array,N3t=()=>new Uint8Array,D3t=()=>new Uint8Array,L3t=(r,e)=>e?.(null,r),U3t=(r,e)=>e?.(null,r),F3t=()=>({}),$3t=()=>({}),B3t=Ts,z3t={},j3t=()=>()=>({}),G3t=[],q3t=()=>!1,V3t=r=>({pathname:r||"",hostname:"",protocol:"",search:"",hash:""}),H3t=()=>"",K3t=globalThis.URL,W3t=globalThis.URLSearchParams,J3t=r=>typeof r=="string"?r.replace("file://",""):r,X3t=r=>new globalThis.URL("file://"+r),Y3t=(r,e)=>{e&&(r.super_=e,Object.setPrototypeOf(r.prototype,e.prototype))},Z3t=r=>(...e)=>new Promise((t,n)=>r(...e,(o,s)=>o?n(o):t(s))),PNe=r=>{let e=(...t)=>{};return e.enabled=!1,e},Q3t=PNe,Tz=r=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}};Tz.custom=Symbol.for("nodejs.util.inspect.custom");Tz.colors={};Tz.styles={};e6t=r=>r,t6t=r=>(...e)=>{let t=e.pop();r(...e).then(n=>t(null,n)).catch(t)},r6t=(r,e)=>JSON.stringify(r)===JSON.stringify(e),n6t=r=>String(r),o6t={isPromise:r=>r instanceof Promise,isDate:r=>r instanceof Date,isRegExp:r=>r instanceof RegExp,isNativeError:r=>r instanceof Error,isArrayBuffer:r=>r instanceof ArrayBuffer,isTypedArray:r=>ArrayBuffer.isView(r),isUint8Array:r=>r instanceof Uint8Array,isProxy:()=>!1},MNe=globalThis.TextDecoder,bz=globalThis.TextEncoder,s6t=(r,e)=>e?.(null,"127.0.0.1",4),i6t=class{},a6t=globalThis.performance||{now:()=>Date.now()},l6t=class{observe(){}disconnect(){}},c6t=()=>({enable:Ts,disable:Ts,percentile:()=>0}),u6t=()=>({}),d6t=class{},p6t=()=>!1,m6t=()=>new Uint8Array,g6t=Ts,f6t=class{},h6t=!0,y6t=null,x6t=null,v6t=()=>({}),b6t=class{},T6t=class{},S6t=globalThis.Buffer||class extends Uint8Array{static from(e,t){if(typeof e=="string"){let n=(t||"utf8").toLowerCase();if(n==="base64"){let o=atob(e),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){let o=new Uint8Array(e.length/2);for(let s=0;s<e.length;s+=2)o[s/2]=parseInt(e.substr(s,2),16);return o}return new bz().encode(e)}return new Uint8Array(e)}static alloc(e){return new Uint8Array(e)}static isBuffer(e){return e instanceof Uint8Array}static concat(e){let t=e.reduce((s,i)=>s+i.length,0),n=new Uint8Array(t),o=0;for(let s of e)n.set(s,o),o+=s.length;return n}static byteLength(e,t){return t==="base64"?Math.ceil(e.length*3/4):new bz().encode(e).length}toString(e){let t=(e||"utf8").toLowerCase();if(t==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new MNe().decode(this)}},w6t={F_OK:0,R_OK:4,W_OK:2,X_OK:1},_6t=()=>!1,E6t=()=>!1,C6t=()=>0,R6t=class{},k6t=class{},A6t=async()=>new ArrayBuffer(0),ONe=r=>({[Symbol.toPrimitive](){return r},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),I6t=(...r)=>ONe(globalThis.setTimeout(...r)),P6t=globalThis.clearTimeout,M6t=(...r)=>ONe(globalThis.setInterval(...r)),O6t=globalThis.clearInterval,N6t=class{constructor(r){this.type=r}toString(){return this.type}}});var uc={};de(uc,{AsyncLocalStorage:()=>H6t,Buffer:()=>U8t,Channel:()=>C8t,DatabaseSync:()=>L8t,Duplex:()=>W6t,EventEmitter:()=>V6t,Http2ServerRequest:()=>j8t,Http2ServerResponse:()=>G8t,Interface:()=>D8t,MIMEType:()=>J8t,PassThrough:()=>J6t,PerformanceObserver:()=>w8t,Readable:()=>DNe,ReadableStream:()=>X6t,Resolver:()=>T8t,TextDecoder:()=>FNe,TextEncoder:()=>Sz,Transform:()=>K6t,URL:()=>l8t,URLSearchParams:()=>c8t,Worker:()=>I8t,Writable:()=>LNe,access:()=>_Jt,appendFile:()=>nJt,appendFileSync:()=>B6t,arch:()=>jJt,arrayBuffer:()=>q8t,basename:()=>Uu,builtinModules:()=>s8t,callbackify:()=>h8t,channel:()=>E8t,chmodSync:()=>rJt,clearInterval:()=>W8t,clearTimeout:()=>H8t,closeSync:()=>aJt,connect:()=>HJt,constants:()=>F8t,copyFileSync:()=>sJt,cpSync:()=>z6t,cpus:()=>FJt,createConnection:()=>KJt,createGunzip:()=>e8t,createGzip:()=>t8t,createHash:()=>NNe,createHmac:()=>L6t,createInterface:()=>N8t,createReadStream:()=>yJt,createRequire:()=>o8t,createServer:()=>j6t,createWriteStream:()=>hJt,debug:()=>g8t,debuglog:()=>UNe,default:()=>_r,deflateSync:()=>JJt,deprecate:()=>f8t,deserialize:()=>A8t,dirname:()=>xi,exec:()=>IJt,execFile:()=>MJt,execFileSync:()=>OJt,execSync:()=>PJt,existsSync:()=>Q6t,extname:()=>Ov,fileURLToPath:()=>u8t,finished:()=>Z6t,format:()=>a8t,freemem:()=>$Jt,fstatSync:()=>lJt,get:()=>VJt,gunzip:()=>QJt,gunzipSync:()=>XJt,gzip:()=>ZJt,gzipSync:()=>YJt,hasSubscribers:()=>R8t,homedir:()=>DJt,hostname:()=>UJt,inflateSync:()=>WJt,inherits:()=>p8t,inspect:()=>_z,isAbsolute:()=>Fh,isBuiltin:()=>i8t,isDeepStrictEqual:()=>y8t,isIP:()=>z8t,isIPv4:()=>B8t,isIPv6:()=>$8t,isMainThread:()=>P8t,join:()=>Gt,lookup:()=>b8t,mkdir:()=>bJt,mkdirSync:()=>cJt,monitorEventLoopDelay:()=>_8t,normalize:()=>q6t,ok:()=>r8t,open:()=>RJt,openSync:()=>iJt,parentPort:()=>M8t,parse:()=>_ee,pathToFileURL:()=>d8t,performance:()=>S8t,pipeline:()=>Y6t,platform:()=>NJt,posix:()=>G6t,promises:()=>D6t,promisify:()=>m8t,randomBytes:()=>U6t,randomUUID:()=>F6t,readFile:()=>xJt,readFileSync:()=>eJt,readdir:()=>SJt,readdirSync:()=>dJt,realpath:()=>kJt,realpathSync:()=>oJt,relative:()=>wz,release:()=>GJt,rename:()=>EJt,renameSync:()=>mJt,request:()=>qJt,resolve:()=>Pl,rm:()=>CJt,rmSync:()=>fJt,rmdirSync:()=>gJt,sep:()=>Wp,serialize:()=>k8t,setInterval:()=>K8t,setTimeout:()=>V8t,spawn:()=>AJt,stat:()=>TJt,statSync:()=>uJt,strict:()=>n8t,tmpdir:()=>LJt,toUSVString:()=>x8t,totalmem:()=>BJt,type:()=>zJt,types:()=>v8t,unlink:()=>wJt,unlinkSync:()=>pJt,webcrypto:()=>$6t,workerData:()=>O8t,writeFile:()=>vJt,writeFileSync:()=>tJt});var Ss,Oo,_r,D6t,NNe,L6t,U6t,F6t,$6t,B6t,z6t,j6t,Gt,Pl,xi,Uu,Ov,wz,Fh,Wp,G6t,q6t,V6t,H6t,DNe,LNe,K6t,W6t,J6t,X6t,Y6t,Z6t,Q6t,eJt,tJt,rJt,nJt,oJt,sJt,iJt,aJt,lJt,cJt,uJt,dJt,pJt,mJt,gJt,fJt,hJt,yJt,xJt,vJt,bJt,TJt,SJt,wJt,_Jt,EJt,CJt,RJt,kJt,AJt,IJt,PJt,MJt,OJt,NJt,DJt,LJt,UJt,FJt,$Jt,BJt,zJt,jJt,GJt,qJt,VJt,HJt,KJt,WJt,JJt,XJt,YJt,ZJt,QJt,e8t,t8t,r8t,n8t,o8t,s8t,i8t,_ee,a8t,l8t,c8t,u8t,d8t,p8t,m8t,UNe,g8t,_z,f8t,h8t,y8t,x8t,v8t,FNe,Sz,b8t,T8t,S8t,w8t,_8t,E8t,C8t,R8t,k8t,A8t,I8t,P8t,M8t,O8t,N8t,D8t,L8t,U8t,F8t,$8t,B8t,z8t,j8t,G8t,q8t,$Ne,V8t,H8t,K8t,W8t,J8t,kn=E(()=>{Ss=()=>{},Oo=async()=>{},_r={},D6t={readFile:Oo,writeFile:Oo,mkdir:Oo,stat:Oo,readdir:Oo,unlink:Oo,access:Oo,rm:Oo,rename:Oo},NNe=r=>{let e=[];return{update(t){return e.push(typeof t=="string"?new Sz().encode(t):t),this},digest(t){let n=0;for(let s of e)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;let o=(n>>>0).toString(16).padStart(8,"0");return t==="hex"?o:t==="base64"?btoa(o):o}}},L6t=(r,e)=>NNe(r),U6t=r=>new Uint8Array(r||32),F6t=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),$6t=globalThis.crypto,B6t=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},z6t=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},j6t=()=>({listen:Ss,close:Ss,on:Ss}),Gt=(...r)=>r.join("/"),Pl=(...r)=>r.join("/"),xi=r=>r||"",Uu=r=>r?.split?.("/")?.pop?.()||"",Ov=r=>{let e=r?.match?.(/\.[^.]+$/);return e?e[0]:""},wz=(r,e)=>e||"",Fh=()=>!1,Wp="/",G6t={normalize:r=>r,join:(...r)=>r.join("/"),resolve:(...r)=>r.join("/"),sep:"/"},q6t=r=>r,V6t=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},H6t=class{getStore(){}run(r,e,...t){return e(...t)}enterWith(){}disable(){}},DNe=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},LNe=class{write(){return!0}end(){}on(){return this}destroy(){}},K6t=class{push(){}on(){return this}},W6t=class{on(){return this}},J6t=class{pipe(){return this}on(){return this}},X6t=globalThis.ReadableStream||class{},Y6t=Ss,Z6t=Ss,Q6t=()=>!1,eJt=()=>"",tJt=Ss,rJt=Ss,nJt=Oo,oJt=r=>r,sJt=Ss,iJt=()=>0,aJt=Ss,lJt=()=>({}),cJt=Ss,uJt=()=>({}),dJt=()=>[],pJt=Ss,mJt=Ss,gJt=Ss,fJt=Ss,hJt=()=>new LNe,yJt=()=>new DNe,xJt=Oo,vJt=Oo,bJt=Oo,TJt=Oo,SJt=Oo,wJt=Oo,_Jt=Oo,EJt=Oo,CJt=Oo,RJt=async()=>({stat:Oo,readFile:Oo,close:Oo,read:Oo,write:Oo}),kJt=async r=>r,AJt=()=>({on:Ss,stdout:{on:Ss},stderr:{on:Ss},kill:Ss}),IJt=(r,e)=>e?.(null,"",""),PJt=()=>"",MJt=(r,e,t)=>{typeof e=="function"?e(null,"",""):t?.(null,"","")},OJt=()=>"",NJt="browser",DJt=()=>"/",LJt=()=>"/tmp",UJt=()=>"browser",FJt=()=>[{}],$Jt=()=>0,BJt=()=>0,zJt=()=>"Browser",jJt=()=>"wasm",GJt=()=>"0",qJt=()=>({}),VJt=()=>({}),HJt=()=>({}),KJt=()=>({}),WJt=()=>new Uint8Array,JJt=()=>new Uint8Array,XJt=()=>new Uint8Array,YJt=()=>new Uint8Array,ZJt=(r,e)=>e?.(null,r),QJt=(r,e)=>e?.(null,r),e8t=()=>({}),t8t=()=>({}),r8t=Ss,n8t={},o8t=()=>()=>({}),s8t=[],i8t=()=>!1,_ee=r=>({pathname:r||"",hostname:"",protocol:"",search:"",hash:""}),a8t=()=>"",l8t=globalThis.URL,c8t=globalThis.URLSearchParams,u8t=r=>typeof r=="string"?r.replace("file://",""):r,d8t=r=>new globalThis.URL("file://"+r),p8t=(r,e)=>{e&&(r.super_=e,Object.setPrototypeOf(r.prototype,e.prototype))},m8t=r=>(...e)=>new Promise((t,n)=>r(...e,(o,s)=>o?n(o):t(s))),UNe=r=>{let e=(...t)=>{};return e.enabled=!1,e},g8t=UNe,_z=r=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}};_z.custom=Symbol.for("nodejs.util.inspect.custom");_z.colors={};_z.styles={};f8t=r=>r,h8t=r=>(...e)=>{let t=e.pop();r(...e).then(n=>t(null,n)).catch(t)},y8t=(r,e)=>JSON.stringify(r)===JSON.stringify(e),x8t=r=>String(r),v8t={isPromise:r=>r instanceof Promise,isDate:r=>r instanceof Date,isRegExp:r=>r instanceof RegExp,isNativeError:r=>r instanceof Error,isArrayBuffer:r=>r instanceof ArrayBuffer,isTypedArray:r=>ArrayBuffer.isView(r),isUint8Array:r=>r instanceof Uint8Array,isProxy:()=>!1},FNe=globalThis.TextDecoder,Sz=globalThis.TextEncoder,b8t=(r,e)=>e?.(null,"127.0.0.1",4),T8t=class{},S8t=globalThis.performance||{now:()=>Date.now()},w8t=class{observe(){}disconnect(){}},_8t=()=>({enable:Ss,disable:Ss,percentile:()=>0}),E8t=()=>({}),C8t=class{},R8t=()=>!1,k8t=()=>new Uint8Array,A8t=Ss,I8t=class{},P8t=!0,M8t=null,O8t=null,N8t=()=>({}),D8t=class{},L8t=class{},U8t=globalThis.Buffer||class extends Uint8Array{static from(e,t){if(typeof e=="string"){let n=(t||"utf8").toLowerCase();if(n==="base64"){let o=atob(e),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){let o=new Uint8Array(e.length/2);for(let s=0;s<e.length;s+=2)o[s/2]=parseInt(e.substr(s,2),16);return o}return new Sz().encode(e)}return new Uint8Array(e)}static alloc(e){return new Uint8Array(e)}static isBuffer(e){return e instanceof Uint8Array}static concat(e){let t=e.reduce((s,i)=>s+i.length,0),n=new Uint8Array(t),o=0;for(let s of e)n.set(s,o),o+=s.length;return n}static byteLength(e,t){return t==="base64"?Math.ceil(e.length*3/4):new Sz().encode(e).length}toString(e){let t=(e||"utf8").toLowerCase();if(t==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new FNe().decode(this)}},F8t={F_OK:0,R_OK:4,W_OK:2,X_OK:1},$8t=()=>!1,B8t=()=>!1,z8t=()=>0,j8t=class{},G8t=class{},q8t=async()=>new ArrayBuffer(0),$Ne=r=>({[Symbol.toPrimitive](){return r},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),V8t=(...r)=>$Ne(globalThis.setTimeout(...r)),H8t=globalThis.clearTimeout,K8t=(...r)=>$Ne(globalThis.setInterval(...r)),W8t=globalThis.clearInterval,J8t=class{constructor(r){this.type=r}toString(){return this.type}}});var Eee={};de(Eee,{Agent:()=>U9t,BedrockClient:()=>Y8t,BedrockRuntimeClient:()=>Q8t,Blob:()=>L9t,Client:()=>$9t,ConverseCommand:()=>e9t,ConverseStreamCommand:()=>t9t,Cron:()=>x9t,Dispatcher:()=>B9t,File:()=>D9t,FlowProducer:()=>y9t,FormData:()=>N9t,GoogleAuth:()=>i9t,HTTPException:()=>E9t,Headers:()=>O9t,Hippocampus:()=>u9t,HippocampusConfig:()=>d9t,Hono:()=>w9t,ImageFormat:()=>r9t,InvokeEndpointCommand:()=>o9t,InvokeEndpointWithResponseStreamCommand:()=>s9t,Job:()=>f9t,ListFoundationModelsCommand:()=>Z8t,MockAgent:()=>G9t,Pool:()=>F9t,Queue:()=>m9t,QueueScheduler:()=>h9t,Request:()=>P9t,Response:()=>M9t,SageMakerRuntimeClient:()=>n9t,TextToSpeechClient:()=>l9t,VertexAI:()=>a9t,Webhook:()=>c9t,Worker:()=>g9t,convertToHtml:()=>S9t,cors:()=>_9t,createClient:()=>p9t,default:()=>X8t,extractRawText:()=>T9t,fetch:()=>I9t,getGlobalDispatcher:()=>j9t,interceptors:()=>q9t,logger:()=>C9t,parseBuffer:()=>v9t,request:()=>V9t,secureHeaders:()=>R9t,selectCover:()=>b9t,setGlobalDispatcher:()=>z9t,streamSSE:()=>k9t,timeout:()=>A9t});var t_,vi,X8t,Y8t,Z8t,Q8t,e9t,t9t,r9t,n9t,o9t,s9t,i9t,a9t,l9t,c9t,u9t,d9t,p9t,m9t,g9t,f9t,h9t,y9t,x9t,v9t,b9t,T9t,S9t,w9t,_9t,E9t,C9t,R9t,k9t,A9t,I9t,P9t,M9t,O9t,N9t,D9t,L9t,U9t,F9t,$9t,B9t,z9t,j9t,G9t,q9t,V9t,Cee=E(()=>{t_={get(r,e){return e==="__esModule"?!0:e==="default"?new Proxy({},{get:t_.get}):new Proxy(function(...t){return new Proxy({},{get:t_.get})},{get:t_.get,apply(t,n,o){return new Proxy({},{get:t_.get})},construct(t,n){return new Proxy({},{get:t_.get})}})}},vi=new Proxy({},t_),X8t=vi,{BedrockClient:Y8t,ListFoundationModelsCommand:Z8t,BedrockRuntimeClient:Q8t,ConverseCommand:e9t,ConverseStreamCommand:t9t,ImageFormat:r9t}=vi,{SageMakerRuntimeClient:n9t,InvokeEndpointCommand:o9t,InvokeEndpointWithResponseStreamCommand:s9t}=vi,{GoogleAuth:i9t,VertexAI:a9t,TextToSpeechClient:l9t}=vi,{Webhook:c9t}=vi,{Hippocampus:u9t,HippocampusConfig:d9t}=vi,{createClient:p9t}=vi,{Queue:m9t,Worker:g9t,Job:f9t,QueueScheduler:h9t,FlowProducer:y9t}=vi,{Cron:x9t}=vi,{parseBuffer:v9t,selectCover:b9t}=vi,{extractRawText:T9t,convertToHtml:S9t}=vi,{Hono:w9t}=vi,{cors:_9t,HTTPException:E9t,logger:C9t,secureHeaders:R9t,streamSSE:k9t,timeout:A9t}=vi,I9t=globalThis.fetch,P9t=globalThis.Request,M9t=globalThis.Response,O9t=globalThis.Headers,N9t=globalThis.FormData,D9t=globalThis.File,L9t=globalThis.Blob,U9t=vi.Agent,F9t=vi.Pool,$9t=vi.Client,B9t=vi.Dispatcher,z9t=()=>{},j9t=()=>vi,G9t=vi.MockAgent,q9t={redirect:()=>r=>r,retry:()=>r=>r},V9t=async(r,e)=>{let t=await globalThis.fetch(r,e);return{statusCode:t.status,headers:Object.fromEntries(t.headers.entries()),body:{text:()=>t.text(),json:()=>t.json(),arrayBuffer:()=>t.arrayBuffer()}}}});var Rz={};de(Rz,{AsyncLocalStorage:()=>pXt,Buffer:()=>tZt,Channel:()=>qYt,DatabaseSync:()=>eZt,Duplex:()=>gXt,EventEmitter:()=>dXt,Http2ServerRequest:()=>iZt,Http2ServerResponse:()=>aZt,Interface:()=>QYt,MIMEType:()=>mZt,PassThrough:()=>fXt,PerformanceObserver:()=>zYt,Readable:()=>zNe,ReadableStream:()=>hXt,Resolver:()=>$Yt,TextDecoder:()=>qNe,TextEncoder:()=>Ez,Transform:()=>mXt,URL:()=>CYt,URLSearchParams:()=>RYt,Worker:()=>WYt,Writable:()=>jNe,access:()=>qXt,appendFile:()=>wXt,appendFileSync:()=>Z9t,arch:()=>sYt,arrayBuffer:()=>lZt,basename:()=>oXt,builtinModules:()=>SYt,callbackify:()=>NYt,channel:()=>GYt,chmodSync:()=>SXt,clearInterval:()=>pZt,clearTimeout:()=>uZt,closeSync:()=>RXt,connect:()=>cYt,constants:()=>rZt,copyFileSync:()=>EXt,cpSync:()=>Q9t,cpus:()=>tYt,createConnection:()=>uYt,createGunzip:()=>yYt,createGzip:()=>xYt,createHash:()=>BNe,createHmac:()=>W9t,createInterface:()=>ZYt,createReadStream:()=>UXt,createRequire:()=>TYt,createServer:()=>eXt,createWriteStream:()=>LXt,debug:()=>MYt,debuglog:()=>GNe,default:()=>H9t,deflateSync:()=>pYt,deprecate:()=>OYt,deserialize:()=>KYt,dirname:()=>nXt,exec:()=>JXt,execFile:()=>Ree,execFileSync:()=>bi,execSync:()=>XXt,existsSync:()=>vXt,extname:()=>sXt,fileURLToPath:()=>kYt,finished:()=>xXt,format:()=>EYt,freemem:()=>rYt,fstatSync:()=>kXt,get:()=>lYt,gunzip:()=>hYt,gunzipSync:()=>mYt,gzip:()=>fYt,gzipSync:()=>gYt,hasSubscribers:()=>VYt,homedir:()=>ZXt,hostname:()=>eYt,inflateSync:()=>dYt,inherits:()=>IYt,inspect:()=>Cz,isAbsolute:()=>aXt,isBuiltin:()=>wYt,isDeepStrictEqual:()=>DYt,isIP:()=>sZt,isIPv4:()=>oZt,isIPv6:()=>nZt,isMainThread:()=>JYt,join:()=>tXt,lookup:()=>FYt,mkdir:()=>BXt,mkdirSync:()=>AXt,monitorEventLoopDelay:()=>jYt,normalize:()=>uXt,ok:()=>vYt,open:()=>KXt,openSync:()=>CXt,parentPort:()=>XYt,parse:()=>_Yt,pathToFileURL:()=>AYt,performance:()=>BYt,pipeline:()=>yXt,platform:()=>YXt,posix:()=>cXt,promises:()=>K9t,promisify:()=>PYt,randomBytes:()=>J9t,randomUUID:()=>X9t,readFile:()=>FXt,readFileSync:()=>bXt,readdir:()=>jXt,readdirSync:()=>PXt,realpath:()=>WXt,realpathSync:()=>_Xt,relative:()=>iXt,release:()=>iYt,rename:()=>VXt,renameSync:()=>OXt,request:()=>aYt,resolve:()=>rXt,rm:()=>HXt,rmSync:()=>DXt,rmdirSync:()=>NXt,sep:()=>lXt,serialize:()=>HYt,setInterval:()=>dZt,setTimeout:()=>cZt,spawn:()=>r_,stat:()=>zXt,statSync:()=>IXt,strict:()=>bYt,tmpdir:()=>QXt,toUSVString:()=>LYt,totalmem:()=>nYt,type:()=>oYt,types:()=>UYt,unlink:()=>GXt,unlinkSync:()=>MXt,webcrypto:()=>Y9t,workerData:()=>YYt,writeFile:()=>$Xt,writeFileSync:()=>TXt});var ws,No,H9t,K9t,BNe,W9t,J9t,X9t,Y9t,Z9t,Q9t,eXt,tXt,rXt,nXt,oXt,sXt,iXt,aXt,lXt,cXt,uXt,dXt,pXt,zNe,jNe,mXt,gXt,fXt,hXt,yXt,xXt,vXt,bXt,TXt,SXt,wXt,_Xt,EXt,CXt,RXt,kXt,AXt,IXt,PXt,MXt,OXt,NXt,DXt,LXt,UXt,FXt,$Xt,BXt,zXt,jXt,GXt,qXt,VXt,HXt,KXt,WXt,r_,JXt,XXt,Ree,bi,YXt,ZXt,QXt,eYt,tYt,rYt,nYt,oYt,sYt,iYt,aYt,lYt,cYt,uYt,dYt,pYt,mYt,gYt,fYt,hYt,yYt,xYt,vYt,bYt,TYt,SYt,wYt,_Yt,EYt,CYt,RYt,kYt,AYt,IYt,PYt,GNe,MYt,Cz,OYt,NYt,DYt,LYt,UYt,qNe,Ez,FYt,$Yt,BYt,zYt,jYt,GYt,qYt,VYt,HYt,KYt,WYt,JYt,XYt,YYt,ZYt,QYt,eZt,tZt,rZt,nZt,oZt,sZt,iZt,aZt,lZt,VNe,cZt,uZt,dZt,pZt,mZt,mg=E(()=>{ws=()=>{},No=async()=>{},H9t={},K9t={readFile:No,writeFile:No,mkdir:No,stat:No,readdir:No,unlink:No,access:No,rm:No,rename:No},BNe=r=>{let e=[];return{update(t){return e.push(typeof t=="string"?new Ez().encode(t):t),this},digest(t){let n=0;for(let s of e)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;let o=(n>>>0).toString(16).padStart(8,"0");return t==="hex"?o:t==="base64"?btoa(o):o}}},W9t=(r,e)=>BNe(r),J9t=r=>new Uint8Array(r||32),X9t=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),Y9t=globalThis.crypto,Z9t=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},Q9t=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},eXt=()=>({listen:ws,close:ws,on:ws}),tXt=(...r)=>r.join("/"),rXt=(...r)=>r.join("/"),nXt=r=>r||"",oXt=r=>r?.split?.("/")?.pop?.()||"",sXt=r=>{let e=r?.match?.(/\.[^.]+$/);return e?e[0]:""},iXt=(r,e)=>e||"",aXt=()=>!1,lXt="/",cXt={normalize:r=>r,join:(...r)=>r.join("/"),resolve:(...r)=>r.join("/"),sep:"/"},uXt=r=>r,dXt=class{on(){return this}off(){return this}emit(){return this}once(){return this}removeListener(){return this}addListener(){return this}},pXt=class{getStore(){}run(r,e,...t){return e(...t)}enterWith(){}disable(){}},zNe=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},jNe=class{write(){return!0}end(){}on(){return this}destroy(){}},mXt=class{push(){}on(){return this}},gXt=class{on(){return this}},fXt=class{pipe(){return this}on(){return this}},hXt=globalThis.ReadableStream||class{},yXt=ws,xXt=ws,vXt=()=>!1,bXt=()=>"",TXt=ws,SXt=ws,wXt=No,_Xt=r=>r,EXt=ws,CXt=()=>0,RXt=ws,kXt=()=>({}),AXt=ws,IXt=()=>({}),PXt=()=>[],MXt=ws,OXt=ws,NXt=ws,DXt=ws,LXt=()=>new jNe,UXt=()=>new zNe,FXt=No,$Xt=No,BXt=No,zXt=No,jXt=No,GXt=No,qXt=No,VXt=No,HXt=No,KXt=async()=>({stat:No,readFile:No,close:No,read:No,write:No}),WXt=async r=>r,r_=()=>({on:ws,stdout:{on:ws},stderr:{on:ws},kill:ws}),JXt=(r,e)=>e?.(null,"",""),XXt=()=>"",Ree=(r,e,t)=>{typeof e=="function"?e(null,"",""):t?.(null,"","")},bi=()=>"",YXt="browser",ZXt=()=>"/",QXt=()=>"/tmp",eYt=()=>"browser",tYt=()=>[{}],rYt=()=>0,nYt=()=>0,oYt=()=>"Browser",sYt=()=>"wasm",iYt=()=>"0",aYt=()=>({}),lYt=()=>({}),cYt=()=>({}),uYt=()=>({}),dYt=()=>new Uint8Array,pYt=()=>new Uint8Array,mYt=()=>new Uint8Array,gYt=()=>new Uint8Array,fYt=(r,e)=>e?.(null,r),hYt=(r,e)=>e?.(null,r),yYt=()=>({}),xYt=()=>({}),vYt=ws,bYt={},TYt=()=>()=>({}),SYt=[],wYt=()=>!1,_Yt=r=>({pathname:r||"",hostname:"",protocol:"",search:"",hash:""}),EYt=()=>"",CYt=globalThis.URL,RYt=globalThis.URLSearchParams,kYt=r=>typeof r=="string"?r.replace("file://",""):r,AYt=r=>new globalThis.URL("file://"+r),IYt=(r,e)=>{e&&(r.super_=e,Object.setPrototypeOf(r.prototype,e.prototype))},PYt=r=>(...e)=>new Promise((t,n)=>r(...e,(o,s)=>o?n(o):t(s))),GNe=r=>{let e=(...t)=>{};return e.enabled=!1,e},MYt=GNe,Cz=r=>{try{return JSON.stringify(r,null,2)}catch{return String(r)}};Cz.custom=Symbol.for("nodejs.util.inspect.custom");Cz.colors={};Cz.styles={};OYt=r=>r,NYt=r=>(...e)=>{let t=e.pop();r(...e).then(n=>t(null,n)).catch(t)},DYt=(r,e)=>JSON.stringify(r)===JSON.stringify(e),LYt=r=>String(r),UYt={isPromise:r=>r instanceof Promise,isDate:r=>r instanceof Date,isRegExp:r=>r instanceof RegExp,isNativeError:r=>r instanceof Error,isArrayBuffer:r=>r instanceof ArrayBuffer,isTypedArray:r=>ArrayBuffer.isView(r),isUint8Array:r=>r instanceof Uint8Array,isProxy:()=>!1},qNe=globalThis.TextDecoder,Ez=globalThis.TextEncoder,FYt=(r,e)=>e?.(null,"127.0.0.1",4),$Yt=class{},BYt=globalThis.performance||{now:()=>Date.now()},zYt=class{observe(){}disconnect(){}},jYt=()=>({enable:ws,disable:ws,percentile:()=>0}),GYt=()=>({}),qYt=class{},VYt=()=>!1,HYt=()=>new Uint8Array,KYt=ws,WYt=class{},JYt=!0,XYt=null,YYt=null,ZYt=()=>({}),QYt=class{},eZt=class{},tZt=globalThis.Buffer||class extends Uint8Array{static from(e,t){if(typeof e=="string"){let n=(t||"utf8").toLowerCase();if(n==="base64"){let o=atob(e),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){let o=new Uint8Array(e.length/2);for(let s=0;s<e.length;s+=2)o[s/2]=parseInt(e.substr(s,2),16);return o}return new Ez().encode(e)}return new Uint8Array(e)}static alloc(e){return new Uint8Array(e)}static isBuffer(e){return e instanceof Uint8Array}static concat(e){let t=e.reduce((s,i)=>s+i.length,0),n=new Uint8Array(t),o=0;for(let s of e)n.set(s,o),o+=s.length;return n}static byteLength(e,t){return t==="base64"?Math.ceil(e.length*3/4):new Ez().encode(e).length}toString(e){let t=(e||"utf8").toLowerCase();if(t==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(t==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new qNe().decode(this)}},rZt={F_OK:0,R_OK:4,W_OK:2,X_OK:1},nZt=()=>!1,oZt=()=>!1,sZt=()=>0,iZt=class{},aZt=class{},lZt=async()=>new ArrayBuffer(0),VNe=r=>({[Symbol.toPrimitive](){return r},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),cZt=(...r)=>VNe(globalThis.setTimeout(...r)),uZt=globalThis.clearTimeout,dZt=(...r)=>VNe(globalThis.setInterval(...r)),pZt=globalThis.clearInterval,mZt=class{constructor(r){this.type=r}toString(){return this.type}}});function hZt(){if(HNe)return;HNe=!0;let r=()=>{for(let e of kz)try{let t=e_(e);for(let n of t)try{_I(Gt(e,n))}catch{}bee(e)}catch{}kz.clear()};process.on("exit",r)}async function Az(r){hZt();let e=Gt(Mv(),`neurolink-${r}-${Fn()}`);return await ul(e,{recursive:!0}),kz.add(e),e}async function Iz(r,...e){for(let t of e)try{await Hp(t)}catch(n){g.debug("Failed to clean up temp file",{path:t,error:n instanceof Error?n.message:String(n)})}try{await Ca(r,{recursive:!0,force:!0})}catch(t){g.debug("Failed to remove temp directory",{path:r,error:t instanceof Error?t.message:String(t)})}kz.delete(r)}async function CI(){if($h)return $h;if(process.env.FFMPEG_PATH)return $h=process.env.FFMPEG_PATH,$h;try{let r=await Promise.resolve().then(()=>(Cee(),Eee)),e=r.default??r;if(typeof e=="string"&&e.length>0)return $h=e,$h}catch{g.debug("ffmpeg-static not available, using system ffmpeg binary")}return $h="ffmpeg",g.warn("Using system ffmpeg binary. If video operations fail with ENOENT, install ffmpeg-static or set FFMPEG_PATH."),$h}async function gg(r,e={}){let{execFile:t}=await Promise.resolve().then(()=>(mg(),Rz)),n=e.binaryPath??await CI(),o=e.timeoutMs??kee,s=e.maxBuffer??Aee;return new Promise((i,a)=>{t(n,r,{timeout:o,maxBuffer:s},(c,u,p)=>{c?a(c):i({stdout:u||"",stderr:p||""})}).on("error",a)})}function Pz(r){return r.length<gZt?!1:r.subarray(4,8).equals(fZt)}var kee,KNe,Aee,WNe,Iee,JNe,gZt,fZt,kz,HNe,$h,RI=E(()=>{"use strict";Sa();$s();ei();Uh();kn();Y();kee=3e4,KNe=12e4,Aee=10*1024*1024,WNe=50*1024*1024,Iee="2",JNe="0.5",gZt=12,fZt=Buffer.from([102,116,121,112]),kz=new Set,HNe=!1;$h=null});function kI(r){let e=r.split(";")[0].trim().toLowerCase();return!ZNe.has(e)&&QNe.has(e)}async function yZt(r){let e=await yi("sharp","Image format conversion for vision providers");if(typeof e?.default!="function")throw new Error("the installed sharp package does not expose a callable default export");let t=e.default(r,{pages:1});if(typeof t?.png!="function")throw new Error("the installed sharp package returned a pipeline without a png() encoder");return t.png().toBuffer()}async function YNe(r,e,t){let[{randomUUID:n},{mkdtemp:o,readFile:s,rm:i,writeFile:a},{tmpdir:l},{join:c}]=await Promise.all([Promise.resolve().then(()=>(Sa(),D2)),Promise.resolve().then(()=>(ei(),Il)),Promise.resolve().then(()=>(Uh(),wee)),Promise.resolve().then(()=>(kn(),uc))]),u=await o(c(l(),"neurolink-img-")),p=c(u,`${n()}${e}`),m=c(u,`${n()}.png`);try{return await a(p,r),await gg(["-y","-v","error","-i",p,"-frames:v","1","-f","image2","-c:v","png",m],t?{binaryPath:t}:{}),await s(m)}finally{await i(u,{recursive:!0,force:!0}).catch(()=>{})}}async function*xZt(r,e){yield{name:"sharp",run:()=>yZt(r)};let t=await CI().catch(()=>"ffmpeg");yield{name:"ffmpeg",run:()=>YNe(r,e)},t!=="ffmpeg"&&(yield{name:"system ffmpeg",run:()=>YNe(r,e,"ffmpeg")})}async function Pee(r,e){if(!kI(e))return{buffer:r,mimeType:e,converted:!1};let t=e.split(";")[0].trim().toLowerCase(),n=TNe(t)??".bin",o=[];for await(let s of xZt(r,n))try{let i=await je(s.run(),XNe,new Error(`${s.name} image transcode exceeded ${XNe}ms`));if(i.length===0)throw new Error("produced an empty image");return g.debug(`[imageFormatSupport] Transcoded ${t} \u2192 image/png via ${s.name} (${r.length} \u2192 ${i.length} bytes) for vision compatibility`),{buffer:i,mimeType:"image/png",converted:!0}}catch(i){o.push(`${s.name}: ${i instanceof Error?i.message.split(`
845
- `)[0]:String(i)}`)}return g.warn(`[imageFormatSupport] Could not transcode ${t} to PNG \u2014 sending the original bytes, which most vision providers will reject. Install a full ffmpeg build (or set FFMPEG_PATH to one) to enable this format. Tried ${o.join("; ")}`),{buffer:r,mimeType:e,converted:!1}}function vZt(r){return typeof r=="object"&&r!==null&&!Buffer.isBuffer(r)&&"data"in r}function n_(r){return vZt(r)?r.data:r}var XNe,ZNe,QNe,eDe,Mz=E(()=>{"use strict";Dh();Tt();Y();Kp();RI();XNe=3e4,ZNe=new Set(["image/png","image/jpeg","image/gif","image/webp"]),QNe=new Set(["image/bmp","image/x-ms-bmp","image/tiff","image/x-tiff","image/avif","image/heic","image/heic-sequence","image/heif","image/heif-sequence","image/x-icon","image/vnd.microsoft.icon","image/jp2","image/jpx","image/apng","image/svg+xml"]),eDe=new Set([...ZNe,...QNe])});var bZt,Mee,Oz,Oee=E(()=>{"use strict";Y();Tt();bZt={maxTokens:10,refillIntervalMs:1e3,tokensPerRefill:10,maxQueueSize:100,queueTimeoutMs:3e4},Mee=class{tokens;config;queue=[];refillTimer=null;lastRefillTime;constructor(e={}){this.config={...bZt,...e},this.tokens=this.config.maxTokens,this.lastRefillTime=Date.now(),this.startRefillTimer()}startRefillTimer(){this.refillTimer||(this.refillTimer=setInterval(()=>{this.refillTokens(),this.processQueue()},this.config.refillIntervalMs),this.refillTimer.unref())}refillTokens(){let e=Date.now(),t=e-this.lastRefillTime,n=Math.floor(t/this.config.refillIntervalMs);if(n>0){let o=n*this.config.tokensPerRefill;this.tokens=Math.min(this.config.maxTokens,this.tokens+o),this.lastRefillTime=e}}processQueue(){let e=Date.now();for(;this.queue.length>0;){let t=this.queue[0];if(e-t.timestamp>this.config.queueTimeoutMs)this.queue.shift(),t.timeoutTimer&&clearTimeout(t.timeoutTimer),t.reject(xe.rateLimiterQueueTimeout(this.config.queueTimeoutMs));else break}for(;this.tokens>0&&this.queue.length>0;){let t=this.queue.shift();t&&(t.timeoutTimer&&clearTimeout(t.timeoutTimer),this.tokens--,t.resolve())}}async acquire(){if(this.refillTokens(),this.tokens>0){this.tokens--;return}if(this.queue.length>=this.config.maxQueueSize)throw g.warn(`Rate limiter queue full (${this.config.maxQueueSize} requests pending)`),xe.rateLimiterQueueFull(this.config.maxQueueSize);return new Promise((e,t)=>{let n=setTimeout(()=>{let o=this.queue.findIndex(s=>s.timeoutTimer===n);o!==-1&&(this.queue.splice(o,1),t(xe.rateLimiterQueueTimeout(this.config.queueTimeoutMs)))},this.config.queueTimeoutMs);this.queue.push({resolve:e,reject:t,timestamp:Date.now(),timeoutTimer:n})})}getStats(){return{availableTokens:this.tokens,queueLength:this.queue.length,maxTokens:this.config.maxTokens,maxQueueSize:this.config.maxQueueSize}}reset(){for(this.tokens=this.config.maxTokens,this.lastRefillTime=Date.now();this.queue.length>0;){let e=this.queue.shift();e&&(e.timeoutTimer&&clearTimeout(e.timeoutTimer),e.reject(xe.rateLimiterReset()))}}stop(){this.refillTimer&&(clearInterval(this.refillTimer),this.refillTimer=null),this.reset()}},Oz=new Mee({maxTokens:10,refillIntervalMs:1e3,tokensPerRefill:10,maxQueueSize:100,queueTimeoutMs:3e4})});function $ee(r,e=sa.DEFAULT_INITIAL_DELAY,t=sa.DEFAULT_BACKOFF_MULTIPLIER,n=sa.DEFAULT_MAX_DELAY,o=!0){let s=e*Math.pow(t,r-1),i=Math.min(s,n),a=o?Math.random()*Math.min(i*.1,1e3):0;return i+a}function Bee(r){return new Promise(e=>setTimeout(e,r))}async function tDe(r,e={}){let t={...TZt,...e},n;for(let o=1;o<=t.maxAttempts;o++)try{return await r()}catch(s){if(n=s,o===t.maxAttempts||!t.retryCondition(s))break;t.onRetry(o,s);let i=$ee(o,t.initialDelay,t.backoffMultiplier,t.maxDelay,!0);await Bee(i)}throw n}var Nee,Dee,TZt,Lee,Uee,Fee,G1n,q1n,V1n,zee=E(()=>{"use strict";Y();us();Nee=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="NetworkError"}cause},Dee=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="TemporaryError"}cause},TZt={maxAttempts:sa.DEFAULT_RETRY_ATTEMPTS,initialDelay:sa.DEFAULT_INITIAL_DELAY,maxDelay:sa.DEFAULT_MAX_DELAY,backoffMultiplier:sa.DEFAULT_BACKOFF_MULTIPLIER,retryCondition:r=>{if(r instanceof Nee||r instanceof Dee||r&&typeof r=="object"&&(r.name==="TimeoutError"||r.code==="TIMEOUT")||r&&typeof r=="object"&&(r.code==="ECONNRESET"||r.code==="ENOTFOUND"||r.code==="ECONNREFUSED"||r.code==="ETIMEDOUT"))return!0;if(r&&typeof r=="object"&&r.status){let e=Number(r.status);return e>=500||e===429||e===408}return!1},onRetry:(r,e)=>{let t=e instanceof Error?e.message:String(e);g.warn(`\u26A0\uFE0F Retry attempt ${r}: ${t}`)}};Lee=class{constructor(e=5,t=6e4,n=6e5){this.threshold=e;this.timeout=t;this.monitorWindow=n}threshold;timeout;monitorWindow;failures=0;lastFailureTime=0;state="closed";async execute(e){if(this.state==="open")if(Date.now()-this.lastFailureTime>this.timeout)this.state="half-open";else throw new Error("Circuit breaker is open - operation rejected");try{let t=await e();return this.onSuccess(),t}catch(t){throw this.onFailure(),t}}onSuccess(){this.failures=0,this.state="closed"}onFailure(){this.failures++,this.lastFailureTime=Date.now(),this.failures>=this.threshold&&(this.state="open")}getState(){return this.state}reset(){this.failures=0,this.lastFailureTime=0,this.state="closed"}},Uee=class{constructor(e,t){this.maxRequests=e;this.windowMs=t}maxRequests;windowMs;requests=[];async acquire(){let e=Date.now();if(this.requests=this.requests.filter(t=>e-t<this.windowMs),this.requests.length>=this.maxRequests){let t=Math.min(...this.requests),n=this.windowMs-(e-t);if(n>0)return await Bee(n),this.acquire()}this.requests.push(e)}},Fee=class{operations=new Set;shutdownPromise=null;track(e){return this.operations.add(e),e.finally(()=>{this.operations.delete(e)}),e}async shutdown(e=3e4){return this.shutdownPromise?this.shutdownPromise:(this.shutdownPromise=this.performShutdown(e),this.shutdownPromise)}async performShutdown(e){g.debug(`\u{1F504} Graceful shutdown: waiting for ${this.operations.size} operations...`);try{await Promise.race([Promise.all(this.operations),Bee(e).then(()=>{throw new Error(`Shutdown timeout: ${this.operations.size} operations still running`)})]),g.debug("\u2705 Graceful shutdown completed")}catch(t){g.warn(`\u26A0\uFE0F Shutdown warning: ${t instanceof Error?t.message:String(t)}`)}}},G1n=new Fee,q1n=new Lee(3,3e4),V1n=new Uee(100,6e4)});var Ml,fg,Bh,Nz,rDe,mo,jee=E(()=>{"use strict";Ml={IMAGE_MAX_MB:10,PDF_MAX_MB:100,DOCUMENT_MAX_MB:100,WORD_MAX_MB:100,TEXT_MAX_MB:50,CSV_MAX_MB:50,EXCEL_MAX_MB:100,SOURCE_CODE_MAX_MB:20,JSON_MAX_MB:20,YAML_MAX_MB:20,XML_MAX_MB:20,VIDEO_MAX_MB:500,AUDIO_MAX_MB:500,ARCHIVE_MAX_MB:200,GENERAL_MAX_MB:200},fg={IMAGE_MAX:10*1024*1024,PDF_MAX:100*1024*1024,DOCUMENT_MAX:100*1024*1024,WORD_MAX:100*1024*1024,TEXT_MAX:50*1024*1024,CSV_MAX:50*1024*1024,EXCEL_MAX:100*1024*1024,SOURCE_CODE_MAX:20*1024*1024,JSON_MAX:20*1024*1024,YAML_MAX:20*1024*1024,XML_MAX:20*1024*1024,VIDEO_MAX:500*1024*1024,AUDIO_MAX:500*1024*1024,ARCHIVE_MAX:200*1024*1024,GENERAL_MAX:200*1024*1024},Bh={MAX_SOURCE_CODE_LINES:1e4,MAX_TEXT_LINES:1e4,MAX_TEXT_LENGTH:1e6,MAX_CSV_ROWS:1e4,MAX_EXCEL_ROWS:5e3,MAX_EXCEL_SHEETS:10,MAX_PDF_PAGES:100,MAX_OBJECT_DEPTH:50,MAX_ARRAY_LENGTH:1e4},Nz={MAX_DECOMPRESSED_SIZE:100*1024*1024,MAX_COMPRESSION_RATIO:100,MAX_ENTRIES:1e3,MAX_NESTING_DEPTH:5},rDe={MAX_ALIAS_COUNT:100,MAX_DOCUMENTS:10,MAX_ANCHORS:100},mo={IMAGE_MAX_MB:Ml.IMAGE_MAX_MB,PDF_MAX_MB:Ml.PDF_MAX_MB,DOCUMENT_MAX_MB:Ml.DOCUMENT_MAX_MB,WORD_MAX_MB:Ml.WORD_MAX_MB,TEXT_MAX_MB:Ml.TEXT_MAX_MB,CSV_MAX_MB:Ml.CSV_MAX_MB,EXCEL_MAX_MB:Ml.EXCEL_MAX_MB,SOURCE_CODE_MAX_MB:Ml.SOURCE_CODE_MAX_MB,MAX_FILE_SIZE:fg.GENERAL_MAX,MAX_IMAGE_SIZE:fg.IMAGE_MAX,MAX_TEXT_SIZE:fg.TEXT_MAX,MAX_SOURCE_CODE_LINES:Bh.MAX_SOURCE_CODE_LINES,MAX_TEXT_LINES:Bh.MAX_TEXT_LINES,MAX_TEXT_LENGTH:Bh.MAX_TEXT_LENGTH,MAX_CSV_ROWS:Bh.MAX_CSV_ROWS,EXCEL_MAX_ROWS:Bh.MAX_EXCEL_ROWS,EXCEL_MAX_SHEETS:Bh.MAX_EXCEL_SHEETS,MAX_PDF_PAGES:Bh.MAX_PDF_PAGES,MAX_DECOMPRESSED_SIZE:Nz.MAX_DECOMPRESSED_SIZE,MAX_COMPRESSION_RATIO:Nz.MAX_COMPRESSION_RATIO,MAX_ZIP_ENTRIES:Nz.MAX_ENTRIES,YAML_MAX_ALIAS_COUNT:rDe.MAX_ALIAS_COUNT}});function Dz(r){return Gee||(Gee=new qee(r)),Gee}var qee,Gee,Vee=E(()=>{"use strict";Zt();Y();Hr();qee=class{cache=new Map;contentHashIndex=new Map;maxSize;ttlMs;maxImageSize;enabled;stats={hits:0,misses:0,evictions:0,expirations:0,totalRequests:0};constructor(e={}){let t=process.env.NEUROLINK_IMAGE_CACHE_ENABLED,n=process.env.NEUROLINK_IMAGE_CACHE_SIZE,o=process.env.NEUROLINK_IMAGE_CACHE_TTL_MS,s=process.env.NEUROLINK_IMAGE_MAX_SIZE;this.enabled=t!==void 0?t.toLowerCase()==="true":!1,this.maxSize=this.parseConfigValue(n,e.maxSize,100,1,1e3),this.ttlMs=this.parseConfigValue(o,e.ttlMs,1800*1e3,1e3,1440*60*1e3),this.maxImageSize=this.parseConfigValue(s,e.maxImageSize,10*1024*1024,1024,100*1024*1024),g.debug("ImageCache initialized",{enabled:this.enabled,maxSize:this.maxSize,ttlMs:this.ttlMs,maxImageSize:this.maxImageSize})}parseConfigValue(e,t,n,o,s){let i;if(e!==void 0){let a=parseInt(e,10);i=isNaN(a)?n:a}else t!==void 0?i=t:i=n;return i<o?(g.warn(`Cache config value ${i} below minimum ${o}, using min`),o):i>s?(g.warn(`Cache config value ${i} above maximum ${s}, using max`),s):i}normalizeUrl(e){return l$(e)}generateContentHash(e){let t=typeof e=="string"?Buffer.from(e,"base64"):e;return ui("sha256").update(t).digest("hex").substring(0,16)}isExpired(e){return Date.now()-e.createdAt>this.ttlMs}isEnabled(){return this.enabled}get(e){if(!this.enabled)return null;this.stats.totalRequests++;let t=this.normalizeUrl(e),n=this.cache.get(t);return n?this.isExpired(n)?(this.stats.expirations++,this.delete(t),g.debug("Image cache entry expired",{url:Wr(t)}),null):(n.lastAccessedAt=Date.now(),n.accessCount++,this.cache.delete(t),this.cache.set(t,n),this.stats.hits++,g.debug("Image cache hit",{url:Wr(t),accessCount:n.accessCount}),n):(this.stats.misses++,g.debug("Image cache miss",{url:Wr(t)}),null)}getByContentHash(e){let t=this.contentHashIndex.get(e);if(!t)return null;let n=null;for(let o of[...t]){let s=this.cache.get(o);if(!s){t.delete(o);continue}if(this.isExpired(s)){this.cache.delete(o),t.delete(o);continue}n===null&&(n=o)}return t.size===0&&this.contentHashIndex.delete(e),n?this.get(n):null}set(e,t,n,o){if(!this.enabled){g.debug("Image caching disabled, skipping cache storage");return}let s=this.normalizeUrl(e),i=o.length;if(i>this.maxImageSize){g.debug("Image too large to cache",{url:Wr(s),size:i,maxSize:this.maxImageSize});return}let a=this.generateContentHash(o),l=this.contentHashIndex.get(a);if(l)for(let m of l){if(m===s)continue;let f=this.cache.get(m);if(f&&!this.isExpired(f)){for(;this.cache.size>=this.maxSize&&this.cache.size>0;)this.evictOldest();this.cache.set(s,{...f});let h=this.contentHashIndex.get(a);h||(h=new Set,this.contentHashIndex.set(a,h)),h.add(s),g.debug("Image cache dedup hit",{newUrl:Wr(s),existingUrl:Wr(m)});return}}for(;this.cache.size>=this.maxSize;)this.evictOldest();let c=Date.now(),u={dataUri:t,contentType:n,size:i,contentHash:a,createdAt:c,lastAccessedAt:c,accessCount:1};this.cache.set(s,u);let p=this.contentHashIndex.get(a);p||(p=new Set,this.contentHashIndex.set(a,p)),p.add(s),g.debug("Image cached",{url:Wr(s),size:i,contentHash:a.substring(0,8),cacheSize:this.cache.size})}delete(e){let t=this.normalizeUrl(e),n=this.cache.get(t);if(n){let o=this.contentHashIndex.get(n.contentHash);return o&&(o.delete(t),o.size===0&&this.contentHashIndex.delete(n.contentHash)),this.cache.delete(t),!0}return!1}evictOldest(){let e=this.cache.keys().next().value;if(e!==void 0){let t=this.cache.get(e);if(t){let n=this.contentHashIndex.get(t.contentHash);n&&(n.delete(e),n.size===0&&this.contentHashIndex.delete(t.contentHash))}this.cache.delete(e),this.stats.evictions++,g.debug("Image cache eviction",{url:Wr(String(e))})}}evictExpired(){let e=0,t=Date.now();for(let[n,o]of this.cache.entries())t-o.createdAt>this.ttlMs&&(this.delete(n),e++,this.stats.expirations++);return e>0&&g.debug(`Evicted ${e} expired image cache entries`),e}clear(){let e=this.cache.size;this.cache.clear(),this.contentHashIndex.clear(),g.debug(`Image cache cleared (${e} entries removed)`)}getStats(){let e=0;for(let n of this.cache.values())e+=n.size;let t=this.stats.totalRequests>0?Number((this.stats.hits/this.stats.totalRequests*100).toFixed(2)):0;return{...this.stats,size:this.cache.size,totalBytes:e,hitRate:t}}has(e){let t=this.normalizeUrl(e),n=this.cache.get(t);return n!=null&&!this.isExpired(n)}getSize(){return this.cache.size}getConfig(){return{enabled:this.enabled,maxSize:this.maxSize,ttlMs:this.ttlMs,maxImageSize:this.maxImageSize}}},Gee=null});function o_(r){return r.length>=8&&r[4]===102&&r[5]===116&&r[6]===121&&r[7]===112}function wZt(r){let e=new Set;if(r.length<20)return e;let t=r.readUInt32BE(0),n=t===0?r.length:Math.min(r.length,t);for(let o=16;o+4<=n;o+=4)e.add(r.toString("latin1",o,o+4));return e}function sDe(r,e){for(let t of r)if(e.has(t))return!0;return!1}function s_(r){if(r.length<12||!o_(r))return null;let e=r.toString("latin1",8,12);if(nDe.has(e))return"image/avif";if(oDe.has(e))return"image/heic";if(!SZt.has(e))return null;let t=wZt(r);return sDe(t,oDe)?"image/heif":sDe(t,nDe)?"image/avif":null}var nDe,oDe,SZt,Lz=E(()=>{"use strict";nDe=new Set(["avif","avis","avio"]),oDe=new Set(["heic","heix","hevc","hevx","heim","heis","hevm","hevs"]),SZt=new Set(["mif1","msf1"])});function CZt(r){if(r&&typeof r=="object"){let e=r.code,t=r.name;if(EZt.has(e||"")||t==="AbortError")return!0}if(r instanceof Error){let e=r.message,t=e.match(/HTTP (\d{3}):/);if(t){let n=parseInt(t[1],10);return n>=500||n===429||n===408}if(/\b(request timed out|operation timed out|connection timed out|timed out)\b/i.test(e)||/\bnetwork (error|failure|unreachable|down)\b/i.test(e))return!0}return!1}function Hee(r){if(r==="application/octet-stream")throw g.error("Unable to detect a supported image format from file content"),new Error("Unsupported or corrupted image: no known image signature (PNG/JPEG/GIF/WebP/BMP/TIFF/ICO/SVG/AVIF/HEIC/HEIF) was found in the file content.")}var iDe,_Zt,EZt,Ra,RZt,kZt,AI,Uz=E(()=>{"use strict";Qr();Mz();Y();Hr();Oee();zee();us();jee();Vee();Tt();Lz();iDe=12,_Zt={"image/png":67,"image/jpeg":125,"image/gif":43,"image/webp":20,"image/avif":100},EZt=new Set(["ECONNRESET","ENOTFOUND","ECONNREFUSED","ETIMEDOUT","ERR_NETWORK"]);Ra=class r{static async process(e,t){let n=this.validateBufferNotEmpty(e);Hee(n);let o=r.safeBase64Convert(e,"image processing"),s=`data:${n};base64,${o}`;return this.validateProcessOutput(s,o,n),{type:"image",content:s,mimeType:n,metadata:{confidence:100,size:e.length}}}static hasStrictImageMagic(e,t){let n=e;switch(t){case"image/png":return n.length>=4&&n[0]===137&&n[1]===80&&n[2]===78&&n[3]===71;case"image/jpeg":return n.length>=3&&n[0]===255&&n[1]===216&&n[2]===255;case"image/gif":return n.length>=3&&n[0]===71&&n[1]===73&&n[2]===70;case"image/webp":return n.length>=12&&n.subarray(0,4).toString("latin1")==="RIFF"&&n.subarray(8,12).toString("latin1")==="WEBP";case"image/avif":return n.length>=12&&n.subarray(4,8).toString("latin1")==="ftyp"&&n.subarray(8,12).toString("latin1").startsWith("avif");default:return!1}}static validateBufferNotEmpty(e){if(e.length===0)throw g.error("Empty buffer provided"),xe.imageBufferInvalid("Invalid image processing: buffer is empty");let t=this.detectImageType(e);if(t==="image/svg+xml")return t;if(e.length<iDe)throw xe.imageBufferInvalid(`Invalid image processing: buffer too small (${e.length} bytes) \u2014 a minimum of ${iDe} bytes is required for a valid image.`);let n=_Zt[t];if(n!==void 0&&e.length<n&&this.hasStrictImageMagic(e,t))throw xe.imageBufferInvalid(`Invalid image processing: ${t} buffer is truncated (${e.length} bytes, minimum ${n} for a valid ${t}).`);return t}static validateProcessOutput(e,t,n){if(t.length===0)throw g.error("Empty base64 content generated"),new Error("Invalid image processing: base64 content is empty");if(!/^data:[^;]+;base64,[A-Za-z0-9+/]*={0,2}$/.test(e))throw g.error("Invalid data URI format generated",{dataUri:e}),new Error("Invalid data URI format: must be data:{mimeType};base64,{content}");if(!this.validateImageFormat(n))throw g.error("Invalid MIME type generated",{mediaType:n}),new Error(`Invalid MIME type: ${n} is not in allowed list`)}static processImageForOpenAI(e){try{return typeof e=="string"?e.startsWith("http")||e.startsWith("data:")?e:`data:image/jpeg;base64,${e}`:`data:image/jpeg;base64,${r.safeBase64Convert(e,"OpenAI image input")}`}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for OpenAI:",t),new Error(`Image processing failed for OpenAI: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForGoogle(e){try{let t,n="image/jpeg";if(typeof e=="string")if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);base64,(.+)$/);o?(n=o[1],t=o[2]):t=e.split(",")[1]||e}else t=e;else t=r.safeBase64Convert(e,"provider image input");return{mimeType:n,data:t}}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for Google AI:",t),new Error(`Image processing failed for Google AI: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForAnthropic(e){try{let t,n="image/jpeg";if(typeof e=="string")if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);base64,(.+)$/);o?(n=o[1],t=o[2]):t=e.split(",")[1]||e}else t=e;else t=r.safeBase64Convert(e,"provider image input");return{mediaType:n,data:t}}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for Anthropic:",t),new Error(`Image processing failed for Anthropic: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForVertex(e,t){try{return t.includes("gemini")?r.processImageForGoogle(e):t.includes("claude")?r.processImageForAnthropic(e):r.processImageForGoogle(e)}catch(n){throw n instanceof Le?n:(g.error("Failed to process image for Vertex AI:",n),new Error(`Image processing failed for Vertex AI: ${n instanceof Error?n.message:"Unknown error"}`,{cause:n}))}}static detectImageType(e){try{if(typeof e=="string"){if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);/);return o?o[1]:"image/jpeg"}let t=e.toLowerCase().split(".").pop();return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff",svg:"image/svg+xml",avif:"image/avif"}[t||""]||"image/jpeg"}if(e.length>=4){let t=e.subarray(0,4);if(t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71)return"image/png";if(t[0]===255&&t[1]===216&&t[2]===255)return"image/jpeg";if(t[0]===71&&t[1]===73&&t[2]===70&&t[3]===56)return"image/gif";if(e.length>=12){let o=e.subarray(0,4),s=e.subarray(8,12);if(o.toString()==="RIFF"&&s.toString()==="WEBP")return"image/webp"}if(e.length>=4){let o=e.subarray(0,4).toString();if(o==="<svg"||o==="<?xm")return"image/svg+xml"}let n=s_(e);if(n)return n;if(e.length>=12&&e[0]===0&&e[1]===0&&e[2]===0&&e[3]===12&&e.subarray(4,8).toString("latin1")==="jP "&&e[8]===13&&e[9]===10&&e[10]===135&&e[11]===10||e.length>=4&&e[0]===255&&e[1]===79&&e[2]===255&&e[3]===81)return"image/jp2";if(e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0&&!o_(e))return"image/x-icon";if(e[0]===66&&e[1]===77)return"image/bmp";if(e[0]===73&&e[1]===73&&e[2]===42&&e[3]===0||e[0]===77&&e[1]===77&&e[2]===0&&e[3]===42)return"image/tiff"}return g.warn("Could not detect image type from magic bytes; using application/octet-stream"),"application/octet-stream"}catch(t){return g.warn("Failed to detect image type, using default:",t),"application/octet-stream"}}static validateSize(e,t,n=fg.IMAGE_MAX){if(!Number.isFinite(n)||n<0)throw xe.invalidConfiguration("maxSize","must be a finite, non-negative byte count",{maxSize:n,context:t});if(!Number.isFinite(e)||e<0)throw xe.invalidImageSize(e);if(e>n){let o=(e/1048576).toFixed(1),s=(n/(1024*1024)).toFixed(0);throw xe.imageTooLarge(o,s)}}static validateBufferSize(e,t,n=fg.IMAGE_MAX){r.validateSize(e.length,t,n)}static safeBase64Convert(e,t,n=fg.IMAGE_MAX){return r.validateBufferSize(e,t,n),e.toString("base64")}static validateImageFormat(e){return eDe.has(e.toLowerCase())}static getImageDimensions(e){try{if(e.length>=24&&e.subarray(0,8).toString("hex")==="89504e470d0a1a0a"){let t=e.readUInt32BE(16),n=e.readUInt32BE(20);return{width:t,height:n}}if(e.length>=4&&e[0]===255&&e[1]===216){let t=2;for(;t<e.length-1;){if(e[t]!==255){t++;continue}for(;t<e.length&&e[t]===255;)t++;if(t>=e.length)break;let n=e[t];if(t++,n===192||n===194){if(t+7>e.length)break;let s=e.readUInt16BE(t+3);return{width:e.readUInt16BE(t+5),height:s}}if(n===208||n===209||n===210||n===211||n===212||n===213||n===214||n===215||n===216||n===217||n===1)continue;if(t+2>e.length)break;let o=e.readUInt16BE(t);t+=o}return null}return null}catch(t){return g.warn("Failed to extract image dimensions:",t),null}}static processImage(e,t,n){try{Buffer.isBuffer(e)&&r.validateBufferSize(e,"image processing");let o=r.detectImageType(e);Hee(o);let s=typeof e=="string"?Buffer.byteLength(e,"base64"):e.length,i,a;switch(t.toLowerCase()){case"openai":i=r.processImageForOpenAI(e),a="data_uri";break;case"google-ai":case"google":{i=r.processImageForGoogle(e).data,a="base64";break}case"anthropic":{i=r.processImageForAnthropic(e).data,a="base64";break}case"vertex":{i=r.processImageForVertex(e,n||"").data,a="base64";break}default:typeof e=="string"?i=e.startsWith("data:")&&e.split(",")[1]||e:i=r.safeBase64Convert(e,"image input"),a="base64"}return{data:i,mediaType:o,size:s,format:a}}catch(o){throw o instanceof Le?o:(g.error(`Failed to process image for ${t}:`,o),new Error(`Image processing failed: ${o instanceof Error?o.message:"Unknown error"}`,{cause:o}))}}},RZt=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","svg","avif","ico","heic","heif"],kZt=new Set(RZt),AI={isDataUri:r=>typeof r=="string"&&r.startsWith("data:")&&r.includes("base64,"),isUrl:r=>{try{return new URL(r),r.startsWith("http://")||r.startsWith("https://")}catch{return!1}},isBase64:r=>AI.isValidBase64(r),getFileExtension:r=>{let t=r.split(/[?#]/)[0].match(/\.([^.]+)$/);if(!t)return null;let n=t[1].toLowerCase();return/^[a-z0-9]+$/.test(n)?n:null},isValidImageExtension:r=>{if(!r||typeof r!="string")return!1;let e=r.toLowerCase();return/^[a-z0-9]+$/.test(e)?kZt.has(e):!1},getValidatedImageExtension:r=>{let e=AI.getFileExtension(r);return e&&AI.isValidImageExtension(e)?e:null},formatFileSize:r=>{if(r===0)return"0 Bytes";let e=1024,t=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(r)/Math.log(e));return parseFloat((r/Math.pow(e,n)).toFixed(2))+" "+t[n]},bufferToBase64:(r,e=fg.IMAGE_MAX)=>Ra.safeBase64Convert(r,"buffer-to-base64",e),base64ToBuffer:r=>{let e=r.includes(",")?r.split(",")[1]:r;return Buffer.from(e,"base64")},redactPathFromMessage:BX,fileToBase64DataUri:async(r,e=10*1024*1024)=>{try{let t=await Promise.resolve().then(()=>(Zc(),pg)),n=await t.stat(r);if(!n.isFile())throw new Error("Not a file");if(n.size>e)throw new Error(`File too large: ${n.size} bytes (max: ${e} bytes)`);let o=await t.readFile(r),s=Ra.detectImageType(o)||Ra.detectImageType(r);Hee(s);let i=o.toString("base64");return`data:${s};base64,${i}`}catch(t){g.debug("fileToBase64DataUri failed",{filePath:r,error:t});let n=ci(r),o=yh(t,{filePath:r}),s=t instanceof Error?o.message:"Unknown error";throw new Error(`Failed to convert file to base64 (${n}): ${s}`,{cause:o})}},urlToBase64DataUri:async(r,{timeoutMs:e=15e3,maxBytes:t=10*1024*1024,maxAttempts:n=3}={})=>{let o=Dz(),s=o.get(r);if(s)return g.debug("Using cached image for URL",{url:Wr(r)}),s.dataUri;if(await Oz.acquire(),!/^https?:\/\//i.test(r))throw new Error("Unsupported protocol");let i=async()=>{let a=new AbortController,l=setTimeout(()=>a.abort(),e);try{let c=await fetch(r,{signal:a.signal});if(!c.ok)throw new Error(`HTTP ${c.status}: ${c.statusText}`);let u=c.headers.get("content-type")||"";if(!/^image\//i.test(u))throw new Error(`Unsupported content-type: ${u||"unknown"}`);let p=c.headers.get("content-length"),m=Number(p||0);if(p!==null&&m===0)throw new Error("Empty response: content-length is 0");if(m&&m>t)throw new Error(`Content too large: ${m} bytes`);let f=await c.arrayBuffer();if(f.byteLength>t)throw new Error(`Downloaded content too large: ${f.byteLength} bytes`);let h=Buffer.from(f),y=h.toString("base64"),x=`data:${u||"image/jpeg"};base64,${y}`;return o.set(r,x,u||"image/jpeg",h),x}finally{clearTimeout(l)}};try{return await tDe(i,{maxAttempts:n,initialDelay:sa.DEFAULT_INITIAL_DELAY,backoffMultiplier:sa.DEFAULT_BACKOFF_MULTIPLIER,maxDelay:sa.DEFAULT_MAX_DELAY,retryCondition:CZt,onRetry:(a,l)=>{let c=Xx(l instanceof Error?l.message:String(l)),u=n-a;g.warn(`\u26A0\uFE0F Image download attempt ${a} failed for ${Wr(r)}: ${c}. ${u} ${u===1?"attempt":"attempts"} remaining...`)}})}catch(a){let l=Wr(r),c=yh(a);throw new Error(`Failed to download and convert URL to base64 (${l}): ${c.message}`,{cause:c})}},extractBase64FromDataUri:r=>r.includes(",")?r.split(",")[1]:r,extractMimeTypeFromDataUri:r=>{let e=r.match(/^data:([^;]+);base64,/);return e?e[1]:"image/jpeg"},createDataUri:(r,e="image/jpeg")=>{let t=r.includes(",")?r.split(",")[1]:r;return`data:${e};base64,${t}`},isValidBase64:r=>{try{let e=r.includes(",")?r.split(",")[1]:r;if(!e||e.length===0||!/^[A-Za-z0-9+/]*={0,2}$/.test(e)||e.length%4!==0)return!1;let n=e.indexOf("=");if(n!==-1){if(n<e.length-2)return!1;let a=e.slice(n);if(!/^=+$/.test(a))return!1}let s=Buffer.from(e,"base64").toString("base64"),i=a=>a.replace(/=+$/,"");return i(e)===i(s)}catch{return!1}},getBase64Size:r=>{let e=r.includes(",")?r.split(",")[1]:r;return Buffer.byteLength(e,"base64")},compressBase64:(r,e=.8)=>(g.warn("Base64 compression not implemented - returning original"),r)}});function PZt(r){let e=r.toLowerCase();switch(e.replace(/[^a-z]/g,"")){case"lmstudio":return"lm-studio";case"llamacpp":return"llamacpp";case"nvidianim":return"nvidia-nim";case"googleaistudio":return"google-ai";case"or":return"openrouter";default:return e}}var zh,II,AZt,aDe,IZt,Kee,i_,lDe=E(()=>{"use strict";Uz();Y();zh=class{static logError(e,t,n){g.error(`Multimodal ${e} failed: ${t.message}`),process.env.NODE_ENV==="development"&&(g.error("Context:",JSON.stringify(n,null,2)),g.error("Stack:",t.stack))}},II={openai:10,azure:10,"google-ai":16,google:16,anthropic:20,vertex:{claude:20,gemini:16,default:16},ollama:10,litellm:10,mistral:10,bedrock:20,openrouter:10},AZt=new Set(["litellm","openrouter"]),aDe=[/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,/claude-(?:fable|mythos)-\d/i],IZt={anthropic:aDe,vertex:aDe};Kee={openai:["gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","gpt-5.4-pro","gpt-5.2","gpt-5.2-chat-latest","gpt-5.2-pro","gpt-5","gpt-5-2025-08-07","gpt-5-pro","gpt-5-mini","gpt-5-nano","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","o3","o3-mini","o3-pro","o4","o4-mini","o4-mini-deep-research","gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4-vision-preview"],"google-ai":["gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-flash-image-preview","gemini-3.1-pro-preview-customtools","gemini-3-flash-preview","gemini-3-pro-image-preview","gemini-3-pro-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.5-flash-image","gemini-2.0-flash","gemini-2.0-flash-001","gemini-2.0-flash-lite","gemini-2.0-flash-preview-image-generation","gemini-1.5-pro","gemini-1.5-flash","gemini-pro-vision"],anthropic:["claude-opus-4-6","claude-sonnet-4-6","claude-sonnet-4-5","claude-sonnet-4-5-20250929","claude-opus-4-5","claude-opus-4-5-20251101","claude-haiku-4-5","claude-haiku-4-5-20251001","claude-opus-4-1","claude-opus-4-1-20250805","claude-opus-4","claude-opus-4-20250514","claude-sonnet-4","claude-sonnet-4-20250514","claude-3-7-sonnet","claude-3-7-sonnet-20250219","claude-3-5-sonnet","claude-3-5-sonnet-20241022","claude-3-opus","claude-3-sonnet","claude-3-haiku"],azure:["gpt-5.1","gpt-5.1-chat","gpt-5.1-codex","gpt-5","gpt-5-pro","gpt-5-turbo","gpt-5-chat","gpt-5-mini","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","o3","o3-mini","o3-pro","o4-mini","gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4-vision-preview","gpt-4"],vertex:["gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-flash-image-preview","gemini-3.1-pro-preview-customtools","gemini-3-flash-preview","gemini-3-pro-image-preview","gemini-3-pro-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.5-flash-image","gemini-2.0-flash-001","gemini-2.0-flash-lite","gemini-2.0-flash","gemini-1.5-pro","gemini-1.5-flash","claude-sonnet-4-5@","claude-opus-4-5@","claude-haiku-4-5@","claude-haiku-4-5","claude-sonnet-4@","claude-opus-4@","claude-opus-4-1@","claude-3-7-sonnet@","claude-3-5-sonnet@","claude-opus-3@","claude-haiku-3@","claude-3-7-sonnet","claude-3-5-sonnet","claude-3-opus","claude-3-sonnet","claude-3-haiku","claude-sonnet-4","claude-sonnet-3","claude-opus-3","claude-haiku-3","claude-haiku-4","claude-3.5-sonnet","claude-3.5-haiku","claude-4.5-sonnet","claude-4.5-opus","claude-4.5-haiku","claude-haiku-4-5","claude-3.0-sonnet","claude-3.0-opus"],litellm:["openai/gpt-5","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-4-turbo","gpt-5","gpt-4o","gpt-4.1","anthropic/claude-sonnet-4-5-20250929","anthropic/claude-opus-4-1-20250805","anthropic/claude-3-5-sonnet-20240620","claude-sonnet-4-5","claude-sonnet-4-5-20250929","claude-opus-4-5","claude-opus-4-5-20251101","claude-haiku-4-5-20251001","claude-sonnet-4","claude-opus-4-1","vertex_ai/gemini-2.5-pro","gemini/gemini-2.5-pro","gemini/gemini-2.0-flash","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.0-flash-lite","groq/llama-3.2-11b-vision-preview"],openrouter:["anthropic/claude-3.7-sonnet","anthropic/claude-3-5-haiku","anthropic/claude-3-opus","anthropic/claude-3-sonnet","anthropic/claude-3-haiku","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-4-turbo","openai/gpt-4-vision-preview","google/gemini-2.5-pro","google/gemini-2.5-flash","google/gemini-2.0-flash","google/gemini-2.0-flash-001","google/gemini-1.5-pro","google/gemini-1.5-flash","google/gemini-pro-vision","meta-llama/llama-3.2-90b-vision-instruct","meta-llama/llama-3.2-11b-vision-instruct","mistralai/pixtral-12b","mistralai/pixtral-large","qwen/qwen-2-vl-72b-instruct","qwen/qwen-2-vl-7b-instruct"],mistral:["mistral-large-latest","mistral-large-2512","mistral-small","mistral-small-latest","mistral-small-3.2","mistral-small-2506","mistral-medium","mistral-medium-latest","mistral-medium-3.1","mistral-medium-2508","magistral-small","magistral-small-latest","magistral-medium","magistral-medium-latest","pixtral-12b","pixtral-12b-latest","pixtral-large","pixtral-large-latest","pixtral-large-2502"],ollama:["llama4:scout","llama4:maverick","llama4:latest","llama4","llama3.2-vision","llama3.2-vision:11b","llama3.2-vision:90b","gemma3","gemma3:4b","gemma3:12b","gemma3:27b","gemma3:latest","qwen2.5-vl","qwen2.5-vl:72b","qwen2.5-vl:32b","mistral-small3.1","mistral-small3.1:large","mistral-small3.1:medium","mistral-small3.1:small","llava","llava:7b","llava:13b","llava:34b","llava-llama3","llava-llama3:8b"],bedrock:["amazon.nova-premier","amazon.nova-premier-v1:0","amazon.nova-pro","amazon.nova-pro-v1:0","amazon.nova-lite","amazon.nova-lite-v1:0","amazon.nova-2-lite-v1:0","nova-premier","nova-pro","nova-lite","claude-sonnet-4-5","claude-sonnet-4.5","anthropic.claude-sonnet-4-5","anthropic.claude-sonnet-4-5-20250929-v1:0","claude-opus-4-5","claude-opus-4.5","anthropic.claude-opus-4-5","anthropic.claude-opus-4-5-20251124-v1:0","claude-haiku-4-5","claude-haiku-4.5","anthropic.claude-haiku-4-5","anthropic.claude-haiku-4-5-20251001-v1:0","claude-sonnet-4","claude-sonnet-4@","anthropic.claude-sonnet-4","anthropic.claude-sonnet-4-20250514-v1:0","claude-opus-4","claude-opus-4-1","claude-opus-4@","anthropic.claude-opus-4","anthropic.claude-opus-4-1-20250805-v1:0","claude-3-7-sonnet","claude-3.7-sonnet","anthropic.claude-3-7-sonnet","anthropic.claude-3-7-sonnet-20250219-v1:0","claude-3-5-sonnet","claude-3.5-sonnet","anthropic.claude-3-5-sonnet","anthropic.claude-3-5-sonnet-20241022-v1:0","claude-3-opus","anthropic.claude-3-opus","claude-3-sonnet","anthropic.claude-3-sonnet","claude-3-haiku","anthropic.claude-3-haiku","meta.llama4-maverick-17b-instruct-v1:0","meta.llama4-scout-17b-instruct-v1:0","meta.llama3-2-90b-instruct-v1:0","meta.llama3-2-11b-instruct-v1:0","mistral.pixtral-large-2502-v1:0","anthropic.claude"],huggingface:["Qwen/Qwen2.5-VL-32B-Instruct","Qwen/Qwen2.5-VL-7B-Instruct","microsoft/Phi-3-vision-128k-instruct","llava-hf/llava-1.5-7b-hf","llava-hf/llava-v1.6-mistral-7b-hf"],sagemaker:["meta-llama-4-maverick-17b-128e-instruct","meta-llama-4-scout-17b-16e-instruct"],deepseek:[],"nvidia-nim":["meta/llama-3.2-90b-vision-instruct","meta/llama-3.2-11b-vision-instruct"],"lm-studio":["llava","llama-3.2-11b-vision","llama-3.2-90b-vision","vision-instruct","qwen2-vl","qwen2.5-vl","phi-3-vision"],llamacpp:["llava","llama-3.2-11b-vision","llama-3.2-90b-vision","vision-instruct","qwen2-vl","phi-3-vision"],xai:["grok-2-vision-latest"],groq:["llama-3.2-90b-vision-preview","llama-3.2-11b-vision-preview"],cohere:[],"together-ai":[],fireworks:["accounts/fireworks/models/phi-3-vision-128k-instruct","accounts/fireworks/models/llama-v3p2-90b-vision-instruct","accounts/fireworks/models/llama-v3p2-11b-vision-instruct"],perplexity:[],cloudflare:["@cf/meta/llama-3.2-11b-vision-instruct"],replicate:["llava","llama-3.2-vision","moondream","qwen2-vl"],voyage:[],jina:[],stability:[],ideogram:[],recraft:[]},i_=class{static validateImageCount(e,t,n){let o=t.toLowerCase(),s;if(o==="vertex"&&n)n.includes("claude")?s=II.vertex.claude:n.includes("gemini")?s=II.vertex.gemini:s=II.vertex.default;else{let a=o in II?II[o]:void 0;a===void 0?(s=10,g.warn(`Image count limit not defined for provider ${t}. Using conservative default of 10 images.`)):s=a}let i=Math.floor(s*.8);if(e===i&&g.warn(`Image count (${e}) is approaching the limit for ${t}. Maximum allowed: ${s}. Please reduce the number of images.`),e>s)throw new Error(`Image count (${e}) exceeds the maximum limit for ${t}. Maximum allowed: ${s}. Please reduce the number of images.`)}static convertToContent(e,t){let n=[{type:"text",text:e}];return t&&t.length>0&&t.forEach(o=>{let s=typeof o=="object"&&"data"in o&&!Buffer.isBuffer(o)?o.data:o,i=typeof o=="object"&&"data"in o&&!Buffer.isBuffer(o)?o.altText:void 0;n.push({type:"image",data:s,altText:i,mediaType:Ra.detectImageType(s)})}),n}static supportsVision(e,t){try{let n=PZt(e);if(n==="anthropic"&&process.env.ANTHROPIC_BASE_URL)return!0;let o=Kee[n];if(!o||o.length===0)return!1;if(!t)return!0;let s=o.some(i=>t.toLowerCase().includes(i.toLowerCase()));return!s&&IZt[n]?.some(i=>i.test(t))||!s&&AZt.has(n)?!0:s}catch{return!1}}static getSupportedModels(e){let t=e.toLowerCase(),n=Kee[t];return n?[...n]:[]}static getVisionProviders(){return Object.entries(Kee).filter(([,e])=>e.length>0).map(([e])=>e)}static countImagesInMessage(e,t){return(e?.length||0)+(t??0)}static countImagesInPages(e){return!e||e.length===0?0:e.reduce((t,n)=>t+(n.pageCount??0),0)}}});function cDe(){return{enabled:process.env.NEUROLINK_MEMORY_ENABLED==="true",maxSessions:Number(process.env.NEUROLINK_MEMORY_MAX_SESSIONS)||50,enableSummarization:process.env.NEUROLINK_SUMMARIZATION_ENABLED!=="false",tokenThreshold:process.env.NEUROLINK_TOKEN_THRESHOLD?Number(process.env.NEUROLINK_TOKEN_THRESHOLD):void 0,summarizationProvider:process.env.NEUROLINK_SUMMARIZATION_PROVIDER||"vertex",summarizationModel:process.env.NEUROLINK_SUMMARIZATION_MODEL||"gemini-2.5-flash",maxTurnsPerSession:50}}var Wee,Jee,Xee=E(()=>{"use strict";Wee=`
845
+ `)[0]:String(i)}`)}return g.warn(`[imageFormatSupport] Could not transcode ${t} to PNG \u2014 sending the original bytes, which most vision providers will reject. Install a full ffmpeg build (or set FFMPEG_PATH to one) to enable this format. Tried ${o.join("; ")}`),{buffer:r,mimeType:e,converted:!1}}function vZt(r){return typeof r=="object"&&r!==null&&!Buffer.isBuffer(r)&&"data"in r}function n_(r){return vZt(r)?r.data:r}var XNe,ZNe,QNe,eDe,Mz=E(()=>{"use strict";Dh();Tt();Y();Kp();RI();XNe=3e4,ZNe=new Set(["image/png","image/jpeg","image/gif","image/webp"]),QNe=new Set(["image/bmp","image/x-ms-bmp","image/tiff","image/x-tiff","image/avif","image/heic","image/heic-sequence","image/heif","image/heif-sequence","image/x-icon","image/vnd.microsoft.icon","image/jp2","image/jpx","image/apng","image/svg+xml"]),eDe=new Set([...ZNe,...QNe])});var bZt,Mee,Oz,Oee=E(()=>{"use strict";Y();Tt();bZt={maxTokens:10,refillIntervalMs:1e3,tokensPerRefill:10,maxQueueSize:100,queueTimeoutMs:3e4},Mee=class{tokens;config;queue=[];refillTimer=null;lastRefillTime;constructor(e={}){this.config={...bZt,...e},this.tokens=this.config.maxTokens,this.lastRefillTime=Date.now(),this.startRefillTimer()}startRefillTimer(){this.refillTimer||(this.refillTimer=setInterval(()=>{this.refillTokens(),this.processQueue()},this.config.refillIntervalMs),this.refillTimer.unref())}refillTokens(){let e=Date.now(),t=e-this.lastRefillTime,n=Math.floor(t/this.config.refillIntervalMs);if(n>0){let o=n*this.config.tokensPerRefill;this.tokens=Math.min(this.config.maxTokens,this.tokens+o),this.lastRefillTime=e}}processQueue(){let e=Date.now();for(;this.queue.length>0;){let t=this.queue[0];if(e-t.timestamp>this.config.queueTimeoutMs)this.queue.shift(),t.timeoutTimer&&clearTimeout(t.timeoutTimer),t.reject(xe.rateLimiterQueueTimeout(this.config.queueTimeoutMs));else break}for(;this.tokens>0&&this.queue.length>0;){let t=this.queue.shift();t&&(t.timeoutTimer&&clearTimeout(t.timeoutTimer),this.tokens--,t.resolve())}}async acquire(){if(this.refillTokens(),this.tokens>0){this.tokens--;return}if(this.queue.length>=this.config.maxQueueSize)throw g.warn(`Rate limiter queue full (${this.config.maxQueueSize} requests pending)`),xe.rateLimiterQueueFull(this.config.maxQueueSize);return new Promise((e,t)=>{let n=setTimeout(()=>{let o=this.queue.findIndex(s=>s.timeoutTimer===n);o!==-1&&(this.queue.splice(o,1),t(xe.rateLimiterQueueTimeout(this.config.queueTimeoutMs)))},this.config.queueTimeoutMs);this.queue.push({resolve:e,reject:t,timestamp:Date.now(),timeoutTimer:n})})}getStats(){return{availableTokens:this.tokens,queueLength:this.queue.length,maxTokens:this.config.maxTokens,maxQueueSize:this.config.maxQueueSize}}reset(){for(this.tokens=this.config.maxTokens,this.lastRefillTime=Date.now();this.queue.length>0;){let e=this.queue.shift();e&&(e.timeoutTimer&&clearTimeout(e.timeoutTimer),e.reject(xe.rateLimiterReset()))}}stop(){this.refillTimer&&(clearInterval(this.refillTimer),this.refillTimer=null),this.reset()}},Oz=new Mee({maxTokens:10,refillIntervalMs:1e3,tokensPerRefill:10,maxQueueSize:100,queueTimeoutMs:3e4})});function $ee(r,e=sa.DEFAULT_INITIAL_DELAY,t=sa.DEFAULT_BACKOFF_MULTIPLIER,n=sa.DEFAULT_MAX_DELAY,o=!0){let s=e*Math.pow(t,r-1),i=Math.min(s,n),a=o?Math.random()*Math.min(i*.1,1e3):0;return i+a}function Bee(r){return new Promise(e=>setTimeout(e,r))}async function tDe(r,e={}){let t={...TZt,...e},n;for(let o=1;o<=t.maxAttempts;o++)try{return await r()}catch(s){if(n=s,o===t.maxAttempts||!t.retryCondition(s))break;t.onRetry(o,s);let i=$ee(o,t.initialDelay,t.backoffMultiplier,t.maxDelay,!0);await Bee(i)}throw n}var Nee,Dee,TZt,Lee,Uee,Fee,G1n,q1n,V1n,zee=E(()=>{"use strict";Y();us();Nee=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="NetworkError"}cause},Dee=class extends Error{constructor(t,n){super(t);this.cause=n;this.name="TemporaryError"}cause},TZt={maxAttempts:sa.DEFAULT_RETRY_ATTEMPTS,initialDelay:sa.DEFAULT_INITIAL_DELAY,maxDelay:sa.DEFAULT_MAX_DELAY,backoffMultiplier:sa.DEFAULT_BACKOFF_MULTIPLIER,retryCondition:r=>{if(r instanceof Nee||r instanceof Dee||r&&typeof r=="object"&&(r.name==="TimeoutError"||r.code==="TIMEOUT")||r&&typeof r=="object"&&(r.code==="ECONNRESET"||r.code==="ENOTFOUND"||r.code==="ECONNREFUSED"||r.code==="ETIMEDOUT"))return!0;if(r&&typeof r=="object"&&r.status){let e=Number(r.status);return e>=500||e===429||e===408}return!1},onRetry:(r,e)=>{let t=e instanceof Error?e.message:String(e);g.warn(`\u26A0\uFE0F Retry attempt ${r}: ${t}`)}};Lee=class{constructor(e=5,t=6e4,n=6e5){this.threshold=e;this.timeout=t;this.monitorWindow=n}threshold;timeout;monitorWindow;failures=0;lastFailureTime=0;state="closed";async execute(e){if(this.state==="open")if(Date.now()-this.lastFailureTime>this.timeout)this.state="half-open";else throw new Error("Circuit breaker is open - operation rejected");try{let t=await e();return this.onSuccess(),t}catch(t){throw this.onFailure(),t}}onSuccess(){this.failures=0,this.state="closed"}onFailure(){this.failures++,this.lastFailureTime=Date.now(),this.failures>=this.threshold&&(this.state="open")}getState(){return this.state}reset(){this.failures=0,this.lastFailureTime=0,this.state="closed"}},Uee=class{constructor(e,t){this.maxRequests=e;this.windowMs=t}maxRequests;windowMs;requests=[];async acquire(){let e=Date.now();if(this.requests=this.requests.filter(t=>e-t<this.windowMs),this.requests.length>=this.maxRequests){let t=Math.min(...this.requests),n=this.windowMs-(e-t);if(n>0)return await Bee(n),this.acquire()}this.requests.push(e)}},Fee=class{operations=new Set;shutdownPromise=null;track(e){return this.operations.add(e),e.finally(()=>{this.operations.delete(e)}),e}async shutdown(e=3e4){return this.shutdownPromise?this.shutdownPromise:(this.shutdownPromise=this.performShutdown(e),this.shutdownPromise)}async performShutdown(e){g.debug(`\u{1F504} Graceful shutdown: waiting for ${this.operations.size} operations...`);try{await Promise.race([Promise.all(this.operations),Bee(e).then(()=>{throw new Error(`Shutdown timeout: ${this.operations.size} operations still running`)})]),g.debug("\u2705 Graceful shutdown completed")}catch(t){g.warn(`\u26A0\uFE0F Shutdown warning: ${t instanceof Error?t.message:String(t)}`)}}},G1n=new Fee,q1n=new Lee(3,3e4),V1n=new Uee(100,6e4)});var Ml,fg,Bh,Nz,rDe,mo,jee=E(()=>{"use strict";Ml={IMAGE_MAX_MB:10,PDF_MAX_MB:100,DOCUMENT_MAX_MB:100,WORD_MAX_MB:100,TEXT_MAX_MB:50,CSV_MAX_MB:50,EXCEL_MAX_MB:100,SOURCE_CODE_MAX_MB:20,JSON_MAX_MB:20,YAML_MAX_MB:20,XML_MAX_MB:20,VIDEO_MAX_MB:500,AUDIO_MAX_MB:500,ARCHIVE_MAX_MB:200,GENERAL_MAX_MB:200},fg={IMAGE_MAX:10*1024*1024,PDF_MAX:100*1024*1024,DOCUMENT_MAX:100*1024*1024,WORD_MAX:100*1024*1024,TEXT_MAX:50*1024*1024,CSV_MAX:50*1024*1024,EXCEL_MAX:100*1024*1024,SOURCE_CODE_MAX:20*1024*1024,JSON_MAX:20*1024*1024,YAML_MAX:20*1024*1024,XML_MAX:20*1024*1024,VIDEO_MAX:500*1024*1024,AUDIO_MAX:500*1024*1024,ARCHIVE_MAX:200*1024*1024,GENERAL_MAX:200*1024*1024},Bh={MAX_SOURCE_CODE_LINES:1e4,MAX_TEXT_LINES:1e4,MAX_TEXT_LENGTH:1e6,MAX_CSV_ROWS:1e4,MAX_EXCEL_ROWS:5e3,MAX_EXCEL_SHEETS:10,MAX_PDF_PAGES:100,MAX_OBJECT_DEPTH:50,MAX_ARRAY_LENGTH:1e4},Nz={MAX_DECOMPRESSED_SIZE:100*1024*1024,MAX_COMPRESSION_RATIO:100,MAX_ENTRIES:1e3,MAX_NESTING_DEPTH:5},rDe={MAX_ALIAS_COUNT:100,MAX_DOCUMENTS:10,MAX_ANCHORS:100},mo={IMAGE_MAX_MB:Ml.IMAGE_MAX_MB,PDF_MAX_MB:Ml.PDF_MAX_MB,DOCUMENT_MAX_MB:Ml.DOCUMENT_MAX_MB,WORD_MAX_MB:Ml.WORD_MAX_MB,TEXT_MAX_MB:Ml.TEXT_MAX_MB,CSV_MAX_MB:Ml.CSV_MAX_MB,EXCEL_MAX_MB:Ml.EXCEL_MAX_MB,SOURCE_CODE_MAX_MB:Ml.SOURCE_CODE_MAX_MB,MAX_FILE_SIZE:fg.GENERAL_MAX,MAX_IMAGE_SIZE:fg.IMAGE_MAX,MAX_TEXT_SIZE:fg.TEXT_MAX,MAX_SOURCE_CODE_LINES:Bh.MAX_SOURCE_CODE_LINES,MAX_TEXT_LINES:Bh.MAX_TEXT_LINES,MAX_TEXT_LENGTH:Bh.MAX_TEXT_LENGTH,MAX_CSV_ROWS:Bh.MAX_CSV_ROWS,EXCEL_MAX_ROWS:Bh.MAX_EXCEL_ROWS,EXCEL_MAX_SHEETS:Bh.MAX_EXCEL_SHEETS,MAX_PDF_PAGES:Bh.MAX_PDF_PAGES,MAX_DECOMPRESSED_SIZE:Nz.MAX_DECOMPRESSED_SIZE,MAX_COMPRESSION_RATIO:Nz.MAX_COMPRESSION_RATIO,MAX_ZIP_ENTRIES:Nz.MAX_ENTRIES,YAML_MAX_ALIAS_COUNT:rDe.MAX_ALIAS_COUNT}});function Dz(r){return Gee||(Gee=new qee(r)),Gee}var qee,Gee,Vee=E(()=>{"use strict";Zt();Y();Hr();qee=class{cache=new Map;contentHashIndex=new Map;maxSize;ttlMs;maxImageSize;enabled;stats={hits:0,misses:0,evictions:0,expirations:0,totalRequests:0};constructor(e={}){let t=process.env.NEUROLINK_IMAGE_CACHE_ENABLED,n=process.env.NEUROLINK_IMAGE_CACHE_SIZE,o=process.env.NEUROLINK_IMAGE_CACHE_TTL_MS,s=process.env.NEUROLINK_IMAGE_MAX_SIZE;this.enabled=t!==void 0?t.toLowerCase()==="true":!1,this.maxSize=this.parseConfigValue(n,e.maxSize,100,1,1e3),this.ttlMs=this.parseConfigValue(o,e.ttlMs,1800*1e3,1e3,1440*60*1e3),this.maxImageSize=this.parseConfigValue(s,e.maxImageSize,10*1024*1024,1024,100*1024*1024),g.debug("ImageCache initialized",{enabled:this.enabled,maxSize:this.maxSize,ttlMs:this.ttlMs,maxImageSize:this.maxImageSize})}parseConfigValue(e,t,n,o,s){let i;if(e!==void 0){let a=parseInt(e,10);i=isNaN(a)?n:a}else t!==void 0?i=t:i=n;return i<o?(g.warn(`Cache config value ${i} below minimum ${o}, using min`),o):i>s?(g.warn(`Cache config value ${i} above maximum ${s}, using max`),s):i}normalizeUrl(e){return l$(e)}generateContentHash(e){let t=typeof e=="string"?Buffer.from(e,"base64"):e;return ui("sha256").update(t).digest("hex").substring(0,16)}isExpired(e){return Date.now()-e.createdAt>this.ttlMs}isEnabled(){return this.enabled}get(e){if(!this.enabled)return null;this.stats.totalRequests++;let t=this.normalizeUrl(e),n=this.cache.get(t);return n?this.isExpired(n)?(this.stats.expirations++,this.delete(t),g.debug("Image cache entry expired",{url:Wr(t)}),null):(n.lastAccessedAt=Date.now(),n.accessCount++,this.cache.delete(t),this.cache.set(t,n),this.stats.hits++,g.debug("Image cache hit",{url:Wr(t),accessCount:n.accessCount}),n):(this.stats.misses++,g.debug("Image cache miss",{url:Wr(t)}),null)}getByContentHash(e){let t=this.contentHashIndex.get(e);if(!t)return null;let n=null;for(let o of[...t]){let s=this.cache.get(o);if(!s){t.delete(o);continue}if(this.isExpired(s)){this.cache.delete(o),t.delete(o);continue}n===null&&(n=o)}return t.size===0&&this.contentHashIndex.delete(e),n?this.get(n):null}set(e,t,n,o){if(!this.enabled){g.debug("Image caching disabled, skipping cache storage");return}let s=this.normalizeUrl(e),i=o.length;if(i>this.maxImageSize){g.debug("Image too large to cache",{url:Wr(s),size:i,maxSize:this.maxImageSize});return}let a=this.generateContentHash(o),l=this.contentHashIndex.get(a);if(l)for(let m of l){if(m===s)continue;let f=this.cache.get(m);if(f&&!this.isExpired(f)){for(;this.cache.size>=this.maxSize&&this.cache.size>0;)this.evictOldest();this.cache.set(s,{...f});let h=this.contentHashIndex.get(a);h||(h=new Set,this.contentHashIndex.set(a,h)),h.add(s),g.debug("Image cache dedup hit",{newUrl:Wr(s),existingUrl:Wr(m)});return}}for(;this.cache.size>=this.maxSize;)this.evictOldest();let c=Date.now(),u={dataUri:t,contentType:n,size:i,contentHash:a,createdAt:c,lastAccessedAt:c,accessCount:1};this.cache.set(s,u);let p=this.contentHashIndex.get(a);p||(p=new Set,this.contentHashIndex.set(a,p)),p.add(s),g.debug("Image cached",{url:Wr(s),size:i,contentHash:a.substring(0,8),cacheSize:this.cache.size})}delete(e){let t=this.normalizeUrl(e),n=this.cache.get(t);if(n){let o=this.contentHashIndex.get(n.contentHash);return o&&(o.delete(t),o.size===0&&this.contentHashIndex.delete(n.contentHash)),this.cache.delete(t),!0}return!1}evictOldest(){let e=this.cache.keys().next().value;if(e!==void 0){let t=this.cache.get(e);if(t){let n=this.contentHashIndex.get(t.contentHash);n&&(n.delete(e),n.size===0&&this.contentHashIndex.delete(t.contentHash))}this.cache.delete(e),this.stats.evictions++,g.debug("Image cache eviction",{url:Wr(String(e))})}}evictExpired(){let e=0,t=Date.now();for(let[n,o]of this.cache.entries())t-o.createdAt>this.ttlMs&&(this.delete(n),e++,this.stats.expirations++);return e>0&&g.debug(`Evicted ${e} expired image cache entries`),e}clear(){let e=this.cache.size;this.cache.clear(),this.contentHashIndex.clear(),g.debug(`Image cache cleared (${e} entries removed)`)}getStats(){let e=0;for(let n of this.cache.values())e+=n.size;let t=this.stats.totalRequests>0?Number((this.stats.hits/this.stats.totalRequests*100).toFixed(2)):0;return{...this.stats,size:this.cache.size,totalBytes:e,hitRate:t}}has(e){let t=this.normalizeUrl(e),n=this.cache.get(t);return n!=null&&!this.isExpired(n)}getSize(){return this.cache.size}getConfig(){return{enabled:this.enabled,maxSize:this.maxSize,ttlMs:this.ttlMs,maxImageSize:this.maxImageSize}}},Gee=null});function o_(r){return r.length>=8&&r[4]===102&&r[5]===116&&r[6]===121&&r[7]===112}function wZt(r){let e=new Set;if(r.length<20)return e;let t=r.readUInt32BE(0),n=t===0?r.length:Math.min(r.length,t);for(let o=16;o+4<=n;o+=4)e.add(r.toString("latin1",o,o+4));return e}function sDe(r,e){for(let t of r)if(e.has(t))return!0;return!1}function s_(r){if(r.length<12||!o_(r))return null;let e=r.toString("latin1",8,12);if(nDe.has(e))return"image/avif";if(oDe.has(e))return"image/heic";if(!SZt.has(e))return null;let t=wZt(r);return sDe(t,oDe)?"image/heif":sDe(t,nDe)?"image/avif":null}var nDe,oDe,SZt,Lz=E(()=>{"use strict";nDe=new Set(["avif","avis","avio"]),oDe=new Set(["heic","heix","hevc","hevx","heim","heis","hevm","hevs"]),SZt=new Set(["mif1","msf1"])});function CZt(r){if(r&&typeof r=="object"){let e=r.code,t=r.name;if(EZt.has(e||"")||t==="AbortError")return!0}if(r instanceof Error){let e=r.message,t=e.match(/HTTP (\d{3}):/);if(t){let n=parseInt(t[1],10);return n>=500||n===429||n===408}if(/\b(request timed out|operation timed out|connection timed out|timed out)\b/i.test(e)||/\bnetwork (error|failure|unreachable|down)\b/i.test(e))return!0}return!1}function Hee(r){if(r==="application/octet-stream")throw g.error("Unable to detect a supported image format from file content"),new Error("Unsupported or corrupted image: no known image signature (PNG/JPEG/GIF/WebP/BMP/TIFF/ICO/SVG/AVIF/HEIC/HEIF) was found in the file content.")}var iDe,_Zt,EZt,Ra,RZt,kZt,AI,Uz=E(()=>{"use strict";Qr();Mz();Y();Hr();Oee();zee();us();jee();Vee();Tt();Lz();iDe=12,_Zt={"image/png":67,"image/jpeg":125,"image/gif":43,"image/webp":20,"image/avif":100},EZt=new Set(["ECONNRESET","ENOTFOUND","ECONNREFUSED","ETIMEDOUT","ERR_NETWORK"]);Ra=class r{static async process(e,t){let n=this.validateBufferNotEmpty(e);Hee(n);let o=r.safeBase64Convert(e,"image processing"),s=`data:${n};base64,${o}`;return this.validateProcessOutput(s,o,n),{type:"image",content:s,mimeType:n,metadata:{confidence:100,size:e.length}}}static hasStrictImageMagic(e,t){let n=e;switch(t){case"image/png":return n.length>=4&&n[0]===137&&n[1]===80&&n[2]===78&&n[3]===71;case"image/jpeg":return n.length>=3&&n[0]===255&&n[1]===216&&n[2]===255;case"image/gif":return n.length>=3&&n[0]===71&&n[1]===73&&n[2]===70;case"image/webp":return n.length>=12&&n.subarray(0,4).toString("latin1")==="RIFF"&&n.subarray(8,12).toString("latin1")==="WEBP";case"image/avif":return n.length>=12&&n.subarray(4,8).toString("latin1")==="ftyp"&&n.subarray(8,12).toString("latin1").startsWith("avif");default:return!1}}static validateBufferNotEmpty(e){if(e.length===0)throw g.error("Empty buffer provided"),xe.imageBufferInvalid("Invalid image processing: buffer is empty");let t=this.detectImageType(e);if(t==="image/svg+xml")return t;if(e.length<iDe)throw xe.imageBufferInvalid(`Invalid image processing: buffer too small (${e.length} bytes) \u2014 a minimum of ${iDe} bytes is required for a valid image.`);let n=_Zt[t];if(n!==void 0&&e.length<n&&this.hasStrictImageMagic(e,t))throw xe.imageBufferInvalid(`Invalid image processing: ${t} buffer is truncated (${e.length} bytes, minimum ${n} for a valid ${t}).`);return t}static validateProcessOutput(e,t,n){if(t.length===0)throw g.error("Empty base64 content generated"),new Error("Invalid image processing: base64 content is empty");if(!/^data:[^;]+;base64,[A-Za-z0-9+/]*={0,2}$/.test(e))throw g.error("Invalid data URI format generated",{dataUri:e}),new Error("Invalid data URI format: must be data:{mimeType};base64,{content}");if(!this.validateImageFormat(n))throw g.error("Invalid MIME type generated",{mediaType:n}),new Error(`Invalid MIME type: ${n} is not in allowed list`)}static processImageForOpenAI(e){try{return typeof e=="string"?e.startsWith("http")||e.startsWith("data:")?e:`data:image/jpeg;base64,${e}`:`data:image/jpeg;base64,${r.safeBase64Convert(e,"OpenAI image input")}`}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for OpenAI:",t),new Error(`Image processing failed for OpenAI: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForGoogle(e){try{let t,n="image/jpeg";if(typeof e=="string")if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);base64,(.+)$/);o?(n=o[1],t=o[2]):t=e.split(",")[1]||e}else t=e;else t=r.safeBase64Convert(e,"provider image input");return{mimeType:n,data:t}}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for Google AI:",t),new Error(`Image processing failed for Google AI: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForAnthropic(e){try{let t,n="image/jpeg";if(typeof e=="string")if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);base64,(.+)$/);o?(n=o[1],t=o[2]):t=e.split(",")[1]||e}else t=e;else t=r.safeBase64Convert(e,"provider image input");return{mediaType:n,data:t}}catch(t){throw t instanceof Le?t:(g.error("Failed to process image for Anthropic:",t),new Error(`Image processing failed for Anthropic: ${t instanceof Error?t.message:"Unknown error"}`,{cause:t}))}}static processImageForVertex(e,t){try{return t.includes("gemini")?r.processImageForGoogle(e):t.includes("claude")?r.processImageForAnthropic(e):r.processImageForGoogle(e)}catch(n){throw n instanceof Le?n:(g.error("Failed to process image for Vertex AI:",n),new Error(`Image processing failed for Vertex AI: ${n instanceof Error?n.message:"Unknown error"}`,{cause:n}))}}static detectImageType(e){try{if(typeof e=="string"){if(e.startsWith("data:")){let o=e.match(/^data:([^;]+);/);return o?o[1]:"image/jpeg"}let t=e.toLowerCase().split(".").pop();return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",tiff:"image/tiff",tif:"image/tiff",svg:"image/svg+xml",avif:"image/avif"}[t||""]||"image/jpeg"}if(e.length>=4){let t=e.subarray(0,4);if(t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71)return"image/png";if(t[0]===255&&t[1]===216&&t[2]===255)return"image/jpeg";if(t[0]===71&&t[1]===73&&t[2]===70&&t[3]===56)return"image/gif";if(e.length>=12){let o=e.subarray(0,4),s=e.subarray(8,12);if(o.toString()==="RIFF"&&s.toString()==="WEBP")return"image/webp"}if(e.length>=4){let o=e.subarray(0,4).toString();if(o==="<svg"||o==="<?xm")return"image/svg+xml"}let n=s_(e);if(n)return n;if(e.length>=12&&e[0]===0&&e[1]===0&&e[2]===0&&e[3]===12&&e.subarray(4,8).toString("latin1")==="jP "&&e[8]===13&&e[9]===10&&e[10]===135&&e[11]===10||e.length>=4&&e[0]===255&&e[1]===79&&e[2]===255&&e[3]===81)return"image/jp2";if(e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0&&!o_(e))return"image/x-icon";if(e[0]===66&&e[1]===77)return"image/bmp";if(e[0]===73&&e[1]===73&&e[2]===42&&e[3]===0||e[0]===77&&e[1]===77&&e[2]===0&&e[3]===42)return"image/tiff"}return g.warn("Could not detect image type from magic bytes; using application/octet-stream"),"application/octet-stream"}catch(t){return g.warn("Failed to detect image type, using default:",t),"application/octet-stream"}}static validateSize(e,t,n=fg.IMAGE_MAX){if(!Number.isFinite(n)||n<0)throw xe.invalidConfiguration("maxSize","must be a finite, non-negative byte count",{maxSize:n,context:t});if(!Number.isFinite(e)||e<0)throw xe.invalidImageSize(e);if(e>n){let o=(e/1048576).toFixed(1),s=(n/(1024*1024)).toFixed(0);throw xe.imageTooLarge(o,s)}}static validateBufferSize(e,t,n=fg.IMAGE_MAX){r.validateSize(e.length,t,n)}static safeBase64Convert(e,t,n=fg.IMAGE_MAX){return r.validateBufferSize(e,t,n),e.toString("base64")}static validateImageFormat(e){return eDe.has(e.toLowerCase())}static getImageDimensions(e){try{if(e.length>=24&&e.subarray(0,8).toString("hex")==="89504e470d0a1a0a"){let t=e.readUInt32BE(16),n=e.readUInt32BE(20);return{width:t,height:n}}if(e.length>=4&&e[0]===255&&e[1]===216){let t=2;for(;t<e.length-1;){if(e[t]!==255){t++;continue}for(;t<e.length&&e[t]===255;)t++;if(t>=e.length)break;let n=e[t];if(t++,n===192||n===194){if(t+7>e.length)break;let s=e.readUInt16BE(t+3);return{width:e.readUInt16BE(t+5),height:s}}if(n===208||n===209||n===210||n===211||n===212||n===213||n===214||n===215||n===216||n===217||n===1)continue;if(t+2>e.length)break;let o=e.readUInt16BE(t);t+=o}return null}return null}catch(t){return g.warn("Failed to extract image dimensions:",t),null}}static processImage(e,t,n){try{Buffer.isBuffer(e)&&r.validateBufferSize(e,"image processing");let o=r.detectImageType(e);Hee(o);let s=typeof e=="string"?Buffer.byteLength(e,"base64"):e.length,i,a;switch(t.toLowerCase()){case"openai":i=r.processImageForOpenAI(e),a="data_uri";break;case"google-ai":case"google":{i=r.processImageForGoogle(e).data,a="base64";break}case"anthropic":{i=r.processImageForAnthropic(e).data,a="base64";break}case"vertex":{i=r.processImageForVertex(e,n||"").data,a="base64";break}default:typeof e=="string"?i=e.startsWith("data:")&&e.split(",")[1]||e:i=r.safeBase64Convert(e,"image input"),a="base64"}return{data:i,mediaType:o,size:s,format:a}}catch(o){throw o instanceof Le?o:(g.error(`Failed to process image for ${t}:`,o),new Error(`Image processing failed: ${o instanceof Error?o.message:"Unknown error"}`,{cause:o}))}}},RZt=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","svg","avif","ico","heic","heif"],kZt=new Set(RZt),AI={isDataUri:r=>typeof r=="string"&&r.startsWith("data:")&&r.includes("base64,"),isUrl:r=>{try{return new URL(r),r.startsWith("http://")||r.startsWith("https://")}catch{return!1}},isBase64:r=>AI.isValidBase64(r),getFileExtension:r=>{let t=r.split(/[?#]/)[0].match(/\.([^.]+)$/);if(!t)return null;let n=t[1].toLowerCase();return/^[a-z0-9]+$/.test(n)?n:null},isValidImageExtension:r=>{if(!r||typeof r!="string")return!1;let e=r.toLowerCase();return/^[a-z0-9]+$/.test(e)?kZt.has(e):!1},getValidatedImageExtension:r=>{let e=AI.getFileExtension(r);return e&&AI.isValidImageExtension(e)?e:null},formatFileSize:r=>{if(r===0)return"0 Bytes";let e=1024,t=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(r)/Math.log(e));return parseFloat((r/Math.pow(e,n)).toFixed(2))+" "+t[n]},bufferToBase64:(r,e=fg.IMAGE_MAX)=>Ra.safeBase64Convert(r,"buffer-to-base64",e),base64ToBuffer:r=>{let e=r.includes(",")?r.split(",")[1]:r;return Buffer.from(e,"base64")},redactPathFromMessage:BX,fileToBase64DataUri:async(r,e=10*1024*1024)=>{try{let t=await Promise.resolve().then(()=>(Zc(),pg)),n=await t.stat(r);if(!n.isFile())throw new Error("Not a file");if(n.size>e)throw new Error(`File too large: ${n.size} bytes (max: ${e} bytes)`);let o=await t.readFile(r),s=Ra.detectImageType(o)||Ra.detectImageType(r);Hee(s);let i=o.toString("base64");return`data:${s};base64,${i}`}catch(t){g.debug("fileToBase64DataUri failed",{filePath:r,error:t});let n=ci(r),o=yh(t,{filePath:r}),s=t instanceof Error?o.message:"Unknown error";throw new Error(`Failed to convert file to base64 (${n}): ${s}`,{cause:o})}},urlToBase64DataUri:async(r,{timeoutMs:e=15e3,maxBytes:t=10*1024*1024,maxAttempts:n=3}={})=>{let o=Dz(),s=o.get(r);if(s)return g.debug("Using cached image for URL",{url:Wr(r)}),s.dataUri;if(await Oz.acquire(),!/^https?:\/\//i.test(r))throw new Error("Unsupported protocol");let i=async()=>{let a=new AbortController,l=setTimeout(()=>a.abort(),e);try{let c=await fetch(r,{signal:a.signal});if(!c.ok)throw new Error(`HTTP ${c.status}: ${c.statusText}`);let u=c.headers.get("content-type")||"";if(!/^image\//i.test(u))throw new Error(`Unsupported content-type: ${u||"unknown"}`);let p=c.headers.get("content-length"),m=Number(p||0);if(p!==null&&m===0)throw new Error("Empty response: content-length is 0");if(m&&m>t)throw new Error(`Content too large: ${m} bytes`);let f=await c.arrayBuffer();if(f.byteLength>t)throw new Error(`Downloaded content too large: ${f.byteLength} bytes`);let h=Buffer.from(f),y=h.toString("base64"),x=`data:${u||"image/jpeg"};base64,${y}`;return o.set(r,x,u||"image/jpeg",h),x}finally{clearTimeout(l)}};try{return await tDe(i,{maxAttempts:n,initialDelay:sa.DEFAULT_INITIAL_DELAY,backoffMultiplier:sa.DEFAULT_BACKOFF_MULTIPLIER,maxDelay:sa.DEFAULT_MAX_DELAY,retryCondition:CZt,onRetry:(a,l)=>{let c=Xx(l instanceof Error?l.message:String(l)),u=n-a;g.warn(`\u26A0\uFE0F Image download attempt ${a} failed for ${Wr(r)}: ${c}. ${u} ${u===1?"attempt":"attempts"} remaining...`)}})}catch(a){let l=Wr(r),c=yh(a);throw new Error(`Failed to download and convert URL to base64 (${l}): ${c.message}`,{cause:c})}},extractBase64FromDataUri:r=>r.includes(",")?r.split(",")[1]:r,extractMimeTypeFromDataUri:r=>{let e=r.match(/^data:([^;]+);base64,/);return e?e[1]:"image/jpeg"},createDataUri:(r,e="image/jpeg")=>{let t=r.includes(",")?r.split(",")[1]:r;return`data:${e};base64,${t}`},isValidBase64:r=>{try{let e=r.includes(",")?r.split(",")[1]:r;if(!e||e.length===0||!/^[A-Za-z0-9+/]*={0,2}$/.test(e)||e.length%4!==0)return!1;let n=e.indexOf("=");if(n!==-1){if(n<e.length-2)return!1;let a=e.slice(n);if(!/^=+$/.test(a))return!1}let s=Buffer.from(e,"base64").toString("base64"),i=a=>a.replace(/=+$/,"");return i(e)===i(s)}catch{return!1}},getBase64Size:r=>{let e=r.includes(",")?r.split(",")[1]:r;return Buffer.byteLength(e,"base64")},compressBase64:(r,e=.8)=>(g.warn("Base64 compression not implemented - returning original"),r)}});function PZt(r){let e=r.toLowerCase();switch(e.replace(/[^a-z]/g,"")){case"lmstudio":return"lm-studio";case"llamacpp":return"llamacpp";case"nvidianim":return"nvidia-nim";case"googleaistudio":return"google-ai";case"or":return"openrouter";default:return e}}var zh,II,AZt,aDe,IZt,Kee,i_,lDe=E(()=>{"use strict";Uz();Y();zh=class{static logError(e,t,n){g.error(`Multimodal ${e} failed: ${t.message}`),process.env.NODE_ENV==="development"&&(g.error("Context:",JSON.stringify(n,null,2)),g.error("Stack:",t.stack))}},II={openai:10,azure:10,"google-ai":16,google:16,anthropic:20,vertex:{claude:20,gemini:16,default:16},ollama:10,litellm:10,mistral:10,bedrock:20,openrouter:10},AZt=new Set(["litellm","openrouter"]),aDe=[/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,/claude-(?:fable|mythos)-\d/i],IZt={anthropic:aDe,vertex:aDe};Kee={openai:["gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","gpt-5.4-pro","gpt-5.2","gpt-5.2-chat-latest","gpt-5.2-pro","gpt-5","gpt-5-2025-08-07","gpt-5-pro","gpt-5-mini","gpt-5-nano","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","o3","o3-mini","o3-pro","o4","o4-mini","o4-mini-deep-research","gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4-vision-preview"],"google-ai":["gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-flash-image-preview","gemini-3.1-pro-preview-customtools","gemini-3-flash-preview","gemini-3-pro-image-preview","gemini-3-pro-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.5-flash-image","gemini-2.0-flash","gemini-2.0-flash-001","gemini-2.0-flash-lite","gemini-2.0-flash-preview-image-generation","gemini-1.5-pro","gemini-1.5-flash","gemini-pro-vision"],anthropic:["claude-opus-4-6","claude-sonnet-4-6","claude-sonnet-4-5","claude-sonnet-4-5-20250929","claude-opus-4-5","claude-opus-4-5-20251101","claude-haiku-4-5","claude-haiku-4-5-20251001","claude-opus-4-1","claude-opus-4-1-20250805","claude-opus-4","claude-opus-4-20250514","claude-sonnet-4","claude-sonnet-4-20250514","claude-3-7-sonnet","claude-3-7-sonnet-20250219","claude-3-5-sonnet","claude-3-5-sonnet-20241022","claude-3-opus","claude-3-sonnet","claude-3-haiku"],azure:["gpt-5.1","gpt-5.1-chat","gpt-5.1-codex","gpt-5","gpt-5-pro","gpt-5-turbo","gpt-5-chat","gpt-5-mini","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","o3","o3-mini","o3-pro","o4-mini","gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4-vision-preview","gpt-4"],vertex:["gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-flash-image-preview","gemini-3.1-pro-preview-customtools","gemini-3-flash-preview","gemini-3-pro-image-preview","gemini-3-pro-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.5-flash-image","gemini-2.0-flash-001","gemini-2.0-flash-lite","gemini-2.0-flash","gemini-1.5-pro","gemini-1.5-flash","claude-sonnet-4-5@","claude-opus-4-5@","claude-haiku-4-5@","claude-haiku-4-5","claude-sonnet-4@","claude-opus-4@","claude-opus-4-1@","claude-3-7-sonnet@","claude-3-5-sonnet@","claude-opus-3@","claude-haiku-3@","claude-3-7-sonnet","claude-3-5-sonnet","claude-3-opus","claude-3-sonnet","claude-3-haiku","claude-sonnet-4","claude-sonnet-3","claude-opus-3","claude-haiku-3","claude-haiku-4","claude-3.5-sonnet","claude-3.5-haiku","claude-4.5-sonnet","claude-4.5-opus","claude-4.5-haiku","claude-haiku-4-5","claude-3.0-sonnet","claude-3.0-opus"],litellm:["openai/gpt-5","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-4-turbo","gpt-5","gpt-4o","gpt-4.1","anthropic/claude-sonnet-4-5-20250929","anthropic/claude-opus-4-1-20250805","anthropic/claude-3-5-sonnet-20240620","claude-sonnet-4-5","claude-sonnet-4-5-20250929","claude-opus-4-5","claude-opus-4-5-20251101","claude-haiku-4-5-20251001","claude-sonnet-4","claude-opus-4-1","vertex_ai/gemini-2.5-pro","gemini/gemini-2.5-pro","gemini/gemini-2.0-flash","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash","gemini-2.0-flash-lite","groq/llama-3.2-11b-vision-preview"],openrouter:["anthropic/claude-3.7-sonnet","anthropic/claude-3-5-haiku","anthropic/claude-3-opus","anthropic/claude-3-sonnet","anthropic/claude-3-haiku","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-4-turbo","openai/gpt-4-vision-preview","google/gemini-2.5-pro","google/gemini-2.5-flash","google/gemini-2.0-flash","google/gemini-2.0-flash-001","google/gemini-1.5-pro","google/gemini-1.5-flash","google/gemini-pro-vision","meta-llama/llama-3.2-90b-vision-instruct","meta-llama/llama-3.2-11b-vision-instruct","mistralai/pixtral-12b","mistralai/pixtral-large","qwen/qwen-2-vl-72b-instruct","qwen/qwen-2-vl-7b-instruct"],mistral:["mistral-large-latest","mistral-large-2512","mistral-small","mistral-small-latest","mistral-small-3.2","mistral-small-2506","mistral-medium","mistral-medium-latest","mistral-medium-3.1","mistral-medium-2508","magistral-small","magistral-small-latest","magistral-medium","magistral-medium-latest","pixtral-12b","pixtral-12b-latest","pixtral-large","pixtral-large-latest","pixtral-large-2502"],ollama:["llama4:scout","llama4:maverick","llama4:latest","llama4","llama3.2-vision","llama3.2-vision:11b","llama3.2-vision:90b","gemma3","gemma3:4b","gemma3:12b","gemma3:27b","gemma3:latest","qwen2.5-vl","qwen2.5-vl:72b","qwen2.5-vl:32b","mistral-small3.1","mistral-small3.1:large","mistral-small3.1:medium","mistral-small3.1:small","llava","llava:7b","llava:13b","llava:34b","llava-llama3","llava-llama3:8b"],bedrock:["amazon.nova-premier","amazon.nova-premier-v1:0","amazon.nova-pro","amazon.nova-pro-v1:0","amazon.nova-lite","amazon.nova-lite-v1:0","amazon.nova-2-lite-v1:0","nova-premier","nova-pro","nova-lite","claude-sonnet-4-5","claude-sonnet-4.5","anthropic.claude-sonnet-4-5","anthropic.claude-sonnet-4-5-20250929-v1:0","claude-opus-4-5","claude-opus-4.5","anthropic.claude-opus-4-5","anthropic.claude-opus-4-5-20251101-v1:0","claude-haiku-4-5","claude-haiku-4.5","anthropic.claude-haiku-4-5","anthropic.claude-haiku-4-5-20251001-v1:0","claude-sonnet-4","claude-sonnet-4@","anthropic.claude-sonnet-4","anthropic.claude-sonnet-4-20250514-v1:0","claude-opus-4","claude-opus-4-1","claude-opus-4@","anthropic.claude-opus-4","anthropic.claude-opus-4-1-20250805-v1:0","claude-3-7-sonnet","claude-3.7-sonnet","anthropic.claude-3-7-sonnet","anthropic.claude-3-7-sonnet-20250219-v1:0","claude-3-5-sonnet","claude-3.5-sonnet","anthropic.claude-3-5-sonnet","anthropic.claude-3-5-sonnet-20241022-v1:0","claude-3-opus","anthropic.claude-3-opus","claude-3-sonnet","anthropic.claude-3-sonnet","claude-3-haiku","anthropic.claude-3-haiku","meta.llama4-maverick-17b-instruct-v1:0","meta.llama4-scout-17b-instruct-v1:0","meta.llama3-2-90b-instruct-v1:0","meta.llama3-2-11b-instruct-v1:0","mistral.pixtral-large-2502-v1:0","anthropic.claude"],huggingface:["Qwen/Qwen2.5-VL-32B-Instruct","Qwen/Qwen2.5-VL-7B-Instruct","microsoft/Phi-3-vision-128k-instruct","llava-hf/llava-1.5-7b-hf","llava-hf/llava-v1.6-mistral-7b-hf"],sagemaker:["meta-llama-4-maverick-17b-128e-instruct","meta-llama-4-scout-17b-16e-instruct"],deepseek:[],"nvidia-nim":["meta/llama-3.2-90b-vision-instruct","meta/llama-3.2-11b-vision-instruct"],"lm-studio":["llava","llama-3.2-11b-vision","llama-3.2-90b-vision","vision-instruct","qwen2-vl","qwen2.5-vl","phi-3-vision"],llamacpp:["llava","llama-3.2-11b-vision","llama-3.2-90b-vision","vision-instruct","qwen2-vl","phi-3-vision"],xai:["grok-2-vision-latest"],groq:["llama-3.2-90b-vision-preview","llama-3.2-11b-vision-preview"],cohere:[],"together-ai":[],fireworks:["accounts/fireworks/models/phi-3-vision-128k-instruct","accounts/fireworks/models/llama-v3p2-90b-vision-instruct","accounts/fireworks/models/llama-v3p2-11b-vision-instruct"],perplexity:[],cloudflare:["@cf/meta/llama-3.2-11b-vision-instruct"],replicate:["llava","llama-3.2-vision","moondream","qwen2-vl"],voyage:[],jina:[],stability:[],ideogram:[],recraft:[]},i_=class{static validateImageCount(e,t,n){let o=t.toLowerCase(),s;if(o==="vertex"&&n)n.includes("claude")?s=II.vertex.claude:n.includes("gemini")?s=II.vertex.gemini:s=II.vertex.default;else{let a=o in II?II[o]:void 0;a===void 0?(s=10,g.warn(`Image count limit not defined for provider ${t}. Using conservative default of 10 images.`)):s=a}let i=Math.floor(s*.8);if(e===i&&g.warn(`Image count (${e}) is approaching the limit for ${t}. Maximum allowed: ${s}. Please reduce the number of images.`),e>s)throw new Error(`Image count (${e}) exceeds the maximum limit for ${t}. Maximum allowed: ${s}. Please reduce the number of images.`)}static convertToContent(e,t){let n=[{type:"text",text:e}];return t&&t.length>0&&t.forEach(o=>{let s=typeof o=="object"&&"data"in o&&!Buffer.isBuffer(o)?o.data:o,i=typeof o=="object"&&"data"in o&&!Buffer.isBuffer(o)?o.altText:void 0;n.push({type:"image",data:s,altText:i,mediaType:Ra.detectImageType(s)})}),n}static supportsVision(e,t){try{let n=PZt(e);if(n==="anthropic"&&process.env.ANTHROPIC_BASE_URL)return!0;let o=Kee[n];if(!o||o.length===0)return!1;if(!t)return!0;let s=o.some(i=>t.toLowerCase().includes(i.toLowerCase()));return!s&&IZt[n]?.some(i=>i.test(t))||!s&&AZt.has(n)?!0:s}catch{return!1}}static getSupportedModels(e){let t=e.toLowerCase(),n=Kee[t];return n?[...n]:[]}static getVisionProviders(){return Object.entries(Kee).filter(([,e])=>e.length>0).map(([e])=>e)}static countImagesInMessage(e,t){return(e?.length||0)+(t??0)}static countImagesInPages(e){return!e||e.length===0?0:e.reduce((t,n)=>t+(n.pageCount??0),0)}}});function cDe(){return{enabled:process.env.NEUROLINK_MEMORY_ENABLED==="true",maxSessions:Number(process.env.NEUROLINK_MEMORY_MAX_SESSIONS)||50,enableSummarization:process.env.NEUROLINK_SUMMARIZATION_ENABLED!=="false",tokenThreshold:process.env.NEUROLINK_TOKEN_THRESHOLD?Number(process.env.NEUROLINK_TOKEN_THRESHOLD):void 0,summarizationProvider:process.env.NEUROLINK_SUMMARIZATION_PROVIDER||"vertex",summarizationModel:process.env.NEUROLINK_SUMMARIZATION_MODEL||"gemini-2.5-flash",maxTurnsPerSession:50}}var Wee,Jee,Xee=E(()=>{"use strict";Wee=`
846
846
 
847
847
  IMPORTANT: You are continuing an ongoing conversation. The previous messages in this conversation contain important context including:
848
848
  - Names, personal information, and preferences shared by the user
@@ -1170,7 +1170,7 @@ Reason: ${i instanceof Error?i.message:"Unknown error"}`}}return{...e,prompt:n,i
1170
1170
  `}),e&&e.toLowerCase().includes("claude")&&(n+=`
1171
1171
  \u{1F4A1} Tip: "${e}" appears to be a Claude model.
1172
1172
  `,n+=`Ensure Anthropic integration is enabled in your Google Cloud project.
1173
- `,n+="Try using an available Claude model from the list above."),n}async embed(e,t){let n=t||this.getDefaultEmbeddingModel()||"text-embedding-004";g.debug("Generating embedding",{provider:this.providerName,model:n,textLength:e.length});try{let o=hM(n,void 0),a=(await(await this.createVertexGenAIClient(o)).models.embedContent({model:n,contents:[e]})).embeddings?.[0]?.values;if(!a||a.length===0)throw new mt("No embedding returned from Vertex AI",this.providerName);return g.debug("Embedding generated successfully",{provider:this.providerName,model:n,embeddingDimension:a.length}),a}catch(o){throw g.error("Embedding generation failed",{error:o instanceof Error?o.message:String(o),model:n,textLength:e.length}),this.handleProviderError(o)}}async embedMany(e,t){let n=t||this.getDefaultEmbeddingModel()||"text-embedding-004";g.debug("Generating batch embeddings",{provider:this.providerName,model:n,count:e.length});try{let o=hM(n,void 0),a=((await(await this.createVertexGenAIClient(o)).models.embedContent({model:n,contents:e})).embeddings||[]).map(l=>l.values||[]);return g.debug("Batch embeddings generated successfully",{provider:this.providerName,model:n,count:a.length,embeddingDimension:a[0]?.length}),a}catch(o){throw g.error("Batch embedding generation failed",{error:o instanceof Error?o.message:String(o),model:n,count:e.length}),this.handleProviderError(o)}}}});var P_r,M_r,Lg,O_r,Qse,eie=E(()=>{"use strict";gr();P_r=10*1024*1024,M_r=pt.getTracer("neurolink.provider.vertex"),Lg=null,O_r={"claude-sonnet-4-5":"claude-sonnet-4-5@20250929","claude-opus-4-5":"claude-opus-4-5@20251124","claude-haiku-4-5":"claude-haiku-4-5@20251001","claude-sonnet-4":"claude-sonnet-4@20250514","claude-opus-4":"claude-opus-4@20250514","claude-opus-4-1":"claude-opus-4-1@20250805","claude-3-7-sonnet":"claude-3-7-sonnet@20250219","claude-3-5-sonnet":"claude-3-5-sonnet-20241022","claude-3-5-haiku":"claude-3-5-haiku-20241022","claude-3-opus":"claude-3-opus-20240229","claude-3-sonnet":"claude-3-sonnet-20240229","claude-3-haiku":"claude-3-haiku-20240307","gemini-3-pro":"gemini-3.1-pro-preview","gemini-3-flash":"gemini-3-flash-preview"},Qse=r=>{Lg=r}});function Gze(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.toString():JSON.stringify(r)}var Lze,N_r,ize,aze,Kr,Fze,$ze,D_r,lze,cze,Ul,Bze,zze,L_r,uze,dze,jze,qze,Vze,U_r,pze,mze,Bq,Hze,Kze,F_r,gze,fze,fto,Wze,Jze,$_r,hze,yze,hto,Xze,Yze,B_r,xze,vze,yM,Zze,Qze,z_r,bze,Tze,yto,eje,tje,j_r,Sze,wze,xto,rje,nje,G_r,_ze,Eze,vto,oje,sje,q_r,Cze,Rze,rie,ije,aje,V_r,kze,Aze,lje,cje,uje,H_r,Ize,Pze,bto,dje,pje,K_r,Mze,Oze,gy,mje,gje,W_r,Nze,Dze,xb,Oa=E(()=>{Lze="vercel.ai.error",N_r=Symbol.for(Lze),Kr=class Uze extends(aze=Error,ize=N_r,aze){constructor({name:e,message:t,cause:n}){super(t),this[ize]=!0,this.name=e,this.cause=n}static isInstance(e){return Uze.hasMarker(e,Lze)}static hasMarker(e,t){let n=Symbol.for(t);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===!0}},Fze="AI_APICallError",$ze=`vercel.ai.error.${Fze}`,D_r=Symbol.for($ze),Ul=class extends(cze=Kr,lze=D_r,cze){constructor({message:r,url:e,requestBodyValues:t,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:a=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:Fze,message:r,cause:i}),this[lze]=!0,this.url=e,this.requestBodyValues=t,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=a,this.data=l}static isInstance(r){return Kr.hasMarker(r,$ze)}},Bze="AI_EmptyResponseBodyError",zze=`vercel.ai.error.${Bze}`,L_r=Symbol.for(zze),jze=class extends(dze=Kr,uze=L_r,dze){constructor({message:r="Empty response body"}={}){super({name:Bze,message:r}),this[uze]=!0}static isInstance(r){return Kr.hasMarker(r,zze)}};qze="AI_InvalidArgumentError",Vze=`vercel.ai.error.${qze}`,U_r=Symbol.for(Vze),Bq=class extends(mze=Kr,pze=U_r,mze){constructor({message:r,cause:e,argument:t}){super({name:qze,message:r,cause:e}),this[pze]=!0,this.argument=t}static isInstance(r){return Kr.hasMarker(r,Vze)}},Hze="AI_InvalidPromptError",Kze=`vercel.ai.error.${Hze}`,F_r=Symbol.for(Kze),fto=class extends(fze=Kr,gze=F_r,fze){constructor({prompt:r,message:e,cause:t}){super({name:Hze,message:`Invalid prompt: ${e}`,cause:t}),this[gze]=!0,this.prompt=r}static isInstance(r){return Kr.hasMarker(r,Kze)}},Wze="AI_InvalidResponseDataError",Jze=`vercel.ai.error.${Wze}`,$_r=Symbol.for(Jze),hto=class extends(yze=Kr,hze=$_r,yze){constructor({data:r,message:e=`Invalid response data: ${JSON.stringify(r)}.`}){super({name:Wze,message:e}),this[hze]=!0,this.data=r}static isInstance(r){return Kr.hasMarker(r,Jze)}},Xze="AI_JSONParseError",Yze=`vercel.ai.error.${Xze}`,B_r=Symbol.for(Yze),yM=class extends(vze=Kr,xze=B_r,vze){constructor({text:r,cause:e}){super({name:Xze,message:`JSON parsing failed: Text: ${r}.
1173
+ `,n+="Try using an available Claude model from the list above."),n}async embed(e,t){let n=t||this.getDefaultEmbeddingModel()||"text-embedding-004";g.debug("Generating embedding",{provider:this.providerName,model:n,textLength:e.length});try{let o=hM(n,void 0),a=(await(await this.createVertexGenAIClient(o)).models.embedContent({model:n,contents:[e]})).embeddings?.[0]?.values;if(!a||a.length===0)throw new mt("No embedding returned from Vertex AI",this.providerName);return g.debug("Embedding generated successfully",{provider:this.providerName,model:n,embeddingDimension:a.length}),a}catch(o){throw g.error("Embedding generation failed",{error:o instanceof Error?o.message:String(o),model:n,textLength:e.length}),this.handleProviderError(o)}}async embedMany(e,t){let n=t||this.getDefaultEmbeddingModel()||"text-embedding-004";g.debug("Generating batch embeddings",{provider:this.providerName,model:n,count:e.length});try{let o=hM(n,void 0),a=((await(await this.createVertexGenAIClient(o)).models.embedContent({model:n,contents:e})).embeddings||[]).map(l=>l.values||[]);return g.debug("Batch embeddings generated successfully",{provider:this.providerName,model:n,count:a.length,embeddingDimension:a[0]?.length}),a}catch(o){throw g.error("Batch embedding generation failed",{error:o instanceof Error?o.message:String(o),model:n,count:e.length}),this.handleProviderError(o)}}}});var P_r,M_r,Lg,O_r,Qse,eie=E(()=>{"use strict";gr();P_r=10*1024*1024,M_r=pt.getTracer("neurolink.provider.vertex"),Lg=null,O_r={"claude-sonnet-4-5":"claude-sonnet-4-5@20250929","claude-opus-4-5":"claude-opus-4-5@20251101","claude-haiku-4-5":"claude-haiku-4-5@20251001","claude-sonnet-4":"claude-sonnet-4@20250514","claude-opus-4":"claude-opus-4@20250514","claude-opus-4-1":"claude-opus-4-1@20250805","claude-3-7-sonnet":"claude-3-7-sonnet@20250219","claude-3-5-sonnet":"claude-3-5-sonnet-20241022","claude-3-5-haiku":"claude-3-5-haiku-20241022","claude-3-opus":"claude-3-opus-20240229","claude-3-sonnet":"claude-3-sonnet-20240229","claude-3-haiku":"claude-3-haiku-20240307","gemini-3-pro":"gemini-3.1-pro-preview","gemini-3-flash":"gemini-3-flash-preview"},Qse=r=>{Lg=r}});function Gze(r){return r==null?"unknown error":typeof r=="string"?r:r instanceof Error?r.toString():JSON.stringify(r)}var Lze,N_r,ize,aze,Kr,Fze,$ze,D_r,lze,cze,Ul,Bze,zze,L_r,uze,dze,jze,qze,Vze,U_r,pze,mze,Bq,Hze,Kze,F_r,gze,fze,fto,Wze,Jze,$_r,hze,yze,hto,Xze,Yze,B_r,xze,vze,yM,Zze,Qze,z_r,bze,Tze,yto,eje,tje,j_r,Sze,wze,xto,rje,nje,G_r,_ze,Eze,vto,oje,sje,q_r,Cze,Rze,rie,ije,aje,V_r,kze,Aze,lje,cje,uje,H_r,Ize,Pze,bto,dje,pje,K_r,Mze,Oze,gy,mje,gje,W_r,Nze,Dze,xb,Oa=E(()=>{Lze="vercel.ai.error",N_r=Symbol.for(Lze),Kr=class Uze extends(aze=Error,ize=N_r,aze){constructor({name:e,message:t,cause:n}){super(t),this[ize]=!0,this.name=e,this.cause=n}static isInstance(e){return Uze.hasMarker(e,Lze)}static hasMarker(e,t){let n=Symbol.for(t);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===!0}},Fze="AI_APICallError",$ze=`vercel.ai.error.${Fze}`,D_r=Symbol.for($ze),Ul=class extends(cze=Kr,lze=D_r,cze){constructor({message:r,url:e,requestBodyValues:t,statusCode:n,responseHeaders:o,responseBody:s,cause:i,isRetryable:a=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:Fze,message:r,cause:i}),this[lze]=!0,this.url=e,this.requestBodyValues=t,this.statusCode=n,this.responseHeaders=o,this.responseBody=s,this.isRetryable=a,this.data=l}static isInstance(r){return Kr.hasMarker(r,$ze)}},Bze="AI_EmptyResponseBodyError",zze=`vercel.ai.error.${Bze}`,L_r=Symbol.for(zze),jze=class extends(dze=Kr,uze=L_r,dze){constructor({message:r="Empty response body"}={}){super({name:Bze,message:r}),this[uze]=!0}static isInstance(r){return Kr.hasMarker(r,zze)}};qze="AI_InvalidArgumentError",Vze=`vercel.ai.error.${qze}`,U_r=Symbol.for(Vze),Bq=class extends(mze=Kr,pze=U_r,mze){constructor({message:r,cause:e,argument:t}){super({name:qze,message:r,cause:e}),this[pze]=!0,this.argument=t}static isInstance(r){return Kr.hasMarker(r,Vze)}},Hze="AI_InvalidPromptError",Kze=`vercel.ai.error.${Hze}`,F_r=Symbol.for(Kze),fto=class extends(fze=Kr,gze=F_r,fze){constructor({prompt:r,message:e,cause:t}){super({name:Hze,message:`Invalid prompt: ${e}`,cause:t}),this[gze]=!0,this.prompt=r}static isInstance(r){return Kr.hasMarker(r,Kze)}},Wze="AI_InvalidResponseDataError",Jze=`vercel.ai.error.${Wze}`,$_r=Symbol.for(Jze),hto=class extends(yze=Kr,hze=$_r,yze){constructor({data:r,message:e=`Invalid response data: ${JSON.stringify(r)}.`}){super({name:Wze,message:e}),this[hze]=!0,this.data=r}static isInstance(r){return Kr.hasMarker(r,Jze)}},Xze="AI_JSONParseError",Yze=`vercel.ai.error.${Xze}`,B_r=Symbol.for(Yze),yM=class extends(vze=Kr,xze=B_r,vze){constructor({text:r,cause:e}){super({name:Xze,message:`JSON parsing failed: Text: ${r}.
1174
1174
  Error message: ${Gze(e)}`,cause:e}),this[xze]=!0,this.text=r}static isInstance(r){return Kr.hasMarker(r,Yze)}},Zze="AI_LoadAPIKeyError",Qze=`vercel.ai.error.${Zze}`,z_r=Symbol.for(Qze),yto=class extends(Tze=Kr,bze=z_r,Tze){constructor({message:r}){super({name:Zze,message:r}),this[bze]=!0}static isInstance(r){return Kr.hasMarker(r,Qze)}},eje="AI_LoadSettingError",tje=`vercel.ai.error.${eje}`,j_r=Symbol.for(tje),xto=class extends(wze=Kr,Sze=j_r,wze){constructor({message:r}){super({name:eje,message:r}),this[Sze]=!0}static isInstance(r){return Kr.hasMarker(r,tje)}},rje="AI_NoContentGeneratedError",nje=`vercel.ai.error.${rje}`,G_r=Symbol.for(nje),vto=class extends(Eze=Kr,_ze=G_r,Eze){constructor({message:r="No content generated."}={}){super({name:rje,message:r}),this[_ze]=!0}static isInstance(r){return Kr.hasMarker(r,nje)}},oje="AI_NoSuchModelError",sje=`vercel.ai.error.${oje}`,q_r=Symbol.for(sje),rie=class extends(Rze=Kr,Cze=q_r,Rze){constructor({errorName:r=oje,modelId:e,modelType:t,message:n=`No such ${t}: ${e}`}){super({name:r,message:n}),this[Cze]=!0,this.modelId=e,this.modelType=t}static isInstance(r){return Kr.hasMarker(r,sje)}},ije="AI_NoSuchProviderReferenceError",aje=`vercel.ai.error.${ije}`,V_r=Symbol.for(aje),lje=class extends(Aze=Kr,kze=V_r,Aze){constructor({provider:r,reference:e,message:t=`No provider reference found for provider '${r}'. Available providers: ${Object.keys(e).join(", ")}`}){super({name:ije,message:t}),this[kze]=!0,this.provider=r,this.reference=e}static isInstance(r){return Kr.hasMarker(r,aje)}},cje="AI_TooManyEmbeddingValuesForCallError",uje=`vercel.ai.error.${cje}`,H_r=Symbol.for(uje),bto=class extends(Pze=Kr,Ize=H_r,Pze){constructor(r){super({name:cje,message:`Too many values for a single embedding call. The ${r.provider} model "${r.modelId}" can only embed up to ${r.maxEmbeddingsPerCall} values per call, but ${r.values.length} values were provided.`}),this[Ize]=!0,this.provider=r.provider,this.modelId=r.modelId,this.maxEmbeddingsPerCall=r.maxEmbeddingsPerCall,this.values=r.values}static isInstance(r){return Kr.hasMarker(r,uje)}},dje="AI_TypeValidationError",pje=`vercel.ai.error.${dje}`,K_r=Symbol.for(pje),gy=class tie extends(Oze=Kr,Mze=K_r,Oze){constructor({value:e,cause:t,context:n}){let o="Type validation failed";if(n?.field&&(o+=` for ${n.field}`),n?.entityName||n?.entityId){o+=" (";let s=[];n.entityName&&s.push(n.entityName),n.entityId&&s.push(`id: "${n.entityId}"`),o+=s.join(", "),o+=")"}super({name:dje,message:`${o}: Value: ${JSON.stringify(e)}.
1175
1175
  Error message: ${Gze(t)}`,cause:t}),this[Mze]=!0,this.value=e,this.context=n}static isInstance(e){return Kr.hasMarker(e,pje)}static wrap({value:e,cause:t,context:n}){var o,s,i;return tie.isInstance(t)&&t.value===e&&((o=t.context)==null?void 0:o.field)===n?.field&&((s=t.context)==null?void 0:s.entityName)===n?.entityName&&((i=t.context)==null?void 0:i.entityId)===n?.entityId?t:new tie({value:e,cause:t,context:n})}},mje="AI_UnsupportedFunctionalityError",gje=`vercel.ai.error.${mje}`,W_r=Symbol.for(gje),xb=class extends(Dze=Kr,Nze=W_r,Dze){constructor({functionality:r,message:e=`'${r}' functionality not supported.`}){super({name:mje,message:e}),this[Nze]=!0,this.functionality=r}static isInstance(r){return Kr.hasMarker(r,gje)}}});function nie(r){}function xje(r){if(typeof r=="function")throw new TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:e=nie,onError:t=nie,onRetry:n=nie,onComment:o,maxBufferSize:s}=r,i=[],a=0,l=!0,c,u="",p=0,m,f=!1;function h(R){if(f)throw new Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(l&&(l=!1,R.charCodeAt(0)===239&&R.charCodeAt(1)===187&&R.charCodeAt(2)===191&&(R=R.slice(3))),i.length===0){let I=x(R);I!==""&&(i.push(I),a=I.length),y();return}if(R.indexOf(`
1176
1176
  `)===-1&&R.indexOf("\r")===-1){i.push(R),a+=R.length,y();return}i.push(R);let k=i.join("");i.length=0,a=0;let P=x(k);P!==""&&(i.push(P),a=P.length),y()}function y(){s!==void 0&&(a+u.length<=s||(f=!0,i.length=0,a=0,c=void 0,u="",p=0,m=void 0,t(new xM(`Buffered data exceeded max buffer size of ${s} characters`,{type:"max-buffer-size-exceeded"}))))}function x(R){let k=0;if(R.indexOf("\r")===-1){let P=R.indexOf(`