@juspay/neurolink 12.41.7 → 12.41.9

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 dTr=Object.create,f1=Object.defineProperty,pTr=Object.getOwnPropertyDescriptor,J$=Object.getOwnPropertyNames,mTr=Object.getPrototypeOf,hTr=Object.prototype.hasOwnProperty,Npe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),_=(e,t,r)=>function(){try{return e&&(t=(0,e[J$(e)[0]])(e=0)),t}catch(o){return console.warn("[NeuroLink:browser] module init skipped:",String(o)),e=0,t}},Gr=(e,t)=>function(){try{return t||(0,e[J$(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Z=(e,t)=>{for(var r in t)f1(e,r,{get:t[r],enumerable:!0})},Lpe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of J$(t))!hTr.call(e,o)&&o!==r&&f1(e,o,{get:()=>t[o],enumerable:!(n=pTr(t,o))||n.enumerable});return e},rl=(e,t,r)=>(r=e!=null?dTr(mTr(e)):{},Lpe(t||!e||!e.__esModule?f1(r,"default",{value:e,enumerable:!0}):r,e)),qr=e=>Lpe(f1({},"__esModule",{value:!0}),e),Y$={};Z(Y$,{ATTR_SERVICE_NAME:()=>mme,ATTR_SERVICE_VERSION:()=>hme,AsyncLocalStorageContextManager:()=>dme,BasicTracerProvider:()=>Kpe,BatchLogRecordProcessor:()=>ame,BatchSpanProcessor:()=>Xpe,DiagConsoleLogger:()=>Bpe,DiagLogLevel:()=>zpe,ExportResultCode:()=>Fpe,INVALID_SPAN_CONTEXT:()=>Vpe,JsonLogsSerializer:()=>eme,LangfuseSpanProcessor:()=>sme,LoggerProvider:()=>ime,MeterProvider:()=>cme,NodeSDK:()=>Wpe,NodeTracerProvider:()=>Jpe,OTLPLogExporter:()=>Qpe,OTLPMetricExporter:()=>tme,OTLPTraceExporter:()=>Zpe,PeriodicExportingMetricReader:()=>lme,ROOT_CONTEXT:()=>Z$,SEMRESATTRS_SERVICE_NAME:()=>fme,SEMRESATTRS_SERVICE_VERSION:()=>gme,SeverityNumber:()=>ume,SimpleSpanProcessor:()=>Ype,SpanKind:()=>jr,SpanStatusCode:()=>Ue,TraceFlags:()=>Upe,ValueType:()=>Gpe,W3CTraceContextPropagator:()=>pme,baggageEntryMetadataFromString:()=>Hpe,context:()=>fr,default:()=>yme,diag:()=>v1,getNodeAutoInstrumentations:()=>rme,isSpanContextValid:()=>X$,isValidSpanId:()=>jpe,isValidTraceId:()=>qpe,metrics:()=>dh,parseKeyPairsIntoRecord:()=>$pe,propagation:()=>Ey,registerInstrumentations:()=>nme,resourceFromAttributes:()=>ome,trace:()=>ut});var g1,yb,y1,by,ut,fr,Ey,dh,v1,Fpe,$pe,Ue,jr,Upe,Bpe,zpe,Gpe,X$,Z$,qpe,jpe,Vpe,Hpe,Wpe,Kpe,Jpe,Ype,Xpe,Zpe,Qpe,eme,tme,rme,nme,ome,sme,ime,ame,cme,lme,ume,dme,pme,mme,hme,fme,gme,yme,Xt=_({"otel-stub:@opentelemetry/api"(){g1={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}}},yb={startSpan(){return g1},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(g1)}},y1={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},by={getValue(){},setValue(){return by},deleteValue(){return by}},ut={getTracer(){return yb},getTracerProvider(){return{getTracer(){return yb}}},setGlobalTracerProvider(){},getSpan(){return g1},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},fr={active(){return by},with(e,t){return t()},bind(e,t){return t},setValue(){return by},getValue(){}},Ey={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},dh={getMeter(){return y1},getMeterProvider(){return{getMeter(){return y1}}},setGlobalMeterProvider(){}},v1={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return v1}},Fpe={SUCCESS:0,FAILED:1},$pe=()=>({}),Ue={UNSET:0,OK:1,ERROR:2},jr={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},Upe={NONE:0,SAMPLED:1},Bpe=class{},zpe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},Gpe={INT:0,DOUBLE:1},X$=()=>!1,Z$=by,qpe=()=>!1,jpe=()=>!1,Vpe={traceId:"0",spanId:"0",traceFlags:0},Hpe=()=>({}),Wpe=class{start(){}shutdown(){return Promise.resolve()}},Kpe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return yb}shutdown(){return Promise.resolve()}},Jpe=class{register(){}addSpanProcessor(){}getTracer(){return yb}shutdown(){return Promise.resolve()}},Ype=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Xpe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Zpe=class{export(){}shutdown(){return Promise.resolve()}},Qpe=class{export(){}shutdown(){return Promise.resolve()}},eme={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},tme=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},rme=()=>[],nme=()=>{},ome=e=>({attributes:e||{},merge(){return this}}),sme=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ime=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},ame=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},cme=class{constructor(){}getMeter(){return y1}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},lme=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ume={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},dme=class{enable(){return this}disable(){return this}},pme=class{inject(){}extract(e){return e}fields(){return[]}},mme="service.name",hme="service.version",fme="service.name",gme="service.version",yme={trace:ut,context:fr,propagation:Ey,metrics:dh,diag:v1,SpanStatusCode:Ue,SpanKind:jr}}}),Be,mr=_({"src/lib/telemetry/tracers.ts"(){"use strict";Xt(),Be={sdk:ut.getTracer("neurolink"),provider:ut.getTracer("neurolink.provider"),generation:ut.getTracer("neurolink.generation"),decision:ut.getTracer("neurolink.decision"),stream:ut.getTracer("neurolink.stream"),http:ut.getTracer("neurolink.http"),mcp:ut.getTracer("neurolink.mcp"),memory:ut.getTracer("neurolink.memory"),redis:ut.getTracer("neurolink.redis"),factory:ut.getTracer("neurolink.factory"),rag:ut.getTracer("neurolink.rag"),context:ut.getTracer("neurolink.context"),middleware:ut.getTracer("neurolink.middleware"),processor:ut.getTracer("neurolink.processor"),file:ut.getTracer("neurolink.file"),autoresearch:ut.getTracer("neurolink.autoresearch"),auth:ut.getTracer("neurolink.auth"),workflow:ut.getTracer("neurolink.workflow")}}}),fTr,w1,gTr,yTr,vTr,T1,vme,Q$,wTr,TTr,bTr,ETr,e6=_({"node-stub:node:async_hooks"(){fTr=globalThis.crypto,w1=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},gTr=globalThis.ReadableStream||class{},yTr=globalThis.URL,vTr=globalThis.URLSearchParams,T1=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},T1.custom=Symbol.for("nodejs.util.inspect.custom"),T1.colors={},T1.styles={},vme=globalThis.TextDecoder,Q$=globalThis.TextEncoder,wTr=globalThis.performance||{now:()=>Date.now()},TTr=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new Q$().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new Q$().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new vme().decode(this)}},bTr=globalThis.clearTimeout,ETr=globalThis.clearInterval}});async function _Tr(){return _1||(_1=Promise.resolve().then(()=>(Xt(),Y$)).then(e=>(vb=e,e)).catch(()=>null)),_1}function STr(){const e=process.argv;return e.some((t,r)=>t6.includes(t)&&e[r+1]==="json"||t6.some(n=>t===`${n}=json`))}function wme(e){if(e===null||typeof e!="object")return e;try{return structuredClone(e)}catch{return e}}function b1(e,t){if(e.length===0)return;const r=(()=>{try{return typeof e[0]=="string"?e[0]:JSON.stringify(e[0])}catch{return"[Unserializable Object]"}})(),n=e.length===2?e[1]:e.length>2?e.slice(1):void 0;t(r,n)}var E1,vb,_1,Tme,t6,bme,Mn,m,ne,ir,z=_({"src/lib/utils/logger.ts"(){"use strict";e6(),E1=new w1,vb=null,_1=null,_Tr(),Tme={debug:"DEBUG",info:"INFO",warn:"WARN",error:"ERROR"},t6=["--format","-f","--output-format"],bme=class{logLevel="info";logs=[];maxLogs=1e3;isDebugMode;diagnosticsToStderr=!1;eventEmitter;scopedEmitters=new Map;constructor(){this.isDebugMode=process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true";const 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)}runInInstanceScope(e,t){return E1.run(e,t)}getInstanceScope(){return E1.getStore()}addScopedEventEmitter(e,t){const r=this.scopedEmitters.get(e);if(r){r.add(t);return}this.scopedEmitters.set(e,new Set([t]))}removeScopedEventEmitter(e,t){const r=this.scopedEmitters.get(e);r&&(r.delete(t),r.size===0&&this.scopedEmitters.delete(e))}clearScopedEventEmitters(e){this.scopedEmitters.delete(e)}setLogLevel(e){this.logLevel=e}setDiagnosticsToStderr(e){this.diagnosticsToStderr=e}shouldLog(e){if(!(process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true")&&e!=="error")return!1;const r=["debug","info","warn","error"];return r.indexOf(e)>=r.indexOf(this.logLevel)}getLogPrefix(e,t){return`[${e}] [NEUROLINK:${Tme[t]}]`}getTraceContext(){if(!vb)return{};try{const e=vb.trace.getSpan(vb.context.active());if(!e)return{};const 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,r)=>r instanceof Error?{name:r.name,message:r.message,stack:r.stack}:r)}catch{const t=[];try{return JSON.stringify(e,function(r,n){if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(typeof n=="object"&&n!==null){if(t.includes(n))return"[Circular]";t.push(n)}return n})}catch{return"[Unserializable Object]"}}}outputToConsole(e,t,r,n){const o=this.diagnosticsToStderr||STr(),s={debug:o?console.error:console.debug,info:o?console.error: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}]`:"";n!=null?s(t+a,r,this.serializeData(n)):s(t+a,r)}log(e,t,r){if(!this.shouldLog(e))return;const n={level:e,message:t,timestamp:new Date,data:r},o=E1.getStore(),s=o===void 0?void 0:this.scopedEmitters.get(o);if(s||this.eventEmitter){const c=n.timestamp.getTime();if(s)for(const l of s)try{l.emit("log-event",{level:e,message:t,timestamp:c,data:wme(r)})}catch{}if(this.eventEmitter)try{this.eventEmitter.emit("log-event",{level:e,message:t,timestamp:c,data:wme(r)})}catch{}}this.logs.push(n),this.logs.length>this.maxLogs&&(this.logs=this.logs.slice(-this.maxLogs));const i=n.timestamp.toISOString(),a=this.getLogPrefix(i,e);this.outputToConsole(e,a,t,r)}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)}},Mn=new bme,m={debug:(...e)=>{Mn.shouldLog("debug")&&b1(e,(t,r)=>Mn.debug(t,r))},info:(...e)=>{Mn.shouldLog("info")&&b1(e,(t,r)=>Mn.info(t,r))},warn:(...e)=>{Mn.shouldLog("warn")&&b1(e,(t,r)=>Mn.warn(t,r))},error:(...e)=>{Mn.shouldLog("error")&&b1(e,(t,r)=>Mn.error(t,r))},always:(...e)=>{Mn.always(...e)},alwaysStderr:(...e)=>{Mn.alwaysStderr(...e)},table:e=>{Mn.table(e)},shouldLog:e=>Mn.shouldLog(e),setLogLevel:e=>Mn.setLogLevel(e),setDiagnosticsToStderr:e=>Mn.setDiagnosticsToStderr(e),getLogs:e=>Mn.getLogs(e),clearLogs:()=>Mn.clearLogs(),setEventEmitter:e=>Mn.setEventEmitter(e),clearEventEmitter:e=>Mn.clearEventEmitter(e),runInInstanceScope:(e,t)=>Mn.runInInstanceScope(e,t),getInstanceScope:()=>Mn.getInstanceScope(),addScopedEventEmitter:(e,t)=>Mn.addScopedEventEmitter(e,t),removeScopedEventEmitter:(e,t)=>Mn.removeScopedEventEmitter(e,t),clearScopedEventEmitters:e=>Mn.clearScopedEventEmitters(e)},ne=Mn,ir=Mn}});function S1(e,t){if(typeof e!="string")throw new TypeError("levenshtein: operands must be strings");if(typeof t!="string")throw new TypeError("levenshtein: operands must be strings");if(e.length>mc)throw new RangeError(r6);if(t.length>mc)throw new RangeError(r6);if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;e.length>t.length&&([e,t]=[t,e]);const r=e.length,n=t.length;let o=new Array(r+1),s=new Array(r+1);for(let i=0;i<=r;i++)o[i]=i;for(let i=1;i<=n;i++){s[0]=i;for(let a=1;a<=r;a++){const c=e[a-1]===t[i-1]?0:1;s[a]=Math.min(o[a]+1,s[a-1]+1,o[a-1]+c)}[o,s]=[s,o]}return o[r]}function kTr(e,t,r){const n=r?.maxDistance??3,o=r?.limit??3,s=e.toLowerCase();if(s.length>mc)return[];const i=[];return t.forEach((a,c)=>{const l=a.toLowerCase();if(Math.abs(l.length-s.length)>n||l.length>mc)return;const u=S1(s,l);u<=n&&i.push({candidate:a,order:c,distance:u})}),i.sort((a,c)=>a.distance-c.distance||a.order-c.order).slice(0,o).map(a=>a.candidate)}var mc,r6,Eme=_({"src/lib/utils/stringDistance.ts"(){"use strict";mc=128,r6=`levenshtein: input exceeds MAX_COMPARABLE_LENGTH (${mc}); callers must skip over-limit operands rather than truncate them`}}),k1,n6,o6,s6,_me,i6=_({"src/lib/constants/enums.ts"(){"use strict";k1=(e=>(e.BEDROCK="bedrock",e.OPENAI="openai",e.OPENAI_COMPATIBLE="openai-compatible",e.OPENROUTER="openrouter",e.VERTEX="vertex",e.ANTHROPIC="anthropic",e.AZURE="azure",e.GOOGLE_AI="google-ai",e.OLLAMA="ollama",e.LITELLM="litellm",e.SAGEMAKER="sagemaker",e.NVIDIA_NIM="nvidia-nim",e.LM_STUDIO="lm-studio",e.LLAMACPP="llamacpp",e.ABOVE_DEV="above-dev",e.AI21="ai21",e.AIAND="aiand",e.AIONLABS="aionlabs",e.AMBIENT="ambient",e.API_ROUTE="api-route",e.ATLAS_CLOUD="atlas-cloud",e.AVIAN_IO="avian-io",e.BASETEN="baseten",e.BEE_HEOSSI="bee-heossi",e.CEREBRAS="cerebras",e.CHARM_HYPER="charm-hyper",e.CHUTES="chutes",e.CLOUDFLARE="cloudflare",e.CRUSOE="crusoe",e.DEEPINFRA="deepinfra",e.DEEPSEEK="deepseek",e.EMPIRIOLABS="empiriolabs",e.FEATHERLESS_AI="featherless-ai",e.FIREWORKS="fireworks",e.FRIENDLI="friendli",e.GMICLOUD="gmicloud",e.GROQ="groq",e.HUGGINGFACE="huggingface",e.INCEPTION_LABS="inception-labs",e.INCO="inco",e.INFERENCE_NET="inference-net",e.IO_INTELLIGENCE="io-intelligence",e.KOSCOMPUTE="koscompute",e.LILAC="lilac",e.LLMTECH="llmtech",e.MANCER="mancer",e.MINIMAX="minimax",e.MISTRAL="mistral",e.MOARK="moark",e.MOONSHOT_AI="moonshot-ai",e.MORPH="morph",e.NEBIUS="nebius",e.NEURALWATT="neuralwatt",e.NOVITA="novita",e.OVHCLOUD="ovhcloud",e.PARETO_INFERENCE="pareto-inference",e.PERPLEXITY="perplexity",e.PRIME_INTELLECT="prime-intellect",e.SAMBANOVA="sambanova",e.SARVAM="sarvam",e.SCALEWAY="scaleway",e.SILICONFLOW="siliconflow",e.STEPFUN="stepfun",e.SUBCONSCIOUS="subconscious",e.SYNTHETIC="synthetic",e.TINFOIL="tinfoil",e.TOGETHER_AI="together-ai",e.UMANS_AI="umans-ai",e.UPSTAGE="upstage",e.VENICE_AI="venice-ai",e.VULTR_INFERENCE="vultr-inference",e.WAFER="wafer",e.WANDB_INFERENCE="wandb-inference",e.XAI="xai",e.Z_AI="z-ai",e.COHERE="cohere",e.REPLICATE="replicate",e.VOYAGE="voyage",e.JINA="jina",e.STABILITY="stability",e.IDEOGRAM="ideogram",e.RECRAFT="recraft",e.TYPESAFE="typesafe",e.LAYA="laya",e.XOR="xor",e.AUTO="auto",e))(k1||{}),n6=(e=>(e.CLAUDE_4_6_OPUS="anthropic.claude-opus-4-6-v1",e.CLAUDE_4_6_SONNET="anthropic.claude-sonnet-4-6",e.CLAUDE_4_5_OPUS="anthropic.claude-opus-4-5-20251101-v1:0",e.CLAUDE_4_5_SONNET="anthropic.claude-sonnet-4-5-20250929-v1:0",e.CLAUDE_4_5_HAIKU="anthropic.claude-haiku-4-5-20251001-v1:0",e.CLAUDE_4_1_OPUS="anthropic.claude-opus-4-1-20250805-v1:0",e.CLAUDE_4_SONNET="anthropic.claude-sonnet-4-20250514-v1:0",e.CLAUDE_3_7_SONNET="anthropic.claude-3-7-sonnet-20250219-v1:0",e.CLAUDE_3_5_SONNET="anthropic.claude-3-5-sonnet-20241022-v1:0",e.CLAUDE_3_5_HAIKU="anthropic.claude-3-5-haiku-20241022-v1:0",e.CLAUDE_3_SONNET="anthropic.claude-3-sonnet-20240229-v1:0",e.CLAUDE_3_HAIKU="anthropic.claude-3-haiku-20240307-v1:0",e.NOVA_PREMIER="amazon.nova-premier-v1:0",e.NOVA_PRO="amazon.nova-pro-v1:0",e.NOVA_LITE="amazon.nova-lite-v1:0",e.NOVA_MICRO="amazon.nova-micro-v1:0",e.NOVA_2_LITE="amazon.nova-2-lite-v1:0",e.NOVA_2_SONIC="amazon.nova-2-sonic-v1:0",e.NOVA_SONIC="amazon.nova-sonic-v1:0",e.NOVA_CANVAS="amazon.nova-canvas-v1:0",e.NOVA_REEL="amazon.nova-reel-v1:0",e.NOVA_REEL_V1_1="amazon.nova-reel-v1:1",e.NOVA_MULTIMODAL_EMBEDDINGS="amazon.nova-2-multimodal-embeddings-v1:0",e.TITAN_TEXT_LARGE="amazon.titan-tg1-large",e.TITAN_EMBED_TEXT_V2="amazon.titan-embed-text-v2:0",e.TITAN_EMBED_TEXT_V1="amazon.titan-embed-text-v1",e.TITAN_EMBED_G1_TEXT_02="amazon.titan-embed-g1-text-02",e.TITAN_EMBED_IMAGE_V1="amazon.titan-embed-image-v1",e.TITAN_IMAGE_GENERATOR_V2="amazon.titan-image-generator-v2:0",e.LLAMA_4_MAVERICK_17B="meta.llama4-maverick-17b-instruct-v1:0",e.LLAMA_4_SCOUT_17B="meta.llama4-scout-17b-instruct-v1:0",e.LLAMA_3_3_70B="meta.llama3-3-70b-instruct-v1:0",e.LLAMA_3_2_90B="meta.llama3-2-90b-instruct-v1:0",e.LLAMA_3_2_11B="meta.llama3-2-11b-instruct-v1:0",e.LLAMA_3_2_3B="meta.llama3-2-3b-instruct-v1:0",e.LLAMA_3_2_1B="meta.llama3-2-1b-instruct-v1:0",e.LLAMA_3_1_405B="meta.llama3-1-405b-instruct-v1:0",e.LLAMA_3_1_70B="meta.llama3-1-70b-instruct-v1:0",e.LLAMA_3_1_8B="meta.llama3-1-8b-instruct-v1:0",e.LLAMA_3_70B="meta.llama3-70b-instruct-v1:0",e.LLAMA_3_8B="meta.llama3-8b-instruct-v1:0",e.MISTRAL_LARGE_3="mistral.mistral-large-3-675b-instruct",e.MISTRAL_LARGE_2407="mistral.mistral-large-2407-v1:0",e.MISTRAL_LARGE_2402="mistral.mistral-large-2402-v1:0",e.MAGISTRAL_SMALL_2509="mistral.magistral-small-2509",e.MINISTRAL_3_14B="mistral.ministral-3-14b-instruct",e.MINISTRAL_3_8B="mistral.ministral-3-8b-instruct",e.MINISTRAL_3_3B="mistral.ministral-3-3b-instruct",e.MISTRAL_7B="mistral.mistral-7b-instruct-v0:2",e.MIXTRAL_8x7B="mistral.mixtral-8x7b-instruct-v0:1",e.PIXTRAL_LARGE_2502="mistral.pixtral-large-2502-v1:0",e.VOXTRAL_SMALL_24B="mistral.voxtral-small-24b-2507",e.VOXTRAL_MINI_3B="mistral.voxtral-mini-3b-2507",e.COHERE_COMMAND_R_PLUS="cohere.command-r-plus-v1:0",e.COHERE_COMMAND_R="cohere.command-r-v1:0",e.DEEPSEEK_R1="deepseek.r1-v1:0",e.DEEPSEEK_V3="deepseek.v3-v1:0",e.QWEN_3_235B_A22B="qwen.qwen3-235b-a22b-2507-v1:0",e.QWEN_3_CODER_480B_A35B="qwen.qwen3-coder-480b-a35b-v1:0",e.QWEN_3_CODER_30B_A3B="qwen.qwen3-coder-30b-a3b-v1:0",e.QWEN_3_32B="qwen.qwen3-32b-v1:0",e.QWEN_3_NEXT_80B_A3B="qwen.qwen3-next-80b-a3b",e.QWEN_3_VL_235B_A22B="qwen.qwen3-vl-235b-a22b",e.GEMMA_3_27B_IT="google.gemma-3-27b-it",e.GEMMA_3_12B_IT="google.gemma-3-12b-it",e.GEMMA_3_4B_IT="google.gemma-3-4b-it",e.JAMBA_1_5_LARGE="ai21.jamba-1-5-large-v1:0",e.JAMBA_1_5_MINI="ai21.jamba-1-5-mini-v1:0",e.WRITER_PALMYRA_X5="writer.palmyra-x5-v1:0",e.WRITER_PALMYRA_X4="writer.palmyra-x4-v1:0",e.MINIMAX_M2_1="minimax.minimax-m2.1",e.MINIMAX_M2="minimax.minimax-m2",e.KIMI_K2_THINKING="moonshot.kimi-k2-thinking",e.KIMI_K2_5="moonshotai.kimi-k2.5",e.NVIDIA_NEMOTRON_NANO_3_30B="nvidia.nemotron-nano-3-30b",e.NVIDIA_NEMOTRON_NANO_12B_V2="nvidia.nemotron-nano-12b-v2",e.NVIDIA_NEMOTRON_NANO_9B_V2="nvidia.nemotron-nano-9b-v2",e.OPENAI_GPT_OSS_120B="openai.gpt-oss-120b-1:0",e.OPENAI_GPT_OSS_20B="openai.gpt-oss-20b-1:0",e.GLM_4_7="zai.glm-4.7",e.GLM_4_7_FLASH="zai.glm-4.7-flash",e.COHERE_EMBED_ENGLISH_V3="cohere.embed-english-v3",e.COHERE_EMBED_MULTILINGUAL_V3="cohere.embed-multilingual-v3",e.COHERE_EMBED_V4="cohere.embed-v4:0",e.COHERE_RERANK_V3_5="cohere.rerank-v3-5:0",e.AMAZON_RERANK_V1="amazon.rerank-v1:0",e.DEVSTRAL_2_123B="mistral.devstral-2-123b",e))(n6||{}),o6=(e=>(e.GPT_6_ASTRA="gpt-6-astra",e.GPT_6_SOL="gpt-6-sol",e.GPT_6_LUNA="gpt-6-luna",e.GPT_5_3_CODEX="gpt-5.3-codex",e.GPT_5_4="gpt-5.4",e.GPT_5_4_MINI="gpt-5.4-mini",e.GPT_5_4_NANO="gpt-5.4-nano",e.GPT_5_4_PRO="gpt-5.4-pro",e.GPT_5_2="gpt-5.2",e.GPT_5_2_CHAT_LATEST="gpt-5.2-chat-latest",e.GPT_5_2_PRO="gpt-5.2-pro",e.GPT_5_2_CODEX="gpt-5.2-codex",e.GPT_5_1="gpt-5.1",e.GPT_5_1_CHAT_LATEST="gpt-5.1-chat-latest",e.GPT_5_1_CODEX="gpt-5.1-codex",e.GPT_5_1_CODEX_MAX="gpt-5.1-codex-max",e.GPT_5_1_CODEX_MINI="gpt-5.1-codex-mini",e.GPT_5="gpt-5",e.GPT_5_MINI="gpt-5-mini",e.GPT_5_NANO="gpt-5-nano",e.GPT_5_PRO="gpt-5-pro",e.GPT_5_CHAT_LATEST="gpt-5-chat-latest",e.GPT_5_CODEX="gpt-5-codex",e.GPT_OSS_120B="gpt-oss-120b",e.GPT_OSS_20B="gpt-oss-20b",e.GPT_4_1="gpt-4.1",e.GPT_4_1_MINI="gpt-4.1-mini",e.GPT_4_1_NANO="gpt-4.1-nano",e.GPT_4O="gpt-4o",e.GPT_4O_MINI="gpt-4o-mini",e.O3="o3",e.O3_MINI="o3-mini",e.O3_PRO="o3-pro",e.O4_MINI="o4-mini",e.O1="o1",e.O1_PREVIEW="o1-preview",e.O1_MINI="o1-mini",e.GPT_4="gpt-4",e.GPT_4_TURBO="gpt-4-turbo",e.GPT_3_5_TURBO="gpt-3.5-turbo",e.GPT_IMAGE_1="gpt-image-1",e.DALL_E_3="dall-e-3",e.DALL_E_2="dall-e-2",e))(o6||{}),s6=(e=>(e.CLAUDE_4_6_OPUS="claude-opus-4-6",e.CLAUDE_4_6_SONNET="claude-sonnet-4-6",e.CLAUDE_4_5_OPUS="claude-opus-4-5@20251101",e.CLAUDE_4_5_SONNET="claude-sonnet-4-5@20250929",e.CLAUDE_4_5_HAIKU="claude-haiku-4-5@20251001",e.CLAUDE_4_0_SONNET="claude-sonnet-4@20250514",e.CLAUDE_4_0_OPUS="claude-opus-4@20250514",e.CLAUDE_3_7_SONNET="claude-3-7-sonnet@20250219",e.CLAUDE_3_5_SONNET="claude-3-5-sonnet-20241022",e.CLAUDE_3_5_HAIKU="claude-3-5-haiku-20241022",e.CLAUDE_3_SONNET="claude-3-sonnet-20240229",e.CLAUDE_3_OPUS="claude-3-opus-20240229",e.CLAUDE_3_HAIKU="claude-3-haiku-20240307",e.GEMINI_3_1_PRO_PREVIEW="gemini-3.1-pro-preview",e.GEMINI_3_1_FLASH_LITE_PREVIEW="gemini-3.1-flash-lite-preview",e.GEMINI_3_1_FLASH_IMAGE_PREVIEW="gemini-3.1-flash-image-preview",e.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS="gemini-3.1-pro-preview-customtools",e.GEMINI_3_FLASH_PREVIEW="gemini-3-flash-preview",e.GEMINI_3_PRO_IMAGE_PREVIEW="gemini-3-pro-image-preview",e.GEMINI_3_PRO_PREVIEW="gemini-3-pro-preview",e.GEMINI_2_5_PRO="gemini-2.5-pro",e.GEMINI_2_5_FLASH="gemini-2.5-flash",e.GEMINI_2_5_FLASH_LITE="gemini-2.5-flash-lite",e.GEMINI_2_5_FLASH_IMAGE="gemini-2.5-flash-image",e.GEMINI_2_0_FLASH="gemini-2.0-flash",e.GEMINI_2_0_FLASH_001="gemini-2.0-flash-001",e.GEMINI_2_0_FLASH_LITE="gemini-2.0-flash-lite",e.GEMINI_1_5_PRO="gemini-1.5-pro-002",e.GEMINI_1_5_FLASH="gemini-1.5-flash-002",e))(s6||{}),_me=300*1e3}}),Sme,xTr=_({"src/lib/providers/catalog/above-dev.json"(){Sme={$schema:"./provider-catalog.schema.json",id:"above-dev",displayName:"above.dev",aliases:[],tier:2,wire:{baseURL:"https://api.above.dev/v1"},models:{default:"deepseek-v4.1-flash",fallbacks:["glm-5.3-flash","mimo-v2.6-flash","deepseek-v4-pro","glm-5.2","mimo-v2.6-pro","glm-5.2-fast","qwen3.8-max","mimo-v2.6-pro-ultraspeed"],defaultContextWindow:1e6,defaultMaxOutputTokens:131072,catalog:{"deepseek-v4.1-flash":{contextWindow:1e6,maxOutputTokens:131072,vision:!0,status:"production",description:`DeepSeek V4.1 Flash (also addressable as deepseek-v4-flash), tier T1. above.dev's own default: naming no model routes here ("the cheapest model in the catalog", https://above.dev/docs, retrieved 2026-09-28). GET /v1/models (unauthenticated, 2026-09-28) self-reports supports_tool_calls, supports_streaming, supports_json_mode, supports_structured_output and supports_vision all true, and supports_reasoning true, but none of this was independently probed \u2014 no key was used. Pricing uses above.dev's documented time-of-day split (peak 01:00-04:00 and 06:00-10:00 UTC weekdays, else off-peak; weekends fully off-peak in Beijing time) so pricingPerMTok is omitted rather than collapsed to one number: input $0.165-$0.33/M, cache-hit $0.0033-$0.0066/M, output $0.66-$1.32/M (https://above.dev/docs, retrieved 2026-09-28).`},"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:131072,vision:!1,status:"production",description:`DeepSeek V4 Pro, tier T2 ("Agentic \u2014 multi-step, tool-capable" per the docs' tier table). Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Time-of-day pricing per https://above.dev/docs (retrieved 2026-09-28) \u2014 input $0.726-$1.452/M, cache-hit $0.0242-$0.0484/M, output $2.178-$4.356/M \u2014 so pricingPerMTok is omitted (see deepseek-v4.1-flash for why).`},"glm-5.2":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.54,output:4.84,cachedInput:.154},vision:!1,status:"production",description:"Zhipu GLM 5.2, tier T2. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat (non-time-of-day) pricing per https://above.dev/docs, retrieved 2026-09-28."},"glm-5.3-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.165,output:.55,cachedInput:.0319},vision:!0,status:"production",description:`Zhipu GLM 5.3 Flash, tier T1. Roster-listed via unauthenticated GET /v1/models (2026-09-28), which self-reports supports_vision true for this id; not capability-probed with a real image. Flat pricing per https://above.dev/docs, retrieved 2026-09-28. Note: a separate id, glm-5.3-flash-modal, is named in the docs' Limits section as one of two "free-tier routes" capped at 16,384 output tokens \u2014 that id does not appear in the current /v1/models roster and is a distinct route from this one; not represented in this catalog.`},"glm-5.2-fast":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:2.31,output:7.26,cachedInput:.231},vision:!1,status:"production",description:`Zhipu GLM 5.2 Fast, tier T3 ("Highest capability in the catalog" per the docs' tier table). Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28.`},"qwen3.8-max":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:2.2,output:6.6,cachedInput:.275},vision:!0,status:"production",description:"Alibaba Qwen 3.8 Max, tier T3. Roster-listed via unauthenticated GET /v1/models (2026-09-28), which self-reports supports_vision true for this id; not capability-probed with a real image. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-pro":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.5077,output:1.0154,cachedInput:.0042},vision:!1,status:"production",description:"MiMo V2.6 Pro (also addressable as mimo-v2.5-pro), tier T2. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-flash":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.1692,output:.3385,cachedInput:.0034},vision:!1,status:"production",description:"MiMo V2.6 Flash, tier T1. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-pro-ultraspeed":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:5.0769,output:10.1538,cachedInput:.0423},vision:!1,status:"production",description:"MiMo V2.6 Pro UltraSpeed, tier T3. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."}},topModels:["deepseek-v4.1-flash","glm-5.3-flash","mimo-v2.6-flash","deepseek-v4-pro","glm-5.2","mimo-v2.6-pro","glm-5.2-fast","qwen3.8-max","mimo-v2.6-pro-ultraspeed"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid or missing above.dev API key (401 Unauthorised). Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"above.dev account balance is insufficient (402 payment required). Top up at https://above.dev/pricing"},{status:403,class:"invalid-model",message:"above.dev model '{model}' is not enabled for this key (403 model_not_allowed_for_key) \u2014 it may be plan-restricted or in private beta. Pick another model or contact above.dev."},{status:429,class:"rate-limit",message:"above.dev rate limit exceeded (429 rate_limit_exceeded, 300 requests/minute per account). Retry after the documented Retry-After header."},{status:504,class:"network",message:"above.dev upstream model did not respond in time (504 provider_timeout). Retry the request."}],setup:{url:"https://above.dev/pricing",apiKeyFormat:"^sk-gw-.+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://above.dev/pricing and purchase credit \u2014 API keys are issued only after purchase, there is no free signup","2. Copy the issued key \u2014 it starts with sk-gw- (the docs give only the prefix, not a full character-set spec)","3. Manage or rotate the key from https://above.dev/dashboard if it is ever compromised \u2014 a key grants full access to your credit balance","4. Set {apiKeyEnvVar} in your .env file"],description:'OpenAI-compatible gateway at https://api.above.dev/v1, routing to a small DeepSeek/GLM/Qwen/MiMo catalog. POST /v1/chat/completions is documented as an alias that delegates to the vendor\'s native POST /v1/messages with "identical behaviour". No free tier for account access \u2014 a key is issued only after purchase at above.dev/pricing (the docs separately mention two lower-cap "free-tier routes", glm-5.3-flash-modal and deepseek-v4.1-flash-modal, but those ids are outside the current /v1/models roster and still require a purchased key). Account-wide rate limit is 300 requests/minute; every current model accepts up to 131,072 output tokens. The docs describe the `tools` and `response_format` request fields only as routing signals ("presence influences routing toward tool-capable models" / "scores toward structured-output models"), in explicit contrast to `tool_choice` and `temperature`, which the same table states are "passed through to the model" \u2014 so this entry does not assert tool calling or structured output as a confirmed, working capability without a live probe.'},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.above.dev/v1/models \u2014 9 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),kme,CTr=_({"src/lib/providers/catalog/ai21.json"(){kme={$schema:"./provider-catalog.schema.json",id:"ai21",displayName:"AI21 Labs",aliases:[],tier:2,wire:{baseURL:"https://api.ai21.com/studio/v1"},models:{default:"jamba-large",fallbacks:["jamba-mini","jamba-large-1.7-2025-07","jamba-mini-2-2026-01"],fallbackModelName:"jamba-mini",defaultContextWindow:256e3,defaultMaxOutputTokens:4096,catalog:{"jamba-large":{contextWindow:256e3,maxOutputTokens:4096,pricingPerMTok:{input:2,output:8},vision:!1,status:"production",description:'NeuroLink default. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) describes Jamba Large as "Our most powerful and advanced model, designed to handle complex tasks at enterprise scale with superior performance."; its Model Details row for Jamba Large lists Max Tokens 256K, Version 1.7, Snapshot 2025-07 and API Endpoint `jamba-large`, and its API Versioning list says `jamba-large` currently points to `jamba-large-1.7-2025-07`. https://docs.ai21.com/reference/jamba-1-6-api-ref (retrieved 2026-09-29) names `jamba-large` and `jamba-mini` as the model names that can be called without specifying a version, and its cURL example sends "model": "jamba-large". https://www.ai21.com/pricing (retrieved 2026-09-29) lists Jamba Large at $2 / 1M input tokens and $8 / 1M output tokens. The models page gives Input Modality: Text, so vision is false. contextWindow records the page\'s 256K as 256,000; maxOutputTokens is the Chat request page\'s statement "For Jamba models, the maximum allowed value is 4096 tokens."'},"jamba-mini":{contextWindow:256e3,maxOutputTokens:4096,pricingPerMTok:{input:.2,output:.4},vision:!1,status:"production",description:'NeuroLink fallback. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29): the Model Details row for Jamba Mini lists Max Tokens 256K, Version 2, Snapshot 2026-01 and API Endpoint `jamba-mini`, and the API Versioning list says `jamba-mini` currently points to `jamba-mini-2-2026-01`. https://www.ai21.com/pricing (retrieved 2026-09-29) describes Jamba Mini as "Efficient & lightweight model for a wide range of tasks" at $0.2 / 1M input tokens and $0.4 / 1M output tokens. https://docs.ai21.com/docs/sdk (retrieved 2026-09-29) uses `jamba-mini` in its chat example. The models page gives Input Modality: Text, so vision is false. contextWindow records the page\'s 256K as 256,000; maxOutputTokens is the Chat request page\'s statement "For Jamba models, the maximum allowed value is 4096 tokens."'},"jamba-large-1.7-2025-07":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:'Dated snapshot of Jamba Large. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) lists it in API Versioning (`jamba-large` currently points to `jamba-large-1.7-2025-07`; `jamba-large-1.7` points to `jamba-large-1.7-2025-07`), and the Model Details row for Jamba Large lists Version 1.7, Snapshot 2025-07 and Max Tokens 256K. The page states: "We advise using dated versions of the Jamba API to avoid disruptions from model updates and breaking changes." Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-large` (256K as 256,000; max_tokens 4096 per the Chat request page).'},"jamba-mini-2-2026-01":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:'Dated snapshot of Jamba Mini. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) lists it in API Versioning (`jamba-mini` currently points to `jamba-mini-2-2026-01`; `jamba-mini-2` points to `jamba-mini-2-2026-01`), and the Model Details row for Jamba Mini lists Version 2, Snapshot 2026-01 and Max Tokens 256K. The page states: "We advise using dated versions of the Jamba API to avoid disruptions from model updates and breaking changes." Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-mini` (256K as 256,000; max_tokens 4096 per the Chat request page).'},"jamba-large-1.7":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:"Version name for Jamba Large. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) API Versioning list: `jamba-large-1.7` points to `jamba-large-1.7-2025-07`; the Model Details row for Jamba Large lists Version 1.7, Snapshot 2025-07 and Max Tokens 256K. Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-large` (256K as 256,000; max_tokens 4096 per the Chat request page)."},"jamba-mini-2":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:"Version name for Jamba Mini. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) API Versioning list: `jamba-mini-2` points to `jamba-mini-2-2026-01`; the Model Details row for Jamba Mini lists Version 2, Snapshot 2026-01 and Max Tokens 256K. Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-mini` (256K as 256,000; max_tokens 4096 per the Chat request page)."}},topModels:["jamba-large","jamba-mini","jamba-large-1.7-2025-07","jamba-mini-2-2026-01","jamba-large-1.7","jamba-mini-2"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:'AI21 rejected the API key (HTTP 401; the Chat response page documents 401 as "Unauthorized (Incorrect API key provided/Invalid Authentication)"). Check {apiKeyEnvVar}. Create a key: {setupUrl}'},{pattern:"bad or missing authentication",class:"authentication",message:"AI21 reported bad or missing authentication. Check {apiKeyEnvVar}. Create a key: {setupUrl}"},{status:429,class:"rate-limit",message:'AI21 rate limit (HTTP 429; the Chat response page documents 429 as "Too Many Requests (You are sending requests too quickly.)"). https://docs.ai21.com/reference/api-rate-limits lists 10 requests per second and 200 requests per minute for Jamba Large and Jamba Mini.'},{status:503,class:"provider",message:'AI21 returned HTTP 503 (the Chat response page documents 503 as "Service Unavailable (The engine is currently overloaded, please try again later)").'}],setup:{url:"https://docs.ai21.com/docs/create-api-key",apiKeyFormat:null,billingPolicy:"free-tier",instructions:['1. Visit: https://docs.ai21.com/docs/create-api-key and follow its steps: sign in to AI21 Studio (the page says "You can sign in using your email address, Google account, GitHub account, or SSO."), click Settings in the bottom-left corner of the sidebar, open the API Keys tab, then click Create new key','2. Copy the key when it is shown; the page says "you won\u2019t be able to view it again"','3. Free trial: https://docs.ai21.com/docs/usage-cost says "New accounts are given a $10 credit good for three months on the AI21 platform." and, once the trial is exceeded or expires, "you must provide valid billing information in your account to continue using the AI21 platform". https://www.ai21.com/pricing shows "$10 credits for 7 days." and "No credit card needed" under Free Trial',"4. Set {apiKeyEnvVar} in your .env file"],description:`Docs-verified only: GET https://api.ai21.com/studio/v1/models answers 200 with an empty data array without a key, so the model ids come from https://docs.ai21.com/docs/jamba-foundation-models and the roster has not been checked; the entry is not yet live-verified. Chat completions are documented at POST https://api.ai21.com/studio/v1/chat/completions with Bearer authentication (https://docs.ai21.com/reference/jamba-1-6-api-ref, https://docs.ai21.com/reference/authentication); the request takes model and messages and the response carries a choices array, with streaming as server-sent events ending in data: [DONE] (https://docs.ai21.com/reference/jamba-api-response). Unauthenticated GETs made 2026-09-29: /models answered 200 {"data":[]}; /chat/completions answered 405 {"detail":"Method Not Allowed"} with header allow: POST; /library/files (a documented endpoint) answered 400 {"detail":"Bad request: bad or missing authentication."}. The 401, 429 and 503 errorRules follow the status codes on the Chat response page; the pattern rule matches the /library/files body text. defaultContextWindow and the per-model contextWindow values hold 256000 as a numeric placeholder for the 256K label printed on the models page; no exact token count is taken from a vendor page. toolsWithStreaming is false because the stream parameter text on the Chat request page says "Must be False if using tools." structuredOutput is true on the basis of the response_format value { "type": "json_object" } that the Chat request page describes as activating JSON mode. No POST request was sent, so the request fields that NeuroLink's chat-completions client can add (stream_options on streaming calls, tool_choice on calls with tools, and a json_schema response_format for schema output) have not been exercised against AI21.`},evidence:{rosterVerified:{date:"2026-09-29",method:'docs-only, roster not verified \u2014 unauthenticated GET https://api.ai21.com/studio/v1/models answered HTTP 200 with body {"data":[]} and no key, so model ids are taken from https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29)'},authProbe:{date:"2026-09-29",status:400,method:'unauthenticated GET https://api.ai21.com/studio/v1/library/files (a documented endpoint) \u2014 body {"detail":"Bad request: bad or missing authentication."}; the same day GET /models answered 200 {"data":[]} and GET /chat/completions answered 405 {"detail":"Method Not Allowed"}; credential-free, no key used'},billingProbe:{date:"2026-09-29",method:'public pages https://docs.ai21.com/docs/usage-cost ("New accounts are given a $10 credit good for three months on the AI21 platform.") and https://www.ai21.com/pricing ("Start with a free trial, no credit card required, then pay based on usage."; Free Trial: "$10 credits for 7 days." and "No credit card needed"); credential-free'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),xme,ATr=_({"src/lib/providers/catalog/aiand.json"(){xme={$schema:"./provider-catalog.schema.json",id:"aiand",displayName:"ai&",aliases:[],tier:2,wire:{baseURL:"https://api.aiand.com/v1"},models:{default:"openai/gpt-oss-120b",fallbacks:["zai-org/glm-5.3","zai-org/glm-5.2","deepseek-ai/deepseek-v4-pro","deepseek-ai/deepseek-v4-flash","moonshotai/kimi-k3","moonshotai/kimi-k2.7-code","qwen/qwen3.8-27b","qwen/qwen3.6-27b","motif-technologies/motif-3","google/gemma-4-31b-it"],defaultContextWindow:131072,defaultMaxOutputTokens:131072,catalog:{"openai/gpt-oss-120b":{contextWindow:131072,pricingPerMTok:{input:.15,output:.6,cachedInput:.08},vision:!1,status:"production",description:'Default \u2014 the model used in ai&\'s own quickstart curl example (https://docs.aiand.com/, retrieved 2026-09-28): \'curl https://api.aiand.com/v1/chat/completions -H "Authorization: Bearer sk-your-api-key" -d {"model": "openai/gpt-oss-120b", ...}\'. Vendor description (GET /v1/models, 2026-09-28): "Open GPT reasoning model for self-hosted agents and controllable deployments". Cheapest model on the roster. Documents `reasoning` + `tool_calling` capabilities and a `reasoning_effort` request parameter with model-specific values low/medium/high (default medium) \u2014 see https://docs.aiand.com/api/chat-completions/. No `vision` capability listed, so image/video input is expected to be rejected. Docs- and roster-verified only \u2014 no API key was used, so no live chat/stream/tool call was made against this or any other model in this catalog.'},"zai-org/glm-5.3":{contextWindow:1048576,pricingPerMTok:{input:1,output:4,cachedInput:.3},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Flagship GLM model for long-horizon coding, agents, and complex project delivery". reasoning_effort values low/high/max, default max. 1M context. Roster-listed and priced only, not itself capability-probed; fallback.'},"zai-org/glm-5.2":{contextWindow:1048576,pricingPerMTok:{input:1,output:4,cachedInput:.3},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Open flagship GLM for long-horizon coding agents and million-token context work". reasoning_effort values none/high/max, default max. Roster-listed only; fallback.'},"deepseek-ai/deepseek-v4-pro":{contextWindow:1048576,pricingPerMTok:{input:1,output:2.5,cachedInput:.25},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Open MoE flagship with million-token context for coding and long agent runs". reasoning_effort values none/high/max, default none. Roster-listed only; fallback.'},"deepseek-ai/deepseek-v4-flash":{contextWindow:1048576,pricingPerMTok:{input:.15,output:.25,cachedInput:.08},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work". reasoning_effort values none/high/max, default none. Roster-listed only; fallback.'},"moonshotai/kimi-k3":{contextWindow:1048576,pricingPerMTok:{input:3,output:12.5,cachedInput:.5},vision:!0,status:"production",description:"Vendor description (GET /v1/models, 2026-09-28): \"Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work\". reasoning_effort values low/high/max, default max. Lists `vision` in its capabilities array, but ai&'s vision docs (https://docs.aiand.com/capabilities/vision/) describe images/video as uploaded via the Files API first and referenced by `file_id` \u2014 not the inline base64 `image_url` data-URI shape NeuroLink's other providers use \u2014 and that flow was not exercised (no key used). Roster-listed only; fallback."},"moonshotai/kimi-k2.7-code":{contextWindow:262144,pricingPerMTok:{input:.75,output:3.5,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking". reasoning_effort fixed to high (only value listed). Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"qwen/qwen3.8-27b":{contextWindow:262144,pricingPerMTok:{input:.4,output:3,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Dense 27B vision-language model for coding, agent tasks, and image and video understanding". reasoning_effort values none/low/medium/xhigh, default medium. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"qwen/qwen3.6-27b":{contextWindow:262144,pricingPerMTok:{input:.32,output:3.2,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Qwen vision-language model for visual reasoning, documents, and agent tasks". reasoning_effort values none/high, default high. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"motif-technologies/motif-3":{contextWindow:262144,pricingPerMTok:{input:.5,output:2,cachedInput:.2},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Motif 3 is a large-scale, decoder-only Mixture-of-Experts (MoE) language model with 314 billion total parameters and 13.2 billion parameters activated per token." reasoning_effort values none/high, default high. Roster-listed only; fallback.'},"google/gemma-4-31b-it":{contextWindow:262144,pricingPerMTok:{input:.2,output:.5,cachedInput:.05},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Largest Gemma 4 instruction model for open, self-hosted chat and reasoning". reasoning_effort values none/high, default none. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'}},topModels:["openai/gpt-oss-120b","zai-org/glm-5.3","deepseek-ai/deepseek-v4-flash","moonshotai/kimi-k3","qwen/qwen3.8-27b","zai-org/glm-5.2","google/gemma-4-31b-it"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,pattern:"invalid_api_key|authentication_error",class:"authentication",message:"Invalid ai& API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:429,pattern:"rate_limit_exceeded|rate_limit_error",class:"rate-limit",message:"ai& rate limit exceeded. Check the X-RateLimit-Policy response header and retry with backoff, or review your plan at {setupUrl}"}],setup:{url:"https://console.aiand.com/playground",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://console.aiand.com/playground and sign in (Google, GitHub, or a magic-link email \u2014 https://docs.aiand.com/authentication/)","2. Create an organization API key under Organizations \u2192 API Keys (https://docs.aiand.com/organizations/api-keys/) \u2014 shown in full only once, and starts with sk-","3. ai& is prepaid only, no free tier: add credits via Stripe Checkout before making requests (https://docs.aiand.com/billing/credits/) \u2014 a zero balance returns HTTP 402 until credits are added","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.aiand.com/v1 (also exposes Anthropic-shaped /v1/messages, a Responses endpoint, and legacy Completions), serving zai-org GLM, Qwen, Kimi (moonshotai), DeepSeek V4, Google Gemma 4, Motif-3 and OpenAI gpt-oss open-weight models, each with a documented per-model `reasoning_effort` control. Prepaid credit billing only \u2014 no free tier; failed requests are not billed."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.aiand.com/v1/models \u2014 11 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Cme,ITr=_({"src/lib/providers/catalog/aionlabs.json"(){Cme={$schema:"./provider-catalog.schema.json",id:"aionlabs",displayName:"Aion Labs",aliases:[],tier:2,wire:{baseURL:"https://api.aionlabs.ai/v1"},models:{default:"aion-labs/aion-3.5",fallbacks:["aion-labs/aion-3.5-mini","aion-labs/aion-3.0-mini","aion-labs/aion-2.0"],defaultContextWindow:262144,defaultMaxOutputTokens:32768,catalog:{"aion-labs/aion-3.5":{contextWindow:262144,maxOutputTokens:32768,pricingPerMTok:{input:3,output:6,cachedInput:.75},vision:!1,status:"production",description:"Recommended default - the model every request example on Aion Labs' own quickstart page (https://www.aionlabs.ai/docs/quickstart/, retrieved 2026-09-29) uses, in JavaScript, Python and curl alike, and released 2026-09-23, the latest release date on the roster (shared with Aion 3.5 Mini). Vendor-described as a multi-model system built on the GLM family, described for stronger narrative structure, tension and conflict, and mature or darker themes (https://www.aionlabs.ai/docs/models/); the vendor homepage describes its API as for creative writing, roleplay, research and production workloads (https://www.aionlabs.ai/). Context 262,144 tokens, max completion 32,768 and modality text->text on the unauthenticated GET /v1/models roster (2026-09-29); $3.00 / $6.00 per MTok input/output, $0.75 cached-input read on the docs models page (https://www.aionlabs.ai/docs/models/, retrieved 2026-09-29). Reasoning cannot be disabled on this model: reasoning_effort accepts only low, high (default) or max, and reasoning tokens share the max_tokens budget (https://www.aionlabs.ai/docs/api-reference/)."},"aion-labs/aion-3.5-mini":{contextWindow:262144,maxOutputTokens:32768,pricingPerMTok:{input:.7,output:1.4,cachedInput:.18},vision:!1,status:"production",description:"Aion 3.5 Mini, released the same day as Aion 3.5 (2026-09-23); vendor-described as a multi-model system built on the GLM family (https://www.aionlabs.ai/docs/models/, which gives it the same family description as Aion 3.5 and does not say how the two differ). Roster-listed only, not called. Context 262,144, max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.70 / $1.40 per MTok input/output, $0.18 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). Reasoning cannot be disabled (reasoning_effort accepts only low, high or max per https://www.aionlabs.ai/docs/api-reference/). Fallback."},"aion-labs/aion-3.0":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:3,output:6,cachedInput:.75},vision:!1,status:"production",description:"Aion 3.0, released 2026-05-05; vendor-described as a multi-model system built on the GLM family. Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $3.00 / $6.00 per MTok input/output, $0.75 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/."},"aion-labs/aion-3.0-mini":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:.7,output:1.4,cachedInput:.18},vision:!1,status:"production",description:"Aion 3.0 Mini, released 2026-05-14; vendor-described as a multi-model system built on the DeepSeek family. Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.70 / $1.40 per MTok input/output, $0.18 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/. Fallback."},"aion-labs/aion-2.0":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:.8,output:1.6,cachedInput:.2},vision:!1,status:"production",description:"Vendor-described as a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling (released 2025-12-21). Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.80 / $1.60 per MTok input/output, $0.20 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/. Fallback."},"aion-labs/aion-rp-llama-3.1-8b":{contextWindow:32768,maxOutputTokens:32768,pricingPerMTok:{input:.8,output:1.6},vision:!1,status:"production",description:"Aion-RP 1.0 (8B), vendor-described as a variant of Llama 3.1 8B optimized for immersive roleplaying and storytelling (released 2024-11-30); the only non-reasoning model on the roster. Roster-listed only, not called. Context 32,768, max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.80 / $1.60 per MTok input/output, no cached-input price, on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort is not supported on this model (https://www.aionlabs.ai/docs/api-reference/)."}},topModels:["aion-labs/aion-3.5","aion-labs/aion-3.5-mini","aion-labs/aion-3.0","aion-labs/aion-3.0-mini","aion-labs/aion-2.0","aion-labs/aion-rp-llama-3.1-8b"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:429,class:"rate-limit",message:"Aion Labs usage limit exceeded (429 rate_limit_error). Free-tier accounts are limited to 15 requests/min, 20,000 tokens/min and 20,000 tokens/day; limits rise with lifetime credit top-ups - see https://www.aionlabs.ai/docs/rate-limits/"}],setup:{url:"https://www.aionlabs.ai/accounts/signup/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://www.aionlabs.ai/accounts/signup/ and sign up (GitHub, Google or email)","2. Create an API key from the dashboard's API keys page (https://www.aionlabs.ai/app/api-keys/, sign-in required) and copy it when it is shown","3. Free tier: the pricing page (https://www.aionlabs.ai/pricing/) offers a daily credit allowance with no card required; free-tier limits are 15 requests/min, 20,000 tokens/min and 20,000 tokens/day (https://www.aionlabs.ai/docs/rate-limits/)","4. Set {apiKeyEnvVar} in your .env file"],description:'OpenAI-compatible endpoint at https://api.aionlabs.ai/v1 (https://www.aionlabs.ai/docs/), serving a six-model Aion roster; the vendor homepage describes the API as for creative writing, roleplay, research and production workloads (https://www.aionlabs.ai/). Documented errors share one envelope, {"error":{"message","type"}}, with 400 invalid_request_error, 429 rate_limit_error and 502 server_error (https://www.aionlabs.ai/docs/api-reference/). The docs give no 401 body and none was probed without a credential, so the errorRules carry only the documented 429; auth failures use the default classifier. Non-streaming responses must finish within 125 seconds or the edge returns HTTP 524, so prefer streaming for long or reasoning-heavy requests.'},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.aionlabs.ai/v1/models \u2014 6 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",status:200,method:'public page https://www.aionlabs.ai/pricing/ \u2014 Free Tier $0, "A daily credit allowance to try agent jobs, the API, and browser chat. No card required."; https://www.aionlabs.ai/docs/rate-limits/ lists Free as the default tier on signup; credential-free, no signup performed'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Ame,RTr=_({"src/lib/providers/catalog/ambient.json"(){Ame={$schema:"./provider-catalog.schema.json",id:"ambient",displayName:"Ambient",aliases:[],tier:2,wire:{baseURL:"https://api.ambient.xyz/v1"},models:{default:"ambient/large",fallbacks:["z-ai/glm-5.2","qwen/qwen3.6-27b","qwen/qwen3.8-27b"],defaultContextWindow:202752,defaultMaxOutputTokens:202752,catalog:{"ambient/large":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.6,output:2,cachedInput:.15},vision:!1,status:"production",description:`Ambient's own recommended default \u2014 the model id used in every example on the vendor's docs (the plain chat-completions curl example and the streaming curl example both send model: "ambient/large"). Documented as "an Ambient-managed alias rather than a distinct model. Its specs mirror whatever concrete model it currently points to" (https://ambient.xyz/docs/build/models, retrieved 2026-09-28); today it mirrors z-ai/glm-5.2 exactly \u2014 identical context_length, max_output_length and pricing in the unauthenticated GET https://api.ambient.xyz/v1/models response taken 2026-09-28. Text-only (input_modalities: ["text"]); no vision. The live roster's supported_features for this id are tools, json_mode, structured_outputs, reasoning, logprobs \u2014 this is the vendor's own server-reported metadata, not a live POST probe (none was possible credential-free), so capabilities.tools and capabilities.structuredOutput are marked true on that basis alone, while the combined capabilities (tools+response_format in one request, tool-call deltas under streaming) are unverified and both structuredOutputWithTools and toolsWithStreaming are left false pending a live-keyed probe. maxOutputTokens equals the context window in the vendor's own catalog entry (202,752 tokens each, i.e. "198K" as rounded on the docs models page).`},"z-ai/glm-5.2":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.6,output:2,cachedInput:.15},vision:!1,status:"production",description:`The concrete underlying model that ambient/large currently aliases. The vendor's docs models page states "GLM 5.2 ... is the supported production model" (https://ambient.xyz/docs/build/models, retrieved 2026-09-28); other catalog ids may be previews with no guarantees. Text-only, no vision. Same live-roster numbers (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28) and the same unverified-combined-capability caveats as ambient/large \u2014 kept as a fallback pinned to a concrete id in case the ambient/large alias target changes underneath it.`},"qwen/qwen3.6-27b":{contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.32,output:3.2,cachedInput:.16},vision:!0,status:"preview",description:`Qwen3.6 27B. The live roster's input_modalities are ["text","image"] and the vendor's own description reads "natively multimodal (text + image) dense 27B, hybrid attention. Served FP8 at 32k context, thinking off." (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28). The vendor's docs models page marks non-GLM-5.2 entries as possible previews served with no guarantees, so status is preview here. vision: true is taken from input_modalities; set as models.visionModel since the default (ambient/large) is text-only. Same unverified-combined-capability caveats as the other entries (no live POST probe was possible).`},"qwen/qwen3.8-27b":{contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.32,output:3.2,cachedInput:.16},vision:!0,status:"preview",description:`Qwen3.8 27B. The live roster's own description calls it "natively multimodal (text + image + video) dense 27B, Apache 2.0, hybrid attention" but input_modalities lists only ["text","image"] \u2014 no "video" entry \u2014 so vision: true here is based on input_modalities, not the prose "video" claim, and no video-input support is declared. Same preview status and unverified-combined-capability caveats as qwen3.6-27b (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28).`}},topModels:["ambient/large","z-ai/glm-5.2","qwen/qwen3.6-27b","qwen/qwen3.8-27b"],visionModel:"qwen/qwen3.6-27b"},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Invalid Ambient API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:400,pattern:"Unknown model",class:"invalid-model",message:"Ambient model '{model}' not found. Pick a current model from the unauthenticated GET https://api.ambient.xyz/v1/models roster or {setupUrl}"}],setup:{url:"https://app.ambient.xyz",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://app.ambient.xyz and sign in",'2. Click "Get API key" to create a key',"3. Ambient has no free tier \u2014 the cheapest option is the $1/mo Starter plan (https://ambient.xyz/pricing); confirm current billing terms before use","4. Set {apiKeyEnvVar} in your .env file"],description:`OpenAI- and Anthropic-compatible endpoint at https://api.ambient.xyz/v1 (vendor's own docs: "Point your OpenAI or Anthropic SDK at Ambient and get verified inference in minutes, no rewrite required"). Pay-per-token API billing; no free tier. Inference is cryptographically verified via the vendor's "Proof of Logits" protocol.`},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.ambient.xyz/v1/models \u2014 4 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Ime,MTr=_({"src/lib/providers/catalog/api-route.json"(){Ime={$schema:"./provider-catalog.schema.json",id:"api-route",displayName:"API Route",aliases:["apiroute"],tier:2,wire:{baseURL:"https://global.api-route.com/v1"},models:{default:"claude-sonnet-4-6",fallbacks:["claude-haiku-4-5","deepseek-v4-flash","gemini-3.8-flash"],defaultContextWindow:1e6,defaultMaxOutputTokens:64e3,catalog:{"claude-sonnet-4-6":{contextWindow:1e6,maxOutputTokens:64e3,vision:!0,status:"production",description:"Claude Sonnet 4.6 \u2014 flagship model with 1M context, tool calling, and multimodal vision"},"claude-haiku-4-5":{contextWindow:2e5,maxOutputTokens:32768,vision:!0,status:"production",description:"Claude Haiku 4.5 \u2014 fast, high-efficiency model with 200K context, tool calling, and vision"},"deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:64e3,vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 fast, cost-effective reasoning model with 1M context"},"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:64e3,vision:!1,status:"production",description:"DeepSeek V4 Pro \u2014 powerful reasoning model with 1M context"},"gemini-3.8-flash":{contextWindow:1e6,maxOutputTokens:64e3,vision:!0,status:"production",description:"Gemini 3.8 Flash \u2014 high-speed multimodal model supporting image input and streaming"},"qwen3.8-flash":{contextWindow:128e3,maxOutputTokens:16384,vision:!1,status:"production",description:"Qwen 3.8 Flash \u2014 versatile, fast model for general instruction and coding tasks"},"kimi-k2.7-code":{contextWindow:256e3,maxOutputTokens:32768,vision:!1,status:"production",description:"Kimi K2.7 Code \u2014 specialized for coding and multi-step reasoning"},"glm-5.3-flash":{contextWindow:128e3,maxOutputTokens:16384,vision:!1,status:"production",description:"GLM 5.3 Flash \u2014 lightweight, fast conversational and instruction-following model"}},visionModel:"claude-sonnet-4-6",topModels:["claude-sonnet-4-6","claude-haiku-4-5","deepseek-v4-flash","gemini-3.8-flash","qwen3.8-flash"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{pattern:"\u8BE5\u5206\u7EC4\u4E0B\u6A21\u578B\u65E0\u53EF\u7528\u6E20\u9053|model_not_found",class:"invalid-model",message:"Model '{model}' not found or has no available channels on API Route."},{pattern:"\u65E0\u6548\u7684\u4EE4\u724C",class:"authentication",message:"Invalid API Route API key. Check {apiKeyEnvVar}."}],setup:{url:"https://api-route.com",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://api-route.com and create an account","2. Generate an API key in your console / dashboard","3. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-17",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-17",status:401},liveMatrix:{date:"2026-09-17",result:"Verified live against https://global.api-route.com/v1: GET /v1/models returned 70 models. Chat completions, streaming, function calling, streamed function calling, and structured JSON output (json_object and json_schema) verified. Multimodal vision verified on claude-sonnet-4-6, claude-haiku-4-5, and gemini-3.8-flash. Invalid API key returns 401 (\u65E0\u6548\u7684\u4EE4\u724C) and invalid model returns 503 (model_not_found). Tools and response_format were only probed SEPARATELY, never together in one request, so structuredOutputWithTools is corrected to false here pending a dedicated tools_plus_schema probe \u2014 the individual passes do not demonstrate the combined capability."},addedInPR:"pending"}}}}),Rme,PTr=_({"src/lib/providers/catalog/atlas-cloud.json"(){Rme={$schema:"./provider-catalog.schema.json",id:"atlas-cloud",displayName:"Atlas Cloud",aliases:[],tier:2,wire:{baseURL:"https://api.atlascloud.ai/v1",apiKeyFallbackEnvVars:["ATLASCLOUD_API_KEY"]},models:{default:"deepseek-ai/deepseek-v3.2",fallbacks:["deepseek-ai/deepseek-v4-flash","zai-org/glm-5.3","Qwen/Qwen3-235B-A22B-Instruct-2507"],defaultContextWindow:163840,defaultMaxOutputTokens:163840,catalog:{"deepseek-ai/deepseek-v3.2":{contextWindow:163840,pricingPerMTok:{input:.26,output:.38,cachedInput:.13},vision:!1,status:"production",description:"Chosen as default because Atlas Cloud is an aggregator with no single house model, and this is the model its own LLM API Protocols page (https://www.atlascloud.ai/docs/llm-protocols, retrieved 2026-09-29) uses in its chat-completions curl and OpenAI-SDK snippets, its Anthropic Messages example and its Responses example (the Gemini and Images examples on that page use a MODEL_ID placeholder instead, and the quick start, API Keys and LLM / Chat pages use a shorter deepseek-v3 that is not a roster id); its LLM / Chat page (https://www.atlascloud.ai/docs/models/llm) lists DeepSeek V3 first among Featured Models. Live on the unauthenticated GET https://api.atlascloud.ai/v1/models roster (2026-09-29, 120 models): context_length 163840, max_output_length 163840 (equal to the context window, so not recorded as a distinct output ceiling), FP8, input_modalities text only, supported_features json_mode, structured_outputs, tools, reasoning. Pricing from the same roster: $0.26 / $0.38 per MTok input/output, $0.13 per MTok cached-input read. Context-window conflict, unresolved by the vendor: the marketing copy and spec table on the model page (https://www.atlascloud.ai/models/deepseek-ai/deepseek-v3.2, retrieved 2026-09-29) say '128K token context length support' and 'Context Length 128K tokens', while the roster field and the same page's machine-readable reference (https://www.atlascloud.ai/models/deepseek-ai/deepseek-v3.2/llms.txt, retrieved 2026-09-29: 'Context length: 163,840 tokens', 'Max output tokens: 163,840') both say 163,840. The catalog records 163840 (here and in models.defaultContextWindow and models.defaultMaxOutputTokens) because the two API-facing sources agree on it; no request longer than 128K tokens was sent, so the range between 128K and 163,840 is declared by the vendor, not tested. Roster-verified only; not capability-probed without a key."},"deepseek-ai/deepseek-v4-flash":{contextWindow:1048576,maxOutputTokens:393216,pricingPerMTok:{input:.14,output:.28,cachedInput:.028},vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 first fallback. Live roster GET (https://api.atlascloud.ai/v1/models, 2026-09-29): context_length 1048576, max_output_length 393216, FP4, text-only input, supported_features json_mode, tools, structured_outputs. Roster pricing: $0.14 / $0.28 per MTok input/output, $0.028 per MTok cached-input read. Roster-verified only; not named in a docs example."},"zai-org/glm-5.3":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:"Zhipu GLM 5.3 \u2014 fallback from a second model family (the LLM / Chat page, https://www.atlascloud.ai/docs/models/llm, lists GLM as a featured family). Live roster GET (2026-09-29): context_length 1048576, max_output_length 131072, FP8, text-only input, supported_features json_mode, tools, reasoning, structured_outputs. Roster pricing: $1.40 / $4.40 per MTok input/output, $0.26 per MTok cached-input read. Roster-verified only."},"Qwen/Qwen3-235B-A22B-Instruct-2507":{contextWindow:131072,pricingPerMTok:{input:.2,output:.88,cachedInput:.2},vision:!1,status:"production",description:"Alibaba Qwen3 235B A22B Instruct (2507) \u2014 fallback from a third model family (Qwen is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 131072, max_output_length 131072 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, structured_outputs, tools. Roster pricing: $0.20 / $0.88 per MTok input/output, $0.20 per MTok cached-input read. Roster-verified only."},"deepseek-ai/deepseek-v4-pro":{contextWindow:1048576,maxOutputTokens:393216,pricingPerMTok:{input:1.68,output:3.38,cachedInput:.13},vision:!1,status:"production",description:"DeepSeek V4 Pro. Live roster GET (2026-09-29): context_length 1048576, max_output_length 393216, FP4, text-only input, supported_features json_mode, tools, structured_outputs. Roster pricing: $1.68 / $3.38 per MTok input/output, $0.13 per MTok cached-input read. Roster-verified only."},"zai-org/glm-5.1":{contextWindow:202752,pricingPerMTok:{input:1.26,output:3.96,cachedInput:.234},vision:!1,status:"production",description:"Zhipu GLM 5.1. Live roster GET (2026-09-29): context_length 202752, max_output_length 202752 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, tools, reasoning, structured_outputs. Roster pricing: $1.26 / $3.96 per MTok input/output, $0.234 per MTok cached-input read. Roster-verified only."},"minimaxai/minimax-m2.7":{contextWindow:196608,pricingPerMTok:{input:.3,output:1.2,cachedInput:.06},vision:!1,status:"production",description:"MiniMax M2.7 (MiniMax is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 196608, max_output_length 196608 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, tools, structured_outputs, reasoning. Roster pricing: $0.30 / $1.20 per MTok input/output, $0.06 per MTok cached-input read. Roster-verified only."},"moonshotai/kimi-k2.6":{contextWindow:262144,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!0,status:"production",description:"Moonshot Kimi K2.6 (Kimi is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 262144, max_output_length 262144 (equal to context, not recorded separately), INT4, input_modalities text, image and video, hence vision: true here (an image content part is the documented OpenAI-style image_url shape on https://www.atlascloud.ai/docs/llm-protocols; not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.95 / $4.00 per MTok input/output, $0.16 per MTok cached-input read. Roster-verified only; models.visionModel."},"qwen/qwen3.5-397b-a17b":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:3.5,cachedInput:.55},vision:!0,status:"production",description:"Alibaba Qwen3.5 397B A17B. Live roster GET (2026-09-29): context_length 262144, max_output_length 65536, FP8, input_modalities text, image and video, hence vision: true here (not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.55 / $3.50 per MTok input/output, $0.55 per MTok cached-input read. Roster-verified only."},"qwen/qwen3.5-27b":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.27,output:2.16,cachedInput:.27},vision:!0,status:"production",description:"Alibaba Qwen3.5 27B. Live roster GET (2026-09-29): context_length 262144, max_output_length 65536, FP8, input_modalities text, image and video, hence vision: true here (not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.27 / $2.16 per MTok input/output, $0.27 per MTok cached-input read. Roster-verified only."}},topModels:["deepseek-ai/deepseek-v3.2","deepseek-ai/deepseek-v4-flash","zai-org/glm-5.3","Qwen/Qwen3-235B-A22B-Instruct-2507","deepseek-ai/deepseek-v4-pro","zai-org/glm-5.1","minimaxai/minimax-m2.7","moonshotai/kimi-k2.6","qwen/qwen3.5-397b-a17b","qwen/qwen3.5-27b"],visionModel:"moonshotai/kimi-k2.6"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Atlas Cloud rejected the request with HTTP 401. Check {apiKeyEnvVar} (create a key at {setupUrl}); Atlas Cloud also answers 401 for a mistyped endpoint path, so confirm the base URL ends in /v1"},{status:402,class:"provider",message:"Atlas Cloud reports an insufficient balance (HTTP 402). Add funds at https://www.atlascloud.ai/console/billing and retry"},{status:404,class:"invalid-model",message:"Atlas Cloud model '{model}' was not found or is not available to your account (HTTP 404). Pick a current id from https://api.atlascloud.ai/v1/models"}],setup:{url:"https://www.atlascloud.ai/console/api-keys",apiKeyFormat:"^apikey-.+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://www.atlascloud.ai/login and sign up or sign in (Google, GitHub, or email and password \u2014 one page handles both, see https://www.atlascloud.ai/docs/account/sign-in)","2. Open https://www.atlascloud.ai/console/api-keys, choose Create API Key and copy it immediately \u2014 it is shown only once (https://www.atlascloud.ai/docs/api-keys), and Atlas Cloud API keys begin with apikey- (https://www.atlascloud.ai/docs/llm-protocols)","3. Billing is pay-as-you-go from a prepaid balance: the quick start's Step 3 is Add Funds with a $25 minimum top-up (https://www.atlascloud.ai/docs/get-started), and requests are rejected with 402 while the balance is insufficient (https://www.atlascloud.ai/docs/errors). The homepage FAQ also says 'No credit card required to start', but no free-tier terms are documented, so check your balance at https://www.atlascloud.ai/console/billing before relying on it","4. Set {apiKeyEnvVar} in your .env file (ATLASCLOUD_API_KEY, the name used in Atlas Cloud's own docs, is also read)"],description:`OpenAI-compatible endpoint at https://api.atlascloud.ai/v1 (https://www.atlascloud.ai/docs/llm-protocols: POST /v1/chat/completions, Bearer auth, 'Point an existing SDK at Atlas Cloud and it generally works unchanged'); the same base URL also accepts Anthropic Messages, Responses and Gemini formats, which NeuroLink does not use. The roster (unauthenticated GET /v1/models, 200, 120 models, 2026-09-29) comes back in a custom {code, msg, data} envelope rather than OpenAI's {object: 'list'} wrapper; data is still an array of {id, ...} entries. The is_ready field on that roster was false on 73 of the 120 entries (by id prefix: anthropic/ 29, openai/ 18, google/ 11, qwen/ 8, xai/ 4, moonshotai/ 2, zai-org/ 1) and absent on the other 47; the models in this catalog are entries where it is absent. Per the LLM API Protocols page, response_format (json_object and json_schema) is documented for models that advertise json_mode or structured_outputs and tools for models that advertise tools, /v1/embeddings does not exist, the gateway inserts 'You are a helpful assistant.' when no system prompt is sent, and 429 responses carry no Retry-After header (back off client-side). Error body per https://www.atlascloud.ai/docs/errors: {"code":401,"msg":"unauthorized","request_id":"...","data":null}; a wrong path also returns 401, 402 means insufficient balance, and a 404 covers models not available to the account. Billing status is unresolved: the docs and the API describe a funded balance, while the homepage FAQ says 'No credit card required to start' (the phrase 'free credits' appears only in the homepage blurbs for the GPT Image 2 and Nano Banana 2 models, with no terms) \u2014 no page states what a brand-new account can call, so no-free-tier is the conservative schema value, not a verified fact.`},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.atlascloud.ai/v1/models \u2014 120 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",method:"public pages https://www.atlascloud.ai/docs/billing, /docs/billing/topup, /docs/billing/credits, /docs/get-started and the https://www.atlascloud.ai homepage \u2014 pay-as-you-go prepaid balance, $25 minimum top-up, 402 on insufficient balance; homepage FAQ separately says 'No credit card required to start'; the pages do not reconcile; credential-free"},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Mme,OTr=_({"src/lib/providers/catalog/avian-io.json"(){Mme={$schema:"./provider-catalog.schema.json",id:"avian-io",displayName:"Avian",aliases:["avian"],tier:2,wire:{baseURL:"https://api.avian.io/v1"},models:{default:"deepseek/deepseek-v4-pro-0813",fallbacks:["deepseek/deepseek-v4-flash","deepseek/deepseek-v3.2","z-ai/glm-5.2"],defaultContextWindow:163840,defaultMaxOutputTokens:65536,catalog:{"deepseek/deepseek-v4-pro-0813":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:.594,output:1.782,cachedInput:.0198},vision:!1,status:"production",description:'Recommended default - the model Avian itself promotes: every avian.io page opened on 2026-09-29 (home, docs, models, pricing, about) carries the banner "DeepSeek V4 Pro 0813 is now live on Avian. Try it today". Not itself used in the docs code examples, which all name the legacy deepseek/deepseek-v3.2. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $0.594/$1.782 per MTok input/output, $0.0198 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false.'},"deepseek/deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:.0805,output:.161,cachedInput:.0165},vision:!1,status:"production",description:"Fallback - the lowest input and output price on the roster, and the first model listed. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $0.0805/$0.161 per MTok input/output, $0.0165 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"deepseek/deepseek-v3.2":{contextWindow:163840,maxOutputTokens:65536,pricingPerMTok:{input:.23,output:.33,cachedInput:.012},vision:!1,status:"production",description:"Fallback - the model named in every code example on https://avian.io/docs/, including its Function Calling and Streaming examples (the only model with a documented tool-call example); the vendor labels it (Legacy), so it may be retired. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 163,840, max_output 65,536, $0.23/$0.33 per MTok input/output, $0.012 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5.2":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.495,output:1.733,cachedInput:.124},vision:!1,status:"production",description:"Fallback - the highest-numbered GLM on the roster, 1M context. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.495/$1.733 per MTok input/output, $0.124 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"deepseek/deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:1.305,output:2.61,cachedInput:.10875},vision:!1,status:"production",description:"DeepSeek V4 Pro (the undated build), roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $1.305/$2.61 per MTok input/output, $0.10875 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"minimax/minimax-m2.5":{contextWindow:196608,maxOutputTokens:131072,pricingPerMTok:{input:.27,output:1.08,cachedInput:.15},vision:!1,status:"production",description:"MiniMax M2.5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 196,608, max_output 131,072, $0.27/$1.08 per MTok input/output, $0.15 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5":{contextWindow:204800,maxOutputTokens:131072,pricingPerMTok:{input:.516,output:2.322,cachedInput:.129},vision:!1,status:"production",description:"Zhipu GLM-5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 204,800, max_output 131,072, $0.516/$2.322 per MTok input/output, $0.129 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5.1":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.743,output:2.971,cachedInput:.186},vision:!1,status:"production",description:"Zhipu GLM-5.1, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 202,752, max_output 202,752, $0.743/$2.971 per MTok input/output, $0.186 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"moonshotai/kimi-k2.5":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.45,output:2.2,cachedInput:.225},vision:!1,status:"production",description:"Moonshot Kimi K2.5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 262,144, max_output 262,144, $0.45/$2.2 per MTok input/output, $0.225 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"moonshotai/kimi-k2.6":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Moonshot Kimi K2.6, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 262,144, max_output 262,144, $0.95/$4 per MTok input/output, $0.16 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"xiaomi/mimo-v2.6-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.2,output:.4,cachedInput:.05},vision:!1,status:"production",description:"Xiaomi MiMo-V2.6 Flash, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.2/$0.4 per MTok input/output, $0.05 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"xiaomi/mimo-v2.6-pro":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.435,output:.87,cachedInput:.0036},vision:!1,status:"production",description:"Xiaomi MiMo-V2.6 Pro, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.435/$0.87 per MTok input/output, $0.0036 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."}},topModels:["deepseek/deepseek-v4-pro-0813","deepseek/deepseek-v4-flash","deepseek/deepseek-v3.2","z-ai/glm-5.2","deepseek/deepseek-v4-pro","minimax/minimax-m2.5","z-ai/glm-5","z-ai/glm-5.1","moonshotai/kimi-k2.5","moonshotai/kimi-k2.6","xiaomi/mimo-v2.6-flash","xiaomi/mimo-v2.6-pro"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid or missing Avian API key (HTTP 401). Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"Avian account has an insufficient credit balance (HTTP 402). Add prepaid credits \u2014 see https://avian.io/pricing/"}],setup:{url:"https://avian.io/accounts/signup/",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://avian.io/accounts/signup/ and sign up with Google or a work email and password",'2. Create an API key from your signed-in account \u2014 the public pages only say "Get your API key in under a minute" (https://avian.io/pricing/) and do not name the key page; the docs examples show keys that start with avian-','3. Prepaid credits only: add credits before calling the API (https://avian.io/pricing/ lists $50, $100, $150 and $250 packages); the sign-up buttons say "Get Started Free" but no free credits are stated anywhere, and the docs list HTTP 402 for an insufficient credit balance (https://avian.io/docs/)',"4. Set {apiKeyEnvVar} in your .env file (the vendor's homepage example reads AVIAN_API_KEY, which NeuroLink does not)"],description:'OpenAI-compatible endpoint at https://api.avian.io/v1 (https://avian.io/docs/: "The Avian API is fully OpenAI-compatible"), serving 13 open-weight chat models from DeepSeek, MiniMax, Zhipu, Moonshot and Xiaomi on prepaid credits. The docs list the error statuses 400, 401, 402, 429 and 500 but describe the body only as "a JSON body with a descriptive message", so errorRules match the status codes alone.'},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.avian.io/v1/models \u2014 13 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",method:'public page https://avian.io/pricing/ \u2014 "Simple per-token pricing with prepaid credits. No subscriptions, no commitments"; no free tier or free credits stated; credential-free'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Pme,DTr=_({"src/lib/providers/catalog/baseten.json"(){Pme={$schema:"./provider-catalog.schema.json",id:"baseten",displayName:"Baseten",aliases:[],tier:2,wire:{baseURL:"https://inference.baseten.co/v1"},models:{default:"zai-org/GLM-5.3-Flash",fallbacks:["zai-org/GLM-5.3-Flash","zai-org/GLM-5.3","zai-org/GLM-5.2"],defaultContextWindow:1048576,defaultMaxOutputTokens:131072,catalog:{"openai/gpt-oss-120b":{contextWindow:128072,maxOutputTokens:128072,pricingPerMTok:{input:.1,output:.5,cachedInput:.1},vision:!1,status:"production",description:"OpenAI GPT-OSS 120B; general-purpose model with controllable reasoning"},"zai-org/GLM-4.7":{contextWindow:2e5,maxOutputTokens:2e5,pricingPerMTok:{input:.6,output:2.2,cachedInput:.12},vision:!1,status:"production",description:"GLM 4.7; fast general-purpose model with 200K context and enhanced tool use"},"moonshotai/Kimi-K2.6":{contextWindow:262e3,maxOutputTokens:262e3,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Kimi K2.6; agentic and coding model for multi-step reasoning and tool use"},"deepseek-ai/DeepSeek-V4-Pro":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.74,output:3.48,cachedInput:.145},vision:!1,status:"production",description:"DeepSeek V4 Pro; 1M-context mixture-of-experts model for agentic workflows and coding"},"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B":{contextWindow:202800,maxOutputTokens:202800,pricingPerMTok:{input:.6,output:2.4,cachedInput:.12},vision:!1,status:"production",description:"NVIDIA Nemotron 3 Ultra; flagship reasoning and non-reasoning model for code and agentic execution"},"zai-org/GLM-5.2":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.14},vision:!1,status:"production",description:"GLM 5.2; 1M-context reasoning model"},"moonshotai/Kimi-K2.7-Code":{contextWindow:262e3,maxOutputTokens:262e3,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Kimi K2.7 Code; model for complex coding, code reasoning and long-horizon development"},"deepseek-ai/DeepSeek-V4-Flash-0731":{contextWindow:1048576,maxOutputTokens:384e3,pricingPerMTok:{input:.13,output:.26,cachedInput:.028},vision:!1,status:"production",description:"DeepSeek V4 Flash 0731; fast, low-cost 1M-context mixture-of-experts model"},"thinkingmachines/inkling":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:1,output:4.05,cachedInput:.17},vision:!1,status:"production",description:"Thinking Machines Inkling; 1M-context reasoning model"},"zai-org/GLM-5.2-Fast":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:2.1,output:6.6,cachedInput:.21},vision:!1,status:"production",description:"GLM 5.2 Fast; 1M-context model"},"moonshotai/Kimi-K3":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:3,output:15,cachedInput:.3},vision:!1,status:"production",description:"Kimi K3; 1M-context model"},"thinkingmachines/inkling-small":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:.5,output:1.2,cachedInput:.1},vision:!1,status:"production",description:"Thinking Machines Inkling Small; 1M-context reasoning model"},"deepseek-ai/DeepSeek-V4-Pro-0813":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.32,output:3.96,cachedInput:.132},vision:!1,status:"production",description:"DeepSeek V4 Pro 0813; dated 1M-context mixture-of-experts model for agentic workflows and coding"},"zai-org/GLM-5.3-Flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.15,output:.5,cachedInput:.03},vision:!0,status:"production",description:"Recommended - GLM 5.3 Flash; 1M-context reasoning model with live-verified image input"},"zai-org/GLM-5.3":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.14},vision:!1,status:"production",description:"GLM 5.3; 1M-context reasoning model"},"zai-org/GLM-5.3-Fast":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:2.1,output:6.6,cachedInput:.21},vision:!0,status:"production",description:"GLM 5.3 Fast; 1M-context reasoning model with image input"}},visionModel:"zai-org/GLM-5.3-Flash",topModels:["zai-org/GLM-5.3-Flash","zai-org/GLM-5.3","zai-org/GLM-5.2","openai/gpt-oss-120b","deepseek-ai/DeepSeek-V4-Flash-0731"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[{pattern:"please check the api-key you provided",class:"authentication",message:"Invalid Baseten API key. Check {apiKeyEnvVar}. Get one at https://app.baseten.co/"}],setup:{url:"https://app.baseten.co/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://app.baseten.co/ and sign in or create a workspace","2. Review the current Baseten billing and credit terms in the console before making requests","3. Create a personal API key in the Baseten console","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-03",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-03",status:403},liveMatrix:null,addedInPR:"pending"}}}}),Ome,NTr=_({"src/lib/providers/catalog/bee-heossi.json"(){Ome={$schema:"./provider-catalog.schema.json",id:"bee-heossi",displayName:"Bee by HEOSSI",aliases:[],tier:2,wire:{baseURL:"https://api.bee.heossi.com/bee"},models:{default:"bee-cell",fallbacks:["bee-brood","bee-comb","bee-buzz","bee-hive","bee-swarm"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"bee-cell":{contextWindow:128e3,pricingPerMTok:{input:.3,output:1.2},vision:!1,status:"production",description:"Bee Cell 1.0 \u2014 HEOSSI's free, entry-tier model and the one used in every SDK/curl example on https://bee.heossi.com/docs/sdks (retrieved 2026-09-28), so it is the most defensible default without a live probe. Free hosted access, no card required: 'Full Bee experience with dynamic fair use \u2014 free to start' (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 128K and $0.30 / $1.20 per 1M input/output tokens per the same pricing page; no per-request output-token ceiling is documented. The 2026-07-11 changelog states tool/function calling and JSON-mode structured output are live on Comb, Buzz and Hive only \u2014 Cell is not named, so tools/structured output are not assumed here. No image input is documented for this tier. Roster-verified only (unauthenticated GET /bee/models, 2026-09-28); no live capability probe was run (credential-free onboarding)."},"bee-cell-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-cell alias (current_snapshot field on GET /bee/models, 2026-09-28). Same tier as bee-cell; see that entry for pricing/context. Roster-listed only."},"bee-brood":{contextWindow:256e3,pricingPerMTok:{input:.6,output:2.4},vision:!1,status:"production",description:"Bee Brood 1.0 \u2014 second tier, $30/mo on the Workspace track or $0.60 / $2.40 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 256K per the same page. Not named among Comb/Buzz/Hive in the 2026-07-11 changelog's tool-calling/JSON-mode announcement, so those capabilities are not assumed for this tier. Fallback; roster-verified only, not capability-probed."},"bee-brood-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-brood alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-comb":{contextWindow:256e3,pricingPerMTok:{input:1.25,output:5},vision:!1,status:"production",description:"Bee Comb 2.0 (current snapshot bee-comb-20260827-r1 per GET /bee/models, 2026-09-28) \u2014 base context 256K, $1.25 / $5.00 per 1M input/output tokens (https://bee.heossi.com/pricing, retrieved 2026-09-28). The 2026-07-11 changelog also describes a separately routed long-context mode serving up to 1,010,000 tokens for Comb and Buzz \u2014 that is a distinct routed path, not modeled as this catalog entry's context window. The same changelog entry states tool/function calling and JSON-mode structured output are live on Comb (along with Buzz and Hive) \u2014 see capabilities.tools ('model-dependent') and the provider-level structuredOutput note. Fallback; roster-verified only, not capability-probed."},"bee-comb-20260710-r1":{vision:!1,status:"production",description:"Older immutable pinned snapshot of bee-comb, superseded by bee-comb-20260827-r1 as the current_snapshot (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-comb-20260827-r1":{vision:!1,status:"production",description:"Current immutable pinned snapshot behind the bee-comb alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-buzz":{contextWindow:256e3,pricingPerMTok:{input:2.5,output:10},vision:!1,status:"production",description:"Bee Buzz 1.0 \u2014 HEOSSI's 'Popular' Workspace tier ($400/mo) / $2.50 / $10.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 256K, with the same 1,010,000-token routed long-context mode documented for Comb and Buzz (2026-07-11 changelog). Named alongside Comb and Hive in the 2026-07-11 changelog's tool-calling/JSON-mode-live announcement. Fallback; roster-verified only, not capability-probed."},"bee-buzz-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-buzz alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-hive":{contextWindow:256e3,pricingPerMTok:{input:5,output:20},vision:!1,status:"production",description:"Bee Hive 1.0 \u2014 $1,000/mo Workspace tier with a 99.5% SLA, or $5.00 / $20.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Base context 256K; the same pricing page says Hive reaches a 1M-token mode 'via Comb', a routing detail not modeled as this entry's context window. Named alongside Comb and Buzz in the 2026-07-11 changelog's tool-calling/JSON-mode-live announcement. Fallback; roster-verified only, not capability-probed."},"bee-hive-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-hive alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-swarm":{contextWindow:1e6,pricingPerMTok:{input:25,output:150},vision:!1,status:"production",description:"Bee Swarm 1.0 \u2014 top Workspace tier ($4,000/mo, 99.9% SLA) / $25.00 / $150.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). '1M natively' per the 2026-07-11 changelog. Not named in that changelog's Comb/Buzz/Hive tool-calling-and-JSON-mode announcement, so those capabilities are not assumed for this tier. Fallback; roster-verified only, not capability-probed."},"bee-swarm-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-swarm alias (GET /bee/models, 2026-09-28). Roster-listed only."}},topModels:["bee-cell","bee-brood","bee-comb","bee-buzz","bee-hive","bee-swarm"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Invalid Bee API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"Bee account has insufficient funded usage credit. Top up your prepaid wallet at https://bee.heossi.com/pricing"},{status:403,class:"provider",message:"The requested Bee model or capability is not included in your current plan. Upgrade at https://bee.heossi.com/pricing or {setupUrl}"},{status:429,class:"rate-limit",message:"Bee API allowance or rate limit reached. Wait and retry, or review your plan's usage caps at https://bee.heossi.com/pricing"}],setup:{url:"https://workspace.bee.heossi.com/account/api-keys",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://workspace.bee.heossi.com/account/api-keys and sign in (or create a Bee Workspace account)","2. Create an API key \u2014 the free Bee Cell / Bee Pollen tier needs no credit card ('Free hosted access \u2014 no card', https://bee.heossi.com/pricing)","3. Higher tiers (Brood/Comb/Buzz/Hive/Swarm) draw from a prepaid wallet billed per token; see https://bee.heossi.com/pricing for current rates","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.bee.heossi.com/bee \u2014 note the base path is /bee, not /v1. Six model tiers (Cell through Swarm); the free Cell/Pollen tier requires no card, paid tiers meter a prepaid wallet per token (https://bee.heossi.com/pricing)."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.bee.heossi.com/bee/models \u2014 13 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Dme,LTr=_({"src/lib/providers/catalog/cerebras.json"(){Dme={$schema:"./provider-catalog.schema.json",id:"cerebras",displayName:"Cerebras",aliases:[],tier:2,wire:{baseURL:"https://api.cerebras.ai/v1"},models:{default:"gpt-oss-120b",fallbacks:["gpt-oss-120b"],defaultContextWindow:65536,defaultMaxOutputTokens:8192,catalog:{"gpt-oss-120b":{contextWindow:65536,pricingPerMTok:{input:.35,output:.75},vision:!1,status:"production",description:"Recommended - OpenAI GPT-OSS 120B (open-weight); wafer-scale speed"},"gemma-4-31b":{contextWindow:65536,pricingPerMTok:{input:.99,output:1.49},vision:!1,status:"retired",description:"Retired 2026-09 \u2014 gone from the authenticated /v1/models roster; the nightly vision test has failed on it since 2026-09-10"}},topModels:["gpt-oss-120b"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"wrong_api_key|Wrong API Key|invalid_api_key",class:"authentication",message:"Invalid Cerebras API key. Check {apiKeyEnvVar}. Get one at https://cloud.cerebras.ai"}],setup:{url:"https://cloud.cerebras.ai",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:["1. Visit: https://cloud.cerebras.ai","2. Sign in or create a free Cerebras account","3. Create an API key under API Keys","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-28",method:"authenticated GET /v1/models \u2014 roster is now gpt-oss-120b and qwen-3.8-27b; gemma-4-31b is gone, so it is retired and Cerebras has no verified vision model. qwen-3.8-27b is not added: the account answers 402 payment_required, so no chat call could verify it"},authProbe:{date:"2026-08-26",status:401,code:"wrong_api_key"},liveMatrix:{date:"2026-08-30",result:`Both ids answer. Vision re-tested with a valid 64x64 PNG: gemma-4-31b describes it correctly, so its vision flag is now true (it was false); gpt-oss-120b answers "Content type 'image_url' is not supported by selected model".`},addedInPR:"https://github.com/juspay/neurolink/pull/1561"}}}}),Nme,FTr=_({"src/lib/providers/catalog/charm-hyper.json"(){Nme={$schema:"./provider-catalog.schema.json",id:"charm-hyper",displayName:"Charm Hyper",aliases:[],tier:2,wire:{baseURL:"https://hyper.charm.land/v1"},models:{default:"deepseek-v4-pro",fallbacks:["deepseek-v4-flash","deepseek-v4.1-flash","kimi-k2-thinking","glm-5.3","qwen3.8-max"],defaultContextWindow:1e6,defaultMaxOutputTokens:384e3,catalog:{"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:2.4,output:4.8,cachedInput:.2},vision:!1,status:"production",description:'DeepSeek V4 Pro; reasoning effort levels high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28). Default for this entry \u2014 chosen as the `model` value used in Hyper\'s own worked request example on the Chat Completions reference page (docs/api/openai-chat-completions.html), the doc page for the exact endpoint NeuroLink calls. Hyper does not label any model "default" or "recommended" anywhere in its docs; the homepage quick-start\'s own example instead uses deepseek-v4-flash. No live capability probe was run (credential-free onboarding) \u2014 reconfirm this choice once a key is available.'},"deepseek-v4.1-flash":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:.3,output:1.2,cachedInput:.03},vision:!0,status:"production",description:"DeepSeek V4.1 Flash \u2014 newest DeepSeek Flash snapshot on the roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:.2,output:.4,cachedInput:.04},vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 used as the worked `model` example on Hyper's homepage quick-start (a different example than the Chat Completions reference page, which uses deepseek-v4-pro); reasoning effort levels low/high/max (default high). Hyper's marketing page docs/models.html lists 'DeepSeek V4 Flash' among models with attachment support, but the live /v1/models roster reports capabilities.vision=false for this id \u2014 a documented inconsistency, flagged rather than resolved. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-pro-0813":{contextWindow:1e6,maxOutputTokens:262144,pricingPerMTok:{input:1.437216,output:4.311648,cachedInput:.047907},vision:!1,status:"production",description:"DeepSeek V4 Pro, 0813 snapshot \u2014 dated pin of the Pro line; reasoning effort levels low/high (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-flash-0731":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:.44,output:1.32,cachedInput:.044},vision:!1,status:"production",description:"DeepSeek V4 Flash, 0731 snapshot \u2014 dated pin of the Flash line; reasoning effort levels low/high (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k3":{contextWindow:1048576,maxOutputTokens:16e3,pricingPerMTok:{input:3.2664,output:16.332,cachedInput:.32664},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 vision-capable per the live roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k2-thinking":{contextWindow:262144,maxOutputTokens:26214,pricingPerMTok:{input:.6,output:2.5,cachedInput:.3},vision:!1,status:"production",description:"Moonshot Kimi K2 Thinking \u2014 reasoning-first Kimi variant; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k2.7-code":{contextWindow:256e3,maxOutputTokens:16e3,pricingPerMTok:{input:1.03436,output:4.3552,cachedInput:.206872},vision:!0,status:"production",description:"Moonshot Kimi K2.7 Code \u2014 code-focused Kimi variant, vision-capable per the live roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.3":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:1.52432,output:4.79072,cachedInput:.283088},vision:!1,status:"production",description:"Zhipu GLM 5.3. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.3-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.16332,output:.5444,cachedInput:.031575},vision:!0,status:"production",description:"Zhipu GLM 5.3 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.2":{contextWindow:1e6,maxOutputTokens:32768,pricingPerMTok:{input:1.52432,output:4.79072,cachedInput:.152432},vision:!1,status:"production",description:"Zhipu GLM 5.2 \u2014 prior GLM generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"minimax-m3":{contextWindow:512e3,maxOutputTokens:512e3,pricingPerMTok:{input:.32664,output:1.30656,cachedInput:.064239},vision:!0,status:"production",description:"MiniMax M3 \u2014 vision-capable per the live roster; unusually large max_output_tokens (512K, equal to its context window). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"minimax-m2.7":{contextWindow:262100,maxOutputTokens:6553,pricingPerMTok:{input:.484,output:1.852,cachedInput:.242},vision:!1,status:"production",description:"MiniMax M2.7 \u2014 prior MiniMax generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},inkling:{contextWindow:1048576,maxOutputTokens:65536,pricingPerMTok:{input:1.0888,output:4.40964,cachedInput:.185096},vision:!0,status:"production",description:"Inkling \u2014 vision-capable model on the roster; vendor lineage not stated on the pages read for this entry. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-max":{contextWindow:1e6,maxOutputTokens:65536,pricingPerMTok:{input:2,output:6,cachedInput:.25},vision:!0,status:"production",description:"Alibaba Qwen3.8 Max \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-flash":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:.15,output:.47,cachedInput:.016},vision:!0,status:"production",description:"Alibaba Qwen3.8 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-27b":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:.5,output:3,cachedInput:.1},vision:!0,status:"production",description:"Alibaba Qwen3.8 27B \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-2.4t-a95b":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:6,cachedInput:.25},vision:!1,status:"production",description:"Alibaba Qwen3.8 2.4T-A95B (large MoE variant). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-max":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:2.5,output:7.5,cachedInput:.5},vision:!1,status:"production",description:"Alibaba Qwen3.7 Max \u2014 prior Qwen generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-plus":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:1.2,output:4.8,cachedInput:.24},vision:!0,status:"production",description:"Alibaba Qwen3.7 Plus \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-flash":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:.2,output:.8,cachedInput:.04},vision:!0,status:"production",description:"Alibaba Qwen3.7 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"gpt-oss-120b":{contextWindow:131072,maxOutputTokens:13107,pricingPerMTok:{input:.178,output:.68,cachedInput:.089},vision:!1,status:"production",description:"OpenAI's open-weight gpt-oss-120b. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"gemma-4-26b-a4b-it":{contextWindow:256e3,maxOutputTokens:25600,pricingPerMTok:{input:.098,output:.334,cachedInput:.049},vision:!1,status:"production",description:"Google Gemma 4 26B A4B, instruction-tuned. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."}},topModels:["deepseek-v4-pro","deepseek-v4.1-flash","deepseek-v4-flash","kimi-k3","kimi-k2-thinking","glm-5.3","glm-5.3-flash","qwen3.8-max"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"invalid api key",class:"authentication",message:"Invalid Charm Hyper API key (keys start with sk-hyper-). Check {apiKeyEnvVar}. Get one at {setupUrl}"}],setup:{url:"https://hyper.charm.land/auth?mode=signup",apiKeyFormat:"^sk-hyper-.+$",billingPolicy:"free-tier",instructions:["1. Visit: https://hyper.charm.land/auth?mode=signup and sign up (Google, GitHub, or email)","2. Copy an API key from the Hyper Dashboard \u2014 it starts with sk-hyper-","3. Free plan: $0/month, 100 Hypercredits/month (1 Hypercredit \u2248 $0.05); paid subscription ($20/month, 250 Hypercredits/day) and prepaid bundles (never expire) are also available","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://hyper.charm.land/v1 (POST /v1/chat/completions; Hyper also documents an Anthropic-compatible /v1/messages, not used by this entry). GET /v1/models is public and needs no key. Docs- and roster-verified only \u2014 this entry was onboarded credential-free, so no authenticated request, tool-call, or structured-output probe was ever made; see evidence.liveMatrix (null) and re-run docs/provider-integration/tiers/tier-2-catalog-entry.md's live-verification steps before treating capabilities as proven."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://hyper.charm.land/v1/models \u2014 23 models, e.g. deepseek-v4.1-flash, deepseek-v4-pro-0813, kimi-k3, glm-5.3, minimax-m3; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Lme,$Tr=_({"src/lib/providers/catalog/chutes.json"(){Lme={$schema:"./provider-catalog.schema.json",id:"chutes",displayName:"Chutes",aliases:[],tier:2,wire:{baseURL:"https://llm.chutes.ai/v1"},models:{default:"moonshotai/Kimi-K2.6-TEE",fallbacks:["moonshotai/Kimi-K3-TEE","deepseek-ai/DeepSeek-V4-Flash-0731-TEE","zai-org/GLM-5.2-TEE","Qwen/Qwen3.5-397B-A17B-TEE","Qwen/Qwen3.6-27B-TEE","Qwen/Qwen3.8-27B-TEE","Qwen/Qwen3-235B-A22B-Thinking-2507-TEE","deepseek-ai/DeepSeek-V3.2-TEE","zai-org/GLM-5.1-TEE","google/gemma-4-31B-turbo-TEE","Qwen/Qwen3-32B-TEE","unsloth/Mistral-Nemo-Instruct-2407-TEE","Nemotron-3-Nano-Omni-30B-TEE"],defaultContextWindow:262144,defaultMaxOutputTokens:65535,catalog:{"moonshotai/Kimi-K2.6-TEE":{contextWindow:262144,maxOutputTokens:65535,pricingPerMTok:{input:.5,output:2.85,cachedInput:.05},vision:!0,status:"production",description:`Default \u2014 this is the model Chutes' own homepage code sample uses for the documented POST https://llm.chutes.ai/v1/chat/completions example (model, messages, stream:true, Authorization: Bearer $CHUTES_API_KEY), the strongest wire-shape evidence available without a key. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). The public roster entry (root moonshotai/Kimi-K3, confidential_compute:true, owned_by vllm) lists context_length 262144, max_output_length 65535, input_modalities [text, image, video] and supported_features [json_mode, structured_outputs, tools, reasoning] \u2014 matched by the function-calling guide (https://chutes.ai/docs/guides/agents-and-tools, OpenAI-shaped tools/tool_choice/tool_call_id) and by the JSON-mode example on the same page (response_format:{type:"json_object"}). None of this was exercised end to end \u2014 no API key was used, so vision/tool/JSON-mode support and pricing are roster- and docs-verified only, not live-probed. Pricing ($0.50/$2.85 per MTok in/out, $0.05 cached) is read directly from the same GET /v1/models response and is consistent with https://chutes.ai/pricing's stated USD-per-1M-token PAYG billing.`},"moonshotai/Kimi-K3-TEE":{contextWindow:1048576,maxOutputTokens:65535,pricingPerMTok:{input:3,output:15,cachedInput:.3},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 largest context window in the roster (1,048,576 tokens) and the same declared feature set as the default (json_mode, structured_outputs, tools, reasoning) plus image/video input modalities per the public /v1/models entry. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not itself capability-probed (no key used); fallback."},"deepseek-ai/DeepSeek-V4-Flash-0731-TEE":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.44,output:1.32,cachedInput:.044},vision:!1,status:"production",description:"DeepSeek V4 Flash (0731 snapshot) \u2014 1,048,576-token context window and the largest documented max_output_length in the roster (131,072). Text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"zai-org/GLM-5.2-TEE":{contextWindow:1048576,maxOutputTokens:65535,pricingPerMTok:{input:1.25,output:3.95,cachedInput:.125},vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 1,048,576-token context window, text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.5-397B-A17B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.45,output:3,cachedInput:.045},vision:!0,status:"production",description:"Qwen 3.5 397B-A17B (MoE) \u2014 image input documented in input_modalities alongside the full json_mode/tools/structured_outputs/reasoning feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.6-27B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.3,output:2,cachedInput:.03},vision:!0,status:"production",description:"Qwen 3.6 27B \u2014 image input documented in input_modalities alongside the full feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.8-27B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.24,output:2.2,cachedInput:.024},vision:!0,status:"production",description:"Qwen 3.8 27B \u2014 image input documented in input_modalities alongside the full feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3-235B-A22B-Thinking-2507-TEE":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.2989,output:1.1957,cachedInput:.0299},vision:!1,status:"production",description:"Qwen 3 235B-A22B Thinking (2507 snapshot) \u2014 a reasoning-focused variant whose max_output_length equals its full 262,144-token context window, so a generous max_tokens budget matters most for this entry. Text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"deepseek-ai/DeepSeek-V3.2-TEE":{contextWindow:131072,maxOutputTokens:65536,pricingPerMTok:{input:1,output:1,cachedInput:.1},vision:!1,status:"production",description:"DeepSeek V3.2 \u2014 text-only input per input_modalities, full documented feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"zai-org/GLM-5.1-TEE":{contextWindow:202752,maxOutputTokens:65535,pricingPerMTok:{input:.98,output:3.08,cachedInput:.098},vision:!1,status:"production",description:"Zhipu GLM-5.1 \u2014 prior GLM generation, text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"google/gemma-4-31B-turbo-TEE":{contextWindow:131072,maxOutputTokens:65536,pricingPerMTok:{input:.12,output:.37,cachedInput:.012},vision:!0,status:"production",description:"Google Gemma 4 31B Turbo \u2014 image input documented in input_modalities. The roster reports a 262,144 max_model_len against a smaller 131,072 context_length; contextWindow here uses the latter (context_length), the field name this catalog treats as the documented context window \u2014 see https://llm.chutes.ai/v1/models. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3-32B-TEE":{contextWindow:40960,maxOutputTokens:40960,pricingPerMTok:{input:.104,output:.416,cachedInput:.0104},vision:!1,status:"production",description:"Qwen 3 32B \u2014 smallest documented context window in the roster (40,960 tokens), text-only input. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"unsloth/Mistral-Nemo-Instruct-2407-TEE":{pricingPerMTok:{input:.0245,output:.0978,cachedInput:.0024},vision:!1,status:"production",description:"Mistral Nemo Instruct (2407, Unsloth build) \u2014 the public /v1/models entry gives only max_model_len (131,072); context_length, max_output_length, input_modalities and supported_features are all null/absent for this id, so no context window, output cap, vision or tool/JSON-mode capability is asserted here (contextWindow and maxOutputTokens are omitted rather than guessed from max_model_len, which is not documented as equivalent to either). credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Cheapest model in the roster by list price. Roster-listed only; not capability-probed; fallback."},"Nemotron-3-Nano-Omni-30B-TEE":{pricingPerMTok:{input:.0245,output:.0978,cachedInput:.0024},vision:!1,status:"production",description:'Nemotron 3 Nano Omni 30B \u2014 same undocumented-field pattern as unsloth/Mistral-Nemo-Instruct-2407-TEE: only max_model_len (131,072) is given; context_length, max_output_length, input_modalities and supported_features are all null/absent. The "Omni" name suggests multimodal capability, but nothing in the public roster confirms it, so vision is left false here rather than inferred from the name. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback.'}},topModels:["moonshotai/Kimi-K2.6-TEE","moonshotai/Kimi-K3-TEE","deepseek-ai/DeepSeek-V4-Flash-0731-TEE","zai-org/GLM-5.2-TEE","Qwen/Qwen3.5-397B-A17B-TEE","deepseek-ai/DeepSeek-V3.2-TEE"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[],setup:{url:"https://chutes.ai/signup",apiKeyFormat:"^cpk_[A-Za-z0-9_-]+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://chutes.ai/signup and create an account (pick a username; sign up with Google, GitHub, or optionally link a Bittensor wallet \u2014 no card is asked for on this page)","2. Manage billing and create API keys at https://api.chutes.ai (account/billing/API-key management is a separate host from the inference API)","3. Review current token pricing at https://chutes.ai/pricing before making requests \u2014 pay-as-you-go per token (USD per 1M tokens) plus optional paid Plus/Pro plans; no free trial credits are documented, so budget for a funded account from the first call","4. Set {apiKeyEnvVar} in your .env file \u2014 keys are issued with a cpk_ prefix and must be sent as Authorization: Bearer {apiKeyEnvVar} (X-API-Key is not a supported auth scheme)"],description:"OpenAI-compatible endpoint at https://llm.chutes.ai/v1 (chat completions confirmed via the vendor's own homepage code sample), serving a small TEE (confidential-compute) model roster \u2014 14 ids at the time of writing, confirmed by an unauthenticated GET /v1/models. Billing is pay-as-you-go per token; the pricing page's free-trial FAQ answer is collapsed/unconfirmed and no free-tier language appears elsewhere in the public docs, so billingPolicy is recorded conservatively as no-free-tier pending a live-key check."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://llm.chutes.ai/v1/models \u2014 14 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Fme,UTr=_({"src/lib/providers/catalog/cloudflare.json"(){Fme={$schema:"./provider-catalog.schema.json",id:"cloudflare",displayName:"Cloudflare Workers AI",aliases:["workers-ai","cf-ai"],tier:2,wire:{baseURLTemplate:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1",extraCredentials:["accountId"],missingCredentialMessage:"CLOUDFLARE_ACCOUNT_ID is required (or pass credentials.cloudflare.accountId). Get the account id from https://dash.cloudflare.com/"},models:{default:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",fallbackModelName:"@cf/meta/llama-3.1-8b-instruct-fast",fallbacks:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/google/gemma-2b-it-lora"],defaultContextWindow:8192,defaultMaxOutputTokens:4096,catalog:{"@cf/meta/llama-3.3-70b-instruct-fp8-fast":{enumMember:"LLAMA_3_3_70B_FAST",contextWindow:24e3,vision:!1,status:"production",description:"Recommended - Llama 3.3 70B Instruct (FP8 fast)"},"@cf/meta/llama-3.1-70b-instruct":{enumMember:"LLAMA_3_1_70B_INSTRUCT",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.1 70B Instruct"},"@cf/meta/llama-3.1-8b-instruct-fast":{enumMember:"LLAMA_3_1_8B_FAST",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.1 8B Instruct (fast)"},"@cf/meta/llama-3.2-11b-vision-instruct":{enumMember:"LLAMA_3_2_11B_VISION",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.2 11B Vision Instruct \u2014 Meta Community License accepted on the account 2026-09-02, but Cloudflare's OpenAI-compatible endpoint accepts no image input for it: an image content part is rejected (400) and a top-level image is ignored ('There is no image'). The model reads images only through the native /ai/run prompt+image shape, which this OpenAI-compatible provider does not speak, so vision stays false here"},"@cf/mistral/mistral-7b-instruct-v0.2":{enumMember:"MISTRAL_7B_INSTRUCT_V0_2",contextWindow:32768,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Cloudflare answers 'No such model'"},"@cf/qwen/qwen1.5-14b-chat-awq":{enumMember:"QWEN_1P5_14B_CHAT_AWQ",contextWindow:7500,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Cloudflare reports it was deprecated on 2025-10-01"},"@cf/google/gemma-2b-it-lora":{enumMember:"GEMMA_2B_IT_LORA",contextWindow:4096,vision:!1,status:"production",description:"Gemma 2B IT (LoRA)"}},topModels:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/google/gemma-2b-it-lora"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid Cloudflare API key. Use a token with Workers AI Read+Write scope. Get one at https://dash.cloudflare.com/profile/api-tokens"}],setup:{url:"https://dash.cloudflare.com/profile/api-tokens",apiKeyFormat:null,billingPolicy:"free-tier",description:"API token (Workers AI Read+Write scope)",instructions:["1. Visit: https://dash.cloudflare.com/profile/api-tokens","2. Create a token with 'Workers AI: Read + Write' scope","3. Set {apiKeyEnvVar} in your .env file","4. Also set CLOUDFLARE_ACCOUNT_ID (find it in the dashboard URL or under 'Account ID')"]},evidence:{rosterVerified:{date:"2026-08-30",method:"real chat call per id against the live account"},liveMatrix:{date:"2026-09-02",result:"Live tool round-trip verified on @cf/meta/llama-3.1-8b-instruct-fast, both non-streaming and streaming, once messageContentFormat normalization was applied; before it the follow-up turn was rejected with HTTP 400 (content sent as array/null). Of the three ids that failed, only two are actually gone: mistral-7b-instruct-v0.2 ('No such model') and qwen1.5-14b-chat-awq ('deprecated on 2025-10-01'). llama-3.2-11b-vision-instruct is alive but gated behind a one-time Community License acceptance on the account, so it answers 403 and is left production with vision false rather than retired. Update 2026-09-02: the Community License was accepted on the account; plain chat on llama-3.2-11b-vision-instruct now returns 200 on both endpoints, and the native /ai/run prompt+image call describes a 64x64 test image correctly. The OpenAI-compatible endpoint still cannot carry an image (content-part array \u2192 400, top-level image ignored), so the vision flag remains false for this provider."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"},quirks:{messageContentFormat:"string"}}}}),$me,BTr=_({"src/lib/providers/catalog/crusoe.json"(){$me={$schema:"./provider-catalog.schema.json",id:"crusoe",displayName:"Crusoe",aliases:[],tier:2,wire:{baseURL:"https://api.inference.crusoecloud.com/v1"},models:{default:"deepseek-ai/DeepSeek-V4-Flash",fallbacks:["deepseek-ai/DeepSeek-V4-Pro","openai/gpt-oss-120b","zai/GLM-5.3","moonshotai/Kimi-K2.6","google/gemma-4-31b-it","nvidia/Nemotron-3-Nano-30B-A3B","nvidia/Nemotron-3-Super-120B-A12B","nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B","nvidia/nemotron-3.5-lightning-30b-a3b","qwen/Qwen3.8-27B","zai/GLM-5.3-Flash"],defaultContextWindow:128e3,defaultMaxOutputTokens:8192,catalog:{"deepseek-ai/DeepSeek-V4-Flash":{contextWindow:1e6,pricingPerMTok:{input:.14,output:.28,cachedInput:.03},vision:!1,status:"production",description:'NeuroLink default. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "deepseek-ai/DeepSeek-V4-Flash", PROVIDER column "DeepSeek", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "DeepSeek" and "V4 Flash", $0.14 under Input tokens, $0.28 under Output tokens, $0.03 under Cached tokens.'},"deepseek-ai/DeepSeek-V4-Pro":{contextWindow:1e6,pricingPerMTok:{input:1.74,output:3.48,cachedInput:.15},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "deepseek-ai/DeepSeek-V4-Pro", PROVIDER column "DeepSeek", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "DeepSeek" and "V4 Pro", $1.74 under Input tokens, $3.48 under Output tokens, $0.15 under Cached tokens.'},"openai/gpt-oss-120b":{contextWindow:128e3,pricingPerMTok:{input:.05,output:.2,cachedInput:.05},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "openai/gpt-oss-120b", PROVIDER column "OpenAI", TYPE column "instruct", CONTEXT LENGTH column "128k", recorded as 128,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GPT-OSS" and "120B", $0.05 under Input tokens, $0.20 under Output tokens, $0.05 under Cached tokens. Crusoe's developer hub Zed README (https://github.com/crusoecloud/crusoe-developer-hub/blob/main/integrations/zed/README.md, retrieved 2026-09-29) sets "tools": true and "images": false in this model id's entry, and its Notes section says the model supports reasoning_effort values of low, medium, and high.`},"zai/GLM-5.3":{contextWindow:1e6,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "zai/GLM-5.3", PROVIDER column "Z.ai", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GLM 5.3", $1.40 under Input tokens, $4.40 under Output tokens, $0.26 under Cached tokens.'},"moonshotai/Kimi-K2.6":{contextWindow:256e3,pricingPerMTok:{input:.7,output:3.5,cachedInput:.35},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "moonshotai/Kimi-K2.6", PROVIDER column "Moonshot", TYPE column "instruct", CONTEXT LENGTH column "256K", recorded as 256,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Kimi K2.6", $0.70 under Input tokens, $3.50 under Output tokens, $0.35 under Cached tokens. The vision field is true because a Crusoe blog post (https://www.crusoe.ai/resources/blog/430-tokens-per-second-optimizing-kimi-k2-6-and-k2-7-for-production, retrieved 2026-09-29) says "Kimi K2.6 is a native multimodal agentic model built for long-horizon coding, autonomous execution, tool use, and complex workflows." and the model card linked from this id's row on the Available models page (https://huggingface.co/moonshotai/Kimi-K2.6, retrieved 2026-09-29) says "K2.6 supports Image and Video input." No image request was sent to Crusoe's endpoint.`},"google/gemma-4-31b-it":{contextWindow:262e3,pricingPerMTok:{input:.14,output:.4,cachedInput:.14},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "google/gemma-4-31b-it", PROVIDER column "Google", TYPE column "instruct", CONTEXT LENGTH column "262k", recorded as 262,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Gemma 4" and "31B-it", $0.14 under Input tokens, $0.40 under Output tokens, $0.14 under Cached tokens. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/google/gemma-4-31B-it, retrieved 2026-09-29) says "Gemma 4 models are multimodal, handling text and image input (with audio supported on E2B, E4B, and 12B) and generating text output." No image request was sent to Crusoe's endpoint.`},"nvidia/Nemotron-3-Nano-30B-A3B":{contextWindow:261144,pricingPerMTok:{input:.05,output:.2,cachedInput:.03},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Nano-30B-A3B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Nano 30B A3B FP8", Context value "261,144". contextWindow records 261,144, the hub page's figure. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Nano" and "30B-A3B-FP8", $0.05 under Input tokens, $0.20 under Output tokens, $0.03 under Cached tokens.`},"nvidia/Nemotron-3-Super-120B-A12B":{contextWindow:261144,pricingPerMTok:{input:.3,output:2.4,cachedInput:.15},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Super-120B-A12B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Super 120B A12B FP8", Context value "261,144". contextWindow records 261,144, the hub page's figure. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Super" and "120B-A12B-FP8", $0.30 under Input tokens, $2.40 under Output tokens, $0.15 under Cached tokens.`},"nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B":{contextWindow:256e3,pricingPerMTok:{input:.3,output:1.83,cachedInput:.3},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Nano Omni 30B A3B Reasoning", Context value "256,000". Crusoe blog post (https://www.crusoe.ai/resources/blog/nvidia-nemotron-3-nano-omni-now-available, retrieved 2026-09-29): "a 256K-token context window". contextWindow records 256,000, the figure the hub page and the blog post print. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Nano Omni 30B A3B Reasoning" and "(Text, Image, Video)", $0.30 under Input tokens, $1.83 under Output tokens, $0.30 under Cached tokens. The vision field is true because the pricing table row headings for this model read "Nemotron 3 Nano Omni 30B A3B Reasoning" and "(Text, Image, Video)"; the price recorded is that row's.`},"nvidia/nemotron-3.5-lightning-30b-a3b":{contextWindow:1e6,pricingPerMTok:{input:.05,output:.2,cachedInput:.03},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/nemotron-3.5-lightning-30b-a3b", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3.5" and "Lightning", $0.05 under Input tokens, $0.20 under Output tokens, $0.03 under Cached tokens.'},"qwen/Qwen3.8-27B":{contextWindow:256e3,vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "qwen/Qwen3.8-27B", PROVIDER column "Qwen", TYPE column "instruct", CONTEXT LENGTH column "256k", recorded as 256,000. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/Qwen/Qwen3.8-27B, retrieved 2026-09-29) says "Native support for image and video understanding, from STEM diagrams and documents to hour-scale videos." No image request was sent to Crusoe's endpoint.`},"zai/GLM-5.3-Flash":{contextWindow:1e6,pricingPerMTok:{input:.15,output:.5,cachedInput:.03},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "zai/GLM-5.3-Flash", PROVIDER column "Z.ai", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GLM 5.3 Flash", $0.15 under Input tokens, $0.50 under Output tokens, $0.03 under Cached tokens. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/zai-org/GLM-5.3-Flash, retrieved 2026-09-29) says "the first natively multimodal model in the GLM-5 series", and the Z.ai docs page for the model (https://docs.z.ai/guides/llm/glm-5.3-flash, retrieved 2026-09-29), linked from that card, shows the value "Video / Image / Text / File" under the card title "Input Modality". No image request was sent to Crusoe's endpoint.`}},topModels:["deepseek-ai/DeepSeek-V4-Flash","deepseek-ai/DeepSeek-V4-Pro","openai/gpt-oss-120b","zai/GLM-5.3","moonshotai/Kimi-K2.6","google/gemma-4-31b-it","nvidia/Nemotron-3-Nano-30B-A3B","nvidia/Nemotron-3-Super-120B-A12B","nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B","nvidia/nemotron-3.5-lightning-30b-a3b","qwen/Qwen3.8-27B","zai/GLM-5.3-Flash"],visionModel:"nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:'Crusoe rejected the request with HTTP 401 (an unauthenticated GET of https://api.inference.crusoecloud.com/v1/models answers {"errors":["Authentication failed"]}). Check {apiKeyEnvVar}. Create a key: {setupUrl}'},{status:429,class:"rate-limit",message:'Crusoe returned HTTP 429 (the Serverless rate limits page, https://docs.crusoecloud.com/serverless-inference/rate-limits, describes it as "Your project exceeded its TPM or RPM limit for the model." and says "Both 429 and 503 responses are transient, so you can retry the request with exponential backoff rather than failing immediately.").'},{status:503,class:"provider",message:`Crusoe returned HTTP 503 (the Serverless rate limits page, https://docs.crusoecloud.com/serverless-inference/rate-limits, describes it as "Your request is within your limits, but the shared endpoint is experiencing unusually high load and can't accept it right now." and says "Both 429 and 503 responses are transient, so you can retry the request with exponential backoff rather than failing immediately.").`}],setup:{url:"https://console.crusoecloud.com/request-foundry",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:['1. Visit: https://console.crusoecloud.com/request-foundry (the "Create a Managed AI account \u2192" link on https://docs.crusoecloud.com/create-an-account, which says "Use Google or Github for the quickest signup.")',"2. Create an API key: the Getting Started page (https://docs.crusoecloud.com/quickstart/getting-started-with-serverless-inference) says to visit the Intelligence Foundry on the console, select Inference from the left nav, click Create API Key, optionally provide an alias and expiration date, then click Create to view and save your API key",'3. Billing as the vendor states it: the docs announcement bar (https://docs.crusoecloud.com/serverless-inference/overview) reads "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning"; the Create an account page says "To provision resources or use the managed inference service, you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed."; the Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits) lists default limits for "No payment method" and "Payment method added" accounts',"4. Set {apiKeyEnvVar} in your .env file"],description:`Docs-verified only: the vendor's GET https://api.inference.crusoecloud.com/v1/models needs a key (it answers HTTP 401 without one), so the twelve chat model ids come from the Available models page https://docs.crusoecloud.com/serverless-inference/available-models (retrieved 2026-09-29) and the roster has not been checked; the entry is not yet live-verified. The page lists thirteen models; nvidia/Nemotron-3-VoiceChat has TYPE speech-to-speech and is not in this catalog. OpenAI-compatible endpoint at https://api.inference.crusoecloud.com/v1: the Available models page says "You can use the OpenAI-API compatible endpoint at api.inference.crusoecloud.com" and the Getting Started page (https://docs.crusoecloud.com/quickstart/getting-started-with-serverless-inference) says "Crusoe's Serverless Inference Service provides OpenAI compatible endpoints" and shows client.chat.completions.create with base_url="https://api.inference.crusoecloud.com/v1". Unauthenticated GETs made 2026-09-29: /models and /chat/completions each answered HTTP 401 with the body {"errors":["Authentication failed"]}; errorRules carry that 401 and the 429 and 503 statuses described on the Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits). models.defaultContextWindow (128000) and models.defaultMaxOutputTokens (8192) are conservative placeholders for model ids outside the catalog; the vendor does not publish a general default. Per-model contextWindow values are the decimal forms of the labels the Available models page prints ("1M", "262k", "256K", "128k", "256k"), except nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B, nvidia/Nemotron-3-Nano-30B-A3B and nvidia/Nemotron-3-Super-120B-A12B, whose descriptions give the figure from other Crusoe pages that is recorded instead; no maxOutputTokens is recorded. The vision field is a required boolean: true is recorded on the ids whose descriptions cite a source for image input, and false is a placeholder on the other ids except openai/gpt-oss-120b, where the Zed README sets "images": false; no image request was sent. billingPolicy holds free-with-card: the docs announcement bar (https://docs.crusoecloud.com/serverless-inference/overview) reads "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning" and the Create an account page (https://docs.crusoecloud.com/create-an-account) says "you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed." The Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits) also lists default limits for "No payment method" accounts. billingPolicy is a required enum (free-tier, free-with-card, no-free-tier) with no value for that difference; free-with-card is recorded.`},evidence:{rosterVerified:{date:"2026-09-29",status:401,method:"docs-only \u2014 unauthenticated GET https://api.inference.crusoecloud.com/v1/models answers 401 without a key, so model ids are taken from https://docs.crusoecloud.com/serverless-inference/available-models (retrieved 2026-09-29); roster not verified"},authProbe:{date:"2026-09-29",status:401,method:'unauthenticated GET https://api.inference.crusoecloud.com/v1/models and GET https://api.inference.crusoecloud.com/v1/chat/completions, no Authorization header \u2014 each HTTP 401, content-type application/json, body {"errors":["Authentication failed"]}; the body has no code field, so none is recorded; credential-free, no key used'},billingProbe:{date:"2026-09-29",method:'public pages https://docs.crusoecloud.com/serverless-inference/overview (announcement bar "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning"), https://docs.crusoecloud.com/create-an-account ("you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed.") and https://docs.crusoecloud.com/serverless-inference/rate-limits (default limits for "No payment method" and "Payment method added" accounts); credential-free, no signup performed'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Ume,zTr=_({"src/lib/providers/catalog/deepinfra.json"(){Ume={$schema:"./provider-catalog.schema.json",id:"deepinfra",displayName:"DeepInfra",aliases:[],tier:2,wire:{baseURL:"https://api.deepinfra.com/v1/openai"},models:{default:"deepseek-ai/DeepSeek-V4-Flash-0731",fallbacks:["deepseek-ai/DeepSeek-V4-Pro-0813","openai/gpt-oss-120b","moonshotai/Kimi-K3","zai-org/GLM-5.2","anthropic/claude-haiku-4-5","Qwen/Qwen3-14B","meta-llama/Llama-4-Scout-17B-16E-Instruct"],defaultContextWindow:128e3,defaultMaxOutputTokens:16384,catalog:{"deepseek-ai/DeepSeek-V4-Flash-0731":{contextWindow:1048576,pricingPerMTok:{input:.06,output:.18,cachedInput:.015},vision:!1,status:"production",description:"Recommended default \u2014 DeepInfra's own tool-calling documentation (docs.deepinfra.com/chat/tool-calling, retrieved 2026-09-28) uses this exact model in its function-calling example (a get_current_weather tool_call round-trip), and its reasoning documentation (docs.deepinfra.com/chat/reasoning) names it among the models that support the reasoning_effort parameter (none/low/medium/high). Live on the unauthenticated GET /v1/openai/models roster (2026-09-28, 187 models) with context_length/max_tokens both 1,048,576 and pricing $0.06/$0.18 per MTok input/output ($0.015 cached-input read). No vision/vlm tag on the live roster. models.defaultMaxOutputTokens (16,384) follows the vendor's documented general cap rather than this per-model figure \u2014 see models-level note."},"deepseek-ai/DeepSeek-V4-Pro-0813":{contextWindow:1048576,pricingPerMTok:{input:1.3,output:2.6,cachedInput:.1},vision:!1,status:"production",description:"DeepSeek's larger Pro variant; roster-listed only (not itself named in a DeepInfra docs example) via the unauthenticated GET /v1/openai/models (2026-09-28) \u2014 context 1,048,576, $1.30/$2.60 per MTok input/output, $0.10 cached-input read. Fallback."},"openai/gpt-oss-120b":{contextWindow:131072,pricingPerMTok:{input:.037,output:.17},vision:!1,status:"production",description:"OpenAI's open-weight 120B model hosted on DeepInfra; tagged reasoning + reasoning_effort on the live roster GET (2026-09-28) \u2014 context 131,072, $0.037/$0.17 per MTok input/output. Not itself named in DeepInfra's docs examples; fallback."},"moonshotai/Kimi-K3":{contextWindow:1048576,pricingPerMTok:{input:2.85,output:14.25,cachedInput:.285},vision:!0,status:"production",description:`Named in DeepInfra's tool-calling documentation as "the current Kimi model in our catalog" (docs.deepinfra.com/chat/tool-calling). Tagged vlm + vision on the live roster GET (2026-09-28), hence vision: true here (not independently probed for a working vision reply) \u2014 context 1,048,576, $2.85/$14.25 per MTok input/output, $0.285 cached-input read. Fallback.`},"zai-org/GLM-5.2":{contextWindow:1048576,pricingPerMTok:{input:.75,output:2.4,cachedInput:.14},vision:!1,status:"production",description:"Listed by DeepInfra's reasoning documentation (docs.deepinfra.com/chat/reasoning) as one of the models supporting reasoning_effort. Live roster GET (2026-09-28) \u2014 context 1,048,576, $0.75/$2.40 per MTok input/output, $0.14 cached-input read. Fallback."},"anthropic/claude-haiku-4-5":{contextWindow:2e5,pricingPerMTok:{input:1,output:5},vision:!0,status:"production",description:"Anthropic's Claude Haiku 4.5 as served through DeepInfra's model marketplace (owned_by: deepinfra on the live roster). Tagged vlm + vision + reasoning_effort + reasoning on the GET /v1/openai/models roster (2026-09-28), hence vision: true here (not independently probed) \u2014 context 200,000, $1.00/$5.00 per MTok input/output. Not itself named in DeepInfra's docs examples; fallback."},"Qwen/Qwen3-14B":{contextWindow:40960,pricingPerMTok:{input:.12,output:.24},vision:!1,status:"production",description:"Smaller Qwen reasoning-tagged model; roster-listed only via the unauthenticated GET /v1/openai/models (2026-09-28) \u2014 context 40,960, $0.12/$0.24 per MTok input/output. Fallback."},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{contextWindow:327680,pricingPerMTok:{input:.1,output:.3},vision:!0,status:"production",description:"Meta Llama 4 Scout; tagged vlm + vision on the live roster GET (2026-09-28), hence vision: true here (not independently probed) \u2014 context 327,680, $0.10/$0.30 per MTok input/output. Roster-listed only; fallback."}},topModels:["deepseek-ai/DeepSeek-V4-Flash-0731","deepseek-ai/DeepSeek-V4-Pro-0813","openai/gpt-oss-120b","moonshotai/Kimi-K3","zai-org/GLM-5.2","anthropic/claude-haiku-4-5","Qwen/Qwen3-14B","meta-llama/Llama-4-Scout-17B-16E-Instruct"],visionModel:"meta-llama/Llama-4-Scout-17B-16E-Instruct"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[],setup:{url:"https://deepinfra.com/dash/api_keys",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://deepinfra.com/dash/api_keys and sign in (Google, GitHub, email & password, or Corporate SSO \u2014 see https://docs.deepinfra.com/account/signing-in)","2. Create an API key and copy it when it is shown","3. No free tier: DeepInfra requires a card or pre-payment before any request succeeds (https://deepinfra.com/pricing)","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.deepinfra.com/v1/openai (docs.deepinfra.com/chat/overview), serving 180+ open-weight and proprietary chat models. No documented auth-failure error body was found on the docs site or the public OpenAPI spec (api.deepinfra.com/openapi.json only documents 200/422 for chat/completions) without a live credentialed probe, so errorRules is empty pending live verification."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.deepinfra.com/v1/openai/models \u2014 187 models; credential-free, no key used",status:200},billingProbe:{date:"2026-09-28",method:`public page https://deepinfra.com/pricing \u2014 "You have to add a card or pre-pay or you won't be able to use our services"; no free tier documented; credential-free`},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Bme,GTr=_({"src/lib/providers/catalog/deepseek.json"(){Bme={$schema:"./provider-catalog.schema.json",id:"deepseek",displayName:"DeepSeek",enumTypeName:"DeepSeekModels",aliases:["ds"],tier:2,wire:{baseURL:"https://api.deepseek.com"},models:{default:"deepseek-chat",fallbacks:["deepseek-chat","deepseek-reasoner","deepseek-v4-pro"],defaultContextWindow:1048576,defaultMaxOutputTokens:393216,catalog:{"deepseek-chat":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"Alias of deepseek-flash with thinking off (DeepSeek-V4.1-Flash)"},"deepseek-reasoner":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"Alias of deepseek-flash with thinking on (DeepSeek-V4.1-Flash)"},"deepseek-flash":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"DeepSeek-V4.1-Flash \u2014 thinking on by default, image input"},"deepseek-v4-pro":{contextWindow:1048576,maxOutputTokens:393216,vision:!1,status:"production",description:"DeepSeek-V4-Pro-0813 \u2014 thinking on by default, text only"}}},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!0},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid DeepSeek API key. Please check your {apiKeyEnvVar} environment variable."},{status:402,pattern:"Insufficient Balance|insufficient_balance",class:"provider",message:"DeepSeek account has insufficient balance. Top up at https://platform.deepseek.com/usage"},{pattern:"supported API model names|model_not_found",class:"invalid-model",message:"DeepSeek model '{model}' not found. Use 'deepseek-flash' or 'deepseek-v4-pro'."}],quirks:{responseFormatDowngrade:"json-schema-to-json-object",replayReasoningContent:!0},setup:{url:"https://platform.deepseek.com/api_keys",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://platform.deepseek.com/api_keys","2. Create or sign in to your DeepSeek account","3. Generate a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-24",method:"Live against api.deepseek.com on 2026-09-24. GET /models lists only deepseek-flash and deepseek-v4-pro, with context_window 1048576 and max_output_tokens 393216 (the pricing page's 1M / 384K). deepseek-chat and deepseek-reasoner still answer 200 but report model deepseek-flash \u2014 deepseek-chat without reasoning_content, deepseek-reasoner with it \u2014 so both stay production as aliases rather than being marked retired. Vision was probed with a solid-blue PNG: deepseek-flash, deepseek-chat and deepseek-reasoner all named the colour; deepseek-v4-pro answered 200 but described a scene that was not in the image, so it keeps vision false, matching the pricing page. An unknown model id returns 400 'The supported API model names are \u2026' with code invalid_request_error \u2014 never 'model_not_found' \u2014 so the invalid-model rule now matches that text. tools plus response_format json_object in one request returned 200 with tool_calls, confirming structuredOutputWithTools. billingPolicy is not re-verified."},liveMatrix:null,addedInPR:"TBD \u2014 integration-tested in a worktree before a PR was opened"}}}}),zme,qTr=_({"src/lib/providers/catalog/empiriolabs.json"(){zme={$schema:"./provider-catalog.schema.json",id:"empiriolabs",displayName:"EmpirioLabs AI",aliases:[],tier:2,wire:{baseURL:"https://api.empiriolabs.ai/v1"},models:{default:"glm-5-3",fallbacks:["glm-5-3-flash","glm-5-2","kimi-k3","qwen3-7-max","minimax-m2-7-highspeed"],defaultContextWindow:1e6,defaultMaxOutputTokens:131072,catalog:{"glm-5-3":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:1.4},vision:!1,status:"production",description:"Recommended \u2014 EmpirioLabs' own roster marks this is_featured=true (GET /v1/models, 2026-09-28). Zhipu GLM-5.3: reasoning model with native function calling and web search, response_format json_object structured output, 1M token context, 131,072 token max output \u2014 all read directly from the unauthenticated GET https://api.empiriolabs.ai/v1/models. Pricing from the same roster: $1.40 / $4.40 per MTok input/output, $1.40 per MTok cached input. Onboarded credential-free \u2014 no live chat, streaming or tool-call request was made, so wire behavior (SSE framing, a real tool_call round-trip, image input) is roster- and docs-verified only, not live-probed; see evidence.liveMatrix (null)."},"glm-5-3-flash":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.075,output:.25,cachedInput:.075},vision:!0,status:"production",description:"Zhipu GLM-5.3 Flash \u2014 lighter/cheaper sibling of the default. The roster marks capabilities.images=true (also video_understanding and document_understanding features), function calling and json_object structured output. 1M context, 131,072 max output. Pricing: $0.075 / $0.25 per MTok input/output, $0.075 cached. Roster-listed only, not capability-probed (credential-free onboarding \u2014 no live request made); fallback."},"glm-5-2":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:1.4},vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 prior GLM generation; reasoning, function calling, web search; json_object structured output; 1M context, 131,072 max output. Pricing $1.40 / $4.40 per MTok. Roster-listed only, not capability-probed; fallback."},"kimi-k3":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:3,output:15,cachedInput:3},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 reasoning, function calling, multimodal (capabilities.images=true on the roster), agentic coding and web search; strict json_schema structured output (a stronger guarantee than glm-5-3's json_object). 1M context, 131,072 max output. Pricing $3 / $15 per MTok. Roster-listed only, not capability-probed; fallback."},"qwen3-7-max":{contextWindow:1e6,maxOutputTokens:65536,pricingPerMTok:{input:2.5,output:7.5,cachedInput:2.5},vision:!1,status:"production",description:"Alibaba Qwen3.7 Max \u2014 flagship text reasoning model with code_interpreter, function calling and agentic coding; strict json_schema structured output. 1M context, 65,536 max output (lower than the GLM family's 131,072 \u2014 read from the roster, not assumed). Pricing $2.50 / $7.50 per MTok. Roster-listed only, not capability-probed; fallback."},"minimax-m2-7-highspeed":{contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:.3,output:1.2,cachedInput:.03},vision:!1,status:"production",description:"MiniMax M2.7 Highspeed \u2014 reasoning and function calling only (no vision or web_search declared on the roster); json_object structured output. Smallest context in this curated set (200K, 32,768 max output) \u2014 kept as the lightest/cheapest fallback. Pricing $0.30 / $1.20 per MTok, $0.03 cached. Roster-listed only, not capability-probed; fallback."}},topModels:["glm-5-3","glm-5-3-flash","glm-5-2","kimi-k3","qwen3-7-max","minimax-m2-7-highspeed"],visionModel:"glm-5-3-flash"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid EmpirioLabs API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"}],setup:{url:"https://platform.empiriolabs.ai",apiKeyFormat:"^sk-empiriolabs-",billingPolicy:"free-tier",instructions:["1. Visit: https://platform.empiriolabs.ai and create an account","2. Create an API key from the dashboard (keys use the sk-empiriolabs- prefix, up to 50 per account)","3. Selected models (e.g. GLM 4.7 Flash) run at $0 cost; other models draw from prepaid credits topped up via the dashboard Billing page \u2014 confirm current pricing before heavy use","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.empiriolabs.ai/v1 (docs.empiriolabs.ai confirms it accepts the OpenAI Chat Completions request format). Hosts a large catalog \u2014 217 models on an unauthenticated GET /v1/models as of 2026-09-28 \u2014 spanning text, vision, audio, video, image and 3D generation; this catalog entry covers only a curated set of text/chat-completions-capable models. New accounts default to 50 RPM / 2,000,000 TPM."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.empiriolabs.ai/v1/models \u2014 217 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Gme,jTr=_({"src/lib/providers/catalog/featherless-ai.json"(){Gme={$schema:"./provider-catalog.schema.json",id:"featherless-ai",displayName:"Featherless AI",aliases:["featherless"],tier:2,wire:{baseURL:"https://api.featherless.ai/v1"},models:{default:"unsloth/Llama-3.3-70B-Instruct",fallbacks:["meta-llama/Llama-3.3-70B-Instruct","Sao10K/L3.3-70B-Euryale-v2.3","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","KaraKaraWitch/Llama-MiraiFanfare-3.3-70B","huihui-ai/Llama-3.3-70B-Instruct-abliterated","recursal/QRWKV6-32B-Instruct-Preview-v0.1","RWKV/v6-Finch-14B-HF","RWKV/EagleX-7B-Chat-V0.5-pth","recursal/EagleX_1-7T_Chat","recursal/EagleX_1-7T"],defaultContextWindow:32768,defaultMaxOutputTokens:4096,catalog:{"unsloth/Llama-3.3-70B-Instruct":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"Recommended default \u2014 an ungated community re-upload of Meta's Llama 3.3 70B Instruct. Chosen over the official meta-llama/Llama-3.3-70B-Instruct entry because that one is Hugging-Face-gated on Featherless (HTTP 403 'Unauthorized... the model is gated and you need to agree to the model's license' per https://featherless.ai/docs/api-reference-error-codes, requiring a manual 'Unlock Model' click in the account UI before first use \u2014 not credential-free-verifiable and not a good zero-touch SDK default). contextWindow and pricing are the live values from GET https://api.featherless.ai/v1/models (2026-09-28): context_length=32768, pricing.input/output already expressed as $/MTok. The vendor's per-model 'features' flag on this id reports tool_use:true, but Featherless's own Tool Calling guide (https://featherless.ai/docs/tool-calling) names only the moonshotai/Kimi-K2-Instruct and Qwen 3 model families as natively supported and says other models need a prompting workaround \u2014 so capabilities.tools is declared model-dependent at the provider level rather than assumed true for this specific id. No response_format/JSON-mode, streaming (SSE/stream:true), or combined tools+schema behavior is documented anywhere in the Featherless docs checked (Overview, API overview and common options, Completions, Quickstart, API examples, Tool Calling, Chat template kwargs, Models & Model Compatibility) \u2014 see evidence for the full list of pages checked."},"meta-llama/Llama-3.3-70B-Instruct":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"Meta's official Llama 3.3 70B Instruct weights. The live roster (GET /v1/models, 2026-09-28) marks this id is_gated:true; Featherless's error-codes page documents that a gated model 403s ('Unauthorized... need to agree to the model's license') until the account clicks 'Unlock Model' on the model's page \u2014 kept as a fallback for roster completeness, not the default, for that reason. features.tool_use:true on the live roster entry."},"Sao10K/L3.3-70B-Euryale-v2.3":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"Sao10K's Euryale v2.3, a Llama-3.3-70B roleplay/long-form-writing fine-tune \u2014 one of the community model families Featherless's own site advertises under its 'LLMs for Roleplay' catalog filter. Not Hugging-Face-gated. Roster-listed only (GET /v1/models, 2026-09-28); not itself capability-probed. features.tool_use:true on the live roster entry, but see the default model's note on capabilities.tools being provider-level model-dependent."},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"EVA-UNIT-01's EVA-LLaMA 3.33 70B v0.0, a creative-writing/roleplay-oriented Llama-3.3-70B fine-tune. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"EVA-UNIT-01's EVA-LLaMA 3.33 70B v0.1 \u2014 later revision of v0.0, same roleplay/creative-writing fine-tune line. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"KaraKaraWitch/Llama-MiraiFanfare-3.3-70B":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"KaraKaraWitch's Llama MiraiFanfare 3.3 70B, a community Llama-3.3-70B fine-tune. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"huihui-ai's 'abliterated' (safety-refusal-ablated) Llama 3.3 70B Instruct \u2014 present on Featherless's own live roster and listed under its 'Abliterated Models' catalog filter. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"recursal/QRWKV6-32B-Instruct-Preview-v0.1":{contextWindow:32768,pricingPerMTok:{input:.265,output:.65},vision:!1,status:"production",description:"Recursal's QRWKV6 32B Instruct Preview \u2014 a non-transformer (RWKV-hybrid) architecture explicitly called out on Featherless's Models & Model Compatibility page as one of the few model classes served at a 32k context tier. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"RWKV/v6-Finch-14B-HF":{contextWindow:16384,pricingPerMTok:{input:.10775,output:.28},vision:!1,status:"production",description:"RWKV v6 'Finch' 14B \u2014 a non-transformer RWKV architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"RWKV/EagleX-7B-Chat-V0.5-pth":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"RWKV EagleX 7B Chat, an early RWKV5-architecture chat checkpoint. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"recursal/EagleX_1-7T_Chat":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"Recursal's EagleX 1.7T (chat-tuned), an RWKV5-architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"recursal/EagleX_1-7T":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"Recursal's EagleX 1.7T base (non-chat-tuned) checkpoint, an RWKV5-architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."}},topModels:["unsloth/Llama-3.3-70B-Instruct","meta-llama/Llama-3.3-70B-Instruct","Sao10K/L3.3-70B-Euryale-v2.3","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","KaraKaraWitch/Llama-MiraiFanfare-3.3-70B","huihui-ai/Llama-3.3-70B-Instruct-abliterated","recursal/QRWKV6-32B-Instruct-Preview-v0.1","RWKV/v6-Finch-14B-HF","RWKV/EagleX-7B-Chat-V0.5-pth","recursal/EagleX_1-7T_Chat","recursal/EagleX_1-7T"]},capabilities:{text:!0,streaming:!1,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid Featherless API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:403,class:"invalid-model",message:`Featherless model '{model}' is gated \u2014 sign in at featherless.ai, open the model's page and click "Unlock Model" to accept its license, or pick a non-gated model. See {setupUrl}`}],setup:{url:"https://featherless.ai/register",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://featherless.ai/register and create an account (or https://featherless.ai/login if you already have one)","2. Subscribe to a plan \u2014 Chat ($25/mo, unlimited tokens, 32K context) or Developer ($50/mo in credits, billed per token, up to 256K context); Featherless has no free or keyless tier","3. Generate an API key from the API keys section of your account","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.featherless.ai/v1 ('designed to be API compatible with OpenAI' per https://featherless.ai/docs/api-overview-and-common-options), serving a roster of 22,000+ community and open-weight models \u2014 many roleplay, uncensored and abliterated fine-tunes alongside mainline Llama/Qwen/DeepSeek-derived checkpoints. Some models are Hugging-Face-gated and 403 until manually unlocked in the account UI. No free tier: plans start at $25/mo."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.featherless.ai/v1/models \u2014 22060 models; credential-free, no key used",status:200},billingProbe:{date:"2026-09-28",method:"unauthenticated GET https://featherless.ai/pricing \u2014 no free tier mentioned anywhere on the page; plans are Chat $25/mo, Developer $50/mo in credits (billed per token), Business custom; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),qme,VTr=_({"src/lib/providers/catalog/fireworks.json"(){qme={$schema:"./provider-catalog.schema.json",id:"fireworks",displayName:"Fireworks AI",aliases:[],tier:2,wire:{baseURL:"https://api.fireworks.ai/inference/v1"},models:{default:"accounts/fireworks/models/kimi-k3",fallbackModelName:"accounts/fireworks/models/gpt-oss-120b",fallbacks:["accounts/fireworks/models/kimi-k3","accounts/fireworks/models/gpt-oss-120b","accounts/fireworks/models/qwen3p8-max","accounts/fireworks/models/glm-5p3"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"accounts/fireworks/models/kimi-k2p6":{enumMember:"KIMI_K2P6",vision:!1,status:"retired",description:"Retired 2026-09 \u2014 still on the Fireworks roster, but a real chat call returns 404 'not deployed' (since the 2026-09-26 nightly)"},"accounts/fireworks/models/gpt-oss-120b":{enumMember:"GPT_OSS_120B",vision:!1,status:"production",description:"GPT-OSS 120B \u2014 Apache-2.0 OpenAI weights"},"accounts/fireworks/models/kimi-k3":{enumMember:"KIMI_K3",vision:!0,status:"production",description:"Recommended - Kimi K3, newest Moonshot generation; vision-capable"},"accounts/fireworks/models/qwen3p8-max":{enumMember:"QWEN3P8_MAX",vision:!0,status:"production",description:"Qwen 3.8 Max \u2014 vision-capable"},"accounts/fireworks/models/glm-5p3":{enumMember:"GLM_5P3",vision:!1,status:"production",description:"GLM 5.3 \u2014 Zhipu flagship"},"accounts/fireworks/models/minimax-m3":{enumMember:"MINIMAX_M3",vision:!1,status:"production",description:"MiniMax M3"},"accounts/fireworks/models/deepseek-v4-flash-0731":{enumMember:"DEEPSEEK_V4_FLASH_0731",vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 low-latency DeepSeek"},"accounts/fireworks/models/deepseek-v4-pro":{enumMember:"DEEPSEEK_V4_PRO",vision:!1,status:"retired",description:"Retired 2026-08 as a usable id \u2014 still on the Fireworks roster but never answers: a real chat call hangs past 120s on this account"},"accounts/fireworks/models/glm-5p1":{enumMember:"GLM_5P1",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/glm-5":{enumMember:"GLM_5",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/kimi-k2p5":{enumMember:"KIMI_K2P5",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/llama-v3p2-90b-vision-instruct":{enumMember:"LLAMA_V3P2_90B_VISION_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/llama-v3p2-11b-vision-instruct":{enumMember:"LLAMA_V3P2_11B_VISION_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/phi-3-vision-128k-instruct":{enumMember:"PHI_3_VISION_128K_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"}},topModels:["accounts/fireworks/models/kimi-k3","accounts/fireworks/models/gpt-oss-120b","accounts/fireworks/models/qwen3p8-max"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid Fireworks API key. Get one at https://fireworks.ai/account/api-keys"}],setup:{url:"https://fireworks.ai/account/api-keys",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:["1. Visit: https://fireworks.ai/account/api-keys","2. Sign in to your Fireworks AI account","3. Create a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-28",method:"GET /models against the live account, cross-checked with a real chat call per id"},liveMatrix:{date:"2026-09-28",result:"kimi-k2p6 is still listed on /models but a real chat call now returns 404 'not deployed', which failed the nightly model-liveness gate from 2026-09-26 and sent the matrix vision test down the text-only fallback. kimi-k3 answers a text call and a call carrying a PNG with 200, so it becomes the default; gpt-oss-120b, qwen3p8-max and glm-5p3 also answer text calls. Earlier (2026-08-30): deepseek-v4-pro was listed but hung past 120s, six ids returned 404 'not deployed', and glm-5p3 answers 'does not support image inputs'."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"}}}}),jme,HTr=_({"src/lib/providers/catalog/friendli.json"(){jme={$schema:"./provider-catalog.schema.json",id:"friendli",displayName:"FriendliAI",aliases:[],tier:2,wire:{baseURL:"https://api.friendli.ai/serverless/v1"},models:{default:"zai-org/GLM-5.3",fallbacks:["zai-org/GLM-5.3","zai-org/GLM-5.3-Flash","zai-org/GLM-5.2","zai-org/GLM-5.1","google/gemma-4-31B-it","deepseek-ai/DeepSeek-V3.2","MiniMaxAI/MiniMax-M2.5"],defaultContextWindow:1048576,defaultMaxOutputTokens:131072,catalog:{"zai-org/GLM-5.3":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:"Recommended - Zhipu's flagship GLM-5.3, the only model in this roster that was live capability-probed end to end: a real structured tool call (finish_reason=tool_calls, 9 tool_calls deltas under streaming), SSE streaming (62 events, terminal [DONE]), and json_object structured output. A heavy internal reasoner exposed via reasoning/reasoning_content \u2014 at a small max_tokens budget the whole completion is spent on unfinished reasoning before any visible content, so give it a generous max_tokens. Rejects image/video input and rejects tools+response_format together, both HTTP 422 (see capabilities.structuredOutputWithTools). maxOutputTokens is the documented per-request output ceiling from https://friendli.ai/docs/examples/models/zai-glm-5-3/overview.md (retrieved 2026-09-09) \u2014 131,072 tokens, distinct from the 1,048,576-token context window; the authenticated roster's max_completion_tokens field reports 1048576 (equal to context) but that is not treated as the output cap. Pricing per the same page: $1.40 / $4.40 per MTok input/output, $0.26 per MTok cached input."},"zai-org/GLM-5.3-Flash":{vision:!1,status:"production",description:"Zhipu GLM-5.3 Flash \u2014 lighter/faster sibling of the default; present on the live roster (GET /serverless/v1/models, 200) but not itself capability-probed under the tight rate limit; fallback."},"zai-org/GLM-5.2":{vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 prior GLM generation; roster-listed only, not capability-probed; fallback."},"zai-org/GLM-5.1":{vision:!1,status:"production",description:"Zhipu GLM-5.1 \u2014 prior GLM generation; roster-listed only, not capability-probed; fallback."},"google/gemma-4-31B-it":{vision:!1,status:"production",description:"Google Gemma 4 31B instruct-tuned; roster-listed only, not capability-probed; fallback."},"deepseek-ai/DeepSeek-V3.2":{vision:!1,status:"production",description:"DeepSeek V3.2; roster-listed only, not capability-probed; fallback."},"MiniMaxAI/MiniMax-M2.5":{vision:!1,status:"production",description:"MiniMax M2.5; roster-listed only, not capability-probed; fallback."}},topModels:["zai-org/GLM-5.3","zai-org/GLM-5.3-Flash","zai-org/GLM-5.2","zai-org/GLM-5.1","google/gemma-4-31B-it","deepseek-ai/DeepSeek-V3.2","MiniMaxAI/MiniMax-M2.5"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Unauthorized|valid credential",class:"authentication",message:"Invalid Friendli API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:404,pattern:`\\bModel\\s+['"][^'"\\r\\n]+['"]\\s+not\\s+found\\b`,class:"invalid-model",message:"Friendli model '{model}' not found. Pick a current model from the authenticated /serverless/v1/models roster or {setupUrl}"}],setup:{url:"https://suite.friendli.ai/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://suite.friendli.ai/ and sign in","2. Create a Personal Access Token for the serverless endpoints","3. New accounts start with trial credit; confirm current billing terms in the console before heavy use","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.friendli.ai/serverless/v1, serving a small zai-org GLM-family roster plus a few third-party models. Rate limits are tight \u2014 pace requests at least 20 seconds apart."},evidence:{rosterVerified:{date:"2026-09-06",method:"authenticated GET /serverless/v1/models",status:200},authProbe:{date:"2026-09-06",method:"POST /chat/completions with an invalid API key",status:401},liveMatrix:{date:"2026-09-06",result:`Probed against the default model, zai-org/GLM-5.3, via https://api.friendli.ai/serverless/v1. The first probe run used a 2s cadence, tripped Friendli's rate limit (12/16 cases 429) and is discarded entirely; this result is from a slower-paced re-run plus targeted single-call re-probes, each still hitting 429 occasionally even at ~25s spacing \u2014 Friendli's rate limits are tight, so any future live check needs generous pacing (20s+) and retry. Roster: GET /serverless/v1/models returns 200 with exactly 7 ids, all zai-org GLM family plus google/gemma-4-31B-it, deepseek-ai/DeepSeek-V3.2 and MiniMaxAI/MiniMax-M2.5 \u2014 models.fallbacks lists all 7. Wire mechanics on GLM-5.3: chat, system role, array content parts (message content IS accepted as a parts array, so no messageContentFormat quirk is declared), sampling params and max_completion_tokens all 200. Streaming: SSE, 200, 62 events, terminal [DONE] present \u2014 contentDeltas were 0 only because GLM-5.3 is a heavy reasoner that spent the small test budget entirely on reasoning/reasoning_content fields, not because streaming is broken. Tool calling: a real structured tool_call (get_time, tz argument parsed, finish_reason=tool_calls) on the first turn, a null-content assistant tool_calls turn accepted on replay, and 9 tool_calls deltas surfacing mid-SSE-stream \u2014 tools and toolsWithStreaming true; tool_choice is tolerated even with no tools declared. response_format json_object returns 200 cleanly \u2014 structuredOutput true. response_format json_schema also returns 200, but at the tested token budget the content is unfinished reasoning text rather than schema-conformant JSON \u2014 same reasoning-budget effect as above; NeuroLink's coerceJsonToSchema repair layer is the intended safety net. Sending tools and a JSON schema together in the same request is a genuine, hard rejection: HTTP 422 'The 'response_format' field cannot be set when tools are specified' \u2014 the same class of vendor exclusivity NeuroLink already handles generically for Groq via isToolsSchemaConflictError (pattern-matches the response_format+tool wording in the thrown error and retries the call without response_format), so no provider-specific quirk was added \u2014 structuredOutputWithTools is declared false. Vision: a real image part returns HTTP 422 'This model does not support image/video inputs.' \u2014 genuinely unsupported, not a rate limit; no model in this roster is marked vision:true and models.visionModel is left unset. Error shapes: bad key -> 401 {"detail":"Unauthorized. Please provide a valid credential."}; bad model -> 404 {"detail":"Model '<id>' not found."}. Only zai-org/GLM-5.3 (the declared default) was capability-probed end to end under the account's tight rate limit; the other 6 roster ids are roster-verified by id only, matching the account's usable request budget for this pass.`},addedInPR:"https://github.com/juspay/neurolink/pull/1657"}}}}),Vme,WTr=_({"src/lib/providers/catalog/gmicloud.json"(){Vme={$schema:"./provider-catalog.schema.json",id:"gmicloud",displayName:"GMI Cloud",aliases:["gmi-cloud"],tier:2,wire:{baseURL:"https://api.gmi-serving.com/v1"},models:{default:"MiniMaxAI/MiniMax-M3",fallbacks:["MiniMaxAI/MiniMax-M3"],defaultContextWindow:1048576,defaultMaxOutputTokens:524288,catalog:{"MiniMaxAI/MiniMax-M3":{contextWindow:1048576,maxOutputTokens:524288,vision:!1,status:"production",description:"MiniMaxAI/MiniMax-M3 \u2014 live GMI Cloud-probed model"}},topModels:["MiniMaxAI/MiniMax-M3"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[],setup:{url:"https://console.gmicloud.ai",apiKeyFormat:"^eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$",billingPolicy:"free-tier",instructions:["1. Visit: https://console.gmicloud.ai","2. Sign in and select the Inference service","3. Create an API key; check Console \u2192 Inference \u2192 Model Hub for current model pricing","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-03",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-03",status:401},liveMatrix:{date:"2026-09-03",result:"MiniMax-M3 accepted max_completion_tokens=524288 and rejected 1048576 with an explicit 524288 limit. Structured output: the endpoint ignores response_format (json_schema and json_object both return prose with no prompt hint; raw fetch, 2026-09-03), so the SDK's structured-output fallback re-asks with the schema spelled out in the system prompt and coerces the reply \u2014 generate({ schema }) returned a schema-valid structuredData 3/3 in the prompt-fallback experiment and again in the final live proof through dist/index.js. structuredOutput and structuredOutputWithTools are declared true on that basis."},addedInPR:"pending"}}}}),Hme,KTr=_({"src/lib/providers/catalog/groq.json"(){Hme={$schema:"./provider-catalog.schema.json",id:"groq",displayName:"Groq",aliases:[],tier:2,wire:{baseURL:"https://api.groq.com/openai/v1"},models:{default:"openai/gpt-oss-120b",fallbacks:["openai/gpt-oss-120b","openai/gpt-oss-20b","qwen/qwen3.8-27b","groq/compound"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"openai/gpt-oss-120b":{enumMember:"GPT_OSS_120B",contextWindow:131072,vision:!1,status:"production",description:"Recommended - GPT-OSS 120B, Groq's flagship open model"},"openai/gpt-oss-20b":{enumMember:"GPT_OSS_20B",contextWindow:131072,vision:!1,status:"production",description:"GPT-OSS 20B \u2014 lower latency, smaller model"},"qwen/qwen3.8-27b":{enumMember:"QWEN_3_8_27B",contextWindow:131072,vision:!0,status:"production",description:"Qwen 3.8 27B \u2014 Groq's only vision-capable model"},"qwen/qwen3.6-27b":{enumMember:"QWEN_3_6_27B",contextWindow:131072,vision:!1,status:"production",description:"Qwen 3.6 27B"},"groq/compound":{enumMember:"COMPOUND",contextWindow:131072,vision:!1,status:"production",description:"Groq Compound \u2014 agentic system with built-in tool use"},"groq/compound-mini":{enumMember:"COMPOUND_MINI",contextWindow:131072,vision:!1,status:"production",description:"Groq Compound Mini \u2014 lighter agentic system"},"allam-2-7b":{enumMember:"ALLAM_2_7B",contextWindow:4096,vision:!1,status:"production",description:"ALLaM 2 7B \u2014 Arabic-focused model"},"llama-3.3-70b-versatile":{contextWindow:131072,pricingPerMTok:{input:.59,output:.79},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq returns 404 'does not exist'"},"llama-3.1-8b-instant":{contextWindow:128e3,pricingPerMTok:{input:.05,output:.08},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq returns 404 'does not exist'"},"gemma2-9b-it":{enumMember:"GEMMA_2_9B_IT",contextWindow:8192,pricingPerMTok:{input:.2,output:.2},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"mixtral-8x7b-32768":{contextWindow:32768,pricingPerMTok:{input:.24,output:.24},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-guard-3-8b":{contextWindow:8192,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-3.2-90b-vision-preview":{contextWindow:128e3,pricingPerMTok:{input:.9,output:.9},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-3.2-11b-vision-preview":{contextWindow:128e3,pricingPerMTok:{input:.18,output:.18},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"}},visionModel:"qwen/qwen3.8-27b",topModels:["openai/gpt-oss-120b","openai/gpt-oss-20b","qwen/qwen3.8-27b","groq/compound"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication|invalid_api_key",class:"authentication",message:"Invalid Groq API key. Check {apiKeyEnvVar}. Get one at https://console.groq.com/keys"},{pattern:"model_decommissioned",class:"invalid-model",message:"Groq model '{model}' was decommissioned. Pick a current model from https://console.groq.com/docs/models."}],quirks:{timeoutErrorClass:"provider"},setup:{url:"https://console.groq.com/keys",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://console.groq.com/keys","2. Sign in to your Groq account","3. Create a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-08-30",method:"GET /models against the live account, cross-checked with a real chat call per id"},liveMatrix:{date:"2026-08-30",result:"All 7 previously-catalogued ids are gone: Groq answers 404 'does not exist' for the llama ids and 'has been decommissioned' for gemma2/mixtral/llama-guard/llama-3.2-vision. The 7 replacements listed here each returned 200 to a real chat call. Vision was re-tested with a valid 64x64 PNG: qwen/qwen3.8-27b describes the image correctly and is the only vision-capable id; gpt-oss-120b and groq/compound reject an image part with 'messages[0].content must be a string'."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"}}}}),Wme,JTr=_({"src/lib/providers/catalog/huggingface.json"(){Wme={$schema:"./provider-catalog.schema.json",id:"huggingface",displayName:"HuggingFace",enumTypeName:"HuggingFaceModels",aliases:["hf"],credentialsKey:"huggingFace",tier:2,wire:{baseURL:"https://router.huggingface.co/v1",apiKeyFallbackEnvVars:["HF_TOKEN"]},models:{default:"Qwen/Qwen2.5-72B-Instruct",fallbackModelName:"meta-llama/Llama-3.1-8B-Instruct",fallbacks:["meta-llama/Llama-3.1-8B-Instruct"],testModel:"meta-llama/Llama-3.1-8B-Instruct",topModels:["meta-llama/Llama-3.3-70B-Instruct","zai-org/GLM-5","deepseek-ai/DeepSeek-R1","Qwen/Qwen2.5-72B-Instruct","microsoft/phi-4","google/gemma-3-27b-it"],defaultContextWindow:32e3,defaultMaxOutputTokens:32e3,catalog:{"meta-llama/Llama-3.3-70B-Instruct":{vision:!1,status:"production",description:"Recommended - Latest Llama",enumMember:"LLAMA_3_3_70B_INSTRUCT"},"meta-llama/Llama-3.2-1B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_2_1B"},"meta-llama/Llama-3.2-3B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_2_3B_INSTRUCT"},"meta-llama/Llama-3.1-8B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_8B"},"meta-llama/Llama-3.1-8B-Instruct":{vision:!1,status:"production",description:"Llama 3.1 8B, tool-calling capable",enumMember:"LLAMA_3_1_8B_INSTRUCT"},"meta-llama/Llama-3.1-70B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_70B_INSTRUCT"},"meta-llama/Llama-3.1-405B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_405B_INSTRUCT"},"meta-llama/Meta-Llama-3-8B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_8B_INSTRUCT"},"meta-llama/Meta-Llama-3-70B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_70B_INSTRUCT"},"mistralai/Mistral-Large-3-675B-Instruct-2512":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_LARGE_3_675B"},"mistralai/Mistral-Small-3.1-24B-Instruct-2503":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_SMALL_3_1_24B"},"mistralai/Mistral-Small-24B-Instruct-2501":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_SMALL_24B"},"mistralai/Mistral-7B-Instruct-v0.2":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_7B_INSTRUCT"},"mistralai/Mixtral-8x7B-Instruct-v0.1":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MIXTRAL_8X7B_INSTRUCT"},"mistralai/Devstral-2":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"DEVSTRAL_2"},"Qwen/Qwen2.5-7B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_7B"},"Qwen/Qwen2.5-32B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_32B"},"Qwen/Qwen2.5-72B-Instruct":{vision:!1,status:"production",description:"Qwen flagship",enumMember:"QWEN_2_5_72B_INSTRUCT"},"Qwen/Qwen2.5-Coder-7B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_CODER_7B"},"Qwen/Qwen2.5-Coder-32B-Instruct":{vision:!1,status:"production",description:"Qwen 2.5 Coder \u2014 Qwen2.5-Coder-32B-Instruct",enumMember:"QWEN_2_5_CODER_32B_INSTRUCT"},"Qwen/QwQ-32B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWQ_32B"},"Qwen/Qwen2.5-VL-32B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_VL_32B"},"deepseek-ai/DeepSeek-R1":{vision:!1,status:"production",description:"Advanced reasoning",enumMember:"DEEPSEEK_R1"},"deepseek-ai/DeepSeek-V3":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3",enumMember:"DEEPSEEK_V3"},"deepseek-ai/DeepSeek-V3.1":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3.1",enumMember:"DEEPSEEK_V3_1"},"deepseek-ai/DeepSeek-V3.2-Exp":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3.2-Exp",enumMember:"DEEPSEEK_V3_2_EXP"},"microsoft/phi-4":{vision:!1,status:"production",description:"Microsoft Phi-4",enumMember:"PHI_4"},"microsoft/Phi-4-reasoning":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_REASONING"},"microsoft/Phi-4-mini-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_MINI_INSTRUCT"},"microsoft/Phi-4-mini-reasoning":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_MINI_REASONING"},"microsoft/Phi-3-mini-128k-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_3_MINI_128K_INSTRUCT"},"microsoft/Phi-3-vision-128k-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_3_VISION_128K_INSTRUCT"},"google/gemma-3-270m":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_3_270M"},"google/gemma-3-1b-it":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_3_1B_IT"},"google/gemma-3-4b-it":{vision:!1,status:"production",description:"Google Gemma 3 \u2014 gemma-3-4b-it",enumMember:"GEMMA_3_4B_IT"},"google/gemma-3-12b-it":{vision:!1,status:"production",description:"Google Gemma 3 \u2014 gemma-3-12b-it",enumMember:"GEMMA_3_12B_IT"},"google/gemma-3-27b-it":{vision:!1,status:"production",description:"Google Gemma 3",enumMember:"GEMMA_3_27B_IT"},"google/gemma-2-9b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2_9B"},"google/gemma-2-27b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2_27B"},"google/gemma-2b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2B"},"google/gemma-7b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_7B"},"tiiuae/falcon-40b-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_40B_INSTRUCT"},"tiiuae/falcon-180B-chat":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_180B_CHAT"},"bigcode/starcoder2-15b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"STARCODER2_15B"},"codellama/CodeLlama-34b-Instruct-hf":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"CODELLAMA_34B_INSTRUCT"},"bigscience/bloom-7b1":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"BLOOM_7B1"},"bigscience/bloom-1b3":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"BLOOM_1B3"},"zai-org/GLM-5":{vision:!1,status:"production",description:"Z.AI GLM-5 (February 2026) \u2014 GLM-5",enumMember:"GLM_5"},"Qwen/Qwen3.5-397B-A17B":{vision:!1,status:"production",description:"Qwen 3.5 Multimodal (February 2026) \u2014 Qwen3.5-397B-A17B",enumMember:"QWEN_3_5_397B_A17B"},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"NEMOTRON_3_NANO_30B"},"HuggingFaceTB/SmolLM3-3B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"SMOLLM3_3B"},"tiiuae/Falcon3-7B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_3_7B_INSTRUCT"},"tiiuae/Falcon3-10B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_3_10B_INSTRUCT"}}},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{pattern:"API_TOKEN_INVALID|Invalid token",class:"authentication",message:"Invalid HuggingFace API token. Please check your {apiKeyEnvVar} environment variable."},{pattern:"rate limit",class:"rate-limit",message:"HuggingFace rate limit exceeded. Consider using a paid plan or try again later."},{pattern:"model.*not found|not found.*model",class:"invalid-model",message:`HuggingFace model '{model}' not found.
1
+ var dTr=Object.create,f1=Object.defineProperty,pTr=Object.getOwnPropertyDescriptor,J$=Object.getOwnPropertyNames,mTr=Object.getPrototypeOf,hTr=Object.prototype.hasOwnProperty,Npe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),_=(e,t,r)=>function(){try{return e&&(t=(0,e[J$(e)[0]])(e=0)),t}catch(o){return console.warn("[NeuroLink:browser] module init skipped:",String(o)),e=0,t}},Gr=(e,t)=>function(){try{return t||(0,e[J$(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Z=(e,t)=>{for(var r in t)f1(e,r,{get:t[r],enumerable:!0})},Lpe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of J$(t))!hTr.call(e,o)&&o!==r&&f1(e,o,{get:()=>t[o],enumerable:!(n=pTr(t,o))||n.enumerable});return e},rl=(e,t,r)=>(r=e!=null?dTr(mTr(e)):{},Lpe(t||!e||!e.__esModule?f1(r,"default",{value:e,enumerable:!0}):r,e)),qr=e=>Lpe(f1({},"__esModule",{value:!0}),e),Y$={};Z(Y$,{ATTR_SERVICE_NAME:()=>mme,ATTR_SERVICE_VERSION:()=>hme,AsyncLocalStorageContextManager:()=>dme,BasicTracerProvider:()=>Kpe,BatchLogRecordProcessor:()=>ame,BatchSpanProcessor:()=>Xpe,DiagConsoleLogger:()=>Bpe,DiagLogLevel:()=>zpe,ExportResultCode:()=>Fpe,INVALID_SPAN_CONTEXT:()=>Vpe,JsonLogsSerializer:()=>eme,LangfuseSpanProcessor:()=>sme,LoggerProvider:()=>ime,MeterProvider:()=>cme,NodeSDK:()=>Wpe,NodeTracerProvider:()=>Jpe,OTLPLogExporter:()=>Qpe,OTLPMetricExporter:()=>tme,OTLPTraceExporter:()=>Zpe,PeriodicExportingMetricReader:()=>lme,ROOT_CONTEXT:()=>Z$,SEMRESATTRS_SERVICE_NAME:()=>fme,SEMRESATTRS_SERVICE_VERSION:()=>gme,SeverityNumber:()=>ume,SimpleSpanProcessor:()=>Ype,SpanKind:()=>jr,SpanStatusCode:()=>Ue,TraceFlags:()=>Upe,ValueType:()=>Gpe,W3CTraceContextPropagator:()=>pme,baggageEntryMetadataFromString:()=>Hpe,context:()=>fr,default:()=>yme,diag:()=>v1,getNodeAutoInstrumentations:()=>rme,isSpanContextValid:()=>X$,isValidSpanId:()=>jpe,isValidTraceId:()=>qpe,metrics:()=>dh,parseKeyPairsIntoRecord:()=>$pe,propagation:()=>Ey,registerInstrumentations:()=>nme,resourceFromAttributes:()=>ome,trace:()=>ut});var g1,yb,y1,by,ut,fr,Ey,dh,v1,Fpe,$pe,Ue,jr,Upe,Bpe,zpe,Gpe,X$,Z$,qpe,jpe,Vpe,Hpe,Wpe,Kpe,Jpe,Ype,Xpe,Zpe,Qpe,eme,tme,rme,nme,ome,sme,ime,ame,cme,lme,ume,dme,pme,mme,hme,fme,gme,yme,Xt=_({"otel-stub:@opentelemetry/api"(){g1={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}}},yb={startSpan(){return g1},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(g1)}},y1={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},by={getValue(){},setValue(){return by},deleteValue(){return by}},ut={getTracer(){return yb},getTracerProvider(){return{getTracer(){return yb}}},setGlobalTracerProvider(){},getSpan(){return g1},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},fr={active(){return by},with(e,t){return t()},bind(e,t){return t},setValue(){return by},getValue(){}},Ey={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},dh={getMeter(){return y1},getMeterProvider(){return{getMeter(){return y1}}},setGlobalMeterProvider(){}},v1={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return v1}},Fpe={SUCCESS:0,FAILED:1},$pe=()=>({}),Ue={UNSET:0,OK:1,ERROR:2},jr={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},Upe={NONE:0,SAMPLED:1},Bpe=class{},zpe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},Gpe={INT:0,DOUBLE:1},X$=()=>!1,Z$=by,qpe=()=>!1,jpe=()=>!1,Vpe={traceId:"0",spanId:"0",traceFlags:0},Hpe=()=>({}),Wpe=class{start(){}shutdown(){return Promise.resolve()}},Kpe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return yb}shutdown(){return Promise.resolve()}},Jpe=class{register(){}addSpanProcessor(){}getTracer(){return yb}shutdown(){return Promise.resolve()}},Ype=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Xpe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Zpe=class{export(){}shutdown(){return Promise.resolve()}},Qpe=class{export(){}shutdown(){return Promise.resolve()}},eme={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},tme=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},rme=()=>[],nme=()=>{},ome=e=>({attributes:e||{},merge(){return this}}),sme=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ime=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},ame=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},cme=class{constructor(){}getMeter(){return y1}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},lme=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},ume={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},dme=class{enable(){return this}disable(){return this}},pme=class{inject(){}extract(e){return e}fields(){return[]}},mme="service.name",hme="service.version",fme="service.name",gme="service.version",yme={trace:ut,context:fr,propagation:Ey,metrics:dh,diag:v1,SpanStatusCode:Ue,SpanKind:jr}}}),Be,mr=_({"src/lib/telemetry/tracers.ts"(){"use strict";Xt(),Be={sdk:ut.getTracer("neurolink"),provider:ut.getTracer("neurolink.provider"),generation:ut.getTracer("neurolink.generation"),decision:ut.getTracer("neurolink.decision"),stream:ut.getTracer("neurolink.stream"),http:ut.getTracer("neurolink.http"),mcp:ut.getTracer("neurolink.mcp"),memory:ut.getTracer("neurolink.memory"),redis:ut.getTracer("neurolink.redis"),factory:ut.getTracer("neurolink.factory"),rag:ut.getTracer("neurolink.rag"),context:ut.getTracer("neurolink.context"),middleware:ut.getTracer("neurolink.middleware"),processor:ut.getTracer("neurolink.processor"),file:ut.getTracer("neurolink.file"),autoresearch:ut.getTracer("neurolink.autoresearch"),auth:ut.getTracer("neurolink.auth"),workflow:ut.getTracer("neurolink.workflow")}}}),fTr,w1,gTr,yTr,vTr,T1,vme,Q$,wTr,TTr,bTr,ETr,e6=_({"node-stub:node:async_hooks"(){fTr=globalThis.crypto,w1=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},gTr=globalThis.ReadableStream||class{},yTr=globalThis.URL,vTr=globalThis.URLSearchParams,T1=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},T1.custom=Symbol.for("nodejs.util.inspect.custom"),T1.colors={},T1.styles={},vme=globalThis.TextDecoder,Q$=globalThis.TextEncoder,wTr=globalThis.performance||{now:()=>Date.now()},TTr=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new Q$().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new Q$().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new vme().decode(this)}},bTr=globalThis.clearTimeout,ETr=globalThis.clearInterval}});async function _Tr(){return _1||(_1=Promise.resolve().then(()=>(Xt(),Y$)).then(e=>(vb=e,e)).catch(()=>null)),_1}function STr(){const e=process.argv;return e.some((t,r)=>t6.includes(t)&&e[r+1]==="json"||t6.some(n=>t===`${n}=json`))}function wme(e){if(e===null||typeof e!="object")return e;try{return structuredClone(e)}catch{return e}}function b1(e,t){if(e.length===0)return;const r=(()=>{try{return typeof e[0]=="string"?e[0]:JSON.stringify(e[0])}catch{return"[Unserializable Object]"}})(),n=e.length===2?e[1]:e.length>2?e.slice(1):void 0;t(r,n)}var E1,vb,_1,Tme,t6,bme,Mn,m,ne,ir,z=_({"src/lib/utils/logger.ts"(){"use strict";e6(),E1=new w1,vb=null,_1=null,_Tr(),Tme={debug:"DEBUG",info:"INFO",warn:"WARN",error:"ERROR"},t6=["--format","-f","--output-format"],bme=class{logLevel="info";logs=[];maxLogs=1e3;isDebugMode;diagnosticsToStderr=!1;eventEmitter;scopedEmitters=new Map;constructor(){this.isDebugMode=process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true";const 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)}runInInstanceScope(e,t){return E1.run(e,t)}getInstanceScope(){return E1.getStore()}addScopedEventEmitter(e,t){const r=this.scopedEmitters.get(e);if(r){r.add(t);return}this.scopedEmitters.set(e,new Set([t]))}removeScopedEventEmitter(e,t){const r=this.scopedEmitters.get(e);r&&(r.delete(t),r.size===0&&this.scopedEmitters.delete(e))}clearScopedEventEmitters(e){this.scopedEmitters.delete(e)}setLogLevel(e){this.logLevel=e}setDiagnosticsToStderr(e){this.diagnosticsToStderr=e}shouldLog(e){if(!(process.argv.includes("--debug")||process.env.NEUROLINK_DEBUG==="true")&&e!=="error")return!1;const r=["debug","info","warn","error"];return r.indexOf(e)>=r.indexOf(this.logLevel)}getLogPrefix(e,t){return`[${e}] [NEUROLINK:${Tme[t]}]`}getTraceContext(){if(!vb)return{};try{const e=vb.trace.getSpan(vb.context.active());if(!e)return{};const 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,r)=>r instanceof Error?{name:r.name,message:r.message,stack:r.stack}:r)}catch{const t=[];try{return JSON.stringify(e,function(r,n){if(n instanceof Error)return{name:n.name,message:n.message,stack:n.stack};if(typeof n=="object"&&n!==null){if(t.includes(n))return"[Circular]";t.push(n)}return n})}catch{return"[Unserializable Object]"}}}outputToConsole(e,t,r,n){const o=this.diagnosticsToStderr||STr(),s={debug:o?console.error:console.debug,info:o?console.error: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}]`:"";n!=null?s(t+a,r,this.serializeData(n)):s(t+a,r)}log(e,t,r){if(!this.shouldLog(e))return;const n={level:e,message:t,timestamp:new Date,data:r},o=E1.getStore(),s=o===void 0?void 0:this.scopedEmitters.get(o);if(s||this.eventEmitter){const c=n.timestamp.getTime();if(s)for(const l of s)try{l.emit("log-event",{level:e,message:t,timestamp:c,data:wme(r)})}catch{}if(this.eventEmitter)try{this.eventEmitter.emit("log-event",{level:e,message:t,timestamp:c,data:wme(r)})}catch{}}this.logs.push(n),this.logs.length>this.maxLogs&&(this.logs=this.logs.slice(-this.maxLogs));const i=n.timestamp.toISOString(),a=this.getLogPrefix(i,e);this.outputToConsole(e,a,t,r)}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)}},Mn=new bme,m={debug:(...e)=>{Mn.shouldLog("debug")&&b1(e,(t,r)=>Mn.debug(t,r))},info:(...e)=>{Mn.shouldLog("info")&&b1(e,(t,r)=>Mn.info(t,r))},warn:(...e)=>{Mn.shouldLog("warn")&&b1(e,(t,r)=>Mn.warn(t,r))},error:(...e)=>{Mn.shouldLog("error")&&b1(e,(t,r)=>Mn.error(t,r))},always:(...e)=>{Mn.always(...e)},alwaysStderr:(...e)=>{Mn.alwaysStderr(...e)},table:e=>{Mn.table(e)},shouldLog:e=>Mn.shouldLog(e),setLogLevel:e=>Mn.setLogLevel(e),setDiagnosticsToStderr:e=>Mn.setDiagnosticsToStderr(e),getLogs:e=>Mn.getLogs(e),clearLogs:()=>Mn.clearLogs(),setEventEmitter:e=>Mn.setEventEmitter(e),clearEventEmitter:e=>Mn.clearEventEmitter(e),runInInstanceScope:(e,t)=>Mn.runInInstanceScope(e,t),getInstanceScope:()=>Mn.getInstanceScope(),addScopedEventEmitter:(e,t)=>Mn.addScopedEventEmitter(e,t),removeScopedEventEmitter:(e,t)=>Mn.removeScopedEventEmitter(e,t),clearScopedEventEmitters:e=>Mn.clearScopedEventEmitters(e)},ne=Mn,ir=Mn}});function S1(e,t){if(typeof e!="string")throw new TypeError("levenshtein: operands must be strings");if(typeof t!="string")throw new TypeError("levenshtein: operands must be strings");if(e.length>mc)throw new RangeError(r6);if(t.length>mc)throw new RangeError(r6);if(e===t)return 0;if(e.length===0)return t.length;if(t.length===0)return e.length;e.length>t.length&&([e,t]=[t,e]);const r=e.length,n=t.length;let o=new Array(r+1),s=new Array(r+1);for(let i=0;i<=r;i++)o[i]=i;for(let i=1;i<=n;i++){s[0]=i;for(let a=1;a<=r;a++){const c=e[a-1]===t[i-1]?0:1;s[a]=Math.min(o[a]+1,s[a-1]+1,o[a-1]+c)}[o,s]=[s,o]}return o[r]}function kTr(e,t,r){const n=r?.maxDistance??3,o=r?.limit??3,s=e.toLowerCase();if(s.length>mc)return[];const i=[];return t.forEach((a,c)=>{const l=a.toLowerCase();if(Math.abs(l.length-s.length)>n||l.length>mc)return;const u=S1(s,l);u<=n&&i.push({candidate:a,order:c,distance:u})}),i.sort((a,c)=>a.distance-c.distance||a.order-c.order).slice(0,o).map(a=>a.candidate)}var mc,r6,Eme=_({"src/lib/utils/stringDistance.ts"(){"use strict";mc=128,r6=`levenshtein: input exceeds MAX_COMPARABLE_LENGTH (${mc}); callers must skip over-limit operands rather than truncate them`}}),k1,n6,o6,s6,_me,i6=_({"src/lib/constants/enums.ts"(){"use strict";k1=(e=>(e.BEDROCK="bedrock",e.OPENAI="openai",e.OPENAI_COMPATIBLE="openai-compatible",e.OPENROUTER="openrouter",e.VERTEX="vertex",e.ANTHROPIC="anthropic",e.AZURE="azure",e.GOOGLE_AI="google-ai",e.OLLAMA="ollama",e.LITELLM="litellm",e.SAGEMAKER="sagemaker",e.NVIDIA_NIM="nvidia-nim",e.LM_STUDIO="lm-studio",e.LLAMACPP="llamacpp",e.ABOVE_DEV="above-dev",e.AI21="ai21",e.AIAND="aiand",e.AIONLABS="aionlabs",e.AMBIENT="ambient",e.API_ROUTE="api-route",e.ATLAS_CLOUD="atlas-cloud",e.AVIAN_IO="avian-io",e.BASETEN="baseten",e.BEE_HEOSSI="bee-heossi",e.CEREBRAS="cerebras",e.CHARM_HYPER="charm-hyper",e.CHUTES="chutes",e.CLOUDFLARE="cloudflare",e.CRUSOE="crusoe",e.DEEPINFRA="deepinfra",e.DEEPSEEK="deepseek",e.EMPIRIOLABS="empiriolabs",e.FEATHERLESS_AI="featherless-ai",e.FIREWORKS="fireworks",e.FRIENDLI="friendli",e.GMICLOUD="gmicloud",e.GROQ="groq",e.HUGGINGFACE="huggingface",e.INCEPTION_LABS="inception-labs",e.INCO="inco",e.INFERENCE_NET="inference-net",e.IO_INTELLIGENCE="io-intelligence",e.KOSCOMPUTE="koscompute",e.LILAC="lilac",e.LLMTECH="llmtech",e.MANCER="mancer",e.MINIMAX="minimax",e.MISTRAL="mistral",e.MOARK="moark",e.MOONSHOT_AI="moonshot-ai",e.MORPH="morph",e.NEBIUS="nebius",e.NEURALWATT="neuralwatt",e.NOVITA="novita",e.OVHCLOUD="ovhcloud",e.PARETO_INFERENCE="pareto-inference",e.PERPLEXITY="perplexity",e.PRIME_INTELLECT="prime-intellect",e.SAMBANOVA="sambanova",e.SARVAM="sarvam",e.SCALEWAY="scaleway",e.SILICONFLOW="siliconflow",e.STEPFUN="stepfun",e.SUBCONSCIOUS="subconscious",e.SYNTHETIC="synthetic",e.TINFOIL="tinfoil",e.TOGETHER_AI="together-ai",e.UMANS_AI="umans-ai",e.UPSTAGE="upstage",e.VENICE_AI="venice-ai",e.VULTR_INFERENCE="vultr-inference",e.WAFER="wafer",e.WANDB_INFERENCE="wandb-inference",e.XAI="xai",e.Z_AI="z-ai",e.COHERE="cohere",e.REPLICATE="replicate",e.VOYAGE="voyage",e.JINA="jina",e.STABILITY="stability",e.IDEOGRAM="ideogram",e.RECRAFT="recraft",e.TYPESAFE="typesafe",e.LAYA="laya",e.XOR="xor",e.AUTO="auto",e))(k1||{}),n6=(e=>(e.CLAUDE_4_6_OPUS="anthropic.claude-opus-4-6-v1",e.CLAUDE_4_6_SONNET="anthropic.claude-sonnet-4-6",e.CLAUDE_4_5_OPUS="anthropic.claude-opus-4-5-20251101-v1:0",e.CLAUDE_4_5_SONNET="anthropic.claude-sonnet-4-5-20250929-v1:0",e.CLAUDE_4_5_HAIKU="anthropic.claude-haiku-4-5-20251001-v1:0",e.CLAUDE_4_1_OPUS="anthropic.claude-opus-4-1-20250805-v1:0",e.CLAUDE_4_SONNET="anthropic.claude-sonnet-4-20250514-v1:0",e.CLAUDE_3_7_SONNET="anthropic.claude-3-7-sonnet-20250219-v1:0",e.CLAUDE_3_5_SONNET="anthropic.claude-3-5-sonnet-20241022-v1:0",e.CLAUDE_3_5_HAIKU="anthropic.claude-3-5-haiku-20241022-v1:0",e.CLAUDE_3_SONNET="anthropic.claude-3-sonnet-20240229-v1:0",e.CLAUDE_3_HAIKU="anthropic.claude-3-haiku-20240307-v1:0",e.NOVA_PREMIER="amazon.nova-premier-v1:0",e.NOVA_PRO="amazon.nova-pro-v1:0",e.NOVA_LITE="amazon.nova-lite-v1:0",e.NOVA_MICRO="amazon.nova-micro-v1:0",e.NOVA_2_LITE="amazon.nova-2-lite-v1:0",e.NOVA_2_SONIC="amazon.nova-2-sonic-v1:0",e.NOVA_SONIC="amazon.nova-sonic-v1:0",e.NOVA_CANVAS="amazon.nova-canvas-v1:0",e.NOVA_REEL="amazon.nova-reel-v1:0",e.NOVA_REEL_V1_1="amazon.nova-reel-v1:1",e.NOVA_MULTIMODAL_EMBEDDINGS="amazon.nova-2-multimodal-embeddings-v1:0",e.TITAN_TEXT_LARGE="amazon.titan-tg1-large",e.TITAN_EMBED_TEXT_V2="amazon.titan-embed-text-v2:0",e.TITAN_EMBED_TEXT_V1="amazon.titan-embed-text-v1",e.TITAN_EMBED_G1_TEXT_02="amazon.titan-embed-g1-text-02",e.TITAN_EMBED_IMAGE_V1="amazon.titan-embed-image-v1",e.TITAN_IMAGE_GENERATOR_V2="amazon.titan-image-generator-v2:0",e.LLAMA_4_MAVERICK_17B="meta.llama4-maverick-17b-instruct-v1:0",e.LLAMA_4_SCOUT_17B="meta.llama4-scout-17b-instruct-v1:0",e.LLAMA_3_3_70B="meta.llama3-3-70b-instruct-v1:0",e.LLAMA_3_2_90B="meta.llama3-2-90b-instruct-v1:0",e.LLAMA_3_2_11B="meta.llama3-2-11b-instruct-v1:0",e.LLAMA_3_2_3B="meta.llama3-2-3b-instruct-v1:0",e.LLAMA_3_2_1B="meta.llama3-2-1b-instruct-v1:0",e.LLAMA_3_1_405B="meta.llama3-1-405b-instruct-v1:0",e.LLAMA_3_1_70B="meta.llama3-1-70b-instruct-v1:0",e.LLAMA_3_1_8B="meta.llama3-1-8b-instruct-v1:0",e.LLAMA_3_70B="meta.llama3-70b-instruct-v1:0",e.LLAMA_3_8B="meta.llama3-8b-instruct-v1:0",e.MISTRAL_LARGE_3="mistral.mistral-large-3-675b-instruct",e.MISTRAL_LARGE_2407="mistral.mistral-large-2407-v1:0",e.MISTRAL_LARGE_2402="mistral.mistral-large-2402-v1:0",e.MAGISTRAL_SMALL_2509="mistral.magistral-small-2509",e.MINISTRAL_3_14B="mistral.ministral-3-14b-instruct",e.MINISTRAL_3_8B="mistral.ministral-3-8b-instruct",e.MINISTRAL_3_3B="mistral.ministral-3-3b-instruct",e.MISTRAL_7B="mistral.mistral-7b-instruct-v0:2",e.MIXTRAL_8x7B="mistral.mixtral-8x7b-instruct-v0:1",e.PIXTRAL_LARGE_2502="mistral.pixtral-large-2502-v1:0",e.VOXTRAL_SMALL_24B="mistral.voxtral-small-24b-2507",e.VOXTRAL_MINI_3B="mistral.voxtral-mini-3b-2507",e.COHERE_COMMAND_R_PLUS="cohere.command-r-plus-v1:0",e.COHERE_COMMAND_R="cohere.command-r-v1:0",e.DEEPSEEK_R1="deepseek.r1-v1:0",e.DEEPSEEK_V3="deepseek.v3-v1:0",e.QWEN_3_235B_A22B="qwen.qwen3-235b-a22b-2507-v1:0",e.QWEN_3_CODER_480B_A35B="qwen.qwen3-coder-480b-a35b-v1:0",e.QWEN_3_CODER_30B_A3B="qwen.qwen3-coder-30b-a3b-v1:0",e.QWEN_3_32B="qwen.qwen3-32b-v1:0",e.QWEN_3_NEXT_80B_A3B="qwen.qwen3-next-80b-a3b",e.QWEN_3_VL_235B_A22B="qwen.qwen3-vl-235b-a22b",e.GEMMA_3_27B_IT="google.gemma-3-27b-it",e.GEMMA_3_12B_IT="google.gemma-3-12b-it",e.GEMMA_3_4B_IT="google.gemma-3-4b-it",e.JAMBA_1_5_LARGE="ai21.jamba-1-5-large-v1:0",e.JAMBA_1_5_MINI="ai21.jamba-1-5-mini-v1:0",e.WRITER_PALMYRA_X5="writer.palmyra-x5-v1:0",e.WRITER_PALMYRA_X4="writer.palmyra-x4-v1:0",e.MINIMAX_M2_1="minimax.minimax-m2.1",e.MINIMAX_M2="minimax.minimax-m2",e.KIMI_K2_THINKING="moonshot.kimi-k2-thinking",e.KIMI_K2_5="moonshotai.kimi-k2.5",e.NVIDIA_NEMOTRON_NANO_3_30B="nvidia.nemotron-nano-3-30b",e.NVIDIA_NEMOTRON_NANO_12B_V2="nvidia.nemotron-nano-12b-v2",e.NVIDIA_NEMOTRON_NANO_9B_V2="nvidia.nemotron-nano-9b-v2",e.OPENAI_GPT_OSS_120B="openai.gpt-oss-120b-1:0",e.OPENAI_GPT_OSS_20B="openai.gpt-oss-20b-1:0",e.GLM_4_7="zai.glm-4.7",e.GLM_4_7_FLASH="zai.glm-4.7-flash",e.COHERE_EMBED_ENGLISH_V3="cohere.embed-english-v3",e.COHERE_EMBED_MULTILINGUAL_V3="cohere.embed-multilingual-v3",e.COHERE_EMBED_V4="cohere.embed-v4:0",e.COHERE_RERANK_V3_5="cohere.rerank-v3-5:0",e.AMAZON_RERANK_V1="amazon.rerank-v1:0",e.DEVSTRAL_2_123B="mistral.devstral-2-123b",e))(n6||{}),o6=(e=>(e.GPT_6_ASTRA="gpt-6-astra",e.GPT_6_SOL="gpt-6-sol",e.GPT_6_LUNA="gpt-6-luna",e.GPT_5_3_CODEX="gpt-5.3-codex",e.GPT_5_4="gpt-5.4",e.GPT_5_4_MINI="gpt-5.4-mini",e.GPT_5_4_NANO="gpt-5.4-nano",e.GPT_5_4_PRO="gpt-5.4-pro",e.GPT_5_2="gpt-5.2",e.GPT_5_2_CHAT_LATEST="gpt-5.2-chat-latest",e.GPT_5_2_PRO="gpt-5.2-pro",e.GPT_5_2_CODEX="gpt-5.2-codex",e.GPT_5_1="gpt-5.1",e.GPT_5_1_CHAT_LATEST="gpt-5.1-chat-latest",e.GPT_5_1_CODEX="gpt-5.1-codex",e.GPT_5_1_CODEX_MAX="gpt-5.1-codex-max",e.GPT_5_1_CODEX_MINI="gpt-5.1-codex-mini",e.GPT_5="gpt-5",e.GPT_5_MINI="gpt-5-mini",e.GPT_5_NANO="gpt-5-nano",e.GPT_5_PRO="gpt-5-pro",e.GPT_5_CHAT_LATEST="gpt-5-chat-latest",e.GPT_5_CODEX="gpt-5-codex",e.GPT_OSS_120B="gpt-oss-120b",e.GPT_OSS_20B="gpt-oss-20b",e.GPT_4_1="gpt-4.1",e.GPT_4_1_MINI="gpt-4.1-mini",e.GPT_4_1_NANO="gpt-4.1-nano",e.GPT_4O="gpt-4o",e.GPT_4O_MINI="gpt-4o-mini",e.O3="o3",e.O3_MINI="o3-mini",e.O3_PRO="o3-pro",e.O4_MINI="o4-mini",e.O1="o1",e.O1_PREVIEW="o1-preview",e.O1_MINI="o1-mini",e.GPT_4="gpt-4",e.GPT_4_TURBO="gpt-4-turbo",e.GPT_3_5_TURBO="gpt-3.5-turbo",e.GPT_IMAGE_1="gpt-image-1",e.DALL_E_3="dall-e-3",e.DALL_E_2="dall-e-2",e))(o6||{}),s6=(e=>(e.CLAUDE_4_6_OPUS="claude-opus-4-6",e.CLAUDE_4_6_SONNET="claude-sonnet-4-6",e.CLAUDE_4_5_OPUS="claude-opus-4-5@20251101",e.CLAUDE_4_5_SONNET="claude-sonnet-4-5@20250929",e.CLAUDE_4_5_HAIKU="claude-haiku-4-5@20251001",e.CLAUDE_4_0_SONNET="claude-sonnet-4@20250514",e.CLAUDE_4_0_OPUS="claude-opus-4@20250514",e.CLAUDE_3_7_SONNET="claude-3-7-sonnet@20250219",e.CLAUDE_3_5_SONNET="claude-3-5-sonnet-20241022",e.CLAUDE_3_5_HAIKU="claude-3-5-haiku-20241022",e.CLAUDE_3_SONNET="claude-3-sonnet-20240229",e.CLAUDE_3_OPUS="claude-3-opus-20240229",e.CLAUDE_3_HAIKU="claude-3-haiku-20240307",e.GEMINI_3_1_PRO_PREVIEW="gemini-3.1-pro-preview",e.GEMINI_3_1_FLASH_LITE_PREVIEW="gemini-3.1-flash-lite-preview",e.GEMINI_3_1_FLASH_IMAGE_PREVIEW="gemini-3.1-flash-image-preview",e.GEMINI_3_1_PRO_PREVIEW_CUSTOMTOOLS="gemini-3.1-pro-preview-customtools",e.GEMINI_3_FLASH_PREVIEW="gemini-3-flash-preview",e.GEMINI_3_PRO_IMAGE_PREVIEW="gemini-3-pro-image-preview",e.GEMINI_3_PRO_PREVIEW="gemini-3-pro-preview",e.GEMINI_2_5_PRO="gemini-2.5-pro",e.GEMINI_2_5_FLASH="gemini-2.5-flash",e.GEMINI_2_5_FLASH_LITE="gemini-2.5-flash-lite",e.GEMINI_2_5_FLASH_IMAGE="gemini-2.5-flash-image",e.GEMINI_2_0_FLASH="gemini-2.0-flash",e.GEMINI_2_0_FLASH_001="gemini-2.0-flash-001",e.GEMINI_2_0_FLASH_LITE="gemini-2.0-flash-lite",e.GEMINI_1_5_PRO="gemini-1.5-pro-002",e.GEMINI_1_5_FLASH="gemini-1.5-flash-002",e))(s6||{}),_me=300*1e3}}),Sme,xTr=_({"src/lib/providers/catalog/above-dev.json"(){Sme={$schema:"./provider-catalog.schema.json",id:"above-dev",displayName:"above.dev",aliases:[],tier:2,wire:{baseURL:"https://api.above.dev/v1"},models:{default:"deepseek-v4.1-flash",fallbacks:["glm-5.3-flash","mimo-v2.6-flash","deepseek-v4-pro","glm-5.2","mimo-v2.6-pro","glm-5.2-fast","qwen3.8-max","mimo-v2.6-pro-ultraspeed"],defaultContextWindow:1e6,defaultMaxOutputTokens:131072,catalog:{"deepseek-v4.1-flash":{contextWindow:1e6,maxOutputTokens:131072,vision:!0,status:"production",description:`DeepSeek V4.1 Flash (also addressable as deepseek-v4-flash), tier T1. above.dev's own default: naming no model routes here ("the cheapest model in the catalog", https://above.dev/docs, retrieved 2026-09-28). GET /v1/models (unauthenticated, 2026-09-28) self-reports supports_tool_calls, supports_streaming, supports_json_mode, supports_structured_output and supports_vision all true, and supports_reasoning true, but none of this was independently probed \u2014 no key was used. Pricing uses above.dev's documented time-of-day split (peak 01:00-04:00 and 06:00-10:00 UTC weekdays, else off-peak; weekends fully off-peak in Beijing time) so pricingPerMTok is omitted rather than collapsed to one number: input $0.165-$0.33/M, cache-hit $0.0033-$0.0066/M, output $0.66-$1.32/M (https://above.dev/docs, retrieved 2026-09-28).`},"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:131072,vision:!1,status:"production",description:`DeepSeek V4 Pro, tier T2 ("Agentic \u2014 multi-step, tool-capable" per the docs' tier table). Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Time-of-day pricing per https://above.dev/docs (retrieved 2026-09-28) \u2014 input $0.726-$1.452/M, cache-hit $0.0242-$0.0484/M, output $2.178-$4.356/M \u2014 so pricingPerMTok is omitted (see deepseek-v4.1-flash for why).`},"glm-5.2":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.54,output:4.84,cachedInput:.154},vision:!1,status:"production",description:"Zhipu GLM 5.2, tier T2. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat (non-time-of-day) pricing per https://above.dev/docs, retrieved 2026-09-28."},"glm-5.3-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.165,output:.55,cachedInput:.0319},vision:!0,status:"production",description:`Zhipu GLM 5.3 Flash, tier T1. Roster-listed via unauthenticated GET /v1/models (2026-09-28), which self-reports supports_vision true for this id; not capability-probed with a real image. Flat pricing per https://above.dev/docs, retrieved 2026-09-28. Note: a separate id, glm-5.3-flash-modal, is named in the docs' Limits section as one of two "free-tier routes" capped at 16,384 output tokens \u2014 that id does not appear in the current /v1/models roster and is a distinct route from this one; not represented in this catalog.`},"glm-5.2-fast":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:2.31,output:7.26,cachedInput:.231},vision:!1,status:"production",description:`Zhipu GLM 5.2 Fast, tier T3 ("Highest capability in the catalog" per the docs' tier table). Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28.`},"qwen3.8-max":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:2.2,output:6.6,cachedInput:.275},vision:!0,status:"production",description:"Alibaba Qwen 3.8 Max, tier T3. Roster-listed via unauthenticated GET /v1/models (2026-09-28), which self-reports supports_vision true for this id; not capability-probed with a real image. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-pro":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.5077,output:1.0154,cachedInput:.0042},vision:!1,status:"production",description:"MiMo V2.6 Pro (also addressable as mimo-v2.5-pro), tier T2. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-flash":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.1692,output:.3385,cachedInput:.0034},vision:!1,status:"production",description:"MiMo V2.6 Flash, tier T1. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."},"mimo-v2.6-pro-ultraspeed":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:5.0769,output:10.1538,cachedInput:.0423},vision:!1,status:"production",description:"MiMo V2.6 Pro UltraSpeed, tier T3. Roster-listed via unauthenticated GET /v1/models (2026-09-28); not capability-probed. Flat pricing per https://above.dev/docs, retrieved 2026-09-28."}},topModels:["deepseek-v4.1-flash","glm-5.3-flash","mimo-v2.6-flash","deepseek-v4-pro","glm-5.2","mimo-v2.6-pro","glm-5.2-fast","qwen3.8-max","mimo-v2.6-pro-ultraspeed"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid or missing above.dev API key (401 Unauthorised). Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"above.dev account balance is insufficient (402 payment required). Top up at https://above.dev/pricing"},{status:403,class:"invalid-model",message:"above.dev model '{model}' is not enabled for this key (403 model_not_allowed_for_key) \u2014 it may be plan-restricted or in private beta. Pick another model or contact above.dev."},{status:429,class:"rate-limit",message:"above.dev rate limit exceeded (429 rate_limit_exceeded, 300 requests/minute per account). Retry after the documented Retry-After header."},{status:504,class:"network",message:"above.dev upstream model did not respond in time (504 provider_timeout). Retry the request."}],setup:{url:"https://above.dev/pricing",apiKeyFormat:"^sk-gw-.+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://above.dev/pricing and purchase credit \u2014 API keys are issued only after purchase, there is no free signup","2. Copy the issued key \u2014 it starts with sk-gw- (the docs give only the prefix, not a full character-set spec)","3. Manage or rotate the key from https://above.dev/dashboard if it is ever compromised \u2014 a key grants full access to your credit balance","4. Set {apiKeyEnvVar} in your .env file"],description:'OpenAI-compatible gateway at https://api.above.dev/v1, routing to a small DeepSeek/GLM/Qwen/MiMo catalog. POST /v1/chat/completions is documented as an alias that delegates to the vendor\'s native POST /v1/messages with "identical behaviour". No free tier for account access \u2014 a key is issued only after purchase at above.dev/pricing (the docs separately mention two lower-cap "free-tier routes", glm-5.3-flash-modal and deepseek-v4.1-flash-modal, but those ids are outside the current /v1/models roster and still require a purchased key). Account-wide rate limit is 300 requests/minute; every current model accepts up to 131,072 output tokens. The docs describe the `tools` and `response_format` request fields only as routing signals ("presence influences routing toward tool-capable models" / "scores toward structured-output models"), in explicit contrast to `tool_choice` and `temperature`, which the same table states are "passed through to the model" \u2014 so this entry does not assert tool calling or structured output as a confirmed, working capability without a live probe.'},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.above.dev/v1/models \u2014 9 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),kme,CTr=_({"src/lib/providers/catalog/ai21.json"(){kme={$schema:"./provider-catalog.schema.json",id:"ai21",displayName:"AI21 Labs",aliases:[],tier:2,wire:{baseURL:"https://api.ai21.com/studio/v1"},models:{default:"jamba-large",fallbacks:["jamba-mini","jamba-large-1.7-2025-07","jamba-mini-2-2026-01"],fallbackModelName:"jamba-mini",defaultContextWindow:256e3,defaultMaxOutputTokens:4096,catalog:{"jamba-large":{contextWindow:256e3,maxOutputTokens:4096,pricingPerMTok:{input:2,output:8},vision:!1,status:"production",description:'NeuroLink default. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) describes Jamba Large as "Our most powerful and advanced model, designed to handle complex tasks at enterprise scale with superior performance."; its Model Details row for Jamba Large lists Max Tokens 256K, Version 1.7, Snapshot 2025-07 and API Endpoint `jamba-large`, and its API Versioning list says `jamba-large` currently points to `jamba-large-1.7-2025-07`. https://docs.ai21.com/reference/jamba-1-6-api-ref (retrieved 2026-09-29) names `jamba-large` and `jamba-mini` as the model names that can be called without specifying a version, and its cURL example sends "model": "jamba-large". https://www.ai21.com/pricing (retrieved 2026-09-29) lists Jamba Large at $2 / 1M input tokens and $8 / 1M output tokens. The models page gives Input Modality: Text, so vision is false. contextWindow records the page\'s 256K as 256,000; maxOutputTokens is the Chat request page\'s statement "For Jamba models, the maximum allowed value is 4096 tokens."'},"jamba-mini":{contextWindow:256e3,maxOutputTokens:4096,pricingPerMTok:{input:.2,output:.4},vision:!1,status:"production",description:'NeuroLink fallback. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29): the Model Details row for Jamba Mini lists Max Tokens 256K, Version 2, Snapshot 2026-01 and API Endpoint `jamba-mini`, and the API Versioning list says `jamba-mini` currently points to `jamba-mini-2-2026-01`. https://www.ai21.com/pricing (retrieved 2026-09-29) describes Jamba Mini as "Efficient & lightweight model for a wide range of tasks" at $0.2 / 1M input tokens and $0.4 / 1M output tokens. https://docs.ai21.com/docs/sdk (retrieved 2026-09-29) uses `jamba-mini` in its chat example. The models page gives Input Modality: Text, so vision is false. contextWindow records the page\'s 256K as 256,000; maxOutputTokens is the Chat request page\'s statement "For Jamba models, the maximum allowed value is 4096 tokens."'},"jamba-large-1.7-2025-07":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:'Dated snapshot of Jamba Large. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) lists it in API Versioning (`jamba-large` currently points to `jamba-large-1.7-2025-07`; `jamba-large-1.7` points to `jamba-large-1.7-2025-07`), and the Model Details row for Jamba Large lists Version 1.7, Snapshot 2025-07 and Max Tokens 256K. The page states: "We advise using dated versions of the Jamba API to avoid disruptions from model updates and breaking changes." Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-large` (256K as 256,000; max_tokens 4096 per the Chat request page).'},"jamba-mini-2-2026-01":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:'Dated snapshot of Jamba Mini. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) lists it in API Versioning (`jamba-mini` currently points to `jamba-mini-2-2026-01`; `jamba-mini-2` points to `jamba-mini-2-2026-01`), and the Model Details row for Jamba Mini lists Version 2, Snapshot 2026-01 and Max Tokens 256K. The page states: "We advise using dated versions of the Jamba API to avoid disruptions from model updates and breaking changes." Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-mini` (256K as 256,000; max_tokens 4096 per the Chat request page).'},"jamba-large-1.7":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:"Version name for Jamba Large. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) API Versioning list: `jamba-large-1.7` points to `jamba-large-1.7-2025-07`; the Model Details row for Jamba Large lists Version 1.7, Snapshot 2025-07 and Max Tokens 256K. Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-large` (256K as 256,000; max_tokens 4096 per the Chat request page)."},"jamba-mini-2":{contextWindow:256e3,maxOutputTokens:4096,vision:!1,status:"production",description:"Version name for Jamba Mini. https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29) API Versioning list: `jamba-mini-2` points to `jamba-mini-2-2026-01`; the Model Details row for Jamba Mini lists Version 2, Snapshot 2026-01 and Max Tokens 256K. Input Modality: Text, so vision is false. Context and output figures are recorded as for `jamba-mini` (256K as 256,000; max_tokens 4096 per the Chat request page)."}},topModels:["jamba-large","jamba-mini","jamba-large-1.7-2025-07","jamba-mini-2-2026-01","jamba-large-1.7","jamba-mini-2"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:'AI21 rejected the API key (HTTP 401; the Chat response page documents 401 as "Unauthorized (Incorrect API key provided/Invalid Authentication)"). Check {apiKeyEnvVar}. Create a key: {setupUrl}'},{pattern:"bad or missing authentication",class:"authentication",message:"AI21 reported bad or missing authentication. Check {apiKeyEnvVar}. Create a key: {setupUrl}"},{status:429,class:"rate-limit",message:'AI21 rate limit (HTTP 429; the Chat response page documents 429 as "Too Many Requests (You are sending requests too quickly.)"). https://docs.ai21.com/reference/api-rate-limits lists 10 requests per second and 200 requests per minute for Jamba Large and Jamba Mini.'},{status:503,class:"provider",message:'AI21 returned HTTP 503 (the Chat response page documents 503 as "Service Unavailable (The engine is currently overloaded, please try again later)").'}],setup:{url:"https://docs.ai21.com/docs/create-api-key",apiKeyFormat:null,billingPolicy:"free-tier",instructions:['1. Visit: https://docs.ai21.com/docs/create-api-key and follow its steps: sign in to AI21 Studio (the page says "You can sign in using your email address, Google account, GitHub account, or SSO."), click Settings in the bottom-left corner of the sidebar, open the API Keys tab, then click Create new key','2. Copy the key when it is shown; the page says "you won\u2019t be able to view it again"','3. Free trial: https://docs.ai21.com/docs/usage-cost says "New accounts are given a $10 credit good for three months on the AI21 platform." and, once the trial is exceeded or expires, "you must provide valid billing information in your account to continue using the AI21 platform". https://www.ai21.com/pricing shows "$10 credits for 7 days." and "No credit card needed" under Free Trial',"4. Set {apiKeyEnvVar} in your .env file"],description:`Docs-verified only: GET https://api.ai21.com/studio/v1/models answers 200 with an empty data array without a key, so the model ids come from https://docs.ai21.com/docs/jamba-foundation-models and the roster has not been checked; the entry is not yet live-verified. Chat completions are documented at POST https://api.ai21.com/studio/v1/chat/completions with Bearer authentication (https://docs.ai21.com/reference/jamba-1-6-api-ref, https://docs.ai21.com/reference/authentication); the request takes model and messages and the response carries a choices array, with streaming as server-sent events ending in data: [DONE] (https://docs.ai21.com/reference/jamba-api-response). Unauthenticated GETs made 2026-09-29: /models answered 200 {"data":[]}; /chat/completions answered 405 {"detail":"Method Not Allowed"} with header allow: POST; /library/files (a documented endpoint) answered 400 {"detail":"Bad request: bad or missing authentication."}. The 401, 429 and 503 errorRules follow the status codes on the Chat response page; the pattern rule matches the /library/files body text. defaultContextWindow and the per-model contextWindow values hold 256000 as a numeric placeholder for the 256K label printed on the models page; no exact token count is taken from a vendor page. toolsWithStreaming is false because the stream parameter text on the Chat request page says "Must be False if using tools." structuredOutput is true on the basis of the response_format value { "type": "json_object" } that the Chat request page describes as activating JSON mode. No POST request was sent, so the request fields that NeuroLink's chat-completions client can add (stream_options on streaming calls, tool_choice on calls with tools, and a json_schema response_format for schema output) have not been exercised against AI21.`},evidence:{rosterVerified:{date:"2026-09-29",method:'docs-only, roster not verified \u2014 unauthenticated GET https://api.ai21.com/studio/v1/models answered HTTP 200 with body {"data":[]} and no key, so model ids are taken from https://docs.ai21.com/docs/jamba-foundation-models (retrieved 2026-09-29)'},authProbe:{date:"2026-09-29",status:400,method:'unauthenticated GET https://api.ai21.com/studio/v1/library/files (a documented endpoint) \u2014 body {"detail":"Bad request: bad or missing authentication."}; the same day GET /models answered 200 {"data":[]} and GET /chat/completions answered 405 {"detail":"Method Not Allowed"}; credential-free, no key used'},billingProbe:{date:"2026-09-29",method:'public pages https://docs.ai21.com/docs/usage-cost ("New accounts are given a $10 credit good for three months on the AI21 platform.") and https://www.ai21.com/pricing ("Start with a free trial, no credit card required, then pay based on usage."; Free Trial: "$10 credits for 7 days." and "No credit card needed"); credential-free'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),xme,ATr=_({"src/lib/providers/catalog/aiand.json"(){xme={$schema:"./provider-catalog.schema.json",id:"aiand",displayName:"ai&",aliases:[],tier:2,wire:{baseURL:"https://api.aiand.com/v1"},models:{default:"openai/gpt-oss-120b",fallbacks:["zai-org/glm-5.3","zai-org/glm-5.2","deepseek-ai/deepseek-v4-pro","deepseek-ai/deepseek-v4-flash","moonshotai/kimi-k3","moonshotai/kimi-k2.7-code","qwen/qwen3.8-27b","qwen/qwen3.6-27b","motif-technologies/motif-3","google/gemma-4-31b-it"],defaultContextWindow:131072,defaultMaxOutputTokens:131072,catalog:{"openai/gpt-oss-120b":{contextWindow:131072,pricingPerMTok:{input:.15,output:.6,cachedInput:.08},vision:!1,status:"production",description:'Default \u2014 the model used in ai&\'s own quickstart curl example (https://docs.aiand.com/, retrieved 2026-09-28): \'curl https://api.aiand.com/v1/chat/completions -H "Authorization: Bearer sk-your-api-key" -d {"model": "openai/gpt-oss-120b", ...}\'. Vendor description (GET /v1/models, 2026-09-28): "Open GPT reasoning model for self-hosted agents and controllable deployments". Cheapest model on the roster. Documents `reasoning` + `tool_calling` capabilities and a `reasoning_effort` request parameter with model-specific values low/medium/high (default medium) \u2014 see https://docs.aiand.com/api/chat-completions/. No `vision` capability listed, so image/video input is expected to be rejected. Docs- and roster-verified only \u2014 no API key was used, so no live chat/stream/tool call was made against this or any other model in this catalog.'},"zai-org/glm-5.3":{contextWindow:1048576,pricingPerMTok:{input:1,output:4,cachedInput:.3},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Flagship GLM model for long-horizon coding, agents, and complex project delivery". reasoning_effort values low/high/max, default max. 1M context. Roster-listed and priced only, not itself capability-probed; fallback.'},"zai-org/glm-5.2":{contextWindow:1048576,pricingPerMTok:{input:1,output:4,cachedInput:.3},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Open flagship GLM for long-horizon coding agents and million-token context work". reasoning_effort values none/high/max, default max. Roster-listed only; fallback.'},"deepseek-ai/deepseek-v4-pro":{contextWindow:1048576,pricingPerMTok:{input:1,output:2.5,cachedInput:.25},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Open MoE flagship with million-token context for coding and long agent runs". reasoning_effort values none/high/max, default none. Roster-listed only; fallback.'},"deepseek-ai/deepseek-v4-flash":{contextWindow:1048576,pricingPerMTok:{input:.15,output:.25,cachedInput:.08},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work". reasoning_effort values none/high/max, default none. Roster-listed only; fallback.'},"moonshotai/kimi-k3":{contextWindow:1048576,pricingPerMTok:{input:3,output:12.5,cachedInput:.5},vision:!0,status:"production",description:"Vendor description (GET /v1/models, 2026-09-28): \"Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work\". reasoning_effort values low/high/max, default max. Lists `vision` in its capabilities array, but ai&'s vision docs (https://docs.aiand.com/capabilities/vision/) describe images/video as uploaded via the Files API first and referenced by `file_id` \u2014 not the inline base64 `image_url` data-URI shape NeuroLink's other providers use \u2014 and that flow was not exercised (no key used). Roster-listed only; fallback."},"moonshotai/kimi-k2.7-code":{contextWindow:262144,pricingPerMTok:{input:.75,output:3.5,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking". reasoning_effort fixed to high (only value listed). Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"qwen/qwen3.8-27b":{contextWindow:262144,pricingPerMTok:{input:.4,output:3,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Dense 27B vision-language model for coding, agent tasks, and image and video understanding". reasoning_effort values none/low/medium/xhigh, default medium. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"qwen/qwen3.6-27b":{contextWindow:262144,pricingPerMTok:{input:.32,output:3.2,cachedInput:.2},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Qwen vision-language model for visual reasoning, documents, and agent tasks". reasoning_effort values none/high, default high. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'},"motif-technologies/motif-3":{contextWindow:262144,pricingPerMTok:{input:.5,output:2,cachedInput:.2},vision:!1,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Motif 3 is a large-scale, decoder-only Mixture-of-Experts (MoE) language model with 314 billion total parameters and 13.2 billion parameters activated per token." reasoning_effort values none/high, default high. Roster-listed only; fallback.'},"google/gemma-4-31b-it":{contextWindow:262144,pricingPerMTok:{input:.2,output:.5,cachedInput:.05},vision:!0,status:"production",description:'Vendor description (GET /v1/models, 2026-09-28): "Largest Gemma 4 instruction model for open, self-hosted chat and reasoning". reasoning_effort values none/high, default none. Lists `vision`; see the kimi-k3 note above on ai&\'s Files-API-based image/video flow being unverified here. Roster-listed only; fallback.'}},topModels:["openai/gpt-oss-120b","zai-org/glm-5.3","deepseek-ai/deepseek-v4-flash","moonshotai/kimi-k3","qwen/qwen3.8-27b","zai-org/glm-5.2","google/gemma-4-31b-it"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,pattern:"invalid_api_key|authentication_error",class:"authentication",message:"Invalid ai& API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:429,pattern:"rate_limit_exceeded|rate_limit_error",class:"rate-limit",message:"ai& rate limit exceeded. Check the X-RateLimit-Policy response header and retry with backoff, or review your plan at {setupUrl}"}],setup:{url:"https://console.aiand.com/playground",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://console.aiand.com/playground and sign in (Google, GitHub, or a magic-link email \u2014 https://docs.aiand.com/authentication/)","2. Create an organization API key under Organizations \u2192 API Keys (https://docs.aiand.com/organizations/api-keys/) \u2014 shown in full only once, and starts with sk-","3. ai& is prepaid only, no free tier: add credits via Stripe Checkout before making requests (https://docs.aiand.com/billing/credits/) \u2014 a zero balance returns HTTP 402 until credits are added","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.aiand.com/v1 (also exposes Anthropic-shaped /v1/messages, a Responses endpoint, and legacy Completions), serving zai-org GLM, Qwen, Kimi (moonshotai), DeepSeek V4, Google Gemma 4, Motif-3 and OpenAI gpt-oss open-weight models, each with a documented per-model `reasoning_effort` control. Prepaid credit billing only \u2014 no free tier; failed requests are not billed."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.aiand.com/v1/models \u2014 11 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Cme,ITr=_({"src/lib/providers/catalog/aionlabs.json"(){Cme={$schema:"./provider-catalog.schema.json",id:"aionlabs",displayName:"Aion Labs",aliases:[],tier:2,wire:{baseURL:"https://api.aionlabs.ai/v1"},models:{default:"aion-labs/aion-3.5",fallbacks:["aion-labs/aion-3.5-mini","aion-labs/aion-3.0-mini","aion-labs/aion-2.0"],defaultContextWindow:262144,defaultMaxOutputTokens:32768,catalog:{"aion-labs/aion-3.5":{contextWindow:262144,maxOutputTokens:32768,pricingPerMTok:{input:3,output:6,cachedInput:.75},vision:!1,status:"production",description:"Recommended default - the model every request example on Aion Labs' own quickstart page (https://www.aionlabs.ai/docs/quickstart/, retrieved 2026-09-29) uses, in JavaScript, Python and curl alike, and released 2026-09-23, the latest release date on the roster (shared with Aion 3.5 Mini). Vendor-described as a multi-model system built on the GLM family, described for stronger narrative structure, tension and conflict, and mature or darker themes (https://www.aionlabs.ai/docs/models/); the vendor homepage describes its API as for creative writing, roleplay, research and production workloads (https://www.aionlabs.ai/). Context 262,144 tokens, max completion 32,768 and modality text->text on the unauthenticated GET /v1/models roster (2026-09-29); $3.00 / $6.00 per MTok input/output, $0.75 cached-input read on the docs models page (https://www.aionlabs.ai/docs/models/, retrieved 2026-09-29). Reasoning cannot be disabled on this model: reasoning_effort accepts only low, high (default) or max, and reasoning tokens share the max_tokens budget (https://www.aionlabs.ai/docs/api-reference/)."},"aion-labs/aion-3.5-mini":{contextWindow:262144,maxOutputTokens:32768,pricingPerMTok:{input:.7,output:1.4,cachedInput:.18},vision:!1,status:"production",description:"Aion 3.5 Mini, released the same day as Aion 3.5 (2026-09-23); vendor-described as a multi-model system built on the GLM family (https://www.aionlabs.ai/docs/models/, which gives it the same family description as Aion 3.5 and does not say how the two differ). Roster-listed only, not called. Context 262,144, max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.70 / $1.40 per MTok input/output, $0.18 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). Reasoning cannot be disabled (reasoning_effort accepts only low, high or max per https://www.aionlabs.ai/docs/api-reference/). Fallback."},"aion-labs/aion-3.0":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:3,output:6,cachedInput:.75},vision:!1,status:"production",description:"Aion 3.0, released 2026-05-05; vendor-described as a multi-model system built on the GLM family. Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $3.00 / $6.00 per MTok input/output, $0.75 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/."},"aion-labs/aion-3.0-mini":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:.7,output:1.4,cachedInput:.18},vision:!1,status:"production",description:"Aion 3.0 Mini, released 2026-05-14; vendor-described as a multi-model system built on the DeepSeek family. Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.70 / $1.40 per MTok input/output, $0.18 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/. Fallback."},"aion-labs/aion-2.0":{contextWindow:131072,maxOutputTokens:32768,pricingPerMTok:{input:.8,output:1.6,cachedInput:.2},vision:!1,status:"production",description:"Vendor-described as a variant of DeepSeek V3.2 optimized for immersive roleplaying and storytelling (released 2025-12-21). Roster-listed only, not called. Context 131,072 (shown as 128K on the docs page), max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.80 / $1.60 per MTok input/output, $0.20 cached-input read on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort accepts none, low, medium (default), high or max per https://www.aionlabs.ai/docs/api-reference/. Fallback."},"aion-labs/aion-rp-llama-3.1-8b":{contextWindow:32768,maxOutputTokens:32768,pricingPerMTok:{input:.8,output:1.6},vision:!1,status:"production",description:"Aion-RP 1.0 (8B), vendor-described as a variant of Llama 3.1 8B optimized for immersive roleplaying and storytelling (released 2024-11-30); the only non-reasoning model on the roster. Roster-listed only, not called. Context 32,768, max completion 32,768, text->text on the unauthenticated GET /v1/models roster (2026-09-29); $0.80 / $1.60 per MTok input/output, no cached-input price, on https://www.aionlabs.ai/docs/models/ (retrieved 2026-09-29). reasoning_effort is not supported on this model (https://www.aionlabs.ai/docs/api-reference/)."}},topModels:["aion-labs/aion-3.5","aion-labs/aion-3.5-mini","aion-labs/aion-3.0","aion-labs/aion-3.0-mini","aion-labs/aion-2.0","aion-labs/aion-rp-llama-3.1-8b"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:429,class:"rate-limit",message:"Aion Labs usage limit exceeded (429 rate_limit_error). Free-tier accounts are limited to 15 requests/min, 20,000 tokens/min and 20,000 tokens/day; limits rise with lifetime credit top-ups - see https://www.aionlabs.ai/docs/rate-limits/"}],setup:{url:"https://www.aionlabs.ai/accounts/signup/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://www.aionlabs.ai/accounts/signup/ and sign up (GitHub, Google or email)","2. Create an API key from the dashboard's API keys page (https://www.aionlabs.ai/app/api-keys/, sign-in required) and copy it when it is shown","3. Free tier: the pricing page (https://www.aionlabs.ai/pricing/) offers a daily credit allowance with no card required; free-tier limits are 15 requests/min, 20,000 tokens/min and 20,000 tokens/day (https://www.aionlabs.ai/docs/rate-limits/)","4. Set {apiKeyEnvVar} in your .env file"],description:'OpenAI-compatible endpoint at https://api.aionlabs.ai/v1 (https://www.aionlabs.ai/docs/), serving a six-model Aion roster; the vendor homepage describes the API as for creative writing, roleplay, research and production workloads (https://www.aionlabs.ai/). Documented errors share one envelope, {"error":{"message","type"}}, with 400 invalid_request_error, 429 rate_limit_error and 502 server_error (https://www.aionlabs.ai/docs/api-reference/). The docs give no 401 body and none was probed without a credential, so the errorRules carry only the documented 429; auth failures use the default classifier. Non-streaming responses must finish within 125 seconds or the edge returns HTTP 524, so prefer streaming for long or reasoning-heavy requests.'},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.aionlabs.ai/v1/models \u2014 6 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",status:200,method:'public page https://www.aionlabs.ai/pricing/ \u2014 Free Tier $0, "A daily credit allowance to try agent jobs, the API, and browser chat. No card required."; https://www.aionlabs.ai/docs/rate-limits/ lists Free as the default tier on signup; credential-free, no signup performed'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Ame,RTr=_({"src/lib/providers/catalog/ambient.json"(){Ame={$schema:"./provider-catalog.schema.json",id:"ambient",displayName:"Ambient",aliases:[],tier:2,wire:{baseURL:"https://api.ambient.xyz/v1"},models:{default:"ambient/large",fallbacks:["z-ai/glm-5.2","qwen/qwen3.6-27b","qwen/qwen3.8-27b"],defaultContextWindow:202752,defaultMaxOutputTokens:202752,catalog:{"ambient/large":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.6,output:2,cachedInput:.15},vision:!1,status:"production",description:`Ambient's own recommended default \u2014 the model id used in every example on the vendor's docs (the plain chat-completions curl example and the streaming curl example both send model: "ambient/large"). Documented as "an Ambient-managed alias rather than a distinct model. Its specs mirror whatever concrete model it currently points to" (https://ambient.xyz/docs/build/models, retrieved 2026-09-28); today it mirrors z-ai/glm-5.2 exactly \u2014 identical context_length, max_output_length and pricing in the unauthenticated GET https://api.ambient.xyz/v1/models response taken 2026-09-28. Text-only (input_modalities: ["text"]); no vision. The live roster's supported_features for this id are tools, json_mode, structured_outputs, reasoning, logprobs \u2014 this is the vendor's own server-reported metadata, not a live POST probe (none was possible credential-free), so capabilities.tools and capabilities.structuredOutput are marked true on that basis alone, while the combined capabilities (tools+response_format in one request, tool-call deltas under streaming) are unverified and both structuredOutputWithTools and toolsWithStreaming are left false pending a live-keyed probe. maxOutputTokens equals the context window in the vendor's own catalog entry (202,752 tokens each, i.e. "198K" as rounded on the docs models page).`},"z-ai/glm-5.2":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.6,output:2,cachedInput:.15},vision:!1,status:"production",description:`The concrete underlying model that ambient/large currently aliases. The vendor's docs models page states "GLM 5.2 ... is the supported production model" (https://ambient.xyz/docs/build/models, retrieved 2026-09-28); other catalog ids may be previews with no guarantees. Text-only, no vision. Same live-roster numbers (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28) and the same unverified-combined-capability caveats as ambient/large \u2014 kept as a fallback pinned to a concrete id in case the ambient/large alias target changes underneath it.`},"qwen/qwen3.6-27b":{contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.32,output:3.2,cachedInput:.16},vision:!0,status:"preview",description:`Qwen3.6 27B. The live roster's input_modalities are ["text","image"] and the vendor's own description reads "natively multimodal (text + image) dense 27B, hybrid attention. Served FP8 at 32k context, thinking off." (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28). The vendor's docs models page marks non-GLM-5.2 entries as possible previews served with no guarantees, so status is preview here. vision: true is taken from input_modalities; set as models.visionModel since the default (ambient/large) is text-only. Same unverified-combined-capability caveats as the other entries (no live POST probe was possible).`},"qwen/qwen3.8-27b":{contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.32,output:3.2,cachedInput:.16},vision:!0,status:"preview",description:`Qwen3.8 27B. The live roster's own description calls it "natively multimodal (text + image + video) dense 27B, Apache 2.0, hybrid attention" but input_modalities lists only ["text","image"] \u2014 no "video" entry \u2014 so vision: true here is based on input_modalities, not the prose "video" claim, and no video-input support is declared. Same preview status and unverified-combined-capability caveats as qwen3.6-27b (unauthenticated GET https://api.ambient.xyz/v1/models, 2026-09-28).`}},topModels:["ambient/large","z-ai/glm-5.2","qwen/qwen3.6-27b","qwen/qwen3.8-27b"],visionModel:"qwen/qwen3.6-27b"},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Invalid Ambient API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:400,pattern:"Unknown model",class:"invalid-model",message:"Ambient model '{model}' not found. Pick a current model from the unauthenticated GET https://api.ambient.xyz/v1/models roster or {setupUrl}"}],setup:{url:"https://app.ambient.xyz",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://app.ambient.xyz and sign in",'2. Click "Get API key" to create a key',"3. Ambient has no free tier \u2014 the cheapest option is the $1/mo Starter plan (https://ambient.xyz/pricing); confirm current billing terms before use","4. Set {apiKeyEnvVar} in your .env file"],description:`OpenAI- and Anthropic-compatible endpoint at https://api.ambient.xyz/v1 (vendor's own docs: "Point your OpenAI or Anthropic SDK at Ambient and get verified inference in minutes, no rewrite required"). Pay-per-token API billing; no free tier. Inference is cryptographically verified via the vendor's "Proof of Logits" protocol.`},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.ambient.xyz/v1/models \u2014 4 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Ime,MTr=_({"src/lib/providers/catalog/api-route.json"(){Ime={$schema:"./provider-catalog.schema.json",id:"api-route",displayName:"API Route",aliases:["apiroute"],tier:2,wire:{baseURL:"https://global.api-route.com/v1"},models:{default:"claude-sonnet-4-6",fallbacks:["claude-haiku-4-5","deepseek-v4-flash","gemini-3.8-flash"],defaultContextWindow:1e6,defaultMaxOutputTokens:64e3,catalog:{"claude-sonnet-4-6":{contextWindow:1e6,maxOutputTokens:64e3,vision:!0,status:"production",description:"Claude Sonnet 4.6 \u2014 flagship model with 1M context, tool calling, and multimodal vision"},"claude-haiku-4-5":{contextWindow:2e5,maxOutputTokens:32768,vision:!0,status:"production",description:"Claude Haiku 4.5 \u2014 fast, high-efficiency model with 200K context, tool calling, and vision"},"deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:64e3,vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 fast, cost-effective reasoning model with 1M context"},"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:64e3,vision:!1,status:"production",description:"DeepSeek V4 Pro \u2014 powerful reasoning model with 1M context"},"gemini-3.8-flash":{contextWindow:1e6,maxOutputTokens:64e3,vision:!0,status:"production",description:"Gemini 3.8 Flash \u2014 high-speed multimodal model supporting image input and streaming"},"qwen3.8-flash":{contextWindow:128e3,maxOutputTokens:16384,vision:!1,status:"production",description:"Qwen 3.8 Flash \u2014 versatile, fast model for general instruction and coding tasks"},"kimi-k2.7-code":{contextWindow:256e3,maxOutputTokens:32768,vision:!1,status:"production",description:"Kimi K2.7 Code \u2014 specialized for coding and multi-step reasoning"},"glm-5.3-flash":{contextWindow:128e3,maxOutputTokens:16384,vision:!1,status:"production",description:"GLM 5.3 Flash \u2014 lightweight, fast conversational and instruction-following model"}},visionModel:"claude-sonnet-4-6",topModels:["claude-sonnet-4-6","claude-haiku-4-5","deepseek-v4-flash","gemini-3.8-flash","qwen3.8-flash"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{pattern:"\u8BE5\u5206\u7EC4\u4E0B\u6A21\u578B\u65E0\u53EF\u7528\u6E20\u9053|model_not_found",class:"invalid-model",message:"Model '{model}' not found or has no available channels on API Route."},{pattern:"\u65E0\u6548\u7684\u4EE4\u724C",class:"authentication",message:"Invalid API Route API key. Check {apiKeyEnvVar}."}],setup:{url:"https://api-route.com",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://api-route.com and create an account","2. Generate an API key in your console / dashboard","3. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-17",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-17",status:401},liveMatrix:{date:"2026-09-17",result:"Verified live against https://global.api-route.com/v1: GET /v1/models returned 70 models. Chat completions, streaming, function calling, streamed function calling, and structured JSON output (json_object and json_schema) verified. Multimodal vision verified on claude-sonnet-4-6, claude-haiku-4-5, and gemini-3.8-flash. Invalid API key returns 401 (\u65E0\u6548\u7684\u4EE4\u724C) and invalid model returns 503 (model_not_found). Tools and response_format were only probed SEPARATELY, never together in one request, so structuredOutputWithTools is corrected to false here pending a dedicated tools_plus_schema probe \u2014 the individual passes do not demonstrate the combined capability."},addedInPR:"pending"}}}}),Rme,PTr=_({"src/lib/providers/catalog/atlas-cloud.json"(){Rme={$schema:"./provider-catalog.schema.json",id:"atlas-cloud",displayName:"Atlas Cloud",aliases:[],tier:2,wire:{baseURL:"https://api.atlascloud.ai/v1",apiKeyFallbackEnvVars:["ATLASCLOUD_API_KEY"]},models:{default:"deepseek-ai/deepseek-v3.2",fallbacks:["deepseek-ai/deepseek-v4-flash","zai-org/glm-5.3","Qwen/Qwen3-235B-A22B-Instruct-2507"],defaultContextWindow:163840,defaultMaxOutputTokens:163840,catalog:{"deepseek-ai/deepseek-v3.2":{contextWindow:163840,pricingPerMTok:{input:.26,output:.38,cachedInput:.13},vision:!1,status:"production",description:"Chosen as default because Atlas Cloud is an aggregator with no single house model, and this is the model its own LLM API Protocols page (https://www.atlascloud.ai/docs/llm-protocols, retrieved 2026-09-29) uses in its chat-completions curl and OpenAI-SDK snippets, its Anthropic Messages example and its Responses example (the Gemini and Images examples on that page use a MODEL_ID placeholder instead, and the quick start, API Keys and LLM / Chat pages use a shorter deepseek-v3 that is not a roster id); its LLM / Chat page (https://www.atlascloud.ai/docs/models/llm) lists DeepSeek V3 first among Featured Models. Live on the unauthenticated GET https://api.atlascloud.ai/v1/models roster (2026-09-29, 120 models): context_length 163840, max_output_length 163840 (equal to the context window, so not recorded as a distinct output ceiling), FP8, input_modalities text only, supported_features json_mode, structured_outputs, tools, reasoning. Pricing from the same roster: $0.26 / $0.38 per MTok input/output, $0.13 per MTok cached-input read. Context-window conflict, unresolved by the vendor: the marketing copy and spec table on the model page (https://www.atlascloud.ai/models/deepseek-ai/deepseek-v3.2, retrieved 2026-09-29) say '128K token context length support' and 'Context Length 128K tokens', while the roster field and the same page's machine-readable reference (https://www.atlascloud.ai/models/deepseek-ai/deepseek-v3.2/llms.txt, retrieved 2026-09-29: 'Context length: 163,840 tokens', 'Max output tokens: 163,840') both say 163,840. The catalog records 163840 (here and in models.defaultContextWindow and models.defaultMaxOutputTokens) because the two API-facing sources agree on it; no request longer than 128K tokens was sent, so the range between 128K and 163,840 is declared by the vendor, not tested. Roster-verified only; not capability-probed without a key."},"deepseek-ai/deepseek-v4-flash":{contextWindow:1048576,maxOutputTokens:393216,pricingPerMTok:{input:.14,output:.28,cachedInput:.028},vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 first fallback. Live roster GET (https://api.atlascloud.ai/v1/models, 2026-09-29): context_length 1048576, max_output_length 393216, FP4, text-only input, supported_features json_mode, tools, structured_outputs. Roster pricing: $0.14 / $0.28 per MTok input/output, $0.028 per MTok cached-input read. Roster-verified only; not named in a docs example."},"zai-org/glm-5.3":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:"Zhipu GLM 5.3 \u2014 fallback from a second model family (the LLM / Chat page, https://www.atlascloud.ai/docs/models/llm, lists GLM as a featured family). Live roster GET (2026-09-29): context_length 1048576, max_output_length 131072, FP8, text-only input, supported_features json_mode, tools, reasoning, structured_outputs. Roster pricing: $1.40 / $4.40 per MTok input/output, $0.26 per MTok cached-input read. Roster-verified only."},"Qwen/Qwen3-235B-A22B-Instruct-2507":{contextWindow:131072,pricingPerMTok:{input:.2,output:.88,cachedInput:.2},vision:!1,status:"production",description:"Alibaba Qwen3 235B A22B Instruct (2507) \u2014 fallback from a third model family (Qwen is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 131072, max_output_length 131072 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, structured_outputs, tools. Roster pricing: $0.20 / $0.88 per MTok input/output, $0.20 per MTok cached-input read. Roster-verified only."},"deepseek-ai/deepseek-v4-pro":{contextWindow:1048576,maxOutputTokens:393216,pricingPerMTok:{input:1.68,output:3.38,cachedInput:.13},vision:!1,status:"production",description:"DeepSeek V4 Pro. Live roster GET (2026-09-29): context_length 1048576, max_output_length 393216, FP4, text-only input, supported_features json_mode, tools, structured_outputs. Roster pricing: $1.68 / $3.38 per MTok input/output, $0.13 per MTok cached-input read. Roster-verified only."},"zai-org/glm-5.1":{contextWindow:202752,pricingPerMTok:{input:1.26,output:3.96,cachedInput:.234},vision:!1,status:"production",description:"Zhipu GLM 5.1. Live roster GET (2026-09-29): context_length 202752, max_output_length 202752 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, tools, reasoning, structured_outputs. Roster pricing: $1.26 / $3.96 per MTok input/output, $0.234 per MTok cached-input read. Roster-verified only."},"minimaxai/minimax-m2.7":{contextWindow:196608,pricingPerMTok:{input:.3,output:1.2,cachedInput:.06},vision:!1,status:"production",description:"MiniMax M2.7 (MiniMax is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 196608, max_output_length 196608 (equal to context, not recorded separately), FP8, text-only input, supported_features json_mode, tools, structured_outputs, reasoning. Roster pricing: $0.30 / $1.20 per MTok input/output, $0.06 per MTok cached-input read. Roster-verified only."},"moonshotai/kimi-k2.6":{contextWindow:262144,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!0,status:"production",description:"Moonshot Kimi K2.6 (Kimi is a featured family on https://www.atlascloud.ai/docs/models/llm). Live roster GET (2026-09-29): context_length 262144, max_output_length 262144 (equal to context, not recorded separately), INT4, input_modalities text, image and video, hence vision: true here (an image content part is the documented OpenAI-style image_url shape on https://www.atlascloud.ai/docs/llm-protocols; not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.95 / $4.00 per MTok input/output, $0.16 per MTok cached-input read. Roster-verified only; models.visionModel."},"qwen/qwen3.5-397b-a17b":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:3.5,cachedInput:.55},vision:!0,status:"production",description:"Alibaba Qwen3.5 397B A17B. Live roster GET (2026-09-29): context_length 262144, max_output_length 65536, FP8, input_modalities text, image and video, hence vision: true here (not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.55 / $3.50 per MTok input/output, $0.55 per MTok cached-input read. Roster-verified only."},"qwen/qwen3.5-27b":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.27,output:2.16,cachedInput:.27},vision:!0,status:"production",description:"Alibaba Qwen3.5 27B. Live roster GET (2026-09-29): context_length 262144, max_output_length 65536, FP8, input_modalities text, image and video, hence vision: true here (not independently probed with a real image), supported_features json_mode, structured_outputs, tools, reasoning. Roster pricing: $0.27 / $2.16 per MTok input/output, $0.27 per MTok cached-input read. Roster-verified only."}},topModels:["deepseek-ai/deepseek-v3.2","deepseek-ai/deepseek-v4-flash","zai-org/glm-5.3","Qwen/Qwen3-235B-A22B-Instruct-2507","deepseek-ai/deepseek-v4-pro","zai-org/glm-5.1","minimaxai/minimax-m2.7","moonshotai/kimi-k2.6","qwen/qwen3.5-397b-a17b","qwen/qwen3.5-27b"],visionModel:"moonshotai/kimi-k2.6"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Atlas Cloud rejected the request with HTTP 401. Check {apiKeyEnvVar} (create a key at {setupUrl}); Atlas Cloud also answers 401 for a mistyped endpoint path, so confirm the base URL ends in /v1"},{status:402,class:"provider",message:"Atlas Cloud reports an insufficient balance (HTTP 402). Add funds at https://www.atlascloud.ai/console/billing and retry"},{status:404,class:"invalid-model",message:"Atlas Cloud model '{model}' was not found or is not available to your account (HTTP 404). Pick a current id from https://api.atlascloud.ai/v1/models"}],setup:{url:"https://www.atlascloud.ai/console/api-keys",apiKeyFormat:"^apikey-.+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://www.atlascloud.ai/login and sign up or sign in (Google, GitHub, or email and password \u2014 one page handles both, see https://www.atlascloud.ai/docs/account/sign-in)","2. Open https://www.atlascloud.ai/console/api-keys, choose Create API Key and copy it immediately \u2014 it is shown only once (https://www.atlascloud.ai/docs/api-keys), and Atlas Cloud API keys begin with apikey- (https://www.atlascloud.ai/docs/llm-protocols)","3. Billing is pay-as-you-go from a prepaid balance: the quick start's Step 3 is Add Funds with a $25 minimum top-up (https://www.atlascloud.ai/docs/get-started), and requests are rejected with 402 while the balance is insufficient (https://www.atlascloud.ai/docs/errors). The homepage FAQ also says 'No credit card required to start', but no free-tier terms are documented, so check your balance at https://www.atlascloud.ai/console/billing before relying on it","4. Set {apiKeyEnvVar} in your .env file (ATLASCLOUD_API_KEY, the name used in Atlas Cloud's own docs, is also read)"],description:`OpenAI-compatible endpoint at https://api.atlascloud.ai/v1 (https://www.atlascloud.ai/docs/llm-protocols: POST /v1/chat/completions, Bearer auth, 'Point an existing SDK at Atlas Cloud and it generally works unchanged'); the same base URL also accepts Anthropic Messages, Responses and Gemini formats, which NeuroLink does not use. The roster (unauthenticated GET /v1/models, 200, 120 models, 2026-09-29) comes back in a custom {code, msg, data} envelope rather than OpenAI's {object: 'list'} wrapper; data is still an array of {id, ...} entries. The is_ready field on that roster was false on 73 of the 120 entries (by id prefix: anthropic/ 29, openai/ 18, google/ 11, qwen/ 8, xai/ 4, moonshotai/ 2, zai-org/ 1) and absent on the other 47; the models in this catalog are entries where it is absent. Per the LLM API Protocols page, response_format (json_object and json_schema) is documented for models that advertise json_mode or structured_outputs and tools for models that advertise tools, /v1/embeddings does not exist, the gateway inserts 'You are a helpful assistant.' when no system prompt is sent, and 429 responses carry no Retry-After header (back off client-side). Error body per https://www.atlascloud.ai/docs/errors: {"code":401,"msg":"unauthorized","request_id":"...","data":null}; a wrong path also returns 401, 402 means insufficient balance, and a 404 covers models not available to the account. Billing status is unresolved: the docs and the API describe a funded balance, while the homepage FAQ says 'No credit card required to start' (the phrase 'free credits' appears only in the homepage blurbs for the GPT Image 2 and Nano Banana 2 models, with no terms) \u2014 no page states what a brand-new account can call, so no-free-tier is the conservative schema value, not a verified fact.`},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.atlascloud.ai/v1/models \u2014 120 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",method:"public pages https://www.atlascloud.ai/docs/billing, /docs/billing/topup, /docs/billing/credits, /docs/get-started and the https://www.atlascloud.ai homepage \u2014 pay-as-you-go prepaid balance, $25 minimum top-up, 402 on insufficient balance; homepage FAQ separately says 'No credit card required to start'; the pages do not reconcile; credential-free"},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Mme,OTr=_({"src/lib/providers/catalog/avian-io.json"(){Mme={$schema:"./provider-catalog.schema.json",id:"avian-io",displayName:"Avian",aliases:["avian"],tier:2,wire:{baseURL:"https://api.avian.io/v1"},models:{default:"deepseek/deepseek-v4-pro-0813",fallbacks:["deepseek/deepseek-v4-flash","deepseek/deepseek-v3.2","z-ai/glm-5.2"],defaultContextWindow:163840,defaultMaxOutputTokens:65536,catalog:{"deepseek/deepseek-v4-pro-0813":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:.594,output:1.782,cachedInput:.0198},vision:!1,status:"production",description:'Recommended default - the model Avian itself promotes: every avian.io page opened on 2026-09-29 (home, docs, models, pricing, about) carries the banner "DeepSeek V4 Pro 0813 is now live on Avian. Try it today". Not itself used in the docs code examples, which all name the legacy deepseek/deepseek-v3.2. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $0.594/$1.782 per MTok input/output, $0.0198 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false.'},"deepseek/deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:.0805,output:.161,cachedInput:.0165},vision:!1,status:"production",description:"Fallback - the lowest input and output price on the roster, and the first model listed. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $0.0805/$0.161 per MTok input/output, $0.0165 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"deepseek/deepseek-v3.2":{contextWindow:163840,maxOutputTokens:65536,pricingPerMTok:{input:.23,output:.33,cachedInput:.012},vision:!1,status:"production",description:"Fallback - the model named in every code example on https://avian.io/docs/, including its Function Calling and Streaming examples (the only model with a documented tool-call example); the vendor labels it (Legacy), so it may be retired. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 163,840, max_output 65,536, $0.23/$0.33 per MTok input/output, $0.012 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5.2":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.495,output:1.733,cachedInput:.124},vision:!1,status:"production",description:"Fallback - the highest-numbered GLM on the roster, 1M context. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.495/$1.733 per MTok input/output, $0.124 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"deepseek/deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:393216,pricingPerMTok:{input:1.305,output:2.61,cachedInput:.10875},vision:!1,status:"production",description:"DeepSeek V4 Pro (the undated build), roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,000,000, max_output 393,216, $1.305/$2.61 per MTok input/output, $0.10875 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"minimax/minimax-m2.5":{contextWindow:196608,maxOutputTokens:131072,pricingPerMTok:{input:.27,output:1.08,cachedInput:.15},vision:!1,status:"production",description:"MiniMax M2.5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 196,608, max_output 131,072, $0.27/$1.08 per MTok input/output, $0.15 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5":{contextWindow:204800,maxOutputTokens:131072,pricingPerMTok:{input:.516,output:2.322,cachedInput:.129},vision:!1,status:"production",description:"Zhipu GLM-5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 204,800, max_output 131,072, $0.516/$2.322 per MTok input/output, $0.129 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"z-ai/glm-5.1":{contextWindow:202752,maxOutputTokens:202752,pricingPerMTok:{input:.743,output:2.971,cachedInput:.186},vision:!1,status:"production",description:"Zhipu GLM-5.1, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 202,752, max_output 202,752, $0.743/$2.971 per MTok input/output, $0.186 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"moonshotai/kimi-k2.5":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.45,output:2.2,cachedInput:.225},vision:!1,status:"production",description:"Moonshot Kimi K2.5, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 262,144, max_output 262,144, $0.45/$2.2 per MTok input/output, $0.225 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"moonshotai/kimi-k2.6":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Moonshot Kimi K2.6, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 262,144, max_output 262,144, $0.95/$4 per MTok input/output, $0.16 cache-read, reasoning flag false. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"xiaomi/mimo-v2.6-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.2,output:.4,cachedInput:.05},vision:!1,status:"production",description:"Xiaomi MiMo-V2.6 Flash, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.2/$0.4 per MTok input/output, $0.05 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."},"xiaomi/mimo-v2.6-pro":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.435,output:.87,cachedInput:.0036},vision:!1,status:"production",description:"Xiaomi MiMo-V2.6 Pro, roster-listed only. Unauthenticated GET https://api.avian.io/v1/models roster (2026-09-29, 13 models): context_length 1,048,576, max_output 131,072, $0.435/$0.87 per MTok input/output, $0.0036 cache-read, reasoning flag true. The same prices, and the rounded context and max-output figures, are stated on https://avian.io/models/ and https://avian.io/pricing/. No vendor page says this model accepts image input, so vision is false."}},topModels:["deepseek/deepseek-v4-pro-0813","deepseek/deepseek-v4-flash","deepseek/deepseek-v3.2","z-ai/glm-5.2","deepseek/deepseek-v4-pro","minimax/minimax-m2.5","z-ai/glm-5","z-ai/glm-5.1","moonshotai/kimi-k2.5","moonshotai/kimi-k2.6","xiaomi/mimo-v2.6-flash","xiaomi/mimo-v2.6-pro"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid or missing Avian API key (HTTP 401). Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"Avian account has an insufficient credit balance (HTTP 402). Add prepaid credits \u2014 see https://avian.io/pricing/"}],setup:{url:"https://avian.io/accounts/signup/",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://avian.io/accounts/signup/ and sign up with Google or a work email and password",'2. Create an API key from your signed-in account \u2014 the public pages only say "Get your API key in under a minute" (https://avian.io/pricing/) and do not name the key page; the docs examples show keys that start with avian-','3. Prepaid credits only: add credits before calling the API (https://avian.io/pricing/ lists $50, $100, $150 and $250 packages); the sign-up buttons say "Get Started Free" but no free credits are stated anywhere, and the docs list HTTP 402 for an insufficient credit balance (https://avian.io/docs/)',"4. Set {apiKeyEnvVar} in your .env file (the vendor's homepage example reads AVIAN_API_KEY, which NeuroLink does not)"],description:'OpenAI-compatible endpoint at https://api.avian.io/v1 (https://avian.io/docs/: "The Avian API is fully OpenAI-compatible"), serving 13 open-weight chat models from DeepSeek, MiniMax, Zhipu, Moonshot and Xiaomi on prepaid credits. The docs list the error statuses 400, 401, 402, 429 and 500 but describe the body only as "a JSON body with a descriptive message", so errorRules match the status codes alone.'},evidence:{rosterVerified:{date:"2026-09-29",status:200,method:"unauthenticated GET https://api.avian.io/v1/models \u2014 13 models; credential-free, no key used"},billingProbe:{date:"2026-09-29",method:'public page https://avian.io/pricing/ \u2014 "Simple per-token pricing with prepaid credits. No subscriptions, no commitments"; no free tier or free credits stated; credential-free'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Pme,DTr=_({"src/lib/providers/catalog/baseten.json"(){Pme={$schema:"./provider-catalog.schema.json",id:"baseten",displayName:"Baseten",aliases:[],tier:2,wire:{baseURL:"https://inference.baseten.co/v1"},models:{default:"zai-org/GLM-5.3-Flash",fallbacks:["zai-org/GLM-5.3-Flash","zai-org/GLM-5.3","zai-org/GLM-5.2"],defaultContextWindow:1048576,defaultMaxOutputTokens:131072,catalog:{"openai/gpt-oss-120b":{contextWindow:128072,maxOutputTokens:128072,pricingPerMTok:{input:.1,output:.5,cachedInput:.1},vision:!1,status:"production",description:"OpenAI GPT-OSS 120B; general-purpose model with controllable reasoning"},"zai-org/GLM-4.7":{contextWindow:2e5,maxOutputTokens:2e5,pricingPerMTok:{input:.6,output:2.2,cachedInput:.12},vision:!1,status:"production",description:"GLM 4.7; fast general-purpose model with 200K context and enhanced tool use"},"moonshotai/Kimi-K2.6":{contextWindow:262e3,maxOutputTokens:262e3,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Kimi K2.6; agentic and coding model for multi-step reasoning and tool use"},"deepseek-ai/DeepSeek-V4-Pro":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.74,output:3.48,cachedInput:.145},vision:!1,status:"production",description:"DeepSeek V4 Pro; 1M-context mixture-of-experts model for agentic workflows and coding"},"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B":{contextWindow:202800,maxOutputTokens:202800,pricingPerMTok:{input:.6,output:2.4,cachedInput:.12},vision:!1,status:"production",description:"NVIDIA Nemotron 3 Ultra; flagship reasoning and non-reasoning model for code and agentic execution"},"zai-org/GLM-5.2":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.14},vision:!1,status:"production",description:"GLM 5.2; 1M-context reasoning model"},"moonshotai/Kimi-K2.7-Code":{contextWindow:262e3,maxOutputTokens:262e3,pricingPerMTok:{input:.95,output:4,cachedInput:.16},vision:!1,status:"production",description:"Kimi K2.7 Code; model for complex coding, code reasoning and long-horizon development"},"deepseek-ai/DeepSeek-V4-Flash-0731":{contextWindow:1048576,maxOutputTokens:384e3,pricingPerMTok:{input:.13,output:.26,cachedInput:.028},vision:!1,status:"production",description:"DeepSeek V4 Flash 0731; fast, low-cost 1M-context mixture-of-experts model"},"thinkingmachines/inkling":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:1,output:4.05,cachedInput:.17},vision:!1,status:"production",description:"Thinking Machines Inkling; 1M-context reasoning model"},"zai-org/GLM-5.2-Fast":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:2.1,output:6.6,cachedInput:.21},vision:!1,status:"production",description:"GLM 5.2 Fast; 1M-context model"},"moonshotai/Kimi-K3":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:3,output:15,cachedInput:.3},vision:!1,status:"production",description:"Kimi K3; 1M-context model"},"thinkingmachines/inkling-small":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:.5,output:1.2,cachedInput:.1},vision:!1,status:"production",description:"Thinking Machines Inkling Small; 1M-context reasoning model"},"deepseek-ai/DeepSeek-V4-Pro-0813":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.32,output:3.96,cachedInput:.132},vision:!1,status:"production",description:"DeepSeek V4 Pro 0813; dated 1M-context mixture-of-experts model for agentic workflows and coding"},"zai-org/GLM-5.3-Flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.15,output:.5,cachedInput:.03},vision:!0,status:"production",description:"Recommended - GLM 5.3 Flash; 1M-context reasoning model with live-verified image input"},"zai-org/GLM-5.3":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.14},vision:!1,status:"production",description:"GLM 5.3; 1M-context reasoning model"},"zai-org/GLM-5.3-Fast":{contextWindow:1048576,maxOutputTokens:262144,pricingPerMTok:{input:2.1,output:6.6,cachedInput:.21},vision:!0,status:"production",description:"GLM 5.3 Fast; 1M-context reasoning model with image input"}},visionModel:"zai-org/GLM-5.3-Flash",topModels:["zai-org/GLM-5.3-Flash","zai-org/GLM-5.3","zai-org/GLM-5.2","openai/gpt-oss-120b","deepseek-ai/DeepSeek-V4-Flash-0731"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[{pattern:"please check the api-key you provided",class:"authentication",message:"Invalid Baseten API key. Check {apiKeyEnvVar}. Get one at https://app.baseten.co/"}],setup:{url:"https://app.baseten.co/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://app.baseten.co/ and sign in or create a workspace","2. Review the current Baseten billing and credit terms in the console before making requests","3. Create a personal API key in the Baseten console","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-03",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-03",status:403},liveMatrix:null,addedInPR:"pending"}}}}),Ome,NTr=_({"src/lib/providers/catalog/bee-heossi.json"(){Ome={$schema:"./provider-catalog.schema.json",id:"bee-heossi",displayName:"Bee by HEOSSI",aliases:[],tier:2,wire:{baseURL:"https://api.bee.heossi.com/bee"},models:{default:"bee-cell",fallbacks:["bee-brood","bee-comb","bee-buzz","bee-hive","bee-swarm"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"bee-cell":{contextWindow:128e3,pricingPerMTok:{input:.3,output:1.2},vision:!1,status:"production",description:"Bee Cell 1.0 \u2014 HEOSSI's free, entry-tier model and the one used in every SDK/curl example on https://bee.heossi.com/docs/sdks (retrieved 2026-09-28), so it is the most defensible default without a live probe. Free hosted access, no card required: 'Full Bee experience with dynamic fair use \u2014 free to start' (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 128K and $0.30 / $1.20 per 1M input/output tokens per the same pricing page; no per-request output-token ceiling is documented. The 2026-07-11 changelog states tool/function calling and JSON-mode structured output are live on Comb, Buzz and Hive only \u2014 Cell is not named, so tools/structured output are not assumed here. No image input is documented for this tier. Roster-verified only (unauthenticated GET /bee/models, 2026-09-28); no live capability probe was run (credential-free onboarding)."},"bee-cell-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-cell alias (current_snapshot field on GET /bee/models, 2026-09-28). Same tier as bee-cell; see that entry for pricing/context. Roster-listed only."},"bee-brood":{contextWindow:256e3,pricingPerMTok:{input:.6,output:2.4},vision:!1,status:"production",description:"Bee Brood 1.0 \u2014 second tier, $30/mo on the Workspace track or $0.60 / $2.40 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 256K per the same page. Not named among Comb/Buzz/Hive in the 2026-07-11 changelog's tool-calling/JSON-mode announcement, so those capabilities are not assumed for this tier. Fallback; roster-verified only, not capability-probed."},"bee-brood-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-brood alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-comb":{contextWindow:256e3,pricingPerMTok:{input:1.25,output:5},vision:!1,status:"production",description:"Bee Comb 2.0 (current snapshot bee-comb-20260827-r1 per GET /bee/models, 2026-09-28) \u2014 base context 256K, $1.25 / $5.00 per 1M input/output tokens (https://bee.heossi.com/pricing, retrieved 2026-09-28). The 2026-07-11 changelog also describes a separately routed long-context mode serving up to 1,010,000 tokens for Comb and Buzz \u2014 that is a distinct routed path, not modeled as this catalog entry's context window. The same changelog entry states tool/function calling and JSON-mode structured output are live on Comb (along with Buzz and Hive) \u2014 see capabilities.tools ('model-dependent') and the provider-level structuredOutput note. Fallback; roster-verified only, not capability-probed."},"bee-comb-20260710-r1":{vision:!1,status:"production",description:"Older immutable pinned snapshot of bee-comb, superseded by bee-comb-20260827-r1 as the current_snapshot (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-comb-20260827-r1":{vision:!1,status:"production",description:"Current immutable pinned snapshot behind the bee-comb alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-buzz":{contextWindow:256e3,pricingPerMTok:{input:2.5,output:10},vision:!1,status:"production",description:"Bee Buzz 1.0 \u2014 HEOSSI's 'Popular' Workspace tier ($400/mo) / $2.50 / $10.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Context 256K, with the same 1,010,000-token routed long-context mode documented for Comb and Buzz (2026-07-11 changelog). Named alongside Comb and Hive in the 2026-07-11 changelog's tool-calling/JSON-mode-live announcement. Fallback; roster-verified only, not capability-probed."},"bee-buzz-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-buzz alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-hive":{contextWindow:256e3,pricingPerMTok:{input:5,output:20},vision:!1,status:"production",description:"Bee Hive 1.0 \u2014 $1,000/mo Workspace tier with a 99.5% SLA, or $5.00 / $20.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). Base context 256K; the same pricing page says Hive reaches a 1M-token mode 'via Comb', a routing detail not modeled as this entry's context window. Named alongside Comb and Buzz in the 2026-07-11 changelog's tool-calling/JSON-mode-live announcement. Fallback; roster-verified only, not capability-probed."},"bee-hive-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-hive alias (GET /bee/models, 2026-09-28). Roster-listed only."},"bee-swarm":{contextWindow:1e6,pricingPerMTok:{input:25,output:150},vision:!1,status:"production",description:"Bee Swarm 1.0 \u2014 top Workspace tier ($4,000/mo, 99.9% SLA) / $25.00 / $150.00 per 1M input/output tokens on the API track (https://bee.heossi.com/pricing, retrieved 2026-09-28). '1M natively' per the 2026-07-11 changelog. Not named in that changelog's Comb/Buzz/Hive tool-calling-and-JSON-mode announcement, so those capabilities are not assumed for this tier. Fallback; roster-verified only, not capability-probed."},"bee-swarm-20260710-r1":{vision:!1,status:"production",description:"Immutable pinned snapshot behind the bee-swarm alias (GET /bee/models, 2026-09-28). Roster-listed only."}},topModels:["bee-cell","bee-brood","bee-comb","bee-buzz","bee-hive","bee-swarm"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[{status:401,class:"authentication",message:"Invalid Bee API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:402,class:"provider",message:"Bee account has insufficient funded usage credit. Top up your prepaid wallet at https://bee.heossi.com/pricing"},{status:403,class:"provider",message:"The requested Bee model or capability is not included in your current plan. Upgrade at https://bee.heossi.com/pricing or {setupUrl}"},{status:429,class:"rate-limit",message:"Bee API allowance or rate limit reached. Wait and retry, or review your plan's usage caps at https://bee.heossi.com/pricing"}],setup:{url:"https://workspace.bee.heossi.com/account/api-keys",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://workspace.bee.heossi.com/account/api-keys and sign in (or create a Bee Workspace account)","2. Create an API key \u2014 the free Bee Cell / Bee Pollen tier needs no credit card ('Free hosted access \u2014 no card', https://bee.heossi.com/pricing)","3. Higher tiers (Brood/Comb/Buzz/Hive/Swarm) draw from a prepaid wallet billed per token; see https://bee.heossi.com/pricing for current rates","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.bee.heossi.com/bee \u2014 note the base path is /bee, not /v1. Six model tiers (Cell through Swarm); the free Cell/Pollen tier requires no card, paid tiers meter a prepaid wallet per token (https://bee.heossi.com/pricing)."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.bee.heossi.com/bee/models \u2014 13 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Dme,LTr=_({"src/lib/providers/catalog/cerebras.json"(){Dme={$schema:"./provider-catalog.schema.json",id:"cerebras",displayName:"Cerebras",aliases:[],tier:2,wire:{baseURL:"https://api.cerebras.ai/v1"},models:{default:"gpt-oss-120b",fallbacks:["gpt-oss-120b"],defaultContextWindow:65536,defaultMaxOutputTokens:8192,catalog:{"gpt-oss-120b":{contextWindow:65536,pricingPerMTok:{input:.35,output:.75},vision:!1,status:"production",description:"Recommended - OpenAI GPT-OSS 120B (open-weight); wafer-scale speed"},"gemma-4-31b":{contextWindow:65536,pricingPerMTok:{input:.99,output:1.49},vision:!1,status:"retired",description:"Retired 2026-09 \u2014 gone from the authenticated /v1/models roster; the nightly vision test has failed on it since 2026-09-10"}},topModels:["gpt-oss-120b"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"wrong_api_key|Wrong API Key|invalid_api_key",class:"authentication",message:"Invalid Cerebras API key. Check {apiKeyEnvVar}. Get one at https://cloud.cerebras.ai"}],setup:{url:"https://cloud.cerebras.ai",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:["1. Visit: https://cloud.cerebras.ai","2. Sign in or create a free Cerebras account","3. Create an API key under API Keys","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-28",method:"authenticated GET /v1/models \u2014 roster is now gpt-oss-120b and qwen-3.8-27b; gemma-4-31b is gone, so it is retired and Cerebras has no verified vision model. qwen-3.8-27b is not added: the account answers 402 payment_required, so no chat call could verify it"},authProbe:{date:"2026-08-26",status:401,code:"wrong_api_key"},liveMatrix:{date:"2026-08-30",result:`Both ids answer. Vision re-tested with a valid 64x64 PNG: gemma-4-31b describes it correctly, so its vision flag is now true (it was false); gpt-oss-120b answers "Content type 'image_url' is not supported by selected model".`},addedInPR:"https://github.com/juspay/neurolink/pull/1561"}}}}),Nme,FTr=_({"src/lib/providers/catalog/charm-hyper.json"(){Nme={$schema:"./provider-catalog.schema.json",id:"charm-hyper",displayName:"Charm Hyper",aliases:[],tier:2,wire:{baseURL:"https://hyper.charm.land/v1"},models:{default:"deepseek-v4-pro",fallbacks:["deepseek-v4-flash","deepseek-v4.1-flash","kimi-k2-thinking","glm-5.3","qwen3.8-max"],defaultContextWindow:1e6,defaultMaxOutputTokens:384e3,catalog:{"deepseek-v4-pro":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:2.4,output:4.8,cachedInput:.2},vision:!1,status:"production",description:'DeepSeek V4 Pro; reasoning effort levels high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28). Default for this entry \u2014 chosen as the `model` value used in Hyper\'s own worked request example on the Chat Completions reference page (docs/api/openai-chat-completions.html), the doc page for the exact endpoint NeuroLink calls. Hyper does not label any model "default" or "recommended" anywhere in its docs; the homepage quick-start\'s own example instead uses deepseek-v4-flash. No live capability probe was run (credential-free onboarding) \u2014 reconfirm this choice once a key is available.'},"deepseek-v4.1-flash":{contextWindow:1048576,maxOutputTokens:32768,pricingPerMTok:{input:.3,output:1.2,cachedInput:.03},vision:!0,status:"production",description:"DeepSeek V4.1 Flash \u2014 newest DeepSeek Flash snapshot on the roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-flash":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:.2,output:.4,cachedInput:.04},vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 used as the worked `model` example on Hyper's homepage quick-start (a different example than the Chat Completions reference page, which uses deepseek-v4-pro); reasoning effort levels low/high/max (default high). Hyper's marketing page docs/models.html lists 'DeepSeek V4 Flash' among models with attachment support, but the live /v1/models roster reports capabilities.vision=false for this id \u2014 a documented inconsistency, flagged rather than resolved. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-pro-0813":{contextWindow:1e6,maxOutputTokens:262144,pricingPerMTok:{input:1.437216,output:4.311648,cachedInput:.047907},vision:!1,status:"production",description:"DeepSeek V4 Pro, 0813 snapshot \u2014 dated pin of the Pro line; reasoning effort levels low/high (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"deepseek-v4-flash-0731":{contextWindow:1e6,maxOutputTokens:384e3,pricingPerMTok:{input:.44,output:1.32,cachedInput:.044},vision:!1,status:"production",description:"DeepSeek V4 Flash, 0731 snapshot \u2014 dated pin of the Flash line; reasoning effort levels low/high (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k3":{contextWindow:1048576,maxOutputTokens:16e3,pricingPerMTok:{input:3.2664,output:16.332,cachedInput:.32664},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 vision-capable per the live roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k2-thinking":{contextWindow:262144,maxOutputTokens:26214,pricingPerMTok:{input:.6,output:2.5,cachedInput:.3},vision:!1,status:"production",description:"Moonshot Kimi K2 Thinking \u2014 reasoning-first Kimi variant; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"kimi-k2.7-code":{contextWindow:256e3,maxOutputTokens:16e3,pricingPerMTok:{input:1.03436,output:4.3552,cachedInput:.206872},vision:!0,status:"production",description:"Moonshot Kimi K2.7 Code \u2014 code-focused Kimi variant, vision-capable per the live roster; reasoning effort levels low/high/xhigh (default high). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.3":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:1.52432,output:4.79072,cachedInput:.283088},vision:!1,status:"production",description:"Zhipu GLM 5.3. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.3-flash":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.16332,output:.5444,cachedInput:.031575},vision:!0,status:"production",description:"Zhipu GLM 5.3 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"glm-5.2":{contextWindow:1e6,maxOutputTokens:32768,pricingPerMTok:{input:1.52432,output:4.79072,cachedInput:.152432},vision:!1,status:"production",description:"Zhipu GLM 5.2 \u2014 prior GLM generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"minimax-m3":{contextWindow:512e3,maxOutputTokens:512e3,pricingPerMTok:{input:.32664,output:1.30656,cachedInput:.064239},vision:!0,status:"production",description:"MiniMax M3 \u2014 vision-capable per the live roster; unusually large max_output_tokens (512K, equal to its context window). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"minimax-m2.7":{contextWindow:262100,maxOutputTokens:6553,pricingPerMTok:{input:.484,output:1.852,cachedInput:.242},vision:!1,status:"production",description:"MiniMax M2.7 \u2014 prior MiniMax generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},inkling:{contextWindow:1048576,maxOutputTokens:65536,pricingPerMTok:{input:1.0888,output:4.40964,cachedInput:.185096},vision:!0,status:"production",description:"Inkling \u2014 vision-capable model on the roster; vendor lineage not stated on the pages read for this entry. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-max":{contextWindow:1e6,maxOutputTokens:65536,pricingPerMTok:{input:2,output:6,cachedInput:.25},vision:!0,status:"production",description:"Alibaba Qwen3.8 Max \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-flash":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:.15,output:.47,cachedInput:.016},vision:!0,status:"production",description:"Alibaba Qwen3.8 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-27b":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:.5,output:3,cachedInput:.1},vision:!0,status:"production",description:"Alibaba Qwen3.8 27B \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.8-2.4t-a95b":{contextWindow:1e6,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:6,cachedInput:.25},vision:!1,status:"production",description:"Alibaba Qwen3.8 2.4T-A95B (large MoE variant). Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-max":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:2.5,output:7.5,cachedInput:.5},vision:!1,status:"production",description:"Alibaba Qwen3.7 Max \u2014 prior Qwen generation. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-plus":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:1.2,output:4.8,cachedInput:.24},vision:!0,status:"production",description:"Alibaba Qwen3.7 Plus \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"qwen3.7-flash":{contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:.2,output:.8,cachedInput:.04},vision:!0,status:"production",description:"Alibaba Qwen3.7 Flash \u2014 vision-capable per the live roster. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"gpt-oss-120b":{contextWindow:131072,maxOutputTokens:13107,pricingPerMTok:{input:.178,output:.68,cachedInput:.089},vision:!1,status:"production",description:"OpenAI's open-weight gpt-oss-120b. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."},"gemma-4-26b-a4b-it":{contextWindow:256e3,maxOutputTokens:25600,pricingPerMTok:{input:.098,output:.334,cachedInput:.049},vision:!1,status:"production",description:"Google Gemma 4 26B A4B, instruction-tuned. Context window, max output tokens, vision and pricing per GET https://hyper.charm.land/v1/models (unauthenticated, 2026-09-28)."}},topModels:["deepseek-v4-pro","deepseek-v4.1-flash","deepseek-v4-flash","kimi-k3","kimi-k2-thinking","glm-5.3","glm-5.3-flash","qwen3.8-max"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"invalid api key",class:"authentication",message:"Invalid Charm Hyper API key (keys start with sk-hyper-). Check {apiKeyEnvVar}. Get one at {setupUrl}"}],setup:{url:"https://hyper.charm.land/auth?mode=signup",apiKeyFormat:"^sk-hyper-.+$",billingPolicy:"free-tier",instructions:["1. Visit: https://hyper.charm.land/auth?mode=signup and sign up (Google, GitHub, or email)","2. Copy an API key from the Hyper Dashboard \u2014 it starts with sk-hyper-","3. Free plan: $0/month, 100 Hypercredits/month (1 Hypercredit \u2248 $0.05); paid subscription ($20/month, 250 Hypercredits/day) and prepaid bundles (never expire) are also available","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://hyper.charm.land/v1 (POST /v1/chat/completions; Hyper also documents an Anthropic-compatible /v1/messages, not used by this entry). GET /v1/models is public and needs no key. Docs- and roster-verified only \u2014 this entry was onboarded credential-free, so no authenticated request, tool-call, or structured-output probe was ever made; see evidence.liveMatrix (null) and re-run docs/provider-integration/tiers/tier-2-catalog-entry.md's live-verification steps before treating capabilities as proven."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://hyper.charm.land/v1/models \u2014 23 models, e.g. deepseek-v4.1-flash, deepseek-v4-pro-0813, kimi-k3, glm-5.3, minimax-m3; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Lme,$Tr=_({"src/lib/providers/catalog/chutes.json"(){Lme={$schema:"./provider-catalog.schema.json",id:"chutes",displayName:"Chutes",aliases:[],tier:2,wire:{baseURL:"https://llm.chutes.ai/v1"},models:{default:"moonshotai/Kimi-K2.6-TEE",fallbacks:["moonshotai/Kimi-K3-TEE","deepseek-ai/DeepSeek-V4-Flash-0731-TEE","zai-org/GLM-5.2-TEE","Qwen/Qwen3.5-397B-A17B-TEE","Qwen/Qwen3.6-27B-TEE","Qwen/Qwen3.8-27B-TEE","Qwen/Qwen3-235B-A22B-Thinking-2507-TEE","deepseek-ai/DeepSeek-V3.2-TEE","zai-org/GLM-5.1-TEE","google/gemma-4-31B-turbo-TEE","Qwen/Qwen3-32B-TEE","unsloth/Mistral-Nemo-Instruct-2407-TEE","Nemotron-3-Nano-Omni-30B-TEE"],defaultContextWindow:262144,defaultMaxOutputTokens:65535,catalog:{"moonshotai/Kimi-K2.6-TEE":{contextWindow:262144,maxOutputTokens:65535,pricingPerMTok:{input:.5,output:2.85,cachedInput:.05},vision:!0,status:"production",description:`Default \u2014 this is the model Chutes' own homepage code sample uses for the documented POST https://llm.chutes.ai/v1/chat/completions example (model, messages, stream:true, Authorization: Bearer $CHUTES_API_KEY), the strongest wire-shape evidence available without a key. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). The public roster entry (root moonshotai/Kimi-K3, confidential_compute:true, owned_by vllm) lists context_length 262144, max_output_length 65535, input_modalities [text, image, video] and supported_features [json_mode, structured_outputs, tools, reasoning] \u2014 matched by the function-calling guide (https://chutes.ai/docs/guides/agents-and-tools, OpenAI-shaped tools/tool_choice/tool_call_id) and by the JSON-mode example on the same page (response_format:{type:"json_object"}). None of this was exercised end to end \u2014 no API key was used, so vision/tool/JSON-mode support and pricing are roster- and docs-verified only, not live-probed. Pricing ($0.50/$2.85 per MTok in/out, $0.05 cached) is read directly from the same GET /v1/models response and is consistent with https://chutes.ai/pricing's stated USD-per-1M-token PAYG billing.`},"moonshotai/Kimi-K3-TEE":{contextWindow:1048576,maxOutputTokens:65535,pricingPerMTok:{input:3,output:15,cachedInput:.3},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 largest context window in the roster (1,048,576 tokens) and the same declared feature set as the default (json_mode, structured_outputs, tools, reasoning) plus image/video input modalities per the public /v1/models entry. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not itself capability-probed (no key used); fallback."},"deepseek-ai/DeepSeek-V4-Flash-0731-TEE":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:.44,output:1.32,cachedInput:.044},vision:!1,status:"production",description:"DeepSeek V4 Flash (0731 snapshot) \u2014 1,048,576-token context window and the largest documented max_output_length in the roster (131,072). Text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"zai-org/GLM-5.2-TEE":{contextWindow:1048576,maxOutputTokens:65535,pricingPerMTok:{input:1.25,output:3.95,cachedInput:.125},vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 1,048,576-token context window, text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.5-397B-A17B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.45,output:3,cachedInput:.045},vision:!0,status:"production",description:"Qwen 3.5 397B-A17B (MoE) \u2014 image input documented in input_modalities alongside the full json_mode/tools/structured_outputs/reasoning feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.6-27B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.3,output:2,cachedInput:.03},vision:!0,status:"production",description:"Qwen 3.6 27B \u2014 image input documented in input_modalities alongside the full feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3.8-27B-TEE":{contextWindow:262144,maxOutputTokens:65536,pricingPerMTok:{input:.24,output:2.2,cachedInput:.024},vision:!0,status:"production",description:"Qwen 3.8 27B \u2014 image input documented in input_modalities alongside the full feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3-235B-A22B-Thinking-2507-TEE":{contextWindow:262144,maxOutputTokens:262144,pricingPerMTok:{input:.2989,output:1.1957,cachedInput:.0299},vision:!1,status:"production",description:"Qwen 3 235B-A22B Thinking (2507 snapshot) \u2014 a reasoning-focused variant whose max_output_length equals its full 262,144-token context window, so a generous max_tokens budget matters most for this entry. Text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"deepseek-ai/DeepSeek-V3.2-TEE":{contextWindow:131072,maxOutputTokens:65536,pricingPerMTok:{input:1,output:1,cachedInput:.1},vision:!1,status:"production",description:"DeepSeek V3.2 \u2014 text-only input per input_modalities, full documented feature set. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"zai-org/GLM-5.1-TEE":{contextWindow:202752,maxOutputTokens:65535,pricingPerMTok:{input:.98,output:3.08,cachedInput:.098},vision:!1,status:"production",description:"Zhipu GLM-5.1 \u2014 prior GLM generation, text-only input per input_modalities. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"google/gemma-4-31B-turbo-TEE":{contextWindow:131072,maxOutputTokens:65536,pricingPerMTok:{input:.12,output:.37,cachedInput:.012},vision:!0,status:"production",description:"Google Gemma 4 31B Turbo \u2014 image input documented in input_modalities. The roster reports a 262,144 max_model_len against a smaller 131,072 context_length; contextWindow here uses the latter (context_length), the field name this catalog treats as the documented context window \u2014 see https://llm.chutes.ai/v1/models. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"Qwen/Qwen3-32B-TEE":{contextWindow:40960,maxOutputTokens:40960,pricingPerMTok:{input:.104,output:.416,cachedInput:.0104},vision:!1,status:"production",description:"Qwen 3 32B \u2014 smallest documented context window in the roster (40,960 tokens), text-only input. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback."},"unsloth/Mistral-Nemo-Instruct-2407-TEE":{pricingPerMTok:{input:.0245,output:.0978,cachedInput:.0024},vision:!1,status:"production",description:"Mistral Nemo Instruct (2407, Unsloth build) \u2014 the public /v1/models entry gives only max_model_len (131,072); context_length, max_output_length, input_modalities and supported_features are all null/absent for this id, so no context window, output cap, vision or tool/JSON-mode capability is asserted here (contextWindow and maxOutputTokens are omitted rather than guessed from max_model_len, which is not documented as equivalent to either). credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Cheapest model in the roster by list price. Roster-listed only; not capability-probed; fallback."},"Nemotron-3-Nano-Omni-30B-TEE":{pricingPerMTok:{input:.0245,output:.0978,cachedInput:.0024},vision:!1,status:"production",description:'Nemotron 3 Nano Omni 30B \u2014 same undocumented-field pattern as unsloth/Mistral-Nemo-Instruct-2407-TEE: only max_model_len (131,072) is given; context_length, max_output_length, input_modalities and supported_features are all null/absent. The "Omni" name suggests multimodal capability, but nothing in the public roster confirms it, so vision is left false here rather than inferred from the name. credential-free roster probe: unauthenticated GET https://llm.chutes.ai/v1/models on 2026-09-28 (HTTP 200, 14 models). Roster-listed only; not capability-probed; fallback.'}},topModels:["moonshotai/Kimi-K2.6-TEE","moonshotai/Kimi-K3-TEE","deepseek-ai/DeepSeek-V4-Flash-0731-TEE","zai-org/GLM-5.2-TEE","Qwen/Qwen3.5-397B-A17B-TEE","deepseek-ai/DeepSeek-V3.2-TEE"]},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!0},errorRules:[],setup:{url:"https://chutes.ai/signup",apiKeyFormat:"^cpk_[A-Za-z0-9_-]+$",billingPolicy:"no-free-tier",instructions:["1. Visit: https://chutes.ai/signup and create an account (pick a username; sign up with Google, GitHub, or optionally link a Bittensor wallet \u2014 no card is asked for on this page)","2. Manage billing and create API keys at https://api.chutes.ai (account/billing/API-key management is a separate host from the inference API)","3. Review current token pricing at https://chutes.ai/pricing before making requests \u2014 pay-as-you-go per token (USD per 1M tokens) plus optional paid Plus/Pro plans; no free trial credits are documented, so budget for a funded account from the first call","4. Set {apiKeyEnvVar} in your .env file \u2014 keys are issued with a cpk_ prefix and must be sent as Authorization: Bearer {apiKeyEnvVar} (X-API-Key is not a supported auth scheme)"],description:"OpenAI-compatible endpoint at https://llm.chutes.ai/v1 (chat completions confirmed via the vendor's own homepage code sample), serving a small TEE (confidential-compute) model roster \u2014 14 ids at the time of writing, confirmed by an unauthenticated GET /v1/models. Billing is pay-as-you-go per token; the pricing page's free-trial FAQ answer is collapsed/unconfirmed and no free-tier language appears elsewhere in the public docs, so billingPolicy is recorded conservatively as no-free-tier pending a live-key check."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://llm.chutes.ai/v1/models \u2014 14 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Fme,UTr=_({"src/lib/providers/catalog/cloudflare.json"(){Fme={$schema:"./provider-catalog.schema.json",id:"cloudflare",displayName:"Cloudflare Workers AI",aliases:["workers-ai","cf-ai"],tier:2,wire:{baseURLTemplate:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1",extraCredentials:["accountId"],missingCredentialMessage:"CLOUDFLARE_ACCOUNT_ID is required (or pass credentials.cloudflare.accountId). Get the account id from https://dash.cloudflare.com/"},models:{default:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",fallbackModelName:"@cf/meta/llama-3.1-8b-instruct-fast",fallbacks:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/google/gemma-2b-it-lora"],defaultContextWindow:8192,defaultMaxOutputTokens:4096,catalog:{"@cf/meta/llama-3.3-70b-instruct-fp8-fast":{enumMember:"LLAMA_3_3_70B_FAST",contextWindow:24e3,vision:!1,status:"production",description:"Recommended - Llama 3.3 70B Instruct (FP8 fast)"},"@cf/meta/llama-3.1-70b-instruct":{enumMember:"LLAMA_3_1_70B_INSTRUCT",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.1 70B Instruct"},"@cf/meta/llama-3.1-8b-instruct-fast":{enumMember:"LLAMA_3_1_8B_FAST",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.1 8B Instruct (fast)"},"@cf/meta/llama-3.2-11b-vision-instruct":{enumMember:"LLAMA_3_2_11B_VISION",contextWindow:24e3,vision:!1,status:"production",description:"Llama 3.2 11B Vision Instruct \u2014 Meta Community License accepted on the account 2026-09-02, but Cloudflare's OpenAI-compatible endpoint accepts no image input for it: an image content part is rejected (400) and a top-level image is ignored ('There is no image'). The model reads images only through the native /ai/run prompt+image shape, which this OpenAI-compatible provider does not speak, so vision stays false here"},"@cf/mistral/mistral-7b-instruct-v0.2":{enumMember:"MISTRAL_7B_INSTRUCT_V0_2",contextWindow:32768,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Cloudflare answers 'No such model'"},"@cf/qwen/qwen1.5-14b-chat-awq":{enumMember:"QWEN_1P5_14B_CHAT_AWQ",contextWindow:7500,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Cloudflare reports it was deprecated on 2025-10-01"},"@cf/google/gemma-2b-it-lora":{enumMember:"GEMMA_2B_IT_LORA",contextWindow:4096,vision:!1,status:"production",description:"Gemma 2B IT (LoRA)"}},topModels:["@cf/meta/llama-3.3-70b-instruct-fp8-fast","@cf/meta/llama-3.1-70b-instruct","@cf/meta/llama-3.1-8b-instruct-fast","@cf/google/gemma-2b-it-lora"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid Cloudflare API key. Use a token with Workers AI Read+Write scope. Get one at https://dash.cloudflare.com/profile/api-tokens"}],setup:{url:"https://dash.cloudflare.com/profile/api-tokens",apiKeyFormat:null,billingPolicy:"free-tier",description:"API token (Workers AI Read+Write scope)",instructions:["1. Visit: https://dash.cloudflare.com/profile/api-tokens","2. Create a token with 'Workers AI: Read + Write' scope","3. Set {apiKeyEnvVar} in your .env file","4. Also set CLOUDFLARE_ACCOUNT_ID (find it in the dashboard URL or under 'Account ID')"]},evidence:{rosterVerified:{date:"2026-08-30",method:"real chat call per id against the live account"},liveMatrix:{date:"2026-09-02",result:"Live tool round-trip verified on @cf/meta/llama-3.1-8b-instruct-fast, both non-streaming and streaming, once messageContentFormat normalization was applied; before it the follow-up turn was rejected with HTTP 400 (content sent as array/null). Of the three ids that failed, only two are actually gone: mistral-7b-instruct-v0.2 ('No such model') and qwen1.5-14b-chat-awq ('deprecated on 2025-10-01'). llama-3.2-11b-vision-instruct is alive but gated behind a one-time Community License acceptance on the account, so it answers 403 and is left production with vision false rather than retired. Update 2026-09-02: the Community License was accepted on the account; plain chat on llama-3.2-11b-vision-instruct now returns 200 on both endpoints, and the native /ai/run prompt+image call describes a 64x64 test image correctly. The OpenAI-compatible endpoint still cannot carry an image (content-part array \u2192 400, top-level image ignored), so the vision flag remains false for this provider."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"},quirks:{messageContentFormat:"string"}}}}),$me,BTr=_({"src/lib/providers/catalog/crusoe.json"(){$me={$schema:"./provider-catalog.schema.json",id:"crusoe",displayName:"Crusoe",aliases:[],tier:2,wire:{baseURL:"https://api.inference.crusoecloud.com/v1"},models:{default:"deepseek-ai/DeepSeek-V4-Flash",fallbacks:["deepseek-ai/DeepSeek-V4-Pro","openai/gpt-oss-120b","zai/GLM-5.3","moonshotai/Kimi-K2.6","google/gemma-4-31b-it","nvidia/Nemotron-3-Nano-30B-A3B","nvidia/Nemotron-3-Super-120B-A12B","nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B","nvidia/nemotron-3.5-lightning-30b-a3b","qwen/Qwen3.8-27B","zai/GLM-5.3-Flash"],defaultContextWindow:128e3,defaultMaxOutputTokens:8192,catalog:{"deepseek-ai/DeepSeek-V4-Flash":{contextWindow:1e6,pricingPerMTok:{input:.14,output:.28,cachedInput:.03},vision:!1,status:"production",description:'NeuroLink default. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "deepseek-ai/DeepSeek-V4-Flash", PROVIDER column "DeepSeek", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "DeepSeek" and "V4 Flash", $0.14 under Input tokens, $0.28 under Output tokens, $0.03 under Cached tokens.'},"deepseek-ai/DeepSeek-V4-Pro":{contextWindow:1e6,pricingPerMTok:{input:1.74,output:3.48,cachedInput:.15},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "deepseek-ai/DeepSeek-V4-Pro", PROVIDER column "DeepSeek", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "DeepSeek" and "V4 Pro", $1.74 under Input tokens, $3.48 under Output tokens, $0.15 under Cached tokens.'},"openai/gpt-oss-120b":{contextWindow:128e3,pricingPerMTok:{input:.05,output:.2,cachedInput:.05},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "openai/gpt-oss-120b", PROVIDER column "OpenAI", TYPE column "instruct", CONTEXT LENGTH column "128k", recorded as 128,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GPT-OSS" and "120B", $0.05 under Input tokens, $0.20 under Output tokens, $0.05 under Cached tokens. Crusoe's developer hub Zed README (https://github.com/crusoecloud/crusoe-developer-hub/blob/main/integrations/zed/README.md, retrieved 2026-09-29) sets "tools": true and "images": false in this model id's entry, and its Notes section says the model supports reasoning_effort values of low, medium, and high.`},"zai/GLM-5.3":{contextWindow:1e6,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "zai/GLM-5.3", PROVIDER column "Z.ai", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GLM 5.3", $1.40 under Input tokens, $4.40 under Output tokens, $0.26 under Cached tokens.'},"moonshotai/Kimi-K2.6":{contextWindow:256e3,pricingPerMTok:{input:.7,output:3.5,cachedInput:.35},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "moonshotai/Kimi-K2.6", PROVIDER column "Moonshot", TYPE column "instruct", CONTEXT LENGTH column "256K", recorded as 256,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Kimi K2.6", $0.70 under Input tokens, $3.50 under Output tokens, $0.35 under Cached tokens. The vision field is true because a Crusoe blog post (https://www.crusoe.ai/resources/blog/430-tokens-per-second-optimizing-kimi-k2-6-and-k2-7-for-production, retrieved 2026-09-29) says "Kimi K2.6 is a native multimodal agentic model built for long-horizon coding, autonomous execution, tool use, and complex workflows." and the model card linked from this id's row on the Available models page (https://huggingface.co/moonshotai/Kimi-K2.6, retrieved 2026-09-29) says "K2.6 supports Image and Video input." No image request was sent to Crusoe's endpoint.`},"google/gemma-4-31b-it":{contextWindow:262e3,pricingPerMTok:{input:.14,output:.4,cachedInput:.14},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "google/gemma-4-31b-it", PROVIDER column "Google", TYPE column "instruct", CONTEXT LENGTH column "262k", recorded as 262,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Gemma 4" and "31B-it", $0.14 under Input tokens, $0.40 under Output tokens, $0.14 under Cached tokens. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/google/gemma-4-31B-it, retrieved 2026-09-29) says "Gemma 4 models are multimodal, handling text and image input (with audio supported on E2B, E4B, and 12B) and generating text output." No image request was sent to Crusoe's endpoint.`},"nvidia/Nemotron-3-Nano-30B-A3B":{contextWindow:261144,pricingPerMTok:{input:.05,output:.2,cachedInput:.03},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Nano-30B-A3B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Nano 30B A3B FP8", Context value "261,144". contextWindow records 261,144, the hub page's figure. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Nano" and "30B-A3B-FP8", $0.05 under Input tokens, $0.20 under Output tokens, $0.03 under Cached tokens.`},"nvidia/Nemotron-3-Super-120B-A12B":{contextWindow:261144,pricingPerMTok:{input:.3,output:2.4,cachedInput:.15},vision:!1,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Super-120B-A12B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Super 120B A12B FP8", Context value "261,144". contextWindow records 261,144, the hub page's figure. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Super" and "120B-A12B-FP8", $0.30 under Input tokens, $2.40 under Output tokens, $0.15 under Cached tokens.`},"nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B":{contextWindow:256e3,pricingPerMTok:{input:.3,output:1.83,cachedInput:.3},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "262k". Model hub page (https://www.crusoe.ai/cloud/managed-inference, retrieved 2026-09-29): heading "Nemotron 3 Nano Omni 30B A3B Reasoning", Context value "256,000". Crusoe blog post (https://www.crusoe.ai/resources/blog/nvidia-nemotron-3-nano-omni-now-available, retrieved 2026-09-29): "a 256K-token context window". contextWindow records 256,000, the figure the hub page and the blog post print. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3 Nano Omni 30B A3B Reasoning" and "(Text, Image, Video)", $0.30 under Input tokens, $1.83 under Output tokens, $0.30 under Cached tokens. The vision field is true because the pricing table row headings for this model read "Nemotron 3 Nano Omni 30B A3B Reasoning" and "(Text, Image, Video)"; the price recorded is that row's.`},"nvidia/nemotron-3.5-lightning-30b-a3b":{contextWindow:1e6,pricingPerMTok:{input:.05,output:.2,cachedInput:.03},vision:!1,status:"production",description:'Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "nvidia/nemotron-3.5-lightning-30b-a3b", PROVIDER column "NVIDIA", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "Nemotron 3.5" and "Lightning", $0.05 under Input tokens, $0.20 under Output tokens, $0.03 under Cached tokens.'},"qwen/Qwen3.8-27B":{contextWindow:256e3,vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "qwen/Qwen3.8-27B", PROVIDER column "Qwen", TYPE column "instruct", CONTEXT LENGTH column "256k", recorded as 256,000. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/Qwen/Qwen3.8-27B, retrieved 2026-09-29) says "Native support for image and video understanding, from STEM diagrams and documents to hour-scale videos." No image request was sent to Crusoe's endpoint.`},"zai/GLM-5.3-Flash":{contextWindow:1e6,pricingPerMTok:{input:.15,output:.5,cachedInput:.03},vision:!0,status:"production",description:`Fallback. Available models page (https://docs.crusoecloud.com/serverless-inference/available-models, retrieved 2026-09-29): MODEL column "zai/GLM-5.3-Flash", PROVIDER column "Z.ai", TYPE column "instruct", CONTEXT LENGTH column "1M", recorded as 1,000,000. Serverless Inference pricing table (https://www.crusoe.ai/cloud/pricing, retrieved 2026-09-29, header "(Price per 1 million tokens)"): row headings "GLM 5.3 Flash", $0.15 under Input tokens, $0.50 under Output tokens, $0.03 under Cached tokens. The vision field is true because the model card linked from this id's row on the Available models page (https://huggingface.co/zai-org/GLM-5.3-Flash, retrieved 2026-09-29) says "the first natively multimodal model in the GLM-5 series", and the Z.ai docs page for the model (https://docs.z.ai/guides/llm/glm-5.3-flash, retrieved 2026-09-29), linked from that card, shows the value "Video / Image / Text / File" under the card title "Input Modality". No image request was sent to Crusoe's endpoint.`}},topModels:["deepseek-ai/DeepSeek-V4-Flash","deepseek-ai/DeepSeek-V4-Pro","openai/gpt-oss-120b","zai/GLM-5.3","moonshotai/Kimi-K2.6","google/gemma-4-31b-it","nvidia/Nemotron-3-Nano-30B-A3B","nvidia/Nemotron-3-Super-120B-A12B","nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B","nvidia/nemotron-3.5-lightning-30b-a3b","qwen/Qwen3.8-27B","zai/GLM-5.3-Flash"],visionModel:"nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:'Crusoe rejected the request with HTTP 401 (an unauthenticated GET of https://api.inference.crusoecloud.com/v1/models answers {"errors":["Authentication failed"]}). Check {apiKeyEnvVar}. Create a key: {setupUrl}'},{status:429,class:"rate-limit",message:'Crusoe returned HTTP 429 (the Serverless rate limits page, https://docs.crusoecloud.com/serverless-inference/rate-limits, describes it as "Your project exceeded its TPM or RPM limit for the model." and says "Both 429 and 503 responses are transient, so you can retry the request with exponential backoff rather than failing immediately.").'},{status:503,class:"provider",message:`Crusoe returned HTTP 503 (the Serverless rate limits page, https://docs.crusoecloud.com/serverless-inference/rate-limits, describes it as "Your request is within your limits, but the shared endpoint is experiencing unusually high load and can't accept it right now." and says "Both 429 and 503 responses are transient, so you can retry the request with exponential backoff rather than failing immediately.").`}],setup:{url:"https://console.crusoecloud.com/request-foundry",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:['1. Visit: https://console.crusoecloud.com/request-foundry (the "Create a Managed AI account \u2192" link on https://docs.crusoecloud.com/create-an-account, which says "Use Google or Github for the quickest signup.")',"2. Create an API key: the Getting Started page (https://docs.crusoecloud.com/quickstart/getting-started-with-serverless-inference) says to visit the Intelligence Foundry on the console, select Inference from the left nav, click Create API Key, optionally provide an alias and expiration date, then click Create to view and save your API key",'3. Billing as the vendor states it: the docs announcement bar (https://docs.crusoecloud.com/serverless-inference/overview) reads "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning"; the Create an account page says "To provision resources or use the managed inference service, you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed."; the Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits) lists default limits for "No payment method" and "Payment method added" accounts',"4. Set {apiKeyEnvVar} in your .env file"],description:`Docs-verified only: the vendor's GET https://api.inference.crusoecloud.com/v1/models needs a key (it answers HTTP 401 without one), so the twelve chat model ids come from the Available models page https://docs.crusoecloud.com/serverless-inference/available-models (retrieved 2026-09-29) and the roster has not been checked; the entry is not yet live-verified. The page lists thirteen models; nvidia/Nemotron-3-VoiceChat has TYPE speech-to-speech and is not in this catalog. OpenAI-compatible endpoint at https://api.inference.crusoecloud.com/v1: the Available models page says "You can use the OpenAI-API compatible endpoint at api.inference.crusoecloud.com" and the Getting Started page (https://docs.crusoecloud.com/quickstart/getting-started-with-serverless-inference) says "Crusoe's Serverless Inference Service provides OpenAI compatible endpoints" and shows client.chat.completions.create with base_url="https://api.inference.crusoecloud.com/v1". Unauthenticated GETs made 2026-09-29: /models and /chat/completions each answered HTTP 401 with the body {"errors":["Authentication failed"]}; errorRules carry that 401 and the 429 and 503 statuses described on the Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits). models.defaultContextWindow (128000) and models.defaultMaxOutputTokens (8192) are conservative placeholders for model ids outside the catalog; the vendor does not publish a general default. Per-model contextWindow values are the decimal forms of the labels the Available models page prints ("1M", "262k", "256K", "128k", "256k"), except nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B, nvidia/Nemotron-3-Nano-30B-A3B and nvidia/Nemotron-3-Super-120B-A12B, whose descriptions give the figure from other Crusoe pages that is recorded instead; no maxOutputTokens is recorded. The vision field is a required boolean: true is recorded on the ids whose descriptions cite a source for image input, and false is a placeholder on the other ids except openai/gpt-oss-120b, where the Zed README sets "images": false; no image request was sent. billingPolicy holds free-with-card: the docs announcement bar (https://docs.crusoecloud.com/serverless-inference/overview) reads "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning" and the Create an account page (https://docs.crusoecloud.com/create-an-account) says "you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed." The Serverless rate limits page (https://docs.crusoecloud.com/serverless-inference/rate-limits) also lists default limits for "No payment method" accounts. billingPolicy is a required enum (free-tier, free-with-card, no-free-tier) with no value for that difference; free-with-card is recorded.`},evidence:{rosterVerified:{date:"2026-09-29",status:401,method:"docs-only \u2014 unauthenticated GET https://api.inference.crusoecloud.com/v1/models answers 401 without a key, so model ids are taken from https://docs.crusoecloud.com/serverless-inference/available-models (retrieved 2026-09-29); roster not verified"},authProbe:{date:"2026-09-29",status:401,method:'unauthenticated GET https://api.inference.crusoecloud.com/v1/models and GET https://api.inference.crusoecloud.com/v1/chat/completions, no Authorization header \u2014 each HTTP 401, content-type application/json, body {"errors":["Authentication failed"]}; the body has no code field, so none is recorded; credential-free, no key used'},billingProbe:{date:"2026-09-29",method:'public pages https://docs.crusoecloud.com/serverless-inference/overview (announcement bar "Use $5 in free credits to explore Serverless Inference and Serverless Fine-Tuning"), https://docs.crusoecloud.com/create-an-account ("you must enable billing on your account. You will need a valid, non-prepaid credit card to proceed.") and https://docs.crusoecloud.com/serverless-inference/rate-limits (default limits for "No payment method" and "Payment method added" accounts); credential-free, no signup performed'},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1860"}}}}),Ume,zTr=_({"src/lib/providers/catalog/deepinfra.json"(){Ume={$schema:"./provider-catalog.schema.json",id:"deepinfra",displayName:"DeepInfra",aliases:[],tier:2,wire:{baseURL:"https://api.deepinfra.com/v1/openai"},models:{default:"deepseek-ai/DeepSeek-V4-Flash-0731",fallbacks:["deepseek-ai/DeepSeek-V4-Pro-0813","openai/gpt-oss-120b","moonshotai/Kimi-K3","zai-org/GLM-5.2","anthropic/claude-haiku-4-5","Qwen/Qwen3-14B","meta-llama/Llama-4-Scout-17B-16E-Instruct"],defaultContextWindow:128e3,defaultMaxOutputTokens:16384,catalog:{"deepseek-ai/DeepSeek-V4-Flash-0731":{contextWindow:1048576,pricingPerMTok:{input:.06,output:.18,cachedInput:.015},vision:!1,status:"production",description:"Recommended default \u2014 DeepInfra's own tool-calling documentation (docs.deepinfra.com/chat/tool-calling, retrieved 2026-09-28) uses this exact model in its function-calling example (a get_current_weather tool_call round-trip), and its reasoning documentation (docs.deepinfra.com/chat/reasoning) names it among the models that support the reasoning_effort parameter (none/low/medium/high). Live on the unauthenticated GET /v1/openai/models roster (2026-09-28, 187 models) with context_length/max_tokens both 1,048,576 and pricing $0.06/$0.18 per MTok input/output ($0.015 cached-input read). No vision/vlm tag on the live roster. models.defaultMaxOutputTokens (16,384) follows the vendor's documented general cap rather than this per-model figure \u2014 see models-level note."},"deepseek-ai/DeepSeek-V4-Pro-0813":{contextWindow:1048576,pricingPerMTok:{input:1.3,output:2.6,cachedInput:.1},vision:!1,status:"production",description:"DeepSeek's larger Pro variant; roster-listed only (not itself named in a DeepInfra docs example) via the unauthenticated GET /v1/openai/models (2026-09-28) \u2014 context 1,048,576, $1.30/$2.60 per MTok input/output, $0.10 cached-input read. Fallback."},"openai/gpt-oss-120b":{contextWindow:131072,pricingPerMTok:{input:.037,output:.17},vision:!1,status:"production",description:"OpenAI's open-weight 120B model hosted on DeepInfra; tagged reasoning + reasoning_effort on the live roster GET (2026-09-28) \u2014 context 131,072, $0.037/$0.17 per MTok input/output. Not itself named in DeepInfra's docs examples; fallback."},"moonshotai/Kimi-K3":{contextWindow:1048576,pricingPerMTok:{input:2.85,output:14.25,cachedInput:.285},vision:!0,status:"production",description:`Named in DeepInfra's tool-calling documentation as "the current Kimi model in our catalog" (docs.deepinfra.com/chat/tool-calling). Tagged vlm + vision on the live roster GET (2026-09-28), hence vision: true here (not independently probed for a working vision reply) \u2014 context 1,048,576, $2.85/$14.25 per MTok input/output, $0.285 cached-input read. Fallback.`},"zai-org/GLM-5.2":{contextWindow:1048576,pricingPerMTok:{input:.75,output:2.4,cachedInput:.14},vision:!1,status:"production",description:"Listed by DeepInfra's reasoning documentation (docs.deepinfra.com/chat/reasoning) as one of the models supporting reasoning_effort. Live roster GET (2026-09-28) \u2014 context 1,048,576, $0.75/$2.40 per MTok input/output, $0.14 cached-input read. Fallback."},"anthropic/claude-haiku-4-5":{contextWindow:2e5,pricingPerMTok:{input:1,output:5},vision:!0,status:"production",description:"Anthropic's Claude Haiku 4.5 as served through DeepInfra's model marketplace (owned_by: deepinfra on the live roster). Tagged vlm + vision + reasoning_effort + reasoning on the GET /v1/openai/models roster (2026-09-28), hence vision: true here (not independently probed) \u2014 context 200,000, $1.00/$5.00 per MTok input/output. Not itself named in DeepInfra's docs examples; fallback."},"Qwen/Qwen3-14B":{contextWindow:40960,pricingPerMTok:{input:.12,output:.24},vision:!1,status:"production",description:"Smaller Qwen reasoning-tagged model; roster-listed only via the unauthenticated GET /v1/openai/models (2026-09-28) \u2014 context 40,960, $0.12/$0.24 per MTok input/output. Fallback."},"meta-llama/Llama-4-Scout-17B-16E-Instruct":{contextWindow:327680,pricingPerMTok:{input:.1,output:.3},vision:!0,status:"production",description:"Meta Llama 4 Scout; tagged vlm + vision on the live roster GET (2026-09-28), hence vision: true here (not independently probed) \u2014 context 327,680, $0.10/$0.30 per MTok input/output. Roster-listed only; fallback."}},topModels:["deepseek-ai/DeepSeek-V4-Flash-0731","deepseek-ai/DeepSeek-V4-Pro-0813","openai/gpt-oss-120b","moonshotai/Kimi-K3","zai-org/GLM-5.2","anthropic/claude-haiku-4-5","Qwen/Qwen3-14B","meta-llama/Llama-4-Scout-17B-16E-Instruct"],visionModel:"meta-llama/Llama-4-Scout-17B-16E-Instruct"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[],setup:{url:"https://deepinfra.com/dash/api_keys",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://deepinfra.com/dash/api_keys and sign in (Google, GitHub, email & password, or Corporate SSO \u2014 see https://docs.deepinfra.com/account/signing-in)","2. Create an API key and copy it when it is shown","3. No free tier: DeepInfra requires a card or pre-payment before any request succeeds (https://deepinfra.com/pricing)","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.deepinfra.com/v1/openai (docs.deepinfra.com/chat/overview), serving 180+ open-weight and proprietary chat models. No documented auth-failure error body was found on the docs site or the public OpenAPI spec (api.deepinfra.com/openapi.json only documents 200/422 for chat/completions) without a live credentialed probe, so errorRules is empty pending live verification."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.deepinfra.com/v1/openai/models \u2014 187 models; credential-free, no key used",status:200},billingProbe:{date:"2026-09-28",method:`public page https://deepinfra.com/pricing \u2014 "You have to add a card or pre-pay or you won't be able to use our services"; no free tier documented; credential-free`},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Bme,GTr=_({"src/lib/providers/catalog/deepseek.json"(){Bme={$schema:"./provider-catalog.schema.json",id:"deepseek",displayName:"DeepSeek",enumTypeName:"DeepSeekModels",aliases:["ds"],tier:2,wire:{baseURL:"https://api.deepseek.com"},models:{default:"deepseek-chat",fallbacks:["deepseek-chat","deepseek-reasoner","deepseek-v4-pro"],defaultContextWindow:1048576,defaultMaxOutputTokens:393216,catalog:{"deepseek-chat":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"Alias of deepseek-flash with thinking off (DeepSeek-V4.1-Flash)"},"deepseek-reasoner":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"Alias of deepseek-flash with thinking on (DeepSeek-V4.1-Flash)"},"deepseek-flash":{contextWindow:1048576,maxOutputTokens:393216,vision:!0,status:"production",description:"DeepSeek-V4.1-Flash \u2014 thinking on by default, image input"},"deepseek-v4-pro":{contextWindow:1048576,maxOutputTokens:393216,vision:!1,status:"production",description:"DeepSeek-V4-Pro-0813 \u2014 thinking on by default, text only"}}},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!0},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid DeepSeek API key. Please check your {apiKeyEnvVar} environment variable."},{status:402,pattern:"Insufficient Balance|insufficient_balance",class:"provider",message:"DeepSeek account has insufficient balance. Top up at https://platform.deepseek.com/usage"},{pattern:"supported API model names|model_not_found",class:"invalid-model",message:"DeepSeek model '{model}' not found. Use 'deepseek-flash' or 'deepseek-v4-pro'."}],quirks:{responseFormatDowngrade:"json-schema-to-json-object",replayReasoningContent:!0},setup:{url:"https://platform.deepseek.com/api_keys",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://platform.deepseek.com/api_keys","2. Create or sign in to your DeepSeek account","3. Generate a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-24",method:"Live against api.deepseek.com on 2026-09-24. GET /models lists only deepseek-flash and deepseek-v4-pro, with context_window 1048576 and max_output_tokens 393216 (the pricing page's 1M / 384K). deepseek-chat and deepseek-reasoner still answer 200 but report model deepseek-flash \u2014 deepseek-chat without reasoning_content, deepseek-reasoner with it \u2014 so both stay production as aliases rather than being marked retired. Vision was probed with a solid-blue PNG: deepseek-flash, deepseek-chat and deepseek-reasoner all named the colour; deepseek-v4-pro answered 200 but described a scene that was not in the image, so it keeps vision false, matching the pricing page. An unknown model id returns 400 'The supported API model names are \u2026' with code invalid_request_error \u2014 never 'model_not_found' \u2014 so the invalid-model rule now matches that text. tools plus response_format json_object in one request returned 200 with tool_calls, confirming structuredOutputWithTools. billingPolicy is not re-verified."},liveMatrix:null,addedInPR:"TBD \u2014 integration-tested in a worktree before a PR was opened"}}}}),zme,qTr=_({"src/lib/providers/catalog/empiriolabs.json"(){zme={$schema:"./provider-catalog.schema.json",id:"empiriolabs",displayName:"EmpirioLabs AI",aliases:[],tier:2,wire:{baseURL:"https://api.empiriolabs.ai/v1"},models:{default:"glm-5-3",fallbacks:["glm-5-3-flash","glm-5-2","kimi-k3","qwen3-7-max","minimax-m2-7-highspeed"],defaultContextWindow:1e6,defaultMaxOutputTokens:131072,catalog:{"glm-5-3":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:1.4},vision:!1,status:"production",description:"Recommended \u2014 EmpirioLabs' own roster marks this is_featured=true (GET /v1/models, 2026-09-28). Zhipu GLM-5.3: reasoning model with native function calling and web search, response_format json_object structured output, 1M token context, 131,072 token max output \u2014 all read directly from the unauthenticated GET https://api.empiriolabs.ai/v1/models. Pricing from the same roster: $1.40 / $4.40 per MTok input/output, $1.40 per MTok cached input. Onboarded credential-free \u2014 no live chat, streaming or tool-call request was made, so wire behavior (SSE framing, a real tool_call round-trip, image input) is roster- and docs-verified only, not live-probed; see evidence.liveMatrix (null)."},"glm-5-3-flash":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:.075,output:.25,cachedInput:.075},vision:!0,status:"production",description:"Zhipu GLM-5.3 Flash \u2014 lighter/cheaper sibling of the default. The roster marks capabilities.images=true (also video_understanding and document_understanding features), function calling and json_object structured output. 1M context, 131,072 max output. Pricing: $0.075 / $0.25 per MTok input/output, $0.075 cached. Roster-listed only, not capability-probed (credential-free onboarding \u2014 no live request made); fallback."},"glm-5-2":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:1.4},vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 prior GLM generation; reasoning, function calling, web search; json_object structured output; 1M context, 131,072 max output. Pricing $1.40 / $4.40 per MTok. Roster-listed only, not capability-probed; fallback."},"kimi-k3":{contextWindow:1e6,maxOutputTokens:131072,pricingPerMTok:{input:3,output:15,cachedInput:3},vision:!0,status:"production",description:"Moonshot Kimi K3 \u2014 reasoning, function calling, multimodal (capabilities.images=true on the roster), agentic coding and web search; strict json_schema structured output (a stronger guarantee than glm-5-3's json_object). 1M context, 131,072 max output. Pricing $3 / $15 per MTok. Roster-listed only, not capability-probed; fallback."},"qwen3-7-max":{contextWindow:1e6,maxOutputTokens:65536,pricingPerMTok:{input:2.5,output:7.5,cachedInput:2.5},vision:!1,status:"production",description:"Alibaba Qwen3.7 Max \u2014 flagship text reasoning model with code_interpreter, function calling and agentic coding; strict json_schema structured output. 1M context, 65,536 max output (lower than the GLM family's 131,072 \u2014 read from the roster, not assumed). Pricing $2.50 / $7.50 per MTok. Roster-listed only, not capability-probed; fallback."},"minimax-m2-7-highspeed":{contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:.3,output:1.2,cachedInput:.03},vision:!1,status:"production",description:"MiniMax M2.7 Highspeed \u2014 reasoning and function calling only (no vision or web_search declared on the roster); json_object structured output. Smallest context in this curated set (200K, 32,768 max output) \u2014 kept as the lightest/cheapest fallback. Pricing $0.30 / $1.20 per MTok, $0.03 cached. Roster-listed only, not capability-probed; fallback."}},topModels:["glm-5-3","glm-5-3-flash","glm-5-2","kimi-k3","qwen3-7-max","minimax-m2-7-highspeed"],visionModel:"glm-5-3-flash"},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid EmpirioLabs API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"}],setup:{url:"https://platform.empiriolabs.ai",apiKeyFormat:"^sk-empiriolabs-",billingPolicy:"free-tier",instructions:["1. Visit: https://platform.empiriolabs.ai and create an account","2. Create an API key from the dashboard (keys use the sk-empiriolabs- prefix, up to 50 per account)","3. Selected models (e.g. GLM 4.7 Flash) run at $0 cost; other models draw from prepaid credits topped up via the dashboard Billing page \u2014 confirm current pricing before heavy use","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.empiriolabs.ai/v1 (docs.empiriolabs.ai confirms it accepts the OpenAI Chat Completions request format). Hosts a large catalog \u2014 217 models on an unauthenticated GET /v1/models as of 2026-09-28 \u2014 spanning text, vision, audio, video, image and 3D generation; this catalog entry covers only a curated set of text/chat-completions-capable models. New accounts default to 50 RPM / 2,000,000 TPM."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.empiriolabs.ai/v1/models \u2014 217 models; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),Gme,jTr=_({"src/lib/providers/catalog/featherless-ai.json"(){Gme={$schema:"./provider-catalog.schema.json",id:"featherless-ai",displayName:"Featherless AI",aliases:["featherless"],tier:2,wire:{baseURL:"https://api.featherless.ai/v1"},models:{default:"unsloth/Llama-3.3-70B-Instruct",fallbacks:["meta-llama/Llama-3.3-70B-Instruct","Sao10K/L3.3-70B-Euryale-v2.3","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","KaraKaraWitch/Llama-MiraiFanfare-3.3-70B","huihui-ai/Llama-3.3-70B-Instruct-abliterated","recursal/QRWKV6-32B-Instruct-Preview-v0.1","RWKV/v6-Finch-14B-HF","RWKV/EagleX-7B-Chat-V0.5-pth","recursal/EagleX_1-7T_Chat","recursal/EagleX_1-7T"],defaultContextWindow:32768,defaultMaxOutputTokens:4096,catalog:{"unsloth/Llama-3.3-70B-Instruct":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"Recommended default \u2014 an ungated community re-upload of Meta's Llama 3.3 70B Instruct. Chosen over the official meta-llama/Llama-3.3-70B-Instruct entry because that one is Hugging-Face-gated on Featherless (HTTP 403 'Unauthorized... the model is gated and you need to agree to the model's license' per https://featherless.ai/docs/api-reference-error-codes, requiring a manual 'Unlock Model' click in the account UI before first use \u2014 not credential-free-verifiable and not a good zero-touch SDK default). contextWindow and pricing are the live values from GET https://api.featherless.ai/v1/models (2026-09-28): context_length=32768, pricing.input/output already expressed as $/MTok. The vendor's per-model 'features' flag on this id reports tool_use:true, but Featherless's own Tool Calling guide (https://featherless.ai/docs/tool-calling) names only the moonshotai/Kimi-K2-Instruct and Qwen 3 model families as natively supported and says other models need a prompting workaround \u2014 so capabilities.tools is declared model-dependent at the provider level rather than assumed true for this specific id. No response_format/JSON-mode, streaming (SSE/stream:true), or combined tools+schema behavior is documented anywhere in the Featherless docs checked (Overview, API overview and common options, Completions, Quickstart, API examples, Tool Calling, Chat template kwargs, Models & Model Compatibility) \u2014 see evidence for the full list of pages checked."},"meta-llama/Llama-3.3-70B-Instruct":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"Meta's official Llama 3.3 70B Instruct weights. The live roster (GET /v1/models, 2026-09-28) marks this id is_gated:true; Featherless's error-codes page documents that a gated model 403s ('Unauthorized... need to agree to the model's license') until the account clicks 'Unlock Model' on the model's page \u2014 kept as a fallback for roster completeness, not the default, for that reason. features.tool_use:true on the live roster entry."},"Sao10K/L3.3-70B-Euryale-v2.3":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"Sao10K's Euryale v2.3, a Llama-3.3-70B roleplay/long-form-writing fine-tune \u2014 one of the community model families Featherless's own site advertises under its 'LLMs for Roleplay' catalog filter. Not Hugging-Face-gated. Roster-listed only (GET /v1/models, 2026-09-28); not itself capability-probed. features.tool_use:true on the live roster entry, but see the default model's note on capabilities.tools being provider-level model-dependent."},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"EVA-UNIT-01's EVA-LLaMA 3.33 70B v0.0, a creative-writing/roleplay-oriented Llama-3.3-70B fine-tune. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"EVA-UNIT-01's EVA-LLaMA 3.33 70B v0.1 \u2014 later revision of v0.0, same roleplay/creative-writing fine-tune line. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"KaraKaraWitch/Llama-MiraiFanfare-3.3-70B":{contextWindow:32768,pricingPerMTok:{input:2.6,output:3},vision:!1,status:"production",description:"KaraKaraWitch's Llama MiraiFanfare 3.3 70B, a community Llama-3.3-70B fine-tune. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"huihui-ai/Llama-3.3-70B-Instruct-abliterated":{contextWindow:32768,pricingPerMTok:{input:.65,output:.75},vision:!1,status:"production",description:"huihui-ai's 'abliterated' (safety-refusal-ablated) Llama 3.3 70B Instruct \u2014 present on Featherless's own live roster and listed under its 'Abliterated Models' catalog filter. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); not capability-probed. features.tool_use:true on the live roster entry."},"recursal/QRWKV6-32B-Instruct-Preview-v0.1":{contextWindow:32768,pricingPerMTok:{input:.265,output:.65},vision:!1,status:"production",description:"Recursal's QRWKV6 32B Instruct Preview \u2014 a non-transformer (RWKV-hybrid) architecture explicitly called out on Featherless's Models & Model Compatibility page as one of the few model classes served at a 32k context tier. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"RWKV/v6-Finch-14B-HF":{contextWindow:16384,pricingPerMTok:{input:.10775,output:.28},vision:!1,status:"production",description:"RWKV v6 'Finch' 14B \u2014 a non-transformer RWKV architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"RWKV/EagleX-7B-Chat-V0.5-pth":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"RWKV EagleX 7B Chat, an early RWKV5-architecture chat checkpoint. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"recursal/EagleX_1-7T_Chat":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"Recursal's EagleX 1.7T (chat-tuned), an RWKV5-architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."},"recursal/EagleX_1-7T":{contextWindow:16384,pricingPerMTok:{input:.1,output:.2},vision:!1,status:"production",description:"Recursal's EagleX 1.7T base (non-chat-tuned) checkpoint, an RWKV5-architecture model. Not gated. Roster-listed only (GET /v1/models, 2026-09-28); no tool_use flag on the live roster entry; not capability-probed."}},topModels:["unsloth/Llama-3.3-70B-Instruct","meta-llama/Llama-3.3-70B-Instruct","Sao10K/L3.3-70B-Euryale-v2.3","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0","EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1","KaraKaraWitch/Llama-MiraiFanfare-3.3-70B","huihui-ai/Llama-3.3-70B-Instruct-abliterated","recursal/QRWKV6-32B-Instruct-Preview-v0.1","RWKV/v6-Finch-14B-HF","RWKV/EagleX-7B-Chat-V0.5-pth","recursal/EagleX_1-7T_Chat","recursal/EagleX_1-7T"]},capabilities:{text:!0,streaming:!1,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,class:"authentication",message:"Invalid Featherless API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:403,class:"invalid-model",message:`Featherless model '{model}' is gated \u2014 sign in at featherless.ai, open the model's page and click "Unlock Model" to accept its license, or pick a non-gated model. See {setupUrl}`}],setup:{url:"https://featherless.ai/register",apiKeyFormat:null,billingPolicy:"no-free-tier",instructions:["1. Visit: https://featherless.ai/register and create an account (or https://featherless.ai/login if you already have one)","2. Subscribe to a plan \u2014 Chat ($25/mo, unlimited tokens, 32K context) or Developer ($50/mo in credits, billed per token, up to 256K context); Featherless has no free or keyless tier","3. Generate an API key from the API keys section of your account","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.featherless.ai/v1 ('designed to be API compatible with OpenAI' per https://featherless.ai/docs/api-overview-and-common-options), serving a roster of 22,000+ community and open-weight models \u2014 many roleplay, uncensored and abliterated fine-tunes alongside mainline Llama/Qwen/DeepSeek-derived checkpoints. Some models are Hugging-Face-gated and 403 until manually unlocked in the account UI. No free tier: plans start at $25/mo."},evidence:{rosterVerified:{date:"2026-09-28",method:"unauthenticated GET https://api.featherless.ai/v1/models \u2014 22060 models; credential-free, no key used",status:200},billingProbe:{date:"2026-09-28",method:"unauthenticated GET https://featherless.ai/pricing \u2014 no free tier mentioned anywhere on the page; plans are Chat $25/mo, Developer $50/mo in credits (billed per token), Business custom; credential-free, no key used",status:200},liveMatrix:null,addedInPR:"https://github.com/juspay/neurolink/pull/1848"}}}}),qme,VTr=_({"src/lib/providers/catalog/fireworks.json"(){qme={$schema:"./provider-catalog.schema.json",id:"fireworks",displayName:"Fireworks AI",aliases:[],tier:2,wire:{baseURL:"https://api.fireworks.ai/inference/v1"},models:{default:"accounts/fireworks/models/kimi-k3",fallbackModelName:"accounts/fireworks/models/gpt-oss-120b",fallbacks:["accounts/fireworks/models/kimi-k3","accounts/fireworks/models/gpt-oss-120b","accounts/fireworks/models/qwen3p8-max","accounts/fireworks/models/glm-5p3"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"accounts/fireworks/models/kimi-k2p6":{enumMember:"KIMI_K2P6",vision:!1,status:"retired",description:"Retired 2026-09 \u2014 still listed on the Fireworks /models roster, but the chat endpoint 404s 'Model not found, inaccessible, and/or not deployed' (since the 2026-09-26 nightly); superseded by kimi-k3, same Moonshot family"},"accounts/fireworks/models/gpt-oss-120b":{enumMember:"GPT_OSS_120B",vision:!1,status:"production",description:"GPT-OSS 120B \u2014 Apache-2.0 OpenAI weights"},"accounts/fireworks/models/kimi-k3":{enumMember:"KIMI_K3",vision:!0,status:"production",description:"Recommended - Kimi K3, newest Moonshot generation; vision-capable"},"accounts/fireworks/models/qwen3p8-max":{enumMember:"QWEN3P8_MAX",vision:!0,status:"production",description:"Qwen 3.8 Max \u2014 vision-capable"},"accounts/fireworks/models/glm-5p3":{enumMember:"GLM_5P3",vision:!1,status:"production",description:"GLM 5.3 \u2014 Zhipu flagship"},"accounts/fireworks/models/minimax-m3":{enumMember:"MINIMAX_M3",vision:!1,status:"production",description:"MiniMax M3"},"accounts/fireworks/models/deepseek-v4-flash-0731":{enumMember:"DEEPSEEK_V4_FLASH_0731",vision:!1,status:"production",description:"DeepSeek V4 Flash \u2014 low-latency DeepSeek"},"accounts/fireworks/models/deepseek-v4-pro":{enumMember:"DEEPSEEK_V4_PRO",vision:!1,status:"retired",description:"Retired 2026-08 as a usable id \u2014 still on the Fireworks roster but never answers: a real chat call hangs past 120s on this account"},"accounts/fireworks/models/glm-5p1":{enumMember:"GLM_5P1",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/glm-5":{enumMember:"GLM_5",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/kimi-k2p5":{enumMember:"KIMI_K2P5",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/llama-v3p2-90b-vision-instruct":{enumMember:"LLAMA_V3P2_90B_VISION_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/llama-v3p2-11b-vision-instruct":{enumMember:"LLAMA_V3P2_11B_VISION_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"},"accounts/fireworks/models/phi-3-vision-128k-instruct":{enumMember:"PHI_3_VISION_128K_INSTRUCT",vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Fireworks returns 404 'not deployed'"}},topModels:["accounts/fireworks/models/kimi-k3","accounts/fireworks/models/gpt-oss-120b","accounts/fireworks/models/qwen3p8-max","accounts/fireworks/models/glm-5p3"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication",class:"authentication",message:"Invalid Fireworks API key. Get one at https://fireworks.ai/account/api-keys"}],setup:{url:"https://fireworks.ai/account/api-keys",apiKeyFormat:null,billingPolicy:"free-with-card",instructions:["1. Visit: https://fireworks.ai/account/api-keys","2. Sign in to your Fireworks AI account","3. Create a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-28",method:"GET /models against the live account, cross-checked with a real chat call per id"},liveMatrix:{date:"2026-09-28",result:"Issue #1796: the 2026-09-26 nightly model-liveness gate reported the default, kimi-k2p6, as dead, sending the matrix vision test down the text-only fallback. Confirmed live \u2014 GET /models still lists kimi-k2p6, but POST /chat/completions 404s 'Model not found, inaccessible, and/or not deployed', the same still-listed-but-unservable pattern deepseek-v4-pro hit in 2026-08 (hung past 120s rather than 404ing). Moved the default to kimi-k3, the same Moonshot family's newest generation: 200 OK on both a text-only call and a call carrying a PNG, and a full-length call returns a proper OpenAI-shaped tool_calls entry with finish_reason=tool_calls, confirming vision and tool support both survive the swap. kimi-k2p6 marked retired rather than deleted, per the frozen-enum rule. gpt-oss-120b, qwen3p8-max and glm-5p3 (the rest of fallbacks/topModels) were re-probed alive at the same time; glm-5p3 still only answers text calls, not image ones, as found 2026-08-30."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"}}}}),jme,HTr=_({"src/lib/providers/catalog/friendli.json"(){jme={$schema:"./provider-catalog.schema.json",id:"friendli",displayName:"FriendliAI",aliases:[],tier:2,wire:{baseURL:"https://api.friendli.ai/serverless/v1"},models:{default:"zai-org/GLM-5.3",fallbacks:["zai-org/GLM-5.3","zai-org/GLM-5.3-Flash","zai-org/GLM-5.2","zai-org/GLM-5.1","google/gemma-4-31B-it","deepseek-ai/DeepSeek-V3.2","MiniMaxAI/MiniMax-M2.5"],defaultContextWindow:1048576,defaultMaxOutputTokens:131072,catalog:{"zai-org/GLM-5.3":{contextWindow:1048576,maxOutputTokens:131072,pricingPerMTok:{input:1.4,output:4.4,cachedInput:.26},vision:!1,status:"production",description:"Recommended - Zhipu's flagship GLM-5.3, the only model in this roster that was live capability-probed end to end: a real structured tool call (finish_reason=tool_calls, 9 tool_calls deltas under streaming), SSE streaming (62 events, terminal [DONE]), and json_object structured output. A heavy internal reasoner exposed via reasoning/reasoning_content \u2014 at a small max_tokens budget the whole completion is spent on unfinished reasoning before any visible content, so give it a generous max_tokens. Rejects image/video input and rejects tools+response_format together, both HTTP 422 (see capabilities.structuredOutputWithTools). maxOutputTokens is the documented per-request output ceiling from https://friendli.ai/docs/examples/models/zai-glm-5-3/overview.md (retrieved 2026-09-09) \u2014 131,072 tokens, distinct from the 1,048,576-token context window; the authenticated roster's max_completion_tokens field reports 1048576 (equal to context) but that is not treated as the output cap. Pricing per the same page: $1.40 / $4.40 per MTok input/output, $0.26 per MTok cached input."},"zai-org/GLM-5.3-Flash":{vision:!1,status:"production",description:"Zhipu GLM-5.3 Flash \u2014 lighter/faster sibling of the default; present on the live roster (GET /serverless/v1/models, 200) but not itself capability-probed under the tight rate limit; fallback."},"zai-org/GLM-5.2":{vision:!1,status:"production",description:"Zhipu GLM-5.2 \u2014 prior GLM generation; roster-listed only, not capability-probed; fallback."},"zai-org/GLM-5.1":{vision:!1,status:"production",description:"Zhipu GLM-5.1 \u2014 prior GLM generation; roster-listed only, not capability-probed; fallback."},"google/gemma-4-31B-it":{vision:!1,status:"production",description:"Google Gemma 4 31B instruct-tuned; roster-listed only, not capability-probed; fallback."},"deepseek-ai/DeepSeek-V3.2":{vision:!1,status:"production",description:"DeepSeek V3.2; roster-listed only, not capability-probed; fallback."},"MiniMaxAI/MiniMax-M2.5":{vision:!1,status:"production",description:"MiniMax M2.5; roster-listed only, not capability-probed; fallback."}},topModels:["zai-org/GLM-5.3","zai-org/GLM-5.3-Flash","zai-org/GLM-5.2","zai-org/GLM-5.1","google/gemma-4-31B-it","deepseek-ai/DeepSeek-V3.2","MiniMaxAI/MiniMax-M2.5"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Unauthorized|valid credential",class:"authentication",message:"Invalid Friendli API key. Check {apiKeyEnvVar}. Get one at {setupUrl}"},{status:404,pattern:`\\bModel\\s+['"][^'"\\r\\n]+['"]\\s+not\\s+found\\b`,class:"invalid-model",message:"Friendli model '{model}' not found. Pick a current model from the authenticated /serverless/v1/models roster or {setupUrl}"}],setup:{url:"https://suite.friendli.ai/",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://suite.friendli.ai/ and sign in","2. Create a Personal Access Token for the serverless endpoints","3. New accounts start with trial credit; confirm current billing terms in the console before heavy use","4. Set {apiKeyEnvVar} in your .env file"],description:"OpenAI-compatible endpoint at https://api.friendli.ai/serverless/v1, serving a small zai-org GLM-family roster plus a few third-party models. Rate limits are tight \u2014 pace requests at least 20 seconds apart."},evidence:{rosterVerified:{date:"2026-09-06",method:"authenticated GET /serverless/v1/models",status:200},authProbe:{date:"2026-09-06",method:"POST /chat/completions with an invalid API key",status:401},liveMatrix:{date:"2026-09-06",result:`Probed against the default model, zai-org/GLM-5.3, via https://api.friendli.ai/serverless/v1. The first probe run used a 2s cadence, tripped Friendli's rate limit (12/16 cases 429) and is discarded entirely; this result is from a slower-paced re-run plus targeted single-call re-probes, each still hitting 429 occasionally even at ~25s spacing \u2014 Friendli's rate limits are tight, so any future live check needs generous pacing (20s+) and retry. Roster: GET /serverless/v1/models returns 200 with exactly 7 ids, all zai-org GLM family plus google/gemma-4-31B-it, deepseek-ai/DeepSeek-V3.2 and MiniMaxAI/MiniMax-M2.5 \u2014 models.fallbacks lists all 7. Wire mechanics on GLM-5.3: chat, system role, array content parts (message content IS accepted as a parts array, so no messageContentFormat quirk is declared), sampling params and max_completion_tokens all 200. Streaming: SSE, 200, 62 events, terminal [DONE] present \u2014 contentDeltas were 0 only because GLM-5.3 is a heavy reasoner that spent the small test budget entirely on reasoning/reasoning_content fields, not because streaming is broken. Tool calling: a real structured tool_call (get_time, tz argument parsed, finish_reason=tool_calls) on the first turn, a null-content assistant tool_calls turn accepted on replay, and 9 tool_calls deltas surfacing mid-SSE-stream \u2014 tools and toolsWithStreaming true; tool_choice is tolerated even with no tools declared. response_format json_object returns 200 cleanly \u2014 structuredOutput true. response_format json_schema also returns 200, but at the tested token budget the content is unfinished reasoning text rather than schema-conformant JSON \u2014 same reasoning-budget effect as above; NeuroLink's coerceJsonToSchema repair layer is the intended safety net. Sending tools and a JSON schema together in the same request is a genuine, hard rejection: HTTP 422 'The 'response_format' field cannot be set when tools are specified' \u2014 the same class of vendor exclusivity NeuroLink already handles generically for Groq via isToolsSchemaConflictError (pattern-matches the response_format+tool wording in the thrown error and retries the call without response_format), so no provider-specific quirk was added \u2014 structuredOutputWithTools is declared false. Vision: a real image part returns HTTP 422 'This model does not support image/video inputs.' \u2014 genuinely unsupported, not a rate limit; no model in this roster is marked vision:true and models.visionModel is left unset. Error shapes: bad key -> 401 {"detail":"Unauthorized. Please provide a valid credential."}; bad model -> 404 {"detail":"Model '<id>' not found."}. Only zai-org/GLM-5.3 (the declared default) was capability-probed end to end under the account's tight rate limit; the other 6 roster ids are roster-verified by id only, matching the account's usable request budget for this pass.`},addedInPR:"https://github.com/juspay/neurolink/pull/1657"}}}}),Vme,WTr=_({"src/lib/providers/catalog/gmicloud.json"(){Vme={$schema:"./provider-catalog.schema.json",id:"gmicloud",displayName:"GMI Cloud",aliases:["gmi-cloud"],tier:2,wire:{baseURL:"https://api.gmi-serving.com/v1"},models:{default:"MiniMaxAI/MiniMax-M3",fallbacks:["MiniMaxAI/MiniMax-M3"],defaultContextWindow:1048576,defaultMaxOutputTokens:524288,catalog:{"MiniMaxAI/MiniMax-M3":{contextWindow:1048576,maxOutputTokens:524288,vision:!1,status:"production",description:"MiniMaxAI/MiniMax-M3 \u2014 live GMI Cloud-probed model"}},topModels:["MiniMaxAI/MiniMax-M3"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!0,embeddings:!1,thinking:!1},errorRules:[],setup:{url:"https://console.gmicloud.ai",apiKeyFormat:"^eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$",billingPolicy:"free-tier",instructions:["1. Visit: https://console.gmicloud.ai","2. Sign in and select the Inference service","3. Create an API key; check Console \u2192 Inference \u2192 Model Hub for current model pricing","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-09-03",method:"authenticated GET /v1/models",status:200},authProbe:{date:"2026-09-03",status:401},liveMatrix:{date:"2026-09-03",result:"MiniMax-M3 accepted max_completion_tokens=524288 and rejected 1048576 with an explicit 524288 limit. Structured output: the endpoint ignores response_format (json_schema and json_object both return prose with no prompt hint; raw fetch, 2026-09-03), so the SDK's structured-output fallback re-asks with the schema spelled out in the system prompt and coerces the reply \u2014 generate({ schema }) returned a schema-valid structuredData 3/3 in the prompt-fallback experiment and again in the final live proof through dist/index.js. structuredOutput and structuredOutputWithTools are declared true on that basis."},addedInPR:"pending"}}}}),Hme,KTr=_({"src/lib/providers/catalog/groq.json"(){Hme={$schema:"./provider-catalog.schema.json",id:"groq",displayName:"Groq",aliases:[],tier:2,wire:{baseURL:"https://api.groq.com/openai/v1"},models:{default:"openai/gpt-oss-120b",fallbacks:["openai/gpt-oss-120b","openai/gpt-oss-20b","qwen/qwen3.8-27b","groq/compound"],defaultContextWindow:128e3,defaultMaxOutputTokens:4096,catalog:{"openai/gpt-oss-120b":{enumMember:"GPT_OSS_120B",contextWindow:131072,vision:!1,status:"production",description:"Recommended - GPT-OSS 120B, Groq's flagship open model"},"openai/gpt-oss-20b":{enumMember:"GPT_OSS_20B",contextWindow:131072,vision:!1,status:"production",description:"GPT-OSS 20B \u2014 lower latency, smaller model"},"qwen/qwen3.8-27b":{enumMember:"QWEN_3_8_27B",contextWindow:131072,vision:!0,status:"production",description:"Qwen 3.8 27B \u2014 Groq's only vision-capable model"},"qwen/qwen3.6-27b":{enumMember:"QWEN_3_6_27B",contextWindow:131072,vision:!1,status:"production",description:"Qwen 3.6 27B"},"groq/compound":{enumMember:"COMPOUND",contextWindow:131072,vision:!1,status:"production",description:"Groq Compound \u2014 agentic system with built-in tool use"},"groq/compound-mini":{enumMember:"COMPOUND_MINI",contextWindow:131072,vision:!1,status:"production",description:"Groq Compound Mini \u2014 lighter agentic system"},"allam-2-7b":{enumMember:"ALLAM_2_7B",contextWindow:4096,vision:!1,status:"production",description:"ALLaM 2 7B \u2014 Arabic-focused model"},"llama-3.3-70b-versatile":{contextWindow:131072,pricingPerMTok:{input:.59,output:.79},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq returns 404 'does not exist'"},"llama-3.1-8b-instant":{contextWindow:128e3,pricingPerMTok:{input:.05,output:.08},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq returns 404 'does not exist'"},"gemma2-9b-it":{enumMember:"GEMMA_2_9B_IT",contextWindow:8192,pricingPerMTok:{input:.2,output:.2},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"mixtral-8x7b-32768":{contextWindow:32768,pricingPerMTok:{input:.24,output:.24},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-guard-3-8b":{contextWindow:8192,vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-3.2-90b-vision-preview":{contextWindow:128e3,pricingPerMTok:{input:.9,output:.9},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"},"llama-3.2-11b-vision-preview":{contextWindow:128e3,pricingPerMTok:{input:.18,output:.18},vision:!1,status:"retired",description:"Retired 2026-08 \u2014 Groq reports 'decommissioned'"}},visionModel:"qwen/qwen3.8-27b",topModels:["openai/gpt-oss-120b","openai/gpt-oss-20b","qwen/qwen3.8-27b","groq/compound"]},capabilities:{text:!0,streaming:!0,tools:!0,toolsWithStreaming:!0,structuredOutput:!0,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{status:401,pattern:"Invalid API key|Authentication|invalid_api_key",class:"authentication",message:"Invalid Groq API key. Check {apiKeyEnvVar}. Get one at https://console.groq.com/keys"},{pattern:"model_decommissioned",class:"invalid-model",message:"Groq model '{model}' was decommissioned. Pick a current model from https://console.groq.com/docs/models."}],quirks:{timeoutErrorClass:"provider"},setup:{url:"https://console.groq.com/keys",apiKeyFormat:null,billingPolicy:"free-tier",instructions:["1. Visit: https://console.groq.com/keys","2. Sign in to your Groq account","3. Create a new API key","4. Set {apiKeyEnvVar} in your .env file"]},evidence:{rosterVerified:{date:"2026-08-30",method:"GET /models against the live account, cross-checked with a real chat call per id"},liveMatrix:{date:"2026-08-30",result:"All 7 previously-catalogued ids are gone: Groq answers 404 'does not exist' for the llama ids and 'has been decommissioned' for gemma2/mixtral/llama-guard/llama-3.2-vision. The 7 replacements listed here each returned 200 to a real chat call. Vision was re-tested with a valid 64x64 PNG: qwen/qwen3.8-27b describes the image correctly and is the only vision-capable id; gpt-oss-120b and groq/compound reject an image part with 'messages[0].content must be a string'."},addedInPR:"https://github.com/juspay/neurolink/pull/1587"}}}}),Wme,JTr=_({"src/lib/providers/catalog/huggingface.json"(){Wme={$schema:"./provider-catalog.schema.json",id:"huggingface",displayName:"HuggingFace",enumTypeName:"HuggingFaceModels",aliases:["hf"],credentialsKey:"huggingFace",tier:2,wire:{baseURL:"https://router.huggingface.co/v1",apiKeyFallbackEnvVars:["HF_TOKEN"]},models:{default:"Qwen/Qwen2.5-72B-Instruct",fallbackModelName:"meta-llama/Llama-3.1-8B-Instruct",fallbacks:["meta-llama/Llama-3.1-8B-Instruct"],testModel:"meta-llama/Llama-3.1-8B-Instruct",topModels:["meta-llama/Llama-3.3-70B-Instruct","zai-org/GLM-5","deepseek-ai/DeepSeek-R1","Qwen/Qwen2.5-72B-Instruct","microsoft/phi-4","google/gemma-3-27b-it"],defaultContextWindow:32e3,defaultMaxOutputTokens:32e3,catalog:{"meta-llama/Llama-3.3-70B-Instruct":{vision:!1,status:"production",description:"Recommended - Latest Llama",enumMember:"LLAMA_3_3_70B_INSTRUCT"},"meta-llama/Llama-3.2-1B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_2_1B"},"meta-llama/Llama-3.2-3B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_2_3B_INSTRUCT"},"meta-llama/Llama-3.1-8B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_8B"},"meta-llama/Llama-3.1-8B-Instruct":{vision:!1,status:"production",description:"Llama 3.1 8B, tool-calling capable",enumMember:"LLAMA_3_1_8B_INSTRUCT"},"meta-llama/Llama-3.1-70B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_70B_INSTRUCT"},"meta-llama/Llama-3.1-405B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_1_405B_INSTRUCT"},"meta-llama/Meta-Llama-3-8B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_8B_INSTRUCT"},"meta-llama/Meta-Llama-3-70B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"LLAMA_3_70B_INSTRUCT"},"mistralai/Mistral-Large-3-675B-Instruct-2512":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_LARGE_3_675B"},"mistralai/Mistral-Small-3.1-24B-Instruct-2503":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_SMALL_3_1_24B"},"mistralai/Mistral-Small-24B-Instruct-2501":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_SMALL_24B"},"mistralai/Mistral-7B-Instruct-v0.2":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MISTRAL_7B_INSTRUCT"},"mistralai/Mixtral-8x7B-Instruct-v0.1":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"MIXTRAL_8X7B_INSTRUCT"},"mistralai/Devstral-2":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"DEVSTRAL_2"},"Qwen/Qwen2.5-7B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_7B"},"Qwen/Qwen2.5-32B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_32B"},"Qwen/Qwen2.5-72B-Instruct":{vision:!1,status:"production",description:"Qwen flagship",enumMember:"QWEN_2_5_72B_INSTRUCT"},"Qwen/Qwen2.5-Coder-7B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_CODER_7B"},"Qwen/Qwen2.5-Coder-32B-Instruct":{vision:!1,status:"production",description:"Qwen 2.5 Coder \u2014 Qwen2.5-Coder-32B-Instruct",enumMember:"QWEN_2_5_CODER_32B_INSTRUCT"},"Qwen/QwQ-32B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWQ_32B"},"Qwen/Qwen2.5-VL-32B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"QWEN_2_5_VL_32B"},"deepseek-ai/DeepSeek-R1":{vision:!1,status:"production",description:"Advanced reasoning",enumMember:"DEEPSEEK_R1"},"deepseek-ai/DeepSeek-V3":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3",enumMember:"DEEPSEEK_V3"},"deepseek-ai/DeepSeek-V3.1":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3.1",enumMember:"DEEPSEEK_V3_1"},"deepseek-ai/DeepSeek-V3.2-Exp":{vision:!1,status:"production",description:"DeepSeek \u2014 DeepSeek-V3.2-Exp",enumMember:"DEEPSEEK_V3_2_EXP"},"microsoft/phi-4":{vision:!1,status:"production",description:"Microsoft Phi-4",enumMember:"PHI_4"},"microsoft/Phi-4-reasoning":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_REASONING"},"microsoft/Phi-4-mini-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_MINI_INSTRUCT"},"microsoft/Phi-4-mini-reasoning":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_4_MINI_REASONING"},"microsoft/Phi-3-mini-128k-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_3_MINI_128K_INSTRUCT"},"microsoft/Phi-3-vision-128k-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"PHI_3_VISION_128K_INSTRUCT"},"google/gemma-3-270m":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_3_270M"},"google/gemma-3-1b-it":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_3_1B_IT"},"google/gemma-3-4b-it":{vision:!1,status:"production",description:"Google Gemma 3 \u2014 gemma-3-4b-it",enumMember:"GEMMA_3_4B_IT"},"google/gemma-3-12b-it":{vision:!1,status:"production",description:"Google Gemma 3 \u2014 gemma-3-12b-it",enumMember:"GEMMA_3_12B_IT"},"google/gemma-3-27b-it":{vision:!1,status:"production",description:"Google Gemma 3",enumMember:"GEMMA_3_27B_IT"},"google/gemma-2-9b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2_9B"},"google/gemma-2-27b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2_27B"},"google/gemma-2b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_2B"},"google/gemma-7b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"GEMMA_7B"},"tiiuae/falcon-40b-instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_40B_INSTRUCT"},"tiiuae/falcon-180B-chat":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_180B_CHAT"},"bigcode/starcoder2-15b":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"STARCODER2_15B"},"codellama/CodeLlama-34b-Instruct-hf":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"CODELLAMA_34B_INSTRUCT"},"bigscience/bloom-7b1":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"BLOOM_7B1"},"bigscience/bloom-1b3":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"BLOOM_1B3"},"zai-org/GLM-5":{vision:!1,status:"production",description:"Z.AI GLM-5 (February 2026) \u2014 GLM-5",enumMember:"GLM_5"},"Qwen/Qwen3.5-397B-A17B":{vision:!1,status:"production",description:"Qwen 3.5 Multimodal (February 2026) \u2014 Qwen3.5-397B-A17B",enumMember:"QWEN_3_5_397B_A17B"},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"NEMOTRON_3_NANO_30B"},"HuggingFaceTB/SmolLM3-3B":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"SMOLLM3_3B"},"tiiuae/Falcon3-7B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_3_7B_INSTRUCT"},"tiiuae/Falcon3-10B-Instruct":{vision:!1,status:"retired",description:"Retired 2026-09 \u2014 absent from the router's roster and rejected by a live call",enumMember:"FALCON_3_10B_INSTRUCT"}}},capabilities:{text:!0,streaming:!0,tools:"model-dependent",toolsWithStreaming:!1,structuredOutput:!1,structuredOutputWithTools:!1,embeddings:!1,thinking:!1},errorRules:[{pattern:"API_TOKEN_INVALID|Invalid token",class:"authentication",message:"Invalid HuggingFace API token. Please check your {apiKeyEnvVar} environment variable."},{pattern:"rate limit",class:"rate-limit",message:"HuggingFace rate limit exceeded. Consider using a paid plan or try again later."},{pattern:"model.*not found|not found.*model",class:"invalid-model",message:`HuggingFace model '{model}' not found.
2
2
 
3
3
  Suggestions:
4
4
  1. Check model name spelling