dexto 1.11.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,7 @@ Error generating stack: `+p.message+`
47
47
 
48
48
  `)}x.write("payload.value = newResult;"),x.write("return payload;");const N=x.compile();return(M,P)=>N(y,M,P)};let s;const o=Vd,c=!U5.jitless,m=c&&AU.value,f=t.catchall;let g;e._zod.parse=(y,x)=>{g??(g=r.value);const k=y.value;return o(k)?c&&m&&x?.async===!1&&x.jitless!==!0?(s||(s=i(t.shape)),y=s(y,x),f?tE([],k,y,x,g,e):y):n(y,x):(y.issues.push({expected:"object",code:"invalid_type",input:k,inst:e}),y)}});function uM(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const i=e.filter(s=>!Hu(s));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(o=>jo(o,r,Do())))}),t)}const nE=_e("$ZodUnion",(e,t)=>{zn.init(e,t),tn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),tn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),tn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),tn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${i.map(s=>U1(s.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,s)=>{if(n)return r(i,s);let o=!1;const c=[];for(const d of t.options){const m=d._zod.run({value:i.value,issues:[]},s);if(m instanceof Promise)c.push(m),o=!0;else{if(m.issues.length===0)return m;c.push(m)}}return o?Promise.all(c).then(d=>uM(d,i,e,s)):uM(c,i,e,s)}}),Tz=_e("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,nE.init(e,t);const n=e._zod.parse;tn(e._zod,"propValues",()=>{const i={};for(const s of t.options){const o=s._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const[c,d]of Object.entries(o)){i[c]||(i[c]=new Set);for(const m of d)i[c].add(m)}}return i});const r=bg(()=>{const i=t.options,s=new Map;for(const o of i){const c=o._zod.propValues?.[t.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const d of c){if(s.has(d))throw new Error(`Duplicate discriminator value "${String(d)}"`);s.set(d,o)}}return s});e._zod.parse=(i,s)=>{const o=i.value;if(!Vd(o))return i.issues.push({code:"invalid_type",expected:"object",input:o,inst:e}),i;const c=r.value.get(o?.[t.discriminator]);return c?c._zod.run(i,s):t.unionFallback?n(i,s):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),_z=_e("$ZodIntersection",(e,t)=>{zn.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,s=t.left._zod.run({value:i,issues:[]},r),o=t.right._zod.run({value:i,issues:[]},r);return s instanceof Promise||o instanceof Promise?Promise.all([s,o]).then(([d,m])=>cM(n,d,m)):cM(n,s,o)}});function fb(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(hc(e)&&hc(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),i={...e,...t};for(const s of r){const o=fb(e[s],t[s]);if(!o.valid)return{valid:!1,mergeErrorPath:[s,...o.mergeErrorPath]};i[s]=o.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const i=e[r],s=t[r],o=fb(i,s);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function cM(e,t,n){const r=new Map;let i;for(const c of t.issues)if(c.code==="unrecognized_keys"){i??(i=c);for(const d of c.keys)r.has(d)||r.set(d,{}),r.get(d).l=!0}else e.issues.push(c);for(const c of n.issues)if(c.code==="unrecognized_keys")for(const d of c.keys)r.has(d)||r.set(d,{}),r.get(d).r=!0;else e.issues.push(c);const s=[...r].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(s.length&&i&&e.issues.push({...i,keys:s}),Hu(e))return e;const o=fb(t.value,n.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}const kz=_e("$ZodRecord",(e,t)=>{zn.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!hc(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const s=[],o=t.keyType._zod.values;if(o){n.value={};const c=new Set;for(const m of o)if(typeof m=="string"||typeof m=="number"||typeof m=="symbol"){c.add(typeof m=="number"?m.toString():m);const f=t.valueType._zod.run({value:i[m],issues:[]},r);f instanceof Promise?s.push(f.then(g=>{g.issues.length&&n.issues.push(...Vu(m,g.issues)),n.value[m]=g.value})):(f.issues.length&&n.issues.push(...Vu(m,f.issues)),n.value[m]=f.value)}let d;for(const m in i)c.has(m)||(d=d??[],d.push(m));d&&d.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:d})}else{n.value={};for(const c of Reflect.ownKeys(i)){if(c==="__proto__")continue;let d=t.keyType._zod.run({value:c,issues:[]},r);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&W5.test(c)&&d.issues.length){const g=t.keyType._zod.run({value:Number(c),issues:[]},r);if(g instanceof Promise)throw new Error("Async schemas not supported in object keys currently");g.issues.length===0&&(d=g)}if(d.issues.length){t.mode==="loose"?n.value[c]=i[c]:n.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(g=>jo(g,r,Do())),input:c,path:[c],inst:e});continue}const f=t.valueType._zod.run({value:i[c],issues:[]},r);f instanceof Promise?s.push(f.then(g=>{g.issues.length&&n.issues.push(...Vu(c,g.issues)),n.value[d.value]=g.value})):(f.issues.length&&n.issues.push(...Vu(c,f.issues)),n.value[d.value]=f.value)}}return s.length?Promise.all(s).then(()=>n):n}}),wz=_e("$ZodEnum",(e,t)=>{zn.init(e,t);const n=L5(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>OU.has(typeof i)).map(i=>typeof i=="string"?gc(i):i.toString()).join("|")})$`),e._zod.parse=(i,s)=>{const o=i.value;return r.has(o)||i.issues.push({code:"invalid_value",values:n,input:o,inst:e}),i}}),Sz=_e("$ZodLiteral",(e,t)=>{if(zn.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?gc(r):r?gc(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const s=r.value;return n.has(s)||r.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),r}}),Mz=_e("$ZodTransform",(e,t)=>{zn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new F5(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new rc;return n.value=i,n}});function pM(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const rE=_e("$ZodOptional",(e,t)=>{zn.init(e,t),e._zod.optin="optional",e._zod.optout="optional",tn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),tn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${U1(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>pM(s,n.value)):pM(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),Nz=_e("$ZodExactOptional",(e,t)=>{rE.init(e,t),tn(e._zod,"values",()=>t.innerType._zod.values),tn(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),Pz=_e("$ZodNullable",(e,t)=>{zn.init(e,t),tn(e._zod,"optin",()=>t.innerType._zod.optin),tn(e._zod,"optout",()=>t.innerType._zod.optout),tn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${U1(n.source)}|null)$`):void 0}),tn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Cz=_e("$ZodDefault",(e,t)=>{zn.init(e,t),e._zod.optin="optional",tn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>dM(s,t)):dM(i,t)}});function dM(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Ez=_e("$ZodPrefault",(e,t)=>{zn.init(e,t),e._zod.optin="optional",tn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Dz=_e("$ZodNonOptional",(e,t)=>{zn.init(e,t),tn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>mM(s,e)):mM(i,e)}});function mM(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const jz=_e("$ZodCatch",(e,t)=>{zn.init(e,t),tn(e._zod,"optin",()=>t.innerType._zod.optin),tn(e._zod,"optout",()=>t.innerType._zod.optout),tn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(o=>jo(o,r,Do()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>jo(s,r,Do()))},input:n.value}),n.issues=[]),n)}}),Iz=_e("$ZodPipe",(e,t)=>{zn.init(e,t),tn(e._zod,"values",()=>t.in._zod.values),tn(e._zod,"optin",()=>t.in._zod.optin),tn(e._zod,"optout",()=>t.out._zod.optout),tn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(o=>$f(o,t.in,r)):$f(s,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(s=>$f(s,t.out,r)):$f(i,t.out,r)}});function $f(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Rz=_e("$ZodReadonly",(e,t)=>{zn.init(e,t),tn(e._zod,"propValues",()=>t.innerType._zod.propValues),tn(e._zod,"values",()=>t.innerType._zod.values),tn(e._zod,"optin",()=>t.innerType?._zod?.optin),tn(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(fM):fM(i)}});function fM(e){return e.value=Object.freeze(e.value),e}const Az=_e("$ZodCustom",(e,t)=>{vi.init(e,t),zn.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(s=>hM(s,n,r,e));hM(i,n,r,e)}});function hM(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(Kd(i))}}var gM;class Oz{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function Fz(){return new Oz}(gM=globalThis).__zod_globalRegistry??(gM.__zod_globalRegistry=Fz());const yd=globalThis.__zod_globalRegistry;function Uz(e,t){return new e({type:"string",...mt(t)})}function Lz(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...mt(t)})}function yM(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...mt(t)})}function zz(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...mt(t)})}function $z(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...mt(t)})}function Bz(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...mt(t)})}function qz(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...mt(t)})}function Gz(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...mt(t)})}function Hz(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...mt(t)})}function Vz(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...mt(t)})}function Kz(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...mt(t)})}function Wz(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...mt(t)})}function Zz(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...mt(t)})}function Yz(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...mt(t)})}function Qz(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...mt(t)})}function Xz(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...mt(t)})}function Jz(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...mt(t)})}function e7(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...mt(t)})}function t7(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...mt(t)})}function n7(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...mt(t)})}function r7(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...mt(t)})}function i7(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...mt(t)})}function s7(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...mt(t)})}function a7(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...mt(t)})}function o7(e,t){return new e({type:"string",format:"date",check:"string_format",...mt(t)})}function l7(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...mt(t)})}function u7(e,t){return new e({type:"string",format:"duration",check:"string_format",...mt(t)})}function c7(e,t){return new e({type:"number",coerce:!0,checks:[],...mt(t)})}function p7(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...mt(t)})}function d7(e,t){return new e({type:"boolean",...mt(t)})}function m7(e){return new e({type:"unknown"})}function f7(e,t){return new e({type:"never",...mt(t)})}function xM(e,t){return new Y5({check:"less_than",...mt(t),value:e,inclusive:!1})}function jx(e,t){return new Y5({check:"less_than",...mt(t),value:e,inclusive:!0})}function vM(e,t){return new Q5({check:"greater_than",...mt(t),value:e,inclusive:!1})}function Ix(e,t){return new Q5({check:"greater_than",...mt(t),value:e,inclusive:!0})}function bM(e,t){return new CL({check:"multiple_of",...mt(t),value:e})}function iE(e,t){return new DL({check:"max_length",...mt(t),maximum:e})}function Vh(e,t){return new jL({check:"min_length",...mt(t),minimum:e})}function sE(e,t){return new IL({check:"length_equals",...mt(t),length:e})}function h7(e,t){return new RL({check:"string_format",format:"regex",...mt(t),pattern:e})}function g7(e){return new AL({check:"string_format",format:"lowercase",...mt(e)})}function y7(e){return new OL({check:"string_format",format:"uppercase",...mt(e)})}function x7(e,t){return new FL({check:"string_format",format:"includes",...mt(t),includes:e})}function v7(e,t){return new UL({check:"string_format",format:"starts_with",...mt(t),prefix:e})}function b7(e,t){return new LL({check:"string_format",format:"ends_with",...mt(t),suffix:e})}function Ec(e){return new zL({check:"overwrite",tx:e})}function T7(e){return Ec(t=>t.normalize(e))}function _7(){return Ec(e=>e.trim())}function k7(){return Ec(e=>e.toLowerCase())}function w7(){return Ec(e=>e.toUpperCase())}function S7(){return Ec(e=>RU(e))}function M7(e,t,n){return new e({type:"array",element:t,...mt(n)})}function N7(e,t,n){return new e({type:"custom",check:"custom",fn:t,...mt(n)})}function P7(e){const t=C7(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(Kd(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(Kd(i))}},e(n.value,n)));return t}function C7(e,t){const n=new vi({check:"custom",...mt(t)});return n._zod.check=e,n}function aE(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??yd,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function cr(e,t,n={path:[],schemaPath:[]}){var r;const i=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);const c=e._zod.toJSONSchema?.();if(c)o.schema=c;else{const f={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,f);else{const y=o.schema,x=t.processors[i.type];if(!x)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);x(e,t,y,f)}const g=e._zod.parent;g&&(o.ref||(o.ref=g),cr(g,t,f),t.seen.get(g).isParent=!0)}const d=t.metadataRegistry.get(e);return d&&Object.assign(o.schema,d),t.io==="input"&&Qr(e)&&(delete o.schema.examples,delete o.schema.default),t.io==="input"&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function oE(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const o of e.seen.entries()){const c=e.metadataRegistry.get(o[0])?.id;if(c){const d=r.get(c);if(d&&d!==o[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(c,o[0])}}const i=o=>{const c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const g=e.external.registry.get(o[0])?.id,y=e.external.uri??(k=>k);if(g)return{ref:y(g)};const x=o[1].defId??o[1].schema.id??`schema${e.counter++}`;return o[1].defId=x,{defId:x,ref:`${y("__shared")}#/${c}/${x}`}}if(o[1]===n)return{ref:"#"};const m=`#/${c}/`,f=o[1].schema.id??`__schema${e.counter++}`;return{defId:f,ref:m+f}},s=o=>{if(o[1].schema.$ref)return;const c=o[1],{ref:d,defId:m}=i(o);c.def={...c.schema},m&&(c.defId=m);const f=c.schema;for(const g in f)delete f[g];f.$ref=d};if(e.cycles==="throw")for(const o of e.seen.entries()){const c=o[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
49
49
 
50
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const c=o[1];if(t===o[0]){s(o);continue}if(e.external){const m=e.external.registry.get(o[0])?.id;if(t!==o[0]&&m){s(o);continue}}if(e.metadataRegistry.get(o[0])?.id){s(o);continue}if(c.cycle){s(o);continue}if(c.count>1&&e.reused==="ref"){s(o);continue}}}function lE(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=o=>{const c=e.seen.get(o);if(c.ref===null)return;const d=c.def??c.schema,m={...d},f=c.ref;if(c.ref=null,f){r(f);const y=e.seen.get(f),x=y.schema;if(x.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(x)):Object.assign(d,x),Object.assign(d,m),o._zod.parent===f)for(const T in d)T==="$ref"||T==="allOf"||T in m||delete d[T];if(x.$ref&&y.def)for(const T in d)T==="$ref"||T==="allOf"||T in y.def&&JSON.stringify(d[T])===JSON.stringify(y.def[T])&&delete d[T]}const g=o._zod.parent;if(g&&g!==f){r(g);const y=e.seen.get(g);if(y?.schema.$ref&&(d.$ref=y.schema.$ref,y.def))for(const x in d)x==="$ref"||x==="allOf"||x in y.def&&JSON.stringify(d[x])===JSON.stringify(y.def[x])&&delete d[x]}e.override({zodSchema:o,jsonSchema:d,path:c.path??[]})};for(const o of[...e.seen.entries()].reverse())r(o[0]);const i={};if(e.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const o=e.external.registry.get(t)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(o)}Object.assign(i,n.def??n.schema);const s=e.external?.defs??{};for(const o of e.seen.entries()){const c=o[1];c.def&&c.defId&&(s[c.defId]=c.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{const o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...t["~standard"],jsonSchema:{input:Kh(t,"input",e.processors),output:Kh(t,"output",e.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Qr(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Qr(r.element,n);if(r.type==="set")return Qr(r.valueType,n);if(r.type==="lazy")return Qr(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Qr(r.innerType,n);if(r.type==="intersection")return Qr(r.left,n)||Qr(r.right,n);if(r.type==="record"||r.type==="map")return Qr(r.keyType,n)||Qr(r.valueType,n);if(r.type==="pipe")return Qr(r.in,n)||Qr(r.out,n);if(r.type==="object"){for(const i in r.shape)if(Qr(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(Qr(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(Qr(i,n))return!0;return!!(r.rest&&Qr(r.rest,n))}return!1}const E7=(e,t={})=>n=>{const r=aE({...n,processors:t});return cr(e,r),oE(r,e),lE(r,e)},Kh=(e,t,n={})=>r=>{const{libraryOptions:i,target:s}=r??{},o=aE({...i??{},target:s,io:t,processors:n});return cr(e,o),oE(o,e),lE(o,e)},D7={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},j7=(e,t,n,r)=>{const i=n;i.type="string";const{minimum:s,maximum:o,format:c,patterns:d,contentEncoding:m}=e._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof o=="number"&&(i.maxLength=o),c&&(i.format=D7[c]??c,i.format===""&&delete i.format,c==="time"&&delete i.format),m&&(i.contentEncoding=m),d&&d.size>0){const f=[...d];f.length===1?i.pattern=f[0].source:f.length>1&&(i.allOf=[...f.map(g=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:g.source}))])}},I7=(e,t,n,r)=>{const i=n,{minimum:s,maximum:o,format:c,multipleOf:d,exclusiveMaximum:m,exclusiveMinimum:f}=e._zod.bag;typeof c=="string"&&c.includes("int")?i.type="integer":i.type="number",typeof f=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(i.minimum=f,i.exclusiveMinimum=!0):i.exclusiveMinimum=f),typeof s=="number"&&(i.minimum=s,typeof f=="number"&&t.target!=="draft-04"&&(f>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(i.maximum=m,i.exclusiveMaximum=!0):i.exclusiveMaximum=m),typeof o=="number"&&(i.maximum=o,typeof m=="number"&&t.target!=="draft-04"&&(m<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof d=="number"&&(i.multipleOf=d)},R7=(e,t,n,r)=>{n.type="boolean"},A7=(e,t,n,r)=>{n.not={}},O7=(e,t,n,r)=>{},F7=(e,t,n,r)=>{const i=e._zod.def,s=L5(i.entries);s.every(o=>typeof o=="number")&&(n.type="number"),s.every(o=>typeof o=="string")&&(n.type="string"),n.enum=s},U7=(e,t,n,r)=>{const i=e._zod.def,s=[];for(const o of i.values)if(o===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(o))}else s.push(o);if(s.length!==0)if(s.length===1){const o=s[0];n.type=o===null?"null":typeof o,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[o]:n.const=o}else s.every(o=>typeof o=="number")&&(n.type="number"),s.every(o=>typeof o=="string")&&(n.type="string"),s.every(o=>typeof o=="boolean")&&(n.type="boolean"),s.every(o=>o===null)&&(n.type="null"),n.enum=s},L7=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},z7=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$7=(e,t,n,r)=>{const i=n,s=e._zod.def,{minimum:o,maximum:c}=e._zod.bag;typeof o=="number"&&(i.minItems=o),typeof c=="number"&&(i.maxItems=c),i.type="array",i.items=cr(s.element,t,{...r,path:[...r.path,"items"]})},B7=(e,t,n,r)=>{const i=n,s=e._zod.def;i.type="object",i.properties={};const o=s.shape;for(const m in o)i.properties[m]=cr(o[m],t,{...r,path:[...r.path,"properties",m]});const c=new Set(Object.keys(o)),d=new Set([...c].filter(m=>{const f=s.shape[m]._zod;return t.io==="input"?f.optin===void 0:f.optout===void 0}));d.size>0&&(i.required=Array.from(d)),s.catchall?._zod.def.type==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=cr(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(i.additionalProperties=!1)},q7=(e,t,n,r)=>{const i=e._zod.def,s=i.inclusive===!1,o=i.options.map((c,d)=>cr(c,t,{...r,path:[...r.path,s?"oneOf":"anyOf",d]}));s?n.oneOf=o:n.anyOf=o},G7=(e,t,n,r)=>{const i=e._zod.def,s=cr(i.left,t,{...r,path:[...r.path,"allOf",0]}),o=cr(i.right,t,{...r,path:[...r.path,"allOf",1]}),c=m=>"allOf"in m&&Object.keys(m).length===1,d=[...c(s)?s.allOf:[s],...c(o)?o.allOf:[o]];n.allOf=d},H7=(e,t,n,r)=>{const i=n,s=e._zod.def;i.type="object";const o=s.keyType,d=o._zod.bag?.patterns;if(s.mode==="loose"&&d&&d.size>0){const f=cr(s.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(const g of d)i.patternProperties[g.source]=f}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(i.propertyNames=cr(s.keyType,t,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=cr(s.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const m=o._zod.values;if(m){const f=[...m].filter(g=>typeof g=="string"||typeof g=="number");f.length>0&&(i.required=f)}},V7=(e,t,n,r)=>{const i=e._zod.def,s=cr(i.innerType,t,r),o=t.seen.get(e);t.target==="openapi-3.0"?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},K7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType},W7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Z7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},Y7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=o},Q7=(e,t,n,r)=>{const i=e._zod.def,s=t.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;cr(s,t,r);const o=t.seen.get(e);o.ref=s},X7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,n.readOnly=!0},uE=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType},J7=_e("ZodISODateTime",(e,t)=>{ez.init(e,t),Bn.init(e,t)});function e8(e){return a7(J7,e)}const t8=_e("ZodISODate",(e,t)=>{tz.init(e,t),Bn.init(e,t)});function n8(e){return o7(t8,e)}const r8=_e("ZodISOTime",(e,t)=>{nz.init(e,t),Bn.init(e,t)});function i8(e){return l7(r8,e)}const s8=_e("ZodISODuration",(e,t)=>{rz.init(e,t),Bn.init(e,t)});function a8(e){return u7(s8,e)}const o8=(e,t)=>{q5.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>KU(e,n)},flatten:{value:n=>VU(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,mb,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,mb,2)}},isEmpty:{get(){return e.issues.length===0}}})},as=_e("ZodError",o8,{Parent:Error}),l8=z1(as),u8=$1(as),c8=Tg(as),p8=_g(as),d8=YU(as),m8=QU(as),f8=XU(as),h8=JU(as),g8=eL(as),y8=tL(as),x8=nL(as),v8=rL(as),$n=_e("ZodType",(e,t)=>(zn.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Kh(e,"input"),output:Kh(e,"output")}}),e.toJSONSchema=E7(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(Uo(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>Lo(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>l8(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>c8(e,n,r),e.parseAsync=async(n,r)=>u8(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>p8(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>d8(e,n,r),e.decode=(n,r)=>m8(e,n,r),e.encodeAsync=async(n,r)=>f8(e,n,r),e.decodeAsync=async(n,r)=>h8(e,n,r),e.safeEncode=(n,r)=>g8(e,n,r),e.safeDecode=(n,r)=>y8(e,n,r),e.safeEncodeAsync=async(n,r)=>x8(e,n,r),e.safeDecodeAsync=async(n,r)=>v8(e,n,r),e.refine=(n,r)=>e.check(d$(n,r)),e.superRefine=n=>e.check(m$(n)),e.overwrite=n=>e.check(Ec(n)),e.optional=()=>kM(e),e.exactOptional=()=>J8(e),e.nullable=()=>wM(e),e.nullish=()=>kM(wM(e)),e.nonoptional=n=>s$(e,n),e.array=()=>As(e),e.or=n=>mE([e,n]),e.and=n=>K8(e,n),e.transform=n=>SM(e,Q8(n)),e.default=n=>n$(e,n),e.prefault=n=>i$(e,n),e.catch=n=>o$(e,n),e.pipe=n=>SM(e,n),e.readonly=()=>c$(e),e.describe=n=>{const r=e.clone();return yd.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return yd.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return yd.get(e);const r=e.clone();return yd.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),cE=_e("_ZodString",(e,t)=>{B1.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>j7(e,r,i);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(h7(...r)),e.includes=(...r)=>e.check(x7(...r)),e.startsWith=(...r)=>e.check(v7(...r)),e.endsWith=(...r)=>e.check(b7(...r)),e.min=(...r)=>e.check(Vh(...r)),e.max=(...r)=>e.check(iE(...r)),e.length=(...r)=>e.check(sE(...r)),e.nonempty=(...r)=>e.check(Vh(1,...r)),e.lowercase=r=>e.check(g7(r)),e.uppercase=r=>e.check(y7(r)),e.trim=()=>e.check(_7()),e.normalize=(...r)=>e.check(T7(...r)),e.toLowerCase=()=>e.check(k7()),e.toUpperCase=()=>e.check(w7()),e.slugify=()=>e.check(S7())}),b8=_e("ZodString",(e,t)=>{B1.init(e,t),cE.init(e,t),e.email=n=>e.check(Lz(T8,n)),e.url=n=>e.check(Gz(_8,n)),e.jwt=n=>e.check(s7(F8,n)),e.emoji=n=>e.check(Hz(k8,n)),e.guid=n=>e.check(yM(TM,n)),e.uuid=n=>e.check(zz(Bf,n)),e.uuidv4=n=>e.check($z(Bf,n)),e.uuidv6=n=>e.check(Bz(Bf,n)),e.uuidv7=n=>e.check(qz(Bf,n)),e.nanoid=n=>e.check(Vz(w8,n)),e.guid=n=>e.check(yM(TM,n)),e.cuid=n=>e.check(Kz(S8,n)),e.cuid2=n=>e.check(Wz(M8,n)),e.ulid=n=>e.check(Zz(N8,n)),e.base64=n=>e.check(n7(R8,n)),e.base64url=n=>e.check(r7(A8,n)),e.xid=n=>e.check(Yz(P8,n)),e.ksuid=n=>e.check(Qz(C8,n)),e.ipv4=n=>e.check(Xz(E8,n)),e.ipv6=n=>e.check(Jz(D8,n)),e.cidrv4=n=>e.check(e7(j8,n)),e.cidrv6=n=>e.check(t7(I8,n)),e.e164=n=>e.check(i7(O8,n)),e.datetime=n=>e.check(e8(n)),e.date=n=>e.check(n8(n)),e.time=n=>e.check(i8(n)),e.duration=n=>e.check(a8(n))});function Jt(e){return Uz(b8,e)}const Bn=_e("ZodStringFormat",(e,t)=>{Rn.init(e,t),cE.init(e,t)}),T8=_e("ZodEmail",(e,t)=>{HL.init(e,t),Bn.init(e,t)}),TM=_e("ZodGUID",(e,t)=>{qL.init(e,t),Bn.init(e,t)}),Bf=_e("ZodUUID",(e,t)=>{GL.init(e,t),Bn.init(e,t)}),_8=_e("ZodURL",(e,t)=>{VL.init(e,t),Bn.init(e,t)}),k8=_e("ZodEmoji",(e,t)=>{KL.init(e,t),Bn.init(e,t)}),w8=_e("ZodNanoID",(e,t)=>{WL.init(e,t),Bn.init(e,t)}),S8=_e("ZodCUID",(e,t)=>{ZL.init(e,t),Bn.init(e,t)}),M8=_e("ZodCUID2",(e,t)=>{YL.init(e,t),Bn.init(e,t)}),N8=_e("ZodULID",(e,t)=>{QL.init(e,t),Bn.init(e,t)}),P8=_e("ZodXID",(e,t)=>{XL.init(e,t),Bn.init(e,t)}),C8=_e("ZodKSUID",(e,t)=>{JL.init(e,t),Bn.init(e,t)}),E8=_e("ZodIPv4",(e,t)=>{iz.init(e,t),Bn.init(e,t)}),D8=_e("ZodIPv6",(e,t)=>{sz.init(e,t),Bn.init(e,t)}),j8=_e("ZodCIDRv4",(e,t)=>{az.init(e,t),Bn.init(e,t)}),I8=_e("ZodCIDRv6",(e,t)=>{oz.init(e,t),Bn.init(e,t)}),R8=_e("ZodBase64",(e,t)=>{lz.init(e,t),Bn.init(e,t)}),A8=_e("ZodBase64URL",(e,t)=>{cz.init(e,t),Bn.init(e,t)}),O8=_e("ZodE164",(e,t)=>{pz.init(e,t),Bn.init(e,t)}),F8=_e("ZodJWT",(e,t)=>{mz.init(e,t),Bn.init(e,t)}),pE=_e("ZodNumber",(e,t)=>{J5.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>I7(e,r,i),e.gt=(r,i)=>e.check(vM(r,i)),e.gte=(r,i)=>e.check(Ix(r,i)),e.min=(r,i)=>e.check(Ix(r,i)),e.lt=(r,i)=>e.check(xM(r,i)),e.lte=(r,i)=>e.check(jx(r,i)),e.max=(r,i)=>e.check(jx(r,i)),e.int=r=>e.check(_M(r)),e.safe=r=>e.check(_M(r)),e.positive=r=>e.check(vM(0,r)),e.nonnegative=r=>e.check(Ix(0,r)),e.negative=r=>e.check(xM(0,r)),e.nonpositive=r=>e.check(jx(0,r)),e.multipleOf=(r,i)=>e.check(bM(r,i)),e.step=(r,i)=>e.check(bM(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}),U8=_e("ZodNumberFormat",(e,t)=>{fz.init(e,t),pE.init(e,t)});function _M(e){return p7(U8,e)}const L8=_e("ZodBoolean",(e,t)=>{hz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>R7(e,n,r)});function Dc(e){return d7(L8,e)}const z8=_e("ZodUnknown",(e,t)=>{gz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>O7()});function hb(){return m7(z8)}const $8=_e("ZodNever",(e,t)=>{yz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>A7(e,n,r)});function B8(e){return f7($8,e)}const q8=_e("ZodArray",(e,t)=>{xz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>$7(e,n,r,i),e.element=t.element,e.min=(n,r)=>e.check(Vh(n,r)),e.nonempty=n=>e.check(Vh(1,n)),e.max=(n,r)=>e.check(iE(n,r)),e.length=(n,r)=>e.check(sE(n,r)),e.unwrap=()=>e.element});function As(e,t){return M7(q8,e,t)}const G8=_e("ZodObject",(e,t)=>{bz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>B7(e,n,r,i),tn(e,"shape",()=>t.shape),e.keyof=()=>Hs(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:hb()}),e.loose=()=>e.clone({...e._zod.def,catchall:hb()}),e.strict=()=>e.clone({...e._zod.def,catchall:B8()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>$U(e,n),e.safeExtend=n=>BU(e,n),e.merge=n=>qU(e,n),e.pick=n=>LU(e,n),e.omit=n=>zU(e,n),e.partial=(...n)=>GU(hE,e,n[0]),e.required=(...n)=>HU(gE,e,n[0])});function or(e,t){const n={type:"object",shape:e??{},...mt(t)};return new G8(n)}const dE=_e("ZodUnion",(e,t)=>{nE.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>q7(e,n,r,i),e.options=t.options});function mE(e,t){return new dE({type:"union",options:e,...mt(t)})}const H8=_e("ZodDiscriminatedUnion",(e,t)=>{dE.init(e,t),Tz.init(e,t)});function fE(e,t,n){return new H8({type:"union",options:t,discriminator:e,...mt(n)})}const V8=_e("ZodIntersection",(e,t)=>{_z.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>G7(e,n,r,i)});function K8(e,t){return new V8({type:"intersection",left:e,right:t})}const W8=_e("ZodRecord",(e,t)=>{kz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>H7(e,n,r,i),e.keyType=t.keyType,e.valueType=t.valueType});function um(e,t,n){return new W8({type:"record",keyType:e,valueType:t,...mt(n)})}const gb=_e("ZodEnum",(e,t)=>{wz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>F7(e,r,i),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const s={};for(const o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new gb({...t,checks:[],...mt(i),entries:s})},e.exclude=(r,i)=>{const s={...t.entries};for(const o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new gb({...t,checks:[],...mt(i),entries:s})}});function Hs(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new gb({type:"enum",entries:n,...mt(t)})}const Z8=_e("ZodLiteral",(e,t)=>{Sz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>U7(e,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function El(e,t){return new Z8({type:"literal",values:Array.isArray(e)?e:[e],...mt(t)})}const Y8=_e("ZodTransform",(e,t)=>{Mz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>z7(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new F5(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(Kd(s,n.value,t));else{const o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),n.issues.push(Kd(o))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});function Q8(e){return new Y8({type:"transform",transform:e})}const hE=_e("ZodOptional",(e,t)=>{rE.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>uE(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function kM(e){return new hE({type:"optional",innerType:e})}const X8=_e("ZodExactOptional",(e,t)=>{Nz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>uE(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function J8(e){return new X8({type:"optional",innerType:e})}const e$=_e("ZodNullable",(e,t)=>{Pz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>V7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function wM(e){return new e$({type:"nullable",innerType:e})}const t$=_e("ZodDefault",(e,t)=>{Cz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>W7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function n$(e,t){return new t$({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():$5(t)}})}const r$=_e("ZodPrefault",(e,t)=>{Ez.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Z7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function i$(e,t){return new r$({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():$5(t)}})}const gE=_e("ZodNonOptional",(e,t)=>{Dz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>K7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function s$(e,t){return new gE({type:"nonoptional",innerType:e,...mt(t)})}const a$=_e("ZodCatch",(e,t)=>{jz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Y7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function o$(e,t){return new a$({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const l$=_e("ZodPipe",(e,t)=>{Iz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Q7(e,n,r,i),e.in=t.in,e.out=t.out});function SM(e,t){return new l$({type:"pipe",in:e,out:t})}const u$=_e("ZodReadonly",(e,t)=>{Rz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>X7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function c$(e){return new u$({type:"readonly",innerType:e})}const p$=_e("ZodCustom",(e,t)=>{Az.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>L7(e,n)});function d$(e,t={}){return N7(p$,e,t)}function m$(e){return P7(e)}const f$={custom:"custom"};function q1(e){return c7(pE,e)}var yE=(e=>(e.LLM="llm",e.AGENT="agent",e.CONFIG="config",e.CONTEXT="context",e.SESSION="session",e.MCP="mcp",e.TOOLS="tools",e.STORAGE="storage",e.LOGGER="logger",e.SYSTEM_PROMPT="system_prompt",e.RESOURCE="resource",e.PROMPT="prompt",e.MEMORY="memory",e.HOOK="hook",e.TELEMETRY="telemetry",e))(yE||{}),xE=(e=>(e.USER="user",e.PAYMENT_REQUIRED="payment_required",e.FORBIDDEN="forbidden",e.NOT_FOUND="not_found",e.TIMEOUT="timeout",e.CONFLICT="conflict",e.RATE_LIMIT="rate_limit",e.SYSTEM="system",e.THIRD_PARTY="third_party",e.UNKNOWN="unknown",e))(xE||{}),h$={};Jt().transform(e=>e.trim()).refine(e=>e.length>0,{message:"Required"});const vE=new Set(["http:","https:"]);function g$(e){try{const t=new URL(e);return vE.has(t.protocol)}catch{return!1}}Jt().transform(e=>e.trim()).refine(e=>e===""||g$(e),{message:"Invalid URL"}).transform(e=>e===""?void 0:e).optional();const ic=e=>Jt().transform(t=>{if(typeof t!="string")return"";const n=e??h$;return t.replace(/\$([A-Z_][A-Z0-9_]*)|\${([A-Z_][A-Z0-9_]*)}/gi,(i,s,o)=>n[s||o]??"").trim()}),bE=e=>ic(e).refine(t=>{try{const n=new URL(t);return vE.has(n.protocol)}catch{return!1}},{message:"Invalid URL"});function Wh(e){return e?.startsWith("audio/")?"audio":e?.startsWith("video/")?"video":"binary"}function MM(e){return e?.startsWith("image/")?"image":e?.startsWith("audio/")?"audio":e?.startsWith("video/")?"video":"binary"}var ba=["openai","openai-compatible","anthropic","google","groq","xai","cohere","minimax","glm","openrouter","litellm","glama","vertex","bedrock","local","ollama","dexto-nova"],y$=["pdf","image","audio","video","document"],Ki={openai:[{name:"gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4",displayName:"GPT-4",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-chat-latest",displayName:"GPT-5 Chat (latest)",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-chat-latest",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-chat-latest",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-chat-latest",displayName:"GPT-5.3 Chat (latest)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-codex-spark",displayName:"GPT-5.3 Codex Spark",maxInputTokens:1e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,contextOver200kPerM:{inputPerM:5,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,contextOver200kPerM:{inputPerM:60,outputPerM:270},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:10,outputPerM:45},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,contextOver200kPerM:{inputPerM:60,outputPerM:270},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:.2,cacheWritePerM:2.5,inputPerM:2,outputPerM:9},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:1,cacheWritePerM:12.5,inputPerM:10,outputPerM:45},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:.5,cacheWritePerM:6.25,inputPerM:5,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-image-1",displayName:"gpt-image-1",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-04-24",modalities:{input:["text","image"],output:["image"]}},{name:"gpt-image-1-mini",displayName:"gpt-image-1-mini",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text","image"],output:["text","image"]}},{name:"gpt-image-1.5",displayName:"gpt-image-1.5",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-11-25",modalities:{input:["text","image"],output:["text","image"]}},{name:"gpt-image-2",displayName:"gpt-image-2",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["image"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-realtime-2.1",displayName:"GPT-Realtime-2.1",maxInputTokens:96e3,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text","audio","image"],output:["text","audio"]},pricing:{inputPerM:4,outputPerM:24,cacheReadPerM:.4,inputAudioPerM:32,outputAudioPerM:64,currency:"USD",unit:"per_million_tokens"}},{name:"o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-03-19",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}}],anthropic:[{name:"claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5-20251001",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"claude-opus-4-1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-1-20250805",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5-20251101",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5-20250929",displayName:"Claude Sonnet 4.5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}}],google:[{name:"gemini-2.0-flash",displayName:"Gemini 2.0 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-11",status:"deprecated",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.0-flash-lite",displayName:"Gemini 2.0 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-11",status:"deprecated",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:30,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,inputAudioPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-preview-tts",displayName:"Gemini 2.5 Flash Preview TTS",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-01",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,contextOver200kPerM:{inputPerM:2.5,outputPerM:15},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro-preview-tts",displayName:"Gemini 2.5 Pro Preview TTS",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-01",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:1,outputPerM:20,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-pro-preview",displayName:"Gemini 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-18",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:65536,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["text","image","pdf"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-embedding-001",displayName:"Gemini Embedding 001",maxInputTokens:2048,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-latest",displayName:"Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-lite-latest",displayName:"Gemini Flash-Lite Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-omni-flash-preview",displayName:"Gemini Omni Flash Preview",maxInputTokens:131072,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["text","image","video"],output:["video"]},pricing:{inputPerM:1.5,outputPerM:17.5,currency:"USD",unit:"per_million_tokens"}}],groq:[{name:"canopylabs/orpheus-arabic-saudi",displayName:"Canopy Labs Orpheus Arabic Saudi",maxInputTokens:4e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-16",status:"beta",modalities:{input:["text"],output:["audio"]}},{name:"canopylabs/orpheus-v1-english",displayName:"Canopy Labs Orpheus V1 English",maxInputTokens:4e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-19",status:"beta",modalities:{input:["text"],output:["audio"]}},{name:"groq/compound",displayName:"Compound",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]}},{name:"groq/compound-mini",displayName:"Compound Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]}},{name:"llama-3.1-8b-instant",displayName:"Llama 3.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"llama-3.3-70b-versatile",displayName:"Llama 3.3 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.59,outputPerM:.79,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"meta-llama/llama-4-scout-17b-16e-instruct",displayName:"Llama 4 Scout 17B 16E",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",status:"beta",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.34,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-prompt-guard-2-22m",displayName:"Llama Prompt Guard 2 22M",maxInputTokens:512,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-prompt-guard-2-86m",displayName:"Prompt Guard 2 86M",maxInputTokens:512,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"Safety GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3-32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-11",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.29,outputPerM:.59,currency:"USD",unit:"per_million_tokens"}},{name:"whisper-large-v3",displayName:"Whisper",maxInputTokens:0,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-01",modalities:{input:["audio"],output:["text"]}},{name:"whisper-large-v3-turbo",displayName:"Whisper Large V3 Turbo",maxInputTokens:0,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-01",modalities:{input:["audio"],output:["text"]}}],xai:[{name:"grok-4.20-0309-non-reasoning",displayName:"Grok 4.20 (Non-Reasoning)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.20-0309-reasoning",displayName:"Grok 4.20 (Reasoning)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.20-multi-agent-0309",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2,outputPerM:4},currency:"USD",unit:"per_million_tokens"}},{name:"grok-imagine-image",displayName:"Grok Imagine Image",maxInputTokens:8e3,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-01-28",modalities:{input:["text","image","pdf"],output:["image","pdf"]}},{name:"grok-imagine-image-quality",displayName:"Grok Imagine Image Quality",maxInputTokens:8e3,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-03",modalities:{input:["text","image","pdf"],output:["image","pdf"]}},{name:"grok-imagine-video",displayName:"Grok Imagine Video",maxInputTokens:1024,supportedFileTypes:["pdf","image","video"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-01-28",modalities:{input:["text","image","video","pdf"],output:["video"]}}],cohere:[{name:"command-a-03-2025",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"command-a-plus-05-2026",displayName:"Command A Plus",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-20",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-reasoning-08-2025",displayName:"Command A Reasoning",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-translate-08-2025",displayName:"Command A Translate",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-vision-07-2025",displayName:"Command A Vision",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"command-r7b-arabic-02-2025",displayName:"Command R7B Arabic",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}}],minimax:[{name:"MiniMax-M2",displayName:"MiniMax-M2",maxInputTokens:196608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"MiniMax-M2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.5-highspeed",displayName:"MiniMax-M2.5-highspeed",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.4,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.7-highspeed",displayName:"MiniMax-M2.7-highspeed",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.4,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M3",displayName:"MiniMax-M3",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,contextOver200kPerM:{inputPerM:.6,outputPerM:2.4},currency:"USD",unit:"per_million_tokens"}}],glm:[{name:"glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,cacheReadPerM:.03,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5-flash",displayName:"GLM-4.5-Flash",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,cacheReadPerM:0,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:64e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.6",displayName:"GLM-4.6",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.7",displayName:"GLM-4.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,cacheReadPerM:0,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.7-flashx",displayName:"GLM-4.7-FlashX",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5",displayName:"GLM-5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-11",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,cacheReadPerM:.2,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5.1",displayName:"GLM-5.1",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.4,outputPerM:4.4,cacheReadPerM:.26,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5.2",displayName:"GLM-5.2",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.4,outputPerM:4.4,cacheReadPerM:.26,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:2e5,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text","image","video","pdf"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:5,outputPerM:22,cacheReadPerM:1.2,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}}],openrouter:[{name:"~anthropic/claude-fable-latest",displayName:"Claude Fable Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-haiku-latest",displayName:"Anthropic Claude Haiku Latest",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-opus-latest",displayName:"Claude Opus Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-sonnet-latest",displayName:"Anthropic Claude Sonnet Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-flash-latest",displayName:"Google Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-pro-latest",displayName:"Google Gemini Pro Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["audio","pdf","image","text","video"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"~moonshotai/kimi-latest",displayName:"MoonshotAI Kimi Latest",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-latest",displayName:"OpenAI GPT Latest",maxInputTokens:105e4,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-mini-latest",displayName:"OpenAI GPT Mini Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"~x-ai/grok-latest",displayName:"Grok Latest",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"ai21/jamba-large-1.7",displayName:"Jamba Large 1.7",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-2.0",displayName:"Aion-2.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0",displayName:"Aion-3.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:6,cacheReadPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0-mini",displayName:"Aion-3.0-Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:1.4,cacheReadPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-rp-llama-3.1-8b",displayName:"Aion-RP 1.0 (8B)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,currency:"USD",unit:"per_million_tokens"}},{name:"allenai/olmo-3-32b-think",displayName:"Olmo 3 32B Think",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-2-lite-v1",displayName:"Nova 2 Lite",maxInputTokens:1e6,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-lite-v1",displayName:"Nova Lite 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-micro-v1",displayName:"Nova Micro 1.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-premier-v1",displayName:"Nova Premier 1.0",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:12.5,cacheReadPerM:.625,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-pro-v1",displayName:"Nova Pro 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthracite-org/magnum-v4-72b",displayName:"Magnum v4 72B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-3-haiku",displayName:"Claude 3 Haiku",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.25,cacheReadPerM:.03,cacheWritePerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-haiku-4.5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7-fast",displayName:"Claude Opus 4.7 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:150,cacheReadPerM:3,cacheWritePerM:37.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8-fast",displayName:"Claude Opus 4.8 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/trinity-large-thinking",displayName:"Trinity Large Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.8,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/virtuoso-large",displayName:"Virtuoso Large",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"baidu/ernie-4.5-vl-424b-a47b",displayName:"ERNIE 4.5 VL 424B A47B ",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-06-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.42,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6",displayName:"Seed 1.6",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6-flash",displayName:"Seed 1.6 Flash",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-lite",displayName:"Seed-2.0-Lite",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-10",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-mini",displayName:"Seed-2.0-Mini",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-26",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance/ui-tars-1.5-7b",displayName:"UI-TARS 7B ",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-22",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition",displayName:"Uncensored",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",displayName:"Uncensored (free)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-a",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/north-mini-code:free",displayName:"North Mini Code (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"deepcogito/cogito-v2.1-671b",displayName:"Cogito v2.1 671B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat",displayName:"DeepSeek Chat",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2002,outputPerM:.8001,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3-0324",displayName:"DeepSeek V3 0324",maxInputTokens:163840,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-24",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1.12,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3.1",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.95,cacheReadPerM:.13,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-0528",displayName:"R1 0528",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2.15,cacheReadPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-distill-llama-70b",displayName:"R1 Distill Llama 70B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.1-terminus",displayName:"DeepSeek V3.1 Terminus",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.269,outputPerM:.4,cacheReadPerM:.1345,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2-exp",displayName:"DeepSeek V3.2 Exp",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:.41,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-flash",displayName:"DeepSeek V4 Flash",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.098,outputPerM:.196,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-pro",displayName:"DeepSeek V4 Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.003625,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,reasoningPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:.083333,reasoningPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview",displayName:"Gemini 2.5 Pro Preview 06-05",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-05",modalities:{input:["pdf","image","text","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf","audio","video"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,cacheWritePerM:.083333,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["image","text"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-image",displayName:"Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["image","text"],output:["image","text"]},pricing:{inputPerM:.25,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048756,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-2-27b-it",displayName:"Gemma 2 27B",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-07-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-12b-it",displayName:"Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-27b-it",displayName:"Gemma 3 27B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.45,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-4b-it",displayName:"Gemma 3 4B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3n-e4b-it",displayName:"Gemma 3n 4B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it",displayName:"Gemma 4 26B A4B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it:free",displayName:"Gemma 4 26B A4B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it",displayName:"Gemma 4 31B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.55,cacheReadPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it:free",displayName:"Gemma 4 31B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-clip-preview",displayName:"Lyria 3 Clip Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-pro-preview",displayName:"Lyria 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gryphe/mythomax-l2-13b",displayName:"MythoMax 13B",maxInputTokens:4096,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.0-h-micro",displayName:"Granite 4.0 Micro",maxInputTokens:131e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.017,outputPerM:.112,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.1-8b",displayName:"Granite 4.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"inception/mercury-2",displayName:"Mercury 2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.75,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-1t",displayName:"Ling-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-flash",displayName:"Ling-2.6-flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.01,outputPerM:.03,cacheReadPerM:.002,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ring-2.6-1t",displayName:"Ring-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-pi",displayName:"Inflection 3 Pi",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-productivity",displayName:"Inflection 3 Productivity",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-air-v2.5",displayName:"KAT-Coder-Air V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2",displayName:"KAT-Coder-Pro V2",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2.5",displayName:"KAT-Coder-Pro V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.74,outputPerM:2.96,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mancer/weaver",displayName:"Weaver (alpha)",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-08-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-70b-instruct",displayName:"Llama 3.1 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-8b-instruct",displayName:"Llama 3.1 8B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.345,outputPerM:.345,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-1b-instruct",displayName:"Llama 3.2 1B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.027,outputPerM:.201,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct",displayName:"Llama 3.2 3B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.33,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct:free",displayName:"Llama 3.2 3B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct:free",displayName:"Llama 3.3 70B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-maverick",displayName:"Llama 4 Maverick",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-scout",displayName:"Llama 4 Scout",maxInputTokens:1e7,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-guard-4-12b",displayName:"Llama Guard 4 12B",maxInputTokens:163840,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-04-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.18,outputPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"meta/muse-spark-1.1",displayName:"Muse Spark 1.1",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-08",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:4.25,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/phi-4",displayName:"Phi 4",maxInputTokens:16384,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/wizardlm-2-8x22b",displayName:"WizardLM-2 8x22B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-04-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:.62,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-01",displayName:"MiniMax-01",maxInputTokens:1000192,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m1",displayName:"MiniMax M1",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2",displayName:"MiniMax-M2",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.255,outputPerM:1.02,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2-her",displayName:"MiniMax M2-her",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.15,outputPerM:.9,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m3",displayName:"MiniMax-M3",maxInputTokens:1048576,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/codestral-2508",displayName:"Codestral 2508",maxInputTokens:256e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-01",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/devstral-2512",displayName:"Devstral 2",maxInputTokens:262144,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-09",status:"deprecated",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-14b-2512",displayName:"Ministral 3 14B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-3b-2512",displayName:"Ministral 3 3B 2512",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-8b-2512",displayName:"Ministral 3 8B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large",displayName:"Mistral Large",maxInputTokens:128e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-02-26",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2407",displayName:"Mistral Large 2407",maxInputTokens:131072,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-19",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2512",displayName:"Mistral Large 3",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-01",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3",displayName:"Mistral Medium 3",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3-5",displayName:"Mistral Medium 3.5",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3.1",displayName:"Mistral Medium 3.1",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-nemo",displayName:"Mistral Nemo",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.02,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-saba",displayName:"Saba",maxInputTokens:32768,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-24b-instruct-2501",displayName:"Mistral Small 3",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-2603",displayName:"Mistral Small 4",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.1-24b-instruct",displayName:"Mistral Small 3.1 24B",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.351,outputPerM:.555,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.2-24b-instruct",displayName:"Mistral Small 3.2 24B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-20",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mixtral-8x22b-instruct",displayName:"Mixtral 8x22B Instruct",maxInputTokens:65536,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-04-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["pdf","audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-30",modalities:{input:["text","audio","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2",displayName:"Kimi K2 0711",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.57,outputPerM:2.3,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-0905",displayName:"Kimi K2 0905",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-06",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.57,outputPerM:2.85,cacheReadPerM:.095,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.6",displayName:"Kimi K2.6",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:4,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.7-code",displayName:"Kimi K2.7 Code",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:3.5,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k3",displayName:"Kimi K3",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-fast",displayName:"Morph V3 Fast",maxInputTokens:81920,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-large",displayName:"Morph V3 Large",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.9,outputPerM:1.9,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-mini",displayName:"Nex-N2-Mini",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.025,outputPerM:.1,cacheReadPerM:.0025,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-pro",displayName:"Nex-N2-Pro",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b",displayName:"Hermes 3 405B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b:free",displayName:"Hermes 3 405B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-70b",displayName:"Hermes 3 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:.7,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-405b",displayName:"Hermes 4 405B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-70b",displayName:"Hermes 4 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/llama-3.3-nemotron-super-49b-v1.5",displayName:"Llama 3.3 Nemotron Super 49B v1.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b",displayName:"Nemotron 3 Nano 30B A3B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b:free",displayName:"Nemotron 3 Nano 30B A3B (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",displayName:"Nemotron 3 Nano Omni (free)",maxInputTokens:256e3,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text","image","video","audio"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b",displayName:"Nemotron 3 Super 120B A12B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.21,outputPerM:.455,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b:free",displayName:"Nemotron 3 Super (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b",displayName:"Nemotron 3 Ultra 550B A55B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:3.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b:free",displayName:"Nemotron 3 Ultra (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3.5-content-safety:free",displayName:"Nemotron 3.5 Content Safety (free)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-12b-v2-vl:free",displayName:"Nemotron Nano 12B 2 VL (free)",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-28",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-9b-v2:free",displayName:"Nemotron Nano 9B V2 (free)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-0613",displayName:"GPT-3.5 Turbo (older v0613)",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-16k",displayName:"GPT-3.5 Turbo 16k",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-instruct",displayName:"GPT-3.5 Turbo Instruct",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4",displayName:"GPT-4",maxInputTokens:8191,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo-preview",displayName:"GPT-4 Turbo Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-2024-07-18",displayName:"GPT-4o-mini (2024-07-18)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-search-preview",displayName:"GPT-4o-mini Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-search-preview",displayName:"GPT-4o Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-chat",displayName:"GPT-5 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image",displayName:"GPT-5 Image",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-14",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:10,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image-mini",displayName:"GPT-5 Image Mini",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-16",modalities:{input:["pdf","image","text"],output:["image","text"]},pricing:{inputPerM:2.5,outputPerM:2,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-chat",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-chat",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-10",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-chat",displayName:"GPT-5.3 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-image-2",displayName:"GPT-5.4 Image 2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:8,outputPerM:15,cacheReadPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna-pro",displayName:"GPT-5.6 Luna Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol-pro",displayName:"GPT-5.6 Sol Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra-pro",displayName:"GPT-5.6 Terra Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio",displayName:"GPT Audio",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio-mini",displayName:"GPT Audio Mini",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:.6,outputPerM:2.4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-chat-latest",displayName:"GPT Chat Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.037,outputPerM:.17,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.13,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b:free",displayName:"gpt-oss-20b (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"gpt-oss-safeguard-20b",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-19",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini-high",displayName:"o3 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-02-12",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","pdf","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-high",displayName:"o4 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/auto",displayName:"Auto Router",maxInputTokens:2e6,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-08",modalities:{input:["text","image","audio","pdf","video"],output:["text","image"]}},{name:"openrouter/bodybuilder",displayName:"Body Builder (beta)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-05",modalities:{input:["text"],output:["text"]}},{name:"openrouter/free",displayName:"Free Models Router",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/fusion",displayName:"Fusion",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]}},{name:"openrouter/pareto-code",displayName:"Pareto Code Router",maxInputTokens:2e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]}},{name:"perceptron/perceptron-mk1",displayName:"Perceptron Mk1",maxInputTokens:32768,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-12",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.15,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar",displayName:"Sonar",maxInputTokens:127072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-deep-research",displayName:"Sonar Deep Research",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro",displayName:"Sonar Pro",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro-search",displayName:"Sonar Pro Search",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-30",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-reasoning-pro",displayName:"Sonar Reasoning Pro",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1",displayName:"Laguna M.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.4,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1:free",displayName:"Laguna M.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1",displayName:"Laguna XS 2.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1:free",displayName:"Laguna XS 2.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-72b-instruct",displayName:"Qwen2.5 72B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-09-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.36,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-7b-instruct",displayName:"Qwen2.5 7B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-coder-32b-instruct",displayName:"Qwen2.5 Coder 32B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-11-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.66,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus",displayName:"Qwen Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheReadPerM:.052,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28",displayName:"Qwen Plus 0728",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28:thinking",displayName:"Qwen Plus 0728 (thinking)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen2.5-vl-72b-instruct",displayName:"Qwen2.5 VL 72B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1,cacheReadPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-14b",displayName:"Qwen3 14B",maxInputTokens:131702,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b",displayName:"Qwen3 235B-A22B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.455,outputPerM:1.82,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-2507",displayName:"Qwen3 235B A22B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1495,outputPerM:1.495,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b",displayName:"Qwen3 30B A3B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-thinking-2507",displayName:"Qwen3 30B A3B Thinking 2507",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3 32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.28,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-8b",displayName:"Qwen3 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder",displayName:"Qwen3 Coder 480B A35B",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-30b-a3b-instruct",displayName:"Qwen3-Coder 30B-A3B Instruct",maxInputTokens:16e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.27,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-flash",displayName:"Qwen3 Coder Flash",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.195,outputPerM:.975,cacheReadPerM:.039,cacheWritePerM:.24375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.8,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-plus",displayName:"Qwen3 Coder Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:3.25,cacheReadPerM:.13,cacheWritePerM:.8125,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder:free",displayName:"Qwen3 Coder 480B A35B (free)",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max",displayName:"Qwen3 Max",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,cacheReadPerM:.156,cacheWritePerM:.975,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max-thinking",displayName:"Qwen3 Max Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct",displayName:"Qwen3-Next 80B-A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:1.1,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct:free",displayName:"Qwen3 Next 80B A3B Instruct (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-thinking",displayName:"Qwen3-Next 80B-A3B (Thinking)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0975,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-instruct",displayName:"Qwen3 VL 235B A22B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.21,outputPerM:1.9,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-thinking",displayName:"Qwen3 VL 235B A22B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-instruct",displayName:"Qwen3 VL 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.52,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-thinking",displayName:"Qwen3 VL 30B A3B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-32b-instruct",displayName:"Qwen3 VL 32B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.104,outputPerM:.416,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-instruct",displayName:"Qwen3 VL 8B Instruct",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-thinking",displayName:"Qwen3 VL 8B Thinking",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:1.365,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-122b-a10b",displayName:"Qwen3.5 122B-A10B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.08,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-27b",displayName:"Qwen3.5 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.195,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-35b-a3b",displayName:"Qwen3.5 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-397b-a17b",displayName:"Qwen3.5 397B-A17B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-15",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:3,cacheReadPerM:.225,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-9b",displayName:"Qwen3.5 9B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-flash-02-23",displayName:"Qwen3.5-Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-25",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.065,outputPerM:.26,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-02-15",displayName:"Qwen3.5 Plus 2026-02-15",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-16",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-20260420",displayName:"Qwen3.5 Plus 2026-04-20",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.8,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-27b",displayName:"Qwen3.6 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:2.7,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-35b-a3b",displayName:"Qwen3.6 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-flash",displayName:"Qwen3.6 Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1875,outputPerM:1.125,cacheWritePerM:.234375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-max-preview",displayName:"Qwen3.6 Max Preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.04,outputPerM:6.24,cacheWritePerM:1.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-plus",displayName:"Qwen3.6 Plus",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.325,outputPerM:1.95,cacheWritePerM:.40625,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-max",displayName:"Qwen3.7 Max",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.475,outputPerM:4.425,cacheReadPerM:.295,cacheWritePerM:1.84375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-plus",displayName:"Qwen3.7 Plus",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.32,outputPerM:1.28,cacheReadPerM:.064,cacheWritePerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-edge",displayName:"Reka Edge",maxInputTokens:16384,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-20",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-flash-3",displayName:"Reka Flash 3",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-apply-3",displayName:"Relace Apply 3",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-search",displayName:"Relace Search",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"sakana/fugu-ultra",displayName:"Fugu Ultra",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3-lunaris-8b",displayName:"Llama 3 8B Lunaris",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.1-euryale-70b",displayName:"Llama 3.1 Euryale 70B v2.2",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:.85,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.3-euryale-70b",displayName:"Llama 3.3 Euryale 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.5-flash",displayName:"Step 3.5 Flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.7-flash",displayName:"Step 3.7 Flash",maxInputTokens:256e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-29",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.15,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hunyuan-a13b-instruct",displayName:"Hunyuan A13B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:.57,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3",displayName:"Hy3",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3-preview",displayName:"Hy3 preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.063,outputPerM:.21,cacheReadPerM:.021,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3:free",displayName:"Hy3 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/cydonia-24b-v4.1",displayName:"Cydonia 24B V4.1",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.5,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/rocinante-12b",displayName:"Rocinante 12B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/skyfall-36b-v2",displayName:"Skyfall 36B V2",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:.8,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/unslopnemo-12b",displayName:"UnslopNemo 12B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"undi95/remm-slerp-l2-13b",displayName:"ReMM SLERP 13B",maxInputTokens:6144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.45,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"upstage/solar-pro-3",displayName:"Solar Pro 3",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"writer/palmyra-x5",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20",displayName:"Grok 4.20",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20-multi-agent",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5",displayName:"MiMo-V2.5",maxInputTokens:1048576,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","audio","video"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.14,outputPerM:.28,cacheReadPerM:.0028,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5-pro",displayName:"MiMo-V2.5-Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.0036,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.85,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:65536,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6",displayName:"GLM-4.6",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:131072,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.055,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7",displayName:"GLM-4.7",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.4,outputPerM:1.75,cacheReadPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.0605,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:3.15,cacheReadPerM:.19,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5-turbo",displayName:"GLM-5-Turbo",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.1",displayName:"GLM-5.1",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-07",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.966,outputPerM:3.036,cacheReadPerM:.1794,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.2",displayName:"GLM-5.2",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.9338,outputPerM:2.9348,cacheReadPerM:.17342,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:202752,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}}],vertex:[{name:"claude-3-5-haiku@20241022",displayName:"Claude Haiku 3.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:.8,outputPerM:4,cacheReadPerM:.08,cacheWritePerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5@20251001",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-1@20250805",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5@20251101",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-01",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-6@default",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-7@default",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-8@default",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4@20250514",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5@20250929",displayName:"Claude Sonnet 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-6@default",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4@20250514",displayName:"Claude Sonnet 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-5@default",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek-ai/deepseek-v3.1-maas",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.6,outputPerM:1.7,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek-ai/deepseek-v3.2-maas",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.56,outputPerM:1.68,cacheReadPerM:.056,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.075,cacheWritePerM:.383,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,inputAudioPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-tts",displayName:"Gemini 2.5 Flash TTS",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-30",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,contextOver200kPerM:{inputPerM:2.5,outputPerM:15},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro-tts",displayName:"Gemini 2.5 Pro TTS",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-30",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:1,outputPerM:20,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["pdf","image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image","video","pdf"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-embedding-001",displayName:"Gemini Embedding 001",maxInputTokens:2048,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-latest",displayName:"Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-lite-latest",displayName:"Gemini Flash-Lite Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"meta/llama-3.3-70b-instruct-maas",displayName:"Llama 3.3 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-29",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta/llama-4-maverick-17b-128e-instruct-maas",displayName:"Llama 4 Maverick 17B 128E Instruct",maxInputTokens:524288,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-29",modalities:{input:["text","image"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.35,outputPerM:1.15,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking-maas",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b-maas",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.36,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b-maas",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-instruct-2507-maas",displayName:"Qwen3 235B A22B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.22,outputPerM:.88,currency:"USD",unit:"per_million_tokens"}},{name:"zai-org/glm-4.7-maas",displayName:"GLM-4.7",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-06",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai-org/glm-5-maas",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-11",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}}],bedrock:[{name:"amazon.nova-2-lite-v1:0",displayName:"Nova 2 Lite",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.33,outputPerM:2.75,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-lite-v1:0",displayName:"Nova Lite",maxInputTokens:3e5,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-micro-v1:0",displayName:"Nova Micro",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,cacheReadPerM:.00875,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-pro-v1:0",displayName:"Nova Pro",maxInputTokens:3e5,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-1-20250805-v1:0",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (AU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-opus-4-6-v1",displayName:"AU Anthropic Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:16.5,outputPerM:82.5,cacheReadPerM:1.65,cacheWritePerM:20.625,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (AU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (AU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-4-6",displayName:"AU Anthropic Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (AU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.r1-v1:0",displayName:"DeepSeek-R1",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.35,outputPerM:5.4,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.v3-v1:0",displayName:"DeepSeek-V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.58,outputPerM:1.68,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.v3.2",displayName:"DeepSeek-V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:1.85,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-fable-5",displayName:"Claude Fable 5 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:11,outputPerM:55,cacheReadPerM:1.1,cacheWritePerM:13.75,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:5.5,cacheReadPerM:.11,cacheWritePerM:1.375,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.2,outputPerM:11,cacheReadPerM:.22,cacheWritePerM:2.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-fable-5",displayName:"Claude Fable 5 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-12b-it",displayName:"Google Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.049999999999999996,outputPerM:.09999999999999999,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-27b-it",displayName:"Google Gemma 3 27B Instruct",maxInputTokens:202752,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-4b-it",displayName:"Gemma 3 4B IT",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (JP)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (JP)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-1-70b-instruct-v1:0",displayName:"Llama 3.1 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-1-8b-instruct-v1:0",displayName:"Llama 3.1 8B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.22,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-3-70b-instruct-v1:0",displayName:"Llama 3.3 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama4-maverick-17b-instruct-v1:0",displayName:"Llama 4 Maverick 17B Instruct",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.24,outputPerM:.97,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama4-scout-17b-instruct-v1:0",displayName:"Llama 4 Scout 17B Instruct",maxInputTokens:35e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.17,outputPerM:.66,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2",displayName:"MiniMax M2",maxInputTokens:204608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2.1",displayName:"MiniMax M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2.5",displayName:"MiniMax M2.5",maxInputTokens:196608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.devstral-2-123b",displayName:"Devstral 2 123B",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.magistral-small-2509",displayName:"Magistral Small 1.2",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-14b-instruct",displayName:"Ministral 14B 3.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-3b-instruct",displayName:"Ministral 3 3B",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-8b-instruct",displayName:"Ministral 3 8B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.mistral-large-3-675b-instruct",displayName:"Mistral Large 3",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.pixtral-large-2502-v1:0",displayName:"Pixtral Large (25.02)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.voxtral-mini-3b-2507",displayName:"Voxtral Mini 3B 2507",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["audio","text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-01",modalities:{input:["text","audio"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"moonshot.kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262143,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text"],output:["text"]},interleaved:!0,supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai.kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262143,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text","image"],output:["text"]},interleaved:!0,supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-12b-v2",displayName:"NVIDIA Nemotron Nano 12B v2 VL BF16",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-3-30b",displayName:"NVIDIA Nemotron Nano 3 30B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-9b-v2",displayName:"NVIDIA Nemotron Nano 9B v2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.23,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-super-3-120b",displayName:"NVIDIA Nemotron 3 Super 120B A12B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.4",displayName:"GPT-5.4",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:2.75,outputPerM:16.5,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.5",displayName:"GPT-5.5",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:5.5,outputPerM:33,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-120b",displayName:"gpt-oss-120b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/v1"},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-120b-1:0",displayName:"gpt-oss-120b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-20b",displayName:"gpt-oss-20b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/v1"},pricing:{inputPerM:.07,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-20b-1:0",displayName:"gpt-oss-20b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-safeguard-120b",displayName:"GPT OSS Safeguard 120B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-safeguard-20b",displayName:"GPT OSS Safeguard 20B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-235b-a22b-2507-v1:0",displayName:"Qwen3 235B A22B 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.88,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-32b-v1:0",displayName:"Qwen3 32B (dense)",maxInputTokens:16384,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-30b-a3b-v1:0",displayName:"Qwen3 Coder 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-480b-a35b-v1:0",displayName:"Qwen3 Coder 480B A35B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-next-80b-a3b",displayName:"Qwen/Qwen3-Next-80B-A3B-Instruct",maxInputTokens:262e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-vl-235b-a22b",displayName:"Qwen/Qwen3-VL-235B-A22B-Instruct",maxInputTokens:262e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-fable-5",displayName:"Claude Fable 5 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-1-20250805-v1:0",displayName:"Claude Opus 4.1 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.deepseek.r1-v1:0",displayName:"DeepSeek-R1 (US)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.35,outputPerM:5.4,currency:"USD",unit:"per_million_tokens"}},{name:"us.meta.llama4-maverick-17b-instruct-v1:0",displayName:"Llama 4 Maverick 17B Instruct (US)",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.24,outputPerM:.97,currency:"USD",unit:"per_million_tokens"}},{name:"us.meta.llama4-scout-17b-instruct-v1:0",displayName:"Llama 4 Scout 17B Instruct (US)",maxInputTokens:35e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.17,outputPerM:.66,currency:"USD",unit:"per_million_tokens"}},{name:"writer.palmyra-x4-v1:0",displayName:"Palmyra X4",maxInputTokens:122880,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"writer.palmyra-x5-v1:0",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"xai.grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-4.7",displayName:"GLM-4.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}}],"dexto-nova":[{name:"~anthropic/claude-fable-latest",displayName:"Claude Fable Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-haiku-latest",displayName:"Anthropic Claude Haiku Latest",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-opus-latest",displayName:"Claude Opus Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-sonnet-latest",displayName:"Anthropic Claude Sonnet Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-flash-latest",displayName:"Google Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-pro-latest",displayName:"Google Gemini Pro Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["audio","pdf","image","text","video"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"~moonshotai/kimi-latest",displayName:"MoonshotAI Kimi Latest",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-latest",displayName:"OpenAI GPT Latest",maxInputTokens:105e4,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-mini-latest",displayName:"OpenAI GPT Mini Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"~x-ai/grok-latest",displayName:"Grok Latest",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"ai21/jamba-large-1.7",displayName:"Jamba Large 1.7",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-2.0",displayName:"Aion-2.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0",displayName:"Aion-3.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:6,cacheReadPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0-mini",displayName:"Aion-3.0-Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:1.4,cacheReadPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-rp-llama-3.1-8b",displayName:"Aion-RP 1.0 (8B)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,currency:"USD",unit:"per_million_tokens"}},{name:"allenai/olmo-3-32b-think",displayName:"Olmo 3 32B Think",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-2-lite-v1",displayName:"Nova 2 Lite",maxInputTokens:1e6,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-lite-v1",displayName:"Nova Lite 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-micro-v1",displayName:"Nova Micro 1.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-premier-v1",displayName:"Nova Premier 1.0",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:12.5,cacheReadPerM:.625,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-pro-v1",displayName:"Nova Pro 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthracite-org/magnum-v4-72b",displayName:"Magnum v4 72B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-3-haiku",displayName:"Claude 3 Haiku",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.25,cacheReadPerM:.03,cacheWritePerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-haiku-4.5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7-fast",displayName:"Claude Opus 4.7 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:150,cacheReadPerM:3,cacheWritePerM:37.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8-fast",displayName:"Claude Opus 4.8 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/trinity-large-thinking",displayName:"Trinity Large Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.8,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/virtuoso-large",displayName:"Virtuoso Large",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"baidu/ernie-4.5-vl-424b-a47b",displayName:"ERNIE 4.5 VL 424B A47B ",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-06-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.42,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6",displayName:"Seed 1.6",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6-flash",displayName:"Seed 1.6 Flash",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-lite",displayName:"Seed-2.0-Lite",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-10",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-mini",displayName:"Seed-2.0-Mini",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-26",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance/ui-tars-1.5-7b",displayName:"UI-TARS 7B ",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-22",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition",displayName:"Uncensored",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",displayName:"Uncensored (free)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-a",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/north-mini-code:free",displayName:"North Mini Code (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"deepcogito/cogito-v2.1-671b",displayName:"Cogito v2.1 671B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat",displayName:"DeepSeek Chat",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2002,outputPerM:.8001,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3-0324",displayName:"DeepSeek V3 0324",maxInputTokens:163840,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-24",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1.12,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3.1",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.95,cacheReadPerM:.13,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-0528",displayName:"R1 0528",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2.15,cacheReadPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-distill-llama-70b",displayName:"R1 Distill Llama 70B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.1-terminus",displayName:"DeepSeek V3.1 Terminus",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.269,outputPerM:.4,cacheReadPerM:.1345,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2-exp",displayName:"DeepSeek V3.2 Exp",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:.41,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-flash",displayName:"DeepSeek V4 Flash",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.098,outputPerM:.196,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-pro",displayName:"DeepSeek V4 Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.003625,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,reasoningPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:.083333,reasoningPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview",displayName:"Gemini 2.5 Pro Preview 06-05",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-05",modalities:{input:["pdf","image","text","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf","audio","video"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,cacheWritePerM:.083333,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["image","text"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-image",displayName:"Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["image","text"],output:["image","text"]},pricing:{inputPerM:.25,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048756,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-2-27b-it",displayName:"Gemma 2 27B",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-07-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-12b-it",displayName:"Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-27b-it",displayName:"Gemma 3 27B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.45,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-4b-it",displayName:"Gemma 3 4B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3n-e4b-it",displayName:"Gemma 3n 4B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it",displayName:"Gemma 4 26B A4B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it:free",displayName:"Gemma 4 26B A4B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it",displayName:"Gemma 4 31B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.55,cacheReadPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it:free",displayName:"Gemma 4 31B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-clip-preview",displayName:"Lyria 3 Clip Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-pro-preview",displayName:"Lyria 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gryphe/mythomax-l2-13b",displayName:"MythoMax 13B",maxInputTokens:4096,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.0-h-micro",displayName:"Granite 4.0 Micro",maxInputTokens:131e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.017,outputPerM:.112,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.1-8b",displayName:"Granite 4.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"inception/mercury-2",displayName:"Mercury 2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.75,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-1t",displayName:"Ling-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-flash",displayName:"Ling-2.6-flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.01,outputPerM:.03,cacheReadPerM:.002,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ring-2.6-1t",displayName:"Ring-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-pi",displayName:"Inflection 3 Pi",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-productivity",displayName:"Inflection 3 Productivity",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-air-v2.5",displayName:"KAT-Coder-Air V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2",displayName:"KAT-Coder-Pro V2",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2.5",displayName:"KAT-Coder-Pro V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.74,outputPerM:2.96,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mancer/weaver",displayName:"Weaver (alpha)",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-08-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-70b-instruct",displayName:"Llama 3.1 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-8b-instruct",displayName:"Llama 3.1 8B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.345,outputPerM:.345,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-1b-instruct",displayName:"Llama 3.2 1B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.027,outputPerM:.201,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct",displayName:"Llama 3.2 3B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.33,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct:free",displayName:"Llama 3.2 3B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct:free",displayName:"Llama 3.3 70B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-maverick",displayName:"Llama 4 Maverick",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-scout",displayName:"Llama 4 Scout",maxInputTokens:1e7,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-guard-4-12b",displayName:"Llama Guard 4 12B",maxInputTokens:163840,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-04-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.18,outputPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"meta/muse-spark-1.1",displayName:"Muse Spark 1.1",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-08",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:4.25,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/phi-4",displayName:"Phi 4",maxInputTokens:16384,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/wizardlm-2-8x22b",displayName:"WizardLM-2 8x22B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-04-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:.62,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-01",displayName:"MiniMax-01",maxInputTokens:1000192,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m1",displayName:"MiniMax M1",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2",displayName:"MiniMax-M2",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.255,outputPerM:1.02,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2-her",displayName:"MiniMax M2-her",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.15,outputPerM:.9,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m3",displayName:"MiniMax-M3",maxInputTokens:1048576,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/codestral-2508",displayName:"Codestral 2508",maxInputTokens:256e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-01",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/devstral-2512",displayName:"Devstral 2",maxInputTokens:262144,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-09",status:"deprecated",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-14b-2512",displayName:"Ministral 3 14B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-3b-2512",displayName:"Ministral 3 3B 2512",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-8b-2512",displayName:"Ministral 3 8B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large",displayName:"Mistral Large",maxInputTokens:128e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-02-26",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2407",displayName:"Mistral Large 2407",maxInputTokens:131072,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-19",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2512",displayName:"Mistral Large 3",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-01",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3",displayName:"Mistral Medium 3",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3-5",displayName:"Mistral Medium 3.5",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3.1",displayName:"Mistral Medium 3.1",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-nemo",displayName:"Mistral Nemo",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.02,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-saba",displayName:"Saba",maxInputTokens:32768,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-24b-instruct-2501",displayName:"Mistral Small 3",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-2603",displayName:"Mistral Small 4",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.1-24b-instruct",displayName:"Mistral Small 3.1 24B",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.351,outputPerM:.555,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.2-24b-instruct",displayName:"Mistral Small 3.2 24B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-20",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mixtral-8x22b-instruct",displayName:"Mixtral 8x22B Instruct",maxInputTokens:65536,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-04-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["pdf","audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-30",modalities:{input:["text","audio","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2",displayName:"Kimi K2 0711",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.57,outputPerM:2.3,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-0905",displayName:"Kimi K2 0905",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-06",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.57,outputPerM:2.85,cacheReadPerM:.095,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.6",displayName:"Kimi K2.6",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:4,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.7-code",displayName:"Kimi K2.7 Code",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:3.5,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k3",displayName:"Kimi K3",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-fast",displayName:"Morph V3 Fast",maxInputTokens:81920,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-large",displayName:"Morph V3 Large",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.9,outputPerM:1.9,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-mini",displayName:"Nex-N2-Mini",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.025,outputPerM:.1,cacheReadPerM:.0025,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-pro",displayName:"Nex-N2-Pro",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b",displayName:"Hermes 3 405B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b:free",displayName:"Hermes 3 405B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-70b",displayName:"Hermes 3 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:.7,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-405b",displayName:"Hermes 4 405B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-70b",displayName:"Hermes 4 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/llama-3.3-nemotron-super-49b-v1.5",displayName:"Llama 3.3 Nemotron Super 49B v1.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b",displayName:"Nemotron 3 Nano 30B A3B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b:free",displayName:"Nemotron 3 Nano 30B A3B (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",displayName:"Nemotron 3 Nano Omni (free)",maxInputTokens:256e3,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text","image","video","audio"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b",displayName:"Nemotron 3 Super 120B A12B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.21,outputPerM:.455,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b:free",displayName:"Nemotron 3 Super (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b",displayName:"Nemotron 3 Ultra 550B A55B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:3.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b:free",displayName:"Nemotron 3 Ultra (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3.5-content-safety:free",displayName:"Nemotron 3.5 Content Safety (free)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-12b-v2-vl:free",displayName:"Nemotron Nano 12B 2 VL (free)",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-28",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-9b-v2:free",displayName:"Nemotron Nano 9B V2 (free)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-0613",displayName:"GPT-3.5 Turbo (older v0613)",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-16k",displayName:"GPT-3.5 Turbo 16k",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-instruct",displayName:"GPT-3.5 Turbo Instruct",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4",displayName:"GPT-4",maxInputTokens:8191,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo-preview",displayName:"GPT-4 Turbo Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-2024-07-18",displayName:"GPT-4o-mini (2024-07-18)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-search-preview",displayName:"GPT-4o-mini Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-search-preview",displayName:"GPT-4o Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-chat",displayName:"GPT-5 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image",displayName:"GPT-5 Image",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-14",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:10,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image-mini",displayName:"GPT-5 Image Mini",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-16",modalities:{input:["pdf","image","text"],output:["image","text"]},pricing:{inputPerM:2.5,outputPerM:2,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-chat",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-chat",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-10",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-chat",displayName:"GPT-5.3 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-image-2",displayName:"GPT-5.4 Image 2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:8,outputPerM:15,cacheReadPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna-pro",displayName:"GPT-5.6 Luna Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol-pro",displayName:"GPT-5.6 Sol Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra-pro",displayName:"GPT-5.6 Terra Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio",displayName:"GPT Audio",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio-mini",displayName:"GPT Audio Mini",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:.6,outputPerM:2.4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-chat-latest",displayName:"GPT Chat Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.037,outputPerM:.17,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.13,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b:free",displayName:"gpt-oss-20b (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"gpt-oss-safeguard-20b",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-19",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini-high",displayName:"o3 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-02-12",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","pdf","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-high",displayName:"o4 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/auto",displayName:"Auto Router",maxInputTokens:2e6,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-08",modalities:{input:["text","image","audio","pdf","video"],output:["text","image"]}},{name:"openrouter/bodybuilder",displayName:"Body Builder (beta)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-05",modalities:{input:["text"],output:["text"]}},{name:"openrouter/free",displayName:"Free Models Router",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/fusion",displayName:"Fusion",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]}},{name:"openrouter/pareto-code",displayName:"Pareto Code Router",maxInputTokens:2e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]}},{name:"perceptron/perceptron-mk1",displayName:"Perceptron Mk1",maxInputTokens:32768,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-12",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.15,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar",displayName:"Sonar",maxInputTokens:127072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-deep-research",displayName:"Sonar Deep Research",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro",displayName:"Sonar Pro",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro-search",displayName:"Sonar Pro Search",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-30",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-reasoning-pro",displayName:"Sonar Reasoning Pro",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1",displayName:"Laguna M.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.4,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1:free",displayName:"Laguna M.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1",displayName:"Laguna XS 2.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1:free",displayName:"Laguna XS 2.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-72b-instruct",displayName:"Qwen2.5 72B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-09-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.36,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-7b-instruct",displayName:"Qwen2.5 7B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-coder-32b-instruct",displayName:"Qwen2.5 Coder 32B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-11-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.66,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus",displayName:"Qwen Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheReadPerM:.052,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28",displayName:"Qwen Plus 0728",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28:thinking",displayName:"Qwen Plus 0728 (thinking)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen2.5-vl-72b-instruct",displayName:"Qwen2.5 VL 72B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1,cacheReadPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-14b",displayName:"Qwen3 14B",maxInputTokens:131702,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b",displayName:"Qwen3 235B-A22B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.455,outputPerM:1.82,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-2507",displayName:"Qwen3 235B A22B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1495,outputPerM:1.495,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b",displayName:"Qwen3 30B A3B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-thinking-2507",displayName:"Qwen3 30B A3B Thinking 2507",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3 32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.28,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-8b",displayName:"Qwen3 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder",displayName:"Qwen3 Coder 480B A35B",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-30b-a3b-instruct",displayName:"Qwen3-Coder 30B-A3B Instruct",maxInputTokens:16e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.27,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-flash",displayName:"Qwen3 Coder Flash",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.195,outputPerM:.975,cacheReadPerM:.039,cacheWritePerM:.24375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.8,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-plus",displayName:"Qwen3 Coder Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:3.25,cacheReadPerM:.13,cacheWritePerM:.8125,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder:free",displayName:"Qwen3 Coder 480B A35B (free)",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max",displayName:"Qwen3 Max",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,cacheReadPerM:.156,cacheWritePerM:.975,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max-thinking",displayName:"Qwen3 Max Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct",displayName:"Qwen3-Next 80B-A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:1.1,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct:free",displayName:"Qwen3 Next 80B A3B Instruct (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-thinking",displayName:"Qwen3-Next 80B-A3B (Thinking)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0975,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-instruct",displayName:"Qwen3 VL 235B A22B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.21,outputPerM:1.9,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-thinking",displayName:"Qwen3 VL 235B A22B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-instruct",displayName:"Qwen3 VL 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.52,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-thinking",displayName:"Qwen3 VL 30B A3B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-32b-instruct",displayName:"Qwen3 VL 32B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.104,outputPerM:.416,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-instruct",displayName:"Qwen3 VL 8B Instruct",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-thinking",displayName:"Qwen3 VL 8B Thinking",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:1.365,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-122b-a10b",displayName:"Qwen3.5 122B-A10B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.08,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-27b",displayName:"Qwen3.5 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.195,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-35b-a3b",displayName:"Qwen3.5 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-397b-a17b",displayName:"Qwen3.5 397B-A17B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-15",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:3,cacheReadPerM:.225,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-9b",displayName:"Qwen3.5 9B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-flash-02-23",displayName:"Qwen3.5-Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-25",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.065,outputPerM:.26,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-02-15",displayName:"Qwen3.5 Plus 2026-02-15",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-16",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-20260420",displayName:"Qwen3.5 Plus 2026-04-20",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.8,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-27b",displayName:"Qwen3.6 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:2.7,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-35b-a3b",displayName:"Qwen3.6 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-flash",displayName:"Qwen3.6 Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1875,outputPerM:1.125,cacheWritePerM:.234375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-max-preview",displayName:"Qwen3.6 Max Preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.04,outputPerM:6.24,cacheWritePerM:1.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-plus",displayName:"Qwen3.6 Plus",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.325,outputPerM:1.95,cacheWritePerM:.40625,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-max",displayName:"Qwen3.7 Max",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.475,outputPerM:4.425,cacheReadPerM:.295,cacheWritePerM:1.84375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-plus",displayName:"Qwen3.7 Plus",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.32,outputPerM:1.28,cacheReadPerM:.064,cacheWritePerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-edge",displayName:"Reka Edge",maxInputTokens:16384,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-20",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-flash-3",displayName:"Reka Flash 3",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-apply-3",displayName:"Relace Apply 3",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-search",displayName:"Relace Search",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"sakana/fugu-ultra",displayName:"Fugu Ultra",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3-lunaris-8b",displayName:"Llama 3 8B Lunaris",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.1-euryale-70b",displayName:"Llama 3.1 Euryale 70B v2.2",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:.85,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.3-euryale-70b",displayName:"Llama 3.3 Euryale 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.5-flash",displayName:"Step 3.5 Flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.7-flash",displayName:"Step 3.7 Flash",maxInputTokens:256e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-29",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.15,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hunyuan-a13b-instruct",displayName:"Hunyuan A13B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:.57,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3",displayName:"Hy3",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3-preview",displayName:"Hy3 preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.063,outputPerM:.21,cacheReadPerM:.021,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3:free",displayName:"Hy3 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/cydonia-24b-v4.1",displayName:"Cydonia 24B V4.1",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.5,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/rocinante-12b",displayName:"Rocinante 12B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/skyfall-36b-v2",displayName:"Skyfall 36B V2",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:.8,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/unslopnemo-12b",displayName:"UnslopNemo 12B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"undi95/remm-slerp-l2-13b",displayName:"ReMM SLERP 13B",maxInputTokens:6144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.45,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"upstage/solar-pro-3",displayName:"Solar Pro 3",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"writer/palmyra-x5",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20",displayName:"Grok 4.20",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20-multi-agent",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5",displayName:"MiMo-V2.5",maxInputTokens:1048576,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","audio","video"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.14,outputPerM:.28,cacheReadPerM:.0028,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5-pro",displayName:"MiMo-V2.5-Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.0036,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.85,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:65536,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6",displayName:"GLM-4.6",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:131072,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.055,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7",displayName:"GLM-4.7",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.4,outputPerM:1.75,cacheReadPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.0605,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:3.15,cacheReadPerM:.19,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5-turbo",displayName:"GLM-5-Turbo",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.1",displayName:"GLM-5.1",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-07",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.966,outputPerM:3.036,cacheReadPerM:.1794,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.2",displayName:"GLM-5.2",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.9338,outputPerM:2.9348,cacheReadPerM:.17342,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:202752,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}}]},ms={openai:{env:["OPENAI_API_KEY"],npm:"@ai-sdk/openai",doc:"https://platform.openai.com/docs/models"},anthropic:{env:["ANTHROPIC_API_KEY"],npm:"@ai-sdk/anthropic",doc:"https://docs.anthropic.com/en/docs/about-claude/models"},google:{env:["GOOGLE_API_KEY","GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],npm:"@ai-sdk/google",doc:"https://ai.google.dev/gemini-api/docs/models"},groq:{env:["GROQ_API_KEY"],npm:"@ai-sdk/groq",doc:"https://console.groq.com/docs/models"},xai:{env:["XAI_API_KEY"],npm:"@ai-sdk/xai",doc:"https://docs.x.ai/docs/models"},cohere:{env:["COHERE_API_KEY"],npm:"@ai-sdk/cohere",doc:"https://docs.cohere.com/docs/models"},minimax:{env:["MINIMAX_API_KEY"],npm:"@ai-sdk/anthropic",api:"https://api.minimax.io/anthropic/v1",doc:"https://platform.minimax.io/docs/guides/quickstart"},glm:{env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://open.bigmodel.cn/api/paas/v4",doc:"https://docs.z.ai/guides/overview/pricing"},openrouter:{env:["OPENROUTER_API_KEY"],npm:"@openrouter/ai-sdk-provider",api:"https://openrouter.ai/api/v1",doc:"https://openrouter.ai/models"},vertex:{env:["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],npm:"@ai-sdk/google-vertex",doc:"https://cloud.google.com/vertex-ai/generative-ai/docs/models"},bedrock:{env:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],npm:"@ai-sdk/amazon-bedrock",doc:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html"}},x$={openai:[{name:"gpt-4o-audio-preview",displayName:"GPT-4o Audio Preview",maxInputTokens:128e3,supportedFileTypes:["audio"],pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}}]},yo=class extends Error{code;constructor(e,t){super(t),this.name="LlmCatalogError",this.code=e}};function NM(e,t){return new yo("MODEL_UNKNOWN",`Unknown model '${t}' for provider '${e}'`)}function PM(e){return new yo("MODEL_UNKNOWN",`Could not infer provider for model '${e}'`)}var v$=["inputPerM","outputPerM","cacheReadPerM","cacheWritePerM","reasoningPerM","inputAudioPerM","outputAudioPerM"],b$=["inputTokensAbove","inputPerM","outputPerM","cacheReadPerM","cacheWritePerM"],T$=["default","reasoning","supportsTemperature","supportsInterleaved","supportsToolCall"],_$=["displayName","releaseDate","status"],k$=["text","audio","image","video","pdf"];function yb(e){return R$(e).toLowerCase()}function w$(e,t){if(!t||t.length===0)return e;const n=[...e],r=new Map;for(let i=0;i<n.length;i++)r.set(n[i].name.toLowerCase(),i);for(const i of t){const s=i.name.toLowerCase(),o=r.get(s);o!=null?n[o]=i:(r.set(s,n.length),n.push(i))}return n}var Qp=["pdf","image","audio","video","document"],S$={openai:{models:w$(Ki.openai,x$.openai),baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.openai},"openai-compatible":{models:[],baseURLSupport:"required",supportedFileTypes:Qp,supportsCustomModels:!0},anthropic:{models:Ki.anthropic,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.anthropic},google:{models:Ki.google,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.google},groq:{models:Ki.groq,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.groq},xai:{models:Ki.xai,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.xai},cohere:{models:Ki.cohere,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.cohere},minimax:{models:Ki.minimax,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.minimax},glm:{models:Ki.glm,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.glm},openrouter:{models:Ki.openrouter,baseURLSupport:"none",supportedFileTypes:Qp,supportsCustomModels:!0,supportsAllRegistryModels:!0,modelsDev:ms.openrouter},litellm:{models:[],baseURLSupport:"required",supportedFileTypes:Qp,supportsCustomModels:!0},glama:{models:[],baseURLSupport:"none",supportedFileTypes:Qp,supportsCustomModels:!0},vertex:{models:Ki.vertex,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.vertex},bedrock:{models:Ki.bedrock,baseURLSupport:"none",supportedFileTypes:[],supportsCustomModels:!0,modelsDev:ms.bedrock},local:{models:[],baseURLSupport:"none",supportedFileTypes:["image"],supportsCustomModels:!0},ollama:{models:[],baseURLSupport:"optional",supportedFileTypes:["image"],supportsCustomModels:!0},"dexto-nova":{models:Ki["dexto-nova"],baseURLSupport:"optional",supportedFileTypes:Qp,supportsCustomModels:!0,supportsAllRegistryModels:!0}},M$=class{#e;constructor(e){EM(e),this.#e=CM(e)}replaceProviders(e){EM(e),this.#e=CM(e)}getProvider(e){return TE(this.#e[e])}getModel(e,t){const n=Xp(this.#e,e,t);return n===null?null:xd(n)}getModelCapabilities(e,t){const n=this.getModel(e,t);return n===null?null:{maxInputTokens:n.maxInputTokens,reasoning:n.reasoning===!0,supportedFileTypes:[...n.supportedFileTypes],supportsInterleaved:n.supportsInterleaved===!0,supportsTemperature:n.supportsTemperature===!0,supportsToolCall:n.supportsToolCall===!0,...n.modalities?{modalities:{input:[...n.modalities.input],output:[...n.modalities.output]}}:{}}}getSupportedModels(e){return this.#e[e].models.map(t=>t.name)}getDefaultModelForProvider(e){const t=this.#e[e].models,n=t.find(r=>r.default)?.name;return n||(t.length===0?null:[...t].sort((r,i)=>r.name.localeCompare(i.name))[0]?.name??null)}getMaxInputTokensForModel(e,t,n){const r=Xp(this.#e,e,t);if(!r){const i=this.getSupportedModels(e).join(", ");throw n?.error(`Model '${t}' not found for provider '${e}' in LLM registry. Supported models: ${i}`),NM(e,t)}return n?.debug(`Found max tokens for ${e}/${t}: ${r.maxInputTokens}`),r.maxInputTokens}getModelPricing(e,t){if(this.acceptsAnyModel(e))return;const n=Xp(this.#e,e,t);return n?.pricing?xd(n).pricing:void 0}isReasoningCapableModel(e,t){const n=(()=>{if(e.includes("/"))return"openrouter";if(t)return t;try{return this.getProviderFromModel(e)}catch{return}})();if(n){const s=Xp(this.#e,n,e);if(s?.reasoning===!0)return!0;if(s?.reasoning===!1)return!1}const i=(e.includes("/")?e.split("/").pop()??e:e).toLowerCase();return!!(i.includes("codex")||i.startsWith("o1")||i.startsWith("o3")||i.startsWith("o4")||i.includes("gpt-5")||i.includes("gemini-2.5")||i.includes("gemini-3"))}getProviderFromModel(e){if(e.includes("/"))throw PM(e);const t=yb(e);for(const n of ba)if(this.#e[n].models.some(i=>i.name.toLowerCase()===t))return n;throw PM(e)}acceptsAnyModel(e){return this.#e[e].models.length===0}supportsCustomModels(e){return this.#e[e].supportsCustomModels===!0}hasAllRegistryModelsSupport(e){return this.#e[e].supportsAllRegistryModels===!0}supportsBaseURL(e){return this.#e[e].baseURLSupport!=="none"}isValidProviderModel(e,t){const n=yb(t);return this.#e[e].models.some(r=>r.name.toLowerCase()===n)}getSupportedFileTypesForModel(e,t){const n=this.#e[e];if(this.acceptsAnyModel(e))return[...n.supportedFileTypes];const r=Xp(this.#e,e,t);if(r)return[...r.supportedFileTypes];if(this.supportsCustomModels(e))return[...n.supportedFileTypes];throw NM(e,t)}getAllModelsForProvider(e){const t=this.#e[e],n=t.models.map(s=>({...xd(s),originalProvider:e}));if(!t.supportsAllRegistryModels||e==="openrouter")return n;const r=new Set(n.map(s=>s.name.toLowerCase())),i=this.#e.openrouter.models.filter(s=>!r.has(s.name.toLowerCase())).map(s=>({...xd(s),originalProvider:"openrouter"}));return[...n,...i]}};function N$(e){return new M$(e)}N$(S$);function CM(e){const t={...e};for(const n of ba)t[n]=TE(e[n]);return t}function EM(e){for(const t of ba){const n=e[t];if(!Io(n)||!Array.isArray(n.models)||!["none","optional","required"].includes(n.baseURLSupport)||!Array.isArray(n.supportedFileTypes)||!n.supportedFileTypes.every(DM))throw new yo("REGISTRY_INVALID",`Invalid registry provider definition for '${t}'`);if(n.supportsCustomModels!==void 0&&typeof n.supportsCustomModels!="boolean"||n.supportsAllRegistryModels!==void 0&&typeof n.supportsAllRegistryModels!="boolean"||n.modelsDev!==void 0&&!P$(n.modelsDev))throw new yo("REGISTRY_INVALID",`Invalid registry provider metadata for '${t}'`);const r=new Set;for(const[i,s]of n.models.entries()){const o=Io(s)?s:null,c=o&&typeof o.name=="string"?o.name:`<index ${i}>`;if(!o||typeof o.name!="string"||o.name.trim().length===0||!Number.isInteger(o.maxInputTokens)||o.maxInputTokens<0||!Array.isArray(o.supportedFileTypes)||!o.supportedFileTypes.every(DM))throw new yo("REGISTRY_INVALID",`Invalid registry model definition for '${t}/${c}'`);const d=o.name.toLowerCase();if(r.has(d))throw new yo("REGISTRY_INVALID",`Duplicate registry model definition for '${t}/${o.name}'`);if(r.add(d),!C$(o))throw new yo("REGISTRY_INVALID",`Invalid registry metadata for '${t}/${o.name}'`);if(!I$(o.pricing))throw new yo("REGISTRY_INVALID",`Invalid registry pricing for '${t}/${c}'`)}}}function DM(e){return typeof e=="string"&&y$.some(t=>t===e)}function Io(e){return typeof e=="object"&&e!==null}function Cu(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0}function P$(e){return!Io(e)||!Array.isArray(e.env)||!e.env.every(Wd)?!1:["npm","api","doc"].every(t=>e[t]===void 0||Wd(e[t]))}function C$(e){return!(!T$.every(t=>e[t]===void 0||typeof e[t]=="boolean")||!_$.every(t=>e[t]===void 0||Wd(e[t]))||e.modalities!==void 0&&!E$(e.modalities)||e.providerMetadata!==void 0&&!D$(e.providerMetadata)||e.interleaved!==void 0&&!j$(e.interleaved))}function E$(e){return!Io(e)||!Array.isArray(e.input)||!Array.isArray(e.output)?!1:e.input.every(jM)&&e.output.every(jM)}function D$(e){return Io(e)&&["npm","api"].every(t=>e[t]===void 0||Wd(e[t]))}function j$(e){return e===!0||Io(e)&&(e.field===void 0||Wd(e.field))}function jM(e){return typeof e=="string"&&k$.some(t=>t===e)}function Wd(e){return typeof e=="string"}function I$(e){if(e===void 0)return!0;if(!Io(e)||e.currency!==void 0&&e.currency!=="USD"||e.unit!==void 0&&e.unit!=="per_million_tokens")return!1;for(const r of v$)if(r in e&&!Cu(e[r]))return!1;if(!Cu(e.inputPerM)||!Cu(e.outputPerM))return!1;const t=e.contextOver200kPerM;if(t===void 0)return!0;if(!Io(t))return!1;const n=t.inputTokensAbove;if(n!==void 0&&(typeof n!="number"||!Number.isInteger(n)||n<0))return!1;for(const r of b$)if(r in t&&!Cu(t[r]))return!1;return Cu(t.inputPerM)&&Cu(t.outputPerM)}function Xp(e,t,n){const r=yb(n),i=e[t].models.find(s=>s.name.toLowerCase()===r);return i||(t!=="openrouter"&&e[t].supportsAllRegistryModels&&n.includes("/")?e.openrouter.models.find(s=>s.name.toLowerCase()===r)??null:null)}function xd(e){return{...e,supportedFileTypes:[...e.supportedFileTypes],...e.modalities?{modalities:{input:[...e.modalities.input],output:[...e.modalities.output]}}:{},...e.pricing?{pricing:{...e.pricing,...e.pricing.contextOver200kPerM?{contextOver200kPerM:{...e.pricing.contextOver200kPerM}}:{}}}:{},...e.providerMetadata?{providerMetadata:{...e.providerMetadata}}:{},...e.interleaved&&e.interleaved!==!0?{interleaved:{...e.interleaved}}:{}}}function TE(e){return{...e,models:e.models.map(xd),supportedFileTypes:[...e.supportedFileTypes],...e.modelsDev?{modelsDev:{...e.modelsDev,env:[...e.modelsDev.env]}}:{}}}function R$(e){return e.startsWith("eu.")||e.startsWith("us.")?e.slice(3):e.startsWith("global.")?e.slice(7):e}var _E=(e=>(e.SCHEMA_VALIDATION="mcp_schema_validation",e.COMMAND_MISSING="mcp_command_missing",e.DUPLICATE_NAME="mcp_duplicate_name",e.CONNECTION_FAILED="mcp_connection_failed",e.DISCONNECTION_FAILED="mcp_disconnection_failed",e.AUTH_REQUIRED="mcp_auth_required",e.PROTOCOL_ERROR="mcp_protocol_error",e.SERVER_NOT_FOUND="mcp_server_not_found",e.TOOL_NOT_FOUND="mcp_tool_not_found",e.PROMPT_NOT_FOUND="mcp_prompt_not_found",e.RESOURCE_NOT_FOUND="mcp_resource_not_found",e))(_E||{}),kE={};const A$=["stdio","sse","http"],G1=["strict","lenient"],H1="lenient",O$=or({type:El("stdio"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),command:ic().superRefine((e,t)=>{e.length===0&&t.addIssue({code:f$.custom,message:"Stdio server requires a non-empty command",params:{code:_E.COMMAND_MISSING,scope:yE.MCP,type:xE.USER}})}),args:As(ic()).default([]).describe("Array of arguments for the command (e.g., ['script.js'])"),env:um(Jt(),ic()).default({}).describe("Optional environment variables for the server process"),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),F$=or({type:El("sse"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),url:bE(kE).describe("URL for the SSE server endpoint"),headers:um(Jt(),ic()).default({}),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),U$=or({type:El("http"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),url:bE(kE).describe("URL for the HTTP server"),headers:um(Jt(),ic()).default({}),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),L$=fE("type",[O$,F$,U$]).superRefine((e,t)=>{}).brand();um(Jt(),L$).describe("A dictionary of server configurations, keyed by server name").brand();const Pd={APPROVED:"approved",DENIED:"denied",CANCELLED:"cancelled"},z$="modulepreload",$$=function(e){return"/"+e},IM={},B$=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let d=function(m){return Promise.all(m.map(f=>Promise.resolve(f).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=o?.nonce||o?.getAttribute("nonce");i=d(n.map(m=>{if(m=$$(m),m in IM)return;IM[m]=!0;const f=m.endsWith(".css"),g=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${g}`))return;const y=document.createElement("link");if(y.rel=f?"stylesheet":z$,f||(y.as="script"),y.crossOrigin="",y.href=m,c&&y.setAttribute("nonce",c),document.head.appendChild(y),f)return new Promise((x,k)=>{y.addEventListener("load",x),y.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(o){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=o,window.dispatchEvent(c),!c.defaultPrevented)throw o}return i.then(o=>{for(const c of o||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})},q$=or({category:Jt().min(1),label:or({running:Jt().min(1),completed:Jt().min(1)}).strict(),summary:or({verb:Jt().min(1),singular:Jt().min(1),plural:Jt().min(1)}).strict()}).strict(),RM=or({label:Jt(),display:Jt(),kind:Hs(["path","command","url","text","json"]).optional(),sensitive:Dc().optional()}).strict(),wE=fE("type",[or({type:El("setFlag"),flag:Hs(["autoApproveEdits","planModeActive","planModeInitialized"]),value:Dc()}).strict(),or({type:El("toast"),kind:Hs(["info","warning","success","error"]),message:Jt()}).strict()]),G$=mE([or({id:Jt(),label:Jt(),kind:Hs(["primary","secondary","danger"]).optional(),responseData:um(Jt(),hb()).optional(),uiEffects:As(wE).optional()}).strict(),or({id:Jt(),label:Jt(),kind:El("danger").optional(),denyWithFeedback:or({placeholder:Jt().optional(),messageTemplate:Jt().optional()}).strict()}).strict()]),H$=or({version:El(1),activity:q$.optional(),source:or({type:Hs(["local","mcp"]),mcpServerName:Jt().optional()}).strict().optional(),header:or({title:Jt().optional(),argsText:Jt().optional()}).strict().optional(),chips:As(or({kind:Hs(["neutral","info","warning","danger","success"]),text:Jt()}).strict()).optional(),args:or({summary:As(RM).optional(),groups:As(or({id:Jt(),label:Jt(),collapsedByDefault:Dc().optional(),items:As(RM)}).strict()).optional()}).strict().optional(),capabilities:As(Jt()).optional(),approval:or({actions:As(G$).optional()}).strict().optional(),result:or({summaryText:Jt().optional(),uiEffects:As(wE).optional()}).strict().optional()}).strict();function V$(e){return H$.safeParse(e).success}function K$(e){const t=[],n=new RegExp("(?:^|(?<=\\s))@(?:(<[^>]+>)|([a-zA-Z0-9_-]+):([a-zA-Z0-9._/-]+)|([a-zA-Z0-9._/-]+))(?![a-zA-Z0-9@.])","g");let r;for(;(r=n.exec(e))!==null;){const[i,s,o,c,d]=r;s?t.push({originalRef:i,type:"uri",identifier:s.slice(1,-1)}):o&&c?t.push({originalRef:i,type:"server-scoped",serverName:o,identifier:c}):d&&t.push({originalRef:i,type:"name",identifier:d})}return t}function W$(e,t){const n=e.map(r=>({...r}));for(const r of n)switch(r.type){case"uri":{if(t[r.identifier])r.resourceUri=r.identifier;else{const i=Z$(t,r.identifier);i&&(r.resourceUri=i)}break}case"server-scoped":{const i=Y$(t,r.serverName,r.identifier);i&&(r.resourceUri=i);break}case"name":{const i=Q$(t,r.identifier);i&&(r.resourceUri=i);break}}return n}function Z$(e,t){const n=t.trim().toLowerCase();for(const[r,i]of Object.entries(e)){const s=typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0;if(s&&s.toLowerCase()===n)return r}for(const[r,i]of Object.entries(e)){const s=typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0;if(s&&s.toLowerCase().includes(n))return r}}function Y$(e,t,n){const r=n.trim().toLowerCase(),i=Object.entries(e).filter(([,s])=>s.serverName===t);for(const[s,o]of i){if(!o.name)continue;const c=o.name.trim().toLowerCase();if(c===r||c.includes(r))return s}for(const[s,o]of i)if((typeof o.metadata?.originalUri=="string"?o.metadata.originalUri:void 0)?.toLowerCase().includes(r)||s.toLowerCase().includes(r))return s}function Q$(e,t){const n=t.trim().toLowerCase();for(const[r,i]of Object.entries(e)){if(!i.name)continue;const s=i.name.trim().toLowerCase();if(s===n||s.includes(n))return r}for(const[r,i]of Object.entries(e))if((typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0)?.toLowerCase().includes(n)||r.toLowerCase().includes(n))return r}const xb={messages:[],streamingMessage:null,processing:!1,error:null,loadingHistory:!1};function da(e,t){const n=e.get(t);return n||{...xb}}function wg(){return`msg-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}const zt=Da()((e,t)=>({sessions:new Map,addMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:[...o.messages,r]}),{sessions:s}})},updateMessage:(n,r,i)=>{e(s=>{const o=new Map(s.sessions),c=o.get(n);if(!c)return s;const d=c.messages.findIndex(f=>f.id===r);if(d===-1)return s;const m=[...c.messages];return m[d]={...m[d],...i},o.set(n,{...c,messages:m}),{sessions:o}})},removeMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=s.get(n);return o?(s.set(n,{...o,messages:o.messages.filter(c=>c.id!==r)}),{sessions:s}):i})},clearMessages:n=>{e(r=>{const i=new Map(r.sessions),s=i.get(n);return s?(i.set(n,{...s,messages:[],streamingMessage:null}),{sessions:i}):r})},setMessages:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:r}),{sessions:s}})},initFromHistory:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:r,processing:!1,error:null,streamingMessage:null}),{sessions:s}})},setStreamingMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,streamingMessage:r}),{sessions:s}})},appendToStreamingMessage:(n,r,i="text")=>{e(s=>{const o=new Map(s.sessions),c=da(o,n);if(!c.streamingMessage)return s;const d=c.streamingMessage;let m;if(i==="reasoning")m={...d,reasoning:(d.reasoning||"")+r};else{const f=typeof d.content=="string"?d.content:"";m={...d,content:f+r}}return o.set(n,{...c,streamingMessage:m}),{sessions:o}})},finalizeStreamingMessage:(n,r={})=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);if(!o.streamingMessage)return i;const c={...o.streamingMessage,...r},d=o.messages??[];return s.set(n,{...o,messages:[...d,c],streamingMessage:null}),{sessions:s}})},setProcessing:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,processing:r}),{sessions:s}})},setError:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,error:r}),{sessions:s}})},setLoadingHistory:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,loadingHistory:r}),{sessions:s}})},initSession:n=>{e(r=>{if(r.sessions.has(n))return r;const i=new Map(r.sessions);return i.set(n,{...xb}),{sessions:i}})},removeSession:n=>{e(r=>{const i=new Map(r.sessions);return i.delete(n),{sessions:i}})},getSessionState:n=>t().sessions.get(n)??{...xb},getMessages:n=>t().getSessionState(n).messages,getMessage:(n,r)=>t().getMessages(n).find(i=>i.id===r),getMessageByToolCallId:(n,r)=>t().getMessages(n).find(i=>i.toolCallId===r)})),X$={status:"idle",connectionStatus:"disconnected",lastHeartbeat:null,activeSessionId:null,currentToolName:null,connectionError:null,reconnectAttempts:0},hi=Da()((e,t)=>({...X$,setStatus:(n,r)=>{e({status:n,activeSessionId:r??(n==="idle"?null:t().activeSessionId),currentToolName:n==="executing_tool"?t().currentToolName:null})},setThinking:n=>{e({status:"thinking",activeSessionId:n,currentToolName:null})},setExecutingTool:(n,r)=>{e({status:"executing_tool",activeSessionId:n,currentToolName:r})},setAwaitingApproval:n=>{e({status:"awaiting_approval",activeSessionId:n,currentToolName:null})},setIdle:()=>{e({status:"idle",activeSessionId:null,currentToolName:null})},setConnectionStatus:n=>{e({connectionStatus:n})},setConnected:()=>{e({connectionStatus:"connected",connectionError:null,reconnectAttempts:0,lastHeartbeat:Date.now()})},setDisconnected:n=>{e({connectionStatus:"disconnected",connectionError:n??null})},setReconnecting:()=>{e({connectionStatus:"reconnecting"})},updateHeartbeat:()=>{e({lastHeartbeat:Date.now()})},incrementReconnectAttempts:()=>{e(n=>({reconnectAttempts:n.reconnectAttempts+1}))},resetReconnectAttempts:()=>{e({reconnectAttempts:0})},isBusy:()=>t().status!=="idle",isConnected:()=>t().connectionStatus==="connected",isActiveForSession:n=>{const r=t();return r.status!=="idle"&&r.activeSessionId===n},getHeartbeatAge:()=>{const{lastHeartbeat:n}=t();return n===null?null:Date.now()-n}}));function J$(e){return e===Pd.APPROVED||e===Pd.DENIED||e===Pd.CANCELLED}const V1=Da((e,t)=>({pendingApproval:null,queue:[],addApproval:n=>{e(r=>r.pendingApproval?{queue:[...r.queue,n]}:{pendingApproval:n})},processResponse:n=>{e(r=>{if(r.pendingApproval?.approvalId!==n.approvalId)return r;if(J$(n.status)){const[i,...s]=r.queue;return{pendingApproval:i??null,queue:s}}return r})},clearApproval:()=>{e(n=>{const[r,...i]=n.queue;return{pendingApproval:r??null,queue:i}})},clearAll:()=>{e({pendingApproval:null,queue:[]})},getPendingCount:()=>{const n=t();return(n.pendingApproval?1:0)+n.queue.length},getPendingForSession:n=>{const r=t(),i=[];return r.pendingApproval?.sessionId===n&&i.push(r.pendingApproval),i.push(...r.queue.filter(s=>s.sessionId===n)),i},hasPendingApproval:()=>t().pendingApproval!==null}));function e9(e,t){let n;try{n=e()}catch{return}return{getItem:i=>{var s;const o=d=>d===null?null:JSON.parse(d,void 0),c=(s=n.getItem(i))!=null?s:null;return c instanceof Promise?c.then(o):o(c)},setItem:(i,s)=>n.setItem(i,JSON.stringify(s,void 0)),removeItem:i=>n.removeItem(i)}}const vb=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return vb(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return vb(r)(n)}}}},t9=(e,t)=>(n,r,i)=>{let s={storage:e9(()=>localStorage),partialize:T=>T,version:0,merge:(T,S)=>({...S,...T}),...t},o=!1;const c=new Set,d=new Set;let m=s.storage;if(!m)return e((...T)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...T)},r,i);const f=()=>{const T=s.partialize({...r()});return m.setItem(s.name,{state:T,version:s.version})},g=i.setState;i.setState=(T,S)=>(g(T,S),f());const y=e((...T)=>(n(...T),f()),r,i);i.getInitialState=()=>y;let x;const k=()=>{var T,S;if(!m)return;o=!1,c.forEach(N=>{var M;return N((M=r())!=null?M:y)});const w=((S=s.onRehydrateStorage)==null?void 0:S.call(s,(T=r())!=null?T:y))||void 0;return vb(m.getItem.bind(m))(s.name).then(N=>{if(N)if(typeof N.version=="number"&&N.version!==s.version){if(s.migrate){const M=s.migrate(N.state,N.version);return M instanceof Promise?M.then(P=>[!0,P]):[!0,M]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,N.state];return[!1,void 0]}).then(N=>{var M;const[P,D]=N;if(x=s.merge(D,(M=r())!=null?M:y),n(x,!0),P)return f()}).then(()=>{w?.(x,void 0),x=r(),o=!0,d.forEach(N=>N(x))}).catch(N=>{w?.(void 0,N)})};return i.persist={setOptions:T=>{s={...s,...T},T.storage&&(m=T.storage)},clearStorage:()=>{m?.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>k(),hasHydrated:()=>o,onHydrate:T=>(c.add(T),()=>{c.delete(T)}),onFinishHydration:T=>(d.add(T),()=>{d.delete(T)})},s.skipHydration||k(),x||y},SE=t9,n9={isStreaming:!0},ME=Da()(SE(e=>({...n9,setStreaming:t=>{e({isStreaming:t})}}),{name:"dexto-preferences",version:1})),NE=Da()((e,t)=>({sessions:new Map,getTodos:n=>t().sessions.get(n)?.todos??[],setTodos:(n,r)=>{e(i=>{const s=new Map(i.sessions);return s.set(n,{todos:r}),{sessions:s}})},clearTodos:n=>{e(r=>{const i=new Map(r.sessions);return i.delete(n),{sessions:i}})}})),K1=new Map;function pi(e,t){K1.set(e,t)}function W1(e){const t=zt.getState();t.getSessionState(e).streamingMessage&&t.finalizeStreamingMessage(e,{})}function Cd(e){if(e.startsWith("mcp--")){const t=e.substring(5),n=t.split("--");return n.length>=2?n.slice(1).join("--"):t}return e}function AM(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function r9(e){const t=AM(e.metadata)?e.metadata:{},n=typeof t.toolName=="string"?t.toolName:"unknown",r=typeof t.toolCallId=="string"?t.toolCallId:void 0,i=V$(t.presentationSnapshot)?t.presentationSnapshot:void 0,s=AM(t.args)?t.args:{};return{approvalId:e.approvalId,toolCallId:r,toolName:n,toolArgs:s,presentationSnapshot:i,approvalType:e.type}}function OM(e,t){return t!==void 0?!0:e?(e.inputTokens??0)>0||(e.outputTokens??0)>0||(e.reasoningTokens??0)>0||(e.cacheReadTokens??0)>0||(e.cacheWriteTokens??0)>0||(e.totalTokens??0)>0:!1}function i9(e){const{sessionId:t}=e;zt.getState().setProcessing(t,!0),hi.getState().setThinking(t)}function s9(e){if(!ME.getState().isStreaming)return;const{sessionId:n,content:r,chunkType:i="text"}=e,s=zt.getState();if(s.getSessionState(n).streamingMessage)s.appendToStreamingMessage(n,r,i);else{const c={id:wg(),role:"assistant",content:i==="text"?r:"",reasoning:i==="reasoning"?r:void 0,createdAt:Date.now(),sessionId:n};s.setStreamingMessage(n,c)}}function a9(e){const{sessionId:t,content:n,reasoning:r,tokenUsage:i,model:s,provider:o,estimatedCost:c,costBreakdown:d,estimatedInputTokens:m,reasoningVariant:f,reasoningBudgetTokens:g}=e,y=zt.getState(),x=y.getSessionState(t),k=typeof n=="string"?n:"";if(x.streamingMessage){if(y.finalizeStreamingMessage(t,{content:k,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o}}),OM(i,c)){let w;const N=i?.inputTokens;if(m!==void 0&&N){const M=m-N;w=Math.round(M/N*100)}XS({sessionId:t,provider:o,model:s,reasoningVariant:f,reasoningBudgetTokens:g,inputTokens:i?.inputTokens,outputTokens:i?.outputTokens,reasoningTokens:i?.reasoningTokens,totalTokens:i?.totalTokens,cacheReadTokens:i?.cacheReadTokens,cacheWriteTokens:i?.cacheWriteTokens,estimatedCostUsd:c,inputCostUsd:d?.inputUsd,outputCostUsd:d?.outputUsd,reasoningCostUsd:d?.reasoningUsd,cacheReadCostUsd:d?.cacheReadUsd,cacheWriteCostUsd:d?.cacheWriteUsd,estimatedInputTokens:m,estimateAccuracyPercent:w})}return}const T=x.messages;let S=null;for(let w=T.length-1;w>=0;w--){const N=T[w];if(N.role==="assistant"){S=N;break}if(N.role==="user")break}if(S?y.updateMessage(t,S.id,{content:k||S.content,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o}}):k&&y.addMessage(t,{id:wg(),role:"assistant",content:k,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o},createdAt:Date.now(),sessionId:t}),OM(i,c)){let w;const N=i?.inputTokens;if(m!==void 0&&N){const M=m-N;w=Math.round(M/N*100)}XS({sessionId:t,provider:o,model:s,reasoningVariant:f,reasoningBudgetTokens:g,inputTokens:i?.inputTokens,outputTokens:i?.outputTokens,reasoningTokens:i?.reasoningTokens,totalTokens:i?.totalTokens,cacheReadTokens:i?.cacheReadTokens,cacheWriteTokens:i?.cacheWriteTokens,estimatedCostUsd:c,inputCostUsd:d?.inputUsd,outputCostUsd:d?.outputUsd,reasoningCostUsd:d?.reasoningUsd,cacheReadCostUsd:d?.cacheReadUsd,cacheWriteCostUsd:d?.cacheWriteUsd,estimatedInputTokens:m,estimateAccuracyPercent:w})}}function o9(e){const{sessionId:t,content:n,provider:r,model:i,messageId:s}=e,o=zt.getState();W1(t),o.addMessage(t,{id:s,role:"assistant",content:n,provider:r,model:i,createdAt:Date.now(),sessionId:t}),o.setProcessing(t,!1),hi.getState().setIdle()}function l9(e){const{sessionId:t,toolName:n,args:r,callId:i,presentationSnapshot:s}=e,o=zt.getState();W1(t);const c=o.getMessages(t),d=c.find(y=>y.role==="tool"&&y.toolCallId===i&&y.toolResult===void 0);if(d){o.updateMessage(t,d.id,{toolArgs:r,...s!==void 0&&{presentationSnapshot:s}}),console.debug("[handlers] Tool call message already exists:",d.id);return}const m=Cd(n),f=c.find(y=>y.role!=="tool"||y.toolResult!==void 0||y.requireApproval!==!0||y.approvalStatus!=="pending"?!1:!!(y.toolCallId===i||y.toolName===n||y.toolName&&Cd(y.toolName)===m));if(f){o.updateMessage(t,f.id,{toolCallId:i,toolArgs:r,...s!==void 0&&{presentationSnapshot:s}}),console.debug("[handlers] Updated existing approval message with callId:",f.id);return}const g={id:`tool-${i}`,role:"tool",content:null,toolName:n,...s!==void 0&&{presentationSnapshot:s},toolArgs:r,toolCallId:i,createdAt:Date.now(),sessionId:t};o.addMessage(t,g),hi.getState().setExecutingTool(t,n)}function u9(e){const{sessionId:t,callId:n,success:r,sanitized:i,requireApproval:s,approvalStatus:o,presentationSnapshot:c}=e,d=zt.getState();let m=n?d.getMessageByToolCallId(t,n):void 0;if(!m&&n&&(m=d.getMessages(t).find(g=>g.id===`tool-${n}`||g.id===`approval-${n}`)),!m){const g=d.getMessages(t).filter(y=>y.role==="tool"&&y.toolResult===void 0).sort((y,x)=>x.createdAt-y.createdAt);m=g.find(y=>y.id.startsWith("approval-"))||g[0]}m?d.updateMessage(t,m.id,{toolResult:i,toolResultMeta:i?.meta,toolResultSuccess:r,...c!==void 0&&{presentationSnapshot:c},...s!==void 0&&{requireApproval:s},...o!==void 0&&{approvalStatus:o}}):console.warn("[handlers] Could not find tool message to update for callId:",n)}function c9(e){const{sessionId:t,error:n,context:r,recoverable:i}=e,s=zt.getState();s.setError(t,{id:wg(),message:n?.message||"Unknown error",timestamp:Date.now(),context:r,recoverable:i,sessionId:t}),s.setProcessing(t,!1),hi.getState().setIdle()}function p9(e){const t=e.sessionId||"",n=zt.getState();t&&W1(t),V1.getState().addApproval(e);const{approvalId:r,toolCallId:i,toolName:s,toolArgs:o,presentationSnapshot:c,approvalType:d}=r9(e),m=Cd(s),f=n.getMessages(t),g=i?f.find(y=>y.role==="tool"&&y.toolResult===void 0&&y.requireApproval!==!0&&y.toolCallId===i):f.find(y=>y.role!=="tool"||y.toolResult!==void 0||y.requireApproval===!0?!1:!!(y.toolName===s||y.toolName&&Cd(y.toolName)===m));if(g)n.updateMessage(t,g.id,{requireApproval:!0,approvalStatus:"pending",toolResultSuccess:void 0,...c!==void 0&&{presentationSnapshot:c}}),console.debug("[handlers] Updated existing tool message with approval:",g.id);else if(t){const y=i?f.find(x=>x.role==="tool"&&x.requireApproval===!0&&x.approvalStatus==="pending"&&x.toolResult===void 0&&x.toolCallId===i):f.find(x=>x.role==="tool"&&x.requireApproval===!0&&x.approvalStatus==="pending"&&x.toolResult===void 0&&(x.toolName===s||x.toolName&&Cd(x.toolName)===m));if(y)console.debug("[handlers] Approval message already exists:",y.id);else{const x={id:`approval-${r}`,role:"tool",content:null,toolName:s,...c!==void 0&&{presentationSnapshot:c},toolArgs:o,toolCallId:i??r,createdAt:Date.now(),sessionId:t,requireApproval:!0,approvalStatus:"pending",...d&&{approvalType:d}};n.addMessage(t,x)}}t&&hi.getState().setAwaitingApproval(t)}function d9(e){const{status:t}=e,n=e.sessionId||"",r=e.approvalId;if(V1.getState().processResponse(e),n&&r){const s=zt.getState(),c=s.getMessages(n).find(d=>d.id===`approval-${r}`||d.toolCallId===r&&d.requireApproval);if(c){const d=t==="approved"?"approved":"rejected";s.updateMessage(n,c.id,{approvalStatus:d,...d==="rejected"&&{toolResultSuccess:!1}}),console.debug("[handlers] Updated approval status:",c.id,d)}}t==="approved"?n&&hi.getState().setThinking(n):(hi.getState().setIdle(),n&&zt.getState().setProcessing(n,!1))}function m9(e){const{sessionId:t}=e;zt.getState().setProcessing(t,!1),hi.getState().setIdle()}function f9(e){console.debug("[handlers] session:title-updated",e.sessionId,e.title)}function h9(e){const{sessionId:t,content:n}=e,r=zt.getState(),i=n.filter(c=>c.type==="text").map(c=>c.text).join(`
50
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const c=o[1];if(t===o[0]){s(o);continue}if(e.external){const m=e.external.registry.get(o[0])?.id;if(t!==o[0]&&m){s(o);continue}}if(e.metadataRegistry.get(o[0])?.id){s(o);continue}if(c.cycle){s(o);continue}if(c.count>1&&e.reused==="ref"){s(o);continue}}}function lE(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=o=>{const c=e.seen.get(o);if(c.ref===null)return;const d=c.def??c.schema,m={...d},f=c.ref;if(c.ref=null,f){r(f);const y=e.seen.get(f),x=y.schema;if(x.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(x)):Object.assign(d,x),Object.assign(d,m),o._zod.parent===f)for(const T in d)T==="$ref"||T==="allOf"||T in m||delete d[T];if(x.$ref&&y.def)for(const T in d)T==="$ref"||T==="allOf"||T in y.def&&JSON.stringify(d[T])===JSON.stringify(y.def[T])&&delete d[T]}const g=o._zod.parent;if(g&&g!==f){r(g);const y=e.seen.get(g);if(y?.schema.$ref&&(d.$ref=y.schema.$ref,y.def))for(const x in d)x==="$ref"||x==="allOf"||x in y.def&&JSON.stringify(d[x])===JSON.stringify(y.def[x])&&delete d[x]}e.override({zodSchema:o,jsonSchema:d,path:c.path??[]})};for(const o of[...e.seen.entries()].reverse())r(o[0]);const i={};if(e.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const o=e.external.registry.get(t)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(o)}Object.assign(i,n.def??n.schema);const s=e.external?.defs??{};for(const o of e.seen.entries()){const c=o[1];c.def&&c.defId&&(s[c.defId]=c.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{const o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...t["~standard"],jsonSchema:{input:Kh(t,"input",e.processors),output:Kh(t,"output",e.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Qr(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return Qr(r.element,n);if(r.type==="set")return Qr(r.valueType,n);if(r.type==="lazy")return Qr(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return Qr(r.innerType,n);if(r.type==="intersection")return Qr(r.left,n)||Qr(r.right,n);if(r.type==="record"||r.type==="map")return Qr(r.keyType,n)||Qr(r.valueType,n);if(r.type==="pipe")return Qr(r.in,n)||Qr(r.out,n);if(r.type==="object"){for(const i in r.shape)if(Qr(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(Qr(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(Qr(i,n))return!0;return!!(r.rest&&Qr(r.rest,n))}return!1}const E7=(e,t={})=>n=>{const r=aE({...n,processors:t});return cr(e,r),oE(r,e),lE(r,e)},Kh=(e,t,n={})=>r=>{const{libraryOptions:i,target:s}=r??{},o=aE({...i??{},target:s,io:t,processors:n});return cr(e,o),oE(o,e),lE(o,e)},D7={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},j7=(e,t,n,r)=>{const i=n;i.type="string";const{minimum:s,maximum:o,format:c,patterns:d,contentEncoding:m}=e._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof o=="number"&&(i.maxLength=o),c&&(i.format=D7[c]??c,i.format===""&&delete i.format,c==="time"&&delete i.format),m&&(i.contentEncoding=m),d&&d.size>0){const f=[...d];f.length===1?i.pattern=f[0].source:f.length>1&&(i.allOf=[...f.map(g=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:g.source}))])}},I7=(e,t,n,r)=>{const i=n,{minimum:s,maximum:o,format:c,multipleOf:d,exclusiveMaximum:m,exclusiveMinimum:f}=e._zod.bag;typeof c=="string"&&c.includes("int")?i.type="integer":i.type="number",typeof f=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(i.minimum=f,i.exclusiveMinimum=!0):i.exclusiveMinimum=f),typeof s=="number"&&(i.minimum=s,typeof f=="number"&&t.target!=="draft-04"&&(f>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof m=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(i.maximum=m,i.exclusiveMaximum=!0):i.exclusiveMaximum=m),typeof o=="number"&&(i.maximum=o,typeof m=="number"&&t.target!=="draft-04"&&(m<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof d=="number"&&(i.multipleOf=d)},R7=(e,t,n,r)=>{n.type="boolean"},A7=(e,t,n,r)=>{n.not={}},O7=(e,t,n,r)=>{},F7=(e,t,n,r)=>{const i=e._zod.def,s=L5(i.entries);s.every(o=>typeof o=="number")&&(n.type="number"),s.every(o=>typeof o=="string")&&(n.type="string"),n.enum=s},U7=(e,t,n,r)=>{const i=e._zod.def,s=[];for(const o of i.values)if(o===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(o))}else s.push(o);if(s.length!==0)if(s.length===1){const o=s[0];n.type=o===null?"null":typeof o,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[o]:n.const=o}else s.every(o=>typeof o=="number")&&(n.type="number"),s.every(o=>typeof o=="string")&&(n.type="string"),s.every(o=>typeof o=="boolean")&&(n.type="boolean"),s.every(o=>o===null)&&(n.type="null"),n.enum=s},L7=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},z7=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$7=(e,t,n,r)=>{const i=n,s=e._zod.def,{minimum:o,maximum:c}=e._zod.bag;typeof o=="number"&&(i.minItems=o),typeof c=="number"&&(i.maxItems=c),i.type="array",i.items=cr(s.element,t,{...r,path:[...r.path,"items"]})},B7=(e,t,n,r)=>{const i=n,s=e._zod.def;i.type="object",i.properties={};const o=s.shape;for(const m in o)i.properties[m]=cr(o[m],t,{...r,path:[...r.path,"properties",m]});const c=new Set(Object.keys(o)),d=new Set([...c].filter(m=>{const f=s.shape[m]._zod;return t.io==="input"?f.optin===void 0:f.optout===void 0}));d.size>0&&(i.required=Array.from(d)),s.catchall?._zod.def.type==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=cr(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(i.additionalProperties=!1)},q7=(e,t,n,r)=>{const i=e._zod.def,s=i.inclusive===!1,o=i.options.map((c,d)=>cr(c,t,{...r,path:[...r.path,s?"oneOf":"anyOf",d]}));s?n.oneOf=o:n.anyOf=o},G7=(e,t,n,r)=>{const i=e._zod.def,s=cr(i.left,t,{...r,path:[...r.path,"allOf",0]}),o=cr(i.right,t,{...r,path:[...r.path,"allOf",1]}),c=m=>"allOf"in m&&Object.keys(m).length===1,d=[...c(s)?s.allOf:[s],...c(o)?o.allOf:[o]];n.allOf=d},H7=(e,t,n,r)=>{const i=n,s=e._zod.def;i.type="object";const o=s.keyType,d=o._zod.bag?.patterns;if(s.mode==="loose"&&d&&d.size>0){const f=cr(s.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(const g of d)i.patternProperties[g.source]=f}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(i.propertyNames=cr(s.keyType,t,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=cr(s.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const m=o._zod.values;if(m){const f=[...m].filter(g=>typeof g=="string"||typeof g=="number");f.length>0&&(i.required=f)}},V7=(e,t,n,r)=>{const i=e._zod.def,s=cr(i.innerType,t,r),o=t.seen.get(e);t.target==="openapi-3.0"?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},K7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType},W7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},Z7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},Y7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=o},Q7=(e,t,n,r)=>{const i=e._zod.def,s=t.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;cr(s,t,r);const o=t.seen.get(e);o.ref=s},X7=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType,n.readOnly=!0},uE=(e,t,n,r)=>{const i=e._zod.def;cr(i.innerType,t,r);const s=t.seen.get(e);s.ref=i.innerType},J7=_e("ZodISODateTime",(e,t)=>{ez.init(e,t),Bn.init(e,t)});function e8(e){return a7(J7,e)}const t8=_e("ZodISODate",(e,t)=>{tz.init(e,t),Bn.init(e,t)});function n8(e){return o7(t8,e)}const r8=_e("ZodISOTime",(e,t)=>{nz.init(e,t),Bn.init(e,t)});function i8(e){return l7(r8,e)}const s8=_e("ZodISODuration",(e,t)=>{rz.init(e,t),Bn.init(e,t)});function a8(e){return u7(s8,e)}const o8=(e,t)=>{q5.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>KU(e,n)},flatten:{value:n=>VU(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,mb,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,mb,2)}},isEmpty:{get(){return e.issues.length===0}}})},as=_e("ZodError",o8,{Parent:Error}),l8=z1(as),u8=$1(as),c8=Tg(as),p8=_g(as),d8=YU(as),m8=QU(as),f8=XU(as),h8=JU(as),g8=eL(as),y8=tL(as),x8=nL(as),v8=rL(as),$n=_e("ZodType",(e,t)=>(zn.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Kh(e,"input"),output:Kh(e,"output")}}),e.toJSONSchema=E7(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(Uo(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>Lo(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>l8(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>c8(e,n,r),e.parseAsync=async(n,r)=>u8(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>p8(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>d8(e,n,r),e.decode=(n,r)=>m8(e,n,r),e.encodeAsync=async(n,r)=>f8(e,n,r),e.decodeAsync=async(n,r)=>h8(e,n,r),e.safeEncode=(n,r)=>g8(e,n,r),e.safeDecode=(n,r)=>y8(e,n,r),e.safeEncodeAsync=async(n,r)=>x8(e,n,r),e.safeDecodeAsync=async(n,r)=>v8(e,n,r),e.refine=(n,r)=>e.check(d$(n,r)),e.superRefine=n=>e.check(m$(n)),e.overwrite=n=>e.check(Ec(n)),e.optional=()=>kM(e),e.exactOptional=()=>J8(e),e.nullable=()=>wM(e),e.nullish=()=>kM(wM(e)),e.nonoptional=n=>s$(e,n),e.array=()=>As(e),e.or=n=>mE([e,n]),e.and=n=>K8(e,n),e.transform=n=>SM(e,Q8(n)),e.default=n=>n$(e,n),e.prefault=n=>i$(e,n),e.catch=n=>o$(e,n),e.pipe=n=>SM(e,n),e.readonly=()=>c$(e),e.describe=n=>{const r=e.clone();return yd.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return yd.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return yd.get(e);const r=e.clone();return yd.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),cE=_e("_ZodString",(e,t)=>{B1.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>j7(e,r,i);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(h7(...r)),e.includes=(...r)=>e.check(x7(...r)),e.startsWith=(...r)=>e.check(v7(...r)),e.endsWith=(...r)=>e.check(b7(...r)),e.min=(...r)=>e.check(Vh(...r)),e.max=(...r)=>e.check(iE(...r)),e.length=(...r)=>e.check(sE(...r)),e.nonempty=(...r)=>e.check(Vh(1,...r)),e.lowercase=r=>e.check(g7(r)),e.uppercase=r=>e.check(y7(r)),e.trim=()=>e.check(_7()),e.normalize=(...r)=>e.check(T7(...r)),e.toLowerCase=()=>e.check(k7()),e.toUpperCase=()=>e.check(w7()),e.slugify=()=>e.check(S7())}),b8=_e("ZodString",(e,t)=>{B1.init(e,t),cE.init(e,t),e.email=n=>e.check(Lz(T8,n)),e.url=n=>e.check(Gz(_8,n)),e.jwt=n=>e.check(s7(F8,n)),e.emoji=n=>e.check(Hz(k8,n)),e.guid=n=>e.check(yM(TM,n)),e.uuid=n=>e.check(zz(Bf,n)),e.uuidv4=n=>e.check($z(Bf,n)),e.uuidv6=n=>e.check(Bz(Bf,n)),e.uuidv7=n=>e.check(qz(Bf,n)),e.nanoid=n=>e.check(Vz(w8,n)),e.guid=n=>e.check(yM(TM,n)),e.cuid=n=>e.check(Kz(S8,n)),e.cuid2=n=>e.check(Wz(M8,n)),e.ulid=n=>e.check(Zz(N8,n)),e.base64=n=>e.check(n7(R8,n)),e.base64url=n=>e.check(r7(A8,n)),e.xid=n=>e.check(Yz(P8,n)),e.ksuid=n=>e.check(Qz(C8,n)),e.ipv4=n=>e.check(Xz(E8,n)),e.ipv6=n=>e.check(Jz(D8,n)),e.cidrv4=n=>e.check(e7(j8,n)),e.cidrv6=n=>e.check(t7(I8,n)),e.e164=n=>e.check(i7(O8,n)),e.datetime=n=>e.check(e8(n)),e.date=n=>e.check(n8(n)),e.time=n=>e.check(i8(n)),e.duration=n=>e.check(a8(n))});function Jt(e){return Uz(b8,e)}const Bn=_e("ZodStringFormat",(e,t)=>{Rn.init(e,t),cE.init(e,t)}),T8=_e("ZodEmail",(e,t)=>{HL.init(e,t),Bn.init(e,t)}),TM=_e("ZodGUID",(e,t)=>{qL.init(e,t),Bn.init(e,t)}),Bf=_e("ZodUUID",(e,t)=>{GL.init(e,t),Bn.init(e,t)}),_8=_e("ZodURL",(e,t)=>{VL.init(e,t),Bn.init(e,t)}),k8=_e("ZodEmoji",(e,t)=>{KL.init(e,t),Bn.init(e,t)}),w8=_e("ZodNanoID",(e,t)=>{WL.init(e,t),Bn.init(e,t)}),S8=_e("ZodCUID",(e,t)=>{ZL.init(e,t),Bn.init(e,t)}),M8=_e("ZodCUID2",(e,t)=>{YL.init(e,t),Bn.init(e,t)}),N8=_e("ZodULID",(e,t)=>{QL.init(e,t),Bn.init(e,t)}),P8=_e("ZodXID",(e,t)=>{XL.init(e,t),Bn.init(e,t)}),C8=_e("ZodKSUID",(e,t)=>{JL.init(e,t),Bn.init(e,t)}),E8=_e("ZodIPv4",(e,t)=>{iz.init(e,t),Bn.init(e,t)}),D8=_e("ZodIPv6",(e,t)=>{sz.init(e,t),Bn.init(e,t)}),j8=_e("ZodCIDRv4",(e,t)=>{az.init(e,t),Bn.init(e,t)}),I8=_e("ZodCIDRv6",(e,t)=>{oz.init(e,t),Bn.init(e,t)}),R8=_e("ZodBase64",(e,t)=>{lz.init(e,t),Bn.init(e,t)}),A8=_e("ZodBase64URL",(e,t)=>{cz.init(e,t),Bn.init(e,t)}),O8=_e("ZodE164",(e,t)=>{pz.init(e,t),Bn.init(e,t)}),F8=_e("ZodJWT",(e,t)=>{mz.init(e,t),Bn.init(e,t)}),pE=_e("ZodNumber",(e,t)=>{J5.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>I7(e,r,i),e.gt=(r,i)=>e.check(vM(r,i)),e.gte=(r,i)=>e.check(Ix(r,i)),e.min=(r,i)=>e.check(Ix(r,i)),e.lt=(r,i)=>e.check(xM(r,i)),e.lte=(r,i)=>e.check(jx(r,i)),e.max=(r,i)=>e.check(jx(r,i)),e.int=r=>e.check(_M(r)),e.safe=r=>e.check(_M(r)),e.positive=r=>e.check(vM(0,r)),e.nonnegative=r=>e.check(Ix(0,r)),e.negative=r=>e.check(xM(0,r)),e.nonpositive=r=>e.check(jx(0,r)),e.multipleOf=(r,i)=>e.check(bM(r,i)),e.step=(r,i)=>e.check(bM(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}),U8=_e("ZodNumberFormat",(e,t)=>{fz.init(e,t),pE.init(e,t)});function _M(e){return p7(U8,e)}const L8=_e("ZodBoolean",(e,t)=>{hz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>R7(e,n,r)});function Dc(e){return d7(L8,e)}const z8=_e("ZodUnknown",(e,t)=>{gz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>O7()});function hb(){return m7(z8)}const $8=_e("ZodNever",(e,t)=>{yz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>A7(e,n,r)});function B8(e){return f7($8,e)}const q8=_e("ZodArray",(e,t)=>{xz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>$7(e,n,r,i),e.element=t.element,e.min=(n,r)=>e.check(Vh(n,r)),e.nonempty=n=>e.check(Vh(1,n)),e.max=(n,r)=>e.check(iE(n,r)),e.length=(n,r)=>e.check(sE(n,r)),e.unwrap=()=>e.element});function As(e,t){return M7(q8,e,t)}const G8=_e("ZodObject",(e,t)=>{bz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>B7(e,n,r,i),tn(e,"shape",()=>t.shape),e.keyof=()=>Hs(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:hb()}),e.loose=()=>e.clone({...e._zod.def,catchall:hb()}),e.strict=()=>e.clone({...e._zod.def,catchall:B8()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>$U(e,n),e.safeExtend=n=>BU(e,n),e.merge=n=>qU(e,n),e.pick=n=>LU(e,n),e.omit=n=>zU(e,n),e.partial=(...n)=>GU(hE,e,n[0]),e.required=(...n)=>HU(gE,e,n[0])});function or(e,t){const n={type:"object",shape:e??{},...mt(t)};return new G8(n)}const dE=_e("ZodUnion",(e,t)=>{nE.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>q7(e,n,r,i),e.options=t.options});function mE(e,t){return new dE({type:"union",options:e,...mt(t)})}const H8=_e("ZodDiscriminatedUnion",(e,t)=>{dE.init(e,t),Tz.init(e,t)});function fE(e,t,n){return new H8({type:"union",options:t,discriminator:e,...mt(n)})}const V8=_e("ZodIntersection",(e,t)=>{_z.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>G7(e,n,r,i)});function K8(e,t){return new V8({type:"intersection",left:e,right:t})}const W8=_e("ZodRecord",(e,t)=>{kz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>H7(e,n,r,i),e.keyType=t.keyType,e.valueType=t.valueType});function um(e,t,n){return new W8({type:"record",keyType:e,valueType:t,...mt(n)})}const gb=_e("ZodEnum",(e,t)=>{wz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(r,i,s)=>F7(e,r,i),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const s={};for(const o of r)if(n.has(o))s[o]=t.entries[o];else throw new Error(`Key ${o} not found in enum`);return new gb({...t,checks:[],...mt(i),entries:s})},e.exclude=(r,i)=>{const s={...t.entries};for(const o of r)if(n.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new gb({...t,checks:[],...mt(i),entries:s})}});function Hs(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new gb({type:"enum",entries:n,...mt(t)})}const Z8=_e("ZodLiteral",(e,t)=>{Sz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>U7(e,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function El(e,t){return new Z8({type:"literal",values:Array.isArray(e)?e:[e],...mt(t)})}const Y8=_e("ZodTransform",(e,t)=>{Mz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>z7(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new F5(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(Kd(s,n.value,t));else{const o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=e),n.issues.push(Kd(o))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(s=>(n.value=s,n)):(n.value=i,n)}});function Q8(e){return new Y8({type:"transform",transform:e})}const hE=_e("ZodOptional",(e,t)=>{rE.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>uE(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function kM(e){return new hE({type:"optional",innerType:e})}const X8=_e("ZodExactOptional",(e,t)=>{Nz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>uE(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function J8(e){return new X8({type:"optional",innerType:e})}const e$=_e("ZodNullable",(e,t)=>{Pz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>V7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function wM(e){return new e$({type:"nullable",innerType:e})}const t$=_e("ZodDefault",(e,t)=>{Cz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>W7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function n$(e,t){return new t$({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():$5(t)}})}const r$=_e("ZodPrefault",(e,t)=>{Ez.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Z7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function i$(e,t){return new r$({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():$5(t)}})}const gE=_e("ZodNonOptional",(e,t)=>{Dz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>K7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function s$(e,t){return new gE({type:"nonoptional",innerType:e,...mt(t)})}const a$=_e("ZodCatch",(e,t)=>{jz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Y7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function o$(e,t){return new a$({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const l$=_e("ZodPipe",(e,t)=>{Iz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>Q7(e,n,r,i),e.in=t.in,e.out=t.out});function SM(e,t){return new l$({type:"pipe",in:e,out:t})}const u$=_e("ZodReadonly",(e,t)=>{Rz.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>X7(e,n,r,i),e.unwrap=()=>e._zod.def.innerType});function c$(e){return new u$({type:"readonly",innerType:e})}const p$=_e("ZodCustom",(e,t)=>{Az.init(e,t),$n.init(e,t),e._zod.processJSONSchema=(n,r,i)=>L7(e,n)});function d$(e,t={}){return N7(p$,e,t)}function m$(e){return P7(e)}const f$={custom:"custom"};function q1(e){return c7(pE,e)}var yE=(e=>(e.LLM="llm",e.AGENT="agent",e.CONFIG="config",e.CONTEXT="context",e.SESSION="session",e.MCP="mcp",e.TOOLS="tools",e.STORAGE="storage",e.LOGGER="logger",e.SYSTEM_PROMPT="system_prompt",e.RESOURCE="resource",e.PROMPT="prompt",e.MEMORY="memory",e.HOOK="hook",e.TELEMETRY="telemetry",e))(yE||{}),xE=(e=>(e.USER="user",e.PAYMENT_REQUIRED="payment_required",e.FORBIDDEN="forbidden",e.NOT_FOUND="not_found",e.TIMEOUT="timeout",e.CONFLICT="conflict",e.RATE_LIMIT="rate_limit",e.SYSTEM="system",e.THIRD_PARTY="third_party",e.UNKNOWN="unknown",e))(xE||{}),h$={};Jt().transform(e=>e.trim()).refine(e=>e.length>0,{message:"Required"});const vE=new Set(["http:","https:"]);function g$(e){try{const t=new URL(e);return vE.has(t.protocol)}catch{return!1}}Jt().transform(e=>e.trim()).refine(e=>e===""||g$(e),{message:"Invalid URL"}).transform(e=>e===""?void 0:e).optional();const ic=e=>Jt().transform(t=>{if(typeof t!="string")return"";const n=e??h$;return t.replace(/\$([A-Z_][A-Z0-9_]*)|\${([A-Z_][A-Z0-9_]*)}/gi,(i,s,o)=>n[s||o]??"").trim()}),bE=e=>ic(e).refine(t=>{try{const n=new URL(t);return vE.has(n.protocol)}catch{return!1}},{message:"Invalid URL"});function Wh(e){return e?.startsWith("audio/")?"audio":e?.startsWith("video/")?"video":"binary"}function MM(e){return e?.startsWith("image/")?"image":e?.startsWith("audio/")?"audio":e?.startsWith("video/")?"video":"binary"}var ba=["openai","openai-compatible","anthropic","google","groq","xai","cohere","minimax","glm","openrouter","litellm","glama","vertex","bedrock","local","ollama","dexto-nova"],y$=["pdf","image","audio","video","document"],Ki={openai:[{name:"gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4",displayName:"GPT-4",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-chat-latest",displayName:"GPT-5 Chat (latest)",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-chat-latest",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-chat-latest",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-chat-latest",displayName:"GPT-5.3 Chat (latest)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.3-codex-spark",displayName:"GPT-5.3 Codex Spark",maxInputTokens:1e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,contextOver200kPerM:{inputPerM:5,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,contextOver200kPerM:{inputPerM:60,outputPerM:270},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:10,outputPerM:45},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,contextOver200kPerM:{inputPerM:60,outputPerM:270},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:.2,cacheWritePerM:2.5,inputPerM:2,outputPerM:9},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:1,cacheWritePerM:12.5,inputPerM:10,outputPerM:45},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,contextOver200kPerM:{inputTokensAbove:272e3,cacheReadPerM:.5,cacheWritePerM:6.25,inputPerM:5,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"gpt-image-1",displayName:"gpt-image-1",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-04-24",modalities:{input:["text","image"],output:["image"]}},{name:"gpt-image-1-mini",displayName:"gpt-image-1-mini",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text","image"],output:["text","image"]}},{name:"gpt-image-1.5",displayName:"gpt-image-1.5",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-11-25",modalities:{input:["text","image"],output:["text","image"]}},{name:"gpt-image-2",displayName:"gpt-image-2",maxInputTokens:0,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["image"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"gpt-realtime-2.1",displayName:"GPT-Realtime-2.1",maxInputTokens:96e3,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text","audio","image"],output:["text","audio"]},pricing:{inputPerM:4,outputPerM:24,cacheReadPerM:.4,inputAudioPerM:32,outputAudioPerM:64,currency:"USD",unit:"per_million_tokens"}},{name:"o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-03-19",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}}],anthropic:[{name:"claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5-20251001",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"claude-opus-4-1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-1-20250805",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5-20251101",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5-20250929",displayName:"Claude Sonnet 4.5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}}],google:[{name:"gemini-2.0-flash",displayName:"Gemini 2.0 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-11",status:"deprecated",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.0-flash-lite",displayName:"Gemini 2.0 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-11",status:"deprecated",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:30,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,inputAudioPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-preview-tts",displayName:"Gemini 2.5 Flash Preview TTS",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-01",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,contextOver200kPerM:{inputPerM:2.5,outputPerM:15},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro-preview-tts",displayName:"Gemini 2.5 Pro Preview TTS",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-01",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:1,outputPerM:20,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-pro-preview",displayName:"Gemini 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-18",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:65536,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["text","image","pdf"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-embedding-001",displayName:"Gemini Embedding 001",maxInputTokens:2048,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-latest",displayName:"Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-lite-latest",displayName:"Gemini Flash-Lite Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-omni-flash-preview",displayName:"Gemini Omni Flash Preview",maxInputTokens:131072,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["text","image","video"],output:["video"]},pricing:{inputPerM:1.5,outputPerM:17.5,currency:"USD",unit:"per_million_tokens"}}],groq:[{name:"canopylabs/orpheus-arabic-saudi",displayName:"Canopy Labs Orpheus Arabic Saudi",maxInputTokens:4e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-16",status:"beta",modalities:{input:["text"],output:["audio"]}},{name:"canopylabs/orpheus-v1-english",displayName:"Canopy Labs Orpheus V1 English",maxInputTokens:4e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-19",status:"beta",modalities:{input:["text"],output:["audio"]}},{name:"groq/compound",displayName:"Compound",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]}},{name:"groq/compound-mini",displayName:"Compound Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]}},{name:"llama-3.1-8b-instant",displayName:"Llama 3.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"llama-3.3-70b-versatile",displayName:"Llama 3.3 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.59,outputPerM:.79,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"meta-llama/llama-4-scout-17b-16e-instruct",displayName:"Llama 4 Scout 17B 16E",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",status:"beta",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.34,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-prompt-guard-2-22m",displayName:"Llama Prompt Guard 2 22M",maxInputTokens:512,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-prompt-guard-2-86m",displayName:"Prompt Guard 2 86M",maxInputTokens:512,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"Safety GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3-32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-11",status:"beta",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.29,outputPerM:.59,currency:"USD",unit:"per_million_tokens"}},{name:"whisper-large-v3",displayName:"Whisper",maxInputTokens:0,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-01",modalities:{input:["audio"],output:["text"]}},{name:"whisper-large-v3-turbo",displayName:"Whisper Large V3 Turbo",maxInputTokens:0,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-01",modalities:{input:["audio"],output:["text"]}}],xai:[{name:"grok-4.20-0309-non-reasoning",displayName:"Grok 4.20 (Non-Reasoning)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.20-0309-reasoning",displayName:"Grok 4.20 (Reasoning)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.20-multi-agent-0309",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2,outputPerM:4},currency:"USD",unit:"per_million_tokens"}},{name:"grok-imagine-image",displayName:"Grok Imagine Image",maxInputTokens:8e3,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-01-28",modalities:{input:["text","image","pdf"],output:["image","pdf"]}},{name:"grok-imagine-image-quality",displayName:"Grok Imagine Image Quality",maxInputTokens:8e3,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-03",modalities:{input:["text","image","pdf"],output:["image","pdf"]}},{name:"grok-imagine-video",displayName:"Grok Imagine Video",maxInputTokens:1024,supportedFileTypes:["pdf","image","video"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-01-28",modalities:{input:["text","image","video","pdf"],output:["video"]}}],cohere:[{name:"command-a-03-2025",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"command-a-plus-05-2026",displayName:"Command A Plus",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-20",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-reasoning-08-2025",displayName:"Command A Reasoning",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-translate-08-2025",displayName:"Command A Translate",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-a-vision-07-2025",displayName:"Command A Vision",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"command-r7b-arabic-02-2025",displayName:"Command R7B Arabic",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}}],minimax:[{name:"MiniMax-M2",displayName:"MiniMax-M2",maxInputTokens:196608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"MiniMax-M2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.5-highspeed",displayName:"MiniMax-M2.5-highspeed",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.4,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M2.7-highspeed",displayName:"MiniMax-M2.7-highspeed",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.4,cacheReadPerM:.06,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"MiniMax-M3",displayName:"MiniMax-M3",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,contextOver200kPerM:{inputPerM:.6,outputPerM:2.4},currency:"USD",unit:"per_million_tokens"}}],glm:[{name:"glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,cacheReadPerM:.03,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5-flash",displayName:"GLM-4.5-Flash",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,cacheReadPerM:0,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:64e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.6",displayName:"GLM-4.6",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.7",displayName:"GLM-4.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,cacheReadPerM:0,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-4.7-flashx",displayName:"GLM-4.7-FlashX",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5",displayName:"GLM-5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-11",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,cacheReadPerM:.2,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5.1",displayName:"GLM-5.1",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.4,outputPerM:4.4,cacheReadPerM:.26,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5.2",displayName:"GLM-5.2",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.4,outputPerM:4.4,cacheReadPerM:.26,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:2e5,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text","image","video","pdf"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:5,outputPerM:22,cacheReadPerM:1.2,cacheWritePerM:0,currency:"USD",unit:"per_million_tokens"}}],openrouter:[{name:"~anthropic/claude-fable-latest",displayName:"Claude Fable Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-haiku-latest",displayName:"Anthropic Claude Haiku Latest",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-opus-latest",displayName:"Claude Opus Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-sonnet-latest",displayName:"Anthropic Claude Sonnet Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-flash-latest",displayName:"Google Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-pro-latest",displayName:"Google Gemini Pro Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["audio","pdf","image","text","video"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"~moonshotai/kimi-latest",displayName:"MoonshotAI Kimi Latest",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-latest",displayName:"OpenAI GPT Latest",maxInputTokens:105e4,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-mini-latest",displayName:"OpenAI GPT Mini Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"~x-ai/grok-latest",displayName:"Grok Latest",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"ai21/jamba-large-1.7",displayName:"Jamba Large 1.7",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-2.0",displayName:"Aion-2.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0",displayName:"Aion-3.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:6,cacheReadPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0-mini",displayName:"Aion-3.0-Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:1.4,cacheReadPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-rp-llama-3.1-8b",displayName:"Aion-RP 1.0 (8B)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,currency:"USD",unit:"per_million_tokens"}},{name:"allenai/olmo-3-32b-think",displayName:"Olmo 3 32B Think",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-2-lite-v1",displayName:"Nova 2 Lite",maxInputTokens:1e6,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-lite-v1",displayName:"Nova Lite 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-micro-v1",displayName:"Nova Micro 1.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-premier-v1",displayName:"Nova Premier 1.0",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:12.5,cacheReadPerM:.625,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-pro-v1",displayName:"Nova Pro 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthracite-org/magnum-v4-72b",displayName:"Magnum v4 72B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-3-haiku",displayName:"Claude 3 Haiku",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.25,cacheReadPerM:.03,cacheWritePerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-haiku-4.5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7-fast",displayName:"Claude Opus 4.7 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:150,cacheReadPerM:3,cacheWritePerM:37.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8-fast",displayName:"Claude Opus 4.8 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/trinity-large-thinking",displayName:"Trinity Large Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.8,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/virtuoso-large",displayName:"Virtuoso Large",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"baidu/ernie-4.5-vl-424b-a47b",displayName:"ERNIE 4.5 VL 424B A47B ",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-06-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.42,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6",displayName:"Seed 1.6",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6-flash",displayName:"Seed 1.6 Flash",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-lite",displayName:"Seed-2.0-Lite",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-10",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-mini",displayName:"Seed-2.0-Mini",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-26",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance/ui-tars-1.5-7b",displayName:"UI-TARS 7B ",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-22",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition",displayName:"Uncensored",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",displayName:"Uncensored (free)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-a",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/north-mini-code:free",displayName:"North Mini Code (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"deepcogito/cogito-v2.1-671b",displayName:"Cogito v2.1 671B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat",displayName:"DeepSeek Chat",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2002,outputPerM:.8001,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3-0324",displayName:"DeepSeek V3 0324",maxInputTokens:163840,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-24",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1.12,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3.1",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.95,cacheReadPerM:.13,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-0528",displayName:"R1 0528",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2.15,cacheReadPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-distill-llama-70b",displayName:"R1 Distill Llama 70B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.1-terminus",displayName:"DeepSeek V3.1 Terminus",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.269,outputPerM:.4,cacheReadPerM:.1345,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2-exp",displayName:"DeepSeek V3.2 Exp",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:.41,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-flash",displayName:"DeepSeek V4 Flash",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.098,outputPerM:.196,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-pro",displayName:"DeepSeek V4 Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.003625,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,reasoningPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:.083333,reasoningPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview",displayName:"Gemini 2.5 Pro Preview 06-05",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-05",modalities:{input:["pdf","image","text","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf","audio","video"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,cacheWritePerM:.083333,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["image","text"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-image",displayName:"Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["image","text"],output:["image","text"]},pricing:{inputPerM:.25,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048756,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-2-27b-it",displayName:"Gemma 2 27B",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-07-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-12b-it",displayName:"Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-27b-it",displayName:"Gemma 3 27B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.45,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-4b-it",displayName:"Gemma 3 4B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3n-e4b-it",displayName:"Gemma 3n 4B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it",displayName:"Gemma 4 26B A4B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it:free",displayName:"Gemma 4 26B A4B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it",displayName:"Gemma 4 31B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.55,cacheReadPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it:free",displayName:"Gemma 4 31B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-clip-preview",displayName:"Lyria 3 Clip Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-pro-preview",displayName:"Lyria 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gryphe/mythomax-l2-13b",displayName:"MythoMax 13B",maxInputTokens:4096,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.0-h-micro",displayName:"Granite 4.0 Micro",maxInputTokens:131e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.017,outputPerM:.112,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.1-8b",displayName:"Granite 4.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"inception/mercury-2",displayName:"Mercury 2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.75,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-1t",displayName:"Ling-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-flash",displayName:"Ling-2.6-flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.01,outputPerM:.03,cacheReadPerM:.002,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ring-2.6-1t",displayName:"Ring-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-pi",displayName:"Inflection 3 Pi",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-productivity",displayName:"Inflection 3 Productivity",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-air-v2.5",displayName:"KAT-Coder-Air V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2",displayName:"KAT-Coder-Pro V2",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2.5",displayName:"KAT-Coder-Pro V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.74,outputPerM:2.96,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mancer/weaver",displayName:"Weaver (alpha)",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-08-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-70b-instruct",displayName:"Llama 3.1 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-8b-instruct",displayName:"Llama 3.1 8B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.345,outputPerM:.345,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-1b-instruct",displayName:"Llama 3.2 1B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.027,outputPerM:.201,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct",displayName:"Llama 3.2 3B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.33,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct:free",displayName:"Llama 3.2 3B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct:free",displayName:"Llama 3.3 70B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-maverick",displayName:"Llama 4 Maverick",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-scout",displayName:"Llama 4 Scout",maxInputTokens:1e7,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-guard-4-12b",displayName:"Llama Guard 4 12B",maxInputTokens:163840,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-04-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.18,outputPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"meta/muse-spark-1.1",displayName:"Muse Spark 1.1",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-08",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:4.25,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/phi-4",displayName:"Phi 4",maxInputTokens:16384,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/wizardlm-2-8x22b",displayName:"WizardLM-2 8x22B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-04-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:.62,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-01",displayName:"MiniMax-01",maxInputTokens:1000192,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m1",displayName:"MiniMax M1",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2",displayName:"MiniMax-M2",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.255,outputPerM:1.02,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2-her",displayName:"MiniMax M2-her",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.15,outputPerM:.9,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m3",displayName:"MiniMax-M3",maxInputTokens:1048576,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/codestral-2508",displayName:"Codestral 2508",maxInputTokens:256e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-01",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/devstral-2512",displayName:"Devstral 2",maxInputTokens:262144,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-09",status:"deprecated",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-14b-2512",displayName:"Ministral 3 14B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-3b-2512",displayName:"Ministral 3 3B 2512",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-8b-2512",displayName:"Ministral 3 8B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large",displayName:"Mistral Large",maxInputTokens:128e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-02-26",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2407",displayName:"Mistral Large 2407",maxInputTokens:131072,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-19",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2512",displayName:"Mistral Large 3",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-01",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3",displayName:"Mistral Medium 3",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3-5",displayName:"Mistral Medium 3.5",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3.1",displayName:"Mistral Medium 3.1",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-nemo",displayName:"Mistral Nemo",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.02,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-saba",displayName:"Saba",maxInputTokens:32768,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-24b-instruct-2501",displayName:"Mistral Small 3",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-2603",displayName:"Mistral Small 4",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.1-24b-instruct",displayName:"Mistral Small 3.1 24B",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.351,outputPerM:.555,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.2-24b-instruct",displayName:"Mistral Small 3.2 24B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-20",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mixtral-8x22b-instruct",displayName:"Mixtral 8x22B Instruct",maxInputTokens:65536,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-04-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["pdf","audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-30",modalities:{input:["text","audio","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2",displayName:"Kimi K2 0711",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.57,outputPerM:2.3,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-0905",displayName:"Kimi K2 0905",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-06",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.57,outputPerM:2.85,cacheReadPerM:.095,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.6",displayName:"Kimi K2.6",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:4,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.7-code",displayName:"Kimi K2.7 Code",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:3.5,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k3",displayName:"Kimi K3",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-fast",displayName:"Morph V3 Fast",maxInputTokens:81920,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-large",displayName:"Morph V3 Large",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.9,outputPerM:1.9,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-mini",displayName:"Nex-N2-Mini",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.025,outputPerM:.1,cacheReadPerM:.0025,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-pro",displayName:"Nex-N2-Pro",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b",displayName:"Hermes 3 405B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b:free",displayName:"Hermes 3 405B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-70b",displayName:"Hermes 3 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:.7,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-405b",displayName:"Hermes 4 405B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-70b",displayName:"Hermes 4 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/llama-3.3-nemotron-super-49b-v1.5",displayName:"Llama 3.3 Nemotron Super 49B v1.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b",displayName:"Nemotron 3 Nano 30B A3B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b:free",displayName:"Nemotron 3 Nano 30B A3B (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",displayName:"Nemotron 3 Nano Omni (free)",maxInputTokens:256e3,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text","image","video","audio"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b",displayName:"Nemotron 3 Super 120B A12B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.21,outputPerM:.455,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b:free",displayName:"Nemotron 3 Super (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b",displayName:"Nemotron 3 Ultra 550B A55B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:3.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b:free",displayName:"Nemotron 3 Ultra (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3.5-content-safety:free",displayName:"Nemotron 3.5 Content Safety (free)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-12b-v2-vl:free",displayName:"Nemotron Nano 12B 2 VL (free)",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-28",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-9b-v2:free",displayName:"Nemotron Nano 9B V2 (free)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-0613",displayName:"GPT-3.5 Turbo (older v0613)",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-16k",displayName:"GPT-3.5 Turbo 16k",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-instruct",displayName:"GPT-3.5 Turbo Instruct",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4",displayName:"GPT-4",maxInputTokens:8191,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo-preview",displayName:"GPT-4 Turbo Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-2024-07-18",displayName:"GPT-4o-mini (2024-07-18)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-search-preview",displayName:"GPT-4o-mini Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-search-preview",displayName:"GPT-4o Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-chat",displayName:"GPT-5 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image",displayName:"GPT-5 Image",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-14",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:10,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image-mini",displayName:"GPT-5 Image Mini",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-16",modalities:{input:["pdf","image","text"],output:["image","text"]},pricing:{inputPerM:2.5,outputPerM:2,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-chat",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-chat",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-10",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-chat",displayName:"GPT-5.3 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-image-2",displayName:"GPT-5.4 Image 2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:8,outputPerM:15,cacheReadPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna-pro",displayName:"GPT-5.6 Luna Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol-pro",displayName:"GPT-5.6 Sol Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra-pro",displayName:"GPT-5.6 Terra Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio",displayName:"GPT Audio",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio-mini",displayName:"GPT Audio Mini",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:.6,outputPerM:2.4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-chat-latest",displayName:"GPT Chat Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.037,outputPerM:.17,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.13,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b:free",displayName:"gpt-oss-20b (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"gpt-oss-safeguard-20b",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-19",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini-high",displayName:"o3 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-02-12",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","pdf","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-high",displayName:"o4 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/auto",displayName:"Auto Router",maxInputTokens:2e6,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-08",modalities:{input:["text","image","audio","pdf","video"],output:["text","image"]}},{name:"openrouter/bodybuilder",displayName:"Body Builder (beta)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-05",modalities:{input:["text"],output:["text"]}},{name:"openrouter/free",displayName:"Free Models Router",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/fusion",displayName:"Fusion",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]}},{name:"openrouter/pareto-code",displayName:"Pareto Code Router",maxInputTokens:2e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]}},{name:"perceptron/perceptron-mk1",displayName:"Perceptron Mk1",maxInputTokens:32768,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-12",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.15,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar",displayName:"Sonar",maxInputTokens:127072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-deep-research",displayName:"Sonar Deep Research",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro",displayName:"Sonar Pro",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro-search",displayName:"Sonar Pro Search",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-30",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-reasoning-pro",displayName:"Sonar Reasoning Pro",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1",displayName:"Laguna M.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.4,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1:free",displayName:"Laguna M.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1",displayName:"Laguna XS 2.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1:free",displayName:"Laguna XS 2.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-72b-instruct",displayName:"Qwen2.5 72B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-09-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.36,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-7b-instruct",displayName:"Qwen2.5 7B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-coder-32b-instruct",displayName:"Qwen2.5 Coder 32B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-11-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.66,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus",displayName:"Qwen Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheReadPerM:.052,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28",displayName:"Qwen Plus 0728",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28:thinking",displayName:"Qwen Plus 0728 (thinking)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen2.5-vl-72b-instruct",displayName:"Qwen2.5 VL 72B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1,cacheReadPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-14b",displayName:"Qwen3 14B",maxInputTokens:131702,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b",displayName:"Qwen3 235B-A22B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.455,outputPerM:1.82,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-2507",displayName:"Qwen3 235B A22B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1495,outputPerM:1.495,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b",displayName:"Qwen3 30B A3B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-thinking-2507",displayName:"Qwen3 30B A3B Thinking 2507",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3 32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.28,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-8b",displayName:"Qwen3 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder",displayName:"Qwen3 Coder 480B A35B",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-30b-a3b-instruct",displayName:"Qwen3-Coder 30B-A3B Instruct",maxInputTokens:16e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.27,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-flash",displayName:"Qwen3 Coder Flash",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.195,outputPerM:.975,cacheReadPerM:.039,cacheWritePerM:.24375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.8,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-plus",displayName:"Qwen3 Coder Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:3.25,cacheReadPerM:.13,cacheWritePerM:.8125,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder:free",displayName:"Qwen3 Coder 480B A35B (free)",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max",displayName:"Qwen3 Max",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,cacheReadPerM:.156,cacheWritePerM:.975,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max-thinking",displayName:"Qwen3 Max Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct",displayName:"Qwen3-Next 80B-A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:1.1,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct:free",displayName:"Qwen3 Next 80B A3B Instruct (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-thinking",displayName:"Qwen3-Next 80B-A3B (Thinking)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0975,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-instruct",displayName:"Qwen3 VL 235B A22B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.21,outputPerM:1.9,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-thinking",displayName:"Qwen3 VL 235B A22B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-instruct",displayName:"Qwen3 VL 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.52,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-thinking",displayName:"Qwen3 VL 30B A3B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-32b-instruct",displayName:"Qwen3 VL 32B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.104,outputPerM:.416,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-instruct",displayName:"Qwen3 VL 8B Instruct",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-thinking",displayName:"Qwen3 VL 8B Thinking",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:1.365,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-122b-a10b",displayName:"Qwen3.5 122B-A10B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.08,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-27b",displayName:"Qwen3.5 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.195,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-35b-a3b",displayName:"Qwen3.5 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-397b-a17b",displayName:"Qwen3.5 397B-A17B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-15",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:3,cacheReadPerM:.225,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-9b",displayName:"Qwen3.5 9B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-flash-02-23",displayName:"Qwen3.5-Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-25",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.065,outputPerM:.26,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-02-15",displayName:"Qwen3.5 Plus 2026-02-15",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-16",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-20260420",displayName:"Qwen3.5 Plus 2026-04-20",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.8,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-27b",displayName:"Qwen3.6 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:2.7,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-35b-a3b",displayName:"Qwen3.6 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-flash",displayName:"Qwen3.6 Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1875,outputPerM:1.125,cacheWritePerM:.234375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-max-preview",displayName:"Qwen3.6 Max Preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.04,outputPerM:6.24,cacheWritePerM:1.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-plus",displayName:"Qwen3.6 Plus",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.325,outputPerM:1.95,cacheWritePerM:.40625,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-max",displayName:"Qwen3.7 Max",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.475,outputPerM:4.425,cacheReadPerM:.295,cacheWritePerM:1.84375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-plus",displayName:"Qwen3.7 Plus",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.32,outputPerM:1.28,cacheReadPerM:.064,cacheWritePerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-edge",displayName:"Reka Edge",maxInputTokens:16384,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-20",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-flash-3",displayName:"Reka Flash 3",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-apply-3",displayName:"Relace Apply 3",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-search",displayName:"Relace Search",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"sakana/fugu-ultra",displayName:"Fugu Ultra",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3-lunaris-8b",displayName:"Llama 3 8B Lunaris",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.1-euryale-70b",displayName:"Llama 3.1 Euryale 70B v2.2",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:.85,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.3-euryale-70b",displayName:"Llama 3.3 Euryale 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.5-flash",displayName:"Step 3.5 Flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.7-flash",displayName:"Step 3.7 Flash",maxInputTokens:256e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-29",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.15,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hunyuan-a13b-instruct",displayName:"Hunyuan A13B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:.57,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3",displayName:"Hy3",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3-preview",displayName:"Hy3 preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.063,outputPerM:.21,cacheReadPerM:.021,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3:free",displayName:"Hy3 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/cydonia-24b-v4.1",displayName:"Cydonia 24B V4.1",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.5,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/rocinante-12b",displayName:"Rocinante 12B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/skyfall-36b-v2",displayName:"Skyfall 36B V2",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:.8,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/unslopnemo-12b",displayName:"UnslopNemo 12B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"undi95/remm-slerp-l2-13b",displayName:"ReMM SLERP 13B",maxInputTokens:6144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.45,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"upstage/solar-pro-3",displayName:"Solar Pro 3",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"writer/palmyra-x5",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20",displayName:"Grok 4.20",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20-multi-agent",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5",displayName:"MiMo-V2.5",maxInputTokens:1048576,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","audio","video"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.14,outputPerM:.28,cacheReadPerM:.0028,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5-pro",displayName:"MiMo-V2.5-Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.0036,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.85,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:65536,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6",displayName:"GLM-4.6",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:131072,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.055,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7",displayName:"GLM-4.7",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.4,outputPerM:1.75,cacheReadPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.0605,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:3.15,cacheReadPerM:.19,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5-turbo",displayName:"GLM-5-Turbo",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.1",displayName:"GLM-5.1",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-07",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.966,outputPerM:3.036,cacheReadPerM:.1794,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.2",displayName:"GLM-5.2",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.9338,outputPerM:2.9348,cacheReadPerM:.17342,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:202752,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}}],vertex:[{name:"claude-3-5-haiku@20241022",displayName:"Claude Haiku 3.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:.8,outputPerM:4,cacheReadPerM:.08,cacheWritePerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"claude-haiku-4-5@20251001",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-1@20250805",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-5@20251101",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-01",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-6@default",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-7@default",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4-8@default",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-opus-4@20250514",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-5@20250929",displayName:"Claude Sonnet 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4-6@default",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-4@20250514",displayName:"Claude Sonnet 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",status:"deprecated",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"claude-sonnet-5@default",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/google-vertex/anthropic"},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek-ai/deepseek-v3.1-maas",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.6,outputPerM:1.7,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek-ai/deepseek-v3.2-maas",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.56,outputPerM:1.68,cacheReadPerM:.056,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.075,cacheWritePerM:.383,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,inputAudioPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-flash-tts",displayName:"Gemini 2.5 Flash TTS",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-30",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,contextOver200kPerM:{inputPerM:2.5,outputPerM:15},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-2.5-pro-tts",displayName:"Gemini 2.5 Pro TTS",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-30",modalities:{input:["text"],output:["audio"]},pricing:{inputPerM:1,outputPerM:20,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,inputAudioPerM:1,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["pdf","image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image","video","pdf"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",status:"deprecated",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-embedding-001",displayName:"Gemini Embedding 001",maxInputTokens:2048,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-latest",displayName:"Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,inputAudioPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"gemini-flash-lite-latest",displayName:"Gemini Flash-Lite Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,inputAudioPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"meta/llama-3.3-70b-instruct-maas",displayName:"Llama 3.3 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-29",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta/llama-4-maverick-17b-128e-instruct-maas",displayName:"Llama 4 Maverick 17B 128E Instruct",maxInputTokens:524288,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-29",modalities:{input:["text","image"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.35,outputPerM:1.15,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking-maas",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b-maas",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.36,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b-maas",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-instruct-2507-maas",displayName:"Qwen3 235B A22B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},pricing:{inputPerM:.22,outputPerM:.88,currency:"USD",unit:"per_million_tokens"}},{name:"zai-org/glm-4.7-maas",displayName:"GLM-4.7",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-06",modalities:{input:["text","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai-org/glm-5-maas",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-11",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/openai-compatible",api:"https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi"},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}}],bedrock:[{name:"amazon.nova-2-lite-v1:0",displayName:"Nova 2 Lite",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.33,outputPerM:2.75,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-lite-v1:0",displayName:"Nova Lite",maxInputTokens:3e5,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-micro-v1:0",displayName:"Nova Micro",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,cacheReadPerM:.00875,currency:"USD",unit:"per_million_tokens"}},{name:"amazon.nova-pro-v1:0",displayName:"Nova Pro",maxInputTokens:3e5,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-03",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-1-20250805-v1:0",displayName:"Claude Opus 4.1",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"},default:!0},{name:"anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (AU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-opus-4-6-v1",displayName:"AU Anthropic Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:16.5,outputPerM:82.5,cacheReadPerM:1.65,cacheWritePerM:20.625,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (AU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (AU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-4-6",displayName:"AU Anthropic Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"au.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (AU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.r1-v1:0",displayName:"DeepSeek-R1",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.35,outputPerM:5.4,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.v3-v1:0",displayName:"DeepSeek-V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.58,outputPerM:1.68,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek.v3.2",displayName:"DeepSeek-V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:1.85,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-fable-5",displayName:"Claude Fable 5 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:11,outputPerM:55,cacheReadPerM:1.1,cacheWritePerM:13.75,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:5.5,cacheReadPerM:.11,cacheWritePerM:1.375,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5.5,outputPerM:27.5,cacheReadPerM:.55,cacheWritePerM:6.875,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (EU)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3.3,outputPerM:16.5,cacheReadPerM:.33,cacheWritePerM:4.125,currency:"USD",unit:"per_million_tokens"}},{name:"eu.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (EU)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.2,outputPerM:11,cacheReadPerM:.22,cacheWritePerM:2.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-fable-5",displayName:"Claude Fable 5 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (Global)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"global.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (Global)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-12b-it",displayName:"Google Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.049999999999999996,outputPerM:.09999999999999999,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-27b-it",displayName:"Google Gemma 3 27B Instruct",maxInputTokens:202752,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"google.gemma-3-4b-it",displayName:"Gemma 3 4B IT",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (JP)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (JP)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"jp.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (JP)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-1-70b-instruct-v1:0",displayName:"Llama 3.1 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-1-8b-instruct-v1:0",displayName:"Llama 3.1 8B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.22,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama3-3-70b-instruct-v1:0",displayName:"Llama 3.3 70B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.72,outputPerM:.72,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama4-maverick-17b-instruct-v1:0",displayName:"Llama 4 Maverick 17B Instruct",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.24,outputPerM:.97,currency:"USD",unit:"per_million_tokens"}},{name:"meta.llama4-scout-17b-instruct-v1:0",displayName:"Llama 4 Scout 17B Instruct",maxInputTokens:35e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.17,outputPerM:.66,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2",displayName:"MiniMax M2",maxInputTokens:204608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2.1",displayName:"MiniMax M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax.minimax-m2.5",displayName:"MiniMax M2.5",maxInputTokens:196608,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.devstral-2-123b",displayName:"Devstral 2 123B",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.magistral-small-2509",displayName:"Magistral Small 1.2",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-14b-instruct",displayName:"Ministral 14B 3.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-3b-instruct",displayName:"Ministral 3 3B",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.ministral-3-8b-instruct",displayName:"Ministral 3 8B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.mistral-large-3-675b-instruct",displayName:"Mistral Large 3",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.pixtral-large-2502-v1:0",displayName:"Pixtral Large (25.02)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.voxtral-mini-3b-2507",displayName:"Voxtral Mini 3B 2507",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["audio","text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistral.voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-01",modalities:{input:["text","audio"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"moonshot.kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262143,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text"],output:["text"]},interleaved:!0,supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai.kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262143,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text","image"],output:["text"]},interleaved:!0,supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-12b-v2",displayName:"NVIDIA Nemotron Nano 12B v2 VL BF16",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-3-30b",displayName:"NVIDIA Nemotron Nano 3 30B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-nano-9b-v2",displayName:"NVIDIA Nemotron Nano 9B v2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.23,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia.nemotron-super-3-120b",displayName:"NVIDIA Nemotron 3 Super 120B A12B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.4",displayName:"GPT-5.4",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:2.75,outputPerM:16.5,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.5",displayName:"GPT-5.5",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:5.5,outputPerM:33,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:272e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-120b",displayName:"gpt-oss-120b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/v1"},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-120b-1:0",displayName:"gpt-oss-120b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-20b",displayName:"gpt-oss-20b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/v1"},pricing:{inputPerM:.07,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-20b-1:0",displayName:"gpt-oss-20b",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-safeguard-120b",displayName:"GPT OSS Safeguard 120B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai.gpt-oss-safeguard-20b",displayName:"GPT OSS Safeguard 20B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-235b-a22b-2507-v1:0",displayName:"Qwen3 235B A22B 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.88,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-32b-v1:0",displayName:"Qwen3 32B (dense)",maxInputTokens:16384,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-30b-a3b-v1:0",displayName:"Qwen3 Coder 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-480b-a35b-v1:0",displayName:"Qwen3 Coder 480B A35B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.22,outputPerM:1.8,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-next-80b-a3b",displayName:"Qwen/Qwen3-Next-80B-A3B-Instruct",maxInputTokens:262e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen.qwen3-vl-235b-a22b",displayName:"Qwen/Qwen3-VL-235B-A22B-Instruct",maxInputTokens:262e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-fable-5",displayName:"Claude Fable 5 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-haiku-4-5-20251001-v1:0",displayName:"Claude Haiku 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-1-20250805-v1:0",displayName:"Claude Opus 4.1 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-5-20251101-v1:0",displayName:"Claude Opus 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-6-v1",displayName:"Claude Opus 4.6 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-7",displayName:"Claude Opus 4.7 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-opus-4-8",displayName:"Claude Opus 4.8 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",displayName:"Claude Sonnet 4.5 (US)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-4-6",displayName:"Claude Sonnet 4.6 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,currency:"USD",unit:"per_million_tokens"}},{name:"us.anthropic.claude-sonnet-5",displayName:"Claude Sonnet 5 (US)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"us.deepseek.r1-v1:0",displayName:"DeepSeek-R1 (US)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.35,outputPerM:5.4,currency:"USD",unit:"per_million_tokens"}},{name:"us.meta.llama4-maverick-17b-instruct-v1:0",displayName:"Llama 4 Maverick 17B Instruct (US)",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.24,outputPerM:.97,currency:"USD",unit:"per_million_tokens"}},{name:"us.meta.llama4-scout-17b-instruct-v1:0",displayName:"Llama 4 Scout 17B Instruct (US)",maxInputTokens:35e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.17,outputPerM:.66,currency:"USD",unit:"per_million_tokens"}},{name:"writer.palmyra-x4-v1:0",displayName:"Palmyra X4",maxInputTokens:122880,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"writer.palmyra-x5-v1:0",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"xai.grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image"],output:["text"]},providerMetadata:{npm:"@ai-sdk/amazon-bedrock/mantle",api:"https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-4.7",displayName:"GLM-4.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"zai.glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}}],"dexto-nova":[{name:"~anthropic/claude-fable-latest",displayName:"Claude Fable Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-haiku-latest",displayName:"Anthropic Claude Haiku Latest",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-opus-latest",displayName:"Claude Opus Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~anthropic/claude-sonnet-latest",displayName:"Anthropic Claude Sonnet Latest",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-flash-latest",displayName:"Google Gemini Flash Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"~google/gemini-pro-latest",displayName:"Google Gemini Pro Latest",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["audio","pdf","image","text","video"],output:["text"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"~moonshotai/kimi-latest",displayName:"MoonshotAI Kimi Latest",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-latest",displayName:"OpenAI GPT Latest",maxInputTokens:105e4,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"~openai/gpt-mini-latest",displayName:"OpenAI GPT Mini Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"~x-ai/grok-latest",displayName:"Grok Latest",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"ai21/jamba-large-1.7",displayName:"Jamba Large 1.7",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-2.0",displayName:"Aion-2.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0",displayName:"Aion-3.0",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:6,cacheReadPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-3.0-mini",displayName:"Aion-3.0-Mini",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:1.4,cacheReadPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"aion-labs/aion-rp-llama-3.1-8b",displayName:"Aion-RP 1.0 (8B)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.6,currency:"USD",unit:"per_million_tokens"}},{name:"allenai/olmo-3-32b-think",displayName:"Olmo 3 32B Think",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-2-lite-v1",displayName:"Nova 2 Lite",maxInputTokens:1e6,supportedFileTypes:["pdf","image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-lite-v1",displayName:"Nova Lite 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-micro-v1",displayName:"Nova Micro 1.0",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.035,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-premier-v1",displayName:"Nova Premier 1.0",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-31",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:12.5,cacheReadPerM:.625,currency:"USD",unit:"per_million_tokens"}},{name:"amazon/nova-pro-v1",displayName:"Nova Pro 1.0",maxInputTokens:3e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:3.2,currency:"USD",unit:"per_million_tokens"}},{name:"anthracite-org/magnum-v4-72b",displayName:"Magnum v4 72B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-3-haiku",displayName:"Claude 3 Haiku",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.25,cacheReadPerM:.03,cacheWritePerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-fable-5",displayName:"Claude Fable 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-haiku-4.5",displayName:"Claude Haiku 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-15",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:5,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4",displayName:"Claude Opus 4",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.1",displayName:"Claude Opus 4.1 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:75,cacheReadPerM:1.5,cacheWritePerM:18.75,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.5",displayName:"Claude Opus 4.5 (latest)",maxInputTokens:2e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-24",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.6",displayName:"Claude Opus 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7",displayName:"Claude Opus 4.7",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,contextOver200kPerM:{inputPerM:10,outputPerM:37.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.7-fast",displayName:"Claude Opus 4.7 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:150,cacheReadPerM:3,cacheWritePerM:37.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8",displayName:"Claude Opus 4.8",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:25,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-opus-4.8-fast",displayName:"Claude Opus 4.8 (Fast)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:50,cacheReadPerM:1,cacheWritePerM:12.5,currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4",displayName:"Claude Sonnet 4",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-22",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.5",displayName:"Claude Sonnet 4.5 (latest)",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-4.6",displayName:"Claude Sonnet 4.6",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,cacheWritePerM:3.75,contextOver200kPerM:{inputPerM:6,outputPerM:22.5},currency:"USD",unit:"per_million_tokens"}},{name:"anthropic/claude-sonnet-5",displayName:"Claude Sonnet 5",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:10,cacheReadPerM:.2,cacheWritePerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/trinity-large-thinking",displayName:"Trinity Large Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.8,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"arcee-ai/virtuoso-large",displayName:"Virtuoso Large",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"baidu/ernie-4.5-vl-424b-a47b",displayName:"ERNIE 4.5 VL 424B A47B ",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-06-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.42,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6",displayName:"Seed 1.6",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-1.6-flash",displayName:"Seed 1.6 Flash",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-lite",displayName:"Seed-2.0-Lite",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-10",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance-seed/seed-2.0-mini",displayName:"Seed-2.0-Mini",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-26",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"bytedance/ui-tars-1.5-7b",displayName:"UI-TARS 7B ",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-22",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition",displayName:"Uncensored",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.9,currency:"USD",unit:"per_million_tokens"}},{name:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",displayName:"Uncensored (free)",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-a",displayName:"Command A",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-08-2024",displayName:"Command R",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r-plus-08-2024",displayName:"Command R+",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/command-r7b-12-2024",displayName:"Command R7B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0375,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"cohere/north-mini-code:free",displayName:"North Mini Code (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"deepcogito/cogito-v2.1-671b",displayName:"Cogito v2.1 671B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat",displayName:"DeepSeek Chat",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2002,outputPerM:.8001,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3-0324",displayName:"DeepSeek V3 0324",maxInputTokens:163840,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-24",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1.12,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-chat-v3.1",displayName:"DeepSeek V3.1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.95,cacheReadPerM:.13,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1",displayName:"DeepSeek-R1",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-01-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-0528",displayName:"R1 0528",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2.15,cacheReadPerM:.35,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-r1-distill-llama-70b",displayName:"R1 Distill Llama 70B",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.1-terminus",displayName:"DeepSeek V3.1 Terminus",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:1,cacheReadPerM:.135,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2",displayName:"DeepSeek V3.2",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.269,outputPerM:.4,cacheReadPerM:.1345,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v3.2-exp",displayName:"DeepSeek V3.2 Exp",maxInputTokens:163840,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.27,outputPerM:.41,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-flash",displayName:"DeepSeek V4 Flash",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.098,outputPerM:.196,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"deepseek/deepseek-v4-pro",displayName:"DeepSeek V4 Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-24",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.003625,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash",displayName:"Gemini 2.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,reasoningPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-image",displayName:"Nano Banana",maxInputTokens:32768,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.3,outputPerM:2.5,cacheReadPerM:.03,cacheWritePerM:.083333,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-flash-lite",displayName:"Gemini 2.5 Flash-Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.01,cacheWritePerM:.083333,reasoningPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro",displayName:"Gemini 2.5 Pro",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview",displayName:"Gemini 2.5 Pro Preview 06-05",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-05",modalities:{input:["pdf","image","text","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-2.5-pro-preview-05-06",displayName:"Gemini 2.5 Pro Preview 05-06",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf","audio","video"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,cacheWritePerM:.375,reasoningPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-flash-preview",displayName:"Gemini 3 Flash Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-17",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.5,outputPerM:3,cacheReadPerM:.05,cacheWritePerM:.083333,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3-pro-image-preview",displayName:"Nano Banana Pro",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-11-20",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-28",modalities:{input:["text","image"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-image-preview",displayName:"Nano Banana 2",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-02-26",modalities:{input:["image","text"],output:["text","image"]},pricing:{inputPerM:.5,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite",displayName:"Gemini 3.1 Flash Lite",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-07",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-image",displayName:"Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image)",maxInputTokens:65536,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-30",modalities:{input:["image","text"],output:["image","text"]},pricing:{inputPerM:.25,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-flash-lite-preview",displayName:"Gemini 3.1 Flash Lite Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1.5,cacheReadPerM:.025,cacheWritePerM:.083333,reasoningPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview",displayName:"Gemini 3.1 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.1-pro-preview-customtools",displayName:"Gemini 3.1 Pro Preview Custom Tools",maxInputTokens:1048756,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:2,outputPerM:12,cacheReadPerM:.2,cacheWritePerM:.375,reasoningPerM:12,contextOver200kPerM:{inputPerM:4,outputPerM:18},currency:"USD",unit:"per_million_tokens"}},{name:"google/gemini-3.5-flash",displayName:"Gemini 3.5 Flash",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-19",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:9,cacheReadPerM:.15,cacheWritePerM:.083333,reasoningPerM:9,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-2-27b-it",displayName:"Gemma 2 27B",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-07-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-12b-it",displayName:"Gemma 3 12B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-27b-it",displayName:"Gemma 3 27B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-03-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.45,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3-4b-it",displayName:"Gemma 3 4B",maxInputTokens:131072,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-3n-e4b-it",displayName:"Gemma 3n 4B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-05-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it",displayName:"Gemma 4 26B A4B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-26b-a4b-it:free",displayName:"Gemma 4 26B A4B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it",displayName:"Gemma 4 31B IT",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.22,outputPerM:.55,cacheReadPerM:.12,currency:"USD",unit:"per_million_tokens"}},{name:"google/gemma-4-31b-it:free",displayName:"Gemma 4 31B (free)",maxInputTokens:262144,supportedFileTypes:["image","video","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-clip-preview",displayName:"Lyria 3 Clip Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"google/lyria-3-pro-preview",displayName:"Lyria 3 Pro Preview",maxInputTokens:1048576,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-30",modalities:{input:["text","image"],output:["text","audio"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"gryphe/mythomax-l2-13b",displayName:"MythoMax 13B",maxInputTokens:4096,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.0-h-micro",displayName:"Granite 4.0 Micro",maxInputTokens:131e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.017,outputPerM:.112,currency:"USD",unit:"per_million_tokens"}},{name:"ibm-granite/granite-4.1-8b",displayName:"Granite 4.1 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.1,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"inception/mercury-2",displayName:"Mercury 2",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.75,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-1t",displayName:"Ling-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ling-2.6-flash",displayName:"Ling-2.6-flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.01,outputPerM:.03,cacheReadPerM:.002,currency:"USD",unit:"per_million_tokens"}},{name:"inclusionai/ring-2.6-1t",displayName:"Ring-2.6-1T",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.625,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-pi",displayName:"Inflection 3 Pi",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"inflection/inflection-3-productivity",displayName:"Inflection 3 Productivity",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-10-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-air-v2.5",displayName:"KAT-Coder-Air V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2",displayName:"KAT-Coder-Pro V2",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"kwaipilot/kat-coder-pro-v2.5",displayName:"KAT-Coder-Pro V2.5",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.74,outputPerM:2.96,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"mancer/weaver",displayName:"Weaver (alpha)",maxInputTokens:8e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-08-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-70b-instruct",displayName:"Llama 3.1 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.1-8b-instruct",displayName:"Llama 3.1 8B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-11b-vision-instruct",displayName:"Llama 3.2 11B Vision Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.345,outputPerM:.345,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-1b-instruct",displayName:"Llama 3.2 1B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.027,outputPerM:.201,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct",displayName:"Llama 3.2 3B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.33,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.2-3b-instruct:free",displayName:"Llama 3.2 3B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct",displayName:"Llama-3.3-70B-Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-3.3-70b-instruct:free",displayName:"Llama 3.3 70B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-12-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-maverick",displayName:"Llama 4 Maverick",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-4-scout",displayName:"Llama 4 Scout",maxInputTokens:1e7,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-05",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"meta-llama/llama-guard-4-12b",displayName:"Llama Guard 4 12B",maxInputTokens:163840,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-04-30",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.18,outputPerM:.18,currency:"USD",unit:"per_million_tokens"}},{name:"meta/muse-spark-1.1",displayName:"Muse Spark 1.1",maxInputTokens:1048576,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-08",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:4.25,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/phi-4",displayName:"Phi 4",maxInputTokens:16384,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.14,currency:"USD",unit:"per_million_tokens"}},{name:"microsoft/wizardlm-2-8x22b",displayName:"WizardLM-2 8x22B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-04-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.62,outputPerM:.62,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-01",displayName:"MiniMax-01",maxInputTokens:1000192,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.1,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m1",displayName:"MiniMax M1",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-17",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:2.2,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2",displayName:"MiniMax-M2",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-27",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.255,outputPerM:1.02,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2-her",displayName:"MiniMax M2-her",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.1",displayName:"MiniMax-M2.1",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-23",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.5",displayName:"MiniMax-M2.5",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.15,outputPerM:.9,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m2.7",displayName:"MiniMax-M2.7",maxInputTokens:204800,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"minimax/minimax-m3",displayName:"MiniMax-M3",maxInputTokens:1048576,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-01",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.2,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/codestral-2508",displayName:"Codestral 2508",maxInputTokens:256e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-01",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/devstral-2512",displayName:"Devstral 2",maxInputTokens:262144,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-09",status:"deprecated",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-14b-2512",displayName:"Ministral 3 14B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.2,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-3b-2512",displayName:"Ministral 3 3B 2512",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/ministral-8b-2512",displayName:"Ministral 3 8B 2512",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.15,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large",displayName:"Mistral Large",maxInputTokens:128e3,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-02-26",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2407",displayName:"Mistral Large 2407",maxInputTokens:131072,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-19",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-large-2512",displayName:"Mistral Large 3",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-01",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3",displayName:"Mistral Medium 3",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-05-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3-5",displayName:"Mistral Medium 3.5",maxInputTokens:262144,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-30",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-medium-3.1",displayName:"Mistral Medium 3.1",maxInputTokens:131072,supportedFileTypes:["pdf","image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:2,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-nemo",displayName:"Mistral Nemo",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.02,outputPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-saba",displayName:"Saba",maxInputTokens:32768,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-02-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.6,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-24b-instruct-2501",displayName:"Mistral Small 3",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-2603",displayName:"Mistral Small 4",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.1-24b-instruct",displayName:"Mistral Small 3.1 24B",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-17",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.351,outputPerM:.555,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mistral-small-3.2-24b-instruct",displayName:"Mistral Small 3.2 24B",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-06-20",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/mixtral-8x22b-instruct",displayName:"Mixtral 8x22B Instruct",maxInputTokens:65536,supportedFileTypes:["pdf"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-04-17",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"mistralai/voxtral-small-24b-2507",displayName:"Voxtral Small 24B 2507",maxInputTokens:32e3,supportedFileTypes:["pdf","audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-30",modalities:{input:["text","audio","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,cacheReadPerM:.01,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2",displayName:"Kimi K2 0711",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.57,outputPerM:2.3,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-0905",displayName:"Kimi K2 0905",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2-thinking",displayName:"Kimi K2 Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-11-06",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.6,outputPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.5",displayName:"Kimi K2.5",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.57,outputPerM:2.85,cacheReadPerM:.095,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.6",displayName:"Kimi K2.6",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-21",modalities:{input:["text","image"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:4,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k2.7-code",displayName:"Kimi K2.7 Code",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-12",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.75,outputPerM:3.5,cacheReadPerM:.16,currency:"USD",unit:"per_million_tokens"}},{name:"moonshotai/kimi-k3",displayName:"Kimi K3",maxInputTokens:1048576,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-16",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,cacheReadPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-fast",displayName:"Morph V3 Fast",maxInputTokens:81920,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1.2,currency:"USD",unit:"per_million_tokens"}},{name:"morph/morph-v3-large",displayName:"Morph V3 Large",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.9,outputPerM:1.9,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-mini",displayName:"Nex-N2-Mini",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.025,outputPerM:.1,cacheReadPerM:.0025,currency:"USD",unit:"per_million_tokens"}},{name:"nex-agi/nex-n2-pro",displayName:"Nex-N2-Pro",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-08",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:1,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b",displayName:"Hermes 3 405B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-405b:free",displayName:"Hermes 3 405B Instruct (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-3-llama-3.1-70b",displayName:"Hermes 3 70B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.7,outputPerM:.7,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-405b",displayName:"Hermes 4 405B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"nousresearch/hermes-4-70b",displayName:"Hermes 4 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-08-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/llama-3.3-nemotron-super-49b-v1.5",displayName:"Llama 3.3 Nemotron Super 49B v1.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b",displayName:"Nemotron 3 Nano 30B A3B",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-30b-a3b:free",displayName:"Nemotron 3 Nano 30B A3B (free)",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-15",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",displayName:"Nemotron 3 Nano Omni (free)",maxInputTokens:256e3,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text","image","video","audio"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b",displayName:"Nemotron 3 Super 120B A12B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.21,outputPerM:.455,cacheReadPerM:.06,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-super-120b-a12b:free",displayName:"Nemotron 3 Super (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b",displayName:"Nemotron 3 Ultra 550B A55B",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:3.6,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3-ultra-550b-a55b:free",displayName:"Nemotron 3 Ultra (free)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-3.5-content-safety:free",displayName:"Nemotron 3.5 Content Safety (free)",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-06-04",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-12b-v2-vl:free",displayName:"Nemotron Nano 12B 2 VL (free)",maxInputTokens:128e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-28",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"nvidia/nemotron-nano-9b-v2:free",displayName:"Nemotron Nano 9B V2 (free)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo",displayName:"GPT-3.5-turbo",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-03-01",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-0613",displayName:"GPT-3.5 Turbo (older v0613)",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-16k",displayName:"GPT-3.5 Turbo 16k",maxInputTokens:16385,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:3,outputPerM:4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-3.5-turbo-instruct",displayName:"GPT-3.5 Turbo Instruct",maxInputTokens:4095,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-09-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.5,outputPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4",displayName:"GPT-4",maxInputTokens:8191,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:30,outputPerM:60,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo",displayName:"GPT-4 Turbo",maxInputTokens:128e3,supportedFileTypes:["image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4-turbo-preview",displayName:"GPT-4 Turbo Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:10,outputPerM:30,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1",displayName:"GPT-4.1",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-mini",displayName:"GPT-4.1 mini",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.4,outputPerM:1.6,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4.1-nano",displayName:"GPT-4.1 nano",maxInputTokens:1047576,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-14",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.4,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o",displayName:"GPT-4o",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-05-13",displayName:"GPT-4o (2024-05-13)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-05-13",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-08-06",displayName:"GPT-4o (2024-08-06)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-06",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-2024-11-20",displayName:"GPT-4o (2024-11-20)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-20",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini",displayName:"GPT-4o mini",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-2024-07-18",displayName:"GPT-4o-mini (2024-07-18)",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-07-18",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-mini-search-preview",displayName:"GPT-4o-mini Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-4o-search-preview",displayName:"GPT-4o Search Preview",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5",displayName:"GPT-5",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-chat",displayName:"GPT-5 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-08-07",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-codex",displayName:"GPT-5-Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-09-15",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image",displayName:"GPT-5 Image",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-14",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:10,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-image-mini",displayName:"GPT-5 Image Mini",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-16",modalities:{input:["pdf","image","text"],output:["image","text"]},pricing:{inputPerM:2.5,outputPerM:2,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-mini",displayName:"GPT-5 Mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-nano",displayName:"GPT-5 Nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-08-07",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:.05,outputPerM:.4,cacheReadPerM:.005,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5-pro",displayName:"GPT-5 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:120,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1",displayName:"GPT-5.1",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-chat",displayName:"GPT-5.1 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex",displayName:"GPT-5.1 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-max",displayName:"GPT-5.1 Codex Max",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:10,cacheReadPerM:.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.1-codex-mini",displayName:"GPT-5.1 Codex mini",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-11-13",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.25,outputPerM:2,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2",displayName:"GPT-5.2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-chat",displayName:"GPT-5.2 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-10",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-codex",displayName:"GPT-5.2 Codex",maxInputTokens:272e3,supportedFileTypes:["image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.2-pro",displayName:"GPT-5.2 Pro",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-12-11",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:21,outputPerM:168,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-chat",displayName:"GPT-5.3 Chat",maxInputTokens:128e3,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-03",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.3-codex",displayName:"GPT-5.3 Codex",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-02-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.75,outputPerM:14,cacheReadPerM:.175,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4",displayName:"GPT-5.4",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-image-2",displayName:"GPT-5.4 Image 2",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["image","text","pdf"],output:["image","text"]},pricing:{inputPerM:8,outputPerM:15,cacheReadPerM:2,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-mini",displayName:"GPT-5.4 mini",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.75,outputPerM:4.5,cacheReadPerM:.075,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-nano",displayName:"GPT-5.4 nano",maxInputTokens:272e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-17",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.25,cacheReadPerM:.02,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.4-pro",displayName:"GPT-5.4 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-03-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5",displayName:"GPT-5.5",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.5-pro",displayName:"GPT-5.5 Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-04-23",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:30,outputPerM:180,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna",displayName:"GPT-5.6 Luna",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-luna-pro",displayName:"GPT-5.6 Luna Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:6,cacheReadPerM:.1,cacheWritePerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol",displayName:"GPT-5.6 Sol",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-sol-pro",displayName:"GPT-5.6 Sol Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,cacheWritePerM:6.25,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra",displayName:"GPT-5.6 Terra",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-5.6-terra-pro",displayName:"GPT-5.6 Terra Pro",maxInputTokens:922e3,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-07-09",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2.5,outputPerM:15,cacheReadPerM:.25,cacheWritePerM:3.125,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio",displayName:"GPT Audio",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:2.5,outputPerM:10,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-audio-mini",displayName:"GPT Audio Mini",maxInputTokens:128e3,supportedFileTypes:["audio"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text","audio"],output:["text","audio"]},pricing:{inputPerM:.6,outputPerM:2.4,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-chat-latest",displayName:"GPT Chat Latest",maxInputTokens:4e5,supportedFileTypes:["pdf","image","document"],reasoning:!1,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-05-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-120b",displayName:"GPT OSS 120B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.037,outputPerM:.17,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b",displayName:"GPT OSS 20B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.03,outputPerM:.13,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-20b:free",displayName:"gpt-oss-20b (free)",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-05",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openai/gpt-oss-safeguard-20b",displayName:"gpt-oss-safeguard-20b",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.075,outputPerM:.3,cacheReadPerM:.0375,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1",displayName:"o1",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-05",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:15,outputPerM:60,cacheReadPerM:7.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o1-pro",displayName:"o1-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-03-19",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:150,outputPerM:600,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3",displayName:"o3",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-deep-research",displayName:"o3-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:10,outputPerM:40,cacheReadPerM:2.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini",displayName:"o3-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2024-12-20",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-mini-high",displayName:"o3 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-02-12",modalities:{input:["text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o3-pro",displayName:"o3-pro",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-06-10",modalities:{input:["text","pdf","image"],output:["text"]},pricing:{inputPerM:20,outputPerM:80,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini",displayName:"o4-mini",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-deep-research",displayName:"o4-mini-deep-research",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-06-26",modalities:{input:["pdf","image","text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"openai/o4-mini-high",displayName:"o4 Mini High",maxInputTokens:2e5,supportedFileTypes:["pdf","image","document"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2025-04-16",modalities:{input:["image","text","pdf"],output:["text"]},pricing:{inputPerM:1.1,outputPerM:4.4,cacheReadPerM:.275,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/auto",displayName:"Auto Router",maxInputTokens:2e6,supportedFileTypes:["pdf","image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2023-11-08",modalities:{input:["text","image","audio","pdf","video"],output:["text","image"]}},{name:"openrouter/bodybuilder",displayName:"Body Builder (beta)",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-12-05",modalities:{input:["text"],output:["text"]}},{name:"openrouter/free",displayName:"Free Models Router",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"openrouter/fusion",displayName:"Fusion",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]}},{name:"openrouter/pareto-code",displayName:"Pareto Code Router",maxInputTokens:2e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2026-04-21",modalities:{input:["text"],output:["text"]}},{name:"perceptron/perceptron-mk1",displayName:"Perceptron Mk1",maxInputTokens:32768,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-05-12",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.15,outputPerM:1.5,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar",displayName:"Sonar",maxInputTokens:127072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-01-27",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:1,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-deep-research",displayName:"Sonar Deep Research",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,reasoningPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro",displayName:"Sonar Pro",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-pro-search",displayName:"Sonar Pro Search",maxInputTokens:2e5,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-10-30",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:3,outputPerM:15,currency:"USD",unit:"per_million_tokens"}},{name:"perplexity/sonar-reasoning-pro",displayName:"Sonar Reasoning Pro",maxInputTokens:128e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-07",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:2,outputPerM:8,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1",displayName:"Laguna M.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.4,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-m.1:free",displayName:"Laguna M.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-28",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1",displayName:"Laguna XS 2.1",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.06,outputPerM:.12,cacheReadPerM:.03,currency:"USD",unit:"per_million_tokens"}},{name:"poolside/laguna-xs-2.1:free",displayName:"Laguna XS 2.1 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-02",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-72b-instruct",displayName:"Qwen2.5 72B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-09-19",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.36,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-7b-instruct",displayName:"Qwen2.5 7B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-10-16",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-2.5-coder-32b-instruct",displayName:"Qwen2.5 Coder 32B Instruct",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-11-11",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.66,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus",displayName:"Qwen Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-01-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheReadPerM:.052,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28",displayName:"Qwen Plus 0728",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen-plus-2025-07-28:thinking",displayName:"Qwen Plus 0728 (thinking)",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.26,outputPerM:.78,cacheWritePerM:.325,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen2.5-vl-72b-instruct",displayName:"Qwen2.5 VL 72B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-02-01",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.8,outputPerM:1,cacheReadPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-14b",displayName:"Qwen3 14B",maxInputTokens:131702,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b",displayName:"Qwen3 235B-A22B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.455,outputPerM:1.82,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-2507",displayName:"Qwen3 235B A22B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.09,outputPerM:.55,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-235b-a22b-thinking-2507",displayName:"Qwen3 235B A22B Thinking 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-25",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1495,outputPerM:1.495,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b",displayName:"Qwen3 30B A3B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.12,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-instruct-2507",displayName:"Qwen3 30B A3B Instruct 2507",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-30b-a3b-thinking-2507",displayName:"Qwen3 30B A3B Thinking 2507",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-32b",displayName:"Qwen3 32B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.08,outputPerM:.28,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-8b",displayName:"Qwen3 8B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder",displayName:"Qwen3 Coder 480B A35B",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-30b-a3b-instruct",displayName:"Qwen3-Coder 30B-A3B Instruct",maxInputTokens:16e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.07,outputPerM:.27,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-flash",displayName:"Qwen3 Coder Flash",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.195,outputPerM:.975,cacheReadPerM:.039,cacheWritePerM:.24375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-next",displayName:"Qwen3 Coder Next",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-04",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.11,outputPerM:.8,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder-plus",displayName:"Qwen3 Coder Plus",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:3.25,cacheReadPerM:.13,cacheWritePerM:.8125,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-coder:free",displayName:"Qwen3 Coder 480B A35B (free)",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max",displayName:"Qwen3 Max",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,cacheReadPerM:.156,cacheWritePerM:.975,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-max-thinking",displayName:"Qwen3 Max Thinking",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.78,outputPerM:3.9,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct",displayName:"Qwen3-Next 80B-A3B Instruct",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:1.1,cacheReadPerM:.07,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-instruct:free",displayName:"Qwen3 Next 80B A3B Instruct (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-next-80b-a3b-thinking",displayName:"Qwen3-Next 80B-A3B (Thinking)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.0975,outputPerM:.78,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-instruct",displayName:"Qwen3 VL 235B A22B Instruct",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.21,outputPerM:1.9,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-235b-a22b-thinking",displayName:"Qwen3 VL 235B A22B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.6,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-instruct",displayName:"Qwen3 VL 30B A3B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.52,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-30b-a3b-thinking",displayName:"Qwen3 VL 30B A3B Thinking",maxInputTokens:131072,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-06",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.13,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-32b-instruct",displayName:"Qwen3 VL 32B Instruct",maxInputTokens:262144,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-23",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.104,outputPerM:.416,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-instruct",displayName:"Qwen3 VL 8B Instruct",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:.455,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3-vl-8b-thinking",displayName:"Qwen3 VL 8B Thinking",maxInputTokens:256e3,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-10-14",modalities:{input:["image","text"],output:["text"]},pricing:{inputPerM:.117,outputPerM:1.365,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-122b-a10b",displayName:"Qwen3.5 122B-A10B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:2.08,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-27b",displayName:"Qwen3.5 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.195,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-35b-a3b",displayName:"Qwen3.5 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-397b-a17b",displayName:"Qwen3.5 397B-A17B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-15",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:3,cacheReadPerM:.225,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-9b",displayName:"Qwen3.5 9B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-23",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-flash-02-23",displayName:"Qwen3.5-Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-25",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.065,outputPerM:.26,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-02-15",displayName:"Qwen3.5 Plus 2026-02-15",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-16",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.26,outputPerM:1.56,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.5-plus-20260420",displayName:"Qwen3.5 Plus 2026-04-20",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:1.8,cacheWritePerM:.375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-27b",displayName:"Qwen3.6 27B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.45,outputPerM:2.7,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-35b-a3b",displayName:"Qwen3.6 35B-A3B",maxInputTokens:262144,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.14,outputPerM:1,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-flash",displayName:"Qwen3.6 Flash",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-27",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.1875,outputPerM:1.125,cacheWritePerM:.234375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-max-preview",displayName:"Qwen3.6 Max Preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.04,outputPerM:6.24,cacheWritePerM:1.3,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.6-plus",displayName:"Qwen3.6 Plus",maxInputTokens:1e6,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-02",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.325,outputPerM:1.95,cacheWritePerM:.40625,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-max",displayName:"Qwen3.7 Max",maxInputTokens:1e6,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1.475,outputPerM:4.425,cacheReadPerM:.295,cacheWritePerM:1.84375,currency:"USD",unit:"per_million_tokens"}},{name:"qwen/qwen3.7-plus",displayName:"Qwen3.7 Plus",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-02",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.32,outputPerM:1.28,cacheReadPerM:.064,cacheWritePerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-edge",displayName:"Reka Edge",maxInputTokens:16384,supportedFileTypes:["image","video"],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-20",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"rekaai/reka-flash-3",displayName:"Reka Flash 3",maxInputTokens:65536,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-12",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-apply-3",displayName:"Relace Apply 3",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!1,supportsToolCall:!1,releaseDate:"2025-09-26",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:1.25,currency:"USD",unit:"per_million_tokens"}},{name:"relace/relace-search",displayName:"Relace Search",maxInputTokens:256e3,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:1,outputPerM:3,currency:"USD",unit:"per_million_tokens"}},{name:"sakana/fugu-ultra",displayName:"Fugu Ultra",maxInputTokens:1e6,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!1,supportsToolCall:!0,releaseDate:"2026-06-24",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:5,outputPerM:30,cacheReadPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3-lunaris-8b",displayName:"Llama 3 8B Lunaris",maxInputTokens:8192,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-08-13",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.04,outputPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.1-euryale-70b",displayName:"Llama 3.1 Euryale 70B v2.2",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-08-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.85,outputPerM:.85,currency:"USD",unit:"per_million_tokens"}},{name:"sao10k/l3.3-euryale-70b",displayName:"Llama 3.3 Euryale 70B",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-12-18",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.65,outputPerM:.75,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.5-flash",displayName:"Step 3.5 Flash",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-29",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.1,outputPerM:.3,currency:"USD",unit:"per_million_tokens"}},{name:"stepfun/step-3.7-flash",displayName:"Step 3.7 Flash",maxInputTokens:256e3,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-05-29",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.2,outputPerM:1.15,cacheReadPerM:.04,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hunyuan-a13b-instruct",displayName:"Hunyuan A13B Instruct",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-07-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.14,outputPerM:.57,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3",displayName:"Hy3",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.2,outputPerM:.8,cacheReadPerM:.05,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3-preview",displayName:"Hy3 preview",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-20",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.063,outputPerM:.21,cacheReadPerM:.021,currency:"USD",unit:"per_million_tokens"}},{name:"tencent/hy3:free",displayName:"Hy3 (free)",maxInputTokens:262144,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-06",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:0,outputPerM:0,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/cydonia-24b-v4.1",displayName:"Cydonia 24B V4.1",maxInputTokens:131072,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-09-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.5,cacheReadPerM:.15,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/rocinante-12b",displayName:"Rocinante 12B",maxInputTokens:65536,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2024-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.25,outputPerM:.5,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/skyfall-36b-v2",displayName:"Skyfall 36B V2",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2025-03-10",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.55,outputPerM:.8,cacheReadPerM:.25,currency:"USD",unit:"per_million_tokens"}},{name:"thedrummer/unslopnemo-12b",displayName:"UnslopNemo 12B",maxInputTokens:32768,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2024-11-08",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.4,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"undi95/remm-slerp-l2-13b",displayName:"ReMM SLERP 13B",maxInputTokens:6144,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2023-07-22",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.45,outputPerM:.65,currency:"USD",unit:"per_million_tokens"}},{name:"upstage/solar-pro-3",displayName:"Solar Pro 3",maxInputTokens:128e3,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-27",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.15,outputPerM:.6,cacheReadPerM:.015,currency:"USD",unit:"per_million_tokens"}},{name:"writer/palmyra-x5",displayName:"Palmyra X5",maxInputTokens:104e4,supportedFileTypes:[],reasoning:!1,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-01-21",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:6,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20",displayName:"Grok 4.20",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.20-multi-agent",displayName:"Grok 4.20 Multi-Agent",maxInputTokens:2e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!1,releaseDate:"2026-03-31",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.3",displayName:"Grok 4.3",maxInputTokens:1e6,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-17",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1.25,outputPerM:2.5,cacheReadPerM:.2,contextOver200kPerM:{inputPerM:2.5,outputPerM:5},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-4.5",displayName:"Grok 4.5",maxInputTokens:5e5,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-07-08",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:2,outputPerM:6,cacheReadPerM:.5,contextOver200kPerM:{inputPerM:4,outputPerM:12},currency:"USD",unit:"per_million_tokens"}},{name:"x-ai/grok-build-0.1",displayName:"Grok Build 0.1",maxInputTokens:256e3,supportedFileTypes:["pdf","image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-16",modalities:{input:["text","image","pdf"],output:["text"]},pricing:{inputPerM:1,outputPerM:2,cacheReadPerM:.2,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5",displayName:"MiMo-V2.5",maxInputTokens:1048576,supportedFileTypes:["image","audio","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text","image","audio","video"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.14,outputPerM:.28,cacheReadPerM:.0028,currency:"USD",unit:"per_million_tokens"}},{name:"xiaomi/mimo-v2.5-pro",displayName:"MiMo-V2.5-Pro",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.435,outputPerM:.87,cacheReadPerM:.0036,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5",displayName:"GLM-4.5",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.6,outputPerM:2.2,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5-air",displayName:"GLM-4.5-Air",maxInputTokens:131072,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-07-28",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.13,outputPerM:.85,cacheReadPerM:.025,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.5v",displayName:"GLM-4.5V",maxInputTokens:65536,supportedFileTypes:["image"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-08-11",modalities:{input:["text","image"],output:["text"]},pricing:{inputPerM:.6,outputPerM:1.8,cacheReadPerM:.11,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6",displayName:"GLM-4.6",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-09-30",modalities:{input:["text"],output:["text"]},pricing:{inputPerM:.5,outputPerM:2,cacheReadPerM:.1,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.6v",displayName:"GLM-4.6V",maxInputTokens:131072,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-08",modalities:{input:["text","image","video"],output:["text"]},pricing:{inputPerM:.3,outputPerM:.9,cacheReadPerM:.055,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7",displayName:"GLM-4.7",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2025-12-22",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.4,outputPerM:1.75,cacheReadPerM:.08,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-4.7-flash",displayName:"GLM-4.7-Flash",maxInputTokens:2e5,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-01-19",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_details"},supportsInterleaved:!0,pricing:{inputPerM:.0605,outputPerM:.4,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5",displayName:"GLM-5",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-02-12",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.95,outputPerM:3.15,cacheReadPerM:.19,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5-turbo",displayName:"GLM-5-Turbo",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-03-16",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.1",displayName:"GLM-5.1",maxInputTokens:202752,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-07",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.966,outputPerM:3.036,cacheReadPerM:.1794,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5.2",displayName:"GLM-5.2",maxInputTokens:1048576,supportedFileTypes:[],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-06-13",modalities:{input:["text"],output:["text"]},interleaved:{field:"reasoning_content"},supportsInterleaved:!0,pricing:{inputPerM:.9338,outputPerM:2.9348,cacheReadPerM:.17342,currency:"USD",unit:"per_million_tokens"}},{name:"z-ai/glm-5v-turbo",displayName:"GLM-5V-Turbo",maxInputTokens:202752,supportedFileTypes:["image","video"],reasoning:!0,supportsTemperature:!0,supportsToolCall:!0,releaseDate:"2026-04-01",modalities:{input:["image","text","video"],output:["text"]},pricing:{inputPerM:1.2,outputPerM:4,cacheReadPerM:.24,currency:"USD",unit:"per_million_tokens"}}]},ms={openai:{env:["OPENAI_API_KEY"],npm:"@ai-sdk/openai",doc:"https://platform.openai.com/docs/models"},anthropic:{env:["ANTHROPIC_API_KEY"],npm:"@ai-sdk/anthropic",doc:"https://docs.anthropic.com/en/docs/about-claude/models"},google:{env:["GOOGLE_API_KEY","GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],npm:"@ai-sdk/google",doc:"https://ai.google.dev/gemini-api/docs/models"},groq:{env:["GROQ_API_KEY"],npm:"@ai-sdk/groq",doc:"https://console.groq.com/docs/models"},xai:{env:["XAI_API_KEY"],npm:"@ai-sdk/xai",doc:"https://docs.x.ai/docs/models"},cohere:{env:["COHERE_API_KEY"],npm:"@ai-sdk/cohere",doc:"https://docs.cohere.com/docs/models"},minimax:{env:["MINIMAX_API_KEY"],npm:"@ai-sdk/anthropic",api:"https://api.minimax.io/anthropic/v1",doc:"https://platform.minimax.io/docs/guides/quickstart"},glm:{env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://open.bigmodel.cn/api/paas/v4",doc:"https://docs.z.ai/guides/overview/pricing"},openrouter:{env:["OPENROUTER_API_KEY"],npm:"@openrouter/ai-sdk-provider",api:"https://openrouter.ai/api/v1",doc:"https://openrouter.ai/models"},vertex:{env:["GOOGLE_VERTEX_PROJECT","GOOGLE_VERTEX_LOCATION","GOOGLE_APPLICATION_CREDENTIALS"],npm:"@ai-sdk/google-vertex",doc:"https://cloud.google.com/vertex-ai/generative-ai/docs/models"},bedrock:{env:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_REGION","AWS_BEARER_TOKEN_BEDROCK"],npm:"@ai-sdk/amazon-bedrock",doc:"https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html"}},x$={openai:[{name:"gpt-4o-audio-preview",displayName:"GPT-4o Audio Preview",maxInputTokens:128e3,supportedFileTypes:["audio"],pricing:{inputPerM:2.5,outputPerM:10,cacheReadPerM:1.25,currency:"USD",unit:"per_million_tokens"}}]},yo=class extends Error{code;constructor(e,t){super(t),this.name="LlmCatalogError",this.code=e}};function NM(e,t){return new yo("MODEL_UNKNOWN",`Unknown model '${t}' for provider '${e}'`)}function PM(e){return new yo("MODEL_UNKNOWN",`Could not infer provider for model '${e}'`)}var v$=["inputPerM","outputPerM","cacheReadPerM","cacheWritePerM","reasoningPerM","inputAudioPerM","outputAudioPerM"],b$=["inputTokensAbove","inputPerM","outputPerM","cacheReadPerM","cacheWritePerM"],T$=["default","reasoning","supportsTemperature","supportsInterleaved","supportsToolCall"],_$=["displayName","releaseDate","status"],k$=["text","audio","image","video","pdf"];function yb(e){return R$(e).toLowerCase()}function w$(e,t){if(!t||t.length===0)return e;const n=[...e],r=new Map;for(let i=0;i<n.length;i++)r.set(n[i].name.toLowerCase(),i);for(const i of t){const s=i.name.toLowerCase(),o=r.get(s);o!=null?n[o]=i:(r.set(s,n.length),n.push(i))}return n}var Qp=["pdf","image","audio","video","document"],S$={openai:{models:w$(Ki.openai,x$.openai),baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.openai},"openai-compatible":{models:[],baseURLSupport:"required",supportedFileTypes:Qp,supportsCustomModels:!0},anthropic:{models:Ki.anthropic,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.anthropic},google:{models:Ki.google,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.google},groq:{models:Ki.groq,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.groq},xai:{models:Ki.xai,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.xai},cohere:{models:Ki.cohere,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.cohere},minimax:{models:Ki.minimax,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.minimax},glm:{models:Ki.glm,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.glm},openrouter:{models:Ki.openrouter,baseURLSupport:"none",supportedFileTypes:Qp,supportsCustomModels:!0,supportsAllRegistryModels:!0,modelsDev:ms.openrouter},litellm:{models:[],baseURLSupport:"required",supportedFileTypes:Qp,supportsCustomModels:!0},glama:{models:[],baseURLSupport:"none",supportedFileTypes:Qp,supportsCustomModels:!0},vertex:{models:Ki.vertex,baseURLSupport:"none",supportedFileTypes:[],modelsDev:ms.vertex},bedrock:{models:Ki.bedrock,baseURLSupport:"none",supportedFileTypes:[],supportsCustomModels:!0,modelsDev:ms.bedrock},local:{models:[],baseURLSupport:"none",supportedFileTypes:["image"],supportsCustomModels:!0},ollama:{models:[],baseURLSupport:"optional",supportedFileTypes:["image"],supportsCustomModels:!0},"dexto-nova":{models:Ki["dexto-nova"],baseURLSupport:"optional",supportedFileTypes:Qp,supportsCustomModels:!0,supportsAllRegistryModels:!0}},M$=class{#e;getReasoningProfile;constructor(e,t={}){EM(e),this.#e=CM(e),this.getReasoningProfile=t.getReasoningProfile}replaceProviders(e){EM(e),this.#e=CM(e)}getProvider(e){return TE(this.#e[e])}getModel(e,t){const n=Xp(this.#e,e,t);return n===null?null:xd(n)}getModelCapabilities(e,t){const n=this.getModel(e,t);return n===null?null:{maxInputTokens:n.maxInputTokens,reasoning:n.reasoning===!0,supportedFileTypes:[...n.supportedFileTypes],supportsInterleaved:n.supportsInterleaved===!0,supportsTemperature:n.supportsTemperature===!0,supportsToolCall:n.supportsToolCall===!0,...n.modalities?{modalities:{input:[...n.modalities.input],output:[...n.modalities.output]}}:{}}}getSupportedModels(e){return this.#e[e].models.map(t=>t.name)}getDefaultModelForProvider(e){const t=this.#e[e].models,n=t.find(r=>r.default)?.name;return n||(t.length===0?null:[...t].sort((r,i)=>r.name.localeCompare(i.name))[0]?.name??null)}getMaxInputTokensForModel(e,t,n){const r=Xp(this.#e,e,t);if(!r){const i=this.getSupportedModels(e).join(", ");throw n?.error(`Model '${t}' not found for provider '${e}' in LLM registry. Supported models: ${i}`),NM(e,t)}return n?.debug(`Found max tokens for ${e}/${t}: ${r.maxInputTokens}`),r.maxInputTokens}getModelPricing(e,t){if(this.acceptsAnyModel(e))return;const n=Xp(this.#e,e,t);return n?.pricing?xd(n).pricing:void 0}isReasoningCapableModel(e,t){const n=(()=>{if(e.includes("/"))return"openrouter";if(t)return t;try{return this.getProviderFromModel(e)}catch{return}})();if(n){const s=Xp(this.#e,n,e);if(s?.reasoning===!0)return!0;if(s?.reasoning===!1)return!1}const i=(e.includes("/")?e.split("/").pop()??e:e).toLowerCase();return!!(i.includes("codex")||i.startsWith("o1")||i.startsWith("o3")||i.startsWith("o4")||i.includes("gpt-5")||i.includes("gemini-2.5")||i.includes("gemini-3"))}getProviderFromModel(e){if(e.includes("/"))throw PM(e);const t=yb(e);for(const n of ba)if(this.#e[n].models.some(i=>i.name.toLowerCase()===t))return n;throw PM(e)}acceptsAnyModel(e){return this.#e[e].models.length===0}supportsCustomModels(e){return this.#e[e].supportsCustomModels===!0}hasAllRegistryModelsSupport(e){return this.#e[e].supportsAllRegistryModels===!0}supportsBaseURL(e){return this.#e[e].baseURLSupport!=="none"}isValidProviderModel(e,t){const n=yb(t);return this.#e[e].models.some(r=>r.name.toLowerCase()===n)}getSupportedFileTypesForModel(e,t){const n=this.#e[e];if(this.acceptsAnyModel(e))return[...n.supportedFileTypes];const r=Xp(this.#e,e,t);if(r)return[...r.supportedFileTypes];if(this.supportsCustomModels(e))return[...n.supportedFileTypes];throw NM(e,t)}getAllModelsForProvider(e){const t=this.#e[e],n=t.models.map(s=>({...xd(s),originalProvider:e}));if(!t.supportsAllRegistryModels||e==="openrouter")return n;const r=new Set(n.map(s=>s.name.toLowerCase())),i=this.#e.openrouter.models.filter(s=>!r.has(s.name.toLowerCase())).map(s=>({...xd(s),originalProvider:"openrouter"}));return[...n,...i]}};function N$(e,t={}){return new M$(e,t)}N$(S$);function CM(e){const t={...e};for(const n of ba)t[n]=TE(e[n]);return t}function EM(e){for(const t of ba){const n=e[t];if(!Io(n)||!Array.isArray(n.models)||!["none","optional","required"].includes(n.baseURLSupport)||!Array.isArray(n.supportedFileTypes)||!n.supportedFileTypes.every(DM))throw new yo("REGISTRY_INVALID",`Invalid registry provider definition for '${t}'`);if(n.supportsCustomModels!==void 0&&typeof n.supportsCustomModels!="boolean"||n.supportsAllRegistryModels!==void 0&&typeof n.supportsAllRegistryModels!="boolean"||n.modelsDev!==void 0&&!P$(n.modelsDev))throw new yo("REGISTRY_INVALID",`Invalid registry provider metadata for '${t}'`);const r=new Set;for(const[i,s]of n.models.entries()){const o=Io(s)?s:null,c=o&&typeof o.name=="string"?o.name:`<index ${i}>`;if(!o||typeof o.name!="string"||o.name.trim().length===0||!Number.isInteger(o.maxInputTokens)||o.maxInputTokens<0||!Array.isArray(o.supportedFileTypes)||!o.supportedFileTypes.every(DM))throw new yo("REGISTRY_INVALID",`Invalid registry model definition for '${t}/${c}'`);const d=o.name.toLowerCase();if(r.has(d))throw new yo("REGISTRY_INVALID",`Duplicate registry model definition for '${t}/${o.name}'`);if(r.add(d),!C$(o))throw new yo("REGISTRY_INVALID",`Invalid registry metadata for '${t}/${o.name}'`);if(!I$(o.pricing))throw new yo("REGISTRY_INVALID",`Invalid registry pricing for '${t}/${c}'`)}}}function DM(e){return typeof e=="string"&&y$.some(t=>t===e)}function Io(e){return typeof e=="object"&&e!==null}function Cu(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0}function P$(e){return!Io(e)||!Array.isArray(e.env)||!e.env.every(Wd)?!1:["npm","api","doc"].every(t=>e[t]===void 0||Wd(e[t]))}function C$(e){return!(!T$.every(t=>e[t]===void 0||typeof e[t]=="boolean")||!_$.every(t=>e[t]===void 0||Wd(e[t]))||e.modalities!==void 0&&!E$(e.modalities)||e.providerMetadata!==void 0&&!D$(e.providerMetadata)||e.interleaved!==void 0&&!j$(e.interleaved))}function E$(e){return!Io(e)||!Array.isArray(e.input)||!Array.isArray(e.output)?!1:e.input.every(jM)&&e.output.every(jM)}function D$(e){return Io(e)&&["npm","api"].every(t=>e[t]===void 0||Wd(e[t]))}function j$(e){return e===!0||Io(e)&&(e.field===void 0||Wd(e.field))}function jM(e){return typeof e=="string"&&k$.some(t=>t===e)}function Wd(e){return typeof e=="string"}function I$(e){if(e===void 0)return!0;if(!Io(e)||e.currency!==void 0&&e.currency!=="USD"||e.unit!==void 0&&e.unit!=="per_million_tokens")return!1;for(const r of v$)if(r in e&&!Cu(e[r]))return!1;if(!Cu(e.inputPerM)||!Cu(e.outputPerM))return!1;const t=e.contextOver200kPerM;if(t===void 0)return!0;if(!Io(t))return!1;const n=t.inputTokensAbove;if(n!==void 0&&(typeof n!="number"||!Number.isInteger(n)||n<0))return!1;for(const r of b$)if(r in t&&!Cu(t[r]))return!1;return Cu(t.inputPerM)&&Cu(t.outputPerM)}function Xp(e,t,n){const r=yb(n),i=e[t].models.find(s=>s.name.toLowerCase()===r);return i||(t!=="openrouter"&&e[t].supportsAllRegistryModels&&n.includes("/")?e.openrouter.models.find(s=>s.name.toLowerCase()===r)??null:null)}function xd(e){return{...e,supportedFileTypes:[...e.supportedFileTypes],...e.modalities?{modalities:{input:[...e.modalities.input],output:[...e.modalities.output]}}:{},...e.pricing?{pricing:{...e.pricing,...e.pricing.contextOver200kPerM?{contextOver200kPerM:{...e.pricing.contextOver200kPerM}}:{}}}:{},...e.providerMetadata?{providerMetadata:{...e.providerMetadata}}:{},...e.interleaved&&e.interleaved!==!0?{interleaved:{...e.interleaved}}:{}}}function TE(e){return{...e,models:e.models.map(xd),supportedFileTypes:[...e.supportedFileTypes],...e.modelsDev?{modelsDev:{...e.modelsDev,env:[...e.modelsDev.env]}}:{}}}function R$(e){return e.startsWith("eu.")||e.startsWith("us.")?e.slice(3):e.startsWith("global.")?e.slice(7):e}var _E=(e=>(e.SCHEMA_VALIDATION="mcp_schema_validation",e.COMMAND_MISSING="mcp_command_missing",e.DUPLICATE_NAME="mcp_duplicate_name",e.CONNECTION_FAILED="mcp_connection_failed",e.DISCONNECTION_FAILED="mcp_disconnection_failed",e.AUTH_REQUIRED="mcp_auth_required",e.PROTOCOL_ERROR="mcp_protocol_error",e.SERVER_NOT_FOUND="mcp_server_not_found",e.TOOL_NOT_FOUND="mcp_tool_not_found",e.PROMPT_NOT_FOUND="mcp_prompt_not_found",e.RESOURCE_NOT_FOUND="mcp_resource_not_found",e))(_E||{}),kE={};const A$=["stdio","sse","http"],G1=["strict","lenient"],H1="lenient",O$=or({type:El("stdio"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),command:ic().superRefine((e,t)=>{e.length===0&&t.addIssue({code:f$.custom,message:"Stdio server requires a non-empty command",params:{code:_E.COMMAND_MISSING,scope:yE.MCP,type:xE.USER}})}),args:As(ic()).default([]).describe("Array of arguments for the command (e.g., ['script.js'])"),env:um(Jt(),ic()).default({}).describe("Optional environment variables for the server process"),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),F$=or({type:El("sse"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),url:bE(kE).describe("URL for the SSE server endpoint"),headers:um(Jt(),ic()).default({}),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),U$=or({type:El("http"),enabled:Dc().default(!0).describe("Whether this server is enabled (disabled servers are not connected)"),url:bE(kE).describe("URL for the HTTP server"),headers:um(Jt(),ic()).default({}),timeout:q1().int().positive().default(3e4),connectionMode:Hs(G1).default(H1)}).strict(),L$=fE("type",[O$,F$,U$]).superRefine((e,t)=>{}).brand();um(Jt(),L$).describe("A dictionary of server configurations, keyed by server name").brand();const Pd={APPROVED:"approved",DENIED:"denied",CANCELLED:"cancelled"},z$="modulepreload",$$=function(e){return"/"+e},IM={},B$=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let d=function(m){return Promise.all(m.map(f=>Promise.resolve(f).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=o?.nonce||o?.getAttribute("nonce");i=d(n.map(m=>{if(m=$$(m),m in IM)return;IM[m]=!0;const f=m.endsWith(".css"),g=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${g}`))return;const y=document.createElement("link");if(y.rel=f?"stylesheet":z$,f||(y.as="script"),y.crossOrigin="",y.href=m,c&&y.setAttribute("nonce",c),document.head.appendChild(y),f)return new Promise((x,k)=>{y.addEventListener("load",x),y.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(o){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=o,window.dispatchEvent(c),!c.defaultPrevented)throw o}return i.then(o=>{for(const c of o||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})},q$=or({category:Jt().min(1),label:or({running:Jt().min(1),completed:Jt().min(1)}).strict(),summary:or({verb:Jt().min(1),singular:Jt().min(1),plural:Jt().min(1)}).strict()}).strict(),RM=or({label:Jt(),display:Jt(),kind:Hs(["path","command","url","text","json"]).optional(),sensitive:Dc().optional()}).strict(),wE=fE("type",[or({type:El("setFlag"),flag:Hs(["autoApproveEdits","planModeActive","planModeInitialized"]),value:Dc()}).strict(),or({type:El("toast"),kind:Hs(["info","warning","success","error"]),message:Jt()}).strict()]),G$=mE([or({id:Jt(),label:Jt(),kind:Hs(["primary","secondary","danger"]).optional(),responseData:um(Jt(),hb()).optional(),uiEffects:As(wE).optional()}).strict(),or({id:Jt(),label:Jt(),kind:El("danger").optional(),denyWithFeedback:or({placeholder:Jt().optional(),messageTemplate:Jt().optional()}).strict()}).strict()]),H$=or({version:El(1),activity:q$.optional(),source:or({type:Hs(["local","mcp"]),mcpServerName:Jt().optional()}).strict().optional(),header:or({title:Jt().optional(),argsText:Jt().optional()}).strict().optional(),chips:As(or({kind:Hs(["neutral","info","warning","danger","success"]),text:Jt()}).strict()).optional(),args:or({summary:As(RM).optional(),groups:As(or({id:Jt(),label:Jt(),collapsedByDefault:Dc().optional(),items:As(RM)}).strict()).optional()}).strict().optional(),capabilities:As(Jt()).optional(),approval:or({actions:As(G$).optional()}).strict().optional(),result:or({summaryText:Jt().optional(),uiEffects:As(wE).optional()}).strict().optional()}).strict();function V$(e){return H$.safeParse(e).success}function K$(e){const t=[],n=new RegExp("(?:^|(?<=\\s))@(?:(<[^>]+>)|([a-zA-Z0-9_-]+):([a-zA-Z0-9._/-]+)|([a-zA-Z0-9._/-]+))(?![a-zA-Z0-9@.])","g");let r;for(;(r=n.exec(e))!==null;){const[i,s,o,c,d]=r;s?t.push({originalRef:i,type:"uri",identifier:s.slice(1,-1)}):o&&c?t.push({originalRef:i,type:"server-scoped",serverName:o,identifier:c}):d&&t.push({originalRef:i,type:"name",identifier:d})}return t}function W$(e,t){const n=e.map(r=>({...r}));for(const r of n)switch(r.type){case"uri":{if(t[r.identifier])r.resourceUri=r.identifier;else{const i=Z$(t,r.identifier);i&&(r.resourceUri=i)}break}case"server-scoped":{const i=Y$(t,r.serverName,r.identifier);i&&(r.resourceUri=i);break}case"name":{const i=Q$(t,r.identifier);i&&(r.resourceUri=i);break}}return n}function Z$(e,t){const n=t.trim().toLowerCase();for(const[r,i]of Object.entries(e)){const s=typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0;if(s&&s.toLowerCase()===n)return r}for(const[r,i]of Object.entries(e)){const s=typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0;if(s&&s.toLowerCase().includes(n))return r}}function Y$(e,t,n){const r=n.trim().toLowerCase(),i=Object.entries(e).filter(([,s])=>s.serverName===t);for(const[s,o]of i){if(!o.name)continue;const c=o.name.trim().toLowerCase();if(c===r||c.includes(r))return s}for(const[s,o]of i)if((typeof o.metadata?.originalUri=="string"?o.metadata.originalUri:void 0)?.toLowerCase().includes(r)||s.toLowerCase().includes(r))return s}function Q$(e,t){const n=t.trim().toLowerCase();for(const[r,i]of Object.entries(e)){if(!i.name)continue;const s=i.name.trim().toLowerCase();if(s===n||s.includes(n))return r}for(const[r,i]of Object.entries(e))if((typeof i.metadata?.originalUri=="string"?i.metadata.originalUri:void 0)?.toLowerCase().includes(n)||r.toLowerCase().includes(n))return r}const xb={messages:[],streamingMessage:null,processing:!1,error:null,loadingHistory:!1};function da(e,t){const n=e.get(t);return n||{...xb}}function wg(){return`msg-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}const zt=Da()((e,t)=>({sessions:new Map,addMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:[...o.messages,r]}),{sessions:s}})},updateMessage:(n,r,i)=>{e(s=>{const o=new Map(s.sessions),c=o.get(n);if(!c)return s;const d=c.messages.findIndex(f=>f.id===r);if(d===-1)return s;const m=[...c.messages];return m[d]={...m[d],...i},o.set(n,{...c,messages:m}),{sessions:o}})},removeMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=s.get(n);return o?(s.set(n,{...o,messages:o.messages.filter(c=>c.id!==r)}),{sessions:s}):i})},clearMessages:n=>{e(r=>{const i=new Map(r.sessions),s=i.get(n);return s?(i.set(n,{...s,messages:[],streamingMessage:null}),{sessions:i}):r})},setMessages:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:r}),{sessions:s}})},initFromHistory:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,messages:r,processing:!1,error:null,streamingMessage:null}),{sessions:s}})},setStreamingMessage:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,streamingMessage:r}),{sessions:s}})},appendToStreamingMessage:(n,r,i="text")=>{e(s=>{const o=new Map(s.sessions),c=da(o,n);if(!c.streamingMessage)return s;const d=c.streamingMessage;let m;if(i==="reasoning")m={...d,reasoning:(d.reasoning||"")+r};else{const f=typeof d.content=="string"?d.content:"";m={...d,content:f+r}}return o.set(n,{...c,streamingMessage:m}),{sessions:o}})},finalizeStreamingMessage:(n,r={})=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);if(!o.streamingMessage)return i;const c={...o.streamingMessage,...r},d=o.messages??[];return s.set(n,{...o,messages:[...d,c],streamingMessage:null}),{sessions:s}})},setProcessing:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,processing:r}),{sessions:s}})},setError:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,error:r}),{sessions:s}})},setLoadingHistory:(n,r)=>{e(i=>{const s=new Map(i.sessions),o=da(s,n);return s.set(n,{...o,loadingHistory:r}),{sessions:s}})},initSession:n=>{e(r=>{if(r.sessions.has(n))return r;const i=new Map(r.sessions);return i.set(n,{...xb}),{sessions:i}})},removeSession:n=>{e(r=>{const i=new Map(r.sessions);return i.delete(n),{sessions:i}})},getSessionState:n=>t().sessions.get(n)??{...xb},getMessages:n=>t().getSessionState(n).messages,getMessage:(n,r)=>t().getMessages(n).find(i=>i.id===r),getMessageByToolCallId:(n,r)=>t().getMessages(n).find(i=>i.toolCallId===r)})),X$={status:"idle",connectionStatus:"disconnected",lastHeartbeat:null,activeSessionId:null,currentToolName:null,connectionError:null,reconnectAttempts:0},hi=Da()((e,t)=>({...X$,setStatus:(n,r)=>{e({status:n,activeSessionId:r??(n==="idle"?null:t().activeSessionId),currentToolName:n==="executing_tool"?t().currentToolName:null})},setThinking:n=>{e({status:"thinking",activeSessionId:n,currentToolName:null})},setExecutingTool:(n,r)=>{e({status:"executing_tool",activeSessionId:n,currentToolName:r})},setAwaitingApproval:n=>{e({status:"awaiting_approval",activeSessionId:n,currentToolName:null})},setIdle:()=>{e({status:"idle",activeSessionId:null,currentToolName:null})},setConnectionStatus:n=>{e({connectionStatus:n})},setConnected:()=>{e({connectionStatus:"connected",connectionError:null,reconnectAttempts:0,lastHeartbeat:Date.now()})},setDisconnected:n=>{e({connectionStatus:"disconnected",connectionError:n??null})},setReconnecting:()=>{e({connectionStatus:"reconnecting"})},updateHeartbeat:()=>{e({lastHeartbeat:Date.now()})},incrementReconnectAttempts:()=>{e(n=>({reconnectAttempts:n.reconnectAttempts+1}))},resetReconnectAttempts:()=>{e({reconnectAttempts:0})},isBusy:()=>t().status!=="idle",isConnected:()=>t().connectionStatus==="connected",isActiveForSession:n=>{const r=t();return r.status!=="idle"&&r.activeSessionId===n},getHeartbeatAge:()=>{const{lastHeartbeat:n}=t();return n===null?null:Date.now()-n}}));function J$(e){return e===Pd.APPROVED||e===Pd.DENIED||e===Pd.CANCELLED}const V1=Da((e,t)=>({pendingApproval:null,queue:[],addApproval:n=>{e(r=>r.pendingApproval?{queue:[...r.queue,n]}:{pendingApproval:n})},processResponse:n=>{e(r=>{if(r.pendingApproval?.approvalId!==n.approvalId)return r;if(J$(n.status)){const[i,...s]=r.queue;return{pendingApproval:i??null,queue:s}}return r})},clearApproval:()=>{e(n=>{const[r,...i]=n.queue;return{pendingApproval:r??null,queue:i}})},clearAll:()=>{e({pendingApproval:null,queue:[]})},getPendingCount:()=>{const n=t();return(n.pendingApproval?1:0)+n.queue.length},getPendingForSession:n=>{const r=t(),i=[];return r.pendingApproval?.sessionId===n&&i.push(r.pendingApproval),i.push(...r.queue.filter(s=>s.sessionId===n)),i},hasPendingApproval:()=>t().pendingApproval!==null}));function e9(e,t){let n;try{n=e()}catch{return}return{getItem:i=>{var s;const o=d=>d===null?null:JSON.parse(d,void 0),c=(s=n.getItem(i))!=null?s:null;return c instanceof Promise?c.then(o):o(c)},setItem:(i,s)=>n.setItem(i,JSON.stringify(s,void 0)),removeItem:i=>n.removeItem(i)}}const vb=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return vb(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return vb(r)(n)}}}},t9=(e,t)=>(n,r,i)=>{let s={storage:e9(()=>localStorage),partialize:T=>T,version:0,merge:(T,S)=>({...S,...T}),...t},o=!1;const c=new Set,d=new Set;let m=s.storage;if(!m)return e((...T)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...T)},r,i);const f=()=>{const T=s.partialize({...r()});return m.setItem(s.name,{state:T,version:s.version})},g=i.setState;i.setState=(T,S)=>(g(T,S),f());const y=e((...T)=>(n(...T),f()),r,i);i.getInitialState=()=>y;let x;const k=()=>{var T,S;if(!m)return;o=!1,c.forEach(N=>{var M;return N((M=r())!=null?M:y)});const w=((S=s.onRehydrateStorage)==null?void 0:S.call(s,(T=r())!=null?T:y))||void 0;return vb(m.getItem.bind(m))(s.name).then(N=>{if(N)if(typeof N.version=="number"&&N.version!==s.version){if(s.migrate){const M=s.migrate(N.state,N.version);return M instanceof Promise?M.then(P=>[!0,P]):[!0,M]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,N.state];return[!1,void 0]}).then(N=>{var M;const[P,D]=N;if(x=s.merge(D,(M=r())!=null?M:y),n(x,!0),P)return f()}).then(()=>{w?.(x,void 0),x=r(),o=!0,d.forEach(N=>N(x))}).catch(N=>{w?.(void 0,N)})};return i.persist={setOptions:T=>{s={...s,...T},T.storage&&(m=T.storage)},clearStorage:()=>{m?.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>k(),hasHydrated:()=>o,onHydrate:T=>(c.add(T),()=>{c.delete(T)}),onFinishHydration:T=>(d.add(T),()=>{d.delete(T)})},s.skipHydration||k(),x||y},SE=t9,n9={isStreaming:!0},ME=Da()(SE(e=>({...n9,setStreaming:t=>{e({isStreaming:t})}}),{name:"dexto-preferences",version:1})),NE=Da()((e,t)=>({sessions:new Map,getTodos:n=>t().sessions.get(n)?.todos??[],setTodos:(n,r)=>{e(i=>{const s=new Map(i.sessions);return s.set(n,{todos:r}),{sessions:s}})},clearTodos:n=>{e(r=>{const i=new Map(r.sessions);return i.delete(n),{sessions:i}})}})),K1=new Map;function pi(e,t){K1.set(e,t)}function W1(e){const t=zt.getState();t.getSessionState(e).streamingMessage&&t.finalizeStreamingMessage(e,{})}function Cd(e){if(e.startsWith("mcp--")){const t=e.substring(5),n=t.split("--");return n.length>=2?n.slice(1).join("--"):t}return e}function AM(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function r9(e){const t=AM(e.metadata)?e.metadata:{},n=typeof t.toolName=="string"?t.toolName:"unknown",r=typeof t.toolCallId=="string"?t.toolCallId:void 0,i=V$(t.presentationSnapshot)?t.presentationSnapshot:void 0,s=AM(t.args)?t.args:{};return{approvalId:e.approvalId,toolCallId:r,toolName:n,toolArgs:s,presentationSnapshot:i,approvalType:e.type}}function OM(e,t){return t!==void 0?!0:e?(e.inputTokens??0)>0||(e.outputTokens??0)>0||(e.reasoningTokens??0)>0||(e.cacheReadTokens??0)>0||(e.cacheWriteTokens??0)>0||(e.totalTokens??0)>0:!1}function i9(e){const{sessionId:t}=e;zt.getState().setProcessing(t,!0),hi.getState().setThinking(t)}function s9(e){if(!ME.getState().isStreaming)return;const{sessionId:n,content:r,chunkType:i="text"}=e,s=zt.getState();if(s.getSessionState(n).streamingMessage)s.appendToStreamingMessage(n,r,i);else{const c={id:wg(),role:"assistant",content:i==="text"?r:"",reasoning:i==="reasoning"?r:void 0,createdAt:Date.now(),sessionId:n};s.setStreamingMessage(n,c)}}function a9(e){const{sessionId:t,content:n,reasoning:r,tokenUsage:i,model:s,provider:o,estimatedCost:c,costBreakdown:d,estimatedInputTokens:m,reasoningVariant:f,reasoningBudgetTokens:g}=e,y=zt.getState(),x=y.getSessionState(t),k=typeof n=="string"?n:"";if(x.streamingMessage){if(y.finalizeStreamingMessage(t,{content:k,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o}}),OM(i,c)){let w;const N=i?.inputTokens;if(m!==void 0&&N){const M=m-N;w=Math.round(M/N*100)}XS({sessionId:t,provider:o,model:s,reasoningVariant:f,reasoningBudgetTokens:g,inputTokens:i?.inputTokens,outputTokens:i?.outputTokens,reasoningTokens:i?.reasoningTokens,totalTokens:i?.totalTokens,cacheReadTokens:i?.cacheReadTokens,cacheWriteTokens:i?.cacheWriteTokens,estimatedCostUsd:c,inputCostUsd:d?.inputUsd,outputCostUsd:d?.outputUsd,reasoningCostUsd:d?.reasoningUsd,cacheReadCostUsd:d?.cacheReadUsd,cacheWriteCostUsd:d?.cacheWriteUsd,estimatedInputTokens:m,estimateAccuracyPercent:w})}return}const T=x.messages;let S=null;for(let w=T.length-1;w>=0;w--){const N=T[w];if(N.role==="assistant"){S=N;break}if(N.role==="user")break}if(S?y.updateMessage(t,S.id,{content:k||S.content,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o}}):k&&y.addMessage(t,{id:wg(),role:"assistant",content:k,...r&&{reasoning:r},tokenUsage:i,...s&&{model:s},...o&&{provider:o},createdAt:Date.now(),sessionId:t}),OM(i,c)){let w;const N=i?.inputTokens;if(m!==void 0&&N){const M=m-N;w=Math.round(M/N*100)}XS({sessionId:t,provider:o,model:s,reasoningVariant:f,reasoningBudgetTokens:g,inputTokens:i?.inputTokens,outputTokens:i?.outputTokens,reasoningTokens:i?.reasoningTokens,totalTokens:i?.totalTokens,cacheReadTokens:i?.cacheReadTokens,cacheWriteTokens:i?.cacheWriteTokens,estimatedCostUsd:c,inputCostUsd:d?.inputUsd,outputCostUsd:d?.outputUsd,reasoningCostUsd:d?.reasoningUsd,cacheReadCostUsd:d?.cacheReadUsd,cacheWriteCostUsd:d?.cacheWriteUsd,estimatedInputTokens:m,estimateAccuracyPercent:w})}}function o9(e){const{sessionId:t,content:n,provider:r,model:i,messageId:s}=e,o=zt.getState();W1(t),o.addMessage(t,{id:s,role:"assistant",content:n,provider:r,model:i,createdAt:Date.now(),sessionId:t}),o.setProcessing(t,!1),hi.getState().setIdle()}function l9(e){const{sessionId:t,toolName:n,args:r,callId:i,presentationSnapshot:s}=e,o=zt.getState();W1(t);const c=o.getMessages(t),d=c.find(y=>y.role==="tool"&&y.toolCallId===i&&y.toolResult===void 0);if(d){o.updateMessage(t,d.id,{toolArgs:r,...s!==void 0&&{presentationSnapshot:s}}),console.debug("[handlers] Tool call message already exists:",d.id);return}const m=Cd(n),f=c.find(y=>y.role!=="tool"||y.toolResult!==void 0||y.requireApproval!==!0||y.approvalStatus!=="pending"?!1:!!(y.toolCallId===i||y.toolName===n||y.toolName&&Cd(y.toolName)===m));if(f){o.updateMessage(t,f.id,{toolCallId:i,toolArgs:r,...s!==void 0&&{presentationSnapshot:s}}),console.debug("[handlers] Updated existing approval message with callId:",f.id);return}const g={id:`tool-${i}`,role:"tool",content:null,toolName:n,...s!==void 0&&{presentationSnapshot:s},toolArgs:r,toolCallId:i,createdAt:Date.now(),sessionId:t};o.addMessage(t,g),hi.getState().setExecutingTool(t,n)}function u9(e){const{sessionId:t,callId:n,success:r,sanitized:i,requireApproval:s,approvalStatus:o,presentationSnapshot:c}=e,d=zt.getState();let m=n?d.getMessageByToolCallId(t,n):void 0;if(!m&&n&&(m=d.getMessages(t).find(g=>g.id===`tool-${n}`||g.id===`approval-${n}`)),!m){const g=d.getMessages(t).filter(y=>y.role==="tool"&&y.toolResult===void 0).sort((y,x)=>x.createdAt-y.createdAt);m=g.find(y=>y.id.startsWith("approval-"))||g[0]}m?d.updateMessage(t,m.id,{toolResult:i,toolResultMeta:i?.meta,toolResultSuccess:r,...c!==void 0&&{presentationSnapshot:c},...s!==void 0&&{requireApproval:s},...o!==void 0&&{approvalStatus:o}}):console.warn("[handlers] Could not find tool message to update for callId:",n)}function c9(e){const{sessionId:t,error:n,context:r,recoverable:i}=e,s=zt.getState();s.setError(t,{id:wg(),message:n?.message||"Unknown error",timestamp:Date.now(),context:r,recoverable:i,sessionId:t}),s.setProcessing(t,!1),hi.getState().setIdle()}function p9(e){const t=e.sessionId||"",n=zt.getState();t&&W1(t),V1.getState().addApproval(e);const{approvalId:r,toolCallId:i,toolName:s,toolArgs:o,presentationSnapshot:c,approvalType:d}=r9(e),m=Cd(s),f=n.getMessages(t),g=i?f.find(y=>y.role==="tool"&&y.toolResult===void 0&&y.requireApproval!==!0&&y.toolCallId===i):f.find(y=>y.role!=="tool"||y.toolResult!==void 0||y.requireApproval===!0?!1:!!(y.toolName===s||y.toolName&&Cd(y.toolName)===m));if(g)n.updateMessage(t,g.id,{requireApproval:!0,approvalStatus:"pending",toolResultSuccess:void 0,...c!==void 0&&{presentationSnapshot:c}}),console.debug("[handlers] Updated existing tool message with approval:",g.id);else if(t){const y=i?f.find(x=>x.role==="tool"&&x.requireApproval===!0&&x.approvalStatus==="pending"&&x.toolResult===void 0&&x.toolCallId===i):f.find(x=>x.role==="tool"&&x.requireApproval===!0&&x.approvalStatus==="pending"&&x.toolResult===void 0&&(x.toolName===s||x.toolName&&Cd(x.toolName)===m));if(y)console.debug("[handlers] Approval message already exists:",y.id);else{const x={id:`approval-${r}`,role:"tool",content:null,toolName:s,...c!==void 0&&{presentationSnapshot:c},toolArgs:o,toolCallId:i??r,createdAt:Date.now(),sessionId:t,requireApproval:!0,approvalStatus:"pending",...d&&{approvalType:d}};n.addMessage(t,x)}}t&&hi.getState().setAwaitingApproval(t)}function d9(e){const{status:t}=e,n=e.sessionId||"",r=e.approvalId;if(V1.getState().processResponse(e),n&&r){const s=zt.getState(),c=s.getMessages(n).find(d=>d.id===`approval-${r}`||d.toolCallId===r&&d.requireApproval);if(c){const d=t==="approved"?"approved":"rejected";s.updateMessage(n,c.id,{approvalStatus:d,...d==="rejected"&&{toolResultSuccess:!1}}),console.debug("[handlers] Updated approval status:",c.id,d)}}t==="approved"?n&&hi.getState().setThinking(n):(hi.getState().setIdle(),n&&zt.getState().setProcessing(n,!1))}function m9(e){const{sessionId:t}=e;zt.getState().setProcessing(t,!1),hi.getState().setIdle()}function f9(e){console.debug("[handlers] session:title-updated",e.sessionId,e.title)}function h9(e){const{sessionId:t,content:n}=e,r=zt.getState(),i=n.filter(c=>c.type==="text").map(c=>c.text).join(`
51
51
  `),s=n.find(c=>c.type==="image"),o=n.find(c=>c.type==="file");if(i||n.length>0){const c=s&&typeof s.image=="string"?{image:s.image,mimeType:s.mimeType??"image/jpeg"}:void 0,d={id:wg(),role:"user",content:i||"[attachment]",createdAt:Date.now(),sessionId:t,imageData:c,fileData:o?{data:typeof o.data=="string"?o.data:"",mimeType:o.mimeType,filename:o.filename}:void 0};r.addMessage(t,d)}}function g9(e){console.debug(`[handlers] Context compacted: ${e.originalTokens.toLocaleString()} → ${e.compactedTokens.toLocaleString()} tokens (${e.originalMessages} → ${e.compactedMessages} messages) via ${e.strategy}`)}function y9(e){const{service:t,event:n,toolCallId:r,sessionId:i,data:s}=e;if(t==="agent-spawner"&&n==="progress"&&r&&i){const o=zt.getState(),c=s,m=o.getMessages(i).find(f=>f.role==="tool"&&f.toolCallId===r);m&&o.updateMessage(i,m.id,{subAgentProgress:{task:c.task,agentId:c.agentId,toolsCalled:c.toolsCalled,currentTool:c.currentTool,currentArgs:c.currentArgs}})}if(t==="todo"&&n==="updated"&&i){const o=s;NE.getState().setTodos(i,o.todos)}}function x9(){K1.clear(),pi("llm:thinking",i9),pi("llm:chunk",s9),pi("llm:response",a9),pi("interaction:blocked",o9),pi("llm:tool-call",l9),pi("llm:tool-result",u9),pi("llm:error",c9),pi("approval:request",p9),pi("approval:response",d9),pi("run:complete",m9),pi("session:title-updated",f9),pi("message:dequeued",h9),pi("context:compacted",g9),pi("service:event",y9)}function v9(e){x9();const t=[];return K1.forEach((n,r)=>{const i=e.on(r,n);t.push(i)}),()=>{t.forEach(n=>n.unsubscribe())}}const b9=b.createContext(null);function T9({children:e,middleware:t=[],enableLogging:n=!1,enableActivityLogging:r=!0,enableNotifications:i=!0,bus:s=O1}){b.useEffect(()=>{const c=[];let d;n&&(s.use(eM),c.push(eM)),r&&(s.use(iM),c.push(iM)),i&&(s.use(rM),c.push(rM));for(const m of t)s.use(m),c.push(m);return d=v9(s),()=>{for(const m of c)s.removeMiddleware(m);d?.()}},[s,n,r,i,t]);const o=b.useMemo(()=>({bus:s}),[s]);return l.jsx(b9.Provider,{value:o,children:e})}var _9=/^[\w!#$%&'*.^`|~+-]+$/,k9=(e,t,n={})=>{if(!_9.test(e))throw new Error("Invalid cookie name");let r=`${e}=${t}`;if(e.startsWith("__Secure-")&&!n.secure)throw new Error("__Secure- Cookie must have Secure attributes");if(e.startsWith("__Host-")){if(!n.secure)throw new Error("__Host- Cookie must have Secure attributes");if(n.path!=="/")throw new Error('__Host- Cookie must have Path attributes with "/"');if(n.domain)throw new Error("__Host- Cookie must not have Domain attributes")}for(const i of["domain","path"])if(n[i]&&/[;\r\n]/.test(n[i]))throw new Error(`${i} must not contain ";", "\\r", or "\\n"`);if(n&&typeof n.maxAge=="number"&&n.maxAge>=0){if(n.maxAge>3456e4)throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");r+=`; Max-Age=${n.maxAge|0}`}if(n.domain&&n.prefix!=="host"&&(r+=`; Domain=${n.domain}`),n.path&&(r+=`; Path=${n.path}`),n.expires){if(n.expires.getTime()-Date.now()>3456e7)throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+="; HttpOnly"),n.secure&&(r+="; Secure"),n.sameSite&&(r+=`; SameSite=${n.sameSite.charAt(0).toUpperCase()+n.sameSite.slice(1)}`),n.priority&&(r+=`; Priority=${n.priority.charAt(0).toUpperCase()+n.priority.slice(1)}`),n.partitioned){if(!n.secure)throw new Error("Partitioned Cookie must have Secure attributes");r+="; Partitioned"}return r},w9=(e,t,n)=>(t=encodeURIComponent(t),k9(e,t,n)),S9=(e,t)=>(e=e.replace(/\/+$/,""),e=e+"/",t=t.replace(/^\/+/,""),e+t),bb=(e,t)=>{for(const[n,r]of Object.entries(t)){const i=new RegExp("/:"+n+"(?:{[^/]+})?\\??");e=e.replace(i,r?`/${r}`:"")}return e},M9=e=>{const t=new URLSearchParams;for(const[n,r]of Object.entries(e))if(r!==void 0)if(Array.isArray(r))for(const i of r)t.append(n,i);else t.set(n,r);return t},N9=(e,t)=>{switch(t){case"ws":return e.replace(/^http/,"ws");case"http":return e.replace(/^ws/,"http")}},PE=e=>/^https?:\/\/[^\/]+?\/index(?=\?|$)/.test(e)?e.replace(/\/index(?=\?|$)/,"/"):e.replace(/\/index(?=\?|$)/,"");function qf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function CE(e,t){if(!qf(e)&&!qf(t))return t;const n={...e};for(const r in t){const i=t[r];qf(n[r])&&qf(i)?n[r]=CE(n[r],i):n[r]=i}return n}var EE=(e,t)=>new Proxy(()=>{},{get(r,i){if(!(typeof i!="string"||i==="then"))return EE(e,[...t,i])},apply(r,i,s){return e({path:t,args:s})}}),P9=class{url;method;buildSearchParams;queryParams=void 0;pathParams={};rBody;cType=void 0;constructor(e,t,n){this.url=e,this.method=t,this.buildSearchParams=n.buildSearchParams}fetch=async(e,t)=>{if(e){if(e.query&&(this.queryParams=this.buildSearchParams(e.query)),e.form){const c=new FormData;for(const[d,m]of Object.entries(e.form))if(m!==void 0)if(Array.isArray(m))for(const f of m)c.append(d,f);else c.append(d,m);this.rBody=c}e.json&&(this.rBody=JSON.stringify(e.json),this.cType="application/json"),e.param&&(this.pathParams=e.param)}let n=this.method.toUpperCase();const r={...e?.header,...typeof t?.headers=="function"?await t.headers():t?.headers};if(e?.cookie){const c=[];for(const[d,m]of Object.entries(e.cookie))c.push(w9(d,m,{path:"/"}));r.Cookie=c.join(",")}this.cType&&(r["Content-Type"]=this.cType);const i=new Headers(r??void 0);let s=this.url;s=PE(s),s=bb(s,this.pathParams),this.queryParams&&(s=s+"?"+this.queryParams.toString()),n=this.method.toUpperCase();const o=!(n==="GET"||n==="HEAD");return(t?.fetch||fetch)(s,{body:o?this.rBody:void 0,method:n,headers:i,...t?.init})}},C9=(e,t)=>EE(function n(r){const i=t?.buildSearchParams??M9,s=[...r.path],o=s.slice(-3).reverse();if(o[0]==="toString")return o[1]==="name"?o[2]||"":n.toString();if(o[0]==="valueOf")return o[1]==="name"?o[2]||"":n;let c="";if(/^\$/.test(o[0])){const g=s.pop();g&&(c=g.replace(/^\$/,""))}const d=s.join("/"),m=S9(e,d);if(c==="url"||c==="path"){let g=m;return r.args[0]&&(r.args[0].param&&(g=bb(m,r.args[0].param)),r.args[0].query&&(g=g+"?"+i(r.args[0].query).toString())),g=PE(g),c==="url"?new URL(g):g.slice(e.replace(/\/+$/,"").length).replace(/^\/?/,"/")}if(c==="ws"){const g=N9(r.args[0]&&r.args[0].param?bb(m,r.args[0].param):m,"ws"),y=new URL(g),x=r.args[0]?.query;return x&&Object.entries(x).forEach(([T,S])=>{Array.isArray(S)?S.forEach(w=>y.searchParams.append(T,w)):y.searchParams.set(T,S)}),((...T)=>t?.webSocket!==void 0&&typeof t.webSocket=="function"?t.webSocket(...T):new WebSocket(...T))(y.toString())}const f=new P9(m,c,{buildSearchParams:i});if(c){t??={};const g=CE(t,{...r.args[1]});return f.fetch(r.args[0],g)}return f},[]),E9=class extends Error{constructor(e,t){super(`SSE Error: ${e}`),this.status=e,this.body=t,this.name="SSEError"}};async function*D9(e,t){var n;if(!e.ok){const m=e.headers.get("content-type");let f;try{m&&m.includes("application/json")?f=await e.json():f=await e.text()}catch{f="Unknown error"}throw new E9(e.status,f)}const r=(n=e.body)==null?void 0:n.getReader();if(!r)throw new Error("Response body is null");const i=new globalThis.TextDecoder;let s="";const o=t?.signal;let c=!1;const d=()=>{c=!0,r.cancel().catch(()=>{})};if(o){if(o.aborted){r.cancel().catch(()=>{});return}o.addEventListener("abort",d)}try{for(;;){if(c||o?.aborted)return;const m=s.split(`
52
52
 
53
53
  `);if(m.length>1){const y=m.shift();s=m.join(`
@@ -1504,7 +1504,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do
1504
1504
  `),ce=he.content.filter(Eb),Ie=he.content.filter(Db),qe=[...ce.map(Ke=>({id:Jp(),type:"image",data:Ke.image,mimeType:Ke.mimeType??"image/jpeg",size:UM(Ke.image),source:"button"})),...Ie.map(Ke=>({id:Jp(),type:"file",data:Ke.data,mimeType:Ke.mimeType,filename:Ke.filename,size:UM(Ke.data),source:"button"}))];s(Ae),d(qe),j({sessionId:D,messageId:he.id}),o.current?.focus()},[D,j]),Nr=b.useCallback(()=>{if($.length===0)return!1;const he=$[$.length-1];return he?(er(he),!0):!1},[$,er]),Tr=he=>{if(de){if(he.key==="ArrowDown"){he.preventDefault(),Be(Ae=>(Ae+1)%Math.max(1,xt.length));return}if(he.key==="ArrowUp"){he.preventDefault(),Be(Ae=>(Ae-1+Math.max(1,xt.length))%Math.max(1,xt.length));return}if(he.key==="Enter"){he.preventDefault(),Ti(Ve);return}if(he.key==="Tab"){he.preventDefault(),Ti(Ve);return}if(he.key==="Escape"){fe(!1);return}}if(he.key==="ArrowUp"&&!he.altKey&&!he.ctrlKey&&!he.metaKey){const Ae=o.current?.selectionStart??0;if(!i.slice(0,Ae).includes(`
1505
1505
  `)){if(he.preventDefault(),$.length>0){Nr();return}const qe=U(i);qe!==null&&(s(qe),requestAnimationFrame(()=>{const Ke=qe.length;o.current?.setSelectionRange(Ke,Ke)}));return}}if(he.key==="ArrowDown"&&!he.altKey&&!he.ctrlKey&&!he.metaKey&&B){he.preventDefault();const Ae=G();Ae!==null&&(s(Ae),requestAnimationFrame(()=>{const ce=Ae.length;o.current?.setSelectionRange(ce,ce)}));return}if(tr&&he.key==="Escape"){he.preventDefault(),H(!1),s("");return}if(he.key==="Enter"&&!he.shiftKey){if(he.preventDefault(),i.trim()==="#"){s(""),H(!1),Re(!0);return}Sn(Gie({processing:E,queueFollowUpShortcut:he.altKey}))}},[tr,H]=b.useState(!1),[ye,Fe]=b.useState(null),Z=he=>{const Ae=he.target.value;if(s(Ae),Y(),Ae.startsWith("/")&&!Ae.includes(`
1506
1506
  `)?Ee(!0):st&&Ee(!1),Ae.trim()==="#"){H(!0);const ce=o.current;if(ce){const Ie=ce.getBoundingClientRect(),qe=16,Ke=Math.max(8,Ie.left+window.scrollX+qe),Mt=Math.max(280,Ie.width-qe*2),vt=Math.max(80,window.innerHeight-(Ie.bottom+window.scrollY)+64);Fe({position:"fixed",left:Ke,bottom:vt,width:Mt,zIndex:9999})}}else H(!1),Fe(null)},ue=he=>{const Ae=`/${he.name}`;s(Ae),Ee(!1),o.current&&(o.current.focus(),o.current.setSelectionRange(Ae.length,Ae.length))},Te=()=>{Ee(!1)};b.useEffect(()=>{const he=o.current,Ae=he?he.selectionStart??i.length:i.length,ce=$e(i,Ae);if(ce>=0){const Ie=i.slice(ce+1,Ae);J(Ie),fe(!0),Be(0);const qe=he?.getBoundingClientRect();if(qe){const Mt=Math.max(8,qe.left+window.scrollX+16),ot=Math.max(280,qe.width-32),Qt=Math.max(80,window.innerHeight-(qe.bottom+window.scrollY)+64);bt({position:"fixed",left:Mt,bottom:Qt,width:ot,zIndex:9999})}}else fe(!1),J(""),bt(null)},[i]);const xe=dt.useRef(!1);b.useEffect(()=>{de?xe.current||(xe.current=!0,me()):xe.current=!1},[de,me]);const ke=2e4,je=he=>{try{return btoa(unescape(encodeURIComponent(he)))}catch{return btoa(he)}},Je=async(he,Ae)=>{if(he.length===0)return;const ce=[];if(c.length+he.length>Ur.MAX_COUNT){gt(`Cannot add ${he.length} file(s). Maximum ${Ur.MAX_COUNT} attachments allowed (currently ${c.length}).`);return}const Ie=c.reduce((ot,vt)=>ot+vt.size,0),qe=he.reduce((ot,vt)=>ot+vt.size,0);if(Ie+qe>Ur.MAX_TOTAL_SIZE){gt(`Total size would exceed ${zr(Ur.MAX_TOTAL_SIZE)}. Current: ${zr(Ie)}, Adding: ${zr(qe)}.`);return}const Ke=[],Mt=[];for(const ot of he){if(ot.size>Ur.MAX_FILE_SIZE){Mt.push({file:ot,reason:"size_limit"}),ce.push({filename:ot.name,reason:`File too large (${zr(ot.size)}). Maximum ${zr(Ur.MAX_FILE_SIZE)} per file.`});continue}if(c.some(bn=>bn.filename===ot.name&&bn.size===ot.size)){Mt.push({file:ot,reason:"duplicate"}),ce.push({filename:ot.name,reason:"File already attached (duplicate name and size)."});continue}const Qt=O9(ot.type,ot.name);if(!(Qt!=="other"&&qie.includes(Qt))){Mt.push({file:ot,reason:"type_unsupported"}),ce.push({filename:ot.name,reason:"File type not supported. Only images, PDFs, audio, video, and document files are allowed."});continue}if(Ce!==null&&!Ce.includes(Qt)){Mt.push({file:ot,reason:"type_unsupported"});const _r=[];if(K&&"models"in K){const Oa=K.models;for(const ls of Oa)ls.supportedFileTypes?.includes(Qt)&&_r.push(`${ls.provider}/${ls.name}`)}ce.push({filename:ot.name,reason:`File type not supported by current model (${R?.provider}/${R?.model}).`,compatibleModels:_r.length>0?_r.slice(0,3):void 0});continue}Ke.push(ot)}if(D)for(const ot of Mt)Q.current.trackFileRejected({reason:ot.reason,fileType:ot.file.type,fileSizeBytes:ot.file.size,sessionId:D});if(Ke.length>0)try{const ot=await Promise.all(Ke.map(vt=>sn(vt,Ae)));if(d(vt=>[...vt,...ot]),D)for(const vt of ot)si(vt)}catch(ot){gt(`Failed to process ${Ke.length} file(s). Please try again.`),console.error("File processing error:",ot)}ce.length>0&&Ue(ce.length===1?`${ce[0].filename}: ${ce[0].reason}${ce[0].compatibleModels?` Try: ${ce[0].compatibleModels.join(", ")}`:""}`:`${ce.length} file(s) rejected. Check file types and sizes.`)},Rt=async he=>{const Ae=he.clipboardData,ce=Array.from(Ae.files);if(ce.length>0){he.preventDefault(),await Je(ce,"paste");return}const qe=Array.from(Ae.items).filter(ot=>ot.type.startsWith("image/"));if(qe.length>0){he.preventDefault();const ot=qe.map(vt=>vt.getAsFile()).filter(vt=>vt!==null);ot.length>0&&await Je(ot,"paste");return}const Ke=Ae.getData("text/plain");if(!Ke||Ke.length<=ke)return;if(he.preventDefault(),window.confirm(`Large text detected. Attach as a file instead of inflating the input?
1507
- (OK = attach as file, Cancel = paste truncated preview)`)){const vt=new TextEncoder().encode(Ke).length;if(c.length>=Ur.MAX_COUNT){gt(`Cannot attach pasted text. Maximum ${Ur.MAX_COUNT} attachments allowed (currently ${c.length}).`);return}if(vt>Ur.MAX_FILE_SIZE){gt(`Pasted text is too large (${zr(vt)}). Maximum ${zr(Ur.MAX_FILE_SIZE)} per file.`);return}const Qt=c.reduce((bn,_r)=>bn+_r.size,0);if(Qt+vt>Ur.MAX_TOTAL_SIZE){gt(`Total size would exceed ${zr(Ur.MAX_TOTAL_SIZE)}. Current: ${zr(Qt)}, Adding: ${zr(vt)}.`);return}const Fn={id:Jp(),type:"file",data:je(Ke),mimeType:"text/plain",filename:"pasted.txt",size:vt,source:"paste"};d(bn=>[...bn,Fn])}else{const ot=Ke.slice(0,ke);s(vt=>vt+ot)}},sn=async(he,Ae)=>new Promise((ce,Ie)=>{const qe=new FileReader;qe.onloadend=()=>{try{const Ke=qe.result;if(typeof Ke!="string"){Ie(new Error("Malformed data URL: FileReader result is not a string"));return}const Mt=Ke.indexOf(",");if(Mt===-1){Ie(new Error("Malformed data URL: missing comma separator"));return}const ot=Ke.substring(Mt+1),vt={id:Jp(),type:he.type.startsWith("image/")?"image":"file",data:ot,mimeType:he.type,filename:he.name,size:he.size,source:Ae};ce(vt)}catch(Ke){Ie(Ke)}},qe.onerror=()=>Ie(new Error("Failed to read file")),qe.readAsDataURL(he)}),pr=he=>{d(Ae=>Ae.filter(ce=>ce.id!==he))},si=he=>{D&&(he.type==="image"?Q.current.trackImageAttached({imageType:he.mimeType,imageSizeBytes:he.size,sessionId:D}):Q.current.trackFileAttached({fileType:he.mimeType,fileSizeBytes:he.size,sessionId:D}))},Or=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},dr=async()=>{try{const he=await navigator.mediaDevices.getUserMedia({audio:!0}),Ae=new MediaRecorder(he);w.current=Ae;const ce=[];Ae.ondataavailable=Ie=>{Ie.data.size>0&&ce.push(Ie.data)},Ae.onstop=()=>{const Ie=new Blob(ce,{type:Ae.mimeType}),qe=new FileReader;qe.onloadend=()=>{try{const Ke=qe.result,Mt=Ke.indexOf(","),ot=Ke.substring(Mt+1),vt=Ae.mimeType||"audio/webm",Fn=(_r=>({"audio/mp3":"mp3","audio/mpeg":"mp3","audio/wav":"wav","audio/x-wav":"wav","audio/wave":"wav","audio/webm":"webm","audio/ogg":"ogg","audio/m4a":"m4a","audio/aac":"aac"})[_r]||_r.split("/")[1]||"webm")(vt),bn={id:Jp(),type:"file",data:ot,mimeType:vt,filename:`recording.${Fn}`,size:Ie.size,source:"button"};d(_r=>[..._r,bn]),si(bn)}catch{gt("Failed to process audio recording. Please try again.")}},qe.readAsDataURL(Ie),he.getTracks().forEach(Ke=>Ke.stop())},Ae.start(),S(!0)}catch{gt("Failed to start audio recording. Please check microphone permissions.")}},Kn=()=>{w.current?.stop(),S(!1)},mr=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},_i=()=>m.current?.click(),Ne=()=>f.current?.click(),De=()=>g.current?.click(),yn=()=>y.current?.click(),fr=()=>x.current?.click();b.useEffect(()=>{i&&ne&&O(null),i&&be&&Ue(null)},[i,ne,be]);const Yt=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},On=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},Ra=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},Vo=he=>{he.preventDefault(),he.stopPropagation(),P.current++,he.dataTransfer.types.includes("Files")&&M(!0)},Zl=he=>{he.preventDefault(),he.stopPropagation()},Kc=he=>{he.preventDefault(),he.stopPropagation(),P.current--,P.current===0&&M(!1)},Aa=async he=>{he.preventDefault(),he.stopPropagation(),M(!1),P.current=0;const Ae=Array.from(he.dataTransfer.files);Ae.length>0&&await Je(Ae,"drop")};return l.jsxs("div",{id:"input-area",className:"flex flex-col gap-2 w-full",children:[ne&&l.jsxs(ri,{variant:"destructive",className:"mb-2",children:[l.jsx(Na,{className:"h-4 w-4"}),l.jsxs(ii,{className:"flex items-center justify-between",children:[l.jsx("span",{children:ne}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>O(null),className:"h-auto p-1 ml-2",children:l.jsx(Cn,{className:"h-3 w-3"})})]})]}),be&&l.jsxs(ri,{variant:"destructive",className:"mb-2",children:[l.jsx(Na,{className:"h-4 w-4"}),l.jsxs(ii,{className:"flex items-center justify-between",children:[l.jsx("span",{children:be}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>Ue(null),className:"h-auto p-1 ml-2",children:l.jsx(Cn,{className:"h-3 w-3"})})]})]}),l.jsxs("div",{className:"w-full",children:[l.jsx("form",{onSubmit:he=>{he.preventDefault(),Sn()},children:l.jsx("div",{role:"region","aria-label":"Message input area with file drop zone",className:se("relative transition-all duration-200",N&&"ring-2 ring-primary ring-offset-2 rounded-lg"),onDragEnter:Vo,onDragOver:Zl,onDragLeave:Kc,onDrop:Aa,children:l.jsxs(ane,{children:[N&&l.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-primary/10 rounded-lg pointer-events-none",children:l.jsxs("div",{className:"text-center",children:[l.jsx("div",{className:"text-4xl mb-2",children:"📎"}),l.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files to attach"}),l.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Up to ",Ur.MAX_COUNT," files,"," ",zr(Ur.MAX_FILE_SIZE)," each"]})]})}),$.length>0&&l.jsx(Bie,{messages:$,onEditMessage:er,onRemoveMessage:he=>{D&&j({sessionId:D,messageId:he})}}),c.length>0&&l.jsxs("div",{className:"px-4 pt-4",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("div",{className:"text-xs text-muted-foreground",children:[c.length," / ",Ur.MAX_COUNT," ","files (",zr(gn)," /"," ",zr(Ur.MAX_TOTAL_SIZE),")"]}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>d([]),className:"h-6 text-xs text-muted-foreground hover:text-destructive",children:"Clear all"})]}),l.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:c.map(he=>l.jsx(Tie,{attachment:he,onRemove:()=>pr(he.id)},he.id))})]}),l.jsxs("div",{className:"flex-auto overflow-y-auto relative",children:[k?l.jsx(sne,{ref:o,value:i,onChange:Z,onKeyDown:Tr,onPaste:Rt,placeholder:"Ask Dexto anything... Type @ for resources, / for prompts, # for memories",minRows:1,maxRows:8,className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none max-h-full"}):l.jsx("textarea",{ref:o,rows:1,value:i,onChange:Z,onKeyDown:Tr,onPaste:Rt,placeholder:"Ask Dexto anything... Type @ for resources, / for prompts, # for memories",className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none"}),de&&ut&&typeof window<"u"&&Ov.createPortal(l.jsx("div",{style:ut,className:"max-h-64 overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md",children:l.jsx(kie,{resources:ze,query:pe,selectedIndex:Ve,onHoverIndex:he=>Be(he),onSelect:he=>Ti(Ve,he),loading:lt})}),document.body),tr&&ye&&typeof window<"u"&&Ov.createPortal(l.jsx("div",{style:ye,className:"rounded-md border border-border bg-popover text-popover-foreground shadow-md",children:l.jsxs("div",{className:"p-2 flex items-center gap-2 text-sm text-muted-foreground",children:[l.jsx(Ro,{className:"h-3.5 w-3.5"}),l.jsxs("span",{children:["Press"," ",l.jsx("kbd",{className:"px-1.5 py-0.5 text-xs bg-muted border border-border rounded",children:"Enter"})," ","to create a memory"]})]})}),document.body)]}),l.jsx(Nie,{isVisible:st,searchQuery:i,onSelectPrompt:ue,onClose:Te,onCreatePrompt:An,refreshKey:wt}),l.jsx(one,{leftButtons:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(vre,{onImageAttach:_i,onPdfAttach:Ne,onAudioAttach:De,onVideoAttach:yn,onDocumentAttach:fr,supports:{image:Ce===null?void 0:Ce.includes("image"),pdf:Ce===null?void 0:Ce.includes("pdf"),audio:Ce===null?void 0:Ce.includes("audio"),video:Ce===null?void 0:Ce.includes("video"),document:Ce===null?void 0:Ce.includes("document")},useLargeBreakpoint:n}),l.jsx(bre,{isRecording:T,onToggleRecording:T?Kn:dr,disabled:Ce!==null&&!Ce.includes("audio"),useLargeBreakpoint:n})]}),rightButtons:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(bie,{}),l.jsx(Pe,{type:E?"button":"submit",onClick:E?()=>I(D||void 0):void 0,disabled:E?!1:!i.trim()&&c.length===0||t,className:se("h-10 w-10 p-0 rounded-full transition-all duration-200",E?"bg-secondary/80 text-secondary-foreground hover:bg-secondary shadow-sm hover:shadow-md border border-border/50":"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-lg"),"aria-label":E?"Stop":"Send message",title:E?"Stop":"Send",children:E?l.jsx(qE,{className:"h-3.5 w-3.5 fill-current"}):t?l.jsx(vr,{className:"h-4 w-4 animate-spin"}):l.jsx(jq,{className:"h-4 w-4"})})]})})]})})}),l.jsx("input",{ref:m,type:"file",id:"image-upload",accept:"image/*",multiple:!0,className:"hidden",onChange:mr}),l.jsx("input",{ref:f,type:"file",id:"pdf-upload",accept:"application/pdf",multiple:!0,className:"hidden",onChange:Or}),l.jsx("input",{ref:g,type:"file",id:"audio-upload",accept:"audio/*",multiple:!0,className:"hidden",onChange:Yt}),l.jsx("input",{ref:y,type:"file",id:"video-upload",accept:"video/*",multiple:!0,className:"hidden",onChange:On}),l.jsx("input",{ref:x,type:"file",id:"document-upload",accept:".txt,.md,.json,.html,.xml,.doc,.docx,.rtf,.odt,.ppt,.pptx,.csv,.tsv,.xls,.xlsx,.iif,text/*,application/json,application/xml,text/xml,text/csv,text/tab-separated-values,application/msword,application/rtf,text/rtf,application/vnd.oasis.opendocument.text,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",multiple:!0,className:"hidden",onChange:Ra}),l.jsx(Pie,{open:at,onClose:qn,onCreated:br}),l.jsx(A4,{open:Me,onClose:()=>Re(!1)})]})]})}function GP(e,[t,n]){return Math.min(n,Math.max(t,e))}function Hie(e){const t=e+"CollectionProvider",[n,r]=$o(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=T=>{const{scope:S,children:w}=T,N=dt.useRef(null),M=dt.useRef(new Map).current;return l.jsx(i,{scope:S,itemMap:M,collectionRef:N,children:w})};o.displayName=t;const c=e+"CollectionSlot",d=Dl(c),m=dt.forwardRef((T,S)=>{const{scope:w,children:N}=T,M=s(c,w),P=ln(S,M.collectionRef);return l.jsx(d,{ref:P,children:N})});m.displayName=c;const f=e+"CollectionItemSlot",g="data-radix-collection-item",y=Dl(f),x=dt.forwardRef((T,S)=>{const{scope:w,children:N,...M}=T,P=dt.useRef(null),D=ln(S,P),E=s(f,w);return dt.useEffect(()=>(E.itemMap.set(P,{ref:P,...M}),()=>{E.itemMap.delete(P)})),l.jsx(y,{[g]:"",ref:D,children:N})});x.displayName=f;function k(T){const S=s(e+"CollectionConsumer",T);return dt.useCallback(()=>{const N=S.collectionRef.current;if(!N)return[];const M=Array.from(N.querySelectorAll(`[${g}]`));return Array.from(S.itemMap.values()).sort((E,I)=>M.indexOf(E.ref.current)-M.indexOf(I.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:o,Slot:m,ItemSlot:x},k,r]}var Vie=b.createContext(void 0);function Kie(e){const t=b.useContext(Vie);return e||t||"ltr"}var Wie=[" ","Enter","ArrowUp","ArrowDown"],Zie=[" ","Enter"],Ul="Select",[Wg,Zg,Yie]=Hie(Ul),[$c]=$o(Ul,[Yie,Fc]),Yg=Fc(),[Qie,Go]=$c(Ul),[Xie,Jie]=$c(Ul),O4=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:s,value:o,defaultValue:c,onValueChange:d,dir:m,name:f,autoComplete:g,disabled:y,required:x,form:k}=e,T=Yg(t),[S,w]=b.useState(null),[N,M]=b.useState(null),[P,D]=b.useState(!1),E=Kie(m),[I,R]=Rl({prop:r,defaultProp:i??!1,onChange:s,caller:Ul}),[K,L]=Rl({prop:o,defaultProp:c,onChange:d,caller:Ul}),U=b.useRef(null),G=S?k||!!S.closest("form"):!0,[Y,B]=b.useState(new Set),q=Array.from(Y).map(j=>j.props.value).join(";");return l.jsx(f2,{...T,children:l.jsxs(Qie,{required:x,scope:t,trigger:S,onTriggerChange:w,valueNode:N,onValueNodeChange:M,valueNodeHasChildren:P,onValueNodeHasChildrenChange:D,contentId:No(),value:K,onValueChange:L,open:I,onOpenChange:R,dir:E,triggerPointerDownPosRef:U,disabled:y,children:[l.jsx(Wg.Provider,{scope:t,children:l.jsx(Xie,{scope:e.__scopeSelect,onNativeOptionAdd:b.useCallback(j=>{B(W=>new Set(W).add(j))},[]),onNativeOptionRemove:b.useCallback(j=>{B(W=>{const z=new Set(W);return z.delete(j),z})},[]),children:n})}),G?l.jsxs(iI,{"aria-hidden":!0,required:x,tabIndex:-1,name:f,autoComplete:g,value:K,onChange:j=>L(j.target.value),disabled:y,form:k,children:[K===void 0?l.jsx("option",{value:""}):null,Array.from(Y)]},q):null]})})};O4.displayName=Ul;var F4="SelectTrigger",U4=b.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,s=Yg(n),o=Go(F4,n),c=o.disabled||r,d=ln(t,o.onTriggerChange),m=Zg(n),f=b.useRef("touch"),[g,y,x]=aI(T=>{const S=m().filter(M=>!M.disabled),w=S.find(M=>M.value===o.value),N=oI(S,T,w);N!==void 0&&o.onValueChange(N.value)}),k=T=>{c||(o.onOpenChange(!0),x()),T&&(o.triggerPointerDownPosRef.current={x:Math.round(T.pageX),y:Math.round(T.pageY)})};return l.jsx(Dg,{asChild:!0,...s,children:l.jsx($t.button,{type:"button",role:"combobox","aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":"none",dir:o.dir,"data-state":o.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":sI(o.value)?"":void 0,...i,ref:d,onClick:jt(i.onClick,T=>{T.currentTarget.focus(),f.current!=="mouse"&&k(T)}),onPointerDown:jt(i.onPointerDown,T=>{f.current=T.pointerType;const S=T.target;S.hasPointerCapture(T.pointerId)&&S.releasePointerCapture(T.pointerId),T.button===0&&T.ctrlKey===!1&&T.pointerType==="mouse"&&(k(T),T.preventDefault())}),onKeyDown:jt(i.onKeyDown,T=>{const S=g.current!=="";!(T.ctrlKey||T.altKey||T.metaKey)&&T.key.length===1&&y(T.key),!(S&&T.key===" ")&&Wie.includes(T.key)&&(k(),T.preventDefault())})})})});U4.displayName=F4;var L4="SelectValue",z4=b.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:s,placeholder:o="",...c}=e,d=Go(L4,n),{onValueNodeHasChildrenChange:m}=d,f=s!==void 0,g=ln(t,d.onValueNodeChange);return Vr(()=>{m(f)},[m,f]),l.jsx($t.span,{...c,ref:g,style:{pointerEvents:"none"},children:sI(d.value)?l.jsx(l.Fragment,{children:o}):s})});z4.displayName=L4;var ese="SelectIcon",$4=b.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return l.jsx($t.span,{"aria-hidden":!0,...i,ref:t,children:r||"▼"})});$4.displayName=ese;var tse="SelectPortal",B4=e=>l.jsx(mm,{asChild:!0,...e});B4.displayName=tse;var Ll="SelectContent",q4=b.forwardRef((e,t)=>{const n=Go(Ll,e.__scopeSelect),[r,i]=b.useState();if(Vr(()=>{i(new DocumentFragment)},[]),!n.open){const s=r;return s?fg.createPortal(l.jsx(G4,{scope:e.__scopeSelect,children:l.jsx(Wg.Slot,{scope:e.__scopeSelect,children:l.jsx("div",{children:e.children})})}),s):null}return l.jsx(H4,{...e,ref:t})});q4.displayName=Ll;var xs=10,[G4,Ho]=$c(Ll),nse="SelectContentImpl",rse=Dl("SelectContent.RemoveScroll"),H4=b.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:s,onPointerDownOutside:o,side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:g,collisionBoundary:y,collisionPadding:x,sticky:k,hideWhenDetached:T,avoidCollisions:S,...w}=e,N=Go(Ll,n),[M,P]=b.useState(null),[D,E]=b.useState(null),I=ln(t,ae=>P(ae)),[R,K]=b.useState(null),[L,U]=b.useState(null),G=Zg(n),[Y,B]=b.useState(!1),q=b.useRef(!1);b.useEffect(()=>{if(M)return Y2(M)},[M]),Z2();const j=b.useCallback(ae=>{const[ze,...lt]=G().map(J=>J.ref.current),[me]=lt.slice(-1),pe=document.activeElement;for(const J of ae)if(J===pe||(J?.scrollIntoView({block:"nearest"}),J===ze&&D&&(D.scrollTop=0),J===me&&D&&(D.scrollTop=D.scrollHeight),J?.focus(),document.activeElement!==pe))return},[G,D]),W=b.useCallback(()=>j([R,M]),[j,R,M]);b.useEffect(()=>{Y&&W()},[Y,W]);const{onOpenChange:z,triggerPointerDownPosRef:$}=N;b.useEffect(()=>{if(M){let ae={x:0,y:0};const ze=me=>{ae={x:Math.abs(Math.round(me.pageX)-($.current?.x??0)),y:Math.abs(Math.round(me.pageY)-($.current?.y??0))}},lt=me=>{ae.x<=10&&ae.y<=10?me.preventDefault():M.contains(me.target)||z(!1),document.removeEventListener("pointermove",ze),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",ze),document.addEventListener("pointerup",lt,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ze),document.removeEventListener("pointerup",lt,{capture:!0})}}},[M,z,$]),b.useEffect(()=>{const ae=()=>z(!1);return window.addEventListener("blur",ae),window.addEventListener("resize",ae),()=>{window.removeEventListener("blur",ae),window.removeEventListener("resize",ae)}},[z]);const[A,Q]=aI(ae=>{const ze=G().filter(pe=>!pe.disabled),lt=ze.find(pe=>pe.ref.current===document.activeElement),me=oI(ze,ae,lt);me&&setTimeout(()=>me.ref.current.focus())}),ne=b.useCallback((ae,ze,lt)=>{const me=!q.current&&!lt;(N.value!==void 0&&N.value===ze||me)&&(K(ae),me&&(q.current=!0))},[N.value]),O=b.useCallback(()=>M?.focus(),[M]),be=b.useCallback((ae,ze,lt)=>{const me=!q.current&&!lt;(N.value!==void 0&&N.value===ze||me)&&U(ae)},[N.value]),Ue=r==="popper"?l1:V4,Ce=Ue===l1?{side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:g,collisionBoundary:y,collisionPadding:x,sticky:k,hideWhenDetached:T,avoidCollisions:S}:{};return l.jsx(G4,{scope:n,content:M,viewport:D,onViewportChange:E,itemRefCallback:ne,selectedItem:R,onItemLeave:O,itemTextRefCallback:be,focusSelectedItem:W,selectedItemText:L,position:r,isPositioned:Y,searchRef:A,children:l.jsx(qg,{as:rse,allowPinchZoom:!0,children:l.jsx($g,{asChild:!0,trapped:N.open,onMountAutoFocus:ae=>{ae.preventDefault()},onUnmountAutoFocus:jt(i,ae=>{N.trigger?.focus({preventScroll:!0}),ae.preventDefault()}),children:l.jsx(pm,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:ae=>ae.preventDefault(),onDismiss:()=>N.onOpenChange(!1),children:l.jsx(Ue,{role:"listbox",id:N.contentId,"data-state":N.open?"open":"closed",dir:N.dir,onContextMenu:ae=>ae.preventDefault(),...w,...Ce,onPlaced:()=>B(!0),ref:I,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:jt(w.onKeyDown,ae=>{const ze=ae.ctrlKey||ae.altKey||ae.metaKey;if(ae.key==="Tab"&&ae.preventDefault(),!ze&&ae.key.length===1&&Q(ae.key),["ArrowUp","ArrowDown","Home","End"].includes(ae.key)){let me=G().filter(pe=>!pe.disabled).map(pe=>pe.ref.current);if(["ArrowUp","End"].includes(ae.key)&&(me=me.slice().reverse()),["ArrowUp","ArrowDown"].includes(ae.key)){const pe=ae.target,J=me.indexOf(pe);me=me.slice(J+1)}setTimeout(()=>j(me)),ae.preventDefault()}})})})})})})});H4.displayName=nse;var ise="SelectItemAlignedPosition",V4=b.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,s=Go(Ll,n),o=Ho(Ll,n),[c,d]=b.useState(null),[m,f]=b.useState(null),g=ln(t,I=>f(I)),y=Zg(n),x=b.useRef(!1),k=b.useRef(!0),{viewport:T,selectedItem:S,selectedItemText:w,focusSelectedItem:N}=o,M=b.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&m&&T&&S&&w){const I=s.trigger.getBoundingClientRect(),R=m.getBoundingClientRect(),K=s.valueNode.getBoundingClientRect(),L=w.getBoundingClientRect();if(s.dir!=="rtl"){const pe=L.left-R.left,J=K.left-pe,de=I.left-J,fe=I.width+de,Ve=Math.max(fe,R.width),Be=window.innerWidth-xs,ut=GP(J,[xs,Math.max(xs,Be-Ve)]);c.style.minWidth=fe+"px",c.style.left=ut+"px"}else{const pe=R.right-L.right,J=window.innerWidth-K.right-pe,de=window.innerWidth-I.right-J,fe=I.width+de,Ve=Math.max(fe,R.width),Be=window.innerWidth-xs,ut=GP(J,[xs,Math.max(xs,Be-Ve)]);c.style.minWidth=fe+"px",c.style.right=ut+"px"}const U=y(),G=window.innerHeight-xs*2,Y=T.scrollHeight,B=window.getComputedStyle(m),q=parseInt(B.borderTopWidth,10),j=parseInt(B.paddingTop,10),W=parseInt(B.borderBottomWidth,10),z=parseInt(B.paddingBottom,10),$=q+j+Y+z+W,A=Math.min(S.offsetHeight*5,$),Q=window.getComputedStyle(T),ne=parseInt(Q.paddingTop,10),O=parseInt(Q.paddingBottom,10),be=I.top+I.height/2-xs,Ue=G-be,Ce=S.offsetHeight/2,ae=S.offsetTop+Ce,ze=q+j+ae,lt=$-ze;if(ze<=be){const pe=U.length>0&&S===U[U.length-1].ref.current;c.style.bottom="0px";const J=m.clientHeight-T.offsetTop-T.offsetHeight,de=Math.max(Ue,Ce+(pe?O:0)+J+W),fe=ze+de;c.style.height=fe+"px"}else{const pe=U.length>0&&S===U[0].ref.current;c.style.top="0px";const de=Math.max(be,q+T.offsetTop+(pe?ne:0)+Ce)+lt;c.style.height=de+"px",T.scrollTop=ze-be+T.offsetTop}c.style.margin=`${xs}px 0`,c.style.minHeight=A+"px",c.style.maxHeight=G+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[y,s.trigger,s.valueNode,c,m,T,S,w,s.dir,r]);Vr(()=>M(),[M]);const[P,D]=b.useState();Vr(()=>{m&&D(window.getComputedStyle(m).zIndex)},[m]);const E=b.useCallback(I=>{I&&k.current===!0&&(M(),N?.(),k.current=!1)},[M,N]);return l.jsx(ase,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:x,onScrollButtonChange:E,children:l.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:P},children:l.jsx($t.div,{...i,ref:g,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});V4.displayName=ise;var sse="SelectPopperPosition",l1=b.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=xs,...s}=e,o=Yg(n);return l.jsx(h2,{...o,...s,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});l1.displayName=sse;var[ase,rT]=$c(Ll,{}),u1="SelectViewport",K4=b.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,s=Ho(u1,n),o=rT(u1,n),c=ln(t,s.onViewportChange),d=b.useRef(0);return l.jsxs(l.Fragment,{children:[l.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),l.jsx(Wg.Slot,{scope:n,children:l.jsx($t.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:jt(i.onScroll,m=>{const f=m.currentTarget,{contentWrapper:g,shouldExpandOnScrollRef:y}=o;if(y?.current&&g){const x=Math.abs(d.current-f.scrollTop);if(x>0){const k=window.innerHeight-xs*2,T=parseFloat(g.style.minHeight),S=parseFloat(g.style.height),w=Math.max(T,S);if(w<k){const N=w+x,M=Math.min(k,N),P=N-M;g.style.height=M+"px",g.style.bottom==="0px"&&(f.scrollTop=P>0?P:0,g.style.justifyContent="flex-end")}}}d.current=f.scrollTop})})})]})});K4.displayName=u1;var W4="SelectGroup",[ose,lse]=$c(W4),use=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=No();return l.jsx(ose,{scope:n,id:i,children:l.jsx($t.div,{role:"group","aria-labelledby":i,...r,ref:t})})});use.displayName=W4;var Z4="SelectLabel",cse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=lse(Z4,n);return l.jsx($t.div,{id:i.id,...r,ref:t})});cse.displayName=Z4;var lg="SelectItem",[pse,Y4]=$c(lg),Q4=b.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:s,...o}=e,c=Go(lg,n),d=Ho(lg,n),m=c.value===r,[f,g]=b.useState(s??""),[y,x]=b.useState(!1),k=ln(t,N=>d.itemRefCallback?.(N,r,i)),T=No(),S=b.useRef("touch"),w=()=>{i||(c.onValueChange(r),c.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return l.jsx(pse,{scope:n,value:r,disabled:i,textId:T,isSelected:m,onItemTextChange:b.useCallback(N=>{g(M=>M||(N?.textContent??"").trim())},[]),children:l.jsx(Wg.ItemSlot,{scope:n,value:r,disabled:i,textValue:f,children:l.jsx($t.div,{role:"option","aria-labelledby":T,"data-highlighted":y?"":void 0,"aria-selected":m&&y,"data-state":m?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...o,ref:k,onFocus:jt(o.onFocus,()=>x(!0)),onBlur:jt(o.onBlur,()=>x(!1)),onClick:jt(o.onClick,()=>{S.current!=="mouse"&&w()}),onPointerUp:jt(o.onPointerUp,()=>{S.current==="mouse"&&w()}),onPointerDown:jt(o.onPointerDown,N=>{S.current=N.pointerType}),onPointerMove:jt(o.onPointerMove,N=>{S.current=N.pointerType,i?d.onItemLeave?.():S.current==="mouse"&&N.currentTarget.focus({preventScroll:!0})}),onPointerLeave:jt(o.onPointerLeave,N=>{N.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:jt(o.onKeyDown,N=>{d.searchRef?.current!==""&&N.key===" "||(Zie.includes(N.key)&&w(),N.key===" "&&N.preventDefault())})})})})});Q4.displayName=lg;var Td="SelectItemText",X4=b.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...s}=e,o=Go(Td,n),c=Ho(Td,n),d=Y4(Td,n),m=Jie(Td,n),[f,g]=b.useState(null),y=ln(t,w=>g(w),d.onItemTextChange,w=>c.itemTextRefCallback?.(w,d.value,d.disabled)),x=f?.textContent,k=b.useMemo(()=>l.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:T,onNativeOptionRemove:S}=m;return Vr(()=>(T(k),()=>S(k)),[T,S,k]),l.jsxs(l.Fragment,{children:[l.jsx($t.span,{id:d.textId,...s,ref:y}),d.isSelected&&o.valueNode&&!o.valueNodeHasChildren?fg.createPortal(s.children,o.valueNode):null]})});X4.displayName=Td;var J4="SelectItemIndicator",eI=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return Y4(J4,n).isSelected?l.jsx($t.span,{"aria-hidden":!0,...r,ref:t}):null});eI.displayName=J4;var c1="SelectScrollUpButton",tI=b.forwardRef((e,t)=>{const n=Ho(c1,e.__scopeSelect),r=rT(c1,e.__scopeSelect),[i,s]=b.useState(!1),o=ln(t,r.onScrollButtonChange);return Vr(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollTop>0;s(m)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?l.jsx(rI,{...e,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop-d.offsetHeight)}}):null});tI.displayName=c1;var p1="SelectScrollDownButton",nI=b.forwardRef((e,t)=>{const n=Ho(p1,e.__scopeSelect),r=rT(p1,e.__scopeSelect),[i,s]=b.useState(!1),o=ln(t,r.onScrollButtonChange);return Vr(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollHeight-d.clientHeight,f=Math.ceil(d.scrollTop)<m;s(f)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?l.jsx(rI,{...e,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop+d.offsetHeight)}}):null});nI.displayName=p1;var rI=b.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,s=Ho("SelectScrollButton",n),o=b.useRef(null),c=Zg(n),d=b.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return b.useEffect(()=>()=>d(),[d]),Vr(()=>{c().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),l.jsx($t.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:jt(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:jt(i.onPointerMove,()=>{s.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:jt(i.onPointerLeave,()=>{d()})})}),dse="SelectSeparator",mse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return l.jsx($t.div,{"aria-hidden":!0,...r,ref:t})});mse.displayName=dse;var d1="SelectArrow",fse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=Yg(n),s=Go(d1,n),o=Ho(d1,n);return s.open&&o.position==="popper"?l.jsx(g2,{...i,...r,ref:t}):null});fse.displayName=d1;var hse="SelectBubbleInput",iI=b.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=b.useRef(null),s=ln(r,i),o=W2(t);return b.useEffect(()=>{const c=i.current;if(!c)return;const d=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(d,"value").set;if(o!==t&&f){const g=new Event("change",{bubbles:!0});f.call(c,t),c.dispatchEvent(g)}},[o,t]),l.jsx($t.select,{...n,style:{...LD,...n.style},ref:s,defaultValue:t})});iI.displayName=hse;function sI(e){return e===""||e===void 0}function aI(e){const t=jl(e),n=b.useRef(""),r=b.useRef(0),i=b.useCallback(o=>{const c=n.current+o;t(c),(function d(m){n.current=m,window.clearTimeout(r.current),m!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(c)},[t]),s=b.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return b.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,s]}function oI(e,t,n){const i=t.length>1&&Array.from(t).every(m=>m===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let o=gse(e,Math.max(s,0));i.length===1&&(o=o.filter(m=>m!==n));const d=o.find(m=>m.textValue.toLowerCase().startsWith(i.toLowerCase()));return d!==n?d:void 0}function gse(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var yse=O4,xse=U4,vse=z4,bse=$4,Tse=B4,_se=q4,kse=K4,wse=Q4,Sse=X4,Mse=eI,Nse=tI,Pse=nI;function zl({...e}){return l.jsx(yse,{"data-slot":"select",...e})}function $l({...e}){return l.jsx(vse,{"data-slot":"select-value",...e})}function Bl({className:e,size:t="default",children:n,...r}){return l.jsxs(xse,{"data-slot":"select-trigger","data-size":t,className:se("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[n,l.jsx(bse,{asChild:!0,children:l.jsx(Ir,{className:"size-4 opacity-50"})})]})}function ql({className:e,children:t,position:n="popper",...r}){return l.jsx(Tse,{children:l.jsxs(_se,{"data-slot":"select-content",className:se("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[l.jsx(Cse,{}),l.jsx(kse,{className:se("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),l.jsx(Ese,{})]})})}function qs({className:e,children:t,...n}){return l.jsxs(wse,{"data-slot":"select-item",className:se("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[l.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:l.jsx(Mse,{children:l.jsx(ur,{className:"size-4"})})}),l.jsx(Sse,{children:t})]})}function Cse({className:e,...t}){return l.jsx(Nse,{"data-slot":"select-scroll-up-button",className:se("flex cursor-default items-center justify-center py-1",e),...t,children:l.jsx(Sg,{className:"size-4"})})}function Ese({className:e,...t}){return l.jsx(Pse,{"data-slot":"select-scroll-down-button",className:se("flex cursor-default items-center justify-center py-1",e),...t,children:l.jsx(Ir,{className:"size-4"})})}const Dse=[/\bapi[_-]?key\b/i,/\bapikey\b/i,/\bsecret\b/i,/\btoken\b/i,/\bpassword\b/i,/\bauthorization\b/i,/\bauth[_-]?token\b/i,/\bbearer\b/i,/\bcredential\b/i,/\bclient[_-]?secret\b/i];function bv({label:e="Key-Value Pairs",placeholder:t={key:"Key",value:"Value"},pairs:n,onChange:r,disabled:i=!1,className:s="",keyLabel:o="Key",valueLabel:c="Value",maskSensitiveValues:d=!0}){const[m,f]=b.useState(new Set),g=S=>!d||!S?!1:Dse.some(w=>w.test(S)),y=S=>{f(w=>{const N=new Set(w);return N.has(S)?N.delete(S):N.add(S),N})},x=()=>{const S={key:"",value:"",id:`kv-${Date.now()}-${Math.random().toString(36).substring(2,11)}`};r([...n,S])},k=S=>{const w=n.filter(N=>N.id!==S);r(w)},T=(S,w,N)=>{r(n.map(M=>M.id===S?{...M,[w]:N}:M))};return l.jsxs("div",{className:`space-y-3 ${s}`,children:[e&&l.jsx(fn,{className:"text-sm font-medium",children:e}),l.jsxs("div",{className:"space-y-2",children:[n.length>0&&l.jsxs("div",{className:"grid grid-cols-12 gap-2 items-center text-xs text-muted-foreground",children:[l.jsx("div",{className:"col-span-5",children:o}),l.jsx("div",{className:"col-span-6",children:c}),l.jsx("div",{className:"col-span-1"})]}),n.map(S=>{const w=g(S.key),N=m.has(S.id);return l.jsxs("div",{className:"grid grid-cols-12 gap-2 items-center",children:[l.jsx(ct,{placeholder:t.key,value:S.key,onChange:M=>T(S.id,"key",M.target.value),disabled:i,className:"col-span-5"}),l.jsxs("div",{className:"col-span-6 relative",children:[l.jsx(ct,{type:w&&!N?"password":"text",placeholder:t.value,value:S.value,onChange:M=>T(S.id,"value",M.target.value),disabled:i,className:"pr-10"}),w&&S.value&&l.jsx(Pe,{type:"button",variant:"ghost",size:"sm",onClick:()=>y(S.id),disabled:i,className:"absolute right-0 top-0 h-full w-10 p-0 hover:bg-transparent","aria-label":N?"Hide value":"Show value",children:N?l.jsx(cm,{className:"h-4 w-4 text-muted-foreground"}):l.jsx(jc,{className:"h-4 w-4 text-muted-foreground"})})]}),l.jsx(Pe,{type:"button",variant:"ghost",size:"sm",onClick:()=>k(S.id),disabled:i,className:"col-span-1 h-8 w-8 p-0",children:l.jsx(Ar,{className:"h-4 w-4"})})]},S.id)})]}),l.jsxs(Pe,{type:"button",variant:"outline",size:"sm",onClick:x,disabled:i,className:"w-full mt-2",children:[l.jsx(xi,{className:"h-4 w-4 mr-2"}),"Add ",o]})]})}var Qg="Checkbox",[jse]=$o(Qg),[Ise,iT]=jse(Qg);function Rse(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:s,form:o,name:c,onCheckedChange:d,required:m,value:f="on",internal_do_not_use_render:g}=e,[y,x]=Rl({prop:n,defaultProp:i??!1,onChange:d,caller:Qg}),[k,T]=b.useState(null),[S,w]=b.useState(null),N=b.useRef(!1),M=k?!!o||!!k.closest("form"):!0,P={checked:y,disabled:s,setChecked:x,control:k,setControl:T,name:c,form:o,value:f,hasConsumerStoppedPropagationRef:N,required:m,defaultChecked:Po(i)?!1:i,isFormControl:M,bubbleInput:S,setBubbleInput:w};return l.jsx(Ise,{scope:t,...P,children:Ase(g)?g(P):r})}var lI="CheckboxTrigger",uI=b.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i)=>{const{control:s,value:o,disabled:c,checked:d,required:m,setControl:f,setChecked:g,hasConsumerStoppedPropagationRef:y,isFormControl:x,bubbleInput:k}=iT(lI,e),T=ln(i,f),S=b.useRef(d);return b.useEffect(()=>{const w=s?.form;if(w){const N=()=>g(S.current);return w.addEventListener("reset",N),()=>w.removeEventListener("reset",N)}},[s,g]),l.jsx($t.button,{type:"button",role:"checkbox","aria-checked":Po(d)?"mixed":d,"aria-required":m,"data-state":hI(d),"data-disabled":c?"":void 0,disabled:c,value:o,...r,ref:T,onKeyDown:jt(t,w=>{w.key==="Enter"&&w.preventDefault()}),onClick:jt(n,w=>{g(N=>Po(N)?!0:!N),k&&x&&(y.current=w.isPropagationStopped(),y.current||w.stopPropagation())})})});uI.displayName=lI;var cI=b.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:i,defaultChecked:s,required:o,disabled:c,value:d,onCheckedChange:m,form:f,...g}=e;return l.jsx(Rse,{__scopeCheckbox:n,checked:i,defaultChecked:s,disabled:c,required:o,onCheckedChange:m,name:r,form:f,value:d,internal_do_not_use_render:({isFormControl:y})=>l.jsxs(l.Fragment,{children:[l.jsx(uI,{...g,ref:t,__scopeCheckbox:n}),y&&l.jsx(fI,{__scopeCheckbox:n})]})})});cI.displayName=Qg;var pI="CheckboxIndicator",dI=b.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...i}=e,s=iT(pI,n);return l.jsx(ja,{present:r||Po(s.checked)||s.checked===!0,children:l.jsx($t.span,{"data-state":hI(s.checked),"data-disabled":s.disabled?"":void 0,...i,ref:t,style:{pointerEvents:"none",...e.style}})})});dI.displayName=pI;var mI="CheckboxBubbleInput",fI=b.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:i,checked:s,defaultChecked:o,required:c,disabled:d,name:m,value:f,form:g,bubbleInput:y,setBubbleInput:x}=iT(mI,e),k=ln(n,x),T=W2(s),S=p2(r);b.useEffect(()=>{const N=y;if(!N)return;const M=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(M,"checked").set,E=!i.current;if(T!==s&&D){const I=new Event("click",{bubbles:E});N.indeterminate=Po(s),D.call(N,Po(s)?!1:s),N.dispatchEvent(I)}},[y,T,s,i]);const w=b.useRef(Po(s)?!1:s);return l.jsx($t.input,{type:"checkbox","aria-hidden":!0,defaultChecked:o??w.current,required:c,disabled:d,name:m,value:f,form:g,...t,tabIndex:-1,ref:k,style:{...t.style,...S,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});fI.displayName=mI;function Ase(e){return typeof e=="function"}function Po(e){return e==="indeterminate"}function hI(e){return Po(e)?"indeterminate":e?"checked":"unchecked"}function gI({className:e,...t}){return l.jsx(cI,{"data-slot":"checkbox",className:se("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:l.jsx(dI,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:l.jsx(ur,{className:"size-3.5"})})})}function yI({isOpen:e,onClose:t,onServerConnected:n,initialName:r,initialConfig:i,lockName:s}){const o=i2(),[c,d]=b.useState(""),[m,f]=b.useState("stdio"),[g,y]=b.useState(""),[x,k]=b.useState(""),[T,S]=b.useState(""),[w,N]=b.useState([]),[M,P]=b.useState([]),[D,E]=b.useState(null),[I,R]=b.useState(!1),[K,L]=b.useState(!1),U=j=>{const W={};return j.forEach(z=>{z.key.trim()&&z.value.trim()&&(W[z.key.trim()]=z.value.trim())}),W},G=j=>{const W={};for(const{key:z,value:$}of j){const A=z.trim(),Q=$.trim();A&&Q&&(W[A]=Q)}return W},Y=j=>{const W=["api_key","secret","token","password","key"],z={};for(const[$,A]of Object.entries(j)){const Q=W.some(ne=>$.toLowerCase().includes(ne));z[$]=Q?"***masked***":A}return z},B=j=>{const W=["authorization","proxy-authorization","api-key","x-api-key","token","cookie","set-cookie"],z={};for(const[$,A]of Object.entries(j)){const Q=$.toLowerCase(),ne=W.some(O=>Q===O||Q.includes(O));z[$]=ne?"***masked***":A}return z};b.useEffect(()=>{if(!e){const j=setTimeout(()=>{d(""),f("stdio"),y(""),k(""),S(""),N([]),P([]),E(null),R(!1)},300);return()=>clearTimeout(j)}},[e]),b.useEffect(()=>{if(!e)return;d(r??"");const j=i?.type??"stdio";if(f(j),j==="stdio"){const W=i??{};y(typeof W.command=="string"?W.command:""),k(Array.isArray(W.args)?W.args.join(", "):"");const z=Object.entries(W.env??{});P(z.map(([$,A],Q)=>({key:$,value:String(A??""),id:`env-${Q}`}))),S(""),N([])}else{const W=i??{};S(typeof W.url=="string"?W.url:"");const z=Object.entries(W.headers??{});N(z.map(([$,A],Q)=>({key:$,value:String(A??""),id:`hdr-${Q}`}))),y(""),k(""),P([])}},[e,r,i]);const q=async j=>{if(j.preventDefault(),E(null),R(!0),!c.trim()){E("Server name is required."),R(!1);return}if(m==="stdio"){if(!g.trim()){E("Command is required for stdio servers."),R(!1);return}const z=M.map($=>$.key.trim()).filter(Boolean);if(z.length){const $=z.filter((Q,ne)=>z.indexOf(Q)!==ne);if($.length){E(`Duplicate environment variables: ${Array.from(new Set($)).join(", ")}`),R(!1);return}const A=M.filter(Q=>Q.key.trim()&&!Q.value.trim()).map(Q=>Q.key.trim());if(A.length){E(`Please set required environment variables: ${A.join(", ")}`),R(!1);return}}}else{if(!T.trim()){E(`URL is required for ${m.toUpperCase()} servers.`),R(!1);return}try{new URL(T.trim())}catch{E(`Invalid URL format for ${m.toUpperCase()} server.`),R(!1);return}}let W;m==="stdio"?W={type:"stdio",command:g.trim(),args:x.split(",").map(z=>z.trim()).filter(Boolean),env:G(M),timeout:3e4,connectionMode:"lenient"}:m==="sse"?W={type:"sse",url:T.trim(),headers:w.length?U(w):{},timeout:3e4,connectionMode:"lenient"}:W={type:"http",url:T.trim(),headers:w.length?U(w):{},timeout:3e4,connectionMode:"lenient"};try{await o.mutateAsync({name:c.trim(),config:W,persistToAgent:K}),n?.(),t()}catch(z){let $="Failed to connect server";z instanceof Error?$=z.message||$:typeof z=="string"&&($=z),o.reset(),E($)}finally{R(!1)}};return l.jsx(qr,{open:e,onOpenChange:j=>!j&&t(),children:l.jsxs(Gr,{className:"sm:max-w-[480px]",children:[l.jsxs(ti,{children:[l.jsx(Hr,{children:"Connect New MCP Server"}),l.jsx(is,{children:"Configure connection details for a new MCP server (stdio, SSE, or HTTP)."})]}),l.jsxs("form",{id:"connectServerForm",onSubmit:q,className:"grid gap-4 py-4",children:[D&&l.jsx(ri,{variant:"destructive",children:l.jsx(ii,{children:D})}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"serverName",className:"text-right",children:"Server Name"}),l.jsx(ct,{id:"serverName",value:c,onChange:j=>d(j.target.value),className:"col-span-3",placeholder:"e.g., My Local Tools",required:!0,disabled:I||!!s})]}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"serverType",className:"text-right",children:"Server Type"}),l.jsxs(zl,{value:m,onValueChange:j=>f(j),disabled:I,children:[l.jsx(Bl,{id:"serverType",className:"col-span-3",children:l.jsx($l,{placeholder:"Select type"})}),l.jsxs(ql,{children:[l.jsx(qs,{value:"stdio",children:"stdio"}),l.jsx(qs,{value:"sse",children:"sse"}),l.jsx(qs,{value:"http",children:"http"})]})]})]}),m==="stdio"?l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"command",className:"text-right",children:"Command"}),l.jsx(ct,{id:"command",value:g,onChange:j=>y(j.target.value),className:"col-span-3",placeholder:"e.g., /path/to/executable or python",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"args",className:"text-right",children:"Arguments"}),l.jsx(ct,{id:"args",value:x,onChange:j=>k(j.target.value),className:"col-span-3",placeholder:"Comma-separated, e.g., -m,script.py,--port,8080",disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Environment"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:M,onChange:P,placeholder:{key:"API_KEY",value:"your-secret-key"},disabled:I,keyLabel:"Variable",valueLabel:"Value"})})]})]}):m==="sse"?l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"url",className:"text-right",children:"URL"}),l.jsx(ct,{id:"url",type:"url",value:T,onChange:j=>S(j.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8000/events",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Headers"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:w,onChange:N,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:I,keyLabel:"Header",valueLabel:"Value"})})]})]}):l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"url",className:"text-right",children:"URL"}),l.jsx(ct,{id:"url",type:"url",value:T,onChange:j=>S(j.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8080",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Headers"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:w,onChange:N,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:I,keyLabel:"Header",valueLabel:"Value"})})]})]}),l.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[l.jsx(gI,{id:"persistToAgent",checked:K,onCheckedChange:j=>L(j===!0),disabled:I}),l.jsx(fn,{htmlFor:"persistToAgent",className:"text-sm font-normal cursor-pointer",children:"Save to agent configuration file"})]})]}),l.jsxs(Ui,{children:[l.jsx(D4,{asChild:!0,children:l.jsx(Pe,{type:"button",variant:"outline",disabled:I,children:"Cancel"})}),l.jsx(Pe,{type:"submit",form:"connectServerForm",disabled:I,children:I?"Connecting...":"Connect"})]})]})})}var Ose=[{id:"filesystem",name:"Filesystem",description:"Secure file operations with configurable access controls for reading and writing files",category:"productivity",icon:"📁",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","."],timeout:3e4},tags:["file","directory","filesystem","io"],isOfficial:!0,isInstalled:!1,author:"Anthropic",homepage:"https://github.com/modelcontextprotocol/servers",matchIds:["filesystem"]},{id:"meme-mcp",name:"Meme Generator",description:"Create memes using Imgflip templates",category:"creative",icon:"🖼️",config:{type:"stdio",command:"npx",args:["-y","meme-mcp"],env:{IMGFLIP_USERNAME:"",IMGFLIP_PASSWORD:""},timeout:3e4},tags:["meme","image","creative"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Community",homepage:"https://www.npmjs.com/package/meme-mcp",matchIds:["meme-mcp"]},{id:"product-name-scout",name:"Product Name Scout",description:"SERP analysis, autocomplete, dev collisions, and scoring for product names",category:"research",icon:"🔎",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/product-name-scout-mcp"],timeout:3e4},tags:["research","naming","brand"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["product-name-scout"]},{id:"duckduckgo",name:"DuckDuckGo Search",description:"Search the web using DuckDuckGo",category:"research",icon:"🦆",config:{type:"stdio",command:"uvx",args:["duckduckgo-mcp-server"],timeout:3e4},tags:["search","web","research"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",python:">=3.10",dependencies:["uv"]},author:"Community",homepage:"https://github.com/duckduckgo/mcp-server",matchIds:["duckduckgo","ddg"]},{id:"domain-checker",name:"Domain Checker",description:"Check domain availability across TLDs",category:"research",icon:"🌐",config:{type:"stdio",command:"uvx",args:["truffle-ai-domain-checker-mcp"],timeout:3e4},tags:["domains","availability","research"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["domain-checker"]},{id:"swiggy-food",name:"Swiggy Food",description:"Order food with restaurant search, menus, cart management, and checkout",category:"productivity",icon:"🍔",config:{type:"http",url:"https://mcp.swiggy.com/food",timeout:3e4},tags:["swiggy","food","delivery","ordering"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-food","swiggy_food"]},{id:"swiggy-instamart",name:"Swiggy Instamart",description:"Shop groceries with product search, cart management, and checkout",category:"productivity",icon:"🛒",config:{type:"http",url:"https://mcp.swiggy.com/im",timeout:3e4},tags:["swiggy","instamart","groceries","delivery"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-instamart","swiggy_instamart"]},{id:"swiggy-dineout",name:"Swiggy Dineout",description:"Find restaurants, check availability, and book tables",category:"productivity",icon:"🍽️",config:{type:"http",url:"https://mcp.swiggy.com/dineout",timeout:3e4},tags:["swiggy","dineout","reservations","restaurants"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-dineout","swiggy_dineout"]},{id:"linear",name:"Linear",description:"Manage Linear issues, projects, and workflows",category:"productivity",icon:"📋",config:{type:"stdio",command:"npx",args:["-y","mcp-remote","https://mcp.linear.app/sse"],timeout:3e4},tags:["linear","tasks","projects"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Linear",homepage:"https://mcp.linear.app",matchIds:["linear"]},{id:"image-editor",name:"Image Editor",description:"Comprehensive image processing and manipulation tools",category:"creative",icon:"🖌️",config:{type:"stdio",command:"uvx",args:["truffle-ai-image-editor-mcp"],timeout:3e4},tags:["image","edit","opencv","pillow"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["image_editor","image-editor"]},{id:"music-creator",name:"Music Creator",description:"Create, analyze, and transform music and audio",category:"creative",icon:"🎵",config:{type:"stdio",command:"uvx",args:["truffle-ai-music-creator-mcp"],timeout:3e4},tags:["audio","music","effects"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["music_creator","music-creator"]},{id:"elevenlabs",name:"ElevenLabs",description:"Text-to-speech and voice synthesis using ElevenLabs API",category:"creative",icon:"🎤",config:{type:"stdio",command:"uvx",args:["elevenlabs-mcp"],env:{ELEVENLABS_API_KEY:""},timeout:3e4},tags:["tts","voice","audio","synthesis"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"ElevenLabs",homepage:"https://github.com/elevenlabs/elevenlabs-mcp",matchIds:["elevenlabs"]},{id:"hf",name:"Hugging Face",description:"Access Hugging Face models and datasets",category:"development",icon:"🤗",config:{type:"stdio",command:"npx",args:["-y","@llmindset/mcp-hfspace"],timeout:3e4},tags:["huggingface","models","ai","ml"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"LLMindset",homepage:"https://github.com/llmindset/mcp-hfspace",matchIds:["hf","huggingface"]},{id:"tavily",name:"Tavily Search",description:"Web search and research using Tavily AI search engine",category:"research",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","tavily-mcp@0.1.3"],env:{TAVILY_API_KEY:""},timeout:3e4},tags:["search","web","research","ai"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Tavily AI",homepage:"https://www.npmjs.com/package/tavily-mcp",matchIds:["tavily"]},{id:"puppeteer",name:"Puppeteer",description:"Browser automation and web interaction tools",category:"productivity",icon:"🌐",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/puppeteer-server"],timeout:3e4},tags:["browser","automation","web","puppeteer"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["puppeteer"]},{id:"gemini-tts",name:"Gemini TTS",description:"Google Gemini Text-to-Speech with 30 prebuilt voices and multi-speaker conversation support",category:"creative",icon:"🎙️",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/gemini-tts-server"],env:{GEMINI_API_KEY:""},timeout:6e4},tags:["tts","speech","voice","audio","gemini","multi-speaker"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["gemini-tts","gemini_tts"]},{id:"nano-banana",name:"Nano Banana",description:"Google Gemini 2.5 Flash Image for advanced image generation, editing, and manipulation",category:"creative",icon:"🍌",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/nano-banana-server@0.1.2"],env:{GEMINI_API_KEY:""},timeout:6e4},tags:["image","generation","editing","ai","gemini","nano-banana"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["nano-banana","nano_banana"]},{id:"openai-image",name:"OpenAI Image",description:"OpenAI's image generation and editing API with GPT Image models and DALL-E support",category:"creative",icon:"🎨",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/openai-image-server"],env:{OPENAI_API_KEY:""},timeout:6e4},tags:["image","generation","editing","ai","openai","dall-e","gpt-image"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers/tree/main/src/openai-image",matchIds:["openai-image","openai_image"]},{id:"heygen",name:"HeyGen",description:"Generate realistic human-like audio using HeyGen",category:"creative",icon:"🎤",config:{type:"stdio",command:"uvx",args:["heygen-mcp"],env:{HEYGEN_API_KEY:""},timeout:3e4},tags:["audio","voice","synthesis","heygen"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"HeyGen",homepage:"https://github.com/heygen-com/heygen-mcp",matchIds:["heygen"]},{id:"runway",name:"Runway",description:"AI-powered creative suite for video and image generation",category:"creative",icon:"🎬",config:{type:"stdio",command:"npx",args:["mcp-remote","https://mcp.runway.team","--header","Authorization: Bearer ${RUNWAY_API_KEY}"],env:{RUNWAY_API_KEY:""},timeout:6e4},tags:["runway","video","generation","ai","creative"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Runway",homepage:"https://docs.runway.team/api/runway-mcp-server",matchIds:["runway"]},{id:"perplexity",name:"Perplexity",description:"AI-powered search engine for real-time web search and research",category:"research",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","@perplexity-ai/mcp-server"],env:{PERPLEXITY_API_KEY:"",PERPLEXITY_TIMEOUT_MS:"600000"},timeout:6e5},tags:["search","web","research","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Perplexity AI",homepage:"https://github.com/perplexityai/modelcontextprotocol/tree/main",matchIds:["perplexity"]},{id:"sora",name:"Sora",description:"AI-powered video generation using OpenAI's Sora technology",category:"creative",icon:"🎬",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/sora-video-server"],env:{OPENAI_API_KEY:""},timeout:6e4},tags:["video","generation","ai","creative"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["sora","sora_video"]},{id:"chartjs",name:"ChartJS",description:"Charting and visualization tool using ChartJS",category:"data",icon:"📊",config:{type:"stdio",command:"npx",args:["-y","@ax-crew/chartjs-mcp-server"],timeout:3e4},tags:["chart","visualization","data","chartjs"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"ax-crew",homepage:"https://github.com/ax-crew/chartjs-mcp-server",matchIds:["chartjs"]},{id:"rag-lite-ts",name:"Rag-lite TS",description:"A local-first TypeScript retrieval engine for semantic search over static documents.",category:"data",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","raglite-mcp"],timeout:3e4},tags:["rag","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"FrugalX",homepage:"https://github.com/raglite/rag-lite-ts",matchIds:["rag-lite-ts"]},{id:"exa",name:"Exa",description:"AI-powered web search and research API with semantic search capabilities.",category:"data",icon:"🔍",config:{type:"http",url:"https://mcp.exa.ai/mcp",headers:{}},tags:["rag","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Exa",homepage:"https://docs.exa.ai/reference/exa-mcp",matchIds:["exa"]},{id:"firecrawl",name:"Firecrawl",description:"AI-powered web search and research API that performs semantic search across web sources, aggregates and ranks results for relevance, and returns contextual summaries with citations",category:"data",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","firecrawl-mcp"],env:{FIRECRAWL_API_KEY:""},timeout:3e4},tags:["search","web","research","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Firecrawl",homepage:"https://docs.firecrawl.dev/mcp-server",matchIds:["firecrawl"]},{id:"shadcn",name:"Shadcn",description:"Shadcn UI components for MCP servers",category:"development",icon:"🖌️",config:{type:"stdio",command:"npx",args:["shadcn@latest","mcp"],timeout:3e4},tags:["shadcn","ui","components","mcp"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Shadcn",homepage:"https://ui.shadcn.com/docs/mcp#configuration",matchIds:["shadcn"]},{id:"kite-trade",name:"Kite",description:"Zerodha Kite API MCP server",category:"data",icon:"💰",config:{type:"http",url:"https://mcp.kite.trade/mcp",headers:{}},tags:["kite","trade","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Zerodha",homepage:"https://github.com/zerodha/kite-mcp-server",matchIds:["kite-trade"]},{id:"coingecko",name:"CoinGecko",description:"CoinGecko API MCP server",category:"data",icon:"💰",config:{type:"http",url:"https://mcp.api.coingecko.com/mcp",headers:{}},tags:["coingecko","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"CoinGecko",homepage:"https://docs.coingecko.com/docs/mcp-server",matchIds:["coingecko"]}];function HP(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var Fse=class _d{static instance;registryEntries=[];isInitialized=!1;constructor(){}static getInstance(){return _d.instance||(_d.instance=new _d),_d.instance}async initialize(){this.isInitialized||(this.registryEntries=Ose,this.isInitialized=!0)}async getEntries(t){await this.initialize();let n=[...this.registryEntries];if(t?.category&&(n=n.filter(r=>r.category===t.category)),t?.tags?.length&&(n=n.filter(r=>t.tags.some(i=>r.tags.includes(i)))),t?.search){const r=t.search.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(r)||i.description.toLowerCase().includes(r)||i.tags.some(s=>s.toLowerCase().includes(r)))}return t?.installed!==void 0&&(n=n.filter(r=>r.isInstalled===t.installed)),t?.official!==void 0&&(n=n.filter(r=>r.isOfficial===t.official)),n.sort((r,i)=>r.isInstalled!==i.isInstalled?r.isInstalled?-1:1:r.isOfficial!==i.isOfficial?r.isOfficial?-1:1:r.name.localeCompare(i.name))}async updateEntry(t,n){await this.initialize();const r=this.registryEntries.find(i=>i.id===t);return r?(Object.assign(r,n),!0):!1}async setInstalled(t,n){return this.updateEntry(t,{isInstalled:n})}async syncInstalledStatus(t){await this.initialize();const n=new Set(t.map(HP));for(const r of this.registryEntries){const s=[r.id,r.name,...r.matchIds||[]].filter(Boolean).map(o=>HP(String(o))).some(o=>n.has(o));r.isInstalled!==s&&(r.isInstalled=s)}}async getServerConfig(t){return await this.initialize(),this.registryEntries.find(n=>n.id===t)||null}async getCategories(){await this.initialize();const t=new Set(this.registryEntries.map(n=>n.category));return Array.from(t).sort()}async getTags(){await this.initialize();const t=new Set(this.registryEntries.flatMap(n=>n.tags));return Array.from(t).sort()}},Use=Fse.getInstance();class xo{constructor(){this.registryEntries=[],this.isInitialized=!1}static normalizeId(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}static getInstance(){return xo.instance||(xo.instance=new xo),xo.instance}async initialize(){this.isInitialized||(this.registryEntries=await this.getBuiltinEntries(),this.isInitialized=!0)}async getEntries(t){await this.initialize();let n=[...this.registryEntries];if(t?.category&&(n=n.filter(r=>r.category===t.category)),t?.tags?.length&&(n=n.filter(r=>t.tags.some(i=>r.tags.includes(i)))),t?.search){const r=t.search.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(r)||i.description.toLowerCase().includes(r)||i.tags.some(s=>s.toLowerCase().includes(r)))}return t?.installed!==void 0&&(n=n.filter(r=>r.isInstalled===t.installed)),t?.official!==void 0&&(n=n.filter(r=>r.isOfficial===t.official)),n.sort((r,i)=>r.isInstalled!==i.isInstalled?r.isInstalled?-1:1:r.isOfficial!==i.isOfficial?r.isOfficial?-1:1:r.name.localeCompare(i.name))}async updateEntry(t,n){const r=this.registryEntries.findIndex(i=>i.id===t);return r===-1?!1:(this.registryEntries[r]={...this.registryEntries[r],...n},!0)}async setInstalled(t,n){return this.updateEntry(t,{isInstalled:n})}async syncWithServerStatus(){try{if(await this.initialize(),this.registryEntries.length===0){console.warn("Registry entries not available for status sync");return}const t=await Xe.api.mcp.servers.$get();if(!t.ok)throw new Error(`Failed to fetch servers: ${t.status}`);const r=(await t.json()).servers||[],i=new Set;r.forEach(s=>{if(!s?.id||typeof s.id!="string")return;const o=xo.normalizeId(s.id);i.add(o)});for(const s of this.registryEntries){const d=[s.id,s.name,...s.matchIds||[]].filter(Boolean).map(m=>xo.normalizeId(String(m))).some(m=>i.has(m));s.isInstalled!==d&&(s.isInstalled=d)}}catch(t){console.warn("Failed to sync registry with server status:",t)}}async getServerConfig(t){return await this.initialize(),this.registryEntries.find(n=>n.id===t)||null}async getBuiltinEntries(){return Use.getEntries()}}const Ts=xo.getInstance();function m1({isOpen:e,onClose:t,onInstallServer:n,onOpenConnectModal:r,refreshTrigger:i,disableClose:s=!1}){const[o,c]=b.useState([]),[d,m]=b.useState([]),[f,g]=b.useState(!1),[y,x]=b.useState(null),[k,T]=b.useState(null),[S]=b.useState({}),[w,N]=b.useState(""),[M,P]=b.useState("grid"),[D,E]=b.useState(null),I=b.useRef(null),R=b.useRef(!0),K=b.useRef(null);b.useEffect(()=>(R.current=!0,()=>{R.current=!1,I.current&&clearTimeout(I.current),K.current&&K.current.abort()}),[]),b.useEffect(()=>{if(!e)return;(async()=>{K.current&&K.current.abort();const W=new AbortController;if(K.current=W,!!R.current){g(!0),x(null);try{await Ts.syncWithServerStatus();const z=await Ts.getEntries();R.current&&!W.signal.aborted&&(c(z),m(z))}catch(z){if(R.current&&!W.signal.aborted){const $=z instanceof Error?z.message:"Failed to load server registry";x($)}}finally{R.current&&!W.signal.aborted&&g(!1)}}})()},[e,i]);const L=b.useCallback(async(j,W)=>{if(R.current)try{const z=await Ts.getEntries({...j,search:W||void 0});R.current&&m(z)}catch(z){if(R.current){const $=z instanceof Error?z.message:"Failed to filter entries";x($)}}},[]);b.useEffect(()=>(I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{L(S,w)},300),()=>{I.current&&clearTimeout(I.current)}),[S,w,o,L]);const U=async j=>{if(R.current){T(j.id);try{await n(j)==="connected"?(await Ts.setInstalled(j.id,!0),R.current&&(c(z=>z.map($=>$.id===j.id?{...$,isInstalled:!0}:$)),m(z=>z.map($=>$.id===j.id?{...$,isInstalled:!0}:$)))):R.current&&(c(z=>z.map($=>$.id===j.id?{...$,isInstalled:!1}:$)),m(z=>z.map($=>$.id===j.id?{...$,isInstalled:!1}:$)))}catch(W){if(R.current){const z=W instanceof Error?W.message:"Failed to install server";x(z)}}finally{R.current&&T(null)}}},G=j=>{const W={productivity:"bg-blue-50 text-blue-700 border-blue-200/60",development:"bg-emerald-50 text-emerald-700 border-emerald-200/60",research:"bg-purple-50 text-purple-700 border-purple-200/60",creative:"bg-pink-50 text-pink-700 border-pink-200/60",data:"bg-amber-50 text-amber-700 border-amber-200/60",communication:"bg-indigo-50 text-indigo-700 border-indigo-200/60",custom:"bg-slate-50 text-slate-700 border-slate-200/60"};return W[j]||W.custom},Y=s||!!k,B=b.useCallback(j=>{!j&&!Y&&t()},[Y,t]),q=Y?j=>{j.preventDefault()}:void 0;return l.jsx(qr,{open:e,onOpenChange:B,children:l.jsxs(Gr,{className:"!max-w-none w-[90vw] max-h-[85vh] overflow-hidden flex flex-col !sm:max-w-none p-0 bg-gradient-to-b from-background via-background to-muted/20",hideCloseButton:!0,onEscapeKeyDown:Y?j=>j.preventDefault():void 0,onInteractOutside:q,children:[l.jsx(ti,{className:"pb-4 border-b px-6 pt-5 bg-gradient-to-r from-muted/30 via-transparent to-transparent",children:l.jsxs("div",{className:"flex items-center justify-between gap-4",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"p-2 rounded-lg bg-primary/10 border border-primary/20 flex-shrink-0",children:l.jsx(So,{className:"h-5 w-5 text-primary"})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx(Hr,{className:"text-lg font-semibold leading-tight mb-1",children:"MCP Server Registry"}),l.jsx(is,{className:"text-sm text-muted-foreground",children:"Discover and add integrations to your AI assistant"})]})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsxs(Pe,{onClick:()=>{Y||t(),r?.()},size:"sm",variant:"outline",className:"h-8 px-3 text-sm font-medium hover:bg-muted whitespace-nowrap",children:[l.jsx(kB,{className:"mr-1.5 h-3.5 w-3.5"}),"Connect Custom"]}),l.jsxs(Pe,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>t(),disabled:Y,children:[l.jsx(Cn,{className:"h-4 w-4"}),l.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}),l.jsxs("div",{className:"flex gap-3 mb-5 px-6 pt-5",children:[l.jsxs("div",{className:"relative flex-1",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/60 pointer-events-none z-10"}),l.jsx(ct,{placeholder:"Search servers and integrations...",value:w,onChange:j=>N(j.target.value),className:"pl-10 h-10 border focus:border-primary/40 bg-background text-sm placeholder:text-muted-foreground/50 focus:ring-1 focus:ring-primary/20 transition-all"})]}),l.jsxs("div",{className:"flex bg-muted/50 rounded-md p-1 border",children:[l.jsxs(Pe,{variant:M==="grid"?"secondary":"ghost",size:"sm",onClick:()=>{P("grid"),E(null)},className:se("h-8 px-3 rounded-sm transition-all text-sm font-medium",M==="grid"?"bg-background shadow-sm":"hover:bg-background/50"),children:[l.jsx(QB,{className:"h-3.5 w-3.5 mr-1.5"}),"Grid"]}),l.jsxs(Pe,{variant:M==="list"?"secondary":"ghost",size:"sm",onClick:()=>{P("list"),E(null)},className:se("h-8 px-3 rounded-sm transition-all text-sm font-medium",M==="list"?"bg-background shadow-sm":"hover:bg-background/50"),children:[l.jsx(oq,{className:"h-3.5 w-3.5 mr-1.5"}),"List"]})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-6 pb-6",children:[y&&l.jsx(ri,{variant:"destructive",className:"mb-6 border-2 border-red-300 bg-red-50 shadow-md",children:l.jsx(ii,{className:"text-red-800 font-medium",children:y})}),f?l.jsx("div",{className:"flex items-center justify-center py-24",children:l.jsxs("div",{className:"flex flex-col items-center space-y-5",children:[l.jsx("div",{className:"h-12 w-12 border-4 border-primary/30 border-t-primary rounded-full animate-spin"}),l.jsx("div",{className:"text-lg text-foreground font-semibold",children:"Discovering servers..."}),l.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading registry entries"})]})}):d.length===0?l.jsxs("div",{className:"flex flex-col items-center justify-center py-24 text-center",children:[l.jsx("div",{className:"p-6 rounded-2xl bg-gradient-to-br from-muted/50 to-muted/30 border-2 border-border/30 mb-6 shadow-sm",children:l.jsx(So,{className:"h-14 w-14 text-muted-foreground/60 mx-auto"})}),l.jsx("div",{className:"text-xl font-bold text-foreground mb-3",children:o.length===0?"No servers available in the registry":"No servers match your search"}),l.jsx("div",{className:"text-base text-muted-foreground/80 mb-6 max-w-md",children:o.length===0?"The registry is currently empty or failed to load":"Try adjusting your search terms or browse all categories"}),w&&l.jsxs(Pe,{variant:"outline",onClick:()=>N(""),className:"border-2 border-primary/30 hover:bg-primary/10 hover:border-primary/50 font-semibold",children:[l.jsx(Rr,{className:"h-4 w-4 mr-2"}),"Clear search"]})]}):l.jsx("div",{className:se(M==="grid"?"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6":"space-y-3"),children:d.map((j,W)=>{const z=D===j.id,$=j.description&&j.description.length>100;return M==="grid"?l.jsx(n1,{className:se("group relative overflow-hidden transition-all duration-200 hover:-translate-y-0.5 border bg-card shadow-sm hover:shadow-lg hover:border-primary/30 flex flex-col",z&&"ring-1 ring-primary/20 border-primary/40 shadow-lg -translate-y-0.5"),style:{animationDelay:`${Math.min(W*30,300)}ms`},children:l.jsxs("div",{className:"cursor-pointer flex flex-col flex-1",onClick:()=>E(z?null:j.id),children:[l.jsx(Cte,{className:"pb-3 flex-shrink-0",children:l.jsxs("div",{className:"flex items-start gap-3 mb-3",children:[l.jsxs("div",{className:"relative flex-shrink-0",children:[l.jsx("div",{className:"text-2xl w-12 h-12 flex items-center justify-center rounded-lg bg-gradient-to-br from-primary/15 to-primary/5 border border-primary/20 group-hover:border-primary/30 transition-all duration-200",children:j.icon||"⚡"}),j.isInstalled&&l.jsx("div",{className:"absolute -top-1 -right-1 w-4 h-4 bg-emerald-500 rounded-full border-2 border-card flex items-center justify-center",children:l.jsx(Ls,{className:"h-2.5 w-2.5 text-white"})})]}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx(Ete,{className:"text-base font-semibold mb-2 group-hover:text-primary transition-colors leading-snug line-clamp-2",children:j.name}),l.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[j.isOfficial&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 bg-blue-50 text-blue-700 border-blue-200/60 font-medium",children:[l.jsx(Sb,{className:"h-2.5 w-2.5 mr-1 fill-blue-400 text-blue-400"}),"Official"]}),j.category&&l.jsx(Qn,{variant:"outline",className:se("text-xs px-1.5 py-0 font-medium capitalize",G(j.category)),children:j.category})]})]})]})}),l.jsxs(Dte,{className:"pt-0 flex flex-col flex-1",children:[l.jsxs("div",{className:"flex-1",children:[l.jsx("p",{className:se("text-sm text-muted-foreground leading-relaxed transition-all duration-200",z?"":"line-clamp-3"),children:j.description}),z&&l.jsxs("div",{className:"space-y-3 pt-3 mt-3 border-t border-border/30 animate-in slide-in-from-top-1 duration-200",children:[j.author&&l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("div",{className:"p-1 rounded bg-muted/40",children:l.jsx(YM,{className:"h-3 w-3 text-muted-foreground"})}),l.jsxs("div",{children:[l.jsxs("span",{className:"text-muted-foreground/70",children:["by"," "]}),l.jsx("span",{className:"font-medium text-foreground",children:j.author})]})]}),j.tags&&j.tags.length>0&&l.jsxs("div",{className:"flex flex-wrap gap-1",children:[j.tags.slice(0,6).map(A=>l.jsx(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 text-muted-foreground border-border/40 bg-muted/20 font-normal",children:A},A)),j.tags.length>6&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 text-muted-foreground border-border/40 bg-muted/20",children:["+",j.tags.length-6]})]}),j.homepage&&l.jsxs("a",{href:j.homepage,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary hover:text-primary/80 transition-colors font-medium",onClick:A=>A.stopPropagation(),children:[l.jsx(yc,{className:"h-3 w-3"}),"Documentation"]})]})]}),l.jsxs("div",{className:"flex items-center justify-between pt-3 border-t border-border/30 flex-shrink-0 mt-auto",children:[$&&l.jsx(Pe,{variant:"ghost",size:"sm",className:"text-xs text-muted-foreground hover:text-foreground p-0 h-auto font-medium -ml-1",children:z?l.jsxs(l.Fragment,{children:[l.jsx(Sg,{className:"h-3 w-3 mr-1"}),"Less"]}):l.jsxs(l.Fragment,{children:[l.jsx(Ir,{className:"h-3 w-3 mr-1"}),"More"]})}),l.jsx("div",{className:"ml-auto",children:l.jsx(Pe,{onClick:A=>{A.stopPropagation(),U(j)},disabled:j.isInstalled||k===j.id,size:"sm",variant:j.isInstalled?"outline":"default",className:se("h-8 px-4 transition-all font-semibold text-sm shadow-sm",k===j.id&&"opacity-70",j.isInstalled&&"border bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-100",!j.isInstalled&&"bg-primary hover:bg-primary/90"),children:k===j.id?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("div",{className:"h-3 w-3 border-2 border-current border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Adding"})]}):j.isInstalled?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(Ls,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Added"})]}):l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(xi,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Add"})]})})})]})]})]})},j.id):l.jsx(n1,{className:se("group transition-all duration-200 hover:-translate-y-0.5 border bg-card shadow-sm hover:shadow-md hover:border-primary/30 cursor-pointer !py-0 !gap-0",z&&"border-primary/40 shadow-md -translate-y-0.5"),onClick:()=>E(z?null:j.id),children:l.jsx("div",{className:"p-4",children:l.jsxs("div",{className:"flex items-start gap-4",children:[l.jsxs("div",{className:"relative flex-shrink-0",children:[l.jsx("div",{className:"w-12 h-12 rounded-lg bg-gradient-to-br from-primary/15 to-primary/5 border border-primary/20 group-hover:border-primary/30 flex items-center justify-center text-2xl transition-all duration-200",children:j.icon||"⚡"}),j.isInstalled&&l.jsx("div",{className:"absolute -top-1 -right-1 w-4 h-4 bg-emerald-500 rounded-full border-2 border-card flex items-center justify-center",children:l.jsx(Ls,{className:"h-2.5 w-2.5 text-white"})})]}),l.jsxs("div",{className:"flex-1 min-w-0 space-y-2.5",children:[l.jsxs("div",{className:"flex items-start justify-between gap-4",children:[l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[l.jsx("h3",{className:"text-base font-semibold text-foreground group-hover:text-primary transition-colors leading-snug",children:j.name}),$&&l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/60 transition-all duration-200 flex-shrink-0",z&&"rotate-180 text-muted-foreground")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[j.isOfficial&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 bg-blue-50 text-blue-700 border-blue-200/60 font-medium",children:[l.jsx(Sb,{className:"h-2.5 w-2.5 mr-1 fill-blue-400 text-blue-400"}),"Official"]}),j.category&&l.jsx(Qn,{variant:"outline",className:se("text-xs px-1.5 py-0 font-medium capitalize",G(j.category)),children:j.category})]})]}),l.jsx(Pe,{onClick:A=>{A.stopPropagation(),U(j)},disabled:j.isInstalled||k===j.id,size:"sm",variant:j.isInstalled?"outline":"default",className:se("h-8 px-4 text-sm font-semibold transition-all flex-shrink-0 shadow-sm",k===j.id&&"opacity-70",j.isInstalled&&"border bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-100",!j.isInstalled&&"bg-primary hover:bg-primary/90"),children:k===j.id?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("div",{className:"h-3 w-3 border-2 border-current border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Adding"})]}):j.isInstalled?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(Ls,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Added"})]}):l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(xi,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Add"})]})})]}),l.jsx("div",{children:l.jsx("p",{className:se("text-sm text-muted-foreground leading-relaxed transition-all duration-200",z?"":"line-clamp-2"),children:j.description})}),z&&l.jsxs("div",{className:"space-y-3 pt-3 border-t border-border/30 animate-in slide-in-from-top-2 duration-200",children:[j.author&&l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("div",{className:"p-1 rounded bg-muted/40",children:l.jsx(YM,{className:"h-3 w-3 text-muted-foreground"})}),l.jsxs("div",{children:[l.jsxs("span",{className:"text-muted-foreground/70",children:["by"," "]}),l.jsx("span",{className:"font-medium text-foreground",children:j.author})]})]}),j.tags&&j.tags.length>0&&l.jsx("div",{className:"flex flex-wrap gap-1.5",children:j.tags.map(A=>l.jsx(Qn,{variant:"outline",className:"text-xs px-2 py-0.5 text-muted-foreground border-border/40 bg-muted/20 font-normal",children:A},A))}),j.homepage&&l.jsxs("a",{href:j.homepage,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary hover:text-primary/80 transition-colors font-medium",onClick:A=>A.stopPropagation(),children:[l.jsx(yc,{className:"h-3 w-3"}),"Documentation"]})]})]})]})})},j.id)})})]})]})})}const Lse=new Set(["placeholder","your-api-key","your_api_key","enter-your-token","xxx","...","todo"]),zse=["your-","your_","your ","enter-","enter_","enter ","placeholder","api_key","api-key","api key","secret","token","password","xxx","..."],$se=[/^your[\s_-]?/,/^enter[\s_-]?/];function ug(e){return Object.values(e).some(t=>{if(!t||t.trim()==="")return!0;const n=t.trim().toLowerCase();return Lse.has(n)||$se.some(r=>r.test(n))?!0:zse.some(r=>n.includes(r))})}function xI(e){const t=e.config.timeout??3e4;switch(e.config.type){case"stdio":return{type:"stdio",command:e.config.command??"",args:e.config.args??[],env:e.config.env??{},timeout:t,connectionMode:"lenient"};case"sse":return{type:"sse",url:e.config.url??"",headers:e.config.headers??{},timeout:t,connectionMode:"lenient"};default:return{type:"http",url:e.config.url??"",headers:e.config.headers??{},timeout:t,connectionMode:"lenient"}}}function Bse(e=!0){return Dn({queryKey:Ge.tools.all,queryFn:async()=>{const t=await Xe.api.tools.$get();if(!t.ok)throw new Error("Failed to fetch tools");return await t.json()},enabled:e})}function qse(){return Dn({queryKey:Ge.agents.all,queryFn:async()=>{const e=await Xe.api.agents.$get();if(!e.ok)throw new Error(`Failed to fetch agents: ${e.status}`);return await e.json()},staleTime:300*1e3})}function vI(){return Dn({queryKey:Ge.agents.path,queryFn:async()=>{const e=await Xe.api.agent.path.$get();if(!e.ok)throw new Error(`Failed to fetch agent path: ${e.status}`);return await e.json()},retry:!1,staleTime:300*1e3})}function Gse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.switch.$post({json:t});if(!n.ok)throw new Error(`Failed to switch agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all}),e.invalidateQueries({queryKey:Ge.agents.path})}})}function Hse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.install.$post({json:t});if(!n.ok)throw new Error(`Failed to install agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all})}})}function Vse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.uninstall.$post({json:t});if(!n.ok)throw new Error(`Failed to uninstall agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all}),e.invalidateQueries({queryKey:Ge.agents.path})}})}function Kse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.custom.create.$post({json:t});if(!n.ok)throw new Error(`Failed to create agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all})}})}function VP(e,t){if(t!=="mcp"||!e.startsWith("mcp--"))return e;const n=e.substring(5),r=n.split("--");return r.length>=2?r.slice(1).join("--"):n}function KP({isOpen:e,onClose:t,onOpenConnectModal:n,onOpenConnectWithPrefill:r,onServerConnected:i,variant:s,refreshTrigger:o}){const c=s??"overlay",d=Cc(),[m,f]=b.useState(!1),[g,y]=b.useState(!1),[x,k]=b.useState(""),[T,S]=b.useState(null),[w,N]=b.useState(new Set),{data:M=[],isLoading:P,refetch:D}=mD(e),E=i2(),I=dH(),R=mH(),{data:K,isLoading:L,refetch:U}=Bse(e),{data:G}=vI(),Y=b.useCallback(()=>{D(),U()},[D,U]),B=b.useCallback(Q=>{N(ne=>{const O=new Set(ne);return O.has(Q)?O.delete(Q):O.add(Q),O})},[]),q=b.useMemo(()=>{if(!K)return{local:[],mcp:new Map};const Q=[],ne=new Map;return K.tools.forEach(O=>{if(O.source==="local")Q.push(O);else if(O.source==="mcp"&&O.serverName){const be=ne.get(O.serverName)||{tools:[],server:null};if(be.tools.push(O),!be.server){const Ue=M.find(Ce=>Ce.name===O.serverName);be.server=Ue||null}ne.set(O.serverName,be)}}),{local:Q,mcp:ne}},[K,M]),j=b.useMemo(()=>{const Q=[],ne=x.toLowerCase();if(q.local.length>0){const O=x?q.local.filter(be=>be.name.toLowerCase().includes(ne)||be.description?.toLowerCase().includes(ne)):q.local;O.length>0&&Q.push({title:"Local",tools:O,type:"local"})}return q.mcp.forEach(({tools:O,server:be},Ue)=>{const Ce=Ue.toLowerCase().includes(ne),ae=x?Ce?O:O.filter(ze=>ze.name.toLowerCase().includes(ne)||ze.description?.toLowerCase().includes(ne)):O;ae.length>0&&Q.push({title:Ue,tools:ae,type:"mcp",server:be})}),Q},[q,x]),W=K?.totalCount||0,z=async Q=>{const ne=xI(Q),O=ne.type==="stdio"&&Object.keys(ne.env||{}).length>0&&ug(ne.env||{}),be=(ne.type==="sse"||ne.type==="http")&&Object.keys(ne.headers||{}).length>0&&ug(ne.headers||{});if(O||be)return typeof r=="function"&&r({name:Q.name,config:ne,lockName:!0,registryEntryId:Q.id,onCloseRegistryModal:()=>f(!1)}),"requires-input";try{y(!0),await E.mutateAsync({name:Q.name,config:ne,persistToAgent:!1});try{await Ts.syncWithServerStatus()}catch(Ue){console.warn("Failed to sync registry after server install:",Ue)}return d.trackMCPServerConnected({serverName:Q.name,transportType:ne.type}),f(!1),i?.(Q.name),"connected"}catch(Ue){throw new Error(Ue.message||"Failed to install server")}finally{y(!1)}},$=async Q=>{const ne=M.find(O=>O.id===Q);if(ne&&window.confirm(`Are you sure you want to remove server "${ne.name}"?`))try{await I.mutateAsync(Q);try{const O=ae=>ae.toLowerCase().replace(/[^a-z0-9]+/g,"-"),be=O(Q),Ce=(await Ts.getEntries()).find(ae=>[ae.id,ae.name,...ae.matchIds||[]].filter(Boolean).map(lt=>O(String(lt))).includes(be));Ce&&await Ts.setInstalled(Ce.id,!1)}catch(O){console.warn("Failed to update registry installed state on delete:",O)}try{await Ts.syncWithServerStatus()}catch(O){console.warn("Failed to sync registry status after server deletion:",O)}}catch(O){console.error("Delete server error:",O)}},A=async Q=>{const ne=M.find(O=>O.id===Q);if(ne&&window.confirm(`Restart server "${ne.name}"?`))try{await R.mutateAsync(Q);try{await Ts.syncWithServerStatus()}catch(O){console.warn("Failed to sync registry status after server restart:",O)}}catch(O){console.error("Restart server error:",O)}};return b.useEffect(()=>{e&&Y()},[e,G,o,Y]),c==="inline"?l.jsxs("aside",{className:"h-full w-full flex flex-col bg-card/30",children:[l.jsxs("div",{className:"flex items-center justify-between px-4 py-3.5 shrink-0 border-b border-border/30",children:[l.jsxs("button",{onClick:t,className:"flex items-center gap-2 group",children:[l.jsx("h2",{className:"text-xs font-bold text-foreground/80 tracking-wider uppercase group-hover:text-foreground transition-colors",children:"Tools & Servers"}),l.jsx(Ir,{className:"h-3.5 w-3.5 text-muted-foreground/50 -rotate-90 transition-transform group-hover:text-foreground/70"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>f(!0),className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{side:"left",children:"Connect MCP servers"})]}),l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:Y,disabled:P||L,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Qi,{className:se("h-4 w-4",(P||L)&&"animate-spin")})})}),l.jsx(Vt,{side:"left",children:"Refresh"})]})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto flex flex-col",children:[l.jsx("div",{className:"px-4 pt-4 pb-3 border-b border-border/20",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50 pointer-events-none"}),l.jsx("input",{type:"text",value:x,onChange:Q=>k(Q.target.value),placeholder:"Search tools...",className:"w-full pl-9 pr-3 py-2 text-sm bg-background/50 border border-border/40 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/40 transition-all placeholder:text-muted-foreground/40"}),x&&l.jsx("button",{onClick:()=>k(""),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-muted/50 rounded transition-colors",children:l.jsx(Cn,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-4",children:[L&&l.jsx("div",{className:"flex items-center justify-center py-16",children:l.jsxs("div",{className:"flex flex-col items-center space-y-3",children:[l.jsxs("div",{className:"relative",children:[l.jsx("div",{className:"h-8 w-8 rounded-full border-2 border-primary/20"}),l.jsx("div",{className:"absolute inset-0 h-8 w-8 rounded-full border-2 border-primary border-t-transparent animate-spin"})]}),l.jsx("span",{className:"text-xs font-medium text-muted-foreground/70",children:"Loading tools..."})]})}),!L&&W===0&&l.jsxs("div",{className:"text-center py-16",children:[l.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-muted/30 mb-4",children:l.jsx(VM,{className:"h-6 w-6 text-muted-foreground/40"})}),l.jsx("p",{className:"text-sm font-medium text-foreground/70 mb-1",children:"No tools available"}),l.jsx("p",{className:"text-xs text-muted-foreground/60",children:"Connect an MCP server to get started"})]}),!L&&W>0&&j.length===0&&l.jsxs("div",{className:"text-center py-16",children:[l.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-muted/30 mb-4",children:l.jsx(Rr,{className:"h-6 w-6 text-muted-foreground/40"})}),l.jsx("p",{className:"text-sm font-medium text-foreground/70 mb-1",children:"No tools match your search"}),l.jsx("p",{className:"text-xs text-muted-foreground/60 mb-3",children:"Try a different search term"}),l.jsx("button",{onClick:()=>k(""),className:"text-xs font-medium text-primary hover:text-primary/80 transition-colors",children:"Clear search"})]}),j.map(Q=>{const ne=w.has(Q.title);return l.jsxs("div",{className:"mb-4 last:mb-0",children:[l.jsxs("div",{className:"w-full flex items-center justify-between gap-2 mb-3 px-1 group transition-all duration-150",children:[l.jsxs("button",{onClick:()=>B(Q.title),className:"flex items-center gap-2.5 flex-1 min-w-0 pb-2 border-b border-border/40 text-left",children:[l.jsx(Ir,{className:se("h-4 w-4 text-muted-foreground/50 shrink-0 transition-transform duration-200",ne&&"-rotate-90")}),l.jsxs("h4",{className:"text-base font-semibold text-foreground tracking-tight flex items-center gap-2.5",children:[l.jsx("span",{className:"tracking-normal",children:Q.title}),Q.type==="mcp"&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[10px] font-semibold uppercase tracking-wider",children:"MCP"}),Q.server&&l.jsx("span",{className:se("inline-flex items-center justify-center w-5 h-5 rounded-full",Q.server.status==="connected"?"bg-green-500/10":"bg-red-500/10"),children:l.jsx("span",{className:se("w-2 h-2 rounded-full",Q.server.status==="connected"?"bg-green-600 dark:bg-green-400":"bg-red-600 dark:bg-red-400")})})]})]}),l.jsx("span",{className:"text-xs text-muted-foreground/50 font-medium",children:Q.tools.length})]}),Q.type==="mcp"&&Q.server&&l.jsxs("div",{className:"flex items-center gap-0.5",children:[R.isPending&&R.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>A(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-primary hover:bg-muted/50",disabled:I.isPending&&I.variables===Q.server.id,children:l.jsx(ZM,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Restart"})]}),I.isPending&&I.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>$(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-destructive hover:bg-muted/50",disabled:R.isPending&&R.variables===Q.server.id,children:l.jsx(Ar,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Remove"})]})]})]}),!ne&&l.jsx("div",{className:"space-y-0.5 ml-2",children:Q.tools.map(O=>{const be=O.id,Ue=T===be;return l.jsxs("div",{children:[l.jsxs("button",{onClick:()=>S(Ue?null:be),className:"w-full px-3 py-2 rounded-md text-left hover:bg-muted/30 transition-all duration-150 group flex items-center justify-between gap-2",children:[l.jsx("span",{className:"text-sm text-foreground/90 truncate font-medium",children:VP(O.name,Q.type)}),l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/40 shrink-0 transition-transform duration-200",Ue&&"rotate-180")})]}),Ue&&l.jsxs("div",{className:"px-3 py-2.5 mb-1 bg-muted/15 rounded-md ml-2",children:[O.description&&l.jsx("p",{className:"text-xs text-muted-foreground/70 mb-2.5 leading-relaxed",children:O.description}),O.inputSchema?.properties&&Object.keys(O.inputSchema.properties).length>0&&l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground/50 uppercase tracking-wider font-semibold",children:"Parameters"}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.keys(O.inputSchema.properties).map(Ce=>l.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded bg-muted/50 text-[10px] font-mono text-foreground/60 border border-border/20",children:Ce},Ce))})]})]})]},be)})})]},Q.title)})]})]}),l.jsx(m1,{isOpen:m,onClose:()=>f(!1),onInstallServer:z,onOpenConnectModal:n,disableClose:g})]}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:se("fixed inset-0 bg-black/50 z-30 transition-opacity duration-300",e?"opacity-100":"opacity-0 pointer-events-none"),onClick:t}),l.jsxs("aside",{className:se("fixed top-0 right-0 z-40 h-screen w-80 bg-card/95 backdrop-blur-xl border-l border-border/40 shadow-xl transition-transform duration-300 ease-in-out flex flex-col",e?"translate-x-0":"translate-x-full"),children:[l.jsxs("div",{className:"flex items-center justify-between px-4 py-3.5 shrink-0",children:[l.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Tools & Servers"}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>f(!0),className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{side:"left",children:"Connect MCP servers"})]}),l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:Y,disabled:P||L,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Qi,{className:se("h-4 w-4",(P||L)&&"animate-spin")})})}),l.jsx(Vt,{side:"left",children:"Refresh"})]}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:t,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Cn,{className:"h-4 w-4"})})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto flex flex-col",children:[l.jsx("div",{className:"px-4 pt-3 pb-2 border-b border-border/20",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50 pointer-events-none"}),l.jsx("input",{type:"text",value:x,onChange:Q=>k(Q.target.value),placeholder:"Search tools...",className:"w-full pl-9 pr-3 py-2 text-sm bg-background/50 border border-border/40 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/40 transition-all placeholder:text-muted-foreground/40"}),x&&l.jsx("button",{onClick:()=>k(""),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-muted/50 rounded transition-colors",children:l.jsx(Cn,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[L&&l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[l.jsx(Qi,{className:"h-5 w-5 animate-spin text-muted-foreground/50"}),l.jsx("span",{className:"text-xs text-muted-foreground/70",children:"Loading tools..."})]})}),!L&&W===0&&l.jsxs("div",{className:"text-center py-12",children:[l.jsx(VM,{className:"h-8 w-8 text-muted-foreground/40 mx-auto mb-2"}),l.jsx("p",{className:"text-xs text-muted-foreground/70",children:"No tools available"}),l.jsx("p",{className:"text-xs text-muted-foreground/50 mt-1",children:"Connect an MCP server to get started"})]}),!L&&W>0&&j.length===0&&l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"h-8 w-8 text-muted-foreground/40 mx-auto mb-2"}),l.jsx("p",{className:"text-xs text-muted-foreground/70",children:"No tools match your search"}),l.jsx("button",{onClick:()=>k(""),className:"mt-2 text-xs text-primary hover:text-primary/80 transition-colors",children:"Clear search"})]}),j.map(Q=>{const ne=w.has(Q.title);return l.jsxs("div",{className:"mb-4 last:mb-0",children:[l.jsxs("div",{className:"w-full flex items-center justify-between gap-2 mb-3 px-1 group transition-all duration-150",children:[l.jsxs("button",{onClick:()=>B(Q.title),className:"flex items-center gap-2.5 flex-1 min-w-0 pb-2 border-b border-border/40 text-left",children:[l.jsx(Ir,{className:se("h-4 w-4 text-muted-foreground/50 shrink-0 transition-transform duration-200",ne&&"-rotate-90")}),l.jsxs("h4",{className:"text-base font-semibold text-foreground tracking-tight flex items-center gap-2.5",children:[l.jsx("span",{className:"tracking-normal",children:Q.title}),Q.type==="mcp"&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[10px] font-semibold uppercase tracking-wider",children:"MCP"}),Q.server&&l.jsx("span",{className:se("inline-flex items-center justify-center w-5 h-5 rounded-full",Q.server.status==="connected"?"bg-green-500/10":"bg-red-500/10"),children:l.jsx("span",{className:se("w-2 h-2 rounded-full",Q.server.status==="connected"?"bg-green-600 dark:bg-green-400":"bg-red-600 dark:bg-red-400")})})]})]}),l.jsx("span",{className:"text-xs text-muted-foreground/50 font-medium",children:Q.tools.length})]}),Q.type==="mcp"&&Q.server&&l.jsxs("div",{className:"flex items-center gap-0.5",children:[R.isPending&&R.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>A(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-primary hover:bg-muted/50",disabled:I.isPending&&I.variables===Q.server.id,children:l.jsx(ZM,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Restart"})]}),I.isPending&&I.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>$(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-destructive hover:bg-muted/50",disabled:R.isPending&&R.variables===Q.server.id,children:l.jsx(Ar,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Remove"})]})]})]}),!ne&&l.jsx("div",{className:"space-y-0.5 ml-2",children:Q.tools.map(O=>{const be=O.id,Ue=T===be;return l.jsxs("div",{children:[l.jsxs("button",{onClick:()=>S(Ue?null:be),className:"w-full px-3 py-2 rounded-md text-left hover:bg-muted/30 transition-all duration-150 group flex items-center justify-between gap-2",children:[l.jsx("span",{className:"text-sm text-foreground/90 truncate font-medium",children:VP(O.name,Q.type)}),l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/40 shrink-0 transition-transform duration-200",Ue&&"rotate-180")})]}),Ue&&l.jsxs("div",{className:"px-3 py-2.5 mb-1 bg-muted/15 rounded-md ml-2",children:[O.description&&l.jsx("p",{className:"text-xs text-muted-foreground/70 mb-2.5 leading-relaxed",children:O.description}),O.inputSchema?.properties&&Object.keys(O.inputSchema.properties).length>0&&l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground/50 uppercase tracking-wider font-semibold",children:"Parameters"}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.keys(O.inputSchema.properties).map(Ce=>l.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded bg-muted/50 text-[10px] font-mono text-foreground/60 border border-border/20",children:Ce},Ce))})]})]})]},be)})})]},Q.title)})]})]}),l.jsx(m1,{isOpen:m,onClose:()=>f(!1),onInstallServer:z,onOpenConnectModal:n,disableClose:g})]})]})}const vm=b.forwardRef(({className:e,children:t,...n},r)=>l.jsx("div",{ref:r,className:se("relative overflow-auto",e),...n,children:t}));vm.displayName="ScrollArea";function Wse(e){return e.sort((t,n)=>{const r=t.lastActivity?new Date(t.lastActivity).getTime():0;return(n.lastActivity?new Date(n.lastActivity).getTime():0)-r})}function WP({isOpen:e,onClose:t,onExpand:n,currentSessionId:r,onSessionChange:i,returnToWelcome:s,variant:o="overlay",onSearchOpen:c,onNewChat:d,onSettingsOpen:m,onPlaygroundOpen:f,onThemeToggle:g,theme:y}){const[x,k]=b.useState(!1),[T,S]=b.useState(""),[w,N]=b.useState(!1),[M,P]=b.useState(null),[D,E]=b.useState(!1),[I,R]=b.useState(""),[K,L]=b.useState(null),{data:U=[],isLoading:G,error:Y}=lH(e),B=Wse([...U]),q=uH(),j=dD(),W=cH(),z=async()=>{const ae=await q.mutateAsync({sessionId:T.trim()||void 0});S(""),k(!1),i(ae.id)},$=async ae=>{await j.mutateAsync({sessionId:ae}),r===ae&&s()},A=async()=>{if(!M)return;await j.mutateAsync({sessionId:M}),r===M&&s(),N(!1),P(null)},Q=(ae,ze)=>{P(ae),R(ze||""),E(!0)},ne=async()=>{if(!(!M||!I.trim()))try{await W.mutateAsync({sessionId:M,title:I.trim()}),E(!1),P(null),R("")}catch(ae){console.error(`Failed to rename session: ${ae}`)}},O=async ae=>{try{await navigator.clipboard.writeText(ae),L(ae)}catch(ze){console.error(`Failed to copy session ID: ${ze}`)}};b.useEffect(()=>{if(K){const ae=setTimeout(()=>L(null),2e3);return()=>clearTimeout(ae)}},[K]);const be=ae=>{if(!ae)return"Unknown";const lt=Date.now()-ae,me=Math.floor(lt/6e4),pe=Math.floor(lt/36e5),J=Math.floor(lt/864e5);return me<1?"Just now":me<60?`${me}m ago`:pe<24?`${pe}h ago`:`${J}d ago`},Ue=l.jsxs("div",{className:"flex flex-col h-full",children:[l.jsx("div",{className:"px-4 py-5",children:l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsxs("div",{id:"sessionpanel-title",className:"flex items-center px-2",children:[l.jsx("img",{src:"/logos/dexto/dexto_logo_light.svg",alt:"Dexto",className:"h-6 w-auto dark:hidden"}),l.jsx("img",{src:"/logos/dexto/dexto_logo.svg",alt:"Dexto",className:"h-6 w-auto hidden dark:block"})]}),l.jsx("button",{onClick:t,className:"flex items-center justify-center w-8 h-8 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Collapse panel",children:l.jsx(fB,{className:"h-5 w-5"})})]})}),Y&&l.jsx("div",{className:"p-4",children:l.jsxs(ri,{variant:"destructive",children:[l.jsx(ns,{className:"h-4 w-4"}),l.jsx(ii,{children:Y.message})]})}),l.jsxs(vm,{className:"flex-1 scrollbar-thin",children:[l.jsxs("div",{className:"px-3 pt-2 pb-1 space-y-0.5",children:[d&&l.jsxs("button",{onClick:d,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(xi,{className:"h-4 w-4"}),l.jsx("span",{children:"New Chat"})]}),c&&l.jsxs("button",{onClick:c,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(Rr,{className:"h-4 w-4"}),l.jsx("span",{children:"Search"})]})]}),(d||c)&&l.jsx("div",{className:"h-2"}),!G&&B.length>0&&l.jsx("div",{className:"px-4 py-2",children:l.jsx("h2",{className:"text-xs font-semibold text-muted-foreground/70 uppercase tracking-wider",children:"History"})}),G?l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsx(Qi,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):B.length===0?l.jsxs("div",{className:"text-center py-12 px-6",children:[l.jsx(UE,{className:"h-10 w-10 mx-auto mb-3 text-muted-foreground/30"}),l.jsx("p",{className:"text-sm text-muted-foreground",children:"No conversations yet"}),l.jsx("p",{className:"text-xs text-muted-foreground/60 mt-1",children:"Start chatting to see your history"})]}):l.jsx("div",{className:"px-3 py-2 space-y-0.5",children:B.map(ae=>{const ze=ae.title&&ae.title.trim().length>0?ae.title:ae.id,lt=r===ae.id;return l.jsx("div",{className:se("group relative px-3 py-1.5 rounded-lg transition-all cursor-pointer",lt?"bg-primary/5 before:absolute before:left-0 before:top-1.5 before:bottom-1.5 before:w-0.5 before:bg-primary before:rounded-full":"hover:bg-muted/40"),role:"button",tabIndex:0,"aria-current":lt?"page":void 0,onClick:()=>i(ae.id),onKeyDown:me=>{me.target===me.currentTarget&&(me.key==="Enter"||me.key===" ")&&(me.preventDefault(),i(ae.id))},children:l.jsxs("div",{className:"flex items-center justify-between gap-2",children:[l.jsx("h3",{className:se("text-sm truncate flex-1 min-w-0",lt?"font-medium text-foreground":"text-muted-foreground"),children:ze}),l.jsx("span",{className:"text-[10px] text-muted-foreground/50 shrink-0 group-hover:opacity-0 transition-opacity",children:be(ae.lastActivity)}),l.jsxs(kc,{children:[l.jsx(wc,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:me=>me.stopPropagation(),className:"h-7 w-7 p-0 absolute right-2 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity","aria-label":"Session options",children:l.jsx(OE,{className:"h-4 w-4 text-muted-foreground"})})}),l.jsxs(Ol,{align:"end",className:"w-48",onClick:me=>me.stopPropagation(),children:[l.jsxs(Zt,{onClick:()=>Q(ae.id,ae.title??null),children:[l.jsx(wb,{className:"h-4 w-4 mr-2"}),"Rename"]}),l.jsxs(Zt,{onClick:()=>O(ae.id),children:[K===ae.id?l.jsx(ur,{className:"h-4 w-4 mr-2 text-green-500"}):l.jsx(Ao,{className:"h-4 w-4 mr-2"}),K===ae.id?"Copied!":"Copy Session ID"]}),l.jsx(ka,{}),l.jsxs(Zt,{onClick:()=>{ae.messageCount>0?(P(ae.id),N(!0)):$(ae.id)},className:"text-destructive focus:text-destructive",children:[l.jsx(Ar,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})]})},ae.id)})})]}),l.jsxs("div",{className:"border-t border-border/30 p-3 space-y-1",children:[f&&l.jsxs("button",{onClick:f,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(_b,{className:"h-4 w-4"}),l.jsx("span",{children:"MCP Playground"})]}),f&&(g||m)&&l.jsx("div",{className:"h-px bg-border/30 my-1"}),g&&l.jsxs("button",{onClick:g,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[y==="dark"?l.jsx(Mb,{className:"h-4 w-4 transition-transform duration-200 hover:rotate-180"}):l.jsx(kb,{className:"h-4 w-4 transition-transform duration-200 hover:rotate-12"}),l.jsx("span",{children:y==="dark"?"Light Mode":"Dark Mode"})]}),m&&l.jsxs("button",{onClick:m,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(Yd,{className:"h-4 w-4"}),l.jsx("span",{children:"Settings"})]})]}),l.jsx(qr,{open:x,onOpenChange:k,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsx(ti,{children:l.jsx(Hr,{children:"Start New Chat"})}),l.jsx("div",{className:"space-y-4",children:l.jsxs("div",{className:"space-y-2",children:[l.jsx(fn,{htmlFor:"sessionId",children:"Chat ID"}),l.jsx(ct,{id:"sessionId",value:T,onChange:ae=>S(ae.target.value),placeholder:"e.g., user-123, project-alpha",className:"font-mono"}),l.jsx("p",{className:"text-xs text-muted-foreground",children:"Leave empty to auto-generate a unique ID"})]})}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>k(!1),children:"Cancel"}),l.jsx(Pe,{onClick:z,children:"Start Chat"})]})]})}),l.jsx(qr,{open:w,onOpenChange:N,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-5 w-5 text-destructive"}),l.jsx("span",{children:"Delete Conversation"})]}),l.jsxs(is,{children:["This will permanently delete this conversation and all its messages. This action cannot be undone.",M&&l.jsxs("span",{className:"block mt-2 font-medium",children:["Session:"," ",l.jsx("span",{className:"font-mono",children:M})]})]})]}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>N(!1),children:"Cancel"}),l.jsxs(Pe,{variant:"destructive",onClick:A,disabled:j.isPending&&j.variables?.sessionId===M,className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-4 w-4"}),l.jsx("span",{children:j.isPending&&j.variables?.sessionId===M?"Deleting...":"Delete Conversation"})]})]})]})}),l.jsx(qr,{open:D,onOpenChange:E,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(wb,{className:"h-5 w-5"}),l.jsx("span",{children:"Rename Chat"})]}),l.jsx(is,{children:"Enter a new name for this conversation."})]}),l.jsx("div",{className:"space-y-4",children:l.jsxs("div",{className:"space-y-2",children:[l.jsx(fn,{htmlFor:"renameTitle",children:"Chat Name"}),l.jsx(ct,{id:"renameTitle",value:I,onChange:ae=>R(ae.target.value),placeholder:"Enter chat name...",onKeyDown:ae=>{ae.key==="Enter"&&I.trim()&&ne()},autoFocus:!0})]})}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),l.jsx(Pe,{onClick:ne,disabled:!I.trim()||W.isPending,children:W.isPending?"Saving...":"Save"})]})]})})]}),Ce=l.jsxs("div",{className:"flex flex-col h-full py-3 px-2 items-center",children:[l.jsx("button",{onClick:n,className:"flex items-center justify-center w-10 h-10 rounded-lg hover:bg-muted/40 transition-colors mb-3","aria-label":"Expand panel",children:l.jsx("img",{src:"/logos/dexto/dexto_logo_icon.svg",alt:"Dexto",className:"h-7 w-7"})}),l.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[d&&l.jsx("button",{onClick:d,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"New chat",children:l.jsx(xi,{className:"h-5 w-5"})}),c&&l.jsx("button",{onClick:c,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Search",children:l.jsx(Rr,{className:"h-5 w-5"})})]}),l.jsxs("div",{className:"flex flex-col gap-1 pt-2 border-t border-border/30",children:[f&&l.jsx("button",{onClick:f,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"MCP Playground",children:l.jsx(_b,{className:"h-5 w-5"})}),g&&l.jsx("button",{onClick:g,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":y==="dark"?"Light mode":"Dark mode",children:y==="dark"?l.jsx(Mb,{className:"h-5 w-5"}):l.jsx(kb,{className:"h-5 w-5"})}),m&&l.jsx("button",{onClick:m,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Settings",children:l.jsx(Yd,{className:"h-5 w-5"})})]})]});return o==="inline"?e?l.jsx("div",{className:"h-full w-full flex flex-col bg-card",children:Ue}):l.jsx("div",{className:"h-full flex flex-col bg-card border-r border-border/30",children:Ce}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:se("fixed inset-0 bg-black/50 z-30 transition-opacity duration-300",e?"opacity-100":"opacity-0 pointer-events-none"),onClick:t}),l.jsx("aside",{role:"dialog","aria-modal":"true","aria-labelledby":"sessionpanel-title",tabIndex:-1,className:se("fixed top-0 left-0 z-40 h-screen w-72 bg-card border-r border-border shadow-xl transition-transform duration-300 ease-in-out flex flex-col",e?"translate-x-0":"-translate-x-full"),children:Ue})]})}function Zse(e,t="en"){const n=Date.now(),r=e-n,i=Math.abs(r),s=60*1e3,o=60*s,c=24*o,d=7*c,m=30*c,f=365*c;let g,y;return i<s?(g=Math.round(r/1e3),y="second"):i<o?(g=Math.round(r/s),y="minute"):i<c?(g=Math.round(r/o),y="hour"):i<d?(g=Math.round(r/c),y="day"):i<m?(g=Math.round(r/d),y="week"):i<f?(g=Math.round(r/m),y="month"):(g=Math.round(r/f),y="year"),new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(g,y)}function Yse({isOpen:e,onClose:t,variant:n="modal"}){const[r,i]=b.useState(""),[s,o]=b.useState(!1),[c,d]=b.useState(!1),[m,f]=b.useState(null),{data:g=[],isLoading:y,error:x}=Eie(e),k=Die(),T=async M=>{await k.mutateAsync({memoryId:M}),d(!1),f(null)},S=(M,P=120)=>M.length<=P?M:M.slice(0,P)+"...",w=g.filter(M=>{if(!r.trim())return!0;const P=r.toLowerCase();return M.content.toLowerCase().includes(P)||M.tags?.some(D=>D.toLowerCase().includes(P))}),N=l.jsxs("div",{className:"flex flex-col h-full",children:[l.jsx("div",{className:"flex items-center justify-between p-3 border-b border-border/50",children:l.jsxs("div",{className:"flex items-center space-x-2",children:[l.jsx(Ro,{className:"h-4 w-4"}),l.jsx("h2",{className:"text-base font-semibold",children:"Memories"}),l.jsx(Qn,{variant:"secondary",className:"text-xs",children:g.length})]})}),l.jsx("div",{className:"p-3 border-b border-border/50",children:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsxs("div",{className:"relative flex-1",children:[l.jsx(Rr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),l.jsx(ct,{placeholder:"Search memories...",value:r,onChange:M=>i(M.target.value),className:"pl-8 h-8 text-sm"})]}),l.jsx(va,{children:l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"outline",size:"sm",onClick:()=>o(!0),className:"h-8 w-8 p-0 shrink-0","aria-label":"Create new memory",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{children:"Create Memory"})]})})]})}),x&&l.jsx("div",{className:"p-4",children:l.jsxs(ri,{variant:"destructive",children:[l.jsx(ns,{className:"h-4 w-4"}),l.jsx(ii,{children:x.message})]})}),l.jsx(vm,{className:"flex-1 p-4",children:l.jsx("div",{className:"space-y-2",children:y?l.jsx("div",{className:"flex items-center justify-center py-8",children:l.jsx(Qi,{className:"h-6 w-6 animate-spin"})}):w.length===0?l.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[l.jsx(Ro,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),r.trim()?l.jsxs(l.Fragment,{children:[l.jsx("p",{children:"No memories found"}),l.jsx("p",{className:"text-sm",children:"Try a different search term"})]}):l.jsxs(l.Fragment,{children:[l.jsx("p",{children:"No memories yet"}),l.jsx("p",{className:"text-sm",children:"Type # in chat or use the + button above"})]})]}):w.map(M=>l.jsx("div",{className:se("group p-3 rounded-lg border border-border/50 bg-card hover:bg-muted/50 transition-all",M.metadata?.pinned&&"ring-1 ring-primary/30 bg-primary/5"),children:l.jsxs("div",{className:"flex items-start justify-between gap-2",children:[l.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[l.jsx("p",{className:"text-sm leading-relaxed",children:S(M.content)}),M.tags&&M.tags.length>0&&l.jsxs("div",{className:"flex items-center gap-1 flex-wrap",children:[l.jsx(Gq,{className:"h-3 w-3 text-muted-foreground"}),M.tags.map((P,D)=>l.jsx(Qn,{variant:"outline",className:"text-xs px-1.5 py-0",children:P},D))]}),l.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx(cB,{className:"h-3 w-3"}),l.jsx("span",{children:Zse(M.updatedAt)})]}),M.metadata?.source&&l.jsx(Qn,{variant:"secondary",className:"text-xs px-1.5 py-0",children:M.metadata.source}),M.metadata?.pinned&&l.jsx(Qn,{variant:"secondary",className:"text-xs px-1.5 py-0",children:"Pinned"})]})]}),l.jsx("div",{className:"flex items-center gap-1",children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>{f(M),d(!0)},className:"h-7 w-7 p-0 opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete memory",children:l.jsx(Ar,{className:"h-3.5 w-3.5 text-destructive"})})})]})},M.id))})}),l.jsx(A4,{open:s,onClose:()=>o(!1)}),l.jsx(qr,{open:c,onOpenChange:d,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-5 w-5 text-destructive"}),l.jsx("span",{children:"Delete Memory"})]}),l.jsxs(is,{children:["This will permanently delete this memory. This action cannot be undone.",m&&l.jsx("span",{className:"block mt-2 text-sm font-medium max-h-20 overflow-y-auto",children:S(m.content,100)})]})]}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>d(!1),children:"Cancel"}),l.jsxs(Pe,{variant:"destructive",onClick:()=>m&&T(m.id),disabled:k.isPending,className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-4 w-4"}),l.jsx("span",{children:k.isPending?"Deleting...":"Delete Memory"})]})]})]})})]});return n==="inline"?l.jsx("div",{className:"h-full",children:N}):l.jsx(qr,{open:e,onOpenChange:t,children:l.jsxs(Gr,{className:"sm:max-w-lg h-[600px] flex flex-col p-0",children:[l.jsx(ti,{className:"sr-only",children:l.jsx(Hr,{children:"Memories"})}),N]})})}function Qse({onApprove:e,onDeny:t,onHandlersReady:n}){const r=Ma(g=>g.currentSessionId),i=V1(g=>g.pendingApproval),{ensureSessionEventStream:s}=Q1(),{mutateAsync:o}=z9(),c=i&&(!i.sessionId||!r||i.sessionId===r)?i:null,d=b.useCallback(async(g,y,x)=>{if(!c)return;const{approvalId:k}=c;console.debug(`[WebUI] Sending approval response for ${k}: ${g?"approved":"denied"}`);const T=c.sessionId||r;if(!T){console.error("[WebUI] Cannot submit approval without sessionId");return}try{await s(T),await o({approvalId:k,sessionId:T,status:g?Pd.APPROVED:Pd.DENIED,...g&&y?{formData:y}:{},...g&&x!==void 0?{rememberChoice:x}:{}})}catch(S){const w=S instanceof Error?S.message:String(S);console.error(`[WebUI] Failed to send approval response: ${w}`);return}},[c,r,o,s]),m=b.useCallback((g,y)=>{d(!0,g,y),e?.(g,y)},[d,e]),f=b.useCallback(()=>{d(!1),t?.()},[d,t]);return b.useEffect(()=>{n&&n({onApprove:m,onDeny:f})},[m,f,n]),null}function Xse(e,t,n,r){var i=this,s=b.useRef(null),o=b.useRef(0),c=b.useRef(0),d=b.useRef(null),m=b.useRef([]),f=b.useRef(),g=b.useRef(),y=b.useRef(e),x=b.useRef(!0);y.current=e;var k=typeof window<"u",T=!t&&t!==0&&k;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var S=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,N="maxWait"in n,M="debounceOnServer"in n&&!!n.debounceOnServer,P=N?Math.max(+n.maxWait||0,t):null;b.useEffect(function(){return x.current=!0,function(){x.current=!1}},[]);var D=b.useMemo(function(){var E=function(Y){var B=m.current,q=f.current;return m.current=f.current=null,o.current=Y,c.current=c.current||Y,g.current=y.current.apply(q,B)},I=function(Y,B){T&&cancelAnimationFrame(d.current),d.current=T?requestAnimationFrame(Y):setTimeout(Y,B)},R=function(Y){if(!x.current)return!1;var B=Y-s.current;return!s.current||B>=t||B<0||N&&Y-o.current>=P},K=function(Y){return d.current=null,w&&m.current?E(Y):(m.current=f.current=null,g.current)},L=function Y(){var B=Date.now();if(S&&c.current===o.current&&U(),R(B))return K(B);if(x.current){var q=t-(B-s.current),j=N?Math.min(q,P-(B-o.current)):q;I(Y,j)}},U=function(){r&&r({})},G=function(){if(k||M){var Y=Date.now(),B=R(Y);if(m.current=[].slice.call(arguments),f.current=i,s.current=Y,B){if(!d.current&&x.current)return o.current=s.current,I(L,t),S?E(s.current):g.current;if(N)return I(L,t),E(s.current)}return d.current||I(L,t),g.current}};return G.cancel=function(){var Y=d.current;Y&&(T?cancelAnimationFrame(d.current):clearTimeout(d.current)),o.current=0,m.current=s.current=f.current=d.current=null,Y&&r&&r({})},G.isPending=function(){return!!d.current},G.flush=function(){return d.current?K(Date.now()):g.current},G},[S,N,t,P,w,T,k,M,r]);return D}function Jse(e,t){return e===t}function bI(e,t,n){var r=Jse,i=b.useRef(e),s=b.useState({})[1],o=Xse(b.useCallback(function(d){i.current=d,s({})},[s]),t,n,s),c=b.useRef(e);return r(c.current,e)||(o(e),c.current=e),[i.current,o]}function eae(e,t,n=50,r=!0){return Dn({queryKey:Ge.search.messages(e,t,n),queryFn:async()=>await os(Xe.api.search.messages.$get({query:{q:e,limit:n,...t}}),"Failed to search messages"),enabled:r&&e.trim().length>0,staleTime:3e4})}function tae({isOpen:e,onClose:t,onNavigateToSession:n}){const[r,i]=b.useState(""),[s]=bI(r,300),[o,c]=b.useState(0),{data:d,isLoading:m,error:f}=eae(s,void 0,10,e),g=d?.results||[],y=f?.message??null;b.useEffect(()=>{o>=g.length&&g.length>0?c(g.length-1):g.length===0&&c(0)},[g.length,o]);const x=b.useCallback(w=>{n(w.sessionId,w.messageIndex),t()},[n,t]);b.useEffect(()=>{e&&(i(""),c(0))},[e]),Xr("down",()=>{c(w=>Math.min(w+1,g.length-1))},{enabled:e,preventDefault:!0},[e,g.length]),Xr("up",()=>{c(w=>Math.max(w-1,0))},{enabled:e,preventDefault:!0},[e]),Xr("enter",()=>{g[o]&&(x(g[o]),c(0))},{enabled:e,preventDefault:!0},[e,g,o,x]),Xr("escape",()=>{t()},{enabled:e,preventDefault:!0},[e,t]);const k=w=>{switch(w){case"user":return l.jsx(Xq,{className:"w-4 h-4"});case"assistant":return l.jsx(Tb,{className:"w-4 h-4"});case"system":return l.jsx(Yd,{className:"w-4 h-4"});default:return l.jsx(hq,{className:"w-4 h-4"})}},T=w=>{switch(w){case"user":return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case"assistant":return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case"system":return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";default:return"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200"}},S=(w,N)=>{if(!N)return w;const M=N.replace(/[.*+?^${}()|\[\]\\]/g,"\\$&"),P=new RegExp(`(${M})`,"gi");return w.split(P).map((E,I)=>E.toLowerCase()===N.toLowerCase()?l.jsx("mark",{className:"bg-yellow-200 dark:bg-yellow-800 font-medium rounded px-1",children:E},I):E)};return e?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"fixed inset-0 z-40 bg-black/10 backdrop-blur-[2px]",onClick:t}),l.jsx("div",{className:"fixed left-1/2 top-[15%] -translate-x-1/2 z-50 w-full max-w-2xl bg-popover/70 backdrop-blur-xl border border-border/30 rounded-xl shadow-2xl overflow-hidden",children:l.jsxs("div",{className:"flex flex-col max-h-[70vh]",children:[l.jsx("div",{className:"p-4 border-b border-border/30",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-muted-foreground"}),l.jsx(ct,{placeholder:"Search conversations...",value:r,onChange:w=>i(w.target.value),className:"pl-12 text-lg border-0 shadow-none focus-visible:ring-0 bg-transparent",autoFocus:!0})]})}),l.jsx("div",{className:"flex-1 overflow-hidden",children:m?l.jsxs("div",{className:"flex items-center justify-center py-12",children:[l.jsx(Qi,{className:"h-6 w-6 animate-spin mr-3"}),l.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):f?l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsxs("div",{className:"text-center",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-destructive opacity-50"}),l.jsx("p",{className:"text-destructive font-medium",children:"Search Error"}),l.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:y}),l.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Try again or check your connection."})]})}):l.jsx(vm,{className:"h-full max-h-[calc(70vh-80px)]",children:l.jsx("div",{className:"p-2",children:g.length>0?l.jsx("div",{className:"space-y-1",children:g.map((w,N)=>l.jsxs("div",{className:se("flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",N===o?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onClick:()=>x(w),children:[l.jsx("div",{className:"flex-shrink-0 mt-1",children:l.jsx(Qn,{className:se("text-xs",T(w.message.role)),children:k(w.message.role)})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[l.jsx("span",{className:"text-sm font-medium",children:w.sessionId.length>20?`${w.sessionId.slice(0,20)}...`:w.sessionId}),l.jsx("span",{className:"text-xs text-muted-foreground",children:w.message.role})]}),l.jsx("div",{className:"text-sm text-muted-foreground line-clamp-2",children:S(w.context,s)})]}),l.jsx(X1,{className:"w-4 h-4 text-muted-foreground flex-shrink-0 mt-1"})]},N))}):s?l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),l.jsx("p",{className:"text-muted-foreground",children:"No messages found matching your search."}),l.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Try different keywords."})]}):l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),l.jsx("p",{className:"text-muted-foreground",children:"Start typing to search your conversations."}),l.jsxs("div",{className:"flex items-center justify-center gap-4 mt-4 text-xs text-muted-foreground",children:[l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"↑"}),l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"↓"}),l.jsx("span",{children:"to navigate"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"Enter"}),l.jsx("span",{children:"to select"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"Esc"}),l.jsx("span",{children:"to close"})]})]})]})})})})]})})]}):null}function nae(e=!0){return Dn({queryKey:Ge.agent.config,queryFn:async()=>await os(Xe.api.agent.config.$get(),"Failed to load agent config"),enabled:e,staleTime:3e4})}function rae(){return nn({mutationFn:async({yaml:e})=>await os(Xe.api.agent.validate.$post({json:{yaml:e}}),"Failed to validate agent config")})}function iae(){const e=un();return nn({mutationFn:async({yaml:t})=>await os(Xe.api.agent.config.$post({json:{yaml:t}}),"Failed to save agent config"),onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agent.config})}})}function sae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function YP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZP(Object(n),!0).forEach(function(r){sae(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function aae(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,s;for(s=0;s<r.length;s++)i=r[s],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function oae(e,t){if(e==null)return{};var n=aae(e,t),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i<s.length;i++)r=s[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function lae(e,t){return uae(e)||cae(e,t)||pae(e,t)||dae()}function uae(e){if(Array.isArray(e))return e}function cae(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,s=void 0;try{for(var o=e[Symbol.iterator](),c;!(r=(c=o.next()).done)&&(n.push(c.value),!(t&&n.length===t));r=!0);}catch(d){i=!0,s=d}finally{try{!r&&o.return!=null&&o.return()}finally{if(i)throw s}}return n}}function pae(e,t){if(e){if(typeof e=="string")return QP(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return QP(e,t)}}function QP(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function dae(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1507
+ (OK = attach as file, Cancel = paste truncated preview)`)){const vt=new TextEncoder().encode(Ke).length;if(c.length>=Ur.MAX_COUNT){gt(`Cannot attach pasted text. Maximum ${Ur.MAX_COUNT} attachments allowed (currently ${c.length}).`);return}if(vt>Ur.MAX_FILE_SIZE){gt(`Pasted text is too large (${zr(vt)}). Maximum ${zr(Ur.MAX_FILE_SIZE)} per file.`);return}const Qt=c.reduce((bn,_r)=>bn+_r.size,0);if(Qt+vt>Ur.MAX_TOTAL_SIZE){gt(`Total size would exceed ${zr(Ur.MAX_TOTAL_SIZE)}. Current: ${zr(Qt)}, Adding: ${zr(vt)}.`);return}const Fn={id:Jp(),type:"file",data:je(Ke),mimeType:"text/plain",filename:"pasted.txt",size:vt,source:"paste"};d(bn=>[...bn,Fn])}else{const ot=Ke.slice(0,ke);s(vt=>vt+ot)}},sn=async(he,Ae)=>new Promise((ce,Ie)=>{const qe=new FileReader;qe.onloadend=()=>{try{const Ke=qe.result;if(typeof Ke!="string"){Ie(new Error("Malformed data URL: FileReader result is not a string"));return}const Mt=Ke.indexOf(",");if(Mt===-1){Ie(new Error("Malformed data URL: missing comma separator"));return}const ot=Ke.substring(Mt+1),vt={id:Jp(),type:he.type.startsWith("image/")?"image":"file",data:ot,mimeType:he.type,filename:he.name,size:he.size,source:Ae};ce(vt)}catch(Ke){Ie(Ke)}},qe.onerror=()=>Ie(new Error("Failed to read file")),qe.readAsDataURL(he)}),pr=he=>{d(Ae=>Ae.filter(ce=>ce.id!==he))},si=he=>{D&&(he.type==="image"?Q.current.trackImageAttached({imageType:he.mimeType,imageSizeBytes:he.size,sessionId:D}):Q.current.trackFileAttached({fileType:he.mimeType,fileSizeBytes:he.size,sessionId:D}))},Or=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},dr=async()=>{try{const he=await navigator.mediaDevices.getUserMedia({audio:!0}),Ae=new MediaRecorder(he);w.current=Ae;const ce=[];Ae.ondataavailable=Ie=>{Ie.data.size>0&&ce.push(Ie.data)},Ae.onstop=()=>{const Ie=new Blob(ce,{type:Ae.mimeType}),qe=new FileReader;qe.onloadend=()=>{try{const Ke=qe.result,Mt=Ke.indexOf(","),ot=Ke.substring(Mt+1),vt=Ae.mimeType||"audio/webm",Fn=(_r=>({"audio/mp3":"mp3","audio/mpeg":"mp3","audio/wav":"wav","audio/x-wav":"wav","audio/wave":"wav","audio/webm":"webm","audio/ogg":"ogg","audio/m4a":"m4a","audio/aac":"aac"})[_r]||_r.split("/")[1]||"webm")(vt),bn={id:Jp(),type:"file",data:ot,mimeType:vt,filename:`recording.${Fn}`,size:Ie.size,source:"button"};d(_r=>[..._r,bn]),si(bn)}catch{gt("Failed to process audio recording. Please try again.")}},qe.readAsDataURL(Ie),he.getTracks().forEach(Ke=>Ke.stop())},Ae.start(),S(!0)}catch{gt("Failed to start audio recording. Please check microphone permissions.")}},Kn=()=>{w.current?.stop(),S(!1)},mr=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},_i=()=>m.current?.click(),Ne=()=>f.current?.click(),De=()=>g.current?.click(),yn=()=>y.current?.click(),fr=()=>x.current?.click();b.useEffect(()=>{i&&ne&&O(null),i&&be&&Ue(null)},[i,ne,be]);const Yt=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},On=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},Ra=async he=>{const Ae=Array.from(he.target.files||[]);Ae.length!==0&&(await Je(Ae,"button"),he.target.value="")},Vo=he=>{he.preventDefault(),he.stopPropagation(),P.current++,he.dataTransfer.types.includes("Files")&&M(!0)},Zl=he=>{he.preventDefault(),he.stopPropagation()},Kc=he=>{he.preventDefault(),he.stopPropagation(),P.current--,P.current===0&&M(!1)},Aa=async he=>{he.preventDefault(),he.stopPropagation(),M(!1),P.current=0;const Ae=Array.from(he.dataTransfer.files);Ae.length>0&&await Je(Ae,"drop")};return l.jsxs("div",{id:"input-area",className:"flex flex-col gap-2 w-full",children:[ne&&l.jsxs(ri,{variant:"destructive",className:"mb-2",children:[l.jsx(Na,{className:"h-4 w-4"}),l.jsxs(ii,{className:"flex items-center justify-between",children:[l.jsx("span",{children:ne}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>O(null),className:"h-auto p-1 ml-2",children:l.jsx(Cn,{className:"h-3 w-3"})})]})]}),be&&l.jsxs(ri,{variant:"destructive",className:"mb-2",children:[l.jsx(Na,{className:"h-4 w-4"}),l.jsxs(ii,{className:"flex items-center justify-between",children:[l.jsx("span",{children:be}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>Ue(null),className:"h-auto p-1 ml-2",children:l.jsx(Cn,{className:"h-3 w-3"})})]})]}),l.jsxs("div",{className:"w-full",children:[l.jsx("form",{onSubmit:he=>{he.preventDefault(),Sn()},children:l.jsx("div",{role:"region","aria-label":"Message input area with file drop zone",className:se("relative transition-all duration-200",N&&"ring-2 ring-primary ring-offset-2 rounded-lg"),onDragEnter:Vo,onDragOver:Zl,onDragLeave:Kc,onDrop:Aa,children:l.jsxs(ane,{children:[N&&l.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-primary/10 rounded-lg pointer-events-none",children:l.jsxs("div",{className:"text-center",children:[l.jsx("div",{className:"text-4xl mb-2",children:"📎"}),l.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files to attach"}),l.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Up to ",Ur.MAX_COUNT," files,"," ",zr(Ur.MAX_FILE_SIZE)," each"]})]})}),$.length>0&&l.jsx(Bie,{messages:$,onEditMessage:er,onRemoveMessage:he=>{D&&j({sessionId:D,messageId:he})}}),c.length>0&&l.jsxs("div",{className:"px-4 pt-4",children:[l.jsxs("div",{className:"flex items-center justify-between mb-2",children:[l.jsxs("div",{className:"text-xs text-muted-foreground",children:[c.length," / ",Ur.MAX_COUNT," ","files (",zr(gn)," /"," ",zr(Ur.MAX_TOTAL_SIZE),")"]}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>d([]),className:"h-6 text-xs text-muted-foreground hover:text-destructive",children:"Clear all"})]}),l.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:c.map(he=>l.jsx(Tie,{attachment:he,onRemove:()=>pr(he.id)},he.id))})]}),l.jsxs("div",{className:"flex-auto overflow-y-auto relative",children:[k?l.jsx(sne,{ref:o,value:i,onChange:Z,onKeyDown:Tr,onPaste:Rt,placeholder:"Ask Dexto anything... Type @ for resources, / for prompts, # for memories",minRows:1,maxRows:8,className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none max-h-full"}):l.jsx("textarea",{ref:o,rows:1,value:i,onChange:Z,onKeyDown:Tr,onPaste:Rt,placeholder:"Ask Dexto anything... Type @ for resources, / for prompts, # for memories",className:"w-full px-4 pt-4 pb-1 text-lg leading-7 placeholder:text-lg bg-transparent border-none resize-none outline-none ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none"}),de&&ut&&typeof window<"u"&&Ov.createPortal(l.jsx("div",{style:ut,className:"max-h-64 overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md",children:l.jsx(kie,{resources:ze,query:pe,selectedIndex:Ve,onHoverIndex:he=>Be(he),onSelect:he=>Ti(Ve,he),loading:lt})}),document.body),tr&&ye&&typeof window<"u"&&Ov.createPortal(l.jsx("div",{style:ye,className:"rounded-md border border-border bg-popover text-popover-foreground shadow-md",children:l.jsxs("div",{className:"p-2 flex items-center gap-2 text-sm text-muted-foreground",children:[l.jsx(Ro,{className:"h-3.5 w-3.5"}),l.jsxs("span",{children:["Press"," ",l.jsx("kbd",{className:"px-1.5 py-0.5 text-xs bg-muted border border-border rounded",children:"Enter"})," ","to create a memory"]})]})}),document.body)]}),l.jsx(Nie,{isVisible:st,searchQuery:i,onSelectPrompt:ue,onClose:Te,onCreatePrompt:An,refreshKey:wt}),l.jsx(one,{leftButtons:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(vre,{onImageAttach:_i,onPdfAttach:Ne,onAudioAttach:De,onVideoAttach:yn,onDocumentAttach:fr,supports:{image:Ce===null?void 0:Ce.includes("image"),pdf:Ce===null?void 0:Ce.includes("pdf"),audio:Ce===null?void 0:Ce.includes("audio"),video:Ce===null?void 0:Ce.includes("video"),document:Ce===null?void 0:Ce.includes("document")},useLargeBreakpoint:n}),l.jsx(bre,{isRecording:T,onToggleRecording:T?Kn:dr,disabled:Ce!==null&&!Ce.includes("audio"),useLargeBreakpoint:n})]}),rightButtons:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx(bie,{}),l.jsx(Pe,{type:E?"button":"submit",onClick:E?()=>I(D||void 0):void 0,disabled:E?!1:!i.trim()&&c.length===0||t,className:se("h-10 w-10 p-0 rounded-full transition-all duration-200",E?"bg-secondary/80 text-secondary-foreground hover:bg-secondary shadow-sm hover:shadow-md border border-border/50":"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-lg"),"aria-label":E?"Stop":"Send message",title:E?"Stop":"Send",children:E?l.jsx(qE,{className:"h-3.5 w-3.5 fill-current"}):t?l.jsx(vr,{className:"h-4 w-4 animate-spin"}):l.jsx(jq,{className:"h-4 w-4"})})]})})]})})}),l.jsx("input",{ref:m,type:"file",id:"image-upload",accept:"image/*",multiple:!0,className:"hidden",onChange:mr}),l.jsx("input",{ref:f,type:"file",id:"pdf-upload",accept:"application/pdf",multiple:!0,className:"hidden",onChange:Or}),l.jsx("input",{ref:g,type:"file",id:"audio-upload",accept:"audio/*",multiple:!0,className:"hidden",onChange:Yt}),l.jsx("input",{ref:y,type:"file",id:"video-upload",accept:"video/*",multiple:!0,className:"hidden",onChange:On}),l.jsx("input",{ref:x,type:"file",id:"document-upload",accept:".txt,.md,.json,.html,.xml,.doc,.docx,.rtf,.odt,.ppt,.pptx,.csv,.tsv,.xls,.xlsx,.iif,text/*,application/json,application/xml,text/xml,text/csv,text/tab-separated-values,application/msword,application/rtf,text/rtf,application/vnd.oasis.opendocument.text,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document",multiple:!0,className:"hidden",onChange:Ra}),l.jsx(Pie,{open:at,onClose:qn,onCreated:br}),l.jsx(A4,{open:Me,onClose:()=>Re(!1)})]})]})}function GP(e,[t,n]){return Math.min(n,Math.max(t,e))}function Hie(e){const t=e+"CollectionProvider",[n,r]=$o(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=T=>{const{scope:S,children:w}=T,N=dt.useRef(null),M=dt.useRef(new Map).current;return l.jsx(i,{scope:S,itemMap:M,collectionRef:N,children:w})};o.displayName=t;const c=e+"CollectionSlot",d=Dl(c),m=dt.forwardRef((T,S)=>{const{scope:w,children:N}=T,M=s(c,w),P=ln(S,M.collectionRef);return l.jsx(d,{ref:P,children:N})});m.displayName=c;const f=e+"CollectionItemSlot",g="data-radix-collection-item",y=Dl(f),x=dt.forwardRef((T,S)=>{const{scope:w,children:N,...M}=T,P=dt.useRef(null),D=ln(S,P),E=s(f,w);return dt.useEffect(()=>(E.itemMap.set(P,{ref:P,...M}),()=>{E.itemMap.delete(P)})),l.jsx(y,{[g]:"",ref:D,children:N})});x.displayName=f;function k(T){const S=s(e+"CollectionConsumer",T);return dt.useCallback(()=>{const N=S.collectionRef.current;if(!N)return[];const M=Array.from(N.querySelectorAll(`[${g}]`));return Array.from(S.itemMap.values()).sort((E,I)=>M.indexOf(E.ref.current)-M.indexOf(I.ref.current))},[S.collectionRef,S.itemMap])}return[{Provider:o,Slot:m,ItemSlot:x},k,r]}var Vie=b.createContext(void 0);function Kie(e){const t=b.useContext(Vie);return e||t||"ltr"}var Wie=[" ","Enter","ArrowUp","ArrowDown"],Zie=[" ","Enter"],Ul="Select",[Wg,Zg,Yie]=Hie(Ul),[$c]=$o(Ul,[Yie,Fc]),Yg=Fc(),[Qie,Go]=$c(Ul),[Xie,Jie]=$c(Ul),O4=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:s,value:o,defaultValue:c,onValueChange:d,dir:m,name:f,autoComplete:g,disabled:y,required:x,form:k}=e,T=Yg(t),[S,w]=b.useState(null),[N,M]=b.useState(null),[P,D]=b.useState(!1),E=Kie(m),[I,R]=Rl({prop:r,defaultProp:i??!1,onChange:s,caller:Ul}),[K,L]=Rl({prop:o,defaultProp:c,onChange:d,caller:Ul}),U=b.useRef(null),G=S?k||!!S.closest("form"):!0,[Y,B]=b.useState(new Set),q=Array.from(Y).map(j=>j.props.value).join(";");return l.jsx(f2,{...T,children:l.jsxs(Qie,{required:x,scope:t,trigger:S,onTriggerChange:w,valueNode:N,onValueNodeChange:M,valueNodeHasChildren:P,onValueNodeHasChildrenChange:D,contentId:No(),value:K,onValueChange:L,open:I,onOpenChange:R,dir:E,triggerPointerDownPosRef:U,disabled:y,children:[l.jsx(Wg.Provider,{scope:t,children:l.jsx(Xie,{scope:e.__scopeSelect,onNativeOptionAdd:b.useCallback(j=>{B(W=>new Set(W).add(j))},[]),onNativeOptionRemove:b.useCallback(j=>{B(W=>{const z=new Set(W);return z.delete(j),z})},[]),children:n})}),G?l.jsxs(iI,{"aria-hidden":!0,required:x,tabIndex:-1,name:f,autoComplete:g,value:K,onChange:j=>L(j.target.value),disabled:y,form:k,children:[K===void 0?l.jsx("option",{value:""}):null,Array.from(Y)]},q):null]})})};O4.displayName=Ul;var F4="SelectTrigger",U4=b.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,s=Yg(n),o=Go(F4,n),c=o.disabled||r,d=ln(t,o.onTriggerChange),m=Zg(n),f=b.useRef("touch"),[g,y,x]=aI(T=>{const S=m().filter(M=>!M.disabled),w=S.find(M=>M.value===o.value),N=oI(S,T,w);N!==void 0&&o.onValueChange(N.value)}),k=T=>{c||(o.onOpenChange(!0),x()),T&&(o.triggerPointerDownPosRef.current={x:Math.round(T.pageX),y:Math.round(T.pageY)})};return l.jsx(Dg,{asChild:!0,...s,children:l.jsx($t.button,{type:"button",role:"combobox","aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":"none",dir:o.dir,"data-state":o.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":sI(o.value)?"":void 0,...i,ref:d,onClick:jt(i.onClick,T=>{T.currentTarget.focus(),f.current!=="mouse"&&k(T)}),onPointerDown:jt(i.onPointerDown,T=>{f.current=T.pointerType;const S=T.target;S.hasPointerCapture(T.pointerId)&&S.releasePointerCapture(T.pointerId),T.button===0&&T.ctrlKey===!1&&T.pointerType==="mouse"&&(k(T),T.preventDefault())}),onKeyDown:jt(i.onKeyDown,T=>{const S=g.current!=="";!(T.ctrlKey||T.altKey||T.metaKey)&&T.key.length===1&&y(T.key),!(S&&T.key===" ")&&Wie.includes(T.key)&&(k(),T.preventDefault())})})})});U4.displayName=F4;var L4="SelectValue",z4=b.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:s,placeholder:o="",...c}=e,d=Go(L4,n),{onValueNodeHasChildrenChange:m}=d,f=s!==void 0,g=ln(t,d.onValueNodeChange);return Vr(()=>{m(f)},[m,f]),l.jsx($t.span,{...c,ref:g,style:{pointerEvents:"none"},children:sI(d.value)?l.jsx(l.Fragment,{children:o}):s})});z4.displayName=L4;var ese="SelectIcon",$4=b.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return l.jsx($t.span,{"aria-hidden":!0,...i,ref:t,children:r||"▼"})});$4.displayName=ese;var tse="SelectPortal",B4=e=>l.jsx(mm,{asChild:!0,...e});B4.displayName=tse;var Ll="SelectContent",q4=b.forwardRef((e,t)=>{const n=Go(Ll,e.__scopeSelect),[r,i]=b.useState();if(Vr(()=>{i(new DocumentFragment)},[]),!n.open){const s=r;return s?fg.createPortal(l.jsx(G4,{scope:e.__scopeSelect,children:l.jsx(Wg.Slot,{scope:e.__scopeSelect,children:l.jsx("div",{children:e.children})})}),s):null}return l.jsx(H4,{...e,ref:t})});q4.displayName=Ll;var xs=10,[G4,Ho]=$c(Ll),nse="SelectContentImpl",rse=Dl("SelectContent.RemoveScroll"),H4=b.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:s,onPointerDownOutside:o,side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:g,collisionBoundary:y,collisionPadding:x,sticky:k,hideWhenDetached:T,avoidCollisions:S,...w}=e,N=Go(Ll,n),[M,P]=b.useState(null),[D,E]=b.useState(null),I=ln(t,ae=>P(ae)),[R,K]=b.useState(null),[L,U]=b.useState(null),G=Zg(n),[Y,B]=b.useState(!1),q=b.useRef(!1);b.useEffect(()=>{if(M)return Y2(M)},[M]),Z2();const j=b.useCallback(ae=>{const[ze,...lt]=G().map(J=>J.ref.current),[me]=lt.slice(-1),pe=document.activeElement;for(const J of ae)if(J===pe||(J?.scrollIntoView({block:"nearest"}),J===ze&&D&&(D.scrollTop=0),J===me&&D&&(D.scrollTop=D.scrollHeight),J?.focus(),document.activeElement!==pe))return},[G,D]),W=b.useCallback(()=>j([R,M]),[j,R,M]);b.useEffect(()=>{Y&&W()},[Y,W]);const{onOpenChange:z,triggerPointerDownPosRef:$}=N;b.useEffect(()=>{if(M){let ae={x:0,y:0};const ze=me=>{ae={x:Math.abs(Math.round(me.pageX)-($.current?.x??0)),y:Math.abs(Math.round(me.pageY)-($.current?.y??0))}},lt=me=>{ae.x<=10&&ae.y<=10?me.preventDefault():M.contains(me.target)||z(!1),document.removeEventListener("pointermove",ze),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",ze),document.addEventListener("pointerup",lt,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ze),document.removeEventListener("pointerup",lt,{capture:!0})}}},[M,z,$]),b.useEffect(()=>{const ae=()=>z(!1);return window.addEventListener("blur",ae),window.addEventListener("resize",ae),()=>{window.removeEventListener("blur",ae),window.removeEventListener("resize",ae)}},[z]);const[A,Q]=aI(ae=>{const ze=G().filter(pe=>!pe.disabled),lt=ze.find(pe=>pe.ref.current===document.activeElement),me=oI(ze,ae,lt);me&&setTimeout(()=>me.ref.current.focus())}),ne=b.useCallback((ae,ze,lt)=>{const me=!q.current&&!lt;(N.value!==void 0&&N.value===ze||me)&&(K(ae),me&&(q.current=!0))},[N.value]),O=b.useCallback(()=>M?.focus(),[M]),be=b.useCallback((ae,ze,lt)=>{const me=!q.current&&!lt;(N.value!==void 0&&N.value===ze||me)&&U(ae)},[N.value]),Ue=r==="popper"?l1:V4,Ce=Ue===l1?{side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:g,collisionBoundary:y,collisionPadding:x,sticky:k,hideWhenDetached:T,avoidCollisions:S}:{};return l.jsx(G4,{scope:n,content:M,viewport:D,onViewportChange:E,itemRefCallback:ne,selectedItem:R,onItemLeave:O,itemTextRefCallback:be,focusSelectedItem:W,selectedItemText:L,position:r,isPositioned:Y,searchRef:A,children:l.jsx(qg,{as:rse,allowPinchZoom:!0,children:l.jsx($g,{asChild:!0,trapped:N.open,onMountAutoFocus:ae=>{ae.preventDefault()},onUnmountAutoFocus:jt(i,ae=>{N.trigger?.focus({preventScroll:!0}),ae.preventDefault()}),children:l.jsx(pm,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:ae=>ae.preventDefault(),onDismiss:()=>N.onOpenChange(!1),children:l.jsx(Ue,{role:"listbox",id:N.contentId,"data-state":N.open?"open":"closed",dir:N.dir,onContextMenu:ae=>ae.preventDefault(),...w,...Ce,onPlaced:()=>B(!0),ref:I,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:jt(w.onKeyDown,ae=>{const ze=ae.ctrlKey||ae.altKey||ae.metaKey;if(ae.key==="Tab"&&ae.preventDefault(),!ze&&ae.key.length===1&&Q(ae.key),["ArrowUp","ArrowDown","Home","End"].includes(ae.key)){let me=G().filter(pe=>!pe.disabled).map(pe=>pe.ref.current);if(["ArrowUp","End"].includes(ae.key)&&(me=me.slice().reverse()),["ArrowUp","ArrowDown"].includes(ae.key)){const pe=ae.target,J=me.indexOf(pe);me=me.slice(J+1)}setTimeout(()=>j(me)),ae.preventDefault()}})})})})})})});H4.displayName=nse;var ise="SelectItemAlignedPosition",V4=b.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,s=Go(Ll,n),o=Ho(Ll,n),[c,d]=b.useState(null),[m,f]=b.useState(null),g=ln(t,I=>f(I)),y=Zg(n),x=b.useRef(!1),k=b.useRef(!0),{viewport:T,selectedItem:S,selectedItemText:w,focusSelectedItem:N}=o,M=b.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&m&&T&&S&&w){const I=s.trigger.getBoundingClientRect(),R=m.getBoundingClientRect(),K=s.valueNode.getBoundingClientRect(),L=w.getBoundingClientRect();if(s.dir!=="rtl"){const pe=L.left-R.left,J=K.left-pe,de=I.left-J,fe=I.width+de,Ve=Math.max(fe,R.width),Be=window.innerWidth-xs,ut=GP(J,[xs,Math.max(xs,Be-Ve)]);c.style.minWidth=fe+"px",c.style.left=ut+"px"}else{const pe=R.right-L.right,J=window.innerWidth-K.right-pe,de=window.innerWidth-I.right-J,fe=I.width+de,Ve=Math.max(fe,R.width),Be=window.innerWidth-xs,ut=GP(J,[xs,Math.max(xs,Be-Ve)]);c.style.minWidth=fe+"px",c.style.right=ut+"px"}const U=y(),G=window.innerHeight-xs*2,Y=T.scrollHeight,B=window.getComputedStyle(m),q=parseInt(B.borderTopWidth,10),j=parseInt(B.paddingTop,10),W=parseInt(B.borderBottomWidth,10),z=parseInt(B.paddingBottom,10),$=q+j+Y+z+W,A=Math.min(S.offsetHeight*5,$),Q=window.getComputedStyle(T),ne=parseInt(Q.paddingTop,10),O=parseInt(Q.paddingBottom,10),be=I.top+I.height/2-xs,Ue=G-be,Ce=S.offsetHeight/2,ae=S.offsetTop+Ce,ze=q+j+ae,lt=$-ze;if(ze<=be){const pe=U.length>0&&S===U[U.length-1].ref.current;c.style.bottom="0px";const J=m.clientHeight-T.offsetTop-T.offsetHeight,de=Math.max(Ue,Ce+(pe?O:0)+J+W),fe=ze+de;c.style.height=fe+"px"}else{const pe=U.length>0&&S===U[0].ref.current;c.style.top="0px";const de=Math.max(be,q+T.offsetTop+(pe?ne:0)+Ce)+lt;c.style.height=de+"px",T.scrollTop=ze-be+T.offsetTop}c.style.margin=`${xs}px 0`,c.style.minHeight=A+"px",c.style.maxHeight=G+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[y,s.trigger,s.valueNode,c,m,T,S,w,s.dir,r]);Vr(()=>M(),[M]);const[P,D]=b.useState();Vr(()=>{m&&D(window.getComputedStyle(m).zIndex)},[m]);const E=b.useCallback(I=>{I&&k.current===!0&&(M(),N?.(),k.current=!1)},[M,N]);return l.jsx(ase,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:x,onScrollButtonChange:E,children:l.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:P},children:l.jsx($t.div,{...i,ref:g,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});V4.displayName=ise;var sse="SelectPopperPosition",l1=b.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=xs,...s}=e,o=Yg(n);return l.jsx(h2,{...o,...s,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});l1.displayName=sse;var[ase,rT]=$c(Ll,{}),u1="SelectViewport",K4=b.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,s=Ho(u1,n),o=rT(u1,n),c=ln(t,s.onViewportChange),d=b.useRef(0);return l.jsxs(l.Fragment,{children:[l.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),l.jsx(Wg.Slot,{scope:n,children:l.jsx($t.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:jt(i.onScroll,m=>{const f=m.currentTarget,{contentWrapper:g,shouldExpandOnScrollRef:y}=o;if(y?.current&&g){const x=Math.abs(d.current-f.scrollTop);if(x>0){const k=window.innerHeight-xs*2,T=parseFloat(g.style.minHeight),S=parseFloat(g.style.height),w=Math.max(T,S);if(w<k){const N=w+x,M=Math.min(k,N),P=N-M;g.style.height=M+"px",g.style.bottom==="0px"&&(f.scrollTop=P>0?P:0,g.style.justifyContent="flex-end")}}}d.current=f.scrollTop})})})]})});K4.displayName=u1;var W4="SelectGroup",[ose,lse]=$c(W4),use=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=No();return l.jsx(ose,{scope:n,id:i,children:l.jsx($t.div,{role:"group","aria-labelledby":i,...r,ref:t})})});use.displayName=W4;var Z4="SelectLabel",cse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=lse(Z4,n);return l.jsx($t.div,{id:i.id,...r,ref:t})});cse.displayName=Z4;var lg="SelectItem",[pse,Y4]=$c(lg),Q4=b.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:s,...o}=e,c=Go(lg,n),d=Ho(lg,n),m=c.value===r,[f,g]=b.useState(s??""),[y,x]=b.useState(!1),k=ln(t,N=>d.itemRefCallback?.(N,r,i)),T=No(),S=b.useRef("touch"),w=()=>{i||(c.onValueChange(r),c.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return l.jsx(pse,{scope:n,value:r,disabled:i,textId:T,isSelected:m,onItemTextChange:b.useCallback(N=>{g(M=>M||(N?.textContent??"").trim())},[]),children:l.jsx(Wg.ItemSlot,{scope:n,value:r,disabled:i,textValue:f,children:l.jsx($t.div,{role:"option","aria-labelledby":T,"data-highlighted":y?"":void 0,"aria-selected":m&&y,"data-state":m?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...o,ref:k,onFocus:jt(o.onFocus,()=>x(!0)),onBlur:jt(o.onBlur,()=>x(!1)),onClick:jt(o.onClick,()=>{S.current!=="mouse"&&w()}),onPointerUp:jt(o.onPointerUp,()=>{S.current==="mouse"&&w()}),onPointerDown:jt(o.onPointerDown,N=>{S.current=N.pointerType}),onPointerMove:jt(o.onPointerMove,N=>{S.current=N.pointerType,i?d.onItemLeave?.():S.current==="mouse"&&N.currentTarget.focus({preventScroll:!0})}),onPointerLeave:jt(o.onPointerLeave,N=>{N.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:jt(o.onKeyDown,N=>{d.searchRef?.current!==""&&N.key===" "||(Zie.includes(N.key)&&w(),N.key===" "&&N.preventDefault())})})})})});Q4.displayName=lg;var Td="SelectItemText",X4=b.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...s}=e,o=Go(Td,n),c=Ho(Td,n),d=Y4(Td,n),m=Jie(Td,n),[f,g]=b.useState(null),y=ln(t,w=>g(w),d.onItemTextChange,w=>c.itemTextRefCallback?.(w,d.value,d.disabled)),x=f?.textContent,k=b.useMemo(()=>l.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:T,onNativeOptionRemove:S}=m;return Vr(()=>(T(k),()=>S(k)),[T,S,k]),l.jsxs(l.Fragment,{children:[l.jsx($t.span,{id:d.textId,...s,ref:y}),d.isSelected&&o.valueNode&&!o.valueNodeHasChildren?fg.createPortal(s.children,o.valueNode):null]})});X4.displayName=Td;var J4="SelectItemIndicator",eI=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return Y4(J4,n).isSelected?l.jsx($t.span,{"aria-hidden":!0,...r,ref:t}):null});eI.displayName=J4;var c1="SelectScrollUpButton",tI=b.forwardRef((e,t)=>{const n=Ho(c1,e.__scopeSelect),r=rT(c1,e.__scopeSelect),[i,s]=b.useState(!1),o=ln(t,r.onScrollButtonChange);return Vr(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollTop>0;s(m)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?l.jsx(rI,{...e,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop-d.offsetHeight)}}):null});tI.displayName=c1;var p1="SelectScrollDownButton",nI=b.forwardRef((e,t)=>{const n=Ho(p1,e.__scopeSelect),r=rT(p1,e.__scopeSelect),[i,s]=b.useState(!1),o=ln(t,r.onScrollButtonChange);return Vr(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollHeight-d.clientHeight,f=Math.ceil(d.scrollTop)<m;s(f)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),i?l.jsx(rI,{...e,ref:o,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop+d.offsetHeight)}}):null});nI.displayName=p1;var rI=b.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,s=Ho("SelectScrollButton",n),o=b.useRef(null),c=Zg(n),d=b.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return b.useEffect(()=>()=>d(),[d]),Vr(()=>{c().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),l.jsx($t.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:jt(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:jt(i.onPointerMove,()=>{s.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:jt(i.onPointerLeave,()=>{d()})})}),dse="SelectSeparator",mse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return l.jsx($t.div,{"aria-hidden":!0,...r,ref:t})});mse.displayName=dse;var d1="SelectArrow",fse=b.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=Yg(n),s=Go(d1,n),o=Ho(d1,n);return s.open&&o.position==="popper"?l.jsx(g2,{...i,...r,ref:t}):null});fse.displayName=d1;var hse="SelectBubbleInput",iI=b.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=b.useRef(null),s=ln(r,i),o=W2(t);return b.useEffect(()=>{const c=i.current;if(!c)return;const d=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(d,"value").set;if(o!==t&&f){const g=new Event("change",{bubbles:!0});f.call(c,t),c.dispatchEvent(g)}},[o,t]),l.jsx($t.select,{...n,style:{...LD,...n.style},ref:s,defaultValue:t})});iI.displayName=hse;function sI(e){return e===""||e===void 0}function aI(e){const t=jl(e),n=b.useRef(""),r=b.useRef(0),i=b.useCallback(o=>{const c=n.current+o;t(c),(function d(m){n.current=m,window.clearTimeout(r.current),m!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(c)},[t]),s=b.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return b.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,s]}function oI(e,t,n){const i=t.length>1&&Array.from(t).every(m=>m===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let o=gse(e,Math.max(s,0));i.length===1&&(o=o.filter(m=>m!==n));const d=o.find(m=>m.textValue.toLowerCase().startsWith(i.toLowerCase()));return d!==n?d:void 0}function gse(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var yse=O4,xse=U4,vse=z4,bse=$4,Tse=B4,_se=q4,kse=K4,wse=Q4,Sse=X4,Mse=eI,Nse=tI,Pse=nI;function zl({...e}){return l.jsx(yse,{"data-slot":"select",...e})}function $l({...e}){return l.jsx(vse,{"data-slot":"select-value",...e})}function Bl({className:e,size:t="default",children:n,...r}){return l.jsxs(xse,{"data-slot":"select-trigger","data-size":t,className:se("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[n,l.jsx(bse,{asChild:!0,children:l.jsx(Ir,{className:"size-4 opacity-50"})})]})}function ql({className:e,children:t,position:n="popper",...r}){return l.jsx(Tse,{children:l.jsxs(_se,{"data-slot":"select-content",className:se("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[l.jsx(Cse,{}),l.jsx(kse,{className:se("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),l.jsx(Ese,{})]})})}function qs({className:e,children:t,...n}){return l.jsxs(wse,{"data-slot":"select-item",className:se("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[l.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:l.jsx(Mse,{children:l.jsx(ur,{className:"size-4"})})}),l.jsx(Sse,{children:t})]})}function Cse({className:e,...t}){return l.jsx(Nse,{"data-slot":"select-scroll-up-button",className:se("flex cursor-default items-center justify-center py-1",e),...t,children:l.jsx(Sg,{className:"size-4"})})}function Ese({className:e,...t}){return l.jsx(Pse,{"data-slot":"select-scroll-down-button",className:se("flex cursor-default items-center justify-center py-1",e),...t,children:l.jsx(Ir,{className:"size-4"})})}const Dse=[/\bapi[_-]?key\b/i,/\bapikey\b/i,/\bsecret\b/i,/\btoken\b/i,/\bpassword\b/i,/\bauthorization\b/i,/\bauth[_-]?token\b/i,/\bbearer\b/i,/\bcredential\b/i,/\bclient[_-]?secret\b/i];function bv({label:e="Key-Value Pairs",placeholder:t={key:"Key",value:"Value"},pairs:n,onChange:r,disabled:i=!1,className:s="",keyLabel:o="Key",valueLabel:c="Value",maskSensitiveValues:d=!0}){const[m,f]=b.useState(new Set),g=S=>!d||!S?!1:Dse.some(w=>w.test(S)),y=S=>{f(w=>{const N=new Set(w);return N.has(S)?N.delete(S):N.add(S),N})},x=()=>{const S={key:"",value:"",id:`kv-${Date.now()}-${Math.random().toString(36).substring(2,11)}`};r([...n,S])},k=S=>{const w=n.filter(N=>N.id!==S);r(w)},T=(S,w,N)=>{r(n.map(M=>M.id===S?{...M,[w]:N}:M))};return l.jsxs("div",{className:`space-y-3 ${s}`,children:[e&&l.jsx(fn,{className:"text-sm font-medium",children:e}),l.jsxs("div",{className:"space-y-2",children:[n.length>0&&l.jsxs("div",{className:"grid grid-cols-12 gap-2 items-center text-xs text-muted-foreground",children:[l.jsx("div",{className:"col-span-5",children:o}),l.jsx("div",{className:"col-span-6",children:c}),l.jsx("div",{className:"col-span-1"})]}),n.map(S=>{const w=g(S.key),N=m.has(S.id);return l.jsxs("div",{className:"grid grid-cols-12 gap-2 items-center",children:[l.jsx(ct,{placeholder:t.key,value:S.key,onChange:M=>T(S.id,"key",M.target.value),disabled:i,className:"col-span-5"}),l.jsxs("div",{className:"col-span-6 relative",children:[l.jsx(ct,{type:w&&!N?"password":"text",placeholder:t.value,value:S.value,onChange:M=>T(S.id,"value",M.target.value),disabled:i,className:"pr-10"}),w&&S.value&&l.jsx(Pe,{type:"button",variant:"ghost",size:"sm",onClick:()=>y(S.id),disabled:i,className:"absolute right-0 top-0 h-full w-10 p-0 hover:bg-transparent","aria-label":N?"Hide value":"Show value",children:N?l.jsx(cm,{className:"h-4 w-4 text-muted-foreground"}):l.jsx(jc,{className:"h-4 w-4 text-muted-foreground"})})]}),l.jsx(Pe,{type:"button",variant:"ghost",size:"sm",onClick:()=>k(S.id),disabled:i,className:"col-span-1 h-8 w-8 p-0",children:l.jsx(Ar,{className:"h-4 w-4"})})]},S.id)})]}),l.jsxs(Pe,{type:"button",variant:"outline",size:"sm",onClick:x,disabled:i,className:"w-full mt-2",children:[l.jsx(xi,{className:"h-4 w-4 mr-2"}),"Add ",o]})]})}var Qg="Checkbox",[jse]=$o(Qg),[Ise,iT]=jse(Qg);function Rse(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:s,form:o,name:c,onCheckedChange:d,required:m,value:f="on",internal_do_not_use_render:g}=e,[y,x]=Rl({prop:n,defaultProp:i??!1,onChange:d,caller:Qg}),[k,T]=b.useState(null),[S,w]=b.useState(null),N=b.useRef(!1),M=k?!!o||!!k.closest("form"):!0,P={checked:y,disabled:s,setChecked:x,control:k,setControl:T,name:c,form:o,value:f,hasConsumerStoppedPropagationRef:N,required:m,defaultChecked:Po(i)?!1:i,isFormControl:M,bubbleInput:S,setBubbleInput:w};return l.jsx(Ise,{scope:t,...P,children:Ase(g)?g(P):r})}var lI="CheckboxTrigger",uI=b.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i)=>{const{control:s,value:o,disabled:c,checked:d,required:m,setControl:f,setChecked:g,hasConsumerStoppedPropagationRef:y,isFormControl:x,bubbleInput:k}=iT(lI,e),T=ln(i,f),S=b.useRef(d);return b.useEffect(()=>{const w=s?.form;if(w){const N=()=>g(S.current);return w.addEventListener("reset",N),()=>w.removeEventListener("reset",N)}},[s,g]),l.jsx($t.button,{type:"button",role:"checkbox","aria-checked":Po(d)?"mixed":d,"aria-required":m,"data-state":hI(d),"data-disabled":c?"":void 0,disabled:c,value:o,...r,ref:T,onKeyDown:jt(t,w=>{w.key==="Enter"&&w.preventDefault()}),onClick:jt(n,w=>{g(N=>Po(N)?!0:!N),k&&x&&(y.current=w.isPropagationStopped(),y.current||w.stopPropagation())})})});uI.displayName=lI;var cI=b.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:i,defaultChecked:s,required:o,disabled:c,value:d,onCheckedChange:m,form:f,...g}=e;return l.jsx(Rse,{__scopeCheckbox:n,checked:i,defaultChecked:s,disabled:c,required:o,onCheckedChange:m,name:r,form:f,value:d,internal_do_not_use_render:({isFormControl:y})=>l.jsxs(l.Fragment,{children:[l.jsx(uI,{...g,ref:t,__scopeCheckbox:n}),y&&l.jsx(fI,{__scopeCheckbox:n})]})})});cI.displayName=Qg;var pI="CheckboxIndicator",dI=b.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...i}=e,s=iT(pI,n);return l.jsx(ja,{present:r||Po(s.checked)||s.checked===!0,children:l.jsx($t.span,{"data-state":hI(s.checked),"data-disabled":s.disabled?"":void 0,...i,ref:t,style:{pointerEvents:"none",...e.style}})})});dI.displayName=pI;var mI="CheckboxBubbleInput",fI=b.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:i,checked:s,defaultChecked:o,required:c,disabled:d,name:m,value:f,form:g,bubbleInput:y,setBubbleInput:x}=iT(mI,e),k=ln(n,x),T=W2(s),S=p2(r);b.useEffect(()=>{const N=y;if(!N)return;const M=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(M,"checked").set,E=!i.current;if(T!==s&&D){const I=new Event("click",{bubbles:E});N.indeterminate=Po(s),D.call(N,Po(s)?!1:s),N.dispatchEvent(I)}},[y,T,s,i]);const w=b.useRef(Po(s)?!1:s);return l.jsx($t.input,{type:"checkbox","aria-hidden":!0,defaultChecked:o??w.current,required:c,disabled:d,name:m,value:f,form:g,...t,tabIndex:-1,ref:k,style:{...t.style,...S,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});fI.displayName=mI;function Ase(e){return typeof e=="function"}function Po(e){return e==="indeterminate"}function hI(e){return Po(e)?"indeterminate":e?"checked":"unchecked"}function gI({className:e,...t}){return l.jsx(cI,{"data-slot":"checkbox",className:se("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:l.jsx(dI,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:l.jsx(ur,{className:"size-3.5"})})})}function yI({isOpen:e,onClose:t,onServerConnected:n,initialName:r,initialConfig:i,lockName:s}){const o=i2(),[c,d]=b.useState(""),[m,f]=b.useState("stdio"),[g,y]=b.useState(""),[x,k]=b.useState(""),[T,S]=b.useState(""),[w,N]=b.useState([]),[M,P]=b.useState([]),[D,E]=b.useState(null),[I,R]=b.useState(!1),[K,L]=b.useState(!1),U=j=>{const W={};return j.forEach(z=>{z.key.trim()&&z.value.trim()&&(W[z.key.trim()]=z.value.trim())}),W},G=j=>{const W={};for(const{key:z,value:$}of j){const A=z.trim(),Q=$.trim();A&&Q&&(W[A]=Q)}return W},Y=j=>{const W=["api_key","secret","token","password","key"],z={};for(const[$,A]of Object.entries(j)){const Q=W.some(ne=>$.toLowerCase().includes(ne));z[$]=Q?"***masked***":A}return z},B=j=>{const W=["authorization","proxy-authorization","api-key","x-api-key","token","cookie","set-cookie"],z={};for(const[$,A]of Object.entries(j)){const Q=$.toLowerCase(),ne=W.some(O=>Q===O||Q.includes(O));z[$]=ne?"***masked***":A}return z};b.useEffect(()=>{if(!e){const j=setTimeout(()=>{d(""),f("stdio"),y(""),k(""),S(""),N([]),P([]),E(null),R(!1)},300);return()=>clearTimeout(j)}},[e]),b.useEffect(()=>{if(!e)return;d(r??"");const j=i?.type??"stdio";if(f(j),j==="stdio"){const W=i??{};y(typeof W.command=="string"?W.command:""),k(Array.isArray(W.args)?W.args.join(", "):"");const z=Object.entries(W.env??{});P(z.map(([$,A],Q)=>({key:$,value:String(A??""),id:`env-${Q}`}))),S(""),N([])}else{const W=i??{};S(typeof W.url=="string"?W.url:"");const z=Object.entries(W.headers??{});N(z.map(([$,A],Q)=>({key:$,value:String(A??""),id:`hdr-${Q}`}))),y(""),k(""),P([])}},[e,r,i]);const q=async j=>{if(j.preventDefault(),E(null),R(!0),!c.trim()){E("Server name is required."),R(!1);return}if(m==="stdio"){if(!g.trim()){E("Command is required for stdio servers."),R(!1);return}const z=M.map($=>$.key.trim()).filter(Boolean);if(z.length){const $=z.filter((Q,ne)=>z.indexOf(Q)!==ne);if($.length){E(`Duplicate environment variables: ${Array.from(new Set($)).join(", ")}`),R(!1);return}const A=M.filter(Q=>Q.key.trim()&&!Q.value.trim()).map(Q=>Q.key.trim());if(A.length){E(`Please set required environment variables: ${A.join(", ")}`),R(!1);return}}}else{if(!T.trim()){E(`URL is required for ${m.toUpperCase()} servers.`),R(!1);return}try{new URL(T.trim())}catch{E(`Invalid URL format for ${m.toUpperCase()} server.`),R(!1);return}}let W;m==="stdio"?W={type:"stdio",command:g.trim(),args:x.split(",").map(z=>z.trim()).filter(Boolean),env:G(M),timeout:3e4,connectionMode:"lenient"}:m==="sse"?W={type:"sse",url:T.trim(),headers:w.length?U(w):{},timeout:3e4,connectionMode:"lenient"}:W={type:"http",url:T.trim(),headers:w.length?U(w):{},timeout:3e4,connectionMode:"lenient"};try{await o.mutateAsync({name:c.trim(),config:W,persistToAgent:K}),n?.(),t()}catch(z){let $="Failed to connect server";z instanceof Error?$=z.message||$:typeof z=="string"&&($=z),o.reset(),E($)}finally{R(!1)}};return l.jsx(qr,{open:e,onOpenChange:j=>!j&&t(),children:l.jsxs(Gr,{className:"sm:max-w-[480px]",children:[l.jsxs(ti,{children:[l.jsx(Hr,{children:"Connect New MCP Server"}),l.jsx(is,{children:"Configure connection details for a new MCP server (stdio, SSE, or HTTP)."})]}),l.jsxs("form",{id:"connectServerForm",onSubmit:q,className:"grid gap-4 py-4",children:[D&&l.jsx(ri,{variant:"destructive",children:l.jsx(ii,{children:D})}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"serverName",className:"text-right",children:"Server Name"}),l.jsx(ct,{id:"serverName",value:c,onChange:j=>d(j.target.value),className:"col-span-3",placeholder:"e.g., My Local Tools",required:!0,disabled:I||!!s})]}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"serverType",className:"text-right",children:"Server Type"}),l.jsxs(zl,{value:m,onValueChange:j=>f(j),disabled:I,children:[l.jsx(Bl,{id:"serverType",className:"col-span-3",children:l.jsx($l,{placeholder:"Select type"})}),l.jsxs(ql,{children:[l.jsx(qs,{value:"stdio",children:"stdio"}),l.jsx(qs,{value:"sse",children:"sse"}),l.jsx(qs,{value:"http",children:"http"})]})]})]}),m==="stdio"?l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"command",className:"text-right",children:"Command"}),l.jsx(ct,{id:"command",value:g,onChange:j=>y(j.target.value),className:"col-span-3",placeholder:"e.g., /path/to/executable or python",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"args",className:"text-right",children:"Arguments"}),l.jsx(ct,{id:"args",value:x,onChange:j=>k(j.target.value),className:"col-span-3",placeholder:"Comma-separated, e.g., -m,script.py,--port,8080",disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Environment"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:M,onChange:P,placeholder:{key:"API_KEY",value:"your-secret-key"},disabled:I,keyLabel:"Variable",valueLabel:"Value"})})]})]}):m==="sse"?l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"url",className:"text-right",children:"URL"}),l.jsx(ct,{id:"url",type:"url",value:T,onChange:j=>S(j.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8000/events",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Headers"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:w,onChange:N,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:I,keyLabel:"Header",valueLabel:"Value"})})]})]}):l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"grid grid-cols-4 items-center gap-4",children:[l.jsx(fn,{htmlFor:"url",className:"text-right",children:"URL"}),l.jsx(ct,{id:"url",type:"url",value:T,onChange:j=>S(j.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8080",required:!0,disabled:I})]}),l.jsxs("div",{className:"grid grid-cols-4 items-start gap-4",children:[l.jsx(fn,{className:"text-right mt-2",children:"Headers"}),l.jsx("div",{className:"col-span-3",children:l.jsx(bv,{pairs:w,onChange:N,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:I,keyLabel:"Header",valueLabel:"Value"})})]})]}),l.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[l.jsx(gI,{id:"persistToAgent",checked:K,onCheckedChange:j=>L(j===!0),disabled:I}),l.jsx(fn,{htmlFor:"persistToAgent",className:"text-sm font-normal cursor-pointer",children:"Save to agent configuration file"})]})]}),l.jsxs(Ui,{children:[l.jsx(D4,{asChild:!0,children:l.jsx(Pe,{type:"button",variant:"outline",disabled:I,children:"Cancel"})}),l.jsx(Pe,{type:"submit",form:"connectServerForm",disabled:I,children:I?"Connecting...":"Connect"})]})]})})}var Ose=[{id:"filesystem",name:"Filesystem",description:"Secure file operations with configurable access controls for reading and writing files",category:"productivity",icon:"📁",config:{type:"stdio",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","."],timeout:3e4},tags:["file","directory","filesystem","io"],isOfficial:!0,isInstalled:!1,author:"Anthropic",homepage:"https://github.com/modelcontextprotocol/servers",matchIds:["filesystem"]},{id:"meme-mcp",name:"Meme Generator",description:"Create memes using Imgflip templates",category:"creative",icon:"🖼️",config:{type:"stdio",command:"npx",args:["-y","meme-mcp"],env:{IMGFLIP_USERNAME:"",IMGFLIP_PASSWORD:""},timeout:3e4},tags:["meme","image","creative"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Community",homepage:"https://www.npmjs.com/package/meme-mcp",matchIds:["meme-mcp"]},{id:"product-name-scout",name:"Product Name Scout",description:"SERP analysis, autocomplete, dev collisions, and scoring for product names",category:"research",icon:"🔎",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/product-name-scout-mcp"],timeout:3e4},tags:["research","naming","brand"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["product-name-scout"]},{id:"duckduckgo",name:"DuckDuckGo Search",description:"Search the web using DuckDuckGo",category:"research",icon:"🦆",config:{type:"stdio",command:"uvx",args:["duckduckgo-mcp-server"],timeout:3e4},tags:["search","web","research"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",python:">=3.10",dependencies:["uv"]},author:"Community",homepage:"https://github.com/duckduckgo/mcp-server",matchIds:["duckduckgo","ddg"]},{id:"domain-checker",name:"Domain Checker",description:"Check domain availability across TLDs",category:"research",icon:"🌐",config:{type:"stdio",command:"uvx",args:["truffle-ai-domain-checker-mcp"],timeout:3e4},tags:["domains","availability","research"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["domain-checker"]},{id:"swiggy-food",name:"Swiggy Food",description:"Order food with restaurant search, menus, cart management, and checkout",category:"productivity",icon:"🍔",config:{type:"http",url:"https://mcp.swiggy.com/food",timeout:3e4},tags:["swiggy","food","delivery","ordering"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-food","swiggy_food"]},{id:"swiggy-instamart",name:"Swiggy Instamart",description:"Shop groceries with product search, cart management, and checkout",category:"productivity",icon:"🛒",config:{type:"http",url:"https://mcp.swiggy.com/im",timeout:3e4},tags:["swiggy","instamart","groceries","delivery"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-instamart","swiggy_instamart"]},{id:"swiggy-dineout",name:"Swiggy Dineout",description:"Find restaurants, check availability, and book tables",category:"productivity",icon:"🍽️",config:{type:"http",url:"https://mcp.swiggy.com/dineout",timeout:3e4},tags:["swiggy","dineout","reservations","restaurants"],isOfficial:!0,isInstalled:!1,author:"Swiggy",homepage:"https://github.com/Swiggy/swiggy-mcp-server-manifest",matchIds:["swiggy-dineout","swiggy_dineout"]},{id:"linear",name:"Linear",description:"Manage Linear issues, projects, and workflows",category:"productivity",icon:"📋",config:{type:"stdio",command:"npx",args:["-y","mcp-remote","https://mcp.linear.app/sse"],timeout:3e4},tags:["linear","tasks","projects"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Linear",homepage:"https://mcp.linear.app",matchIds:["linear"]},{id:"image-editor",name:"Image Editor",description:"Comprehensive image processing and manipulation tools",category:"creative",icon:"🖌️",config:{type:"stdio",command:"uvx",args:["truffle-ai-image-editor-mcp"],timeout:3e4},tags:["image","edit","opencv","pillow"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["image_editor","image-editor"]},{id:"music-creator",name:"Music Creator",description:"Create, analyze, and transform music and audio",category:"creative",icon:"🎵",config:{type:"stdio",command:"uvx",args:["truffle-ai-music-creator-mcp"],timeout:3e4},tags:["audio","music","effects"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["music_creator","music-creator"]},{id:"elevenlabs",name:"ElevenLabs",description:"Text-to-speech and voice synthesis using ElevenLabs API",category:"creative",icon:"🎤",config:{type:"stdio",command:"uvx",args:["elevenlabs-mcp"],env:{ELEVENLABS_API_KEY:""},timeout:3e4},tags:["tts","voice","audio","synthesis"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"ElevenLabs",homepage:"https://github.com/elevenlabs/elevenlabs-mcp",matchIds:["elevenlabs"]},{id:"hf",name:"Hugging Face",description:"Access Hugging Face models and datasets",category:"development",icon:"🤗",config:{type:"stdio",command:"npx",args:["-y","@llmindset/mcp-hfspace"],timeout:3e4},tags:["huggingface","models","ai","ml"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"LLMindset",homepage:"https://github.com/llmindset/mcp-hfspace",matchIds:["hf","huggingface"]},{id:"parallel-search",name:"Parallel Search",description:"Search the web and retrieve relevant content with source citations",category:"research",icon:"🔍",config:{type:"http",url:"https://search.parallel.ai/mcp",headers:{},timeout:3e4},tags:["search","web","research","citations"],isOfficial:!0,isInstalled:!1,author:"Parallel",homepage:"https://parallel.ai",matchIds:["parallel-search","parallel_search","parallel"]},{id:"tavily",name:"Tavily Search",description:"Web search and research using Tavily AI search engine",category:"research",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","tavily-mcp@0.1.3"],env:{TAVILY_API_KEY:""},timeout:3e4},tags:["search","web","research","ai"],isOfficial:!1,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Tavily AI",homepage:"https://www.npmjs.com/package/tavily-mcp",matchIds:["tavily"]},{id:"puppeteer",name:"Puppeteer",description:"Browser automation and web interaction tools",category:"productivity",icon:"🌐",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/puppeteer-server"],timeout:3e4},tags:["browser","automation","web","puppeteer"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["puppeteer"]},{id:"gemini-tts",name:"Gemini TTS",description:"Google Gemini Text-to-Speech with 30 prebuilt voices and multi-speaker conversation support",category:"creative",icon:"🎙️",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/gemini-tts-server"],env:{GEMINI_API_KEY:""},timeout:6e4},tags:["tts","speech","voice","audio","gemini","multi-speaker"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["gemini-tts","gemini_tts"]},{id:"nano-banana",name:"Nano Banana",description:"Google Gemini 2.5 Flash Image for advanced image generation, editing, and manipulation",category:"creative",icon:"🍌",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/nano-banana-server@0.1.2"],env:{GEMINI_API_KEY:""},timeout:6e4},tags:["image","generation","editing","ai","gemini","nano-banana"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["nano-banana","nano_banana"]},{id:"openai-image",name:"OpenAI Image",description:"OpenAI's image generation and editing API with GPT Image models and DALL-E support",category:"creative",icon:"🎨",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/openai-image-server"],env:{OPENAI_API_KEY:""},timeout:6e4},tags:["image","generation","editing","ai","openai","dall-e","gpt-image"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers/tree/main/src/openai-image",matchIds:["openai-image","openai_image"]},{id:"heygen",name:"HeyGen",description:"Generate realistic human-like audio using HeyGen",category:"creative",icon:"🎤",config:{type:"stdio",command:"uvx",args:["heygen-mcp"],env:{HEYGEN_API_KEY:""},timeout:3e4},tags:["audio","voice","synthesis","heygen"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",python:">=3.10"},author:"HeyGen",homepage:"https://github.com/heygen-com/heygen-mcp",matchIds:["heygen"]},{id:"runway",name:"Runway",description:"AI-powered creative suite for video and image generation",category:"creative",icon:"🎬",config:{type:"stdio",command:"npx",args:["mcp-remote","https://mcp.runway.team","--header","Authorization: Bearer ${RUNWAY_API_KEY}"],env:{RUNWAY_API_KEY:""},timeout:6e4},tags:["runway","video","generation","ai","creative"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Runway",homepage:"https://docs.runway.team/api/runway-mcp-server",matchIds:["runway"]},{id:"perplexity",name:"Perplexity",description:"AI-powered search engine for real-time web search and research",category:"research",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","@perplexity-ai/mcp-server"],env:{PERPLEXITY_API_KEY:"",PERPLEXITY_TIMEOUT_MS:"600000"},timeout:6e5},tags:["search","web","research","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Perplexity AI",homepage:"https://github.com/perplexityai/modelcontextprotocol/tree/main",matchIds:["perplexity"]},{id:"sora",name:"Sora",description:"AI-powered video generation using OpenAI's Sora technology",category:"creative",icon:"🎬",config:{type:"stdio",command:"npx",args:["-y","@truffle-ai/sora-video-server"],env:{OPENAI_API_KEY:""},timeout:6e4},tags:["video","generation","ai","creative"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Truffle AI",homepage:"https://github.com/truffle-ai/mcp-servers",matchIds:["sora","sora_video"]},{id:"chartjs",name:"ChartJS",description:"Charting and visualization tool using ChartJS",category:"data",icon:"📊",config:{type:"stdio",command:"npx",args:["-y","@ax-crew/chartjs-mcp-server"],timeout:3e4},tags:["chart","visualization","data","chartjs"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"ax-crew",homepage:"https://github.com/ax-crew/chartjs-mcp-server",matchIds:["chartjs"]},{id:"rag-lite-ts",name:"Rag-lite TS",description:"A local-first TypeScript retrieval engine for semantic search over static documents.",category:"data",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","raglite-mcp"],timeout:3e4},tags:["rag","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"FrugalX",homepage:"https://github.com/raglite/rag-lite-ts",matchIds:["rag-lite-ts"]},{id:"exa",name:"Exa",description:"AI-powered web search and research API with semantic search capabilities.",category:"data",icon:"🔍",config:{type:"http",url:"https://mcp.exa.ai/mcp",headers:{}},tags:["rag","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Exa",homepage:"https://docs.exa.ai/reference/exa-mcp",matchIds:["exa"]},{id:"firecrawl",name:"Firecrawl",description:"AI-powered web search and research API that performs semantic search across web sources, aggregates and ranks results for relevance, and returns contextual summaries with citations",category:"data",icon:"🔍",config:{type:"stdio",command:"npx",args:["-y","firecrawl-mcp"],env:{FIRECRAWL_API_KEY:""},timeout:3e4},tags:["search","web","research","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Firecrawl",homepage:"https://docs.firecrawl.dev/mcp-server",matchIds:["firecrawl"]},{id:"shadcn",name:"Shadcn",description:"Shadcn UI components for MCP servers",category:"development",icon:"🖌️",config:{type:"stdio",command:"npx",args:["shadcn@latest","mcp"],timeout:3e4},tags:["shadcn","ui","components","mcp"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Shadcn",homepage:"https://ui.shadcn.com/docs/mcp#configuration",matchIds:["shadcn"]},{id:"kite-trade",name:"Kite",description:"Zerodha Kite API MCP server",category:"data",icon:"💰",config:{type:"http",url:"https://mcp.kite.trade/mcp",headers:{}},tags:["kite","trade","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"Zerodha",homepage:"https://github.com/zerodha/kite-mcp-server",matchIds:["kite-trade"]},{id:"coingecko",name:"CoinGecko",description:"CoinGecko API MCP server",category:"data",icon:"💰",config:{type:"http",url:"https://mcp.api.coingecko.com/mcp",headers:{}},tags:["coingecko","data","ai"],isOfficial:!0,isInstalled:!1,requirements:{platform:"all",node:">=18.0.0"},author:"CoinGecko",homepage:"https://docs.coingecko.com/docs/mcp-server",matchIds:["coingecko"]}];function HP(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var Fse=class _d{static instance;registryEntries=[];isInitialized=!1;constructor(){}static getInstance(){return _d.instance||(_d.instance=new _d),_d.instance}async initialize(){this.isInitialized||(this.registryEntries=Ose,this.isInitialized=!0)}async getEntries(t){await this.initialize();let n=[...this.registryEntries];if(t?.category&&(n=n.filter(r=>r.category===t.category)),t?.tags?.length&&(n=n.filter(r=>t.tags.some(i=>r.tags.includes(i)))),t?.search){const r=t.search.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(r)||i.description.toLowerCase().includes(r)||i.tags.some(s=>s.toLowerCase().includes(r)))}return t?.installed!==void 0&&(n=n.filter(r=>r.isInstalled===t.installed)),t?.official!==void 0&&(n=n.filter(r=>r.isOfficial===t.official)),n.sort((r,i)=>r.isInstalled!==i.isInstalled?r.isInstalled?-1:1:r.isOfficial!==i.isOfficial?r.isOfficial?-1:1:r.name.localeCompare(i.name))}async updateEntry(t,n){await this.initialize();const r=this.registryEntries.find(i=>i.id===t);return r?(Object.assign(r,n),!0):!1}async setInstalled(t,n){return this.updateEntry(t,{isInstalled:n})}async syncInstalledStatus(t){await this.initialize();const n=new Set(t.map(HP));for(const r of this.registryEntries){const s=[r.id,r.name,...r.matchIds||[]].filter(Boolean).map(o=>HP(String(o))).some(o=>n.has(o));r.isInstalled!==s&&(r.isInstalled=s)}}async getServerConfig(t){return await this.initialize(),this.registryEntries.find(n=>n.id===t)||null}async getCategories(){await this.initialize();const t=new Set(this.registryEntries.map(n=>n.category));return Array.from(t).sort()}async getTags(){await this.initialize();const t=new Set(this.registryEntries.flatMap(n=>n.tags));return Array.from(t).sort()}},Use=Fse.getInstance();class xo{constructor(){this.registryEntries=[],this.isInitialized=!1}static normalizeId(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}static getInstance(){return xo.instance||(xo.instance=new xo),xo.instance}async initialize(){this.isInitialized||(this.registryEntries=await this.getBuiltinEntries(),this.isInitialized=!0)}async getEntries(t){await this.initialize();let n=[...this.registryEntries];if(t?.category&&(n=n.filter(r=>r.category===t.category)),t?.tags?.length&&(n=n.filter(r=>t.tags.some(i=>r.tags.includes(i)))),t?.search){const r=t.search.toLowerCase();n=n.filter(i=>i.name.toLowerCase().includes(r)||i.description.toLowerCase().includes(r)||i.tags.some(s=>s.toLowerCase().includes(r)))}return t?.installed!==void 0&&(n=n.filter(r=>r.isInstalled===t.installed)),t?.official!==void 0&&(n=n.filter(r=>r.isOfficial===t.official)),n.sort((r,i)=>r.isInstalled!==i.isInstalled?r.isInstalled?-1:1:r.isOfficial!==i.isOfficial?r.isOfficial?-1:1:r.name.localeCompare(i.name))}async updateEntry(t,n){const r=this.registryEntries.findIndex(i=>i.id===t);return r===-1?!1:(this.registryEntries[r]={...this.registryEntries[r],...n},!0)}async setInstalled(t,n){return this.updateEntry(t,{isInstalled:n})}async syncWithServerStatus(){try{if(await this.initialize(),this.registryEntries.length===0){console.warn("Registry entries not available for status sync");return}const t=await Xe.api.mcp.servers.$get();if(!t.ok)throw new Error(`Failed to fetch servers: ${t.status}`);const r=(await t.json()).servers||[],i=new Set;r.forEach(s=>{if(!s?.id||typeof s.id!="string")return;const o=xo.normalizeId(s.id);i.add(o)});for(const s of this.registryEntries){const d=[s.id,s.name,...s.matchIds||[]].filter(Boolean).map(m=>xo.normalizeId(String(m))).some(m=>i.has(m));s.isInstalled!==d&&(s.isInstalled=d)}}catch(t){console.warn("Failed to sync registry with server status:",t)}}async getServerConfig(t){return await this.initialize(),this.registryEntries.find(n=>n.id===t)||null}async getBuiltinEntries(){return Use.getEntries()}}const Ts=xo.getInstance();function m1({isOpen:e,onClose:t,onInstallServer:n,onOpenConnectModal:r,refreshTrigger:i,disableClose:s=!1}){const[o,c]=b.useState([]),[d,m]=b.useState([]),[f,g]=b.useState(!1),[y,x]=b.useState(null),[k,T]=b.useState(null),[S]=b.useState({}),[w,N]=b.useState(""),[M,P]=b.useState("grid"),[D,E]=b.useState(null),I=b.useRef(null),R=b.useRef(!0),K=b.useRef(null);b.useEffect(()=>(R.current=!0,()=>{R.current=!1,I.current&&clearTimeout(I.current),K.current&&K.current.abort()}),[]),b.useEffect(()=>{if(!e)return;(async()=>{K.current&&K.current.abort();const W=new AbortController;if(K.current=W,!!R.current){g(!0),x(null);try{await Ts.syncWithServerStatus();const z=await Ts.getEntries();R.current&&!W.signal.aborted&&(c(z),m(z))}catch(z){if(R.current&&!W.signal.aborted){const $=z instanceof Error?z.message:"Failed to load server registry";x($)}}finally{R.current&&!W.signal.aborted&&g(!1)}}})()},[e,i]);const L=b.useCallback(async(j,W)=>{if(R.current)try{const z=await Ts.getEntries({...j,search:W||void 0});R.current&&m(z)}catch(z){if(R.current){const $=z instanceof Error?z.message:"Failed to filter entries";x($)}}},[]);b.useEffect(()=>(I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{L(S,w)},300),()=>{I.current&&clearTimeout(I.current)}),[S,w,o,L]);const U=async j=>{if(R.current){T(j.id);try{await n(j)==="connected"?(await Ts.setInstalled(j.id,!0),R.current&&(c(z=>z.map($=>$.id===j.id?{...$,isInstalled:!0}:$)),m(z=>z.map($=>$.id===j.id?{...$,isInstalled:!0}:$)))):R.current&&(c(z=>z.map($=>$.id===j.id?{...$,isInstalled:!1}:$)),m(z=>z.map($=>$.id===j.id?{...$,isInstalled:!1}:$)))}catch(W){if(R.current){const z=W instanceof Error?W.message:"Failed to install server";x(z)}}finally{R.current&&T(null)}}},G=j=>{const W={productivity:"bg-blue-50 text-blue-700 border-blue-200/60",development:"bg-emerald-50 text-emerald-700 border-emerald-200/60",research:"bg-purple-50 text-purple-700 border-purple-200/60",creative:"bg-pink-50 text-pink-700 border-pink-200/60",data:"bg-amber-50 text-amber-700 border-amber-200/60",communication:"bg-indigo-50 text-indigo-700 border-indigo-200/60",custom:"bg-slate-50 text-slate-700 border-slate-200/60"};return W[j]||W.custom},Y=s||!!k,B=b.useCallback(j=>{!j&&!Y&&t()},[Y,t]),q=Y?j=>{j.preventDefault()}:void 0;return l.jsx(qr,{open:e,onOpenChange:B,children:l.jsxs(Gr,{className:"!max-w-none w-[90vw] max-h-[85vh] overflow-hidden flex flex-col !sm:max-w-none p-0 bg-gradient-to-b from-background via-background to-muted/20",hideCloseButton:!0,onEscapeKeyDown:Y?j=>j.preventDefault():void 0,onInteractOutside:q,children:[l.jsx(ti,{className:"pb-4 border-b px-6 pt-5 bg-gradient-to-r from-muted/30 via-transparent to-transparent",children:l.jsxs("div",{className:"flex items-center justify-between gap-4",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"p-2 rounded-lg bg-primary/10 border border-primary/20 flex-shrink-0",children:l.jsx(So,{className:"h-5 w-5 text-primary"})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx(Hr,{className:"text-lg font-semibold leading-tight mb-1",children:"MCP Server Registry"}),l.jsx(is,{className:"text-sm text-muted-foreground",children:"Discover and add integrations to your AI assistant"})]})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsxs(Pe,{onClick:()=>{Y||t(),r?.()},size:"sm",variant:"outline",className:"h-8 px-3 text-sm font-medium hover:bg-muted whitespace-nowrap",children:[l.jsx(kB,{className:"mr-1.5 h-3.5 w-3.5"}),"Connect Custom"]}),l.jsxs(Pe,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>t(),disabled:Y,children:[l.jsx(Cn,{className:"h-4 w-4"}),l.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}),l.jsxs("div",{className:"flex gap-3 mb-5 px-6 pt-5",children:[l.jsxs("div",{className:"relative flex-1",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/60 pointer-events-none z-10"}),l.jsx(ct,{placeholder:"Search servers and integrations...",value:w,onChange:j=>N(j.target.value),className:"pl-10 h-10 border focus:border-primary/40 bg-background text-sm placeholder:text-muted-foreground/50 focus:ring-1 focus:ring-primary/20 transition-all"})]}),l.jsxs("div",{className:"flex bg-muted/50 rounded-md p-1 border",children:[l.jsxs(Pe,{variant:M==="grid"?"secondary":"ghost",size:"sm",onClick:()=>{P("grid"),E(null)},className:se("h-8 px-3 rounded-sm transition-all text-sm font-medium",M==="grid"?"bg-background shadow-sm":"hover:bg-background/50"),children:[l.jsx(QB,{className:"h-3.5 w-3.5 mr-1.5"}),"Grid"]}),l.jsxs(Pe,{variant:M==="list"?"secondary":"ghost",size:"sm",onClick:()=>{P("list"),E(null)},className:se("h-8 px-3 rounded-sm transition-all text-sm font-medium",M==="list"?"bg-background shadow-sm":"hover:bg-background/50"),children:[l.jsx(oq,{className:"h-3.5 w-3.5 mr-1.5"}),"List"]})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-6 pb-6",children:[y&&l.jsx(ri,{variant:"destructive",className:"mb-6 border-2 border-red-300 bg-red-50 shadow-md",children:l.jsx(ii,{className:"text-red-800 font-medium",children:y})}),f?l.jsx("div",{className:"flex items-center justify-center py-24",children:l.jsxs("div",{className:"flex flex-col items-center space-y-5",children:[l.jsx("div",{className:"h-12 w-12 border-4 border-primary/30 border-t-primary rounded-full animate-spin"}),l.jsx("div",{className:"text-lg text-foreground font-semibold",children:"Discovering servers..."}),l.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading registry entries"})]})}):d.length===0?l.jsxs("div",{className:"flex flex-col items-center justify-center py-24 text-center",children:[l.jsx("div",{className:"p-6 rounded-2xl bg-gradient-to-br from-muted/50 to-muted/30 border-2 border-border/30 mb-6 shadow-sm",children:l.jsx(So,{className:"h-14 w-14 text-muted-foreground/60 mx-auto"})}),l.jsx("div",{className:"text-xl font-bold text-foreground mb-3",children:o.length===0?"No servers available in the registry":"No servers match your search"}),l.jsx("div",{className:"text-base text-muted-foreground/80 mb-6 max-w-md",children:o.length===0?"The registry is currently empty or failed to load":"Try adjusting your search terms or browse all categories"}),w&&l.jsxs(Pe,{variant:"outline",onClick:()=>N(""),className:"border-2 border-primary/30 hover:bg-primary/10 hover:border-primary/50 font-semibold",children:[l.jsx(Rr,{className:"h-4 w-4 mr-2"}),"Clear search"]})]}):l.jsx("div",{className:se(M==="grid"?"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6":"space-y-3"),children:d.map((j,W)=>{const z=D===j.id,$=j.description&&j.description.length>100;return M==="grid"?l.jsx(n1,{className:se("group relative overflow-hidden transition-all duration-200 hover:-translate-y-0.5 border bg-card shadow-sm hover:shadow-lg hover:border-primary/30 flex flex-col",z&&"ring-1 ring-primary/20 border-primary/40 shadow-lg -translate-y-0.5"),style:{animationDelay:`${Math.min(W*30,300)}ms`},children:l.jsxs("div",{className:"cursor-pointer flex flex-col flex-1",onClick:()=>E(z?null:j.id),children:[l.jsx(Cte,{className:"pb-3 flex-shrink-0",children:l.jsxs("div",{className:"flex items-start gap-3 mb-3",children:[l.jsxs("div",{className:"relative flex-shrink-0",children:[l.jsx("div",{className:"text-2xl w-12 h-12 flex items-center justify-center rounded-lg bg-gradient-to-br from-primary/15 to-primary/5 border border-primary/20 group-hover:border-primary/30 transition-all duration-200",children:j.icon||"⚡"}),j.isInstalled&&l.jsx("div",{className:"absolute -top-1 -right-1 w-4 h-4 bg-emerald-500 rounded-full border-2 border-card flex items-center justify-center",children:l.jsx(Ls,{className:"h-2.5 w-2.5 text-white"})})]}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx(Ete,{className:"text-base font-semibold mb-2 group-hover:text-primary transition-colors leading-snug line-clamp-2",children:j.name}),l.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[j.isOfficial&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 bg-blue-50 text-blue-700 border-blue-200/60 font-medium",children:[l.jsx(Sb,{className:"h-2.5 w-2.5 mr-1 fill-blue-400 text-blue-400"}),"Official"]}),j.category&&l.jsx(Qn,{variant:"outline",className:se("text-xs px-1.5 py-0 font-medium capitalize",G(j.category)),children:j.category})]})]})]})}),l.jsxs(Dte,{className:"pt-0 flex flex-col flex-1",children:[l.jsxs("div",{className:"flex-1",children:[l.jsx("p",{className:se("text-sm text-muted-foreground leading-relaxed transition-all duration-200",z?"":"line-clamp-3"),children:j.description}),z&&l.jsxs("div",{className:"space-y-3 pt-3 mt-3 border-t border-border/30 animate-in slide-in-from-top-1 duration-200",children:[j.author&&l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("div",{className:"p-1 rounded bg-muted/40",children:l.jsx(YM,{className:"h-3 w-3 text-muted-foreground"})}),l.jsxs("div",{children:[l.jsxs("span",{className:"text-muted-foreground/70",children:["by"," "]}),l.jsx("span",{className:"font-medium text-foreground",children:j.author})]})]}),j.tags&&j.tags.length>0&&l.jsxs("div",{className:"flex flex-wrap gap-1",children:[j.tags.slice(0,6).map(A=>l.jsx(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 text-muted-foreground border-border/40 bg-muted/20 font-normal",children:A},A)),j.tags.length>6&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 text-muted-foreground border-border/40 bg-muted/20",children:["+",j.tags.length-6]})]}),j.homepage&&l.jsxs("a",{href:j.homepage,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary hover:text-primary/80 transition-colors font-medium",onClick:A=>A.stopPropagation(),children:[l.jsx(yc,{className:"h-3 w-3"}),"Documentation"]})]})]}),l.jsxs("div",{className:"flex items-center justify-between pt-3 border-t border-border/30 flex-shrink-0 mt-auto",children:[$&&l.jsx(Pe,{variant:"ghost",size:"sm",className:"text-xs text-muted-foreground hover:text-foreground p-0 h-auto font-medium -ml-1",children:z?l.jsxs(l.Fragment,{children:[l.jsx(Sg,{className:"h-3 w-3 mr-1"}),"Less"]}):l.jsxs(l.Fragment,{children:[l.jsx(Ir,{className:"h-3 w-3 mr-1"}),"More"]})}),l.jsx("div",{className:"ml-auto",children:l.jsx(Pe,{onClick:A=>{A.stopPropagation(),U(j)},disabled:j.isInstalled||k===j.id,size:"sm",variant:j.isInstalled?"outline":"default",className:se("h-8 px-4 transition-all font-semibold text-sm shadow-sm",k===j.id&&"opacity-70",j.isInstalled&&"border bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-100",!j.isInstalled&&"bg-primary hover:bg-primary/90"),children:k===j.id?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("div",{className:"h-3 w-3 border-2 border-current border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Adding"})]}):j.isInstalled?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(Ls,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Added"})]}):l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(xi,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Add"})]})})})]})]})]})},j.id):l.jsx(n1,{className:se("group transition-all duration-200 hover:-translate-y-0.5 border bg-card shadow-sm hover:shadow-md hover:border-primary/30 cursor-pointer !py-0 !gap-0",z&&"border-primary/40 shadow-md -translate-y-0.5"),onClick:()=>E(z?null:j.id),children:l.jsx("div",{className:"p-4",children:l.jsxs("div",{className:"flex items-start gap-4",children:[l.jsxs("div",{className:"relative flex-shrink-0",children:[l.jsx("div",{className:"w-12 h-12 rounded-lg bg-gradient-to-br from-primary/15 to-primary/5 border border-primary/20 group-hover:border-primary/30 flex items-center justify-center text-2xl transition-all duration-200",children:j.icon||"⚡"}),j.isInstalled&&l.jsx("div",{className:"absolute -top-1 -right-1 w-4 h-4 bg-emerald-500 rounded-full border-2 border-card flex items-center justify-center",children:l.jsx(Ls,{className:"h-2.5 w-2.5 text-white"})})]}),l.jsxs("div",{className:"flex-1 min-w-0 space-y-2.5",children:[l.jsxs("div",{className:"flex items-start justify-between gap-4",children:[l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[l.jsx("h3",{className:"text-base font-semibold text-foreground group-hover:text-primary transition-colors leading-snug",children:j.name}),$&&l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/60 transition-all duration-200 flex-shrink-0",z&&"rotate-180 text-muted-foreground")})]}),l.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[j.isOfficial&&l.jsxs(Qn,{variant:"outline",className:"text-xs px-1.5 py-0 bg-blue-50 text-blue-700 border-blue-200/60 font-medium",children:[l.jsx(Sb,{className:"h-2.5 w-2.5 mr-1 fill-blue-400 text-blue-400"}),"Official"]}),j.category&&l.jsx(Qn,{variant:"outline",className:se("text-xs px-1.5 py-0 font-medium capitalize",G(j.category)),children:j.category})]})]}),l.jsx(Pe,{onClick:A=>{A.stopPropagation(),U(j)},disabled:j.isInstalled||k===j.id,size:"sm",variant:j.isInstalled?"outline":"default",className:se("h-8 px-4 text-sm font-semibold transition-all flex-shrink-0 shadow-sm",k===j.id&&"opacity-70",j.isInstalled&&"border bg-emerald-50 text-emerald-700 border-emerald-200 hover:bg-emerald-100",!j.isInstalled&&"bg-primary hover:bg-primary/90"),children:k===j.id?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx("div",{className:"h-3 w-3 border-2 border-current border-t-transparent rounded-full animate-spin"}),l.jsx("span",{children:"Adding"})]}):j.isInstalled?l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(Ls,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Added"})]}):l.jsxs("div",{className:"flex items-center gap-1.5",children:[l.jsx(xi,{className:"h-3.5 w-3.5"}),l.jsx("span",{children:"Add"})]})})]}),l.jsx("div",{children:l.jsx("p",{className:se("text-sm text-muted-foreground leading-relaxed transition-all duration-200",z?"":"line-clamp-2"),children:j.description})}),z&&l.jsxs("div",{className:"space-y-3 pt-3 border-t border-border/30 animate-in slide-in-from-top-2 duration-200",children:[j.author&&l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("div",{className:"p-1 rounded bg-muted/40",children:l.jsx(YM,{className:"h-3 w-3 text-muted-foreground"})}),l.jsxs("div",{children:[l.jsxs("span",{className:"text-muted-foreground/70",children:["by"," "]}),l.jsx("span",{className:"font-medium text-foreground",children:j.author})]})]}),j.tags&&j.tags.length>0&&l.jsx("div",{className:"flex flex-wrap gap-1.5",children:j.tags.map(A=>l.jsx(Qn,{variant:"outline",className:"text-xs px-2 py-0.5 text-muted-foreground border-border/40 bg-muted/20 font-normal",children:A},A))}),j.homepage&&l.jsxs("a",{href:j.homepage,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary hover:text-primary/80 transition-colors font-medium",onClick:A=>A.stopPropagation(),children:[l.jsx(yc,{className:"h-3 w-3"}),"Documentation"]})]})]})]})})},j.id)})})]})]})})}const Lse=new Set(["placeholder","your-api-key","your_api_key","enter-your-token","xxx","...","todo"]),zse=["your-","your_","your ","enter-","enter_","enter ","placeholder","api_key","api-key","api key","secret","token","password","xxx","..."],$se=[/^your[\s_-]?/,/^enter[\s_-]?/];function ug(e){return Object.values(e).some(t=>{if(!t||t.trim()==="")return!0;const n=t.trim().toLowerCase();return Lse.has(n)||$se.some(r=>r.test(n))?!0:zse.some(r=>n.includes(r))})}function xI(e){const t=e.config.timeout??3e4;switch(e.config.type){case"stdio":return{type:"stdio",command:e.config.command??"",args:e.config.args??[],env:e.config.env??{},timeout:t,connectionMode:"lenient"};case"sse":return{type:"sse",url:e.config.url??"",headers:e.config.headers??{},timeout:t,connectionMode:"lenient"};default:return{type:"http",url:e.config.url??"",headers:e.config.headers??{},timeout:t,connectionMode:"lenient"}}}function Bse(e=!0){return Dn({queryKey:Ge.tools.all,queryFn:async()=>{const t=await Xe.api.tools.$get();if(!t.ok)throw new Error("Failed to fetch tools");return await t.json()},enabled:e})}function qse(){return Dn({queryKey:Ge.agents.all,queryFn:async()=>{const e=await Xe.api.agents.$get();if(!e.ok)throw new Error(`Failed to fetch agents: ${e.status}`);return await e.json()},staleTime:300*1e3})}function vI(){return Dn({queryKey:Ge.agents.path,queryFn:async()=>{const e=await Xe.api.agent.path.$get();if(!e.ok)throw new Error(`Failed to fetch agent path: ${e.status}`);return await e.json()},retry:!1,staleTime:300*1e3})}function Gse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.switch.$post({json:t});if(!n.ok)throw new Error(`Failed to switch agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all}),e.invalidateQueries({queryKey:Ge.agents.path})}})}function Hse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.install.$post({json:t});if(!n.ok)throw new Error(`Failed to install agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all})}})}function Vse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.uninstall.$post({json:t});if(!n.ok)throw new Error(`Failed to uninstall agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all}),e.invalidateQueries({queryKey:Ge.agents.path})}})}function Kse(){const e=un();return nn({mutationFn:async t=>{const n=await Xe.api.agents.custom.create.$post({json:t});if(!n.ok)throw new Error(`Failed to create agent: ${n.status}`);return await n.json()},onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agents.all})}})}function VP(e,t){if(t!=="mcp"||!e.startsWith("mcp--"))return e;const n=e.substring(5),r=n.split("--");return r.length>=2?r.slice(1).join("--"):n}function KP({isOpen:e,onClose:t,onOpenConnectModal:n,onOpenConnectWithPrefill:r,onServerConnected:i,variant:s,refreshTrigger:o}){const c=s??"overlay",d=Cc(),[m,f]=b.useState(!1),[g,y]=b.useState(!1),[x,k]=b.useState(""),[T,S]=b.useState(null),[w,N]=b.useState(new Set),{data:M=[],isLoading:P,refetch:D}=mD(e),E=i2(),I=dH(),R=mH(),{data:K,isLoading:L,refetch:U}=Bse(e),{data:G}=vI(),Y=b.useCallback(()=>{D(),U()},[D,U]),B=b.useCallback(Q=>{N(ne=>{const O=new Set(ne);return O.has(Q)?O.delete(Q):O.add(Q),O})},[]),q=b.useMemo(()=>{if(!K)return{local:[],mcp:new Map};const Q=[],ne=new Map;return K.tools.forEach(O=>{if(O.source==="local")Q.push(O);else if(O.source==="mcp"&&O.serverName){const be=ne.get(O.serverName)||{tools:[],server:null};if(be.tools.push(O),!be.server){const Ue=M.find(Ce=>Ce.name===O.serverName);be.server=Ue||null}ne.set(O.serverName,be)}}),{local:Q,mcp:ne}},[K,M]),j=b.useMemo(()=>{const Q=[],ne=x.toLowerCase();if(q.local.length>0){const O=x?q.local.filter(be=>be.name.toLowerCase().includes(ne)||be.description?.toLowerCase().includes(ne)):q.local;O.length>0&&Q.push({title:"Local",tools:O,type:"local"})}return q.mcp.forEach(({tools:O,server:be},Ue)=>{const Ce=Ue.toLowerCase().includes(ne),ae=x?Ce?O:O.filter(ze=>ze.name.toLowerCase().includes(ne)||ze.description?.toLowerCase().includes(ne)):O;ae.length>0&&Q.push({title:Ue,tools:ae,type:"mcp",server:be})}),Q},[q,x]),W=K?.totalCount||0,z=async Q=>{const ne=xI(Q),O=ne.type==="stdio"&&Object.keys(ne.env||{}).length>0&&ug(ne.env||{}),be=(ne.type==="sse"||ne.type==="http")&&Object.keys(ne.headers||{}).length>0&&ug(ne.headers||{});if(O||be)return typeof r=="function"&&r({name:Q.name,config:ne,lockName:!0,registryEntryId:Q.id,onCloseRegistryModal:()=>f(!1)}),"requires-input";try{y(!0),await E.mutateAsync({name:Q.name,config:ne,persistToAgent:!1});try{await Ts.syncWithServerStatus()}catch(Ue){console.warn("Failed to sync registry after server install:",Ue)}return d.trackMCPServerConnected({serverName:Q.name,transportType:ne.type}),f(!1),i?.(Q.name),"connected"}catch(Ue){throw new Error(Ue.message||"Failed to install server")}finally{y(!1)}},$=async Q=>{const ne=M.find(O=>O.id===Q);if(ne&&window.confirm(`Are you sure you want to remove server "${ne.name}"?`))try{await I.mutateAsync(Q);try{const O=ae=>ae.toLowerCase().replace(/[^a-z0-9]+/g,"-"),be=O(Q),Ce=(await Ts.getEntries()).find(ae=>[ae.id,ae.name,...ae.matchIds||[]].filter(Boolean).map(lt=>O(String(lt))).includes(be));Ce&&await Ts.setInstalled(Ce.id,!1)}catch(O){console.warn("Failed to update registry installed state on delete:",O)}try{await Ts.syncWithServerStatus()}catch(O){console.warn("Failed to sync registry status after server deletion:",O)}}catch(O){console.error("Delete server error:",O)}},A=async Q=>{const ne=M.find(O=>O.id===Q);if(ne&&window.confirm(`Restart server "${ne.name}"?`))try{await R.mutateAsync(Q);try{await Ts.syncWithServerStatus()}catch(O){console.warn("Failed to sync registry status after server restart:",O)}}catch(O){console.error("Restart server error:",O)}};return b.useEffect(()=>{e&&Y()},[e,G,o,Y]),c==="inline"?l.jsxs("aside",{className:"h-full w-full flex flex-col bg-card/30",children:[l.jsxs("div",{className:"flex items-center justify-between px-4 py-3.5 shrink-0 border-b border-border/30",children:[l.jsxs("button",{onClick:t,className:"flex items-center gap-2 group",children:[l.jsx("h2",{className:"text-xs font-bold text-foreground/80 tracking-wider uppercase group-hover:text-foreground transition-colors",children:"Tools & Servers"}),l.jsx(Ir,{className:"h-3.5 w-3.5 text-muted-foreground/50 -rotate-90 transition-transform group-hover:text-foreground/70"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>f(!0),className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{side:"left",children:"Connect MCP servers"})]}),l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:Y,disabled:P||L,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Qi,{className:se("h-4 w-4",(P||L)&&"animate-spin")})})}),l.jsx(Vt,{side:"left",children:"Refresh"})]})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto flex flex-col",children:[l.jsx("div",{className:"px-4 pt-4 pb-3 border-b border-border/20",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50 pointer-events-none"}),l.jsx("input",{type:"text",value:x,onChange:Q=>k(Q.target.value),placeholder:"Search tools...",className:"w-full pl-9 pr-3 py-2 text-sm bg-background/50 border border-border/40 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/40 transition-all placeholder:text-muted-foreground/40"}),x&&l.jsx("button",{onClick:()=>k(""),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-muted/50 rounded transition-colors",children:l.jsx(Cn,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-4",children:[L&&l.jsx("div",{className:"flex items-center justify-center py-16",children:l.jsxs("div",{className:"flex flex-col items-center space-y-3",children:[l.jsxs("div",{className:"relative",children:[l.jsx("div",{className:"h-8 w-8 rounded-full border-2 border-primary/20"}),l.jsx("div",{className:"absolute inset-0 h-8 w-8 rounded-full border-2 border-primary border-t-transparent animate-spin"})]}),l.jsx("span",{className:"text-xs font-medium text-muted-foreground/70",children:"Loading tools..."})]})}),!L&&W===0&&l.jsxs("div",{className:"text-center py-16",children:[l.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-muted/30 mb-4",children:l.jsx(VM,{className:"h-6 w-6 text-muted-foreground/40"})}),l.jsx("p",{className:"text-sm font-medium text-foreground/70 mb-1",children:"No tools available"}),l.jsx("p",{className:"text-xs text-muted-foreground/60",children:"Connect an MCP server to get started"})]}),!L&&W>0&&j.length===0&&l.jsxs("div",{className:"text-center py-16",children:[l.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-muted/30 mb-4",children:l.jsx(Rr,{className:"h-6 w-6 text-muted-foreground/40"})}),l.jsx("p",{className:"text-sm font-medium text-foreground/70 mb-1",children:"No tools match your search"}),l.jsx("p",{className:"text-xs text-muted-foreground/60 mb-3",children:"Try a different search term"}),l.jsx("button",{onClick:()=>k(""),className:"text-xs font-medium text-primary hover:text-primary/80 transition-colors",children:"Clear search"})]}),j.map(Q=>{const ne=w.has(Q.title);return l.jsxs("div",{className:"mb-4 last:mb-0",children:[l.jsxs("div",{className:"w-full flex items-center justify-between gap-2 mb-3 px-1 group transition-all duration-150",children:[l.jsxs("button",{onClick:()=>B(Q.title),className:"flex items-center gap-2.5 flex-1 min-w-0 pb-2 border-b border-border/40 text-left",children:[l.jsx(Ir,{className:se("h-4 w-4 text-muted-foreground/50 shrink-0 transition-transform duration-200",ne&&"-rotate-90")}),l.jsxs("h4",{className:"text-base font-semibold text-foreground tracking-tight flex items-center gap-2.5",children:[l.jsx("span",{className:"tracking-normal",children:Q.title}),Q.type==="mcp"&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[10px] font-semibold uppercase tracking-wider",children:"MCP"}),Q.server&&l.jsx("span",{className:se("inline-flex items-center justify-center w-5 h-5 rounded-full",Q.server.status==="connected"?"bg-green-500/10":"bg-red-500/10"),children:l.jsx("span",{className:se("w-2 h-2 rounded-full",Q.server.status==="connected"?"bg-green-600 dark:bg-green-400":"bg-red-600 dark:bg-red-400")})})]})]}),l.jsx("span",{className:"text-xs text-muted-foreground/50 font-medium",children:Q.tools.length})]}),Q.type==="mcp"&&Q.server&&l.jsxs("div",{className:"flex items-center gap-0.5",children:[R.isPending&&R.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>A(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-primary hover:bg-muted/50",disabled:I.isPending&&I.variables===Q.server.id,children:l.jsx(ZM,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Restart"})]}),I.isPending&&I.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>$(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-destructive hover:bg-muted/50",disabled:R.isPending&&R.variables===Q.server.id,children:l.jsx(Ar,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Remove"})]})]})]}),!ne&&l.jsx("div",{className:"space-y-0.5 ml-2",children:Q.tools.map(O=>{const be=O.id,Ue=T===be;return l.jsxs("div",{children:[l.jsxs("button",{onClick:()=>S(Ue?null:be),className:"w-full px-3 py-2 rounded-md text-left hover:bg-muted/30 transition-all duration-150 group flex items-center justify-between gap-2",children:[l.jsx("span",{className:"text-sm text-foreground/90 truncate font-medium",children:VP(O.name,Q.type)}),l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/40 shrink-0 transition-transform duration-200",Ue&&"rotate-180")})]}),Ue&&l.jsxs("div",{className:"px-3 py-2.5 mb-1 bg-muted/15 rounded-md ml-2",children:[O.description&&l.jsx("p",{className:"text-xs text-muted-foreground/70 mb-2.5 leading-relaxed",children:O.description}),O.inputSchema?.properties&&Object.keys(O.inputSchema.properties).length>0&&l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground/50 uppercase tracking-wider font-semibold",children:"Parameters"}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.keys(O.inputSchema.properties).map(Ce=>l.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded bg-muted/50 text-[10px] font-mono text-foreground/60 border border-border/20",children:Ce},Ce))})]})]})]},be)})})]},Q.title)})]})]}),l.jsx(m1,{isOpen:m,onClose:()=>f(!1),onInstallServer:z,onOpenConnectModal:n,disableClose:g})]}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:se("fixed inset-0 bg-black/50 z-30 transition-opacity duration-300",e?"opacity-100":"opacity-0 pointer-events-none"),onClick:t}),l.jsxs("aside",{className:se("fixed top-0 right-0 z-40 h-screen w-80 bg-card/95 backdrop-blur-xl border-l border-border/40 shadow-xl transition-transform duration-300 ease-in-out flex flex-col",e?"translate-x-0":"translate-x-full"),children:[l.jsxs("div",{className:"flex items-center justify-between px-4 py-3.5 shrink-0",children:[l.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Tools & Servers"}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>f(!0),className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{side:"left",children:"Connect MCP servers"})]}),l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:Y,disabled:P||L,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Qi,{className:se("h-4 w-4",(P||L)&&"animate-spin")})})}),l.jsx(Vt,{side:"left",children:"Refresh"})]}),l.jsx(Pe,{variant:"ghost",size:"sm",onClick:t,className:"h-8 w-8 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:l.jsx(Cn,{className:"h-4 w-4"})})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto flex flex-col",children:[l.jsx("div",{className:"px-4 pt-3 pb-2 border-b border-border/20",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/50 pointer-events-none"}),l.jsx("input",{type:"text",value:x,onChange:Q=>k(Q.target.value),placeholder:"Search tools...",className:"w-full pl-9 pr-3 py-2 text-sm bg-background/50 border border-border/40 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/40 transition-all placeholder:text-muted-foreground/40"}),x&&l.jsx("button",{onClick:()=>k(""),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-muted/50 rounded transition-colors",children:l.jsx(Cn,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:[L&&l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[l.jsx(Qi,{className:"h-5 w-5 animate-spin text-muted-foreground/50"}),l.jsx("span",{className:"text-xs text-muted-foreground/70",children:"Loading tools..."})]})}),!L&&W===0&&l.jsxs("div",{className:"text-center py-12",children:[l.jsx(VM,{className:"h-8 w-8 text-muted-foreground/40 mx-auto mb-2"}),l.jsx("p",{className:"text-xs text-muted-foreground/70",children:"No tools available"}),l.jsx("p",{className:"text-xs text-muted-foreground/50 mt-1",children:"Connect an MCP server to get started"})]}),!L&&W>0&&j.length===0&&l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"h-8 w-8 text-muted-foreground/40 mx-auto mb-2"}),l.jsx("p",{className:"text-xs text-muted-foreground/70",children:"No tools match your search"}),l.jsx("button",{onClick:()=>k(""),className:"mt-2 text-xs text-primary hover:text-primary/80 transition-colors",children:"Clear search"})]}),j.map(Q=>{const ne=w.has(Q.title);return l.jsxs("div",{className:"mb-4 last:mb-0",children:[l.jsxs("div",{className:"w-full flex items-center justify-between gap-2 mb-3 px-1 group transition-all duration-150",children:[l.jsxs("button",{onClick:()=>B(Q.title),className:"flex items-center gap-2.5 flex-1 min-w-0 pb-2 border-b border-border/40 text-left",children:[l.jsx(Ir,{className:se("h-4 w-4 text-muted-foreground/50 shrink-0 transition-transform duration-200",ne&&"-rotate-90")}),l.jsxs("h4",{className:"text-base font-semibold text-foreground tracking-tight flex items-center gap-2.5",children:[l.jsx("span",{className:"tracking-normal",children:Q.title}),Q.type==="mcp"&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[10px] font-semibold uppercase tracking-wider",children:"MCP"}),Q.server&&l.jsx("span",{className:se("inline-flex items-center justify-center w-5 h-5 rounded-full",Q.server.status==="connected"?"bg-green-500/10":"bg-red-500/10"),children:l.jsx("span",{className:se("w-2 h-2 rounded-full",Q.server.status==="connected"?"bg-green-600 dark:bg-green-400":"bg-red-600 dark:bg-red-400")})})]})]}),l.jsx("span",{className:"text-xs text-muted-foreground/50 font-medium",children:Q.tools.length})]}),Q.type==="mcp"&&Q.server&&l.jsxs("div",{className:"flex items-center gap-0.5",children:[R.isPending&&R.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>A(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-primary hover:bg-muted/50",disabled:I.isPending&&I.variables===Q.server.id,children:l.jsx(ZM,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Restart"})]}),I.isPending&&I.variables===Q.server.id?l.jsx("div",{className:"h-6 w-6 flex items-center justify-center",children:l.jsx(Qi,{className:"h-3 w-3 animate-spin text-muted-foreground"})}):l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>$(Q.server.id),className:"h-6 w-6 p-0 text-muted-foreground/60 hover:text-destructive hover:bg-muted/50",disabled:R.isPending&&R.variables===Q.server.id,children:l.jsx(Ar,{className:"h-3 w-3"})})}),l.jsx(Vt,{side:"left",children:"Remove"})]})]})]}),!ne&&l.jsx("div",{className:"space-y-0.5 ml-2",children:Q.tools.map(O=>{const be=O.id,Ue=T===be;return l.jsxs("div",{children:[l.jsxs("button",{onClick:()=>S(Ue?null:be),className:"w-full px-3 py-2 rounded-md text-left hover:bg-muted/30 transition-all duration-150 group flex items-center justify-between gap-2",children:[l.jsx("span",{className:"text-sm text-foreground/90 truncate font-medium",children:VP(O.name,Q.type)}),l.jsx(Ir,{className:se("h-3.5 w-3.5 text-muted-foreground/40 shrink-0 transition-transform duration-200",Ue&&"rotate-180")})]}),Ue&&l.jsxs("div",{className:"px-3 py-2.5 mb-1 bg-muted/15 rounded-md ml-2",children:[O.description&&l.jsx("p",{className:"text-xs text-muted-foreground/70 mb-2.5 leading-relaxed",children:O.description}),O.inputSchema?.properties&&Object.keys(O.inputSchema.properties).length>0&&l.jsxs("div",{className:"space-y-1.5",children:[l.jsx("p",{className:"text-[10px] text-muted-foreground/50 uppercase tracking-wider font-semibold",children:"Parameters"}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.keys(O.inputSchema.properties).map(Ce=>l.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded bg-muted/50 text-[10px] font-mono text-foreground/60 border border-border/20",children:Ce},Ce))})]})]})]},be)})})]},Q.title)})]})]}),l.jsx(m1,{isOpen:m,onClose:()=>f(!1),onInstallServer:z,onOpenConnectModal:n,disableClose:g})]})]})}const vm=b.forwardRef(({className:e,children:t,...n},r)=>l.jsx("div",{ref:r,className:se("relative overflow-auto",e),...n,children:t}));vm.displayName="ScrollArea";function Wse(e){return e.sort((t,n)=>{const r=t.lastActivity?new Date(t.lastActivity).getTime():0;return(n.lastActivity?new Date(n.lastActivity).getTime():0)-r})}function WP({isOpen:e,onClose:t,onExpand:n,currentSessionId:r,onSessionChange:i,returnToWelcome:s,variant:o="overlay",onSearchOpen:c,onNewChat:d,onSettingsOpen:m,onPlaygroundOpen:f,onThemeToggle:g,theme:y}){const[x,k]=b.useState(!1),[T,S]=b.useState(""),[w,N]=b.useState(!1),[M,P]=b.useState(null),[D,E]=b.useState(!1),[I,R]=b.useState(""),[K,L]=b.useState(null),{data:U=[],isLoading:G,error:Y}=lH(e),B=Wse([...U]),q=uH(),j=dD(),W=cH(),z=async()=>{const ae=await q.mutateAsync({sessionId:T.trim()||void 0});S(""),k(!1),i(ae.id)},$=async ae=>{await j.mutateAsync({sessionId:ae}),r===ae&&s()},A=async()=>{if(!M)return;await j.mutateAsync({sessionId:M}),r===M&&s(),N(!1),P(null)},Q=(ae,ze)=>{P(ae),R(ze||""),E(!0)},ne=async()=>{if(!(!M||!I.trim()))try{await W.mutateAsync({sessionId:M,title:I.trim()}),E(!1),P(null),R("")}catch(ae){console.error(`Failed to rename session: ${ae}`)}},O=async ae=>{try{await navigator.clipboard.writeText(ae),L(ae)}catch(ze){console.error(`Failed to copy session ID: ${ze}`)}};b.useEffect(()=>{if(K){const ae=setTimeout(()=>L(null),2e3);return()=>clearTimeout(ae)}},[K]);const be=ae=>{if(!ae)return"Unknown";const lt=Date.now()-ae,me=Math.floor(lt/6e4),pe=Math.floor(lt/36e5),J=Math.floor(lt/864e5);return me<1?"Just now":me<60?`${me}m ago`:pe<24?`${pe}h ago`:`${J}d ago`},Ue=l.jsxs("div",{className:"flex flex-col h-full",children:[l.jsx("div",{className:"px-4 py-5",children:l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsxs("div",{id:"sessionpanel-title",className:"flex items-center px-2",children:[l.jsx("img",{src:"/logos/dexto/dexto_logo_light.svg",alt:"Dexto",className:"h-6 w-auto dark:hidden"}),l.jsx("img",{src:"/logos/dexto/dexto_logo.svg",alt:"Dexto",className:"h-6 w-auto hidden dark:block"})]}),l.jsx("button",{onClick:t,className:"flex items-center justify-center w-8 h-8 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Collapse panel",children:l.jsx(fB,{className:"h-5 w-5"})})]})}),Y&&l.jsx("div",{className:"p-4",children:l.jsxs(ri,{variant:"destructive",children:[l.jsx(ns,{className:"h-4 w-4"}),l.jsx(ii,{children:Y.message})]})}),l.jsxs(vm,{className:"flex-1 scrollbar-thin",children:[l.jsxs("div",{className:"px-3 pt-2 pb-1 space-y-0.5",children:[d&&l.jsxs("button",{onClick:d,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(xi,{className:"h-4 w-4"}),l.jsx("span",{children:"New Chat"})]}),c&&l.jsxs("button",{onClick:c,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(Rr,{className:"h-4 w-4"}),l.jsx("span",{children:"Search"})]})]}),(d||c)&&l.jsx("div",{className:"h-2"}),!G&&B.length>0&&l.jsx("div",{className:"px-4 py-2",children:l.jsx("h2",{className:"text-xs font-semibold text-muted-foreground/70 uppercase tracking-wider",children:"History"})}),G?l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsx(Qi,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):B.length===0?l.jsxs("div",{className:"text-center py-12 px-6",children:[l.jsx(UE,{className:"h-10 w-10 mx-auto mb-3 text-muted-foreground/30"}),l.jsx("p",{className:"text-sm text-muted-foreground",children:"No conversations yet"}),l.jsx("p",{className:"text-xs text-muted-foreground/60 mt-1",children:"Start chatting to see your history"})]}):l.jsx("div",{className:"px-3 py-2 space-y-0.5",children:B.map(ae=>{const ze=ae.title&&ae.title.trim().length>0?ae.title:ae.id,lt=r===ae.id;return l.jsx("div",{className:se("group relative px-3 py-1.5 rounded-lg transition-all cursor-pointer",lt?"bg-primary/5 before:absolute before:left-0 before:top-1.5 before:bottom-1.5 before:w-0.5 before:bg-primary before:rounded-full":"hover:bg-muted/40"),role:"button",tabIndex:0,"aria-current":lt?"page":void 0,onClick:()=>i(ae.id),onKeyDown:me=>{me.target===me.currentTarget&&(me.key==="Enter"||me.key===" ")&&(me.preventDefault(),i(ae.id))},children:l.jsxs("div",{className:"flex items-center justify-between gap-2",children:[l.jsx("h3",{className:se("text-sm truncate flex-1 min-w-0",lt?"font-medium text-foreground":"text-muted-foreground"),children:ze}),l.jsx("span",{className:"text-[10px] text-muted-foreground/50 shrink-0 group-hover:opacity-0 transition-opacity",children:be(ae.lastActivity)}),l.jsxs(kc,{children:[l.jsx(wc,{asChild:!0,children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:me=>me.stopPropagation(),className:"h-7 w-7 p-0 absolute right-2 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity","aria-label":"Session options",children:l.jsx(OE,{className:"h-4 w-4 text-muted-foreground"})})}),l.jsxs(Ol,{align:"end",className:"w-48",onClick:me=>me.stopPropagation(),children:[l.jsxs(Zt,{onClick:()=>Q(ae.id,ae.title??null),children:[l.jsx(wb,{className:"h-4 w-4 mr-2"}),"Rename"]}),l.jsxs(Zt,{onClick:()=>O(ae.id),children:[K===ae.id?l.jsx(ur,{className:"h-4 w-4 mr-2 text-green-500"}):l.jsx(Ao,{className:"h-4 w-4 mr-2"}),K===ae.id?"Copied!":"Copy Session ID"]}),l.jsx(ka,{}),l.jsxs(Zt,{onClick:()=>{ae.messageCount>0?(P(ae.id),N(!0)):$(ae.id)},className:"text-destructive focus:text-destructive",children:[l.jsx(Ar,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})]})},ae.id)})})]}),l.jsxs("div",{className:"border-t border-border/30 p-3 space-y-1",children:[f&&l.jsxs("button",{onClick:f,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(_b,{className:"h-4 w-4"}),l.jsx("span",{children:"MCP Playground"})]}),f&&(g||m)&&l.jsx("div",{className:"h-px bg-border/30 my-1"}),g&&l.jsxs("button",{onClick:g,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[y==="dark"?l.jsx(Mb,{className:"h-4 w-4 transition-transform duration-200 hover:rotate-180"}):l.jsx(kb,{className:"h-4 w-4 transition-transform duration-200 hover:rotate-12"}),l.jsx("span",{children:y==="dark"?"Light Mode":"Dark Mode"})]}),m&&l.jsxs("button",{onClick:m,className:"w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors",children:[l.jsx(Yd,{className:"h-4 w-4"}),l.jsx("span",{children:"Settings"})]})]}),l.jsx(qr,{open:x,onOpenChange:k,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsx(ti,{children:l.jsx(Hr,{children:"Start New Chat"})}),l.jsx("div",{className:"space-y-4",children:l.jsxs("div",{className:"space-y-2",children:[l.jsx(fn,{htmlFor:"sessionId",children:"Chat ID"}),l.jsx(ct,{id:"sessionId",value:T,onChange:ae=>S(ae.target.value),placeholder:"e.g., user-123, project-alpha",className:"font-mono"}),l.jsx("p",{className:"text-xs text-muted-foreground",children:"Leave empty to auto-generate a unique ID"})]})}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>k(!1),children:"Cancel"}),l.jsx(Pe,{onClick:z,children:"Start Chat"})]})]})}),l.jsx(qr,{open:w,onOpenChange:N,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-5 w-5 text-destructive"}),l.jsx("span",{children:"Delete Conversation"})]}),l.jsxs(is,{children:["This will permanently delete this conversation and all its messages. This action cannot be undone.",M&&l.jsxs("span",{className:"block mt-2 font-medium",children:["Session:"," ",l.jsx("span",{className:"font-mono",children:M})]})]})]}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>N(!1),children:"Cancel"}),l.jsxs(Pe,{variant:"destructive",onClick:A,disabled:j.isPending&&j.variables?.sessionId===M,className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-4 w-4"}),l.jsx("span",{children:j.isPending&&j.variables?.sessionId===M?"Deleting...":"Delete Conversation"})]})]})]})}),l.jsx(qr,{open:D,onOpenChange:E,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(wb,{className:"h-5 w-5"}),l.jsx("span",{children:"Rename Chat"})]}),l.jsx(is,{children:"Enter a new name for this conversation."})]}),l.jsx("div",{className:"space-y-4",children:l.jsxs("div",{className:"space-y-2",children:[l.jsx(fn,{htmlFor:"renameTitle",children:"Chat Name"}),l.jsx(ct,{id:"renameTitle",value:I,onChange:ae=>R(ae.target.value),placeholder:"Enter chat name...",onKeyDown:ae=>{ae.key==="Enter"&&I.trim()&&ne()},autoFocus:!0})]})}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>E(!1),children:"Cancel"}),l.jsx(Pe,{onClick:ne,disabled:!I.trim()||W.isPending,children:W.isPending?"Saving...":"Save"})]})]})})]}),Ce=l.jsxs("div",{className:"flex flex-col h-full py-3 px-2 items-center",children:[l.jsx("button",{onClick:n,className:"flex items-center justify-center w-10 h-10 rounded-lg hover:bg-muted/40 transition-colors mb-3","aria-label":"Expand panel",children:l.jsx("img",{src:"/logos/dexto/dexto_logo_icon.svg",alt:"Dexto",className:"h-7 w-7"})}),l.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[d&&l.jsx("button",{onClick:d,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"New chat",children:l.jsx(xi,{className:"h-5 w-5"})}),c&&l.jsx("button",{onClick:c,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Search",children:l.jsx(Rr,{className:"h-5 w-5"})})]}),l.jsxs("div",{className:"flex flex-col gap-1 pt-2 border-t border-border/30",children:[f&&l.jsx("button",{onClick:f,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"MCP Playground",children:l.jsx(_b,{className:"h-5 w-5"})}),g&&l.jsx("button",{onClick:g,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":y==="dark"?"Light mode":"Dark mode",children:y==="dark"?l.jsx(Mb,{className:"h-5 w-5"}):l.jsx(kb,{className:"h-5 w-5"})}),m&&l.jsx("button",{onClick:m,className:"flex items-center justify-center w-10 h-10 rounded-lg text-muted-foreground hover:bg-muted/40 hover:text-foreground transition-colors","aria-label":"Settings",children:l.jsx(Yd,{className:"h-5 w-5"})})]})]});return o==="inline"?e?l.jsx("div",{className:"h-full w-full flex flex-col bg-card",children:Ue}):l.jsx("div",{className:"h-full flex flex-col bg-card border-r border-border/30",children:Ce}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:se("fixed inset-0 bg-black/50 z-30 transition-opacity duration-300",e?"opacity-100":"opacity-0 pointer-events-none"),onClick:t}),l.jsx("aside",{role:"dialog","aria-modal":"true","aria-labelledby":"sessionpanel-title",tabIndex:-1,className:se("fixed top-0 left-0 z-40 h-screen w-72 bg-card border-r border-border shadow-xl transition-transform duration-300 ease-in-out flex flex-col",e?"translate-x-0":"-translate-x-full"),children:Ue})]})}function Zse(e,t="en"){const n=Date.now(),r=e-n,i=Math.abs(r),s=60*1e3,o=60*s,c=24*o,d=7*c,m=30*c,f=365*c;let g,y;return i<s?(g=Math.round(r/1e3),y="second"):i<o?(g=Math.round(r/s),y="minute"):i<c?(g=Math.round(r/o),y="hour"):i<d?(g=Math.round(r/c),y="day"):i<m?(g=Math.round(r/d),y="week"):i<f?(g=Math.round(r/m),y="month"):(g=Math.round(r/f),y="year"),new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(g,y)}function Yse({isOpen:e,onClose:t,variant:n="modal"}){const[r,i]=b.useState(""),[s,o]=b.useState(!1),[c,d]=b.useState(!1),[m,f]=b.useState(null),{data:g=[],isLoading:y,error:x}=Eie(e),k=Die(),T=async M=>{await k.mutateAsync({memoryId:M}),d(!1),f(null)},S=(M,P=120)=>M.length<=P?M:M.slice(0,P)+"...",w=g.filter(M=>{if(!r.trim())return!0;const P=r.toLowerCase();return M.content.toLowerCase().includes(P)||M.tags?.some(D=>D.toLowerCase().includes(P))}),N=l.jsxs("div",{className:"flex flex-col h-full",children:[l.jsx("div",{className:"flex items-center justify-between p-3 border-b border-border/50",children:l.jsxs("div",{className:"flex items-center space-x-2",children:[l.jsx(Ro,{className:"h-4 w-4"}),l.jsx("h2",{className:"text-base font-semibold",children:"Memories"}),l.jsx(Qn,{variant:"secondary",className:"text-xs",children:g.length})]})}),l.jsx("div",{className:"p-3 border-b border-border/50",children:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsxs("div",{className:"relative flex-1",children:[l.jsx(Rr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),l.jsx(ct,{placeholder:"Search memories...",value:r,onChange:M=>i(M.target.value),className:"pl-8 h-8 text-sm"})]}),l.jsx(va,{children:l.jsxs(Gt,{children:[l.jsx(Ht,{asChild:!0,children:l.jsx(Pe,{variant:"outline",size:"sm",onClick:()=>o(!0),className:"h-8 w-8 p-0 shrink-0","aria-label":"Create new memory",children:l.jsx(xi,{className:"h-4 w-4"})})}),l.jsx(Vt,{children:"Create Memory"})]})})]})}),x&&l.jsx("div",{className:"p-4",children:l.jsxs(ri,{variant:"destructive",children:[l.jsx(ns,{className:"h-4 w-4"}),l.jsx(ii,{children:x.message})]})}),l.jsx(vm,{className:"flex-1 p-4",children:l.jsx("div",{className:"space-y-2",children:y?l.jsx("div",{className:"flex items-center justify-center py-8",children:l.jsx(Qi,{className:"h-6 w-6 animate-spin"})}):w.length===0?l.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[l.jsx(Ro,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),r.trim()?l.jsxs(l.Fragment,{children:[l.jsx("p",{children:"No memories found"}),l.jsx("p",{className:"text-sm",children:"Try a different search term"})]}):l.jsxs(l.Fragment,{children:[l.jsx("p",{children:"No memories yet"}),l.jsx("p",{className:"text-sm",children:"Type # in chat or use the + button above"})]})]}):w.map(M=>l.jsx("div",{className:se("group p-3 rounded-lg border border-border/50 bg-card hover:bg-muted/50 transition-all",M.metadata?.pinned&&"ring-1 ring-primary/30 bg-primary/5"),children:l.jsxs("div",{className:"flex items-start justify-between gap-2",children:[l.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[l.jsx("p",{className:"text-sm leading-relaxed",children:S(M.content)}),M.tags&&M.tags.length>0&&l.jsxs("div",{className:"flex items-center gap-1 flex-wrap",children:[l.jsx(Gq,{className:"h-3 w-3 text-muted-foreground"}),M.tags.map((P,D)=>l.jsx(Qn,{variant:"outline",className:"text-xs px-1.5 py-0",children:P},D))]}),l.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx(cB,{className:"h-3 w-3"}),l.jsx("span",{children:Zse(M.updatedAt)})]}),M.metadata?.source&&l.jsx(Qn,{variant:"secondary",className:"text-xs px-1.5 py-0",children:M.metadata.source}),M.metadata?.pinned&&l.jsx(Qn,{variant:"secondary",className:"text-xs px-1.5 py-0",children:"Pinned"})]})]}),l.jsx("div",{className:"flex items-center gap-1",children:l.jsx(Pe,{variant:"ghost",size:"sm",onClick:()=>{f(M),d(!0)},className:"h-7 w-7 p-0 opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete memory",children:l.jsx(Ar,{className:"h-3.5 w-3.5 text-destructive"})})})]})},M.id))})}),l.jsx(A4,{open:s,onClose:()=>o(!1)}),l.jsx(qr,{open:c,onOpenChange:d,children:l.jsxs(Gr,{className:"sm:max-w-md",children:[l.jsxs(ti,{children:[l.jsxs(Hr,{className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-5 w-5 text-destructive"}),l.jsx("span",{children:"Delete Memory"})]}),l.jsxs(is,{children:["This will permanently delete this memory. This action cannot be undone.",m&&l.jsx("span",{className:"block mt-2 text-sm font-medium max-h-20 overflow-y-auto",children:S(m.content,100)})]})]}),l.jsxs(Ui,{children:[l.jsx(Pe,{variant:"outline",onClick:()=>d(!1),children:"Cancel"}),l.jsxs(Pe,{variant:"destructive",onClick:()=>m&&T(m.id),disabled:k.isPending,className:"flex items-center space-x-2",children:[l.jsx(Ar,{className:"h-4 w-4"}),l.jsx("span",{children:k.isPending?"Deleting...":"Delete Memory"})]})]})]})})]});return n==="inline"?l.jsx("div",{className:"h-full",children:N}):l.jsx(qr,{open:e,onOpenChange:t,children:l.jsxs(Gr,{className:"sm:max-w-lg h-[600px] flex flex-col p-0",children:[l.jsx(ti,{className:"sr-only",children:l.jsx(Hr,{children:"Memories"})}),N]})})}function Qse({onApprove:e,onDeny:t,onHandlersReady:n}){const r=Ma(g=>g.currentSessionId),i=V1(g=>g.pendingApproval),{ensureSessionEventStream:s}=Q1(),{mutateAsync:o}=z9(),c=i&&(!i.sessionId||!r||i.sessionId===r)?i:null,d=b.useCallback(async(g,y,x)=>{if(!c)return;const{approvalId:k}=c;console.debug(`[WebUI] Sending approval response for ${k}: ${g?"approved":"denied"}`);const T=c.sessionId||r;if(!T){console.error("[WebUI] Cannot submit approval without sessionId");return}try{await s(T),await o({approvalId:k,sessionId:T,status:g?Pd.APPROVED:Pd.DENIED,...g&&y?{formData:y}:{},...g&&x!==void 0?{rememberChoice:x}:{}})}catch(S){const w=S instanceof Error?S.message:String(S);console.error(`[WebUI] Failed to send approval response: ${w}`);return}},[c,r,o,s]),m=b.useCallback((g,y)=>{d(!0,g,y),e?.(g,y)},[d,e]),f=b.useCallback(()=>{d(!1),t?.()},[d,t]);return b.useEffect(()=>{n&&n({onApprove:m,onDeny:f})},[m,f,n]),null}function Xse(e,t,n,r){var i=this,s=b.useRef(null),o=b.useRef(0),c=b.useRef(0),d=b.useRef(null),m=b.useRef([]),f=b.useRef(),g=b.useRef(),y=b.useRef(e),x=b.useRef(!0);y.current=e;var k=typeof window<"u",T=!t&&t!==0&&k;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var S=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,N="maxWait"in n,M="debounceOnServer"in n&&!!n.debounceOnServer,P=N?Math.max(+n.maxWait||0,t):null;b.useEffect(function(){return x.current=!0,function(){x.current=!1}},[]);var D=b.useMemo(function(){var E=function(Y){var B=m.current,q=f.current;return m.current=f.current=null,o.current=Y,c.current=c.current||Y,g.current=y.current.apply(q,B)},I=function(Y,B){T&&cancelAnimationFrame(d.current),d.current=T?requestAnimationFrame(Y):setTimeout(Y,B)},R=function(Y){if(!x.current)return!1;var B=Y-s.current;return!s.current||B>=t||B<0||N&&Y-o.current>=P},K=function(Y){return d.current=null,w&&m.current?E(Y):(m.current=f.current=null,g.current)},L=function Y(){var B=Date.now();if(S&&c.current===o.current&&U(),R(B))return K(B);if(x.current){var q=t-(B-s.current),j=N?Math.min(q,P-(B-o.current)):q;I(Y,j)}},U=function(){r&&r({})},G=function(){if(k||M){var Y=Date.now(),B=R(Y);if(m.current=[].slice.call(arguments),f.current=i,s.current=Y,B){if(!d.current&&x.current)return o.current=s.current,I(L,t),S?E(s.current):g.current;if(N)return I(L,t),E(s.current)}return d.current||I(L,t),g.current}};return G.cancel=function(){var Y=d.current;Y&&(T?cancelAnimationFrame(d.current):clearTimeout(d.current)),o.current=0,m.current=s.current=f.current=d.current=null,Y&&r&&r({})},G.isPending=function(){return!!d.current},G.flush=function(){return d.current?K(Date.now()):g.current},G},[S,N,t,P,w,T,k,M,r]);return D}function Jse(e,t){return e===t}function bI(e,t,n){var r=Jse,i=b.useRef(e),s=b.useState({})[1],o=Xse(b.useCallback(function(d){i.current=d,s({})},[s]),t,n,s),c=b.useRef(e);return r(c.current,e)||(o(e),c.current=e),[i.current,o]}function eae(e,t,n=50,r=!0){return Dn({queryKey:Ge.search.messages(e,t,n),queryFn:async()=>await os(Xe.api.search.messages.$get({query:{q:e,limit:n,...t}}),"Failed to search messages"),enabled:r&&e.trim().length>0,staleTime:3e4})}function tae({isOpen:e,onClose:t,onNavigateToSession:n}){const[r,i]=b.useState(""),[s]=bI(r,300),[o,c]=b.useState(0),{data:d,isLoading:m,error:f}=eae(s,void 0,10,e),g=d?.results||[],y=f?.message??null;b.useEffect(()=>{o>=g.length&&g.length>0?c(g.length-1):g.length===0&&c(0)},[g.length,o]);const x=b.useCallback(w=>{n(w.sessionId,w.messageIndex),t()},[n,t]);b.useEffect(()=>{e&&(i(""),c(0))},[e]),Xr("down",()=>{c(w=>Math.min(w+1,g.length-1))},{enabled:e,preventDefault:!0},[e,g.length]),Xr("up",()=>{c(w=>Math.max(w-1,0))},{enabled:e,preventDefault:!0},[e]),Xr("enter",()=>{g[o]&&(x(g[o]),c(0))},{enabled:e,preventDefault:!0},[e,g,o,x]),Xr("escape",()=>{t()},{enabled:e,preventDefault:!0},[e,t]);const k=w=>{switch(w){case"user":return l.jsx(Xq,{className:"w-4 h-4"});case"assistant":return l.jsx(Tb,{className:"w-4 h-4"});case"system":return l.jsx(Yd,{className:"w-4 h-4"});default:return l.jsx(hq,{className:"w-4 h-4"})}},T=w=>{switch(w){case"user":return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case"assistant":return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case"system":return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";default:return"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200"}},S=(w,N)=>{if(!N)return w;const M=N.replace(/[.*+?^${}()|\[\]\\]/g,"\\$&"),P=new RegExp(`(${M})`,"gi");return w.split(P).map((E,I)=>E.toLowerCase()===N.toLowerCase()?l.jsx("mark",{className:"bg-yellow-200 dark:bg-yellow-800 font-medium rounded px-1",children:E},I):E)};return e?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"fixed inset-0 z-40 bg-black/10 backdrop-blur-[2px]",onClick:t}),l.jsx("div",{className:"fixed left-1/2 top-[15%] -translate-x-1/2 z-50 w-full max-w-2xl bg-popover/70 backdrop-blur-xl border border-border/30 rounded-xl shadow-2xl overflow-hidden",children:l.jsxs("div",{className:"flex flex-col max-h-[70vh]",children:[l.jsx("div",{className:"p-4 border-b border-border/30",children:l.jsxs("div",{className:"relative",children:[l.jsx(Rr,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-muted-foreground"}),l.jsx(ct,{placeholder:"Search conversations...",value:r,onChange:w=>i(w.target.value),className:"pl-12 text-lg border-0 shadow-none focus-visible:ring-0 bg-transparent",autoFocus:!0})]})}),l.jsx("div",{className:"flex-1 overflow-hidden",children:m?l.jsxs("div",{className:"flex items-center justify-center py-12",children:[l.jsx(Qi,{className:"h-6 w-6 animate-spin mr-3"}),l.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):f?l.jsx("div",{className:"flex items-center justify-center py-12",children:l.jsxs("div",{className:"text-center",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-destructive opacity-50"}),l.jsx("p",{className:"text-destructive font-medium",children:"Search Error"}),l.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:y}),l.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Try again or check your connection."})]})}):l.jsx(vm,{className:"h-full max-h-[calc(70vh-80px)]",children:l.jsx("div",{className:"p-2",children:g.length>0?l.jsx("div",{className:"space-y-1",children:g.map((w,N)=>l.jsxs("div",{className:se("flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",N===o?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onClick:()=>x(w),children:[l.jsx("div",{className:"flex-shrink-0 mt-1",children:l.jsx(Qn,{className:se("text-xs",T(w.message.role)),children:k(w.message.role)})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[l.jsx("span",{className:"text-sm font-medium",children:w.sessionId.length>20?`${w.sessionId.slice(0,20)}...`:w.sessionId}),l.jsx("span",{className:"text-xs text-muted-foreground",children:w.message.role})]}),l.jsx("div",{className:"text-sm text-muted-foreground line-clamp-2",children:S(w.context,s)})]}),l.jsx(X1,{className:"w-4 h-4 text-muted-foreground flex-shrink-0 mt-1"})]},N))}):s?l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),l.jsx("p",{className:"text-muted-foreground",children:"No messages found matching your search."}),l.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"Try different keywords."})]}):l.jsxs("div",{className:"text-center py-12",children:[l.jsx(Rr,{className:"w-12 h-12 mx-auto mb-4 text-muted-foreground opacity-50"}),l.jsx("p",{className:"text-muted-foreground",children:"Start typing to search your conversations."}),l.jsxs("div",{className:"flex items-center justify-center gap-4 mt-4 text-xs text-muted-foreground",children:[l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"↑"}),l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"↓"}),l.jsx("span",{children:"to navigate"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"Enter"}),l.jsx("span",{children:"to select"})]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("kbd",{className:"px-2 py-1 bg-muted/50 rounded text-xs",children:"Esc"}),l.jsx("span",{children:"to close"})]})]})]})})})})]})})]}):null}function nae(e=!0){return Dn({queryKey:Ge.agent.config,queryFn:async()=>await os(Xe.api.agent.config.$get(),"Failed to load agent config"),enabled:e,staleTime:3e4})}function rae(){return nn({mutationFn:async({yaml:e})=>await os(Xe.api.agent.validate.$post({json:{yaml:e}}),"Failed to validate agent config")})}function iae(){const e=un();return nn({mutationFn:async({yaml:t})=>await os(Xe.api.agent.config.$post({json:{yaml:t}}),"Failed to save agent config"),onSuccess:()=>{e.invalidateQueries({queryKey:Ge.agent.config})}})}function sae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function YP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZP(Object(n),!0).forEach(function(r){sae(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function aae(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,s;for(s=0;s<r.length;s++)i=r[s],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function oae(e,t){if(e==null)return{};var n=aae(e,t),r,i;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i<s.length;i++)r=s[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function lae(e,t){return uae(e)||cae(e,t)||pae(e,t)||dae()}function uae(e){if(Array.isArray(e))return e}function cae(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,s=void 0;try{for(var o=e[Symbol.iterator](),c;!(r=(c=o.next()).done)&&(n.push(c.value),!(t&&n.length===t));r=!0);}catch(d){i=!0,s=d}finally{try{!r&&o.return!=null&&o.return()}finally{if(i)throw s}}return n}}function pae(e,t){if(e){if(typeof e=="string")return QP(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return QP(e,t)}}function QP(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function dae(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1508
1508
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mae(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function XP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function JP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?XP(Object(n),!0).forEach(function(r){mae(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XP(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function fae(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(i,s){return s(i)},r)}}function kd(e){return function t(){for(var n=this,r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];return i.length>=e.length?e.apply(this,i):function(){for(var o=arguments.length,c=new Array(o),d=0;d<o;d++)c[d]=arguments[d];return t.apply(n,[].concat(i,c))}}}function cg(e){return{}.toString.call(e).includes("Object")}function hae(e){return!Object.keys(e).length}function rm(e){return typeof e=="function"}function gae(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function yae(e,t){return cg(t)||Co("changeType"),Object.keys(t).some(function(n){return!gae(e,n)})&&Co("changeField"),t}function xae(e){rm(e)||Co("selectorType")}function vae(e){rm(e)||cg(e)||Co("handlerType"),cg(e)&&Object.values(e).some(function(t){return!rm(t)})&&Co("handlersType")}function bae(e){e||Co("initialIsRequired"),cg(e)||Co("initialType"),hae(e)&&Co("initialContent")}function Tae(e,t){throw new Error(e[t]||e.default)}var _ae={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},Co=kd(Tae)(_ae),uh={changes:yae,selector:xae,handler:vae,initial:bae};function kae(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};uh.initial(e),uh.handler(t);var n={current:e},r=kd(Mae)(n,t),i=kd(Sae)(n),s=kd(uh.changes)(e),o=kd(wae)(n);function c(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(f){return f};return uh.selector(m),m(n.current)}function d(m){fae(r,i,s,o)(m)}return[c,d]}function wae(e,t){return rm(t)?t(e.current):t}function Sae(e,t){return e.current=JP(JP({},e.current),t),t}function Mae(e,t,n){return rm(t)?t(e.current):Object.keys(n).forEach(function(r){var i;return(i=t[r])===null||i===void 0?void 0:i.call(t,e.current[r])}),n}var Nae={create:kae},Pae={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}};function Cae(e){return function t(){for(var n=this,r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];return i.length>=e.length?e.apply(this,i):function(){for(var o=arguments.length,c=new Array(o),d=0;d<o;d++)c[d]=arguments[d];return t.apply(n,[].concat(i,c))}}}function Eae(e){return{}.toString.call(e).includes("Object")}function Dae(e){return e||eC("configIsRequired"),Eae(e)||eC("configType"),e.urls?(jae(),{paths:{vs:e.urls.monacoBase}}):e}function jae(){console.warn(TI.deprecation)}function Iae(e,t){throw new Error(e[t]||e.default)}var TI={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
1509
1509
  You are using deprecated way of configuration.
1510
1510