@shawnstack/quickforge 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-7FxZObl9.js","assets/github-copilot-headers-CrI0CIJ7.js","assets/transform-messages-CV4kCtBB.js","assets/headers-5EYI0_pl.js","assets/azure-openai-responses-DF-9sGwe.js","assets/openai-responses-shared-R3hZNeJJ.js","assets/hash-Bt1aVMQ3.js","assets/openai-Cn7eGqwa.js","assets/google-Cz9fijiR.js","assets/google-shared-XhYUKiGZ.js","assets/rolldown-runtime-CkqCuyE9.js","assets/google-gemini-cli-DDvXYFFZ.js","assets/google-vertex-8_3WLs6r.js","assets/mistral-Cr6UaIcE.js","assets/openai-codex-responses-BGNNQyHr.js","assets/openai-completions-BxHDkwpI.js","assets/openai-responses-C1ZTWF9s.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/anthropic-BiTRBcug.js","assets/github-copilot-headers-CrI0CIJ7.js","assets/transform-messages-CV4kCtBB.js","assets/headers-5EYI0_pl.js","assets/azure-openai-responses-MuqXmHEI.js","assets/openai-responses-shared-C8jnJ317.js","assets/hash-Bt1aVMQ3.js","assets/openai-Cn7eGqwa.js","assets/google-Bp1Z3Se-.js","assets/google-shared-XhYUKiGZ.js","assets/rolldown-runtime-CkqCuyE9.js","assets/google-gemini-cli-6iC3v7Mu.js","assets/google-vertex-DzmUuLVp.js","assets/mistral-BSlX93lo.js","assets/openai-codex-responses-CvN5Iwy4.js","assets/openai-completions-CteXgyGA.js","assets/openai-responses-Chg1ZGwU.js"])))=>i.map(i=>d[i]);
2
2
  import{n as e,r as t,t as n}from"./rolldown-runtime-CkqCuyE9.js";import{A as r,C as i,D as a,E as o,F as s,M as c,N as l,O as u,P as d,S as f,T as p,_ as m,a as h,b as g,c as _,d as v,f as y,g as b,h as x,i as S,j as C,k as w,l as T,m as E,n as D,o as O,p as k,r as A,s as ee,t as j,u as te,v as ne,w as re,x as M,y as ie}from"./icons-BzvJv-Bv.js";import{n as ae,r as oe,t as se}from"./react-vendor-CdZo8gqc.js";import{a as ce,c as le,d as N,i as P,l as ue,n as de,o as fe,r as pe,s as F,t as me,u as he}from"./lit-vendor-1dsGB-Iy.js";import{n as ge,r as _e,t as ve}from"./css-utils-rkE68RDy.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var I=t(s(),1),ye=ae();function be(e){return t=>e(t||{})}var xe={"*":`*`,Copy:`Copy`,"Copy code":`Copy code`,"Copied!":`Copied!`,Download:`Download`,Close:`Close`,Preview:`Preview`,Code:`Code`,"Loading...":`Loading...`,"Select an option":`Select an option`,"Mode 1":`Mode 1`,"Mode 2":`Mode 2`,Required:`Required`,Optional:`Optional`,"Input Required":`Input Required`,Cancel:`Cancel`,Confirm:`Confirm`},Se={"*":`*`,Copy:`Kopieren`,"Copy code":`Code kopieren`,"Copied!":`Kopiert!`,Download:`Herunterladen`,Close:`Schließen`,Preview:`Vorschau`,Code:`Code`,"Loading...":`Laden...`,"Select an option":`Option auswählen`,"Mode 1":`Modus 1`,"Mode 2":`Modus 2`,Required:`Erforderlich`,Optional:`Optional`,"Input Required":`Eingabe erforderlich`,Cancel:`Abbrechen`,Confirm:`Bestätigen`},Ce={en:xe,de:Se};function we(e){Ce=e}function Te(){let e=localStorage.getItem(`language`);if(e&&Ce[e])return e;let t=navigator.language||navigator.userLanguage,n=t?t.split(`-`)[0]:`en`;return Ce[n]?n:`en`}function L(e,t){let n=Te(),r=Ce[n]||Ce.en;if(t===void 0){let t=r[e];return t||(typeof t==`function`?t:(console.error(`Unknown i18n key: ${e}`),e))}else{let n=r[e];return!n||typeof n!=`object`?(console.error(`Unknown i18n category: ${e}`),t):n[t]||(console.error(`Unknown i18n key: ${e}.${t}`),t)}}var Ee={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},De=([e,t,n])=>{let r=document.createElementNS(`http://www.w3.org/2000/svg`,e);return Object.keys(t).forEach(e=>{r.setAttribute(e,String(t[e]))}),n?.length&&n.forEach(e=>{let t=De(e);r.appendChild(t)}),r},Oe=(e,t={})=>De([`svg`,{...Ee,...t},e]),ke=[[`path`,{d:`M12 18V5`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`}]],Ae=[[`path`,{d:`M20 6 9 17l-5-5`}]],je=[[`path`,{d:`m6 9 6 6 6-6`}]],Me=[[`path`,{d:`m9 18 6-6-6-6`}]],Ne=[[`path`,{d:`m18 15-6-6-6 6`}]],Pe=[[`path`,{d:`m7 6 5 5 5-5`}],[`path`,{d:`m7 13 5 5 5-5`}]],Fe=[[`path`,{d:`m7 15 5 5 5-5`}],[`path`,{d:`m7 9 5-5 5 5`}]],Ie=[[`path`,{d:`m16 18 6-6-6-6`}],[`path`,{d:`m8 6-6 6 6 6`}]],Le=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]],Re=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]],ze=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],Be=[[`path`,{d:`M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}],[`path`,{d:`m5 12-3 3 3 3`}],[`path`,{d:`m9 18 3-3-3-3`}]],Ve=[[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}],[`path`,{d:`M8 13h2`}],[`path`,{d:`M14 13h2`}],[`path`,{d:`M8 17h2`}],[`path`,{d:`M14 17h2`}]],He=[[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]],Ue=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`}],[`circle`,{cx:`9`,cy:`9`,r:`2`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`}]],We=[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`}]],Ge=[[`path`,{d:`M12 2v4`}],[`path`,{d:`m16.2 7.8 2.9-2.9`}],[`path`,{d:`M18 12h4`}],[`path`,{d:`m16.2 16.2 2.9 2.9`}],[`path`,{d:`M12 18v4`}],[`path`,{d:`m4.9 19.1 2.9-2.9`}],[`path`,{d:`M2 12h4`}],[`path`,{d:`m4.9 4.9 2.9 2.9`}]],Ke=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`}]],qe=[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`}]],Je=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}],[`path`,{d:`M8 16H3v5`}]],Ye=[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`}],[`path`,{d:`m21.854 2.147-10.94 10.939`}]],Xe=[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`}],[`path`,{d:`M20 2v4`}],[`path`,{d:`M22 4h-4`}],[`circle`,{cx:`4`,cy:`20`,r:`2`}]],Ze=[[`path`,{d:`m7 11 2-2-2-2`}],[`path`,{d:`M11 13h4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`}]],Qe=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}]],$e=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],et={xs:`w-3 h-3`,sm:`w-4 h-4`,md:`w-5 h-5`,lg:`w-6 h-6`,xl:`w-8 h-8`};function tt(e,t=`md`,n){return N`${fe(nt(e,t,n).outerHTML)}`}function nt(e,t=`md`,n){return Oe(e,{class:et[t]+(n?` `+n:``)})}var rt=null;function it(e){let{value:t,placeholder:n=L(`Select an option`),options:r,onChange:i,disabled:a=!1,className:o=``,width:s=`180px`,size:c=`md`,variant:l=`default`,fitContent:u=!1}=e,d=F(),f={isOpen:!1,focusedIndex:-1},p={sm:`h-8 px-2 text-xs`,md:`h-9 px-3 text-sm`,lg:`h-10 px-4 text-base`},m={default:`text-foreground border-input bg-transparent hover:bg-accent/50 shadow-xs`,ghost:`text-foreground border-transparent bg-transparent hover:bg-accent hover:text-accent-foreground`,outline:`text-foreground border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},h=[],g=r.length>0&&`options`in r[0];g?r.forEach(e=>{h.push(...e.options.filter(e=>!e.disabled))}):h.push(...r.filter(e=>!e.disabled));let _=h.find(e=>e.value===t),v=null,y=()=>(v||(v=document.createElement(`div`),v.className=`select-portal-container`,v.style.cssText=`position: fixed; z-index: 50; pointer-events: none;`,document.body.appendChild(v)),v),b=()=>{if(!d.value||!v)return;let e=d.value.getBoundingClientRect();f.triggerRect=e;let t=window.innerHeight-e.bottom,n=e.top,r=t<300&&n>t;v.style.cssText=`
3
3
  position: fixed;
4
4
  left: ${e.left}px;
@@ -128,7 +128,7 @@ import{n as e,r as t,t as n}from"./rolldown-runtime-CkqCuyE9.js";import{A as r,C
128
128
  </button>
129
129
  `}var at=be(({variant:e=`default`,className:t=``,children:n})=>N` <span class="${`inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden`} ${{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`border-input text-foreground`}[e]} ${t}"> ${n} </span> `);function ot(e,t=`default`,n=``){return typeof e==`object`&&e&&`children`in e?at(e):at({children:e,variant:t,className:n})}var st={assign:0,create:0,clone:0,discard:0,update:0};function ct(e,t){return st.assign+=1,{...e,...t}}function lt(e,t,n){return e>=t&&e<=n}function ut(e){return lt(e,127462,127487)}function dt(e){return lt(e,65024,65039)}function ft(e){return lt(e,768,879)||lt(e,6832,6911)||lt(e,7616,7679)||lt(e,65056,65071)}function pt(e){return e>65535?2:1}function mt(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(ft(n)||dt(n))t+=pt(n);else break}return t}function ht(e,t){let n=e.codePointAt(t),r=t+pt(n);for(r=mt(e,r);r<e.length-1&&e[r]===`‍`;){let t=e.codePointAt(r+1);r+=1+pt(t),r=mt(e,r)}return ut(n)&&r<e.length&&ut(e.codePointAt(r))&&(r+=pt(e.codePointAt(r))),r}function gt(e){return lt(e,55296,56319)||lt(e,768,879)||e===8205}function _t(e,t){if(t===0)return!0;let n=0,r=0;for(;r<e.length;)if(r=ht(e,r),n++,n>=t)return!0;return!1}function eee(e,t){let n=0,r=0;for(;r<e.length;)if(r=ht(e,r),n++,n>t)return!1;return!0}function vt(e,t){if(t===0)return!0;let n=0;for(;n<e.length;){if(gt(e.charCodeAt(n)))return _t(e,t);if(n++,n>=t)return!0}return!1}function yt(e,t){let n=0;for(;n<e.length;){if(gt(e.charCodeAt(n)))return eee(e,t);if(n++,n>t)return!1}return!0}function bt(e){return Array.isArray(e)}function xt(e){return At(e)&&Symbol.asyncIterator in e}function St(e){return R(typeof e,`bigint`)}function Ct(e){return R(typeof e,`boolean`)}function wt(e){if(Nt(e)||!Tt(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function Tt(e){return R(typeof e,`function`)}function Et(e){return Number.isInteger(e)}function tee(e){return At(e)&&Symbol.iterator in e}function Dt(e){return R(e,null)}function Ot(e){return Number.isFinite(e)}function kt(e){return At(e)&&!bt(e)}function At(e){return R(typeof e,`object`)&&!Dt(e)}function jt(e){return R(typeof e,`string`)}function Mt(e){return R(typeof e,`symbol`)}function Nt(e){return R(e,void 0)}function R(e,t){return e===t}function Pt(e,t){return e>t}function Ft(e,t){return e<t}function It(e,t){return e<=t}function Lt(e,t){return e>=t}function Rt(e,t){if(St(e)||St(t))return BigInt(e)%BigInt(t)===0n;if(!Ot(e)||Et(e)&&1/t%1==0)return!0;let n=e%t;return Math.min(Math.abs(n),Math.abs(n-t))<1e-10}function zt(e){if(!At(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return Dt(t)?!1:R(typeof t.constructor,`function`)&&!(R(t.constructor,globalThis.Object)||R(t.constructor.name,`Object`))}function Bt(e){return St(e)||Ct(e)||Dt(e)||Ot(e)||jt(e)||Nt(e)}function Vt(e,t){return yt(e,t)}function Ht(e,t){return vt(e,t)}function Ut(e,t,n){for(let r=t;r<e.length;r++)if(!n(e[r],r))return!1;return!0}function Wt(e,t,n){let r=!0;for(let i=t;i<e.length;i++)n(e[i],i)||(r=!1);return r}function Gt(e,t,n){return R(e.length,0)?n():t(e[0],e.slice(1))}function Kt(e,t){return R(t,`__proto__`)||R(t,`constructor`)?Object.prototype.hasOwnProperty.call(e,t):t in e}function qt(e){return Yt(e).map(t=>[RegExp(`^${t}$`),e[t]])}function Jt(e){return Object.entries(e)}function Yt(e){return Object.getOwnPropertyNames(e)}function Xt(e){return Object.values(e)}function nee(e,t){if(!At(t))return!1;let n=Yt(e);return R(n.length,Yt(t).length)&&n.every(n=>Zt(e[n],t[n]))}function ree(e,t){return bt(t)&&R(e.length,t.length)&&e.every((n,r)=>Zt(e[r],t[r]))}function Zt(e,t){return bt(e)?ree(e,t):At(e)?nee(e,t):R(e,t)}function iee(e){return e instanceof Boolean}function aee(e){return e instanceof Number}function oee(e){return e instanceof String}function Qt(e){return globalThis.ArrayBuffer.isView(e)}function see(e){return e instanceof globalThis.RegExp}function $t(e){return e instanceof globalThis.Date}function en(e){return e instanceof globalThis.Set}function tn(e){return e instanceof globalThis.Map}function nn(e){return At(e)&&Kt(e,`~guard`)}function rn(e){return e}function an(e){return e.map(e=>ln(e))}function on(e){let t={},n=Object.getOwnPropertyDescriptors(e);for(let e of Object.keys(n)){let r=n[e];Kt(r,`value`)&&Object.defineProperty(t,e,{...r,value:ln(r.value)})}return t}function sn(e){return new RegExp(e.source,e.flags)}function cn(e){return e}function ln(e){return e instanceof RegExp?sn(e):nn(e)?rn(e):bt(e)?an(e):At(e)?on(e):cn(e)}function un(e){return st.clone+=1,ln(e)}var cee={immutableTypes:!1,maxErrors:8,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1};function dn(){return cee}function lee(e,t){for(let n of Object.keys(t))Object.defineProperty(e,n,{configurable:!0,writable:!0,enumerable:!1,value:t[n]});return e}function fn(e,t){return{...e,...t}}function pn(e,t,n={}){st.create+=1;let r=dn(),i=fn(t,n),a=r.enumerableKind?fn(i,e):lee(i,e);return r.immutableTypes?Object.freeze(a):a}function mn(e,t){st.discard+=1;let n={},r=Object.getOwnPropertyDescriptors(un(e)),i=new Set(t);for(let e of Object.keys(r))i.has(e)||Object.defineProperty(n,e,r[e]);return n}function hn(e,t,n){st.update+=1;let r=dn(),i=un(e);for(let e of Object.keys(t))Object.defineProperty(i,e,{configurable:!0,writable:!0,enumerable:r.enumerableKind,value:t[e]});for(let e of Object.keys(n))Object.defineProperty(i,e,{configurable:!0,enumerable:!0,writable:!0,value:n[e]});return i}function gn(e,t){return At(e)&&Kt(e,`~kind`)&&R(e[`~kind`],t)}function _n(e){return At(e)}function vn(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`type`)&&R(e[`~kind`],`OptionalAddAction`)&&_n(e.type)}function yn(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`type`)&&R(e[`~kind`],`OptionalRemoveAction`)&&_n(e.type)}function bn(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`type`)&&R(e[`~kind`],`ReadonlyAddAction`)&&_n(e.type)}function xn(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`type`)&&R(e[`~kind`],`ReadonlyRemoveAction`)&&_n(e.type)}function Sn(e,t,n){return pn({"~kind":`Deferred`},{action:e,parameters:t,options:n},{})}function Cn(e){return gn(e,`Deferred`)}function wn(e,t){return pn({"~kind":`Promise`},{type:`promise`,item:e},t)}function Tn(e){return gn(e,`Promise`)}function En(e){return mn(e,[`~kind`,`type`,`item`])}function Dn(e){return hn(e,{"~immutable":!0},{})}function On(e){return Dn(e)}function kn(e){return _n(e)&&Kt(e,`~immutable`)}function An(e){return mn(e,[`~optional`])}function jn(e){return hn(e,{"~optional":!0},{})}function Mn(e){return jn(e)}function Nn(e){return _n(e)&&Kt(e,`~optional`)}function Pn(e){return mn(e,[`~readonly`])}function Fn(e){return hn(e,{"~readonly":!0},{})}function uee(e){return Fn(e)}function In(e){return _n(e)&&Kt(e,`~readonly`)}function Ln(e){return gn(e,`Base`)}function Rn(e,t){return pn({"~kind":`Array`},{type:`array`,items:e},t)}function zn(e){return gn(e,`Array`)}function Bn(e){return mn(e,[`~kind`,`type`,`items`])}function Vn(e,t){return pn({"~kind":`AsyncIterator`},{type:`asyncIterator`,iteratorItems:e},t)}function Hn(e){return gn(e,`AsyncIterator`)}function dee(e){return mn(e,[`~kind`,`type`,`iteratorItems`])}function Un(e,t,n={}){return pn({"~kind":`Constructor`},{type:`constructor`,parameters:e,instanceType:t},n)}function Wn(e){return gn(e,`Constructor`)}function fee(e){return mn(e,[`~kind`,`type`,`parameters`,`instanceType`])}function Gn(e,t,n={}){return pn({"~kind":`Function`},{type:`function`,parameters:e,returnType:t},n)}function Kn(e){return gn(e,`Function`)}function pee(e){return mn(e,[`~kind`,`type`,`parameters`,`returnType`])}function qn(e,t){return pn({"~kind":`Ref`},{$ref:e},t)}function Jn(e){return gn(e,`Ref`)}function mee(e,t){return pn({"~kind":`Generic`},{type:`generic`,parameters:e,expression:t})}function Yn(e){return gn(e,`Generic`)}function Xn(e){return pn({"~kind":`Any`},{},e)}function Zn(e){return gn(e,`Any`)}var Qn=`(?!)`;function $n(e){return pn({"~kind":`Never`},{not:{}},e)}function er(e){return gn(e,`Never`)}function tr(e){return Yt(e).filter(t=>!Nn(e[t]))}function nr(e){return Yt(e)}function rr(e){return Xt(e)}function ir(e,t={}){let n=tr(e);return pn({"~kind":`Object`},{type:`object`,...n.length>0?{required:n}:{},properties:e},t)}function ar(e){return gn(e,`Object`)}function or(e){return mn(e,[`~kind`,`type`,`properties`,`required`])}function sr(e,t={}){return pn({"~kind":`Union`},{anyOf:e},t)}function cr(e){return gn(e,`Union`)}function lr(e){return mn(e,[`~kind`,`anyOf`])}function ur(e){return pn({"~kind":`Unknown`},{},e)}function dr(e){return gn(e,`Unknown`)}function fr(e,t,n){return pn({"~kind":`Cyclic`},{$defs:Yt(e).reduce((t,n)=>({...t,[n]:hn(e[n],{},{$id:n})}),{}),$ref:t},n)}function pr(e){return gn(e,`Cyclic`)}function hee(e){return hn(e,{"~unsafe":null},{})}function gee(e){return kt(e)&&Kt(e,`~unsafe`)&&Dt(e[`~unsafe`])}function mr(e,t){return t[e.length]?.(...e)??(()=>{throw Error(`Invalid Arguments`)})()}function hr(e){return gn(e,`Infer`)}function gr(e){return gn(e,`Enum`)}function _r(e,t={}){return pn({"~kind":`Intersect`},{allOf:e},t)}function vr(e){return gn(e,`Intersect`)}function yr(e){return mn(e,[`~kind`,`allOf`])}function br(){throw Error(`Unreachable`)}function xr(e){let t=new Set,n=e;for(;n&&n!==Object.prototype;){for(let e of Reflect.ownKeys(n))e!==`constructor`&&typeof e!=`symbol`&&t.add(e);n=Object.getPrototypeOf(n)}return[...t]}function Sr(e){return typeof e==`number`}var Cr;(function(e){e[e.Array=0]=`Array`,e[e.BigInt=1]=`BigInt`,e[e.Boolean=2]=`Boolean`,e[e.Date=3]=`Date`,e[e.Constructor=4]=`Constructor`,e[e.Function=5]=`Function`,e[e.Null=6]=`Null`,e[e.Number=7]=`Number`,e[e.Object=8]=`Object`,e[e.RegExp=9]=`RegExp`,e[e.String=10]=`String`,e[e.Symbol=11]=`Symbol`,e[e.TypeArray=12]=`TypeArray`,e[e.Undefined=13]=`Undefined`})(Cr||={});var wr=BigInt(`14695981039346656037`),[Tr,Er]=[BigInt(`1099511628211`),BigInt(`18446744073709551616`)],Dr=Array.from({length:256}).map((e,t)=>BigInt(t)),Or=new Float64Array(1),kr=new DataView(Or.buffer),Ar=new Uint8Array(Or.buffer);function jr(e){wr^=Dr[e],wr=wr*Tr%Er}function _ee(e){jr(Cr.Array);for(let t of e)Vr(t)}function vee(e){jr(Cr.BigInt),kr.setBigInt64(0,e);for(let e of Ar)jr(e)}function Mr(e){jr(Cr.Boolean),jr(+!!e)}function yee(e){jr(Cr.Constructor),Vr(e.toString())}function bee(e){jr(Cr.Date),Vr(e.getTime())}function xee(e){jr(Cr.Function),Vr(e.toString())}function See(e){jr(Cr.Null)}function Nr(e){jr(Cr.Number),kr.setFloat64(0,e,!0);for(let e of Ar)jr(e)}function Pr(e){jr(Cr.Object);for(let t of xr(e).sort())Vr(t),Vr(e[t])}function Fr(e){jr(Cr.RegExp),Lr(e.toString())}var Ir=new TextEncoder;function Lr(e){jr(Cr.String);for(let t of Ir.encode(e))jr(t)}function Rr(e){jr(Cr.Symbol),Vr(e.toString())}function zr(e){jr(Cr.TypeArray);let t=new Uint8Array(e.buffer);for(let e=0;e<t.length;e++)jr(t[e])}function Br(e){return jr(Cr.Undefined)}function Vr(e){return Qt(e)?zr(e):$t(e)?bee(e):see(e)?Fr(e):iee(e)?Mr(e.valueOf()):oee(e)?Lr(e.valueOf()):aee(e)?Nr(e.valueOf()):Sr(e)?Nr(e):bt(e)?_ee(e):Ct(e)?Mr(e):St(e)?vee(e):wt(e)?yee(e):Dt(e)?See(e):At(e)?Pr(e):jt(e)?Lr(e):Mt(e)?Rr(e):Nt(e)?Br(e):Tt(e)?xee(e):br()}function Hr(e){return wr=BigInt(`14695981039346656037`),Vr(e),wr}function Ur(e){return Hr(e).toString(16).padStart(16,`0`)}function Wr(e){return _n(e)&&Kt(e,`~codec`)&&At(e[`~codec`])&&Kt(e[`~codec`],`encode`)&&Kt(e[`~codec`],`decode`)}var Gr=`-?(?:0|[1-9][0-9]*)n`;function Kr(e){return pn({"~kind":`BigInt`},{type:`bigint`},e)}function qr(e){return gn(e,`BigInt`)}function Jr(e){return gn(e,`Boolean`)}var Yr=`-?(?:0|[1-9][0-9]*)`;function Xr(e){return pn({"~kind":`Integer`},{type:`integer`},e)}function Zr(e){return gn(e,`Integer`)}function Qr(e,t){return pn({"~kind":`Iterator`},{type:`iterator`,iteratorItems:e},t)}function $r(e){return gn(e,`Iterator`)}function ei(e){return mn(e,[`~kind`,`type`,`iteratorItems`])}var ti=class extends Error{constructor(e){super(`Invalid Literal value`),Object.defineProperty(this,`cause`,{value:{value:e},writable:!1,configurable:!1,enumerable:!1})}};function ni(e){return St(e)?`bigint`:Ct(e)?`boolean`:Ot(e)?`number`:jt(e)?`string`:(()=>{throw new ti(e)})()}function ri(e,t){return pn({"~kind":`Literal`},{type:ni(e),const:e},t)}function ii(e){return St(e)||Ct(e)||Ot(e)||jt(e)}function ai(e){return li(e)&&St(e.const)}function oi(e){return li(e)&&Ct(e.const)}function si(e){return li(e)&&Ot(e.const)}function ci(e){return li(e)&&jt(e.const)}function li(e){return gn(e,`Literal`)}function ui(e){return pn({"~kind":`Null`},{type:`null`},e)}function di(e){return gn(e,`Null`)}var fi=`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`;function pi(e){return pn({"~kind":`Number`},{type:`number`},e)}function mi(e){return gn(e,`Number`)}function hi(e){return pn({"~kind":`Symbol`},{type:`symbol`},e)}function gi(e){return gn(e,`Symbol`)}function _i(e){return pn({"~kind":`String`},{type:`string`},e)}function vi(e){return gn(e,`String`)}function yi(e){let t=Pa(e);return R(t.length,2)?t[0]:[]}function bi(e){return!0}function xi(e){return Gt(e,(e,t)=>Ci(e)?xi(t):!1,()=>!0)}function Si(e){return R(e.length,0)?!1:xi(e)}function Ci(e){return cr(e)?Si(e.anyOf):li(e)?bi(e.const):!1}function wi(e){return Si(e)}function Ti(e){return pn({"~kind":`TemplateLiteral`},{type:`string`,pattern:e},{})}function Ei(e,t,n=[]){return Gt(e,(e,r)=>Ei(r,t,[...n,`${e}${t}`]),()=>n)}function Di(e,t){return R(e.length,0)?[`${t}`]:Ei(e,t)}function Oi(e,t,n=[]){return Gt(t,(t,r)=>Oi(e,r,[...n,...ki(e,t)]),()=>n)}function ki(e,t){return cr(t)?Oi(e,t.anyOf):li(t)?Di(e,t.const):br()}function Ai(e,t){return Gt(t,(t,n)=>Ai(ki(e,t),n),()=>e)}function Cee(e){return e.map(e=>ri(e))}function wee(e){return sr(Cee(Ai([],e)))}function Tee(e){return R(e.length,0)?br():R(e.length,1)&&li(e[0])?e[0]:wee(e)}function ji(e){let t=yi(e);return R(t.length,0)?_i():wi(t)?Tee(t):Ti(e)}function Mi(e){let t=ji(e);return to(t)?_i():t}function Ni(e,t){return pn({"~kind":`Record`},{type:`object`,patternProperties:{[e]:t}})}function Eee(e){return Ni(ea,e)}function Dee(e){return ir({true:e,false:e})}function Oee(e){return jt(e)||Ot(e)?ri(e):Dt(e)?ui():$n()}function Pi(e){return e.map(e=>Oee(e))}function Fi(e){return sr(Pi(e))}function Ii(e){return Fi(e.enum)}function kee(e,t){return Xi(Fi(e),t)}function Aee(e,t){return Ni(Qi,t)}function Li(e,t={}){let[n,r,i]=[e,e.length,!1];return pn({"~kind":`Tuple`},{type:`array`,additionalItems:i,items:n,minItems:r},t)}function Ri(e){return gn(e,`Tuple`)}function jee(e){return mn(e,[`~kind`,`type`,`items`,`minItems`,`additionalItems`])}function zi(e){return e.reduceRight((e,t,n)=>({[n]:t,...e}),{})}function Mee(e){return ir(zi(e.items))}function Nee(e,t){return In(e)?!!In(t):!1}function Pee(e,t){return Nn(e)?!!Nn(t):!1}function Fee(e,t){let n=Nee(e,t),r=Pee(e,t),i=Pn(An(Gi([e,t])));return n&&r?Fn(jn(i)):n&&!r?Fn(i):!n&&r?jn(i):i}function Iee(e,t,n){return n in e?n in t?Fee(e[n],t[n]):e[n]:n in t?t[n]:$n()}function Lee(e,t){return[...new Set([...Yt(t),...Yt(e)])].reduce((n,r)=>({...n,[r]:Iee(e,t,r)}),{})}function Bi(e){return ar(e)?e.properties:Ri(e)?zi(e.items):br()}function Ree(e,t){return ir(Lee(Bi(e),Bi(t)))}function zee(e,t){let n=Ms(e,t);return R(n,`left-inside`)?e:R(n,`right-inside`)||R(n,`equal`)?t:$n()}function Vi(e){return ar(e)||Ri(e)}function Bee(e,t){let n=cr(e),r=cr(t);return n||r}function Vee(e,t){let n=qi(e),r=qi(t),i=Bee(n,r),a=Vi(n),o=Vi(r);return i?Gi([n,r]):a&&o?Ree(n,r):a&&!o?n:!a&&o?r:zee(n,r)}function Hi(e,t,n=[]){return Gt(t,(t,r)=>Hi(e,r,[...n,Vee(e,t)]),()=>R(n.length,0)?[e]:n)}function Ui(e,t,n=[]){return Gt(e,(e,r)=>Ui(r,t,[...n,...Wi([e],t)]),()=>n)}function Wi(e,t=[]){return Gt(e,(e,n)=>cr(e)?Wi(n,Ui(e.anyOf,t)):Wi(n,Hi(e,t)),()=>t)}function Gi(e){return Ls(Wi(e))}function Ki(e){return Ls(e)}function qi(e){return vr(e)?Gi(e.allOf):cr(e)?Ki(e.anyOf):e}function Ji(e){return R(e.length,1)?e[0]:R(e.length,0)?$n():sr(e)}function Hee(e,t){return Xi(Gi(e),t)}function Uee(e,t){return jt(e)||Ot(e)?ir({[e]:t}):R(e,!1)?ir({false:t}):R(e,!0)?ir({true:t}):ir({})}function Wee(e,t){return Ni($i,t)}function Gee(e,t){return Kt(e,`pattern`)&&(jt(e.pattern)||e.pattern instanceof RegExp)?Ni(e.pattern.toString(),t):Ni(ea,t)}function Kee(e,t){return wi(yi(e))?Xi(Mi(e),t):Ni(e,t)}function qee(e){return cr(e)?Yi(e.anyOf):[e]}function Yi(e){return e.reduce((e,t)=>[...e,...qee(t)],[])}function Jee(e){return e.some(e=>vi(e)||mi(e)||Zr(e))}function Yee(e,t){return R(Jee(e),!0)?Ni(ea,t):void 0}function Xee(e,t){return e.reduce((e,n)=>li(n)&&(jt(n.const)||Ot(n.const))?{...e,[n.const]:t}:e,{})}function Zee(e,t){return ir(Xee(e,t))}function Qee(e,t){let n=Yi(e),r=Yee(n,t);return _n(r)?r:Zee(n,t)}function Xi(e,t){return Zn(e)?Eee(t):Jr(e)?Dee(t):gr(e)?kee(e.enum,t):Zr(e)?Aee(e,t):vr(e)?Hee(e.allOf,t):li(e)?Uee(e.const,t):mi(e)?Wee(e,t):cr(e)?Qee(e.anyOf,t):vi(e)?Gee(e,t):to(e)?Kee(e.pattern,t):ir({})}function Zi(e,t,n){return Ru([e])?hn(Xi(e,t),{},n):ete(e,t,n)}function $ee(e,t,n,r,i){return Zi(Ku(e,t,n),Ku(e,t,r),i)}var Qi=`^${Yr}$`,$i=`^${fi}$`,ea=`^.*$`;function ete(e,t,n={}){return Sn(`Record`,[e,t],n)}function tte(e,t,n={}){return Zi(e,t,n)}function nte(e,t){return Ni(e,t)}function ta(e){return Yt(e.patternProperties)[0]}function na(e){let t=ta(e);return R(t,ea)?_i():R(t,Qi)?Xr():R(t,$i)?pi():ji(t)}function ra(e){return e.patternProperties[ta(e)]}function ia(e){return gn(e,`Record`)}function rte(e){return pn({"~kind":`Rest`},{type:`rest`,items:e},{})}function aa(e){return gn(e,`Rest`)}function ite(e){return gn(e,`This`)}function ate(e){return pn({"~kind":`Undefined`},{type:`undefined`},e)}function oa(e){return gn(e,`Undefined`)}function sa(e){return gn(e,`Void`)}function ote(e){return Kr()}function ste(e){return _i()}function cte(e){return pi()}function lte(e){return Xr()}function ute(e){return $n()}function dte(e){return ri(e)}function fte(e){return e}function pte(e){return sr(e[1])}function mte(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function hte(e){return[e[0],...e[1]]}function gte(e){return e}function _te(e){return e[1]}function ca(e){return R(e.length,2)}function la(e,t,n){return ca(e)?t(e[0],e[1]):n()}function vte(e,t){return R(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function ua(e,t){for(let n=0;n<e.length;n++){let r=vte(e[n],t);if(ca(r))return r}return[]}function da(e,t){return Array.from({length:t-e+1},(t,n)=>String.fromCharCode(e+n))}var fa=[...da(97,122),...da(65,90)],pa=[`0`,...da(49,57)],ma=`//`,ha=`/*`,ga=`*/`;function _a(e){let t=e.indexOf(ga);return R(t,-1)?``:e.slice(t+2)}function va(e){let t=e.indexOf(`
130
130
  `);return R(t,-1)?``:e.slice(t)}function yte(e){return e.replace(/^[ \t\r\f\v]+/,``)}function ya(e){let t=yte(e);return t.startsWith(ha)?ya(_a(t.slice(2))):t.startsWith(ma)?ya(va(t.slice(2))):t}function ba(e){let t=e.trimStart();return t.startsWith(ha)?ba(_a(t.slice(2))):t.startsWith(ma)?ba(va(t.slice(2))):t}[...pa];function xa(e,t){return ua([e],t)}function Sa(e,t){return R(e,``)?[``,t]:e.startsWith(`
131
- `)?xa(e,ya(t)):e.startsWith(` `)?xa(e,t):xa(e,ba(t))}[...[...fa,`_`,`$`],...pa],[...pa];function Ca(e){return R(e,``)?[]:[e.slice(0,1),e.slice(1)]}function wa(e,t){return Gt(e,(e,n)=>t.startsWith(e)?!0:wa(n,t),()=>!1)}function Ta(e,t,n=``){return la(Ca(t),(r,i)=>wa(e,t)?[n,t]:Ta(e,i,`${n}${r}`),()=>[])}function Ea(e,t){return la(Ta(e,t),(e,t)=>R(e,``)?[]:[e,t],()=>[])}var Da=(e,t,n=()=>[])=>e.length===2?t(e):n(),bte=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[ote(e),t]),xte=e=>Da(Sa(`.*`,e),([e,t])=>[ste(e),t]),Ste=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[cte(e),t]),Cte=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[lte(e),t]),wte=e=>Da(Sa(`(?!)`,e),([e,t])=>[ute(e),t]),Oa=e=>Da(Ea([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[dte(e),t]),ka=e=>Da(Da(bte(e),([e,t])=>[e,t],()=>Da(xte(e),([e,t])=>[e,t],()=>Da(Ste(e),([e,t])=>[e,t],()=>Da(Cte(e),([e,t])=>[e,t],()=>Da(wte(e),([e,t])=>[e,t],()=>Da(Aa(e),([e,t])=>[e,t],()=>Da(Oa(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[fte(e),t]),Aa=e=>Da(Da(Sa(`(`,e),([e,t])=>Da(Na(t),([t,n])=>Da(Sa(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[pte(e),t]),ja=e=>Da(Da(Da(Ma(e),([e,t])=>Da(Sa(`|`,t),([t,n])=>Da(ja(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>Da(Da(Ma(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>Da([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[mte(e),t]),Ma=e=>Da(Da(ka(e),([e,t])=>Da(Na(t),([t,n])=>[[e,t],n])),([e,t])=>[hte(e),t]),Na=e=>Da(Da(ja(e),([e,t])=>[e,t],()=>Da(Ma(e),([e,t])=>[e,t],()=>[])),([e,t])=>[gte(e),t]),Pa=e=>Da(Da(Sa(`^`,e),([e,t])=>Da(Na(t),([t,n])=>Da(Sa(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[_te(e),t]);function Fa(e){return e.join(`|`)}function Ia(e){return e.slice(1,e.length-1)}function La(e,t,n){return Ja(t,`${n}${e}`)}function Ra(e,t){return Ja(e,`${t}${Gr}`)}function za(e,t){return Ja(e,`${t}${Yr}`)}function Ba(e,t){return Ja(e,`${t}${fi}`)}function Va(e,t){return qa(sr([ri(`false`),ri(`true`)]),e,t)}function Ha(e,t){return Ja(e,`${t}.*`)}function Ua(e,t,n){return Ja(t,`${n}${Ia(e)}`)}function Wa(e,t,n){return qa(Za(e,{}),t,n)}function Ga(e,t,n){return Ka(Pi(e),t,n)}function Ka(e,t,n,r=[]){return Gt(e,(e,i)=>Ka(i,t,n,[...r,qa(e,[],``)]),()=>Ja(t,`${n}(${Fa(r)})`))}function qa(e,t,n){return gr(e)?Ga(e.enum,t,n):Zr(e)?za(t,n):li(e)?La(e.const,t,n):qr(e)?Ra(t,n):Jr(e)?Va(t,n):mi(e)?Ba(t,n):vi(e)?Ha(t,n):to(e)?Ua(e.pattern,t,n):eo(e)?Wa(e.parameters[0],t,n):cr(e)?Ka(e.anyOf,t,n):Qn}function Ja(e,t){return Gt(e,(e,n)=>qa(e,n,t),()=>t)}function Ya(e){return`^${Ja(e,``)}$`}function Xa(e){return Ti(Ya(e))}function Za(e,t){return Ru(e)?hn(Xa(e),{},t):$a(e,t)}function Qa(e,t,n,r){return Za(Wu(e,t,n),r)}function $a(e,t={}){return Sn(`TemplateLiteral`,[e],t)}function eo(e){return _n(e)&&Kt(e,`action`)&&R(e.action,`TemplateLiteral`)}function to(e){return gn(e,`TemplateLiteral`)}function no(e){return pn({"~kind":`ExtendsUnion`},{inferred:e})}function ro(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`inferred`)&&R(e[`~kind`],`ExtendsUnion`)&&At(e.inferred)}function io(e){return pn({"~kind":`ExtendsTrue`},{inferred:e})}function ao(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`inferred`)&&R(e[`~kind`],`ExtendsTrue`)&&At(e.inferred)}function oo(){return pn({"~kind":`ExtendsFalse`},{})}function so(e){return At(e)&&Kt(e,`~kind`)&&R(e[`~kind`],`ExtendsFalse`)}function co(e){return ro(e)||ao(e)}function lo(e,t,n){return co(e)?t(e.inferred):n()}function uo(e,t,n,r){return lo(Zo(e,n,r),r=>io(ct(ct(e,r),{[t]:n})),()=>oo())}function fo(e,t){return io(e)}function po(e,t,n){return Zo(e,t,Fi(n))}function mo(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>mo(e,t,r),()=>oo()),()=>io(e))}function ho(e,t,n){return Zo(e,t,Mi(n))}function go(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>io(e),()=>go(e,t,r)),()=>oo())}function _o(e,t,n){return Zn(n)?fo(e,t):gr(n)?po(e,t,n.enum):hr(n)?uo(e,n.name,t,n.extends):vr(n)?mo(e,t,n.allOf):to(n)?ho(e,t,n.pattern):cr(n)?go(e,t,n.anyOf):dr(n)?io(e):oo()}function vo(e,t,n){return hr(n)?_o(e,t,n):Zn(n)||dr(n)?io(e):no(e)}function yo(e,t){let n=kn(e),r=kn(t);return n&&r||!n&&r?!0:!(n&&!r)}function bo(e,t,n,r){return zn(r)?yo(t,r)?Zo(e,n,r.items):oo():_o(e,t,r)}function xo(e,t,n){return Hn(n)?Zo(e,t,n.iteratorItems):_o(e,Vn(t),n)}function So(e,t,n){return qr(n)?io(e):_o(e,t,n)}function Co(e,t,n){return Jr(n)?io(e):_o(e,t,n)}function wo(e,t,n,r,i){let a=hr(r)?t:r,o=hr(r)?r:t,s=Nn(t),c=Nn(r);return!s&&c?oo():lo(Zo(e,a,o),e=>Do(e,n,i),()=>oo())}function To(e,t,n,r){return Gt(r,(r,i)=>wo(e,t,n,r,i),()=>Nn(t)?io(e):oo())}function Eo(e,t,n){return Gt(t,(t,r)=>To(e,t,r,n),()=>io(e))}function Do(e,t,n){return Eo(e,t,n)}function Oo(e,t,n){return sa(n)?io(e):Zo(e,t,n)}function ko(e,t,n,r){return Zn(r)||dr(r)?io(e):Wn(r)?lo(Do(e,t,r.parameters),e=>Oo(e,n,r.instanceType),()=>oo()):oo()}function Ao(e,t,n){return Zo(e,Ii(t),n)}function jo(e,t,n,r){return Zn(r)||dr(r)?io(e):Kn(r)?lo(Do(e,t,r.parameters),e=>Oo(e,n,r.returnType),()=>oo()):oo()}function Tte(e,t,n){return Zr(n)||mi(n)?io(e):_o(e,t,n)}function Ete(e,t,n){return Zo(e,Gi(t),n)}function Dte(e,t,n){return $r(n)?Zo(e,t,n.iteratorItems):_o(e,Qr(t),n)}function Mo(e,t,n){return t===n?io(e):oo()}function Ote(e,t,n){return li(n)?Mo(e,t,n.const):qr(n)?io(e):_o(e,ri(t),n)}function kte(e,t,n){return li(n)?Mo(e,t,n.const):Jr(n)?io(e):_o(e,ri(t),n)}function Ate(e,t,n){return li(n)?Mo(e,t,n.const):mi(n)?io(e):_o(e,ri(t),n)}function jte(e,t,n){return li(n)?Mo(e,t,n.const):vi(n)?io(e):_o(e,ri(t),n)}function Mte(e,t,n){return St(t.const)?Ote(e,t.const,n):Ct(t.const)?kte(e,t.const,n):Ot(t.const)?Ate(e,t.const,n):jt(t.const)?jte(e,t.const,n):br()}function Nte(e,t,n){return hr(n)?_o(e,t,n):io(e)}function Pte(e,t,n){return di(n)?io(e):_o(e,t,n)}function Fte(e,t,n){return mi(n)?io(e):_o(e,t,n)}function Ite(e,t,n){return Nn(t)?Nn(n)?io(e):oo():io(e)}function Lte(e,t,n){return hr(n)&&er(n.extends)?oo():lo(Zo(e,t,n),e=>Ite(e,t,n),()=>oo())}function Rte(e,t){return e.reduce((e,n)=>n in t&&co(t[n])?{...e,...t[n].inferred}:br(),{})}function zte(e,t,n){let r={};for(let i of Yt(n))r[i]=i in t?Lte({},t[i],n[i]):Nn(n[i])?hr(n[i])?io(ct(e,{[n[i].name]:n[i].extends})):io(e):oo();let i=Xt(r).every(e=>co(e)),a=i?Rte(Yt(r),r):{};return i?io(a):oo()}function Bte(e,t,n){let r=zte(e,t,n);return co(r)?io(ct(e,r.inferred)):oo()}function Vte(e,t,n){return Bte(e,t,n)}function Hte(e,t,n){return ar(n)?Vte(e,t,n.properties):_o(e,ir(t),n)}function Ute(e,t,n){return Tn(n)?Zo(e,t,n.item):_o(e,wn(t),n)}function Wte(e,t,n){return vi(n)?io(e):_o(e,t,n)}function Gte(e,t,n){return gi(n)?io(e):_o(e,t,n)}function Kte(e,t,n){return Zo(e,Mi(t),n)}function No(e,t){return pn({"~kind":`Inferrable`},{name:e,type:t},{})}function Po(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`name`)&&Kt(e,`type`)&&R(e[`~kind`],`Inferrable`)&&jt(e.name)&&At(e.type)}function Fo(e){return aa(e)?hr(e.items)?zn(e.items.extends)?No(e.items.name,e.items.extends.items):dr(e.items.extends)?No(e.items.name,e.items.extends):void 0:br():void 0}function Io(e){return hr(e)?No(e.name,e.extends):void 0}function Lo(e,t,n=[]){return Gt(e,(e,r)=>lo(Zo({},e,t),()=>Lo(r,t,[...n,e]),()=>void 0),()=>n)}function qte(e,t,n,r){let i=Lo(n,r);return bt(i)?io(ct(e,{[t]:Li(i)})):oo()}function Ro(e,t,n,r){let i=Lo(n,r);return bt(i)?io(ct(e,{[t]:sr(i)})):oo()}function Jte(e){return[...e].reverse()}function zo(e,t){return t?Jte(e):e}function Yte(e){let t=e.length>0?e[0]:void 0;return _n(_n(t)?Fo(t):void 0)}function Xte(e,t,n,r,i,a){return lo(Zo(e,n,i),e=>Vo(e,t,r,a),()=>oo())}function Zte(e,t,n,r,i){let a=Fo(r);return Po(a)?qte(e,a.name,zo(n,t),a.type):Gt(n,(n,a)=>Xte(e,t,n,a,r,i),()=>oo())}function Bo(e,t,n,r){return Gt(r,(r,i)=>Zte(e,t,n,r,i),()=>R(n.length,0)?io(e):oo())}function Vo(e,t,n,r){return Bo(e,t,n,r)}function Ho(e,t,n){let r=Uu(e,{callstack:[]},n),i=Yte(r);return Vo(e,i,zo(t,i),zo(r,i))}function Uo(e,t,n){let r=Io(n);return Po(r)?Ro(e,r.name,t,r.type):Gt(t,(t,r)=>lo(Zo(e,t,n),e=>Uo(e,r,n),()=>oo()),()=>io(e))}function Wo(e,t,n){let r=Uu(e,{callstack:[]},t);return Ri(n)?Ho(e,r,n.items):zn(n)?Uo(e,r,n.items):_o(e,Li(r),n)}function Go(e,t,n){return sa(n)||oa(n)?io(e):_o(e,t,n)}function Ko(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>io(e),()=>Ko(e,t,r)),()=>oo())}function qo(e,t,n){return Gt(t,(t,r)=>lo(Ko(e,t,n),e=>qo(e,r,n),()=>oo()),()=>io(e))}function Jo(e,t,n){let r=Io(n);return Po(r)?Ro(e,r.name,t,r.type):cr(n)?qo(e,t,n.anyOf):qo(e,t,[n])}function Yo(e,t,n){return hr(n)?_o(e,t,n):Zn(n)||dr(n)?io(e):oo()}function Xo(e,t,n){return sa(n)?io(e):_o(e,t,n)}function Zo(e,t,n){return Zn(t)?vo(e,t,n):zn(t)?bo(e,t,t.items,n):Hn(t)?xo(e,t.iteratorItems,n):qr(t)?So(e,t,n):Jr(t)?Co(e,t,n):Wn(t)?ko(e,t.parameters,t.instanceType,n):gr(t)?Ao(e,t,n):Kn(t)?jo(e,t.parameters,t.returnType,n):Zr(t)?Tte(e,t,n):vr(t)?Ete(e,t.allOf,n):$r(t)?Dte(e,t.iteratorItems,n):li(t)?Mte(e,t,n):er(t)?Nte(e,t,n):di(t)?Pte(e,t,n):mi(t)?Fte(e,t,n):ar(t)?Hte(e,t.properties,n):Tn(t)?Ute(e,t.item,n):vi(t)?Wte(e,t,n):gi(t)?Gte(e,t,n):to(t)?Kte(e,t.pattern,n):Ri(t)?Wo(e,t.items,n):oa(t)?Go(e,t,n):cr(t)?Jo(e,t.anyOf,n):dr(t)?Yo(e,t,n):sa(t)?Xo(e,t,n):oo()}function Qo(e,t){return Gi([...e,ir(t)])}function $o(e,t,n){return Ru(e)?hn(Qo(e,t),{},n):ts(e,t,n)}function es(e,t,n,r,i){return $o(Wu(e,t,n),Hu(e,t,r),i)}function ts(e,t,n={}){return Sn(`Interface`,[e,t],n)}function ns(e){return _n(e)&&Kt(e,`action`)&&R(e.action,`Interface`)}function rs(e,t,n){return e.includes(n)?!0:os([...e,n],t,t[n])}function is(e,t,n){return as(e,t,rr(n))}function as(e,t,n){return Gt(n,(n,r)=>os(e,t,n)?!0:as(e,t,r),()=>!1)}function os(e,t,n){return Jn(n)?rs(e,t,n.$ref):zn(n)?os(e,t,n.items):Hn(n)?os(e,t,n.iteratorItems):Wn(n)?as(e,t,[...n.parameters,n.instanceType]):Kn(n)?as(e,t,[...n.parameters,n.returnType]):ns(n)?is(e,t,n.parameters[1]):vr(n)?as(e,t,n.allOf):$r(n)?os(e,t,n.iteratorItems):ar(n)?is(e,t,n.properties):Tn(n)?os(e,t,n.item):cr(n)?as(e,t,n.anyOf):Ri(n)?as(e,t,n.items):ia(n)?os(e,t,ra(n)):!1}function ss(e,t,n){return os(e,t,n)}function cs(e,t){return t.reduce((t,n)=>n in e?ss([n],e,e[n])?[...t,n]:t:br(),[])}function ls(e){return cs(e,nr(e))}function us(e,t,n){return n.includes(t)?n:t in e?ps(e,e[t],[...n,t]):br()}function ds(e,t,n){return fs(e,rr(t),n)}function fs(e,t,n){return t.reduce((t,n)=>ps(e,n,t),n)}function ps(e,t,n){return Jn(t)?us(e,t.$ref,n):zn(t)?ps(e,t.items,n):Hn(t)?ps(e,t.iteratorItems,n):Wn(t)?fs(e,[...t.parameters,t.instanceType],n):Kn(t)?fs(e,[...t.parameters,t.returnType],n):ns(t)?ds(e,t.parameters[1],n):vr(t)?fs(e,t.allOf,n):$r(t)?ps(e,t.iteratorItems,n):ar(t)?ds(e,t.properties,n):Tn(t)?ps(e,t.item,n):cr(t)?fs(e,t.anyOf,n):Ri(t)?fs(e,t.items,n):ia(t)?ps(e,ra(t),n):n}function ms(e,t,n){return ps(e,n,[t])}function hs(e){return Xn()}function gs(e){return Yt(e).reduce((t,n)=>({...t,[n]:vs(e[n])}),{})}function _s(e){return e.reduce((e,t)=>[...e,vs(t)],[])}function vs(e){return Jn(e)?hs(e.$ref):zn(e)?Rn(vs(e.items),Bn(e)):Hn(e)?Vn(vs(e.iteratorItems)):Wn(e)?Un(_s(e.parameters),vs(e.instanceType)):Kn(e)?Gn(_s(e.parameters),vs(e.returnType)):vr(e)?_r(_s(e.allOf)):$r(e)?Qr(vs(e.iteratorItems)):ar(e)?ir(gs(e.properties)):Tn(e)?wn(vs(e.item)):ia(e)?tte(na(e),vs(ra(e))):cr(e)?sr(_s(e.anyOf)):Ri(e)?Li(_s(e.items)):e}function ys(e,t){return t in e?vs(e[t]):ur()}function bs(e){return ys(e.$defs,e.$ref)}function xs(e,t,n){let r=Wu(e,{callstack:[]},t),i=Hu({},{callstack:[]},n);return Gi([...r,ir(i)])}function Ss(e,t){return Yt(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=ns(r)?xs(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function Cs(e,t,n){return fr(Ss(e,ms(e,t,n)),t)}function ws(e,t){return t in e?Jn(e[t])?ws(e,e[t].$ref):e[t]:$n()}function Ts(e,t){return ws(e,t)}function Es(e){return pr(e)?bs(e):gee(e)?ur():e}function Ds(e,t,n){return Zo(e,Es(t),Es(n))}var Os=`equal`,ks=`disjoint`,As=`left-inside`,js=`right-inside`;function Ms(e,t){let n=[dr(e)?oo():Ds({},e,t),dr(e)?io({}):Ds({},t,e)];return co(n[0])&&co(n[1])?Os:co(n[0])&&so(n[1])?As:so(n[0])&&co(n[1])?js:ks}function Ns(e,t){return t.filter(t=>Ms(e,t)!==`right-inside`)}function Ps(e,t){return R(t.some(t=>{let n=Ms(e,t);return R(n,`left-inside`)||R(n,`equal`)}),!1)}function Fs(e,t){let n=qi(e);return Zn(n)?[n]:Ps(n,t)?[...Ns(n,t),n]:t}function Is(e){return e.reduce((e,t)=>ar(t)?[...e,t]:er(t)?e:Fs(t,e),[])}function Ls(e){let t=Yi(Is(e));return t.length===0?$n():t.length===1?t[0]:sr(t)}function Rs(e,t){return hn(qi(e),{},t)}function zs(e,t,n,r){return Rs(Ku(e,t,n),r)}function Bs(e,t=[]){return Cn(e)&&R(e.action,`Conditional`)?Jn(e.parameters[0])?Bs(e.parameters[2],Bs(e.parameters[3],[...t,e.parameters[0].$ref])):Bs(e.parameters[2],Bs(e.parameters[3],t)):Cn(e)&&R(e.action,`Mapped`)&&Cn(e.parameters[1])&&R(e.parameters[1].action,`KeyOf`)&&Jn(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function Vs(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function Hs(e,t,n=[]){return Gt(e,(e,r)=>Gt(t,(t,i)=>Hs(r,i,[...n,[t,e]]),()=>n),()=>n)}function Us(e){return cr(e)?[...e.anyOf]:[e]}function Ws(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function Gs(e,t){return t.reduce((t,n)=>[...t,...Ws(e,n)],[])}function Ks(e){return e.reduce((e,t)=>R(t[0],!0)?Gs(e,Us(t[1])):Gs(e,[t[1]]),[[]])}function qs(e,t,n){let r=Hs(t,Vs(e,Bs(n)));return Cn(n)&&R(n.action,`Conditional`)||Cn(n)&&R(n.action,`Mapped`)?Ks(r):[t]}function Js(){return[`(not-resolvable)`,$n()]}function Ys(){return[`(not-generic)`,$n()]}function Xs(e,t,n){return[e,mee(t,n)]}function Zs(e,t,n){return t in e?Qs(e,t,e[t],n):Js()}function Qs(e,t,n,r){return Yn(n)?Xs(t,n.parameters,n.expression):Jn(n)?Zs(e,n.$ref,r):Ys()}function $s(e,t,n){return Qs(e,`(anonymous)`,t,n)}function ec(e,t,n){if(hr(t)||fc(t)||co(Ds({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function tc(e,t,n,r,i){let a=Ku(e,t,i);return ec(n,a,r),ct(e,{[n]:a})}function nc(e,t,n,r,i){let a=Ku(e,t,n.extends),o=Ku(e,t,n.equals);return Gt(i,(i,o)=>rc(tc(e,t,n.name,a,i),t,r,o),()=>rc(tc(e,t,n.name,a,o),t,r,[]))}function rc(e,t,n,r){return Gt(n,(n,i)=>nc(e,t,n,i,r),()=>e)}function ic(e,t,n,r){return rc(e,t,n,r)}function ac(e){return Pt(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function oc(e,t){return R(ac(e),t)}function sc(e,t,n,r,i,a){return Ku(e,t,Ku(ic(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function cc(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,sc(e,t,n,r,i,o)],[])}function lc(e,t,n,r,i,a){let o=cc(e,t,n,r,i,qs(r,a,i));return R(o.length,1)?o[0]:Ki(o)}function uc(e,t,n,r){let i=Wu(e,t,r),a=$s(e,n,r),o=a[0],s=a[1];return Yn(s)?oc(t,o)?dc(qn(o),i):lc(e,t,qn(o),s.parameters,s.expression,i):dc(n,i)}function dc(e,t){return pn({"~kind":`Call`},{target:e,arguments:t},{})}function fc(e){return gn(e,`Call`)}function pc(e,t){return e(t)}function mc(e,t){return jt(t)?ri(pc(e,t)):ri(t)}function hc(e,t){return _c(e,Mi(t))}function gc(e,t){return sr(t.map(t=>_c(e,t)))}function _c(e,t){return li(t)?mc(e,t.const):to(t)?hc(e,t.pattern):cr(t)?gc(e,t.anyOf):t}function vc(e,t={}){return Sn(`Capitalize`,[e],t)}function yc(e,t={}){return Sn(`Lowercase`,[e],t)}function bc(e,t={}){return Sn(`Uncapitalize`,[e],t)}function xc(e,t={}){return Sn(`Uppercase`,[e],t)}var Sc=e=>e[0].toUpperCase()+e.slice(1),Cc=e=>e.toLowerCase(),wc=e=>e[0].toLowerCase()+e.slice(1),Tc=e=>e.toUpperCase();function Ec(e,t){return Ru([e])?hn(_c(Sc,e),{},t):vc(e,t)}function Dc(e,t){return Ru([e])?hn(_c(Cc,e),{},t):yc(e,t)}function Oc(e,t){return Ru([e])?hn(_c(wc,e),{},t):bc(e,t)}function kc(e,t){return Ru([e])?hn(_c(Tc,e),{},t):xc(e,t)}function Ac(e,t,n,r){return Ec(Ku(e,t,n),r)}function jc(e,t,n,r){return Dc(Ku(e,t,n),r)}function Mc(e,t,n,r){return Oc(Ku(e,t,n),r)}function Nc(e,t,n,r){return kc(Ku(e,t,n),r)}function Pc(e,t,n,r,i={}){return Sn(`Conditional`,[e,t,n,r],i)}function Fc(e,t,n,r,i,a){let o=Ds(e,n,r);return ro(o)?sr([Ku(o.inferred,t,i),Ku(e,t,a)]):ao(o)?Ku(o.inferred,t,i):Ku(e,t,a)}function Ic(e,t,n,r,i,a,o){return Ru([n,r])?hn(Fc(e,t,n,r,i,a),{},o):Pc(n,r,i,a,o)}function Lc(e,t,n,r,i,a,o){return Ic(e,t,Ku(e,t,n),Ku(e,t,r),i,a,o)}function Rc(e,t={}){return Sn(`ConstructorParameters`,[e],t)}function zc(e){return Li(Uu({},{callstack:[]},Wn(e)?e.parameters:[]))}function Bc(e,t){return Ru([e])?hn(zc(e),{},t):Rc(e,t)}function Vc(e,t,n,r){return Bc(Ku(e,t,n),r)}function Hc(e,t,n={}){return Sn(`Exclude`,[e,t],n)}function Uc(e,t){return e.reduce((e,n)=>[...e,...Wc(n,t)],[])}function Wc(e,t){return co(Ds({},e,t))?[]:[e]}function Qte(e,t){return Ki(gr(e)?Uc(Pi(e.enum),t):cr(e)?Uc(Yi(e.anyOf),t):Wc(e,t))}function Gc(e,t,n){return Ru([e,t])?hn(Qte(e,t),{},n):Hc(e,t,n)}function $te(e,t,n,r,i){return Gc(Ku(e,t,n),Ku(e,t,r),i)}function ene(e,t,n={}){return Sn(`Extract`,[e,t],n)}function Kc(e,t){return e.reduce((e,n)=>[...e,...qc(n,t)],[])}function qc(e,t){return co(Ds({},e,t))?[e]:[]}function tne(e,t){return Ki(gr(e)?Kc(Pi(e.enum),t):cr(e)?Kc(Yi(e.anyOf),t):qc(e,t))}function nne(e,t,n){return Ru([e,t])?hn(tne(e,t),{},n):ene(e,t,n)}function rne(e,t,n,r,i){return nne(Ku(e,t,n),Ku(e,t,r),i)}function ine(e,t,n={}){return Sn(`Index`,[e,t],n)}function ane(e,t){return Yc(Ts(e,t))}function one(e,t){let n=Yt(e).filter(e=>!Kt(t,e)),r=Yt(t).filter(t=>!Kt(e,t)),i=Yt(e).filter(e=>Kt(t,e)),a=n.reduce((t,n)=>({...t,[n]:e[n]}),{}),o=r.reduce((e,n)=>({...e,[n]:t[n]}),{}),s=i.reduce((n,r)=>({...n,[r]:Gi([e[r],t[r]])}),{});return ct(ct(a,o),s)}function sne(e){return e.reduce((e,t)=>one(e,Yc(t)),{})}function cne(e){return e}function lne(e){return Yc(Mee(Li(e)))}function une(e,t){return Yt(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:Ki([e[r],t[r]])}),{})}function Jc(e,t){return Gt(e,(e,n)=>Jc(n,une(t,Yc(e))),()=>t)}function dne(e){return Gt(e,(e,t)=>Jc(t,Yc(e)),()=>br())}function Yc(e){return pr(e)?ane(e.$defs,e.$ref):vr(e)?sne(e.allOf):cr(e)?dne(e.anyOf):Ri(e)?lne(e.items):ar(e)?cne(e.properties):{}}function Xc(e){return ir(Yc(e))}var fne=RegExp(`^(?:0|[1-9][0-9]*)$`);function Zc(e){let t=`${e}`;return fne.test(t)?parseInt(t):e}function pne(e){return ri(Zc(e))}function Qc(e){return e.map(e=>$c(e))}function $c(e){return vr(e)?_r(Qc(e.allOf)):cr(e)?sr(Qc(e.anyOf)):li(e)?pne(e.const):e}function mne(e,t){return co(Ds({},$c(t),pi()))?e:li(t)&&R(t.const,`length`)?pi():$n()}function hne(e,t){return tl(Ts(e,t))}function el(e){return e.reduce((e,t)=>[...e,...tl(t)],[])}function gne(e){return el(Pi(e))}function _ne(e){return tl(Gi(e))}function vne(e){return[`${e}`]}function yne(e){return tl(Mi(e))}function tl(e){return pr(e)?hne(e.$defs,e.$ref):gr(e)?gne(e.enum):vr(e)?_ne(e.allOf):li(e)?vne(e.const):to(e)?yne(e.pattern):cr(e)?el(e.anyOf):[]}function nl(e){return tl(e)}function rl(e,t){return t.map(t=>il(e,t))}function il(e,t){return zn(t)?Rn(il(e,t.items)):Hn(t)?Vn(il(e,t.iteratorItems)):Wn(t)?Un(rl(e,t.parameters),il(e,t.instanceType)):Kn(t)?Gn(rl(e,t.parameters),il(e,t.returnType)):$r(t)?Qr(il(e,t.iteratorItems)):Tn(t)?wn(il(e,t.item)):Ri(t)?Li(rl(e,t.items)):cr(t)?sr(rl(e,t.anyOf)):vr(t)?_r(rl(e,t.allOf)):ite(t)?ir(e):t}function bne(e,t){return il(e,t)}function xne(e,t){return bne(e,t in e?e[t]:$n())}function al(e,t){return t.reduce((t,n)=>[...t,xne(e,n)],[])}function Sne(e,t){return Ki(al(e,nl(t)))}var Cne=new RegExp(Qi);function wne(e){return e.filter(e=>Cne.test(e))}function Tne(e){return Ki(al(e,wne(nr(e))))}function Ene(e,t){return mi(t)?Tne(e):Sne(e,t)}function Dne(e){return ri(Zc(e))}function ol(e){return e.map(e=>sl(e))}function sl(e){return vr(e)?_r(ol(e.allOf)):cr(e)?sr(ol(e.anyOf)):li(e)?Dne(e.const):e}function One(e,t){return e.reduceRight((e,n,r)=>co(Ds({},ri(r),t))?[n,...e]:e,[])}function kne(e,t){return Ji(One(e,sl(t)))}function Ane(e){return Ji(e)}function jne(e,t){return li(t)&&R(t.const,`length`)?ri(e.length):mi(t)||Zr(t)?Ane(e):kne(e,t)}function Mne(e,t){return zn(e)?mne(e.items,t):ar(e)?Ene(e.properties,t):Ri(e)?jne(e.items,t):$n()}function Nne(e){return pr(e)||vr(e)||cr(e)?Xc(e):e}function Pne(e,t,n){return Ru([e,t])?hn(Mne(Nne(e),t),{},n):ine(e,t,n)}function Fne(e,t,n,r,i){return Pne(Ku(e,t,n),Ku(e,t,r),i)}function Ine(e,t={}){return Sn(`InstanceType`,[e],t)}function Lne(e){return Wn(e)?e.instanceType:$n()}function Rne(e,t){return Ru([e])?hn(Lne(e),{},t):Ine(e,t)}function zne(e,t,n,r={}){return Rne(Ku(e,t,n),r)}function cl(e,t={}){return Sn(`KeyOf`,[e],t)}function ll(){return sr([pi(),_i(),hi()])}function ul(e){return pi()}function dl(e){return e.reduce((e,t)=>ii(t)?[...e,ri(Zc(t))]:br(),[])}function fl(e){return Ji(dl(Yt(e)))}function pl(e){return na(e)}function ml(e){return Ji(e.map((e,t)=>ri(t)))}function hl(e){return Zn(e)?ll():zn(e)?ul(e.items):ar(e)?fl(e.properties):ia(e)?pl(e):Ri(e)?ml(e.items):$n()}function gl(e){return pr(e)||vr(e)||cr(e)?Xc(e):e}function _l(e,t){return Ru([e])?hn(hl(gl(e)),{},t):cl(e,t)}function vl(e,t,n,r){return _l(Ku(e,t,n),r)}function yl(e,t,n,r,i={}){return Sn(`Mapped`,[e,t,n,r],i)}function bl(e){return Cl(Mi(e))}function xl(e){return e.reduce((e,t)=>[...e,...Cl(t)],[])}function Sl(e){return Ot(e)?[ri(`${e}`)]:[ri(e)]}function Cl(e){return gr(e)?xl(Pi(e.enum)):li(e)?Sl(e.const):to(e)?bl(e.pattern):cr(e)?xl(e.anyOf):[e]}function wl(e){return Cl(e)}function Tl(e){return to(e)?Mi(e.pattern):e}function El(e,t,n,r,i,a){let o=ct(e,{[n.name]:r}),s=Tl(Ku(o,t,i)),c=Ku(o,t,a);return si(s)||ci(s)?{[s.const]:c}:{}}function Dl(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,El(e,t,n,o,i,a)],[])}function Ol(e){return e.reduce((e,t)=>[...e,ir(t)],[])}function kl(e,t,n,r,i,a){return Gi(Ol(Dl(e,t,n,wl(r),i,a)))}function Al(e,t,n,r,i,a,o){return Ru([r])?hn(kl(e,t,n,r,i,a),{},o):yl(n,r,i,a,o)}function jl(e,t,n,r,i,a,o){return Al(e,t,n,Ku(e,t,r),i,a,o)}function Ml(e,t){return Yt(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:Cs(e,n,e[n])}),{})}function Nl(e,t){return Yt(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:Ku(e,{callstack:[]},e[n])}),{})}function Pl(e,t){let n=ls(e),r=Ml(e,n),i=Nl(e,n);return hn({...r,...i},{},t)}function Fl(e,t,n,r){return Pl(ct(e,n),r)}function Il(e,t={}){return Sn(`NonNullable`,[e],t)}function Ll(e){return Gc(e,sr([ui(),ate()]),{})}function Rl(e,t){return Ru([e])?hn(Ll(e),{},t):Il(e,t)}function zl(e,t,n,r){return Rl(Ku(e,t,n),r)}function Bl(e,t,n={}){return Sn(`Omit`,[e,t],n)}function Vl(e){let t=Xc(e);return ar(t)?t.properties:br()}function Hl(e,t){return Yt(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Ul(e,t){return ir(Hl(Vl(e),nl(t)))}function Wl(e,t,n){return Ru([e,t])?hn(Ul(e,t),{},n):Bl(e,t,n)}function Gl(e,t,n,r,i){return Wl(Ku(e,t,n),Ku(e,t,r),i)}function Kl(e,t){return Sn(`Options`,[e,t],{})}function ql(e,t){return Jl(e,t)}function Jl(e,t){return Ru([e])?hn(e,{},t):Kl(e,t)}function Yl(e,t,n,r){return Jl(Ku(e,t,n),r)}function Xl(e,t={}){return Sn(`Parameters`,[e],t)}function Zl(e){return Li(Uu({},{callstack:[]},Kn(e)?e.parameters:[]))}function Ql(e,t){return Ru([e])?hn(Zl(e),{},t):Xl(e,t)}function $l(e,t,n,r){return Ql(Ku(e,t,n),r)}function eu(e,t={}){return Sn(`Partial`,[e],t)}function tu(e,t){let n=au(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function nu(e){return Gi(e.map(e=>au(e)))}function ru(e){return sr(e.map(e=>au(e)))}function iu(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:Mn(e[n])}),{}))}function au(e){return pr(e)?tu(e.$defs,e.$ref):vr(e)?nu(e.allOf):cr(e)?ru(e.anyOf):ar(e)?iu(e.properties):ir({})}function ou(e,t){return Ru([e])?hn(au(e),{},t):eu(e,t)}function su(e,t,n,r){return ou(Ku(e,t,n),r)}function cu(e,t,n={}){return Sn(`Pick`,[e,t],n)}function lu(e,t){return Yt(e).reduce((n,r)=>t.includes(r)?ct(n,{[r]:e[r]}):n,{})}function uu(e,t){return ir(lu(Vl(e),nl(t)))}function du(e,t,n){return Ru([e,t])?hn(uu(e,t),{},n):cu(e,t,n)}function fu(e,t,n,r,i){return du(Ku(e,t,n),Ku(e,t,r),i)}function pu(e,t={}){return Sn(`ReadonlyObject`,[e],t)}function mu(e){return On(Rn(e))}function hu(e,t){let n=bu(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function gu(e){return Gi(e.map(e=>bu(e)))}function _u(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:uee(e[n])}),{}))}function vu(e){return On(Li(e))}function yu(e){return sr(e.map(e=>bu(e)))}function bu(e){return zn(e)?mu(e.items):pr(e)?hu(e.$defs,e.$ref):vr(e)?gu(e.allOf):ar(e)?_u(e.properties):Ri(e)?vu(e.items):cr(e)?yu(e.anyOf):e}function xu(e,t){return Ru([e])?hn(bu(e),{},t):pu(e)}function Su(e,t,n,r){return xu(Ku(e,t,n),r)}function Cu(e,t,n,r){return r in e?ss([r],e,e[r])?n:Ku(e,t,e[r]):n}function wu(e,t){let n=Ou(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function Tu(e){return Gi(e.map(e=>Ou(e)))}function Eu(e){return sr(e.map(e=>Ou(e)))}function Du(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:An(e[n])}),{}))}function Ou(e){return pr(e)?wu(e.$defs,e.$ref):vr(e)?Tu(e.allOf):cr(e)?Eu(e.anyOf):ar(e)?Du(e.properties):ir({})}function ku(e,t={}){return Sn(`Required`,[e],t)}function Au(e,t){return Ru([e])?hn(Ou(e),{},t):ku(e,t)}function ju(e,t,n,r){return Au(Ku(e,t,n),r)}function Mu(e,t={}){return Sn(`ReturnType`,[e],t)}function Nu(e){return Kn(e)?e.returnType:$n()}function Pu(e,t){return Ru([e])?hn(Nu(e),{},t):Mu(e,t)}function Fu(e,t,n,r={}){return Pu(Ku(e,t,n),r)}function Iu(e){return aa(e)?Ri(e.items)?Lu(e.items.items):hr(e.items)||Jn(e.items)?[e]:[$n()]:[e]}function Lu(e){return e.reduce((e,t)=>[...e,...Iu(t)],[])}function Ru(e){return Gt(e,(e,t)=>Jn(e)?!1:Ru(t),()=>!0)}function zu(e,t,n){return xn(e)?zu(e.type,`remove`,n):yn(e)?zu(e.type,t,`remove`):bn(e)?zu(e.type,`add`,n):vn(e)?zu(e.type,t,`add`):[e,t,n]}function Bu(e,t){return R(e,`remove`)?Pn(t):R(e,`add`)?Fn(t):t}function Vu(e,t){return R(e,`remove`)?An(t):R(e,`add`)?jn(t):t}function Hu(e,t,n){return Yt(n).reduce((r,i)=>({...r,[i]:Ku(e,t,n[i])}),{})}function Uu(e,t,n){return Lu(Wu(e,t,n))}function Wu(e,t,n){return n.map(n=>Ku(e,t,n))}function Gu(e,t,n,r,i){return R(n,`Awaited`)?Xu(e,t,r[0],i):R(n,`Capitalize`)?Ac(e,t,r[0],i):R(n,`Conditional`)?Lc(e,t,r[0],r[1],r[2],r[3],i):R(n,`ConstructorParameters`)?Vc(e,t,r[0],i):R(n,`Evaluate`)?zs(e,t,r[0],i):R(n,`Exclude`)?$te(e,t,r[0],r[1],i):R(n,`Extract`)?rne(e,t,r[0],r[1],i):R(n,`Index`)?Fne(e,t,r[0],r[1],i):R(n,`InstanceType`)?zne(e,t,r[0],i):R(n,`Interface`)?es(e,t,r[0],r[1],i):R(n,`KeyOf`)?vl(e,t,r[0],i):R(n,`Lowercase`)?jc(e,t,r[0],i):R(n,`Mapped`)?jl(e,t,r[0],r[1],r[2],r[3],i):R(n,`Module`)?Fl(e,t,r[0],i):R(n,`NonNullable`)?zl(e,t,r[0],i):R(n,`Pick`)?fu(e,t,r[0],r[1],i):R(n,`Options`)?Yl(e,t,r[0],r[1]):R(n,`Parameters`)?$l(e,t,r[0],i):R(n,`Partial`)?su(e,t,r[0],i):R(n,`Omit`)?Gl(e,t,r[0],r[1],i):R(n,`ReadonlyObject`)?Su(e,t,r[0],i):R(n,`Record`)?$ee(e,t,r[0],r[1],i):R(n,`Required`)?ju(e,t,r[0],i):R(n,`ReturnType`)?Fu(e,t,r[0],i):R(n,`TemplateLiteral`)?Qa(e,t,r[0],i):R(n,`Uncapitalize`)?Mc(e,t,r[0],i):R(n,`Uppercase`)?Nc(e,t,r[0],i):Sn(n,r,i)}function Ku(e,t,n){let r=kn(n),i=zu(n,In(n)?`add`:`none`,Nn(n)?`add`:`none`),a=Ln(i[0])?i[0].Clone():i[0],o=Jn(a)?Cu(e,t,a,a.$ref):zn(a)?Rn(Ku(e,t,a.items),Bn(a)):Hn(a)?Vn(Ku(e,t,a.iteratorItems),dee(a)):fc(a)?uc(e,t,a.target,a.arguments):Wn(a)?Un(Wu(e,t,a.parameters),Ku(e,t,a.instanceType),fee(a)):Cn(a)?Gu(e,t,a.action,a.parameters,a.options):Kn(a)?Gn(Wu(e,t,a.parameters),Ku(e,t,a.returnType),pee(a)):vr(a)?_r(Wu(e,t,a.allOf),yr(a)):$r(a)?Qr(Ku(e,t,a.iteratorItems),ei(a)):ar(a)?ir(Hu(e,t,a.properties),or(a)):Tn(a)?wn(Ku(e,t,a.item),En(a)):ia(a)?nte(ta(a),Ku(e,t,ra(a))):aa(a)?rte(Ku(e,t,a.items)):Ri(a)?Li(Uu(e,t,a.items),jee(a)):cr(a)?sr(Wu(e,t,a.anyOf),lr(a)):a,s=r?On(o):o;return Bu(i[1],Vu(i[2],s))}function qu(e,t){return Ku(e,{callstack:[]},t)}function Ju(e){return Tn(e)?Ju(e.item):e}function Yu(e,t){return Ru([e])?hn(Ju(e),{},t):Zu(e,t)}function Xu(e,t,n,r){return Yu(Ku(e,t,n),r)}function Zu(e,t={}){return Sn(`Awaited`,[e],t)}function Qu(e,t={}){return Rs(e,t)}var $u=new Map;function ed(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function td(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function nd(e,t){$u.set(e.api,{provider:{api:e.api,stream:ed(e.api,e.stream),streamSimple:td(e.api,e.streamSimple)},sourceId:t})}function rd(e){return $u.get(e)?.provider}var id=`modulepreload`,ad=function(e){return`/`+e},od={},sd=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ad(t,n),t in od)return;od[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:id,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},cd=n(((e,t)=>{t.exports={}})),ld=null,ud=null,dd=null,fd=e=>sd(()=>import(e),[]);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(fd(`node:fs`).then(e=>{ld=e.existsSync}),fd(`node:os`).then(e=>{ud=e.homedir}),fd(`node:path`).then(e=>{dd=e.join}));var pd=null;function md(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(pd===null){pd=new Map;try{let{readFileSync:e}=cd(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&pd.set(e.slice(0,t),e.slice(t+1))}}catch{}}return pd.get(e)}}var hd=null;function gd(){if(hd===null){if(!ld||!ud||!dd)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(hd=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||md(`GOOGLE_APPLICATION_CREDENTIALS`);hd=ld(e||dd(ud(),`.config`,`gcloud`,`application_default_credentials.json`))}return hd}function _d(e){if(e===`github-copilot`)return[`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`];if(e===`anthropic`)return[`ANTHROPIC_OAUTH_TOKEN`,`ANTHROPIC_API_KEY`];let t={openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`}[e];return t?[t]:void 0}function vd(e){let t=_d(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!md(e));return n.length>0?n:void 0}function yd(e){let t=vd(e);if(t?.[0])return{}[t[0]]||md(t[0]);if(e===`google-vertex`){let e=gd(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||md(`GOOGLE_CLOUD_PROJECT`)||md(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||md(`GOOGLE_CLOUD_LOCATION`));if(e&&t&&n)return`<authenticated>`}if(e===`amazon-bedrock`&&({}.AWS_PROFILE||{}.AWS_ACCESS_KEY_ID&&{}.AWS_SECRET_ACCESS_KEY||{}.AWS_BEARER_TOKEN_BEDROCK||{}.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||{}.AWS_CONTAINER_CREDENTIALS_FULL_URI||{}.AWS_WEB_IDENTITY_TOKEN_FILE||md(`AWS_PROFILE`)||md(`AWS_ACCESS_KEY_ID`)&&md(`AWS_SECRET_ACCESS_KEY`)||md(`AWS_BEARER_TOKEN_BEDROCK`)||md(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||md(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||md(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}var bd={"amazon-bedrock":{"amazon.nova-2-lite-v1:0":{id:`amazon.nova-2-lite-v1:0`,name:`Nova 2 Lite`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.33,output:2.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"amazon.nova-lite-v1:0":{id:`amazon.nova-lite-v1:0`,name:`Nova Lite`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.06,output:.24,cacheRead:.015,cacheWrite:0},contextWindow:3e5,maxTokens:8192},"amazon.nova-micro-v1:0":{id:`amazon.nova-micro-v1:0`,name:`Nova Micro`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.035,output:.14,cacheRead:.00875,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"amazon.nova-premier-v1:0":{id:`amazon.nova-premier-v1:0`,name:`Nova Premier`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:12.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:16384},"amazon.nova-pro-v1:0":{id:`amazon.nova-pro-v1:0`,name:`Nova Pro`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:3e5,maxTokens:8192},"anthropic.claude-3-5-haiku-20241022-v1:0":{id:`anthropic.claude-3-5-haiku-20241022-v1:0`,name:`Claude Haiku 3.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-5-sonnet-20240620-v1:0":{id:`anthropic.claude-3-5-sonnet-20240620-v1:0`,name:`Claude Sonnet 3.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-5-sonnet-20241022-v2:0":{id:`anthropic.claude-3-5-sonnet-20241022-v2:0`,name:`Claude Sonnet 3.5 v2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-7-sonnet-20250219-v1:0":{id:`anthropic.claude-3-7-sonnet-20250219-v1:0`,name:`Claude Sonnet 3.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-haiku-20240307-v1:0":{id:`anthropic.claude-3-haiku-20240307-v1:0`,name:`Claude Haiku 3`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:4096},"anthropic.claude-haiku-4-5-20251001-v1:0":{id:`anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-opus-4-1-20250805-v1:0":{id:`anthropic.claude-opus-4-1-20250805-v1:0`,name:`Claude Opus 4.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic.claude-opus-4-20250514-v1:0":{id:`anthropic.claude-opus-4-20250514-v1:0`,name:`Claude Opus 4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic.claude-opus-4-5-20251101-v1:0":{id:`anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-opus-4-6-v1":{id:`anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic.claude-opus-4-7":{id:`anthropic.claude-opus-4-7`,name:`Claude Opus 4.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic.claude-sonnet-4-20250514-v1:0":{id:`anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-sonnet-4-6":{id:`anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"au.anthropic.claude-opus-4-6-v1":{id:`au.anthropic.claude-opus-4-6-v1`,name:`AU Anthropic Claude Opus 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:16.5,output:82.5,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"au.anthropic.claude-sonnet-4-6":{id:`au.anthropic.claude-sonnet-4-6`,name:`AU Anthropic Claude Sonnet 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3},"deepseek.r1-v1:0":{id:`deepseek.r1-v1:0`,name:`DeepSeek-R1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:32768},"deepseek.v3-v1:0":{id:`deepseek.v3-v1:0`,name:`DeepSeek-V3.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.58,output:1.68,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:81920},"deepseek.v3.2":{id:`deepseek.v3.2`,name:`DeepSeek-V3.2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:81920},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`eu.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{id:`eu.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-opus-4-6-v1":{id:`eu.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"eu.anthropic.claude-opus-4-7":{id:`eu.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{id:`eu.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`eu.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-sonnet-4-6":{id:`eu.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`global.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-opus-4-5-20251101-v1:0":{id:`global.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-opus-4-6-v1":{id:`global.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"global.anthropic.claude-opus-4-7":{id:`global.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"global.anthropic.claude-sonnet-4-20250514-v1:0":{id:`global.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`global.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-sonnet-4-6":{id:`global.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"google.gemma-3-27b-it":{id:`google.gemma-3-27b-it`,name:`Google Gemma 3 27B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.12,output:.2,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:8192},"google.gemma-3-4b-it":{id:`google.gemma-3-4b-it`,name:`Gemma 3 4B IT`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.04,output:.08,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-405b-instruct-v1:0":{id:`meta.llama3-1-405b-instruct-v1:0`,name:`Llama 3.1 405B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:2.4,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-70b-instruct-v1:0":{id:`meta.llama3-1-70b-instruct-v1:0`,name:`Llama 3.1 70B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-8b-instruct-v1:0":{id:`meta.llama3-1-8b-instruct-v1:0`,name:`Llama 3.1 8B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:.22,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-2-11b-instruct-v1:0":{id:`meta.llama3-2-11b-instruct-v1:0`,name:`Llama 3.2 11B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.16,output:.16,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-2-1b-instruct-v1:0":{id:`meta.llama3-2-1b-instruct-v1:0`,name:`Llama 3.2 1B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"meta.llama3-2-3b-instruct-v1:0":{id:`meta.llama3-2-3b-instruct-v1:0`,name:`Llama 3.2 3B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"meta.llama3-2-90b-instruct-v1:0":{id:`meta.llama3-2-90b-instruct-v1:0`,name:`Llama 3.2 90B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-3-70b-instruct-v1:0":{id:`meta.llama3-3-70b-instruct-v1:0`,name:`Llama 3.3 70B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama4-maverick-17b-instruct-v1:0":{id:`meta.llama4-maverick-17b-instruct-v1:0`,name:`Llama 4 Maverick 17B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.24,output:.97,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:16384},"meta.llama4-scout-17b-instruct-v1:0":{id:`meta.llama4-scout-17b-instruct-v1:0`,name:`Llama 4 Scout 17B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.17,output:.66,cacheRead:0,cacheWrite:0},contextWindow:35e5,maxTokens:16384},"minimax.minimax-m2":{id:`minimax.minimax-m2`,name:`MiniMax M2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204608,maxTokens:128e3},"minimax.minimax-m2.1":{id:`minimax.minimax-m2.1`,name:`MiniMax M2.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax.minimax-m2.5":{id:`minimax.minimax-m2.5`,name:`MiniMax M2.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:98304},"mistral.devstral-2-123b":{id:`mistral.devstral-2-123b`,name:`Devstral 2 123B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.magistral-small-2509":{id:`mistral.magistral-small-2509`,name:`Magistral Small 1.2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e4},"mistral.ministral-3-14b-instruct":{id:`mistral.ministral-3-14b-instruct`,name:`Ministral 14B 3.0`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.2,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.ministral-3-3b-instruct":{id:`mistral.ministral-3-3b-instruct`,name:`Ministral 3 3B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.ministral-3-8b-instruct":{id:`mistral.ministral-3-8b-instruct`,name:`Ministral 3 8B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.mistral-large-3-675b-instruct":{id:`mistral.mistral-large-3-675b-instruct`,name:`Mistral Large 3`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.pixtral-large-2502-v1:0":{id:`mistral.pixtral-large-2502-v1:0`,name:`Pixtral Large (25.02)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"mistral.voxtral-mini-3b-2507":{id:`mistral.voxtral-mini-3b-2507`,name:`Voxtral Mini 3B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.04,output:.04,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.voxtral-small-24b-2507":{id:`mistral.voxtral-small-24b-2507`,name:`Voxtral Small 24B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.35,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:8192},"moonshot.kimi-k2-thinking":{id:`moonshot.kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"moonshotai.kimi-k2.5":{id:`moonshotai.kimi-k2.5`,name:`Kimi K2.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"nvidia.nemotron-nano-12b-v2":{id:`nvidia.nemotron-nano-12b-v2`,name:`NVIDIA Nemotron Nano 12B v2 VL BF16`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-nano-3-30b":{id:`nvidia.nemotron-nano-3-30b`,name:`NVIDIA Nemotron Nano 3 30B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-nano-9b-v2":{id:`nvidia.nemotron-nano-9b-v2`,name:`NVIDIA Nemotron Nano 9B v2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.06,output:.23,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-super-3-120b":{id:`nvidia.nemotron-super-3-120b`,name:`NVIDIA Nemotron 3 Super 120B A12B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.15,output:.65,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"openai.gpt-oss-120b-1:0":{id:`openai.gpt-oss-120b-1:0`,name:`gpt-oss-120b`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-20b-1:0":{id:`openai.gpt-oss-20b-1:0`,name:`gpt-oss-20b`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-safeguard-120b":{id:`openai.gpt-oss-safeguard-120b`,name:`GPT OSS Safeguard 120B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-safeguard-20b":{id:`openai.gpt-oss-safeguard-20b`,name:`GPT OSS Safeguard 20B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.07,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"qwen.qwen3-235b-a22b-2507-v1:0":{id:`qwen.qwen3-235b-a22b-2507-v1:0`,name:`Qwen3 235B A22B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:.88,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"qwen.qwen3-32b-v1:0":{id:`qwen.qwen3-32b-v1:0`,name:`Qwen3 32B (dense)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"qwen.qwen3-coder-30b-a3b-v1:0":{id:`qwen.qwen3-coder-30b-a3b-v1:0`,name:`Qwen3 Coder 30B A3B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"qwen.qwen3-coder-480b-a35b-v1:0":{id:`qwen.qwen3-coder-480b-a35b-v1:0`,name:`Qwen3 Coder 480B A35B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen.qwen3-coder-next":{id:`qwen.qwen3-coder-next`,name:`Qwen3 Coder Next`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.22,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen.qwen3-next-80b-a3b":{id:`qwen.qwen3-next-80b-a3b`,name:`Qwen/Qwen3-Next-80B-A3B-Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.14,output:1.4,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"qwen.qwen3-vl-235b-a22b":{id:`qwen.qwen3-vl-235b-a22b`,name:`Qwen/Qwen3-VL-235B-A22B-Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.3,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`us.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-opus-4-1-20250805-v1:0":{id:`us.anthropic.claude-opus-4-1-20250805-v1:0`,name:`Claude Opus 4.1 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"us.anthropic.claude-opus-4-20250514-v1:0":{id:`us.anthropic.claude-opus-4-20250514-v1:0`,name:`Claude Opus 4 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"us.anthropic.claude-opus-4-5-20251101-v1:0":{id:`us.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-opus-4-6-v1":{id:`us.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"us.anthropic.claude-opus-4-7":{id:`us.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"us.anthropic.claude-sonnet-4-20250514-v1:0":{id:`us.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`us.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-sonnet-4-6":{id:`us.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"writer.palmyra-x4-v1:0":{id:`writer.palmyra-x4-v1:0`,name:`Palmyra X4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:122880,maxTokens:8192},"writer.palmyra-x5-v1:0":{id:`writer.palmyra-x5-v1:0`,name:`Palmyra X5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:6,cacheRead:0,cacheWrite:0},contextWindow:104e4,maxTokens:8192},"zai.glm-4.7":{id:`zai.glm-4.7`,name:`GLM-4.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"zai.glm-4.7-flash":{id:`zai.glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.07,output:.4,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072},"zai.glm-5":{id:`zai.glm-5`,name:`GLM-5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:101376}},anthropic:{"claude-3-5-haiku-20241022":{id:`claude-3-5-haiku-20241022`,name:`Claude Haiku 3.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-5-haiku-latest":{id:`claude-3-5-haiku-latest`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-5-sonnet-20240620":{id:`claude-3-5-sonnet-20240620`,name:`Claude Sonnet 3.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-3-5-sonnet-20241022":{id:`claude-3-5-sonnet-20241022`,name:`Claude Sonnet 3.5 v2`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-3-7-sonnet-20250219":{id:`claude-3-7-sonnet-20250219`,name:`Claude Sonnet 3.7`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-3-haiku-20240307":{id:`claude-3-haiku-20240307`,name:`Claude Haiku 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3-opus-20240229":{id:`claude-3-opus-20240229`,name:`Claude Opus 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:4096},"claude-3-sonnet-20240229":{id:`claude-3-sonnet-20240229`,name:`Claude Sonnet 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-haiku-4-5-20251001":{id:`claude-haiku-4-5-20251001`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-0":{id:`claude-opus-4-0`,name:`Claude Opus 4 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-1":{id:`claude-opus-4-1`,name:`Claude Opus 4.1 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-1-20250805":{id:`claude-opus-4-1-20250805`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-20250514":{id:`claude-opus-4-20250514`,name:`Claude Opus 4`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-5":{id:`claude-opus-4-5`,name:`Claude Opus 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-5-20251101":{id:`claude-opus-4-5-20251101`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6":{id:`claude-opus-4-6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-opus-4-7":{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-sonnet-4-0":{id:`claude-sonnet-4-0`,name:`Claude Sonnet 4 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-20250514":{id:`claude-sonnet-4-20250514`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5-20250929":{id:`claude-sonnet-4-5-20250929`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3}},"azure-openai-responses":{"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"gpt-4-turbo":{id:`gpt-4-turbo`,name:`GPT-4 Turbo`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-mini":{id:`gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-nano":{id:`gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-05-13":{id:`gpt-4o-2024-05-13`,name:`GPT-4o (2024-05-13)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o-2024-08-06":{id:`gpt-4o-2024-08-06`,name:`GPT-4o (2024-08-06)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-11-20":{id:`gpt-4o-2024-11-20`,name:`GPT-4o (2024-11-20)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-mini":{id:`gpt-4o-mini`,name:`GPT-4o mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-chat-latest":{id:`gpt-5-chat-latest`,name:`GPT-5 Chat Latest`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5-Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5 Mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-pro":{id:`gpt-5-pro`,name:`GPT-5 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-chat-latest":{id:`gpt-5.1-chat-latest`,name:`GPT-5.1 Chat`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-chat-latest":{id:`gpt-5.2-chat-latest`,name:`GPT-5.2 Chat`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-pro":{id:`gpt-5.2-pro`,name:`GPT-5.2 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-chat-latest":{id:`gpt-5.3-chat-latest`,name:`GPT-5.3 Chat (latest)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o1-pro":{id:`o1-pro`,name:`o1-pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:150,output:600,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-deep-research":{id:`o3-deep-research`,name:`o3-deep-research`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-pro":{id:`o3-pro`,name:`o3-pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini":{id:`o4-mini`,name:`o4-mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini-deep-research":{id:`o4-mini-deep-research`,name:`o4-mini-deep-research`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5}},cerebras:{"gpt-oss-120b":{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.25,output:.69,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"llama3.1-8b":{id:`llama3.1-8b`,name:`Llama 3.1 8B`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:8e3},"qwen-3-235b-a22b-instruct-2507":{id:`qwen-3-235b-a22b-instruct-2507`,name:`Qwen 3 235B Instruct`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:.6,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:32e3},"zai-glm-4.7":{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2.25,output:2.75,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4e4}},deepseek:{"deepseek-v4-flash":{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`openai-completions`,provider:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{minimal:`high`,low:`high`,medium:`high`,high:`high`,xhigh:`max`}},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek-v4-pro":{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{minimal:`high`,low:`high`,medium:`high`,high:`high`,xhigh:`max`}},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.145,cacheWrite:0},contextWindow:1e6,maxTokens:384e3}},fireworks:{"accounts/fireworks/models/deepseek-v3p1":{id:`accounts/fireworks/models/deepseek-v3p1`,name:`DeepSeek V3.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:163840},"accounts/fireworks/models/deepseek-v3p2":{id:`accounts/fireworks/models/deepseek-v3p2`,name:`DeepSeek V3.2`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:.28,cacheWrite:0},contextWindow:16e4,maxTokens:16e4},"accounts/fireworks/models/glm-4p5":{id:`accounts/fireworks/models/glm-4p5`,name:`GLM 4.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.55,output:2.19,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"accounts/fireworks/models/glm-4p5-air":{id:`accounts/fireworks/models/glm-4p5-air`,name:`GLM 4.5 Air`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.22,output:.88,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"accounts/fireworks/models/glm-4p7":{id:`accounts/fireworks/models/glm-4p7`,name:`GLM 4.7`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.3,cacheWrite:0},contextWindow:198e3,maxTokens:198e3},"accounts/fireworks/models/glm-5":{id:`accounts/fireworks/models/glm-5`,name:`GLM 5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.5,cacheWrite:0},contextWindow:202752,maxTokens:131072},"accounts/fireworks/models/glm-5p1":{id:`accounts/fireworks/models/glm-5p1`,name:`GLM 5.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202800,maxTokens:131072},"accounts/fireworks/models/gpt-oss-120b":{id:`accounts/fireworks/models/gpt-oss-120b`,name:`GPT OSS 120B`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"accounts/fireworks/models/gpt-oss-20b":{id:`accounts/fireworks/models/gpt-oss-20b`,name:`GPT OSS 20B`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.05,output:.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"accounts/fireworks/models/kimi-k2-instruct":{id:`accounts/fireworks/models/kimi-k2-instruct`,name:`Kimi K2 Instruct`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"accounts/fireworks/models/kimi-k2-thinking":{id:`accounts/fireworks/models/kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.3,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"accounts/fireworks/models/kimi-k2p5":{id:`accounts/fireworks/models/kimi-k2p5`,name:`Kimi K2.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"accounts/fireworks/models/kimi-k2p6":{id:`accounts/fireworks/models/kimi-k2p6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"accounts/fireworks/models/minimax-m2p1":{id:`accounts/fireworks/models/minimax-m2p1`,name:`MiniMax-M2.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:2e5,maxTokens:2e5},"accounts/fireworks/models/minimax-m2p5":{id:`accounts/fireworks/models/minimax-m2p5`,name:`MiniMax-M2.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"accounts/fireworks/models/minimax-m2p7":{id:`accounts/fireworks/models/minimax-m2p7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"accounts/fireworks/models/qwen3p6-plus":{id:`accounts/fireworks/models/qwen3p6-plus`,name:`Qwen 3.6 Plus`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.1,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"accounts/fireworks/routers/kimi-k2p5-turbo":{id:`accounts/fireworks/routers/kimi-k2p5-turbo`,name:`Kimi K2.5 Turbo (firepass)`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3}},"github-copilot":{"claude-haiku-4.5":{id:`claude-haiku-4.5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:32e3},"claude-opus-4.5":{id:`claude-opus-4.5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:16e4,maxTokens:32e3},"claude-opus-4.6":{id:`claude-opus-4.6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"claude-opus-4.7":{id:`claude-opus-4.7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:64e3},"claude-sonnet-4":{id:`claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:216e3,maxTokens:16e3},"claude-sonnet-4.5":{id:`claude-sonnet-4.5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:32e3},"claude-sonnet-4.6":{id:`claude-sonnet-4.6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:32e3},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5-mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1-Codex-max`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1-Codex-mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"grok-code-fast-1":{id:`grok-code-fast-1`,name:`Grok Code Fast 1`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3}},google:{"gemini-1.5-flash":{id:`gemini-1.5-flash`,name:`Gemini 1.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-flash-8b":{id:`gemini-1.5-flash-8b`,name:`Gemini 1.5 Flash-8B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.0375,output:.15,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-pro":{id:`gemini-1.5-pro`,name:`Gemini 1.5 Pro`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:5,cacheRead:.3125,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.0-flash-lite":{id:`gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite":{id:`gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-06-17":{id:`gemini-2.5-flash-lite-preview-06-17`,name:`Gemini 2.5 Flash Lite Preview 06-17`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-09-2025":{id:`gemini-2.5-flash-lite-preview-09-2025`,name:`Gemini 2.5 Flash Lite Preview 09-25`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-04-17":{id:`gemini-2.5-flash-preview-04-17`,name:`Gemini 2.5 Flash Preview 04-17`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-05-20":{id:`gemini-2.5-flash-preview-05-20`,name:`Gemini 2.5 Flash Preview 05-20`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-09-2025":{id:`gemini-2.5-flash-preview-09-2025`,name:`Gemini 2.5 Flash Preview 09-25`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro-preview-05-06":{id:`gemini-2.5-pro-preview-05-06`,name:`Gemini 2.5 Pro Preview 05-06`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.31,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro-preview-06-05":{id:`gemini-2.5-pro-preview-06-05`,name:`Gemini 2.5 Pro Preview 06-05`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.31,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"gemini-3.1-flash-lite-preview":{id:`gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:1},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview-customtools":{id:`gemini-3.1-pro-preview-customtools`,name:`Gemini 3.1 Pro Preview Custom Tools`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-flash-latest":{id:`gemini-flash-latest`,name:`Gemini Flash Latest`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-flash-lite-latest":{id:`gemini-flash-lite-latest`,name:`Gemini Flash-Lite Latest`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-live-2.5-flash":{id:`gemini-live-2.5-flash`,name:`Gemini Live 2.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"gemini-live-2.5-flash-preview-native-audio":{id:`gemini-live-2.5-flash-preview-native-audio`,name:`Gemini Live 2.5 Flash Preview Native Audio`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`],cost:{input:.5,output:2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"gemma-3-27b-it":{id:`gemma-3-27b-it`,name:`Gemma 3 27B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"gemma-4-26b-a4b-it":{id:`gemma-4-26b-a4b-it`,name:`Gemma 4 26B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"gemma-4-31b-it":{id:`gemma-4-31b-it`,name:`Gemma 4 31B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192}},"google-antigravity":{"claude-opus-4-5-thinking":{id:`claude-opus-4-5-thinking`,name:`Claude Opus 4.5 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6-thinking":{id:`claude-opus-4-6-thinking`,name:`Claude Opus 4.6 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:128e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5 (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5-thinking":{id:`claude-sonnet-4-5-thinking`,name:`Claude Sonnet 4.5 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"gemini-3-flash":{id:`gemini-3-flash`,name:`Gemini 3 Flash (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.5,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-high":{id:`gemini-3.1-pro-high`,name:`Gemini 3.1 Pro High (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.375},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-low":{id:`gemini-3.1-pro-low`,name:`Gemini 3.1 Pro Low (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.375},contextWindow:1048576,maxTokens:65535},"gpt-oss-120b-medium":{id:`gpt-oss-120b-medium`,name:`GPT-OSS 120B Medium (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!1,input:[`text`],cost:{input:.09,output:.36,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768}},"google-gemini-cli":{"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-flash-lite-preview":{id:`gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535}},"google-vertex":{"gemini-1.5-flash":{id:`gemini-1.5-flash`,name:`Gemini 1.5 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-flash-8b":{id:`gemini-1.5-flash-8b`,name:`Gemini 1.5 Flash-8B (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.0375,output:.15,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-pro":{id:`gemini-1.5-pro`,name:`Gemini 1.5 Pro (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:5,cacheRead:.3125,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.0-flash-lite":{id:`gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite":{id:`gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-09-2025":{id:`gemini-2.5-flash-lite-preview-09-2025`,name:`Gemini 2.5 Flash Lite Preview 09-25 (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview-customtools":{id:`gemini-3.1-pro-preview-customtools`,name:`Gemini 3.1 Pro Preview Custom Tools (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536}},groq:{"deepseek-r1-distill-llama-70b":{id:`deepseek-r1-distill-llama-70b`,name:`DeepSeek R1 Distill Llama 70B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.75,output:.99,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"gemma2-9b-it":{id:`gemma2-9b-it`,name:`Gemma 2 9B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.2,output:.2,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"groq/compound":{id:`groq/compound`,name:`Compound`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"groq/compound-mini":{id:`groq/compound-mini`,name:`Compound Mini`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"llama-3.1-8b-instant":{id:`llama-3.1-8b-instant`,name:`Llama 3.1 8B Instant`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.05,output:.08,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"llama-3.3-70b-versatile":{id:`llama-3.3-70b-versatile`,name:`Llama 3.3 70B Versatile`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"llama3-70b-8192":{id:`llama3-70b-8192`,name:`Llama 3 70B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"llama3-8b-8192":{id:`llama3-8b-8192`,name:`Llama 3 8B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.05,output:.08,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"meta-llama/llama-4-maverick-17b-128e-instruct":{id:`meta-llama/llama-4-maverick-17b-128e-instruct`,name:`Llama 4 Maverick 17B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"meta-llama/llama-4-scout-17b-16e-instruct":{id:`meta-llama/llama-4-scout-17b-16e-instruct`,name:`Llama 4 Scout 17B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.11,output:.34,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"mistral-saba-24b":{id:`mistral-saba-24b`,name:`Mistral Saba 24B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.79,output:.79,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"moonshotai/kimi-k2-instruct":{id:`moonshotai/kimi-k2-instruct`,name:`Kimi K2 Instruct`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"moonshotai/kimi-k2-instruct-0905":{id:`moonshotai/kimi-k2-instruct-0905`,name:`Kimi K2 Instruct 0905`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`GPT OSS 20B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`Safety GPT OSS 20B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen-qwq-32b":{id:`qwen-qwq-32b`,name:`Qwen QwQ 32B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.39,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"qwen/qwen3-32b":{id:`qwen/qwen3-32b`,name:`Qwen3 32B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.59,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:40960}},huggingface:{"MiniMaxAI/MiniMax-M2.1":{id:`MiniMaxAI/MiniMax-M2.1`,name:`MiniMax-M2.1`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.5":{id:`MiniMaxAI/MiniMax-M2.5`,name:`MiniMax-M2.5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.7":{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:`Qwen/Qwen3-235B-A22B-Thinking-2507`,name:`Qwen3-235B-A22B-Thinking-2507`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3-Coder-480B-A35B-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:2,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:66536},"Qwen/Qwen3-Coder-Next":{id:`Qwen/Qwen3-Coder-Next`,name:`Qwen3-Coder-Next`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.2,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:`Qwen/Qwen3-Next-80B-A3B-Instruct`,name:`Qwen3-Next-80B-A3B-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:66536},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:`Qwen/Qwen3-Next-80B-A3B-Thinking`,name:`Qwen3-Next-80B-A3B-Thinking`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.3,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"Qwen/Qwen3.5-397B-A17B":{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5-397B-A17B`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"XiaomiMiMo/MiMo-V2-Flash":{id:`XiaomiMiMo/MiMo-V2-Flash`,name:`MiMo-V2-Flash`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"deepseek-ai/DeepSeek-R1-0528":{id:`deepseek-ai/DeepSeek-R1-0528`,name:`DeepSeek-R1-0528`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:3,output:5,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:163840},"deepseek-ai/DeepSeek-V3.2":{id:`deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek-V3.2`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.28,output:.4,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:65536},"deepseek-ai/DeepSeek-V4-Pro":{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.145,cacheWrite:0},contextWindow:1048576,maxTokens:393216},"moonshotai/Kimi-K2-Instruct":{id:`moonshotai/Kimi-K2-Instruct`,name:`Kimi-K2-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"moonshotai/Kimi-K2-Instruct-0905":{id:`moonshotai/Kimi-K2-Instruct-0905`,name:`Kimi-K2-Instruct-0905`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"moonshotai/Kimi-K2-Thinking":{id:`moonshotai/Kimi-K2-Thinking`,name:`Kimi-K2-Thinking`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.5":{id:`moonshotai/Kimi-K2.5`,name:`Kimi-K2.5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.6":{id:`moonshotai/Kimi-K2.6`,name:`Kimi-K2.6`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144},"zai-org/GLM-4.7":{id:`zai-org/GLM-4.7`,name:`GLM-4.7`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:204800,maxTokens:131072},"zai-org/GLM-4.7-Flash":{id:`zai-org/GLM-4.7-Flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"zai-org/GLM-5":{id:`zai-org/GLM-5`,name:`GLM-5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072},"zai-org/GLM-5.1":{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072}},"kimi-coding":{k2p6:{id:`k2p6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kimi-for-coding":{id:`kimi-for-coding`,name:`Kimi For Coding`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768}},minimax:{"MiniMax-M2.7":{id:`MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`minimax`,baseUrl:`https://api.minimax.io/anthropic`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"MiniMax-M2.7-highspeed":{id:`MiniMax-M2.7-highspeed`,name:`MiniMax-M2.7-highspeed`,api:`anthropic-messages`,provider:`minimax`,baseUrl:`https://api.minimax.io/anthropic`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}},"minimax-cn":{"MiniMax-M2.7":{id:`MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`minimax-cn`,baseUrl:`https://api.minimaxi.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"MiniMax-M2.7-highspeed":{id:`MiniMax-M2.7-highspeed`,name:`MiniMax-M2.7-highspeed`,api:`anthropic-messages`,provider:`minimax-cn`,baseUrl:`https://api.minimaxi.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}},mistral:{"codestral-latest":{id:`codestral-latest`,name:`Codestral (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.3,output:.9,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"devstral-2512":{id:`devstral-2512`,name:`Devstral 2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"devstral-medium-2507":{id:`devstral-medium-2507`,name:`Devstral Medium`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"devstral-medium-latest":{id:`devstral-medium-latest`,name:`Devstral 2 (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"devstral-small-2505":{id:`devstral-small-2505`,name:`Devstral Small 2505`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"devstral-small-2507":{id:`devstral-small-2507`,name:`Devstral Small`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"labs-devstral-small-2512":{id:`labs-devstral-small-2512`,name:`Devstral Small 2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"magistral-medium-latest":{id:`magistral-medium-latest`,name:`Magistral Medium (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`],cost:{input:2,output:5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"magistral-small":{id:`magistral-small`,name:`Magistral Small`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"ministral-3b-latest":{id:`ministral-3b-latest`,name:`Ministral 3B (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.04,output:.04,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"ministral-8b-latest":{id:`ministral-8b-latest`,name:`Ministral 8B (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"mistral-large-2411":{id:`mistral-large-2411`,name:`Mistral Large 2.1`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"mistral-large-2512":{id:`mistral-large-2512`,name:`Mistral Large 3`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-large-latest":{id:`mistral-large-latest`,name:`Mistral Large (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-2505":{id:`mistral-medium-2505`,name:`Mistral Medium 3`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"mistral-medium-2508":{id:`mistral-medium-2508`,name:`Mistral Medium 3.1`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-latest":{id:`mistral-medium-latest`,name:`Mistral Medium (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistral-nemo":{id:`mistral-nemo`,name:`Mistral Nemo`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"mistral-small-2506":{id:`mistral-small-2506`,name:`Mistral Small 3.2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistral-small-2603":{id:`mistral-small-2603`,name:`Mistral Small 4`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral-small-latest":{id:`mistral-small-latest`,name:`Mistral Small (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"open-mistral-7b":{id:`open-mistral-7b`,name:`Mistral 7B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.25,output:.25,cacheRead:0,cacheWrite:0},contextWindow:8e3,maxTokens:8e3},"open-mixtral-8x22b":{id:`open-mixtral-8x22b`,name:`Mixtral 8x22B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:64e3},"open-mixtral-8x7b":{id:`open-mixtral-8x7b`,name:`Mixtral 8x7B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.7,output:.7,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:32e3},"pixtral-12b":{id:`pixtral-12b`,name:`Pixtral 12B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"pixtral-large-latest":{id:`pixtral-large-latest`,name:`Pixtral Large (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3}},openai:{"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"gpt-4-turbo":{id:`gpt-4-turbo`,name:`GPT-4 Turbo`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-mini":{id:`gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-nano":{id:`gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-05-13":{id:`gpt-4o-2024-05-13`,name:`GPT-4o (2024-05-13)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o-2024-08-06":{id:`gpt-4o-2024-08-06`,name:`GPT-4o (2024-08-06)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-11-20":{id:`gpt-4o-2024-11-20`,name:`GPT-4o (2024-11-20)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-mini":{id:`gpt-4o-mini`,name:`GPT-4o mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-chat-latest":{id:`gpt-5-chat-latest`,name:`GPT-5 Chat Latest`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5-Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5 Mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-pro":{id:`gpt-5-pro`,name:`GPT-5 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-chat-latest":{id:`gpt-5.1-chat-latest`,name:`GPT-5.1 Chat`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-chat-latest":{id:`gpt-5.2-chat-latest`,name:`GPT-5.2 Chat`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-pro":{id:`gpt-5.2-pro`,name:`GPT-5.2 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-chat-latest":{id:`gpt-5.3-chat-latest`,name:`GPT-5.3 Chat (latest)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o1-pro":{id:`o1-pro`,name:`o1-pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:150,output:600,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-deep-research":{id:`o3-deep-research`,name:`o3-deep-research`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-pro":{id:`o3-pro`,name:`o3-pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini":{id:`o4-mini`,name:`o4-mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini-deep-research":{id:`o4-mini-deep-research`,name:`o4-mini-deep-research`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5}},"openai-codex":{"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex Mini`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3}},opencode:{"big-pickle":{id:`big-pickle`,name:`Big Pickle`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-1":{id:`claude-opus-4-1`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-5":{id:`claude-opus-4-5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6":{id:`claude-opus-4-6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-opus-4-7":{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-sonnet-4":{id:`claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"gemini-3-flash":{id:`gemini-3-flash`,name:`Gemini 3 Flash`,api:`google-generative-ai`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro":{id:`gemini-3.1-pro`,name:`Gemini 3.1 Pro Preview`,api:`google-generative-ai`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"glm-5":{id:`glm-5`,name:`GLM-5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:204800,maxTokens:131072},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex Mini`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 Nano`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"hy3-preview-free":{id:`hy3-preview-free`,name:`Hy3 preview Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:64e3},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:65536},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:65536},"ling-2.6-flash-free":{id:`ling-2.6-flash-free`,name:`Ling 2.6 Flash Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262100,maxTokens:32800},"minimax-m2.5":{id:`minimax-m2.5`,name:`MiniMax M2.5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax-m2.5-free":{id:`minimax-m2.5-free`,name:`MiniMax M2.5 Free`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax-m2.7":{id:`minimax-m2.7`,name:`MiniMax M2.7`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"nemotron-3-super-free":{id:`nemotron-3-super-free`,name:`Nemotron 3 Super Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:128e3},"qwen3.5-plus":{id:`qwen3.5-plus`,name:`Qwen3.5 Plus`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:262144,maxTokens:65536},"qwen3.6-plus":{id:`qwen3.6-plus`,name:`Qwen3.6 Plus`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},contextWindow:262144,maxTokens:65536}},"opencode-go":{"deepseek-v4-flash":{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek-v4-pro":{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.0145,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"glm-5":{id:`glm-5`,name:`GLM-5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:204800,maxTokens:131072},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:65536},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6 (3x limits)`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.32,output:1.34,cacheRead:.054,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo V2 Omni`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:128e3},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo V2 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:128e3},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo V2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo V2.5 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:128e3},"minimax-m2.5":{id:`minimax-m2.5`,name:`MiniMax M2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:65536},"minimax-m2.7":{id:`minimax-m2.7`,name:`MiniMax M2.7`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"qwen3.5-plus":{id:`qwen3.5-plus`,name:`Qwen3.5 Plus`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:262144,maxTokens:65536},"qwen3.6-plus":{id:`qwen3.6-plus`,name:`Qwen3.6 Plus`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},contextWindow:262144,maxTokens:65536}},openrouter:{"ai21/jamba-large-1.7":{id:`ai21/jamba-large-1.7`,name:`AI21: Jamba Large 1.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:8,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"alibaba/tongyi-deepresearch-30b-a3b":{id:`alibaba/tongyi-deepresearch-30b-a3b`,name:`Tongyi DeepResearch 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.44999999999999996,cacheRead:.09,cacheWrite:0},contextWindow:131072,maxTokens:131072},"allenai/olmo-3.1-32b-instruct":{id:`allenai/olmo-3.1-32b-instruct`,name:`AllenAI: Olmo 3.1 32B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.6,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:16384},"amazon/nova-2-lite-v1":{id:`amazon/nova-2-lite-v1`,name:`Amazon: Nova 2 Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65535},"amazon/nova-lite-v1":{id:`amazon/nova-lite-v1`,name:`Amazon: Nova Lite 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120},"amazon/nova-micro-v1":{id:`amazon/nova-micro-v1`,name:`Amazon: Nova Micro 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.035,output:.14,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:5120},"amazon/nova-premier-v1":{id:`amazon/nova-premier-v1`,name:`Amazon: Nova Premier 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:12.5,cacheRead:.625,cacheWrite:0},contextWindow:1e6,maxTokens:32e3},"amazon/nova-pro-v1":{id:`amazon/nova-pro-v1`,name:`Amazon: Nova Pro 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:3.1999999999999997,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120},"anthropic/claude-3-haiku":{id:`anthropic/claude-3-haiku`,name:`Anthropic: Claude 3 Haiku`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"anthropic/claude-3.5-haiku":{id:`anthropic/claude-3.5-haiku`,name:`Anthropic: Claude 3.5 Haiku`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic/claude-3.7-sonnet":{id:`anthropic/claude-3.7-sonnet`,name:`Anthropic: Claude 3.7 Sonnet`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:128e3},"anthropic/claude-3.7-sonnet:thinking":{id:`anthropic/claude-3.7-sonnet:thinking`,name:`Anthropic: Claude 3.7 Sonnet (thinking)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-haiku-4.5":{id:`anthropic/claude-haiku-4.5`,name:`Anthropic: Claude Haiku 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4":{id:`anthropic/claude-opus-4`,name:`Anthropic: Claude Opus 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.1":{id:`anthropic/claude-opus-4.1`,name:`Anthropic: Claude Opus 4.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.5":{id:`anthropic/claude-opus-4.5`,name:`Anthropic: Claude Opus 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4.6":{id:`anthropic/claude-opus-4.6`,name:`Anthropic: Claude Opus 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.6-fast":{id:`anthropic/claude-opus-4.6-fast`,name:`Anthropic: Claude Opus 4.6 (Fast)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:150,cacheRead:3,cacheWrite:37.5},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.7":{id:`anthropic/claude-opus-4.7`,name:`Anthropic: Claude Opus 4.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-sonnet-4":{id:`anthropic/claude-sonnet-4`,name:`Anthropic: Claude Sonnet 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.5":{id:`anthropic/claude-sonnet-4.5`,name:`Anthropic: Claude Sonnet 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.6":{id:`anthropic/claude-sonnet-4.6`,name:`Anthropic: Claude Sonnet 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"arcee-ai/trinity-large-preview":{id:`arcee-ai/trinity-large-preview`,name:`Arcee AI: Trinity Large Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"arcee-ai/trinity-large-thinking":{id:`arcee-ai/trinity-large-thinking`,name:`Arcee AI: Trinity Large Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.22,output:.85,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:262144},"arcee-ai/trinity-mini":{id:`arcee-ai/trinity-mini`,name:`Arcee AI: Trinity Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.045,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"arcee-ai/virtuoso-large":{id:`arcee-ai/virtuoso-large`,name:`Arcee AI: Virtuoso Large`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.75,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:64e3},auto:{id:`auto`,name:`Auto`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"baidu/ernie-4.5-21b-a3b":{id:`baidu/ernie-4.5-21b-a3b`,name:`Baidu: ERNIE 4.5 21B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.07,output:.28,cacheRead:0,cacheWrite:0},contextWindow:12e4,maxTokens:8e3},"baidu/ernie-4.5-vl-28b-a3b":{id:`baidu/ernie-4.5-vl-28b-a3b`,name:`Baidu: ERNIE 4.5 VL 28B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.14,output:.56,cacheRead:0,cacheWrite:0},contextWindow:3e4,maxTokens:8e3},"bytedance-seed/seed-1.6":{id:`bytedance-seed/seed-1.6`,name:`ByteDance Seed: Seed 1.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"bytedance-seed/seed-1.6-flash":{id:`bytedance-seed/seed-1.6-flash`,name:`ByteDance Seed: Seed 1.6 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"bytedance-seed/seed-2.0-lite":{id:`bytedance-seed/seed-2.0-lite`,name:`ByteDance Seed: Seed-2.0-Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"bytedance-seed/seed-2.0-mini":{id:`bytedance-seed/seed-2.0-mini`,name:`ByteDance Seed: Seed-2.0-Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"cohere/command-r-08-2024":{id:`cohere/command-r-08-2024`,name:`Cohere: Command R (08-2024)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"cohere/command-r-plus-08-2024":{id:`cohere/command-r-plus-08-2024`,name:`Cohere: Command R+ (08-2024)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"deepseek/deepseek-chat":{id:`deepseek/deepseek-chat`,name:`DeepSeek: DeepSeek V3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.32,output:.8899999999999999,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-chat-v3-0324":{id:`deepseek/deepseek-chat-v3-0324`,name:`DeepSeek: DeepSeek V3 0324`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.77,cacheRead:.135,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-chat-v3.1":{id:`deepseek/deepseek-chat-v3.1`,name:`DeepSeek: DeepSeek V3.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.75,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:7168},"deepseek/deepseek-r1":{id:`deepseek/deepseek-r1`,name:`DeepSeek: R1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.7,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:16e3},"deepseek/deepseek-r1-0528":{id:`deepseek/deepseek-r1-0528`,name:`DeepSeek: R1 0528`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.5,output:2.1500000000000004,cacheRead:.35,cacheWrite:0},contextWindow:163840,maxTokens:32768},"deepseek/deepseek-v3.1-terminus":{id:`deepseek/deepseek-v3.1-terminus`,name:`DeepSeek: DeepSeek V3.1 Terminus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.21,output:.7899999999999999,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:32768},"deepseek/deepseek-v3.2":{id:`deepseek/deepseek-v3.2`,name:`DeepSeek: DeepSeek V3.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.252,output:.378,cacheRead:.0252,cacheWrite:0},contextWindow:131072,maxTokens:65536},"deepseek/deepseek-v3.2-exp":{id:`deepseek/deepseek-v3.2-exp`,name:`DeepSeek: DeepSeek V3.2 Exp`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.27,output:.41,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:65536},"deepseek/deepseek-v4-flash":{id:`deepseek/deepseek-v4-flash`,name:`DeepSeek: DeepSeek V4 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:384e3},"deepseek/deepseek-v4-pro":{id:`deepseek/deepseek-v4-pro`,name:`DeepSeek: DeepSeek V4 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.435,output:.87,cacheRead:.003625,cacheWrite:0},contextWindow:1048576,maxTokens:384e3},"essentialai/rnj-1-instruct":{id:`essentialai/rnj-1-instruct`,name:`EssentialAI: Rnj 1 Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:4096},"google/gemini-2.0-flash-001":{id:`google/gemini-2.0-flash-001`,name:`Google: Gemini 2.0 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:.08333333333333334},contextWindow:1e6,maxTokens:8192},"google/gemini-2.0-flash-lite-001":{id:`google/gemini-2.0-flash-lite-001`,name:`Google: Gemini 2.0 Flash Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.5-flash":{id:`google/gemini-2.5-flash`,name:`Google: Gemini 2.5 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-flash-lite":{id:`google/gemini-2.5-flash-lite`,name:`Google: Gemini 2.5 Flash Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-flash-lite-preview-09-2025":{id:`google/gemini-2.5-flash-lite-preview-09-2025`,name:`Google: Gemini 2.5 Flash Lite Preview 09-2025`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-pro":{id:`google/gemini-2.5-pro`,name:`Google: Gemini 2.5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro-preview":{id:`google/gemini-2.5-pro-preview`,name:`Google: Gemini 2.5 Pro Preview 06-05`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro-preview-05-06":{id:`google/gemini-2.5-pro-preview-05-06`,name:`Google: Gemini 2.5 Pro Preview 05-06`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65535},"google/gemini-3-flash-preview":{id:`google/gemini-3-flash-preview`,name:`Google: Gemini 3 Flash Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-flash-lite-preview":{id:`google/gemini-3.1-flash-lite-preview`,name:`Google: Gemini 3.1 Flash Lite Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.024999999999999998,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-pro-preview":{id:`google/gemini-3.1-pro-preview`,name:`Google: Gemini 3.1 Pro Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-pro-preview-customtools":{id:`google/gemini-3.1-pro-preview-customtools`,name:`Google: Gemini 3.1 Pro Preview Custom Tools`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemma-3-12b-it":{id:`google/gemma-3-12b-it`,name:`Google: Gemma 3 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.04,output:.13,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"google/gemma-3-27b-it":{id:`google/gemma-3-27b-it`,name:`Google: Gemma 3 27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.16,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"google/gemma-4-26b-a4b-it":{id:`google/gemma-4-26b-a4b-it`,name:`Google: Gemma 4 26B A4B `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.06,output:.33,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"google/gemma-4-26b-a4b-it:free":{id:`google/gemma-4-26b-a4b-it:free`,name:`Google: Gemma 4 26B A4B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"google/gemma-4-31b-it":{id:`google/gemma-4-31b-it`,name:`Google: Gemma 4 31B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.13,output:.38,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"google/gemma-4-31b-it:free":{id:`google/gemma-4-31b-it:free`,name:`Google: Gemma 4 31B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inception/mercury-2":{id:`inception/mercury-2`,name:`Inception: Mercury 2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.25,output:.75,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:5e4},"inclusionai/ling-2.6-1t:free":{id:`inclusionai/ling-2.6-1t:free`,name:`inclusionAI: Ling-2.6-1T (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ling-2.6-flash:free":{id:`inclusionai/ling-2.6-flash:free`,name:`inclusionAI: Ling-2.6-flash (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kwaipilot/kat-coder-pro-v2":{id:`kwaipilot/kat-coder-pro-v2`,name:`Kwaipilot: KAT-Coder-Pro V2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:256e3,maxTokens:8e4},"meta-llama/llama-3-8b-instruct":{id:`meta-llama/llama-3-8b-instruct`,name:`Meta: Llama 3 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.03,output:.04,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:16384},"meta-llama/llama-3.1-70b-instruct":{id:`meta-llama/llama-3.1-70b-instruct`,name:`Meta: Llama 3.1 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"meta-llama/llama-3.1-8b-instruct":{id:`meta-llama/llama-3.1-8b-instruct`,name:`Meta: Llama 3.1 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.02,output:.049999999999999996,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"meta-llama/llama-3.3-70b-instruct":{id:`meta-llama/llama-3.3-70b-instruct`,name:`Meta: Llama 3.3 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.32,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"meta-llama/llama-3.3-70b-instruct:free":{id:`meta-llama/llama-3.3-70b-instruct:free`,name:`Meta: Llama 3.3 70B Instruct (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:4096},"meta-llama/llama-4-scout":{id:`meta-llama/llama-4-scout`,name:`Meta: Llama 4 Scout`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.3,cacheRead:0,cacheWrite:0},contextWindow:327680,maxTokens:16384},"minimax/minimax-m1":{id:`minimax/minimax-m1`,name:`MiniMax: MiniMax M1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.39999999999999997,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:4e4},"minimax/minimax-m2":{id:`minimax/minimax-m2`,name:`MiniMax: MiniMax M2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.255,output:1,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"minimax/minimax-m2.1":{id:`minimax/minimax-m2.1`,name:`MiniMax: MiniMax M2.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.95,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"minimax/minimax-m2.5":{id:`minimax/minimax-m2.5`,name:`MiniMax: MiniMax M2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:1.15,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:131072},"minimax/minimax-m2.5:free":{id:`minimax/minimax-m2.5:free`,name:`MiniMax: MiniMax M2.5 (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:8192},"minimax/minimax-m2.7":{id:`minimax/minimax-m2.7`,name:`MiniMax: MiniMax M2.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.059,cacheWrite:0},contextWindow:196608,maxTokens:4096},"mistralai/codestral-2508":{id:`mistralai/codestral-2508`,name:`Mistral: Codestral 2508`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:.8999999999999999,cacheRead:.03,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"mistralai/devstral-2512":{id:`mistralai/devstral-2512`,name:`Mistral: Devstral 2 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/devstral-medium":{id:`mistralai/devstral-medium`,name:`Mistral: Devstral Medium`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/devstral-small":{id:`mistralai/devstral-small`,name:`Mistral: Devstral Small 1.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/ministral-14b-2512":{id:`mistralai/ministral-14b-2512`,name:`Mistral: Ministral 3 14B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.19999999999999998,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/ministral-3b-2512":{id:`mistralai/ministral-3b-2512`,name:`Mistral: Ministral 3 3B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/ministral-8b-2512":{id:`mistralai/ministral-8b-2512`,name:`Mistral: Ministral 3 8B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-large":{id:`mistralai/mistral-large`,name:`Mistral Large`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistralai/mistral-large-2407":{id:`mistralai/mistral-large-2407`,name:`Mistral Large 2407`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-large-2411":{id:`mistralai/mistral-large-2411`,name:`Mistral Large 2411`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-large-2512":{id:`mistralai/mistral-large-2512`,name:`Mistral: Mistral Large 3 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-medium-3":{id:`mistralai/mistral-medium-3`,name:`Mistral: Mistral Medium 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-medium-3.1":{id:`mistralai/mistral-medium-3.1`,name:`Mistral: Mistral Medium 3.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-nemo":{id:`mistralai/mistral-nemo`,name:`Mistral: Mistral Nemo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.02,output:.04,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"mistralai/mistral-saba":{id:`mistralai/mistral-saba`,name:`Mistral: Saba`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.6,cacheRead:.02,cacheWrite:0},contextWindow:32768,maxTokens:4096},"mistralai/mistral-small-2603":{id:`mistralai/mistral-small-2603`,name:`Mistral: Mistral Small 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-small-3.2-24b-instruct":{id:`mistralai/mistral-small-3.2-24b-instruct`,name:`Mistral: Mistral Small 3.2 24B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistralai/mistral-small-creative":{id:`mistralai/mistral-small-creative`,name:`Mistral: Mistral Small Creative`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:32768,maxTokens:4096},"mistralai/mixtral-8x22b-instruct":{id:`mistralai/mixtral-8x22b-instruct`,name:`Mistral: Mixtral 8x22B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:65536,maxTokens:4096},"mistralai/mixtral-8x7b-instruct":{id:`mistralai/mixtral-8x7b-instruct`,name:`Mistral: Mixtral 8x7B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.54,output:.54,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:16384},"mistralai/pixtral-large-2411":{id:`mistralai/pixtral-large-2411`,name:`Mistral: Pixtral Large 2411`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/voxtral-small-24b-2507":{id:`mistralai/voxtral-small-24b-2507`,name:`Mistral: Voxtral Small 24B 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:32e3,maxTokens:4096},"moonshotai/kimi-k2":{id:`moonshotai/kimi-k2`,name:`MoonshotAI: Kimi K2 0711`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.5700000000000001,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"moonshotai/kimi-k2-0905":{id:`moonshotai/kimi-k2-0905`,name:`MoonshotAI: Kimi K2 0905`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/kimi-k2-thinking":{id:`moonshotai/kimi-k2-thinking`,name:`MoonshotAI: Kimi K2 Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/kimi-k2.5":{id:`moonshotai/kimi-k2.5`,name:`MoonshotAI: Kimi K2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.41,output:2.06,cacheRead:.07,cacheWrite:0},contextWindow:262144,maxTokens:4096},"moonshotai/kimi-k2.6":{id:`moonshotai/kimi-k2.6`,name:`MoonshotAI: Kimi K2.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.7448,output:4.655,cacheRead:.1463,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"nex-agi/deepseek-v3.1-nex-n1":{id:`nex-agi/deepseek-v3.1-nex-n1`,name:`Nex AGI: DeepSeek V3.1 Nex N1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.135,output:.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:163840},"nvidia/llama-3.1-nemotron-70b-instruct":{id:`nvidia/llama-3.1-nemotron-70b-instruct`,name:`NVIDIA: Llama 3.1 Nemotron 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.2,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{id:`nvidia/llama-3.3-nemotron-super-49b-v1.5`,name:`NVIDIA: Llama 3.3 Nemotron Super 49B V1.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/nemotron-3-nano-30b-a3b":{id:`nvidia/nemotron-3-nano-30b-a3b`,name:`NVIDIA: Nemotron 3 Nano 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:228e3},"nvidia/nemotron-3-nano-30b-a3b:free":{id:`nvidia/nemotron-3-nano-30b-a3b:free`,name:`NVIDIA: Nemotron 3 Nano 30B A3B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"nvidia/nemotron-3-super-120b-a12b":{id:`nvidia/nemotron-3-super-120b-a12b`,name:`NVIDIA: Nemotron 3 Super`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"nvidia/nemotron-3-super-120b-a12b:free":{id:`nvidia/nemotron-3-super-120b-a12b:free`,name:`NVIDIA: Nemotron 3 Super (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"nvidia/nemotron-nano-12b-v2-vl:free":{id:`nvidia/nemotron-nano-12b-v2-vl:free`,name:`NVIDIA: Nemotron Nano 12B 2 VL (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"nvidia/nemotron-nano-9b-v2":{id:`nvidia/nemotron-nano-9b-v2`,name:`NVIDIA: Nemotron Nano 9B V2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.04,output:.16,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/nemotron-nano-9b-v2:free":{id:`nvidia/nemotron-nano-9b-v2:free`,name:`NVIDIA: Nemotron Nano 9B V2 (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-3.5-turbo":{id:`openai/gpt-3.5-turbo`,name:`OpenAI: GPT-3.5 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:16385,maxTokens:4096},"openai/gpt-3.5-turbo-0613":{id:`openai/gpt-3.5-turbo-0613`,name:`OpenAI: GPT-3.5 Turbo (older v0613)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:2,cacheRead:0,cacheWrite:0},contextWindow:4095,maxTokens:4096},"openai/gpt-3.5-turbo-16k":{id:`openai/gpt-3.5-turbo-16k`,name:`OpenAI: GPT-3.5 Turbo 16k`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:4,cacheRead:0,cacheWrite:0},contextWindow:16385,maxTokens:4096},"openai/gpt-4":{id:`openai/gpt-4`,name:`OpenAI: GPT-4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8191,maxTokens:4096},"openai/gpt-4-0314":{id:`openai/gpt-4-0314`,name:`OpenAI: GPT-4 (older v0314)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8191,maxTokens:4096},"openai/gpt-4-1106-preview":{id:`openai/gpt-4-1106-preview`,name:`OpenAI: GPT-4 Turbo (older v1106)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4-turbo":{id:`openai/gpt-4-turbo`,name:`OpenAI: GPT-4 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4-turbo-preview":{id:`openai/gpt-4-turbo-preview`,name:`OpenAI: GPT-4 Turbo Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4.1":{id:`openai/gpt-4.1`,name:`OpenAI: GPT-4.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:4096},"openai/gpt-4.1-mini":{id:`openai/gpt-4.1-mini`,name:`OpenAI: GPT-4.1 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:1.5999999999999999,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-nano":{id:`openai/gpt-4.1-nano`,name:`OpenAI: GPT-4.1 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4o":{id:`openai/gpt-4o`,name:`OpenAI: GPT-4o`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-2024-05-13":{id:`openai/gpt-4o-2024-05-13`,name:`OpenAI: GPT-4o (2024-05-13)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4o-2024-08-06":{id:`openai/gpt-4o-2024-08-06`,name:`OpenAI: GPT-4o (2024-08-06)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-2024-11-20":{id:`openai/gpt-4o-2024-11-20`,name:`OpenAI: GPT-4o (2024-11-20)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-audio-preview":{id:`openai/gpt-4o-audio-preview`,name:`OpenAI: GPT-4o Audio`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini":{id:`openai/gpt-4o-mini`,name:`OpenAI: GPT-4o-mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini-2024-07-18":{id:`openai/gpt-4o-mini-2024-07-18`,name:`OpenAI: GPT-4o-mini (2024-07-18)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5":{id:`openai/gpt-5`,name:`OpenAI: GPT-5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-codex":{id:`openai/gpt-5-codex`,name:`OpenAI: GPT-5 Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-mini":{id:`openai/gpt-5-mini`,name:`OpenAI: GPT-5 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-nano":{id:`openai/gpt-5-nano`,name:`OpenAI: GPT-5 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:4e5,maxTokens:4096},"openai/gpt-5-pro":{id:`openai/gpt-5-pro`,name:`OpenAI: GPT-5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1":{id:`openai/gpt-5.1`,name:`OpenAI: GPT-5.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-chat":{id:`openai/gpt-5.1-chat`,name:`OpenAI: GPT-5.1 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.1-codex":{id:`openai/gpt-5.1-codex`,name:`OpenAI: GPT-5.1-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-max":{id:`openai/gpt-5.1-codex-max`,name:`OpenAI: GPT-5.1-Codex-Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-mini":{id:`openai/gpt-5.1-codex-mini`,name:`OpenAI: GPT-5.1-Codex-Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.03,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2":{id:`openai/gpt-5.2`,name:`OpenAI: GPT-5.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-chat":{id:`openai/gpt-5.2-chat`,name:`OpenAI: GPT-5.2 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"openai/gpt-5.2-codex":{id:`openai/gpt-5.2-codex`,name:`OpenAI: GPT-5.2-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-pro":{id:`openai/gpt-5.2-pro`,name:`OpenAI: GPT-5.2 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.3-chat":{id:`openai/gpt-5.3-chat`,name:`OpenAI: GPT-5.3 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.3-codex":{id:`openai/gpt-5.3-codex`,name:`OpenAI: GPT-5.3-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4":{id:`openai/gpt-5.4`,name:`OpenAI: GPT-5.4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.4-mini":{id:`openai/gpt-5.4-mini`,name:`OpenAI: GPT-5.4 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-nano":{id:`openai/gpt-5.4-nano`,name:`OpenAI: GPT-5.4 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-pro":{id:`openai/gpt-5.4-pro`,name:`OpenAI: GPT-5.4 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5":{id:`openai/gpt-5.5`,name:`OpenAI: GPT-5.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5-pro":{id:`openai/gpt-5.5-pro`,name:`OpenAI: GPT-5.5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-audio":{id:`openai/gpt-audio`,name:`OpenAI: GPT Audio`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-audio-mini":{id:`openai/gpt-audio-mini`,name:`OpenAI: GPT Audio Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.6,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`OpenAI: gpt-oss-120b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.039,output:.19,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-120b:free":{id:`openai/gpt-oss-120b:free`,name:`OpenAI: gpt-oss-120b (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`OpenAI: gpt-oss-20b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.03,output:.14,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-20b:free":{id:`openai/gpt-oss-20b:free`,name:`OpenAI: gpt-oss-20b (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`OpenAI: gpt-oss-safeguard-20b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/o1":{id:`openai/o1`,name:`OpenAI: o1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3":{id:`openai/o3`,name:`OpenAI: o3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-deep-research":{id:`openai/o3-deep-research`,name:`OpenAI: o3 Deep Research`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini":{id:`openai/o3-mini`,name:`OpenAI: o3 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini-high":{id:`openai/o3-mini-high`,name:`OpenAI: o3 Mini High`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-pro":{id:`openai/o3-pro`,name:`OpenAI: o3 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini":{id:`openai/o4-mini`,name:`OpenAI: o4 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini-deep-research":{id:`openai/o4-mini-deep-research`,name:`OpenAI: o4 Mini Deep Research`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini-high":{id:`openai/o4-mini-high`,name:`OpenAI: o4 Mini High`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openrouter/auto":{id:`openrouter/auto`,name:`Auto Router`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"openrouter/free":{id:`openrouter/free`,name:`Free Models Router`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:4096},"prime-intellect/intellect-3":{id:`prime-intellect/intellect-3`,name:`Prime Intellect: INTELLECT-3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"qwen/qwen-2.5-72b-instruct":{id:`qwen/qwen-2.5-72b-instruct`,name:`Qwen2.5 72B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.36,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:16384},"qwen/qwen-2.5-7b-instruct":{id:`qwen/qwen-2.5-7b-instruct`,name:`Qwen: Qwen2.5 7B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.04,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"qwen/qwen-max":{id:`qwen/qwen-max`,name:`Qwen: Qwen-Max `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.04,output:4.16,cacheRead:.20800000000000002,cacheWrite:0},contextWindow:32768,maxTokens:8192},"qwen/qwen-plus":{id:`qwen/qwen-plus`,name:`Qwen: Qwen-Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.26,output:.78,cacheRead:.052000000000000005,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-plus-2025-07-28":{id:`qwen/qwen-plus-2025-07-28`,name:`Qwen: Qwen Plus 0728`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.26,output:.78,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-plus-2025-07-28:thinking":{id:`qwen/qwen-plus-2025-07-28:thinking`,name:`Qwen: Qwen Plus 0728 (thinking)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.26,output:.78,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-turbo":{id:`qwen/qwen-turbo`,name:`Qwen: Qwen-Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.0325,output:.13,cacheRead:.006500000000000001,cacheWrite:0},contextWindow:131072,maxTokens:8192},"qwen/qwen-vl-max":{id:`qwen/qwen-vl-max`,name:`Qwen: Qwen VL Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.52,output:2.08,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-14b":{id:`qwen/qwen3-14b`,name:`Qwen: Qwen3 14B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:40960},"qwen/qwen3-235b-a22b":{id:`qwen/qwen3-235b-a22b`,name:`Qwen: Qwen3 235B A22B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.45499999999999996,output:1.8199999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"qwen/qwen3-235b-a22b-2507":{id:`qwen/qwen3-235b-a22b-2507`,name:`Qwen: Qwen3 235B A22B Instruct 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.071,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-235b-a22b-thinking-2507":{id:`qwen/qwen3-235b-a22b-thinking-2507`,name:`Qwen: Qwen3 235B A22B Thinking 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.14950000000000002,output:1.495,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"qwen/qwen3-30b-a3b":{id:`qwen/qwen3-30b-a3b`,name:`Qwen: Qwen3 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.28,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"qwen/qwen3-30b-a3b-instruct-2507":{id:`qwen/qwen3-30b-a3b-instruct-2507`,name:`Qwen: Qwen3 30B A3B Instruct 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"qwen/qwen3-30b-a3b-thinking-2507":{id:`qwen/qwen3-30b-a3b-thinking-2507`,name:`Qwen: Qwen3 30B A3B Thinking 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.39999999999999997,cacheRead:.08,cacheWrite:0},contextWindow:131072,maxTokens:131072},"qwen/qwen3-32b":{id:`qwen/qwen3-32b`,name:`Qwen: Qwen3 32B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.24,cacheRead:.04,cacheWrite:0},contextWindow:40960,maxTokens:40960},"qwen/qwen3-8b":{id:`qwen/qwen3-8b`,name:`Qwen: Qwen3 8B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:40960,maxTokens:8192},"qwen/qwen3-coder":{id:`qwen/qwen3-coder`,name:`Qwen: Qwen3 Coder 480B A35B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.22,output:1.7999999999999998,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3-coder-30b-a3b-instruct":{id:`qwen/qwen3-coder-30b-a3b-instruct`,name:`Qwen: Qwen3 Coder 30B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.07,output:.27,cacheRead:0,cacheWrite:0},contextWindow:16e4,maxTokens:32768},"qwen/qwen3-coder-flash":{id:`qwen/qwen3-coder-flash`,name:`Qwen: Qwen3 Coder Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.195,output:.975,cacheRead:.039,cacheWrite:.24375},contextWindow:1e6,maxTokens:65536},"qwen/qwen3-coder-next":{id:`qwen/qwen3-coder-next`,name:`Qwen: Qwen3 Coder Next`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.14,output:.7999999999999999,cacheRead:.09,cacheWrite:0},contextWindow:262144,maxTokens:262144},"qwen/qwen3-coder-plus":{id:`qwen/qwen3-coder-plus`,name:`Qwen: Qwen3 Coder Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.65,output:3.25,cacheRead:.13,cacheWrite:.8125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3-coder:free":{id:`qwen/qwen3-coder:free`,name:`Qwen: Qwen3 Coder 480B A35B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"qwen/qwen3-max":{id:`qwen/qwen3-max`,name:`Qwen: Qwen3 Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.78,output:3.9,cacheRead:.156,cacheWrite:.975},contextWindow:262144,maxTokens:32768},"qwen/qwen3-max-thinking":{id:`qwen/qwen3-max-thinking`,name:`Qwen: Qwen3 Max Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.78,output:3.9,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"qwen/qwen3-next-80b-a3b-instruct":{id:`qwen/qwen3-next-80b-a3b-instruct`,name:`Qwen: Qwen3 Next 80B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-next-80b-a3b-instruct:free":{id:`qwen/qwen3-next-80b-a3b-instruct:free`,name:`Qwen: Qwen3 Next 80B A3B Instruct (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"qwen/qwen3-next-80b-a3b-thinking":{id:`qwen/qwen3-next-80b-a3b-thinking`,name:`Qwen: Qwen3 Next 80B A3B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.0975,output:.78,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-235b-a22b-instruct":{id:`qwen/qwen3-vl-235b-a22b-instruct`,name:`Qwen: Qwen3 VL 235B A22B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.88,cacheRead:.11,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-vl-235b-a22b-thinking":{id:`qwen/qwen3-vl-235b-a22b-thinking`,name:`Qwen: Qwen3 VL 235B A22B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:2.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-30b-a3b-instruct":{id:`qwen/qwen3-vl-30b-a3b-instruct`,name:`Qwen: Qwen3 VL 30B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.13,output:.52,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-30b-a3b-thinking":{id:`qwen/qwen3-vl-30b-a3b-thinking`,name:`Qwen: Qwen3 VL 30B A3B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.13,output:1.56,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-32b-instruct":{id:`qwen/qwen3-vl-32b-instruct`,name:`Qwen: Qwen3 VL 32B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.10400000000000001,output:.41600000000000004,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-8b-instruct":{id:`qwen/qwen3-vl-8b-instruct`,name:`Qwen: Qwen3 VL 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-8b-thinking":{id:`qwen/qwen3-vl-8b-thinking`,name:`Qwen: Qwen3 VL 8B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.117,output:1.365,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3.5-122b-a10b":{id:`qwen/qwen3.5-122b-a10b`,name:`Qwen: Qwen3.5-122B-A10B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:2.08,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-27b":{id:`qwen/qwen3.5-27b`,name:`Qwen: Qwen3.5-27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.195,output:1.56,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-35b-a3b":{id:`qwen/qwen3.5-35b-a3b`,name:`Qwen: Qwen3.5-35B-A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.1625,output:1.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-397b-a17b":{id:`qwen/qwen3.5-397b-a17b`,name:`Qwen: Qwen3.5 397B A17B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39,output:2.34,cacheRead:.195,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-9b":{id:`qwen/qwen3.5-9b`,name:`Qwen: Qwen3.5-9B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.15,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"qwen/qwen3.5-flash-02-23":{id:`qwen/qwen3.5-flash-02-23`,name:`Qwen: Qwen3.5-Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.065,output:.26,cacheRead:0,cacheWrite:.08125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.5-plus-02-15":{id:`qwen/qwen3.5-plus-02-15`,name:`Qwen: Qwen3.5 Plus 2026-02-15`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:1.56,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.5-plus-20260420":{id:`qwen/qwen3.5-plus-20260420`,name:`Qwen: Qwen3.5 Plus 2026-04-20`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.6-27b":{id:`qwen/qwen3.6-27b`,name:`Qwen: Qwen3.6 27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:2,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.6-flash":{id:`qwen/qwen3.6-flash`,name:`Qwen: Qwen3.6 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:.3125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.6-max-preview":{id:`qwen/qwen3.6-max-preview`,name:`Qwen: Qwen3.6 Max Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.3,output:7.8,cacheRead:0,cacheWrite:1.625},contextWindow:262144,maxTokens:65536},"qwen/qwen3.6-plus":{id:`qwen/qwen3.6-plus`,name:`Qwen: Qwen3.6 Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.325,output:1.95,cacheRead:0,cacheWrite:.40625},contextWindow:1e6,maxTokens:65536},"qwen/qwq-32b":{id:`qwen/qwq-32b`,name:`Qwen: QwQ 32B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.58,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"rekaai/reka-edge":{id:`rekaai/reka-edge`,name:`Reka Edge`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"relace/relace-search":{id:`relace/relace-search`,name:`Relace: Relace Search`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:128e3},"sao10k/l3-euryale-70b":{id:`sao10k/l3-euryale-70b`,name:`Sao10k: Llama 3 Euryale 70B v2.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.48,output:1.48,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"sao10k/l3.1-euryale-70b":{id:`sao10k/l3.1-euryale-70b`,name:`Sao10K: Llama 3.1 Euryale 70B v2.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.85,output:.85,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"stepfun/step-3.5-flash":{id:`stepfun/step-3.5-flash`,name:`StepFun: Step 3.5 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"tencent/hy3-preview:free":{id:`tencent/hy3-preview:free`,name:`Tencent: Hy3 preview (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"thedrummer/rocinante-12b":{id:`thedrummer/rocinante-12b`,name:`TheDrummer: Rocinante 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.16999999999999998,output:.43,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"thedrummer/unslopnemo-12b":{id:`thedrummer/unslopnemo-12b`,name:`TheDrummer: UnslopNemo 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"tngtech/deepseek-r1t2-chimera":{id:`tngtech/deepseek-r1t2-chimera`,name:`TNG: DeepSeek R1T2 Chimera`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.1,cacheRead:.15,cacheWrite:0},contextWindow:163840,maxTokens:163840},"upstage/solar-pro-3":{id:`upstage/solar-pro-3`,name:`Upstage: Solar Pro 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"x-ai/grok-3":{id:`x-ai/grok-3`,name:`xAI: Grok 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-beta":{id:`x-ai/grok-3-beta`,name:`xAI: Grok 3 Beta`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-mini":{id:`x-ai/grok-3-mini`,name:`xAI: Grok 3 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-mini-beta":{id:`x-ai/grok-3-mini-beta`,name:`xAI: Grok 3 Mini Beta`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-4":{id:`x-ai/grok-4`,name:`xAI: Grok 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"x-ai/grok-4-fast":{id:`x-ai/grok-4-fast`,name:`xAI: Grok 4 Fast`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"x-ai/grok-4.1-fast":{id:`x-ai/grok-4.1-fast`,name:`xAI: Grok 4.1 Fast`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"x-ai/grok-4.20":{id:`x-ai/grok-4.20`,name:`xAI: Grok 4.20`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"x-ai/grok-code-fast-1":{id:`x-ai/grok-code-fast-1`,name:`xAI: Grok Code Fast 1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:1e4},"xiaomi/mimo-v2-flash":{id:`xiaomi/mimo-v2-flash`,name:`Xiaomi: MiMo-V2-Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.29,cacheRead:.045,cacheWrite:0},contextWindow:262144,maxTokens:65536},"xiaomi/mimo-v2-omni":{id:`xiaomi/mimo-v2-omni`,name:`Xiaomi: MiMo-V2-Omni`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:65536},"xiaomi/mimo-v2-pro":{id:`xiaomi/mimo-v2-pro`,name:`Xiaomi: MiMo-V2-Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"xiaomi/mimo-v2.5":{id:`xiaomi/mimo-v2.5`,name:`Xiaomi: MiMo-V2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"xiaomi/mimo-v2.5-pro":{id:`xiaomi/mimo-v2.5-pro`,name:`Xiaomi: MiMo-V2.5-Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"z-ai/glm-4-32b":{id:`z-ai/glm-4-32b`,name:`Z.ai: GLM 4 32B `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"z-ai/glm-4.5":{id:`z-ai/glm-4.5`,name:`Z.ai: GLM 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:131072,maxTokens:98304},"z-ai/glm-4.5-air":{id:`z-ai/glm-4.5-air`,name:`Z.ai: GLM 4.5 Air`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.13,output:.85,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:98304},"z-ai/glm-4.5-air:free":{id:`z-ai/glm-4.5-air:free`,name:`Z.ai: GLM 4.5 Air (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:96e3},"z-ai/glm-4.5v":{id:`z-ai/glm-4.5v`,name:`Z.ai: GLM 4.5V`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:1.7999999999999998,cacheRead:.11,cacheWrite:0},contextWindow:65536,maxTokens:16384},"z-ai/glm-4.6":{id:`z-ai/glm-4.6`,name:`Z.ai: GLM 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.39,output:1.9,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:204800},"z-ai/glm-4.6v":{id:`z-ai/glm-4.6v`,name:`Z.ai: GLM 4.6V`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:.8999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:131072,maxTokens:24e3},"z-ai/glm-4.7":{id:`z-ai/glm-4.7`,name:`Z.ai: GLM 4.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.38,output:1.74,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:4096},"z-ai/glm-4.7-flash":{id:`z-ai/glm-4.7-flash`,name:`Z.ai: GLM 4.7 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:202752,maxTokens:16384},"z-ai/glm-5":{id:`z-ai/glm-5`,name:`Z.ai: GLM 5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:1.9,cacheRead:.119,cacheWrite:0},contextWindow:202752,maxTokens:16384},"z-ai/glm-5-turbo":{id:`z-ai/glm-5-turbo`,name:`Z.ai: GLM 5 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072},"z-ai/glm-5.1":{id:`z-ai/glm-5.1`,name:`Z.ai: GLM 5.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.0499999999999998,output:3.5,cacheRead:.5249999999999999,cacheWrite:0},contextWindow:202752,maxTokens:65535},"z-ai/glm-5v-turbo":{id:`z-ai/glm-5v-turbo`,name:`Z.ai: GLM 5V Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072},"~anthropic/claude-haiku-latest":{id:`~anthropic/claude-haiku-latest`,name:`Anthropic Claude Haiku Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"~anthropic/claude-opus-latest":{id:`~anthropic/claude-opus-latest`,name:`Anthropic: Claude Opus Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"~anthropic/claude-sonnet-latest":{id:`~anthropic/claude-sonnet-latest`,name:`Anthropic Claude Sonnet Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"~google/gemini-flash-latest":{id:`~google/gemini-flash-latest`,name:`Google Gemini Flash Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"~google/gemini-pro-latest":{id:`~google/gemini-pro-latest`,name:`Google Gemini Pro Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"~moonshotai/kimi-latest":{id:`~moonshotai/kimi-latest`,name:`MoonshotAI Kimi Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.7448,output:4.655,cacheRead:.1463,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"~openai/gpt-latest":{id:`~openai/gpt-latest`,name:`OpenAI GPT Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"~openai/gpt-mini-latest":{id:`~openai/gpt-mini-latest`,name:`OpenAI GPT Mini Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3}},"vercel-ai-gateway":{"alibaba/qwen-3-14b":{id:`alibaba/qwen-3-14b`,name:`Qwen3-14B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.12,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"alibaba/qwen-3-235b":{id:`alibaba/qwen-3-235b`,name:`Qwen3 235B A22b Instruct 2507`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:1.2,cacheRead:.6,cacheWrite:0},contextWindow:131e3,maxTokens:4e4},"alibaba/qwen-3-30b":{id:`alibaba/qwen-3-30b`,name:`Qwen3-30B-A3B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.08,output:.29,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"alibaba/qwen-3-32b":{id:`alibaba/qwen-3-32b`,name:`Qwen 3 32B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.16,output:.64,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"alibaba/qwen-3.6-max-preview":{id:`alibaba/qwen-3.6-max-preview`,name:`Qwen 3.6 Max Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.3,output:7.8,cacheRead:.26,cacheWrite:1.625},contextWindow:24e4,maxTokens:64e3},"alibaba/qwen3-235b-a22b-thinking":{id:`alibaba/qwen3-235b-a22b-thinking`,name:`Qwen3 235B A22B Thinking 2507`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.22999999999999998,output:2.3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:262114,maxTokens:262114},"alibaba/qwen3-coder":{id:`alibaba/qwen3-coder`,name:`Qwen3 Coder 480B A35B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.5,output:7.5,cacheRead:.3,cacheWrite:0},contextWindow:262144,maxTokens:65536},"alibaba/qwen3-coder-30b-a3b":{id:`alibaba/qwen3-coder-30b-a3b`,name:`Qwen 3 Coder 30B A3B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:8192},"alibaba/qwen3-coder-next":{id:`alibaba/qwen3-coder-next`,name:`Qwen3 Coder Next`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"alibaba/qwen3-coder-plus":{id:`alibaba/qwen3-coder-plus`,name:`Qwen3 Coder Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1,output:5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"alibaba/qwen3-max":{id:`alibaba/qwen3-max`,name:`Qwen3 Max`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:262144,maxTokens:32768},"alibaba/qwen3-max-preview":{id:`alibaba/qwen3-max-preview`,name:`Qwen3 Max Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:262144,maxTokens:32768},"alibaba/qwen3-max-thinking":{id:`alibaba/qwen3-max-thinking`,name:`Qwen 3 Max Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"alibaba/qwen3-vl-thinking":{id:`alibaba/qwen3-vl-thinking`,name:`Qwen3 VL 235B A22B Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"alibaba/qwen3.5-flash":{id:`alibaba/qwen3.5-flash`,name:`Qwen 3.5 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.001,cacheWrite:.125},contextWindow:1e6,maxTokens:64e3},"alibaba/qwen3.5-plus":{id:`alibaba/qwen3.5-plus`,name:`Qwen 3.5 Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2.4,cacheRead:.04,cacheWrite:.5},contextWindow:1e6,maxTokens:64e3},"alibaba/qwen3.6-plus":{id:`alibaba/qwen3.6-plus`,name:`Qwen 3.6 Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.09999999999999999,cacheWrite:.625},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-3-haiku":{id:`anthropic/claude-3-haiku`,name:`Claude 3 Haiku`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"anthropic/claude-3.5-haiku":{id:`anthropic/claude-3.5-haiku`,name:`Claude 3.5 Haiku`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic/claude-3.7-sonnet":{id:`anthropic/claude-3.7-sonnet`,name:`Claude 3.7 Sonnet`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic/claude-haiku-4.5":{id:`anthropic/claude-haiku-4.5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4":{id:`anthropic/claude-opus-4`,name:`Claude Opus 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.1":{id:`anthropic/claude-opus-4.1`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.5":{id:`anthropic/claude-opus-4.5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4.6":{id:`anthropic/claude-opus-4.6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.7":{id:`anthropic/claude-opus-4.7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-sonnet-4":{id:`anthropic/claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.5":{id:`anthropic/claude-sonnet-4.5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.6":{id:`anthropic/claude-sonnet-4.6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"arcee-ai/trinity-large-preview":{id:`arcee-ai/trinity-large-preview`,name:`Trinity Large Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:131e3},"arcee-ai/trinity-large-thinking":{id:`arcee-ai/trinity-large-thinking`,name:`Trinity Large Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:.8999999999999999,cacheRead:0,cacheWrite:0},contextWindow:262100,maxTokens:8e4},"bytedance/seed-1.6":{id:`bytedance/seed-1.6`,name:`Seed 1.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:2,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:256e3,maxTokens:32e3},"cohere/command-a":{id:`cohere/command-a`,name:`Command A`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8e3},"deepseek/deepseek-r1":{id:`deepseek/deepseek-r1`,name:`DeepSeek-R1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"deepseek/deepseek-v3":{id:`deepseek/deepseek-v3`,name:`DeepSeek V3 0324`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.77,output:.77,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-v3.1":{id:`deepseek/deepseek-v3.1`,name:`DeepSeek-V3.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:.28,cacheWrite:0},contextWindow:163840,maxTokens:8192},"deepseek/deepseek-v3.1-terminus":{id:`deepseek/deepseek-v3.1-terminus`,name:`DeepSeek V3.1 Terminus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.27,output:1,cacheRead:.135,cacheWrite:0},contextWindow:131072,maxTokens:65536},"deepseek/deepseek-v3.2":{id:`deepseek/deepseek-v3.2`,name:`DeepSeek V3.2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.28,output:.42,cacheRead:.028,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"deepseek/deepseek-v3.2-thinking":{id:`deepseek/deepseek-v3.2-thinking`,name:`DeepSeek V3.2 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.28,output:.42,cacheRead:.028,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"deepseek/deepseek-v4-flash":{id:`deepseek/deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek/deepseek-v4-pro":{id:`deepseek/deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.435,output:.87,cacheRead:.0036,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"google/gemini-2.0-flash":{id:`google/gemini-2.0-flash`,name:`Gemini 2.0 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.0-flash-lite":{id:`google/gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.02,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.5-flash":{id:`google/gemini-2.5-flash`,name:`Gemini 2.5 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"google/gemini-2.5-flash-lite":{id:`google/gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro":{id:`google/gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"google/gemini-3-flash":{id:`google/gemini-3-flash`,name:`Gemini 3 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:1e6,maxTokens:65e3},"google/gemini-3-pro-preview":{id:`google/gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"google/gemini-3.1-flash-lite-preview":{id:`google/gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65e3},"google/gemini-3.1-pro-preview":{id:`google/gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"google/gemma-4-26b-a4b-it":{id:`google/gemma-4-26b-a4b-it`,name:`Gemma 4 26B A4B IT`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.13,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"google/gemma-4-31b-it":{id:`google/gemma-4-31b-it`,name:`Gemma 4 31B IT`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.14,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"inception/mercury-2":{id:`inception/mercury-2`,name:`Mercury 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:.75,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"inception/mercury-coder-small":{id:`inception/mercury-coder-small`,name:`Mercury Coder Small Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:16384},"kwaipilot/kat-coder-pro-v2":{id:`kwaipilot/kat-coder-pro-v2`,name:`Kat Coder Pro V2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"meituan/longcat-flash-chat":{id:`meituan/longcat-flash-chat`,name:`LongCat Flash Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:1e5},"meta/llama-3.1-70b":{id:`meta/llama-3.1-70b`,name:`Llama 3.1 70B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.1-8b":{id:`meta/llama-3.1-8b`,name:`Llama 3.1 8B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.22,output:.22,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.2-11b":{id:`meta/llama-3.2-11b`,name:`Llama 3.2 11B Vision Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.16,output:.16,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.2-90b":{id:`meta/llama-3.2-90b`,name:`Llama 3.2 90B Vision Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.3-70b":{id:`meta/llama-3.3-70b`,name:`Llama 3.3 70B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-4-maverick":{id:`meta/llama-4-maverick`,name:`Llama 4 Maverick 17B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.24,output:.9700000000000001,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-4-scout":{id:`meta/llama-4-scout`,name:`Llama 4 Scout 17B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.16999999999999998,output:.66,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"minimax/minimax-m2":{id:`minimax/minimax-m2`,name:`MiniMax M2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:205e3,maxTokens:205e3},"minimax/minimax-m2.1":{id:`minimax/minimax-m2.1`,name:`MiniMax M2.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"minimax/minimax-m2.1-lightning":{id:`minimax/minimax-m2.1-lightning`,name:`MiniMax M2.1 Lightning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"minimax/minimax-m2.5":{id:`minimax/minimax-m2.5`,name:`MiniMax M2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.5-highspeed":{id:`minimax/minimax-m2.5-highspeed`,name:`MiniMax M2.5 High Speed`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.7":{id:`minimax/minimax-m2.7`,name:`Minimax M2.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.7-highspeed":{id:`minimax/minimax-m2.7-highspeed`,name:`MiniMax M2.7 High Speed`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131100},"mistral/codestral":{id:`mistral/codestral`,name:`Mistral Codestral`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.3,output:.8999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/devstral-2":{id:`mistral/devstral-2`,name:`Devstral 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral/devstral-small":{id:`mistral/devstral-small`,name:`Devstral Small 1.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"mistral/devstral-small-2":{id:`mistral/devstral-small-2`,name:`Devstral Small 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral/ministral-3b":{id:`mistral/ministral-3b`,name:`Ministral 3B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/ministral-8b":{id:`mistral/ministral-8b`,name:`Ministral 8B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/mistral-medium":{id:`mistral/mistral-medium`,name:`Mistral Medium 3.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"mistral/mistral-small":{id:`mistral/mistral-small`,name:`Mistral Small`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:4e3},"mistral/pixtral-12b":{id:`mistral/pixtral-12b`,name:`Pixtral 12B 2409`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/pixtral-large":{id:`mistral/pixtral-large`,name:`Pixtral Large`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"moonshotai/kimi-k2":{id:`moonshotai/kimi-k2`,name:`Kimi K2 Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.5700000000000001,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"moonshotai/kimi-k2-0905":{id:`moonshotai/kimi-k2-0905`,name:`Kimi K2 0905`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.3,cacheWrite:0},contextWindow:256e3,maxTokens:128e3},"moonshotai/kimi-k2-thinking":{id:`moonshotai/kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2-thinking-turbo":{id:`moonshotai/kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2-turbo":{id:`moonshotai/kimi-k2-turbo`,name:`Kimi K2 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:256e3,maxTokens:16384},"moonshotai/kimi-k2.5":{id:`moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2.6":{id:`moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"nvidia/nemotron-nano-12b-v2-vl":{id:`nvidia/nemotron-nano-12b-v2-vl`,name:`Nvidia Nemotron Nano 12B V2 VL`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"nvidia/nemotron-nano-9b-v2":{id:`nvidia/nemotron-nano-9b-v2`,name:`Nvidia Nemotron Nano 9B V2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.06,output:.22999999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-4-turbo":{id:`openai/gpt-4-turbo`,name:`GPT-4 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4.1":{id:`openai/gpt-4.1`,name:`GPT-4.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-mini":{id:`openai/gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:1.5999999999999999,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-nano":{id:`openai/gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4o":{id:`openai/gpt-4o`,name:`GPT-4o`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini":{id:`openai/gpt-4o-mini`,name:`GPT-4o mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5":{id:`openai/gpt-5`,name:`GPT-5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-chat":{id:`openai/gpt-5-chat`,name:`GPT 5 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5-codex":{id:`openai/gpt-5-codex`,name:`GPT-5-Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-mini":{id:`openai/gpt-5-mini`,name:`GPT-5 mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-nano":{id:`openai/gpt-5-nano`,name:`GPT-5 nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-pro":{id:`openai/gpt-5-pro`,name:`GPT-5 pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"openai/gpt-5.1-codex":{id:`openai/gpt-5.1-codex`,name:`GPT-5.1-Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-max":{id:`openai/gpt-5.1-codex-max`,name:`GPT 5.1 Codex Max`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-mini":{id:`openai/gpt-5.1-codex-mini`,name:`GPT 5.1 Codex Mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-instant":{id:`openai/gpt-5.1-instant`,name:`GPT-5.1 Instant`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.1-thinking":{id:`openai/gpt-5.1-thinking`,name:`GPT 5.1 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2":{id:`openai/gpt-5.2`,name:`GPT 5.2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-chat":{id:`openai/gpt-5.2-chat`,name:`GPT 5.2 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.2-codex":{id:`openai/gpt-5.2-codex`,name:`GPT 5.2 Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-pro":{id:`openai/gpt-5.2-pro`,name:`GPT 5.2 `,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.3-chat":{id:`openai/gpt-5.3-chat`,name:`GPT-5.3 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.3-codex":{id:`openai/gpt-5.3-codex`,name:`GPT 5.3 Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4":{id:`openai/gpt-5.4`,name:`GPT 5.4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.4-mini":{id:`openai/gpt-5.4-mini`,name:`GPT 5.4 Mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-nano":{id:`openai/gpt-5.4-nano`,name:`GPT 5.4 Nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-pro":{id:`openai/gpt-5.4-pro`,name:`GPT 5.4 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5":{id:`openai/gpt-5.5`,name:`GPT 5.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"openai/gpt-5.5-pro":{id:`openai/gpt-5.5-pro`,name:`GPT 5.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`GPT OSS 120B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`GPT OSS Safeguard 20B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/o1":{id:`openai/o1`,name:`o1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3":{id:`openai/o3`,name:`o3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-deep-research":{id:`openai/o3-deep-research`,name:`o3-deep-research`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini":{id:`openai/o3-mini`,name:`o3-mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-pro":{id:`openai/o3-pro`,name:`o3 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini":{id:`openai/o4-mini`,name:`o4-mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"perplexity/sonar":{id:`perplexity/sonar`,name:`Sonar`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:127e3,maxTokens:8e3},"perplexity/sonar-pro":{id:`perplexity/sonar-pro`,name:`Sonar Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:8e3},"prime-intellect/intellect-3":{id:`prime-intellect/intellect-3`,name:`INTELLECT 3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3":{id:`xai/grok-3`,name:`Grok 3 Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-fast":{id:`xai/grok-3-fast`,name:`Grok 3 Fast Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-mini":{id:`xai/grok-3-mini`,name:`Grok 3 Mini Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-mini-fast":{id:`xai/grok-3-mini-fast`,name:`Grok 3 Mini Fast Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-4":{id:`xai/grok-4`,name:`Grok 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"xai/grok-4-fast-non-reasoning":{id:`xai/grok-4-fast-non-reasoning`,name:`Grok 4 Fast Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:256e3},"xai/grok-4-fast-reasoning":{id:`xai/grok-4-fast-reasoning`,name:`Grok 4 Fast Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:256e3},"xai/grok-4.1-fast-non-reasoning":{id:`xai/grok-4.1-fast-non-reasoning`,name:`Grok 4.1 Fast Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"xai/grok-4.1-fast-reasoning":{id:`xai/grok-4.1-fast-reasoning`,name:`Grok 4.1 Fast Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"xai/grok-4.20-multi-agent":{id:`xai/grok-4.20-multi-agent`,name:`Grok 4.20 Multi-Agent`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-multi-agent-beta":{id:`xai/grok-4.20-multi-agent-beta`,name:`Grok 4.20 Multi Agent Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-non-reasoning":{id:`xai/grok-4.20-non-reasoning`,name:`Grok 4.20 Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-non-reasoning-beta":{id:`xai/grok-4.20-non-reasoning-beta`,name:`Grok 4.20 Beta Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-reasoning":{id:`xai/grok-4.20-reasoning`,name:`Grok 4.20 Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-reasoning-beta":{id:`xai/grok-4.20-reasoning-beta`,name:`Grok 4.20 Beta Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-code-fast-1":{id:`xai/grok-code-fast-1`,name:`Grok Code Fast 1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"xiaomi/mimo-v2-flash":{id:`xiaomi/mimo-v2-flash`,name:`MiMo V2 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:32e3},"xiaomi/mimo-v2-pro":{id:`xiaomi/mimo-v2-pro`,name:`MiMo V2 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"zai/glm-4.5":{id:`zai/glm-4.5`,name:`GLM-4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:128e3,maxTokens:96e3},"zai/glm-4.5-air":{id:`zai/glm-4.5-air`,name:`GLM 4.5 Air`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:.03,cacheWrite:0},contextWindow:128e3,maxTokens:96e3},"zai/glm-4.5v":{id:`zai/glm-4.5v`,name:`GLM 4.5V`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.6,output:1.7999999999999998,cacheRead:.11,cacheWrite:0},contextWindow:66e3,maxTokens:16e3},"zai/glm-4.6":{id:`zai/glm-4.6`,name:`GLM 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:2e5,maxTokens:96e3},"zai/glm-4.6v":{id:`zai/glm-4.6v`,name:`GLM-4.6V`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:.8999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:128e3,maxTokens:24e3},"zai/glm-4.6v-flash":{id:`zai/glm-4.6v-flash`,name:`GLM-4.6V-Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:24e3},"zai/glm-4.7":{id:`zai/glm-4.7`,name:`GLM 4.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:2.25,output:2.75,cacheRead:2.25,cacheWrite:0},contextWindow:131e3,maxTokens:4e4},"zai/glm-4.7-flash":{id:`zai/glm-4.7-flash`,name:`GLM 4.7 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.07,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131e3},"zai/glm-4.7-flashx":{id:`zai/glm-4.7-flashx`,name:`GLM 4.7 FlashX`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.06,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"zai/glm-5":{id:`zai/glm-5`,name:`GLM 5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1,output:3.1999999999999997,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:202800,maxTokens:131100},"zai/glm-5-turbo":{id:`zai/glm-5-turbo`,name:`GLM 5 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202800,maxTokens:131100},"zai/glm-5.1":{id:`zai/glm-5.1`,name:`GLM 5.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202800,maxTokens:64e3},"zai/glm-5v-turbo":{id:`zai/glm-5v-turbo`,name:`GLM 5V Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:2e5,maxTokens:128e3}},xai:{"grok-2":{id:`grok-2`,name:`Grok 2`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-1212":{id:`grok-2-1212`,name:`Grok 2 (1212)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-latest":{id:`grok-2-latest`,name:`Grok 2 Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-vision":{id:`grok-2-vision`,name:`Grok 2 Vision`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-2-vision-1212":{id:`grok-2-vision-1212`,name:`Grok 2 Vision (1212)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-2-vision-latest":{id:`grok-2-vision-latest`,name:`Grok 2 Vision Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-3":{id:`grok-3`,name:`Grok 3`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-fast":{id:`grok-3-fast`,name:`Grok 3 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-fast-latest":{id:`grok-3-fast-latest`,name:`Grok 3 Fast Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-latest":{id:`grok-3-latest`,name:`Grok 3 Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini":{id:`grok-3-mini`,name:`Grok 3 Mini`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-fast":{id:`grok-3-mini-fast`,name:`Grok 3 Mini Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:4,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-fast-latest":{id:`grok-3-mini-fast-latest`,name:`Grok 3 Mini Fast Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:4,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-latest":{id:`grok-3-mini-latest`,name:`Grok 3 Mini Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-4":{id:`grok-4`,name:`Grok 4`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:64e3},"grok-4-1-fast":{id:`grok-4-1-fast`,name:`Grok 4.1 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-1-fast-non-reasoning":{id:`grok-4-1-fast-non-reasoning`,name:`Grok 4.1 Fast (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-fast":{id:`grok-4-fast`,name:`Grok 4 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-fast-non-reasoning":{id:`grok-4-fast-non-reasoning`,name:`Grok 4 Fast (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4.20-0309-non-reasoning":{id:`grok-4.20-0309-non-reasoning`,name:`Grok 4.20 (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4.20-0309-reasoning":{id:`grok-4.20-0309-reasoning`,name:`Grok 4.20 (Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-beta":{id:`grok-beta`,name:`Grok Beta`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:15,cacheRead:5,cacheWrite:0},contextWindow:131072,maxTokens:4096},"grok-code-fast-1":{id:`grok-code-fast-1`,name:`Grok Code Fast 1`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.2,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:1e4},"grok-vision-beta":{id:`grok-vision-beta`,name:`Grok Vision Beta`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:5,cacheWrite:0},contextWindow:8192,maxTokens:4096}},zai:{"glm-4.5-air":{id:`glm-4.5-air`,name:`GLM-4.5-Air`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:98304},"glm-4.7":{id:`glm-4.7`,name:`GLM-4.7`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5-turbo":{id:`glm-5-turbo`,name:`GLM-5-Turbo`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072}}},xd=new Map;for(let[e,t]of Object.entries(bd)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);xd.set(e,n)}function Sd(e,t){return xd.get(e)?.get(t)}function Cd(){return Array.from(xd.keys())}function wd(e){let t=xd.get(e);return t?Array.from(t.values()):[]}function Td(e,t){return t.cost.input=e.cost.input/1e6*t.input,t.cost.output=e.cost.output/1e6*t.output,t.cost.cacheRead=e.cost.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=e.cost.cacheWrite/1e6*t.cacheWrite,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}function Ed(e){return!!(e.id.includes(`gpt-5.2`)||e.id.includes(`gpt-5.3`)||e.id.includes(`gpt-5.4`)||e.id.includes(`gpt-5.5`)||e.id.includes(`deepseek-v4-pro`)||e.id.includes(`opus-4-6`)||e.id.includes(`opus-4.6`)||e.id.includes(`opus-4-7`)||e.id.includes(`opus-4.7`))}function Dd(e,t){return!e||!t?!1:e.id===t.id&&e.provider===t.provider}var Od=class{isComplete;extractResult;queue=[];waiting=[];done=!1;finalResultPromise;resolveFinalResult;constructor(e,t){this.isComplete=e,this.extractResult=t,this.finalResultPromise=new Promise(e=>{this.resolveFinalResult=e})}push(e){if(this.done)return;this.isComplete(e)&&(this.done=!0,this.resolveFinalResult(this.extractResult(e)));let t=this.waiting.shift();t?t({value:e,done:!1}):this.queue.push(e)}end(e){for(this.done=!0,e!==void 0&&this.resolveFinalResult(e);this.waiting.length>0;)this.waiting.shift()({value:void 0,done:!0})}async*[Symbol.asyncIterator](){for(;;)if(this.queue.length>0)yield this.queue.shift();else if(this.done)return;else{let e=await new Promise(e=>this.waiting.push(e));if(e.done)return;yield e.value}}result(){return this.finalResultPromise}},kd=class extends Od{constructor(){super(e=>e.type===`done`||e.type===`error`,e=>{if(e.type===`done`)return e.message;if(e.type===`error`)return e.error;throw Error(`Unexpected event type for final result`)})}},Ad=e=>sd(()=>import(e),[]),jd,Md,Nd,Pd,Fd,Id,Ld,Rd,zd,Bd,Vd;function Hd(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function Ud(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function Wd(e){return(t,n,r)=>{let i=new kd;return e().then(e=>{Hd(i,e.stream(t,n,r))}).catch(e=>{let n=Ud(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function Gd(e){return(t,n,r)=>{let i=new kd;return e().then(e=>{Hd(i,e.streamSimple(t,n,r))}).catch(e=>{let n=Ud(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function Kd(){return jd||=sd(()=>import(`./anthropic-7FxZObl9.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3])),jd}function qd(){return Md||=sd(()=>import(`./azure-openai-responses-DF-9sGwe.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([4,5,2,6,3,7])),Md}function Jd(){return Nd||=sd(()=>import(`./google-Cz9fijiR.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([8,9,10,2])),Nd}function Yd(){return Pd||=sd(()=>import(`./google-gemini-cli-DDvXYFFZ.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([11,9,10,2,3])),Pd}function Xd(){return Fd||=sd(()=>import(`./google-vertex-8_3WLs6r.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([12,9,10,2])),Fd}function Zd(){return Id||=sd(()=>import(`./mistral-Cr6UaIcE.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([13,2,6])),Id}function Qd(){return Ld||=sd(()=>import(`./openai-codex-responses-BGNNQyHr.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([14,5,2,6,3])),Ld}function $d(){return Rd||=sd(()=>import(`./openai-completions-BxHDkwpI.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([15,1,2,3,7])),Rd}function ef(){return zd||=sd(()=>import(`./openai-responses-C1ZTWF9s.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([16,1,5,2,6,3,7])),zd}function tf(){return Bd?Promise.resolve(Bd):(Vd||=Ad(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),Vd)}var nf=Wd(Kd),rf=Gd(Kd),af=Wd(qd),of=Gd(qd),sf=Wd(Jd),cf=Gd(Jd),lf=Wd(Yd),uf=Gd(Yd),df=Wd(Xd),ff=Gd(Xd),pf=Wd(Zd),mf=Gd(Zd),hf=Wd(Qd),gf=Gd(Qd),_f=Wd($d),vf=Gd($d),yf=Wd(ef),bf=Gd(ef),xf=Wd(tf),Sf=Gd(tf);function Cf(){nd({api:`anthropic-messages`,stream:nf,streamSimple:rf}),nd({api:`openai-completions`,stream:_f,streamSimple:vf}),nd({api:`mistral-conversations`,stream:pf,streamSimple:mf}),nd({api:`openai-responses`,stream:yf,streamSimple:bf}),nd({api:`azure-openai-responses`,stream:af,streamSimple:of}),nd({api:`openai-codex-responses`,stream:hf,streamSimple:gf}),nd({api:`google-generative-ai`,stream:sf,streamSimple:cf}),nd({api:`google-gemini-cli`,stream:lf,streamSimple:uf}),nd({api:`google-vertex`,stream:df,streamSimple:ff}),nd({api:`bedrock-converse-stream`,stream:xf,streamSimple:Sf})}Cf();function wf(e){let t=rd(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Tf(e,t,n){return wf(e.api).stream(e,t,n)}async function Ef(e,t,n){return Tf(e,t,n).result()}function Df(e,t,n){return wf(e.api).streamSimple(e,t,n)}var Of=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),kf=n((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var r=Of();Object.defineProperty(e,`Allow`,{enumerable:!0,get:function(){return r.Allow}}),n(Of(),e);var i=class extends Error{};e.PartialJSON=i;var a=class extends Error{};e.MalformedJSON=a;function o(e,t=r.Allow.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return s(e.trim(),t)}e.parseJSON=o;var s=(e,t)=>{let n=e.length,o=0,s=e=>{throw new i(`${e} at position ${o}`)},c=e=>{throw new a(`${e} at position ${o}`)},l=()=>(m(),o>=n&&s(`Unexpected end of input`),e[o]===`"`?u():e[o]===`{`?d():e[o]===`[`?f():e.substring(o,o+4)===`null`||r.Allow.NULL&t&&n-o<4&&`null`.startsWith(e.substring(o))?(o+=4,null):e.substring(o,o+4)===`true`||r.Allow.BOOL&t&&n-o<4&&`true`.startsWith(e.substring(o))?(o+=4,!0):e.substring(o,o+5)===`false`||r.Allow.BOOL&t&&n-o<5&&`false`.startsWith(e.substring(o))?(o+=5,!1):e.substring(o,o+8)===`Infinity`||r.Allow.INFINITY&t&&n-o<8&&`Infinity`.startsWith(e.substring(o))?(o+=8,1/0):e.substring(o,o+9)===`-Infinity`||r.Allow._INFINITY&t&&1<n-o&&n-o<9&&`-Infinity`.startsWith(e.substring(o))?(o+=9,-1/0):e.substring(o,o+3)===`NaN`||r.Allow.NAN&t&&n-o<3&&`NaN`.startsWith(e.substring(o))?(o+=3,NaN):p()),u=()=>{let i=o,a=!1;for(o++;o<n&&(e[o]!==`"`||a&&e[o-1]===`\\`);)a=e[o]===`\\`?!a:!1,o++;if(e.charAt(o)==`"`)try{return JSON.parse(e.substring(i,++o-Number(a)))}catch(e){c(String(e))}else if(r.Allow.STR&t)try{return JSON.parse(e.substring(i,o-Number(a))+`"`)}catch{return JSON.parse(e.substring(i,e.lastIndexOf(`\\`))+`"`)}s(`Unterminated string literal`)},d=()=>{o++,m();let i={};try{for(;e[o]!==`}`;){if(m(),o>=n&&r.Allow.OBJ&t)return i;let a=u();m(),o++;try{i[a]=l()}catch(e){if(r.Allow.OBJ&t)return i;throw e}m(),e[o]===`,`&&o++}}catch{if(r.Allow.OBJ&t)return i;s(`Expected '}' at end of object`)}return o++,i},f=()=>{o++;let n=[];try{for(;e[o]!==`]`;)n.push(l()),m(),e[o]===`,`&&o++}catch{if(r.Allow.ARR&t)return n;s(`Expected ']' at end of array`)}return o++,n},p=()=>{if(o===0){e===`-`&&c(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(r.Allow.NUM&t)try{return JSON.parse(e.substring(0,e.lastIndexOf(`e`)))}catch{}c(String(n))}}let i=o;for(e[o]===`-`&&o++;e[o]&&`,]}`.indexOf(e[o])===-1;)o++;o==n&&!(r.Allow.NUM&t)&&s(`Unterminated number literal`);try{return JSON.parse(e.substring(i,o))}catch{e.substring(i,o)===`-`&&s(`Not sure what '-' is`);try{return JSON.parse(e.substring(i,e.lastIndexOf(`e`)))}catch(e){c(String(e))}}},m=()=>{for(;o<n&&`
131
+ `)?xa(e,ya(t)):e.startsWith(` `)?xa(e,t):xa(e,ba(t))}[...[...fa,`_`,`$`],...pa],[...pa];function Ca(e){return R(e,``)?[]:[e.slice(0,1),e.slice(1)]}function wa(e,t){return Gt(e,(e,n)=>t.startsWith(e)?!0:wa(n,t),()=>!1)}function Ta(e,t,n=``){return la(Ca(t),(r,i)=>wa(e,t)?[n,t]:Ta(e,i,`${n}${r}`),()=>[])}function Ea(e,t){return la(Ta(e,t),(e,t)=>R(e,``)?[]:[e,t],()=>[])}var Da=(e,t,n=()=>[])=>e.length===2?t(e):n(),bte=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[ote(e),t]),xte=e=>Da(Sa(`.*`,e),([e,t])=>[ste(e),t]),Ste=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[cte(e),t]),Cte=e=>Da(Sa(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[lte(e),t]),wte=e=>Da(Sa(`(?!)`,e),([e,t])=>[ute(e),t]),Oa=e=>Da(Ea([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[dte(e),t]),ka=e=>Da(Da(bte(e),([e,t])=>[e,t],()=>Da(xte(e),([e,t])=>[e,t],()=>Da(Ste(e),([e,t])=>[e,t],()=>Da(Cte(e),([e,t])=>[e,t],()=>Da(wte(e),([e,t])=>[e,t],()=>Da(Aa(e),([e,t])=>[e,t],()=>Da(Oa(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[fte(e),t]),Aa=e=>Da(Da(Sa(`(`,e),([e,t])=>Da(Na(t),([t,n])=>Da(Sa(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[pte(e),t]),ja=e=>Da(Da(Da(Ma(e),([e,t])=>Da(Sa(`|`,t),([t,n])=>Da(ja(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>Da(Da(Ma(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>Da([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[mte(e),t]),Ma=e=>Da(Da(ka(e),([e,t])=>Da(Na(t),([t,n])=>[[e,t],n])),([e,t])=>[hte(e),t]),Na=e=>Da(Da(ja(e),([e,t])=>[e,t],()=>Da(Ma(e),([e,t])=>[e,t],()=>[])),([e,t])=>[gte(e),t]),Pa=e=>Da(Da(Sa(`^`,e),([e,t])=>Da(Na(t),([t,n])=>Da(Sa(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[_te(e),t]);function Fa(e){return e.join(`|`)}function Ia(e){return e.slice(1,e.length-1)}function La(e,t,n){return Ja(t,`${n}${e}`)}function Ra(e,t){return Ja(e,`${t}${Gr}`)}function za(e,t){return Ja(e,`${t}${Yr}`)}function Ba(e,t){return Ja(e,`${t}${fi}`)}function Va(e,t){return qa(sr([ri(`false`),ri(`true`)]),e,t)}function Ha(e,t){return Ja(e,`${t}.*`)}function Ua(e,t,n){return Ja(t,`${n}${Ia(e)}`)}function Wa(e,t,n){return qa(Za(e,{}),t,n)}function Ga(e,t,n){return Ka(Pi(e),t,n)}function Ka(e,t,n,r=[]){return Gt(e,(e,i)=>Ka(i,t,n,[...r,qa(e,[],``)]),()=>Ja(t,`${n}(${Fa(r)})`))}function qa(e,t,n){return gr(e)?Ga(e.enum,t,n):Zr(e)?za(t,n):li(e)?La(e.const,t,n):qr(e)?Ra(t,n):Jr(e)?Va(t,n):mi(e)?Ba(t,n):vi(e)?Ha(t,n):to(e)?Ua(e.pattern,t,n):eo(e)?Wa(e.parameters[0],t,n):cr(e)?Ka(e.anyOf,t,n):Qn}function Ja(e,t){return Gt(e,(e,n)=>qa(e,n,t),()=>t)}function Ya(e){return`^${Ja(e,``)}$`}function Xa(e){return Ti(Ya(e))}function Za(e,t){return Ru(e)?hn(Xa(e),{},t):$a(e,t)}function Qa(e,t,n,r){return Za(Wu(e,t,n),r)}function $a(e,t={}){return Sn(`TemplateLiteral`,[e],t)}function eo(e){return _n(e)&&Kt(e,`action`)&&R(e.action,`TemplateLiteral`)}function to(e){return gn(e,`TemplateLiteral`)}function no(e){return pn({"~kind":`ExtendsUnion`},{inferred:e})}function ro(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`inferred`)&&R(e[`~kind`],`ExtendsUnion`)&&At(e.inferred)}function io(e){return pn({"~kind":`ExtendsTrue`},{inferred:e})}function ao(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`inferred`)&&R(e[`~kind`],`ExtendsTrue`)&&At(e.inferred)}function oo(){return pn({"~kind":`ExtendsFalse`},{})}function so(e){return At(e)&&Kt(e,`~kind`)&&R(e[`~kind`],`ExtendsFalse`)}function co(e){return ro(e)||ao(e)}function lo(e,t,n){return co(e)?t(e.inferred):n()}function uo(e,t,n,r){return lo(Zo(e,n,r),r=>io(ct(ct(e,r),{[t]:n})),()=>oo())}function fo(e,t){return io(e)}function po(e,t,n){return Zo(e,t,Fi(n))}function mo(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>mo(e,t,r),()=>oo()),()=>io(e))}function ho(e,t,n){return Zo(e,t,Mi(n))}function go(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>io(e),()=>go(e,t,r)),()=>oo())}function _o(e,t,n){return Zn(n)?fo(e,t):gr(n)?po(e,t,n.enum):hr(n)?uo(e,n.name,t,n.extends):vr(n)?mo(e,t,n.allOf):to(n)?ho(e,t,n.pattern):cr(n)?go(e,t,n.anyOf):dr(n)?io(e):oo()}function vo(e,t,n){return hr(n)?_o(e,t,n):Zn(n)||dr(n)?io(e):no(e)}function yo(e,t){let n=kn(e),r=kn(t);return n&&r||!n&&r?!0:!(n&&!r)}function bo(e,t,n,r){return zn(r)?yo(t,r)?Zo(e,n,r.items):oo():_o(e,t,r)}function xo(e,t,n){return Hn(n)?Zo(e,t,n.iteratorItems):_o(e,Vn(t),n)}function So(e,t,n){return qr(n)?io(e):_o(e,t,n)}function Co(e,t,n){return Jr(n)?io(e):_o(e,t,n)}function wo(e,t,n,r,i){let a=hr(r)?t:r,o=hr(r)?r:t,s=Nn(t),c=Nn(r);return!s&&c?oo():lo(Zo(e,a,o),e=>Do(e,n,i),()=>oo())}function To(e,t,n,r){return Gt(r,(r,i)=>wo(e,t,n,r,i),()=>Nn(t)?io(e):oo())}function Eo(e,t,n){return Gt(t,(t,r)=>To(e,t,r,n),()=>io(e))}function Do(e,t,n){return Eo(e,t,n)}function Oo(e,t,n){return sa(n)?io(e):Zo(e,t,n)}function ko(e,t,n,r){return Zn(r)||dr(r)?io(e):Wn(r)?lo(Do(e,t,r.parameters),e=>Oo(e,n,r.instanceType),()=>oo()):oo()}function Ao(e,t,n){return Zo(e,Ii(t),n)}function jo(e,t,n,r){return Zn(r)||dr(r)?io(e):Kn(r)?lo(Do(e,t,r.parameters),e=>Oo(e,n,r.returnType),()=>oo()):oo()}function Tte(e,t,n){return Zr(n)||mi(n)?io(e):_o(e,t,n)}function Ete(e,t,n){return Zo(e,Gi(t),n)}function Dte(e,t,n){return $r(n)?Zo(e,t,n.iteratorItems):_o(e,Qr(t),n)}function Mo(e,t,n){return t===n?io(e):oo()}function Ote(e,t,n){return li(n)?Mo(e,t,n.const):qr(n)?io(e):_o(e,ri(t),n)}function kte(e,t,n){return li(n)?Mo(e,t,n.const):Jr(n)?io(e):_o(e,ri(t),n)}function Ate(e,t,n){return li(n)?Mo(e,t,n.const):mi(n)?io(e):_o(e,ri(t),n)}function jte(e,t,n){return li(n)?Mo(e,t,n.const):vi(n)?io(e):_o(e,ri(t),n)}function Mte(e,t,n){return St(t.const)?Ote(e,t.const,n):Ct(t.const)?kte(e,t.const,n):Ot(t.const)?Ate(e,t.const,n):jt(t.const)?jte(e,t.const,n):br()}function Nte(e,t,n){return hr(n)?_o(e,t,n):io(e)}function Pte(e,t,n){return di(n)?io(e):_o(e,t,n)}function Fte(e,t,n){return mi(n)?io(e):_o(e,t,n)}function Ite(e,t,n){return Nn(t)?Nn(n)?io(e):oo():io(e)}function Lte(e,t,n){return hr(n)&&er(n.extends)?oo():lo(Zo(e,t,n),e=>Ite(e,t,n),()=>oo())}function Rte(e,t){return e.reduce((e,n)=>n in t&&co(t[n])?{...e,...t[n].inferred}:br(),{})}function zte(e,t,n){let r={};for(let i of Yt(n))r[i]=i in t?Lte({},t[i],n[i]):Nn(n[i])?hr(n[i])?io(ct(e,{[n[i].name]:n[i].extends})):io(e):oo();let i=Xt(r).every(e=>co(e)),a=i?Rte(Yt(r),r):{};return i?io(a):oo()}function Bte(e,t,n){let r=zte(e,t,n);return co(r)?io(ct(e,r.inferred)):oo()}function Vte(e,t,n){return Bte(e,t,n)}function Hte(e,t,n){return ar(n)?Vte(e,t,n.properties):_o(e,ir(t),n)}function Ute(e,t,n){return Tn(n)?Zo(e,t,n.item):_o(e,wn(t),n)}function Wte(e,t,n){return vi(n)?io(e):_o(e,t,n)}function Gte(e,t,n){return gi(n)?io(e):_o(e,t,n)}function Kte(e,t,n){return Zo(e,Mi(t),n)}function No(e,t){return pn({"~kind":`Inferrable`},{name:e,type:t},{})}function Po(e){return At(e)&&Kt(e,`~kind`)&&Kt(e,`name`)&&Kt(e,`type`)&&R(e[`~kind`],`Inferrable`)&&jt(e.name)&&At(e.type)}function Fo(e){return aa(e)?hr(e.items)?zn(e.items.extends)?No(e.items.name,e.items.extends.items):dr(e.items.extends)?No(e.items.name,e.items.extends):void 0:br():void 0}function Io(e){return hr(e)?No(e.name,e.extends):void 0}function Lo(e,t,n=[]){return Gt(e,(e,r)=>lo(Zo({},e,t),()=>Lo(r,t,[...n,e]),()=>void 0),()=>n)}function qte(e,t,n,r){let i=Lo(n,r);return bt(i)?io(ct(e,{[t]:Li(i)})):oo()}function Ro(e,t,n,r){let i=Lo(n,r);return bt(i)?io(ct(e,{[t]:sr(i)})):oo()}function Jte(e){return[...e].reverse()}function zo(e,t){return t?Jte(e):e}function Yte(e){let t=e.length>0?e[0]:void 0;return _n(_n(t)?Fo(t):void 0)}function Xte(e,t,n,r,i,a){return lo(Zo(e,n,i),e=>Vo(e,t,r,a),()=>oo())}function Zte(e,t,n,r,i){let a=Fo(r);return Po(a)?qte(e,a.name,zo(n,t),a.type):Gt(n,(n,a)=>Xte(e,t,n,a,r,i),()=>oo())}function Bo(e,t,n,r){return Gt(r,(r,i)=>Zte(e,t,n,r,i),()=>R(n.length,0)?io(e):oo())}function Vo(e,t,n,r){return Bo(e,t,n,r)}function Ho(e,t,n){let r=Uu(e,{callstack:[]},n),i=Yte(r);return Vo(e,i,zo(t,i),zo(r,i))}function Uo(e,t,n){let r=Io(n);return Po(r)?Ro(e,r.name,t,r.type):Gt(t,(t,r)=>lo(Zo(e,t,n),e=>Uo(e,r,n),()=>oo()),()=>io(e))}function Wo(e,t,n){let r=Uu(e,{callstack:[]},t);return Ri(n)?Ho(e,r,n.items):zn(n)?Uo(e,r,n.items):_o(e,Li(r),n)}function Go(e,t,n){return sa(n)||oa(n)?io(e):_o(e,t,n)}function Ko(e,t,n){return Gt(n,(n,r)=>lo(Zo(e,t,n),e=>io(e),()=>Ko(e,t,r)),()=>oo())}function qo(e,t,n){return Gt(t,(t,r)=>lo(Ko(e,t,n),e=>qo(e,r,n),()=>oo()),()=>io(e))}function Jo(e,t,n){let r=Io(n);return Po(r)?Ro(e,r.name,t,r.type):cr(n)?qo(e,t,n.anyOf):qo(e,t,[n])}function Yo(e,t,n){return hr(n)?_o(e,t,n):Zn(n)||dr(n)?io(e):oo()}function Xo(e,t,n){return sa(n)?io(e):_o(e,t,n)}function Zo(e,t,n){return Zn(t)?vo(e,t,n):zn(t)?bo(e,t,t.items,n):Hn(t)?xo(e,t.iteratorItems,n):qr(t)?So(e,t,n):Jr(t)?Co(e,t,n):Wn(t)?ko(e,t.parameters,t.instanceType,n):gr(t)?Ao(e,t,n):Kn(t)?jo(e,t.parameters,t.returnType,n):Zr(t)?Tte(e,t,n):vr(t)?Ete(e,t.allOf,n):$r(t)?Dte(e,t.iteratorItems,n):li(t)?Mte(e,t,n):er(t)?Nte(e,t,n):di(t)?Pte(e,t,n):mi(t)?Fte(e,t,n):ar(t)?Hte(e,t.properties,n):Tn(t)?Ute(e,t.item,n):vi(t)?Wte(e,t,n):gi(t)?Gte(e,t,n):to(t)?Kte(e,t.pattern,n):Ri(t)?Wo(e,t.items,n):oa(t)?Go(e,t,n):cr(t)?Jo(e,t.anyOf,n):dr(t)?Yo(e,t,n):sa(t)?Xo(e,t,n):oo()}function Qo(e,t){return Gi([...e,ir(t)])}function $o(e,t,n){return Ru(e)?hn(Qo(e,t),{},n):ts(e,t,n)}function es(e,t,n,r,i){return $o(Wu(e,t,n),Hu(e,t,r),i)}function ts(e,t,n={}){return Sn(`Interface`,[e,t],n)}function ns(e){return _n(e)&&Kt(e,`action`)&&R(e.action,`Interface`)}function rs(e,t,n){return e.includes(n)?!0:os([...e,n],t,t[n])}function is(e,t,n){return as(e,t,rr(n))}function as(e,t,n){return Gt(n,(n,r)=>os(e,t,n)?!0:as(e,t,r),()=>!1)}function os(e,t,n){return Jn(n)?rs(e,t,n.$ref):zn(n)?os(e,t,n.items):Hn(n)?os(e,t,n.iteratorItems):Wn(n)?as(e,t,[...n.parameters,n.instanceType]):Kn(n)?as(e,t,[...n.parameters,n.returnType]):ns(n)?is(e,t,n.parameters[1]):vr(n)?as(e,t,n.allOf):$r(n)?os(e,t,n.iteratorItems):ar(n)?is(e,t,n.properties):Tn(n)?os(e,t,n.item):cr(n)?as(e,t,n.anyOf):Ri(n)?as(e,t,n.items):ia(n)?os(e,t,ra(n)):!1}function ss(e,t,n){return os(e,t,n)}function cs(e,t){return t.reduce((t,n)=>n in e?ss([n],e,e[n])?[...t,n]:t:br(),[])}function ls(e){return cs(e,nr(e))}function us(e,t,n){return n.includes(t)?n:t in e?ps(e,e[t],[...n,t]):br()}function ds(e,t,n){return fs(e,rr(t),n)}function fs(e,t,n){return t.reduce((t,n)=>ps(e,n,t),n)}function ps(e,t,n){return Jn(t)?us(e,t.$ref,n):zn(t)?ps(e,t.items,n):Hn(t)?ps(e,t.iteratorItems,n):Wn(t)?fs(e,[...t.parameters,t.instanceType],n):Kn(t)?fs(e,[...t.parameters,t.returnType],n):ns(t)?ds(e,t.parameters[1],n):vr(t)?fs(e,t.allOf,n):$r(t)?ps(e,t.iteratorItems,n):ar(t)?ds(e,t.properties,n):Tn(t)?ps(e,t.item,n):cr(t)?fs(e,t.anyOf,n):Ri(t)?fs(e,t.items,n):ia(t)?ps(e,ra(t),n):n}function ms(e,t,n){return ps(e,n,[t])}function hs(e){return Xn()}function gs(e){return Yt(e).reduce((t,n)=>({...t,[n]:vs(e[n])}),{})}function _s(e){return e.reduce((e,t)=>[...e,vs(t)],[])}function vs(e){return Jn(e)?hs(e.$ref):zn(e)?Rn(vs(e.items),Bn(e)):Hn(e)?Vn(vs(e.iteratorItems)):Wn(e)?Un(_s(e.parameters),vs(e.instanceType)):Kn(e)?Gn(_s(e.parameters),vs(e.returnType)):vr(e)?_r(_s(e.allOf)):$r(e)?Qr(vs(e.iteratorItems)):ar(e)?ir(gs(e.properties)):Tn(e)?wn(vs(e.item)):ia(e)?tte(na(e),vs(ra(e))):cr(e)?sr(_s(e.anyOf)):Ri(e)?Li(_s(e.items)):e}function ys(e,t){return t in e?vs(e[t]):ur()}function bs(e){return ys(e.$defs,e.$ref)}function xs(e,t,n){let r=Wu(e,{callstack:[]},t),i=Hu({},{callstack:[]},n);return Gi([...r,ir(i)])}function Ss(e,t){return Yt(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=ns(r)?xs(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function Cs(e,t,n){return fr(Ss(e,ms(e,t,n)),t)}function ws(e,t){return t in e?Jn(e[t])?ws(e,e[t].$ref):e[t]:$n()}function Ts(e,t){return ws(e,t)}function Es(e){return pr(e)?bs(e):gee(e)?ur():e}function Ds(e,t,n){return Zo(e,Es(t),Es(n))}var Os=`equal`,ks=`disjoint`,As=`left-inside`,js=`right-inside`;function Ms(e,t){let n=[dr(e)?oo():Ds({},e,t),dr(e)?io({}):Ds({},t,e)];return co(n[0])&&co(n[1])?Os:co(n[0])&&so(n[1])?As:so(n[0])&&co(n[1])?js:ks}function Ns(e,t){return t.filter(t=>Ms(e,t)!==`right-inside`)}function Ps(e,t){return R(t.some(t=>{let n=Ms(e,t);return R(n,`left-inside`)||R(n,`equal`)}),!1)}function Fs(e,t){let n=qi(e);return Zn(n)?[n]:Ps(n,t)?[...Ns(n,t),n]:t}function Is(e){return e.reduce((e,t)=>ar(t)?[...e,t]:er(t)?e:Fs(t,e),[])}function Ls(e){let t=Yi(Is(e));return t.length===0?$n():t.length===1?t[0]:sr(t)}function Rs(e,t){return hn(qi(e),{},t)}function zs(e,t,n,r){return Rs(Ku(e,t,n),r)}function Bs(e,t=[]){return Cn(e)&&R(e.action,`Conditional`)?Jn(e.parameters[0])?Bs(e.parameters[2],Bs(e.parameters[3],[...t,e.parameters[0].$ref])):Bs(e.parameters[2],Bs(e.parameters[3],t)):Cn(e)&&R(e.action,`Mapped`)&&Cn(e.parameters[1])&&R(e.parameters[1].action,`KeyOf`)&&Jn(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function Vs(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function Hs(e,t,n=[]){return Gt(e,(e,r)=>Gt(t,(t,i)=>Hs(r,i,[...n,[t,e]]),()=>n),()=>n)}function Us(e){return cr(e)?[...e.anyOf]:[e]}function Ws(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function Gs(e,t){return t.reduce((t,n)=>[...t,...Ws(e,n)],[])}function Ks(e){return e.reduce((e,t)=>R(t[0],!0)?Gs(e,Us(t[1])):Gs(e,[t[1]]),[[]])}function qs(e,t,n){let r=Hs(t,Vs(e,Bs(n)));return Cn(n)&&R(n.action,`Conditional`)||Cn(n)&&R(n.action,`Mapped`)?Ks(r):[t]}function Js(){return[`(not-resolvable)`,$n()]}function Ys(){return[`(not-generic)`,$n()]}function Xs(e,t,n){return[e,mee(t,n)]}function Zs(e,t,n){return t in e?Qs(e,t,e[t],n):Js()}function Qs(e,t,n,r){return Yn(n)?Xs(t,n.parameters,n.expression):Jn(n)?Zs(e,n.$ref,r):Ys()}function $s(e,t,n){return Qs(e,`(anonymous)`,t,n)}function ec(e,t,n){if(hr(t)||fc(t)||co(Ds({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function tc(e,t,n,r,i){let a=Ku(e,t,i);return ec(n,a,r),ct(e,{[n]:a})}function nc(e,t,n,r,i){let a=Ku(e,t,n.extends),o=Ku(e,t,n.equals);return Gt(i,(i,o)=>rc(tc(e,t,n.name,a,i),t,r,o),()=>rc(tc(e,t,n.name,a,o),t,r,[]))}function rc(e,t,n,r){return Gt(n,(n,i)=>nc(e,t,n,i,r),()=>e)}function ic(e,t,n,r){return rc(e,t,n,r)}function ac(e){return Pt(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function oc(e,t){return R(ac(e),t)}function sc(e,t,n,r,i,a){return Ku(e,t,Ku(ic(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function cc(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,sc(e,t,n,r,i,o)],[])}function lc(e,t,n,r,i,a){let o=cc(e,t,n,r,i,qs(r,a,i));return R(o.length,1)?o[0]:Ki(o)}function uc(e,t,n,r){let i=Wu(e,t,r),a=$s(e,n,r),o=a[0],s=a[1];return Yn(s)?oc(t,o)?dc(qn(o),i):lc(e,t,qn(o),s.parameters,s.expression,i):dc(n,i)}function dc(e,t){return pn({"~kind":`Call`},{target:e,arguments:t},{})}function fc(e){return gn(e,`Call`)}function pc(e,t){return e(t)}function mc(e,t){return jt(t)?ri(pc(e,t)):ri(t)}function hc(e,t){return _c(e,Mi(t))}function gc(e,t){return sr(t.map(t=>_c(e,t)))}function _c(e,t){return li(t)?mc(e,t.const):to(t)?hc(e,t.pattern):cr(t)?gc(e,t.anyOf):t}function vc(e,t={}){return Sn(`Capitalize`,[e],t)}function yc(e,t={}){return Sn(`Lowercase`,[e],t)}function bc(e,t={}){return Sn(`Uncapitalize`,[e],t)}function xc(e,t={}){return Sn(`Uppercase`,[e],t)}var Sc=e=>e[0].toUpperCase()+e.slice(1),Cc=e=>e.toLowerCase(),wc=e=>e[0].toLowerCase()+e.slice(1),Tc=e=>e.toUpperCase();function Ec(e,t){return Ru([e])?hn(_c(Sc,e),{},t):vc(e,t)}function Dc(e,t){return Ru([e])?hn(_c(Cc,e),{},t):yc(e,t)}function Oc(e,t){return Ru([e])?hn(_c(wc,e),{},t):bc(e,t)}function kc(e,t){return Ru([e])?hn(_c(Tc,e),{},t):xc(e,t)}function Ac(e,t,n,r){return Ec(Ku(e,t,n),r)}function jc(e,t,n,r){return Dc(Ku(e,t,n),r)}function Mc(e,t,n,r){return Oc(Ku(e,t,n),r)}function Nc(e,t,n,r){return kc(Ku(e,t,n),r)}function Pc(e,t,n,r,i={}){return Sn(`Conditional`,[e,t,n,r],i)}function Fc(e,t,n,r,i,a){let o=Ds(e,n,r);return ro(o)?sr([Ku(o.inferred,t,i),Ku(e,t,a)]):ao(o)?Ku(o.inferred,t,i):Ku(e,t,a)}function Ic(e,t,n,r,i,a,o){return Ru([n,r])?hn(Fc(e,t,n,r,i,a),{},o):Pc(n,r,i,a,o)}function Lc(e,t,n,r,i,a,o){return Ic(e,t,Ku(e,t,n),Ku(e,t,r),i,a,o)}function Rc(e,t={}){return Sn(`ConstructorParameters`,[e],t)}function zc(e){return Li(Uu({},{callstack:[]},Wn(e)?e.parameters:[]))}function Bc(e,t){return Ru([e])?hn(zc(e),{},t):Rc(e,t)}function Vc(e,t,n,r){return Bc(Ku(e,t,n),r)}function Hc(e,t,n={}){return Sn(`Exclude`,[e,t],n)}function Uc(e,t){return e.reduce((e,n)=>[...e,...Wc(n,t)],[])}function Wc(e,t){return co(Ds({},e,t))?[]:[e]}function Qte(e,t){return Ki(gr(e)?Uc(Pi(e.enum),t):cr(e)?Uc(Yi(e.anyOf),t):Wc(e,t))}function Gc(e,t,n){return Ru([e,t])?hn(Qte(e,t),{},n):Hc(e,t,n)}function $te(e,t,n,r,i){return Gc(Ku(e,t,n),Ku(e,t,r),i)}function ene(e,t,n={}){return Sn(`Extract`,[e,t],n)}function Kc(e,t){return e.reduce((e,n)=>[...e,...qc(n,t)],[])}function qc(e,t){return co(Ds({},e,t))?[e]:[]}function tne(e,t){return Ki(gr(e)?Kc(Pi(e.enum),t):cr(e)?Kc(Yi(e.anyOf),t):qc(e,t))}function nne(e,t,n){return Ru([e,t])?hn(tne(e,t),{},n):ene(e,t,n)}function rne(e,t,n,r,i){return nne(Ku(e,t,n),Ku(e,t,r),i)}function ine(e,t,n={}){return Sn(`Index`,[e,t],n)}function ane(e,t){return Yc(Ts(e,t))}function one(e,t){let n=Yt(e).filter(e=>!Kt(t,e)),r=Yt(t).filter(t=>!Kt(e,t)),i=Yt(e).filter(e=>Kt(t,e)),a=n.reduce((t,n)=>({...t,[n]:e[n]}),{}),o=r.reduce((e,n)=>({...e,[n]:t[n]}),{}),s=i.reduce((n,r)=>({...n,[r]:Gi([e[r],t[r]])}),{});return ct(ct(a,o),s)}function sne(e){return e.reduce((e,t)=>one(e,Yc(t)),{})}function cne(e){return e}function lne(e){return Yc(Mee(Li(e)))}function une(e,t){return Yt(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:Ki([e[r],t[r]])}),{})}function Jc(e,t){return Gt(e,(e,n)=>Jc(n,une(t,Yc(e))),()=>t)}function dne(e){return Gt(e,(e,t)=>Jc(t,Yc(e)),()=>br())}function Yc(e){return pr(e)?ane(e.$defs,e.$ref):vr(e)?sne(e.allOf):cr(e)?dne(e.anyOf):Ri(e)?lne(e.items):ar(e)?cne(e.properties):{}}function Xc(e){return ir(Yc(e))}var fne=RegExp(`^(?:0|[1-9][0-9]*)$`);function Zc(e){let t=`${e}`;return fne.test(t)?parseInt(t):e}function pne(e){return ri(Zc(e))}function Qc(e){return e.map(e=>$c(e))}function $c(e){return vr(e)?_r(Qc(e.allOf)):cr(e)?sr(Qc(e.anyOf)):li(e)?pne(e.const):e}function mne(e,t){return co(Ds({},$c(t),pi()))?e:li(t)&&R(t.const,`length`)?pi():$n()}function hne(e,t){return tl(Ts(e,t))}function el(e){return e.reduce((e,t)=>[...e,...tl(t)],[])}function gne(e){return el(Pi(e))}function _ne(e){return tl(Gi(e))}function vne(e){return[`${e}`]}function yne(e){return tl(Mi(e))}function tl(e){return pr(e)?hne(e.$defs,e.$ref):gr(e)?gne(e.enum):vr(e)?_ne(e.allOf):li(e)?vne(e.const):to(e)?yne(e.pattern):cr(e)?el(e.anyOf):[]}function nl(e){return tl(e)}function rl(e,t){return t.map(t=>il(e,t))}function il(e,t){return zn(t)?Rn(il(e,t.items)):Hn(t)?Vn(il(e,t.iteratorItems)):Wn(t)?Un(rl(e,t.parameters),il(e,t.instanceType)):Kn(t)?Gn(rl(e,t.parameters),il(e,t.returnType)):$r(t)?Qr(il(e,t.iteratorItems)):Tn(t)?wn(il(e,t.item)):Ri(t)?Li(rl(e,t.items)):cr(t)?sr(rl(e,t.anyOf)):vr(t)?_r(rl(e,t.allOf)):ite(t)?ir(e):t}function bne(e,t){return il(e,t)}function xne(e,t){return bne(e,t in e?e[t]:$n())}function al(e,t){return t.reduce((t,n)=>[...t,xne(e,n)],[])}function Sne(e,t){return Ki(al(e,nl(t)))}var Cne=new RegExp(Qi);function wne(e){return e.filter(e=>Cne.test(e))}function Tne(e){return Ki(al(e,wne(nr(e))))}function Ene(e,t){return mi(t)?Tne(e):Sne(e,t)}function Dne(e){return ri(Zc(e))}function ol(e){return e.map(e=>sl(e))}function sl(e){return vr(e)?_r(ol(e.allOf)):cr(e)?sr(ol(e.anyOf)):li(e)?Dne(e.const):e}function One(e,t){return e.reduceRight((e,n,r)=>co(Ds({},ri(r),t))?[n,...e]:e,[])}function kne(e,t){return Ji(One(e,sl(t)))}function Ane(e){return Ji(e)}function jne(e,t){return li(t)&&R(t.const,`length`)?ri(e.length):mi(t)||Zr(t)?Ane(e):kne(e,t)}function Mne(e,t){return zn(e)?mne(e.items,t):ar(e)?Ene(e.properties,t):Ri(e)?jne(e.items,t):$n()}function Nne(e){return pr(e)||vr(e)||cr(e)?Xc(e):e}function Pne(e,t,n){return Ru([e,t])?hn(Mne(Nne(e),t),{},n):ine(e,t,n)}function Fne(e,t,n,r,i){return Pne(Ku(e,t,n),Ku(e,t,r),i)}function Ine(e,t={}){return Sn(`InstanceType`,[e],t)}function Lne(e){return Wn(e)?e.instanceType:$n()}function Rne(e,t){return Ru([e])?hn(Lne(e),{},t):Ine(e,t)}function zne(e,t,n,r={}){return Rne(Ku(e,t,n),r)}function cl(e,t={}){return Sn(`KeyOf`,[e],t)}function ll(){return sr([pi(),_i(),hi()])}function ul(e){return pi()}function dl(e){return e.reduce((e,t)=>ii(t)?[...e,ri(Zc(t))]:br(),[])}function fl(e){return Ji(dl(Yt(e)))}function pl(e){return na(e)}function ml(e){return Ji(e.map((e,t)=>ri(t)))}function hl(e){return Zn(e)?ll():zn(e)?ul(e.items):ar(e)?fl(e.properties):ia(e)?pl(e):Ri(e)?ml(e.items):$n()}function gl(e){return pr(e)||vr(e)||cr(e)?Xc(e):e}function _l(e,t){return Ru([e])?hn(hl(gl(e)),{},t):cl(e,t)}function vl(e,t,n,r){return _l(Ku(e,t,n),r)}function yl(e,t,n,r,i={}){return Sn(`Mapped`,[e,t,n,r],i)}function bl(e){return Cl(Mi(e))}function xl(e){return e.reduce((e,t)=>[...e,...Cl(t)],[])}function Sl(e){return Ot(e)?[ri(`${e}`)]:[ri(e)]}function Cl(e){return gr(e)?xl(Pi(e.enum)):li(e)?Sl(e.const):to(e)?bl(e.pattern):cr(e)?xl(e.anyOf):[e]}function wl(e){return Cl(e)}function Tl(e){return to(e)?Mi(e.pattern):e}function El(e,t,n,r,i,a){let o=ct(e,{[n.name]:r}),s=Tl(Ku(o,t,i)),c=Ku(o,t,a);return si(s)||ci(s)?{[s.const]:c}:{}}function Dl(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,El(e,t,n,o,i,a)],[])}function Ol(e){return e.reduce((e,t)=>[...e,ir(t)],[])}function kl(e,t,n,r,i,a){return Gi(Ol(Dl(e,t,n,wl(r),i,a)))}function Al(e,t,n,r,i,a,o){return Ru([r])?hn(kl(e,t,n,r,i,a),{},o):yl(n,r,i,a,o)}function jl(e,t,n,r,i,a,o){return Al(e,t,n,Ku(e,t,r),i,a,o)}function Ml(e,t){return Yt(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:Cs(e,n,e[n])}),{})}function Nl(e,t){return Yt(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:Ku(e,{callstack:[]},e[n])}),{})}function Pl(e,t){let n=ls(e),r=Ml(e,n),i=Nl(e,n);return hn({...r,...i},{},t)}function Fl(e,t,n,r){return Pl(ct(e,n),r)}function Il(e,t={}){return Sn(`NonNullable`,[e],t)}function Ll(e){return Gc(e,sr([ui(),ate()]),{})}function Rl(e,t){return Ru([e])?hn(Ll(e),{},t):Il(e,t)}function zl(e,t,n,r){return Rl(Ku(e,t,n),r)}function Bl(e,t,n={}){return Sn(`Omit`,[e,t],n)}function Vl(e){let t=Xc(e);return ar(t)?t.properties:br()}function Hl(e,t){return Yt(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Ul(e,t){return ir(Hl(Vl(e),nl(t)))}function Wl(e,t,n){return Ru([e,t])?hn(Ul(e,t),{},n):Bl(e,t,n)}function Gl(e,t,n,r,i){return Wl(Ku(e,t,n),Ku(e,t,r),i)}function Kl(e,t){return Sn(`Options`,[e,t],{})}function ql(e,t){return Jl(e,t)}function Jl(e,t){return Ru([e])?hn(e,{},t):Kl(e,t)}function Yl(e,t,n,r){return Jl(Ku(e,t,n),r)}function Xl(e,t={}){return Sn(`Parameters`,[e],t)}function Zl(e){return Li(Uu({},{callstack:[]},Kn(e)?e.parameters:[]))}function Ql(e,t){return Ru([e])?hn(Zl(e),{},t):Xl(e,t)}function $l(e,t,n,r){return Ql(Ku(e,t,n),r)}function eu(e,t={}){return Sn(`Partial`,[e],t)}function tu(e,t){let n=au(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function nu(e){return Gi(e.map(e=>au(e)))}function ru(e){return sr(e.map(e=>au(e)))}function iu(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:Mn(e[n])}),{}))}function au(e){return pr(e)?tu(e.$defs,e.$ref):vr(e)?nu(e.allOf):cr(e)?ru(e.anyOf):ar(e)?iu(e.properties):ir({})}function ou(e,t){return Ru([e])?hn(au(e),{},t):eu(e,t)}function su(e,t,n,r){return ou(Ku(e,t,n),r)}function cu(e,t,n={}){return Sn(`Pick`,[e,t],n)}function lu(e,t){return Yt(e).reduce((n,r)=>t.includes(r)?ct(n,{[r]:e[r]}):n,{})}function uu(e,t){return ir(lu(Vl(e),nl(t)))}function du(e,t,n){return Ru([e,t])?hn(uu(e,t),{},n):cu(e,t,n)}function fu(e,t,n,r,i){return du(Ku(e,t,n),Ku(e,t,r),i)}function pu(e,t={}){return Sn(`ReadonlyObject`,[e],t)}function mu(e){return On(Rn(e))}function hu(e,t){let n=bu(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function gu(e){return Gi(e.map(e=>bu(e)))}function _u(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:uee(e[n])}),{}))}function vu(e){return On(Li(e))}function yu(e){return sr(e.map(e=>bu(e)))}function bu(e){return zn(e)?mu(e.items):pr(e)?hu(e.$defs,e.$ref):vr(e)?gu(e.allOf):ar(e)?_u(e.properties):Ri(e)?vu(e.items):cr(e)?yu(e.anyOf):e}function xu(e,t){return Ru([e])?hn(bu(e),{},t):pu(e)}function Su(e,t,n,r){return xu(Ku(e,t,n),r)}function Cu(e,t,n,r){return r in e?ss([r],e,e[r])?n:Ku(e,t,e[r]):n}function wu(e,t){let n=Ou(Ts(e,t));return fr(ct(e,{[t]:n}),t)}function Tu(e){return Gi(e.map(e=>Ou(e)))}function Eu(e){return sr(e.map(e=>Ou(e)))}function Du(e){return ir(Yt(e).reduce((t,n)=>({...t,[n]:An(e[n])}),{}))}function Ou(e){return pr(e)?wu(e.$defs,e.$ref):vr(e)?Tu(e.allOf):cr(e)?Eu(e.anyOf):ar(e)?Du(e.properties):ir({})}function ku(e,t={}){return Sn(`Required`,[e],t)}function Au(e,t){return Ru([e])?hn(Ou(e),{},t):ku(e,t)}function ju(e,t,n,r){return Au(Ku(e,t,n),r)}function Mu(e,t={}){return Sn(`ReturnType`,[e],t)}function Nu(e){return Kn(e)?e.returnType:$n()}function Pu(e,t){return Ru([e])?hn(Nu(e),{},t):Mu(e,t)}function Fu(e,t,n,r={}){return Pu(Ku(e,t,n),r)}function Iu(e){return aa(e)?Ri(e.items)?Lu(e.items.items):hr(e.items)||Jn(e.items)?[e]:[$n()]:[e]}function Lu(e){return e.reduce((e,t)=>[...e,...Iu(t)],[])}function Ru(e){return Gt(e,(e,t)=>Jn(e)?!1:Ru(t),()=>!0)}function zu(e,t,n){return xn(e)?zu(e.type,`remove`,n):yn(e)?zu(e.type,t,`remove`):bn(e)?zu(e.type,`add`,n):vn(e)?zu(e.type,t,`add`):[e,t,n]}function Bu(e,t){return R(e,`remove`)?Pn(t):R(e,`add`)?Fn(t):t}function Vu(e,t){return R(e,`remove`)?An(t):R(e,`add`)?jn(t):t}function Hu(e,t,n){return Yt(n).reduce((r,i)=>({...r,[i]:Ku(e,t,n[i])}),{})}function Uu(e,t,n){return Lu(Wu(e,t,n))}function Wu(e,t,n){return n.map(n=>Ku(e,t,n))}function Gu(e,t,n,r,i){return R(n,`Awaited`)?Xu(e,t,r[0],i):R(n,`Capitalize`)?Ac(e,t,r[0],i):R(n,`Conditional`)?Lc(e,t,r[0],r[1],r[2],r[3],i):R(n,`ConstructorParameters`)?Vc(e,t,r[0],i):R(n,`Evaluate`)?zs(e,t,r[0],i):R(n,`Exclude`)?$te(e,t,r[0],r[1],i):R(n,`Extract`)?rne(e,t,r[0],r[1],i):R(n,`Index`)?Fne(e,t,r[0],r[1],i):R(n,`InstanceType`)?zne(e,t,r[0],i):R(n,`Interface`)?es(e,t,r[0],r[1],i):R(n,`KeyOf`)?vl(e,t,r[0],i):R(n,`Lowercase`)?jc(e,t,r[0],i):R(n,`Mapped`)?jl(e,t,r[0],r[1],r[2],r[3],i):R(n,`Module`)?Fl(e,t,r[0],i):R(n,`NonNullable`)?zl(e,t,r[0],i):R(n,`Pick`)?fu(e,t,r[0],r[1],i):R(n,`Options`)?Yl(e,t,r[0],r[1]):R(n,`Parameters`)?$l(e,t,r[0],i):R(n,`Partial`)?su(e,t,r[0],i):R(n,`Omit`)?Gl(e,t,r[0],r[1],i):R(n,`ReadonlyObject`)?Su(e,t,r[0],i):R(n,`Record`)?$ee(e,t,r[0],r[1],i):R(n,`Required`)?ju(e,t,r[0],i):R(n,`ReturnType`)?Fu(e,t,r[0],i):R(n,`TemplateLiteral`)?Qa(e,t,r[0],i):R(n,`Uncapitalize`)?Mc(e,t,r[0],i):R(n,`Uppercase`)?Nc(e,t,r[0],i):Sn(n,r,i)}function Ku(e,t,n){let r=kn(n),i=zu(n,In(n)?`add`:`none`,Nn(n)?`add`:`none`),a=Ln(i[0])?i[0].Clone():i[0],o=Jn(a)?Cu(e,t,a,a.$ref):zn(a)?Rn(Ku(e,t,a.items),Bn(a)):Hn(a)?Vn(Ku(e,t,a.iteratorItems),dee(a)):fc(a)?uc(e,t,a.target,a.arguments):Wn(a)?Un(Wu(e,t,a.parameters),Ku(e,t,a.instanceType),fee(a)):Cn(a)?Gu(e,t,a.action,a.parameters,a.options):Kn(a)?Gn(Wu(e,t,a.parameters),Ku(e,t,a.returnType),pee(a)):vr(a)?_r(Wu(e,t,a.allOf),yr(a)):$r(a)?Qr(Ku(e,t,a.iteratorItems),ei(a)):ar(a)?ir(Hu(e,t,a.properties),or(a)):Tn(a)?wn(Ku(e,t,a.item),En(a)):ia(a)?nte(ta(a),Ku(e,t,ra(a))):aa(a)?rte(Ku(e,t,a.items)):Ri(a)?Li(Uu(e,t,a.items),jee(a)):cr(a)?sr(Wu(e,t,a.anyOf),lr(a)):a,s=r?On(o):o;return Bu(i[1],Vu(i[2],s))}function qu(e,t){return Ku(e,{callstack:[]},t)}function Ju(e){return Tn(e)?Ju(e.item):e}function Yu(e,t){return Ru([e])?hn(Ju(e),{},t):Zu(e,t)}function Xu(e,t,n,r){return Yu(Ku(e,t,n),r)}function Zu(e,t={}){return Sn(`Awaited`,[e],t)}function Qu(e,t={}){return Rs(e,t)}var $u=new Map;function ed(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function td(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function nd(e,t){$u.set(e.api,{provider:{api:e.api,stream:ed(e.api,e.stream),streamSimple:td(e.api,e.streamSimple)},sourceId:t})}function rd(e){return $u.get(e)?.provider}var id=`modulepreload`,ad=function(e){return`/`+e},od={},sd=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ad(t,n),t in od)return;od[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:id,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},cd=n(((e,t)=>{t.exports={}})),ld=null,ud=null,dd=null,fd=e=>sd(()=>import(e),[]);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(fd(`node:fs`).then(e=>{ld=e.existsSync}),fd(`node:os`).then(e=>{ud=e.homedir}),fd(`node:path`).then(e=>{dd=e.join}));var pd=null;function md(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(pd===null){pd=new Map;try{let{readFileSync:e}=cd(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&pd.set(e.slice(0,t),e.slice(t+1))}}catch{}}return pd.get(e)}}var hd=null;function gd(){if(hd===null){if(!ld||!ud||!dd)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(hd=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||md(`GOOGLE_APPLICATION_CREDENTIALS`);hd=ld(e||dd(ud(),`.config`,`gcloud`,`application_default_credentials.json`))}return hd}function _d(e){if(e===`github-copilot`)return[`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`];if(e===`anthropic`)return[`ANTHROPIC_OAUTH_TOKEN`,`ANTHROPIC_API_KEY`];let t={openai:`OPENAI_API_KEY`,"azure-openai-responses":`AZURE_OPENAI_API_KEY`,deepseek:`DEEPSEEK_API_KEY`,google:`GEMINI_API_KEY`,"google-vertex":`GOOGLE_CLOUD_API_KEY`,groq:`GROQ_API_KEY`,cerebras:`CEREBRAS_API_KEY`,xai:`XAI_API_KEY`,openrouter:`OPENROUTER_API_KEY`,"vercel-ai-gateway":`AI_GATEWAY_API_KEY`,zai:`ZAI_API_KEY`,mistral:`MISTRAL_API_KEY`,minimax:`MINIMAX_API_KEY`,"minimax-cn":`MINIMAX_CN_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`}[e];return t?[t]:void 0}function vd(e){let t=_d(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!md(e));return n.length>0?n:void 0}function yd(e){let t=vd(e);if(t?.[0])return{}[t[0]]||md(t[0]);if(e===`google-vertex`){let e=gd(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||md(`GOOGLE_CLOUD_PROJECT`)||md(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||md(`GOOGLE_CLOUD_LOCATION`));if(e&&t&&n)return`<authenticated>`}if(e===`amazon-bedrock`&&({}.AWS_PROFILE||{}.AWS_ACCESS_KEY_ID&&{}.AWS_SECRET_ACCESS_KEY||{}.AWS_BEARER_TOKEN_BEDROCK||{}.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI||{}.AWS_CONTAINER_CREDENTIALS_FULL_URI||{}.AWS_WEB_IDENTITY_TOKEN_FILE||md(`AWS_PROFILE`)||md(`AWS_ACCESS_KEY_ID`)&&md(`AWS_SECRET_ACCESS_KEY`)||md(`AWS_BEARER_TOKEN_BEDROCK`)||md(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||md(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||md(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}var bd={"amazon-bedrock":{"amazon.nova-2-lite-v1:0":{id:`amazon.nova-2-lite-v1:0`,name:`Nova 2 Lite`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.33,output:2.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"amazon.nova-lite-v1:0":{id:`amazon.nova-lite-v1:0`,name:`Nova Lite`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.06,output:.24,cacheRead:.015,cacheWrite:0},contextWindow:3e5,maxTokens:8192},"amazon.nova-micro-v1:0":{id:`amazon.nova-micro-v1:0`,name:`Nova Micro`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.035,output:.14,cacheRead:.00875,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"amazon.nova-premier-v1:0":{id:`amazon.nova-premier-v1:0`,name:`Nova Premier`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:12.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:16384},"amazon.nova-pro-v1:0":{id:`amazon.nova-pro-v1:0`,name:`Nova Pro`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:3e5,maxTokens:8192},"anthropic.claude-3-5-haiku-20241022-v1:0":{id:`anthropic.claude-3-5-haiku-20241022-v1:0`,name:`Claude Haiku 3.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-5-sonnet-20240620-v1:0":{id:`anthropic.claude-3-5-sonnet-20240620-v1:0`,name:`Claude Sonnet 3.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-5-sonnet-20241022-v2:0":{id:`anthropic.claude-3-5-sonnet-20241022-v2:0`,name:`Claude Sonnet 3.5 v2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-7-sonnet-20250219-v1:0":{id:`anthropic.claude-3-7-sonnet-20250219-v1:0`,name:`Claude Sonnet 3.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic.claude-3-haiku-20240307-v1:0":{id:`anthropic.claude-3-haiku-20240307-v1:0`,name:`Claude Haiku 3`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:4096},"anthropic.claude-haiku-4-5-20251001-v1:0":{id:`anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-opus-4-1-20250805-v1:0":{id:`anthropic.claude-opus-4-1-20250805-v1:0`,name:`Claude Opus 4.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic.claude-opus-4-20250514-v1:0":{id:`anthropic.claude-opus-4-20250514-v1:0`,name:`Claude Opus 4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic.claude-opus-4-5-20251101-v1:0":{id:`anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-opus-4-6-v1":{id:`anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic.claude-opus-4-7":{id:`anthropic.claude-opus-4-7`,name:`Claude Opus 4.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic.claude-sonnet-4-20250514-v1:0":{id:`anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic.claude-sonnet-4-6":{id:`anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"au.anthropic.claude-opus-4-6-v1":{id:`au.anthropic.claude-opus-4-6-v1`,name:`AU Anthropic Claude Opus 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:16.5,output:82.5,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"au.anthropic.claude-sonnet-4-6":{id:`au.anthropic.claude-sonnet-4-6`,name:`AU Anthropic Claude Sonnet 4.6`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3.3,output:16.5,cacheRead:.33,cacheWrite:4.125},contextWindow:1e6,maxTokens:128e3},"deepseek.r1-v1:0":{id:`deepseek.r1-v1:0`,name:`DeepSeek-R1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:32768},"deepseek.v3-v1:0":{id:`deepseek.v3-v1:0`,name:`DeepSeek-V3.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.58,output:1.68,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:81920},"deepseek.v3.2":{id:`deepseek.v3.2`,name:`DeepSeek-V3.2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:81920},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`eu.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{id:`eu.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-opus-4-6-v1":{id:`eu.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"eu.anthropic.claude-opus-4-7":{id:`eu.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{id:`eu.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`eu.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"eu.anthropic.claude-sonnet-4-6":{id:`eu.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (EU)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.eu-central-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`global.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-opus-4-5-20251101-v1:0":{id:`global.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-opus-4-6-v1":{id:`global.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"global.anthropic.claude-opus-4-7":{id:`global.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"global.anthropic.claude-sonnet-4-20250514-v1:0":{id:`global.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`global.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"global.anthropic.claude-sonnet-4-6":{id:`global.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (Global)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"google.gemma-3-27b-it":{id:`google.gemma-3-27b-it`,name:`Google Gemma 3 27B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.12,output:.2,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:8192},"google.gemma-3-4b-it":{id:`google.gemma-3-4b-it`,name:`Gemma 3 4B IT`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.04,output:.08,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-405b-instruct-v1:0":{id:`meta.llama3-1-405b-instruct-v1:0`,name:`Llama 3.1 405B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:2.4,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-70b-instruct-v1:0":{id:`meta.llama3-1-70b-instruct-v1:0`,name:`Llama 3.1 70B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-1-8b-instruct-v1:0":{id:`meta.llama3-1-8b-instruct-v1:0`,name:`Llama 3.1 8B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:.22,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-2-11b-instruct-v1:0":{id:`meta.llama3-2-11b-instruct-v1:0`,name:`Llama 3.2 11B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.16,output:.16,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-2-1b-instruct-v1:0":{id:`meta.llama3-2-1b-instruct-v1:0`,name:`Llama 3.2 1B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"meta.llama3-2-3b-instruct-v1:0":{id:`meta.llama3-2-3b-instruct-v1:0`,name:`Llama 3.2 3B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"meta.llama3-2-90b-instruct-v1:0":{id:`meta.llama3-2-90b-instruct-v1:0`,name:`Llama 3.2 90B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama3-3-70b-instruct-v1:0":{id:`meta.llama3-3-70b-instruct-v1:0`,name:`Llama 3.3 70B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"meta.llama4-maverick-17b-instruct-v1:0":{id:`meta.llama4-maverick-17b-instruct-v1:0`,name:`Llama 4 Maverick 17B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.24,output:.97,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:16384},"meta.llama4-scout-17b-instruct-v1:0":{id:`meta.llama4-scout-17b-instruct-v1:0`,name:`Llama 4 Scout 17B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.17,output:.66,cacheRead:0,cacheWrite:0},contextWindow:35e5,maxTokens:16384},"minimax.minimax-m2":{id:`minimax.minimax-m2`,name:`MiniMax M2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204608,maxTokens:128e3},"minimax.minimax-m2.1":{id:`minimax.minimax-m2.1`,name:`MiniMax M2.1`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax.minimax-m2.5":{id:`minimax.minimax-m2.5`,name:`MiniMax M2.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:98304},"mistral.devstral-2-123b":{id:`mistral.devstral-2-123b`,name:`Devstral 2 123B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.magistral-small-2509":{id:`mistral.magistral-small-2509`,name:`Magistral Small 1.2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e4},"mistral.ministral-3-14b-instruct":{id:`mistral.ministral-3-14b-instruct`,name:`Ministral 14B 3.0`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.2,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.ministral-3-3b-instruct":{id:`mistral.ministral-3-3b-instruct`,name:`Ministral 3 3B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.ministral-3-8b-instruct":{id:`mistral.ministral-3-8b-instruct`,name:`Ministral 3 8B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.mistral-large-3-675b-instruct":{id:`mistral.mistral-large-3-675b-instruct`,name:`Mistral Large 3`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"mistral.pixtral-large-2502-v1:0":{id:`mistral.pixtral-large-2502-v1:0`,name:`Pixtral Large (25.02)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"mistral.voxtral-mini-3b-2507":{id:`mistral.voxtral-mini-3b-2507`,name:`Voxtral Mini 3B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.04,output:.04,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistral.voxtral-small-24b-2507":{id:`mistral.voxtral-small-24b-2507`,name:`Voxtral Small 24B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.35,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:8192},"moonshot.kimi-k2-thinking":{id:`moonshot.kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"moonshotai.kimi-k2.5":{id:`moonshotai.kimi-k2.5`,name:`Kimi K2.5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"nvidia.nemotron-nano-12b-v2":{id:`nvidia.nemotron-nano-12b-v2`,name:`NVIDIA Nemotron Nano 12B v2 VL BF16`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-nano-3-30b":{id:`nvidia.nemotron-nano-3-30b`,name:`NVIDIA Nemotron Nano 3 30B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-nano-9b-v2":{id:`nvidia.nemotron-nano-9b-v2`,name:`NVIDIA Nemotron Nano 9B v2`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.06,output:.23,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"nvidia.nemotron-super-3-120b":{id:`nvidia.nemotron-super-3-120b`,name:`NVIDIA Nemotron 3 Super 120B A12B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.15,output:.65,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"openai.gpt-oss-120b-1:0":{id:`openai.gpt-oss-120b-1:0`,name:`gpt-oss-120b`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-20b-1:0":{id:`openai.gpt-oss-20b-1:0`,name:`gpt-oss-20b`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.07,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-safeguard-120b":{id:`openai.gpt-oss-safeguard-120b`,name:`GPT OSS Safeguard 120B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai.gpt-oss-safeguard-20b":{id:`openai.gpt-oss-safeguard-20b`,name:`GPT OSS Safeguard 20B`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.07,output:.2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"qwen.qwen3-235b-a22b-2507-v1:0":{id:`qwen.qwen3-235b-a22b-2507-v1:0`,name:`Qwen3 235B A22B 2507`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:.88,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"qwen.qwen3-32b-v1:0":{id:`qwen.qwen3-32b-v1:0`,name:`Qwen3 32B (dense)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"qwen.qwen3-coder-30b-a3b-v1:0":{id:`qwen.qwen3-coder-30b-a3b-v1:0`,name:`Qwen3 Coder 30B A3B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"qwen.qwen3-coder-480b-a35b-v1:0":{id:`qwen.qwen3-coder-480b-a35b-v1:0`,name:`Qwen3 Coder 480B A35B Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.22,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen.qwen3-coder-next":{id:`qwen.qwen3-coder-next`,name:`Qwen3 Coder Next`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.22,output:1.8,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen.qwen3-next-80b-a3b":{id:`qwen.qwen3-next-80b-a3b`,name:`Qwen/Qwen3-Next-80B-A3B-Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`],cost:{input:.14,output:1.4,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"qwen.qwen3-vl-235b-a22b":{id:`qwen.qwen3-vl-235b-a22b`,name:`Qwen/Qwen3-VL-235B-A22B-Instruct`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.3,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{id:`us.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-opus-4-1-20250805-v1:0":{id:`us.anthropic.claude-opus-4-1-20250805-v1:0`,name:`Claude Opus 4.1 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"us.anthropic.claude-opus-4-20250514-v1:0":{id:`us.anthropic.claude-opus-4-20250514-v1:0`,name:`Claude Opus 4 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"us.anthropic.claude-opus-4-5-20251101-v1:0":{id:`us.anthropic.claude-opus-4-5-20251101-v1:0`,name:`Claude Opus 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-opus-4-6-v1":{id:`us.anthropic.claude-opus-4-6-v1`,name:`Claude Opus 4.6 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"us.anthropic.claude-opus-4-7":{id:`us.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"us.anthropic.claude-sonnet-4-20250514-v1:0":{id:`us.anthropic.claude-sonnet-4-20250514-v1:0`,name:`Claude Sonnet 4 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`us.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"us.anthropic.claude-sonnet-4-6":{id:`us.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (US)`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"writer.palmyra-x4-v1:0":{id:`writer.palmyra-x4-v1:0`,name:`Palmyra X4`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:122880,maxTokens:8192},"writer.palmyra-x5-v1:0":{id:`writer.palmyra-x5-v1:0`,name:`Palmyra X5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:6,cacheRead:0,cacheWrite:0},contextWindow:104e4,maxTokens:8192},"zai.glm-4.7":{id:`zai.glm-4.7`,name:`GLM-4.7`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"zai.glm-4.7-flash":{id:`zai.glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:.07,output:.4,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072},"zai.glm-5":{id:`zai.glm-5`,name:`GLM-5`,api:`bedrock-converse-stream`,provider:`amazon-bedrock`,baseUrl:`https://bedrock-runtime.us-east-1.amazonaws.com`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:101376}},anthropic:{"claude-3-5-haiku-20241022":{id:`claude-3-5-haiku-20241022`,name:`Claude Haiku 3.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-5-haiku-latest":{id:`claude-3-5-haiku-latest`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-5-sonnet-20240620":{id:`claude-3-5-sonnet-20240620`,name:`Claude Sonnet 3.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-3-5-sonnet-20241022":{id:`claude-3-5-sonnet-20241022`,name:`Claude Sonnet 3.5 v2`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-3-7-sonnet-20250219":{id:`claude-3-7-sonnet-20250219`,name:`Claude Sonnet 3.7`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-3-haiku-20240307":{id:`claude-3-haiku-20240307`,name:`Claude Haiku 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3-opus-20240229":{id:`claude-3-opus-20240229`,name:`Claude Opus 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:4096},"claude-3-sonnet-20240229":{id:`claude-3-sonnet-20240229`,name:`Claude Sonnet 3`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-haiku-4-5-20251001":{id:`claude-haiku-4-5-20251001`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-0":{id:`claude-opus-4-0`,name:`Claude Opus 4 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-1":{id:`claude-opus-4-1`,name:`Claude Opus 4.1 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-1-20250805":{id:`claude-opus-4-1-20250805`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-20250514":{id:`claude-opus-4-20250514`,name:`Claude Opus 4`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-5":{id:`claude-opus-4-5`,name:`Claude Opus 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-5-20251101":{id:`claude-opus-4-5-20251101`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6":{id:`claude-opus-4-6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-opus-4-7":{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-sonnet-4-0":{id:`claude-sonnet-4-0`,name:`Claude Sonnet 4 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-20250514":{id:`claude-sonnet-4-20250514`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5 (latest)`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5-20250929":{id:`claude-sonnet-4-5-20250929`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`anthropic`,baseUrl:`https://api.anthropic.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3}},"azure-openai-responses":{"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"gpt-4-turbo":{id:`gpt-4-turbo`,name:`GPT-4 Turbo`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-mini":{id:`gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-nano":{id:`gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-05-13":{id:`gpt-4o-2024-05-13`,name:`GPT-4o (2024-05-13)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o-2024-08-06":{id:`gpt-4o-2024-08-06`,name:`GPT-4o (2024-08-06)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-11-20":{id:`gpt-4o-2024-11-20`,name:`GPT-4o (2024-11-20)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-mini":{id:`gpt-4o-mini`,name:`GPT-4o mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-chat-latest":{id:`gpt-5-chat-latest`,name:`GPT-5 Chat Latest`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5-Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5 Mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-pro":{id:`gpt-5-pro`,name:`GPT-5 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-chat-latest":{id:`gpt-5.1-chat-latest`,name:`GPT-5.1 Chat`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-chat-latest":{id:`gpt-5.2-chat-latest`,name:`GPT-5.2 Chat`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-pro":{id:`gpt-5.2-pro`,name:`GPT-5.2 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-chat-latest":{id:`gpt-5.3-chat-latest`,name:`GPT-5.3 Chat (latest)`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 nano`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o1-pro":{id:`o1-pro`,name:`o1-pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:150,output:600,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-deep-research":{id:`o3-deep-research`,name:`o3-deep-research`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-pro":{id:`o3-pro`,name:`o3-pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini":{id:`o4-mini`,name:`o4-mini`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini-deep-research":{id:`o4-mini-deep-research`,name:`o4-mini-deep-research`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5}},cerebras:{"gpt-oss-120b":{id:`gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.25,output:.69,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"llama3.1-8b":{id:`llama3.1-8b`,name:`Llama 3.1 8B`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:8e3},"qwen-3-235b-a22b-instruct-2507":{id:`qwen-3-235b-a22b-instruct-2507`,name:`Qwen 3 235B Instruct`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:.6,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:32e3},"zai-glm-4.7":{id:`zai-glm-4.7`,name:`Z.AI GLM-4.7`,api:`openai-completions`,provider:`cerebras`,baseUrl:`https://api.cerebras.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2.25,output:2.75,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4e4}},deepseek:{"deepseek-v4-flash":{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`openai-completions`,provider:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{minimal:`high`,low:`high`,medium:`high`,high:`high`,xhigh:`max`}},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek-v4-pro":{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{minimal:`high`,low:`high`,medium:`high`,high:`high`,xhigh:`max`}},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.145,cacheWrite:0},contextWindow:1e6,maxTokens:384e3}},fireworks:{"accounts/fireworks/models/deepseek-v3p1":{id:`accounts/fireworks/models/deepseek-v3p1`,name:`DeepSeek V3.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:163840},"accounts/fireworks/models/deepseek-v3p2":{id:`accounts/fireworks/models/deepseek-v3p2`,name:`DeepSeek V3.2`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:.28,cacheWrite:0},contextWindow:16e4,maxTokens:16e4},"accounts/fireworks/models/glm-4p5":{id:`accounts/fireworks/models/glm-4p5`,name:`GLM 4.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.55,output:2.19,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"accounts/fireworks/models/glm-4p5-air":{id:`accounts/fireworks/models/glm-4p5-air`,name:`GLM 4.5 Air`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.22,output:.88,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"accounts/fireworks/models/glm-4p7":{id:`accounts/fireworks/models/glm-4p7`,name:`GLM 4.7`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.3,cacheWrite:0},contextWindow:198e3,maxTokens:198e3},"accounts/fireworks/models/glm-5":{id:`accounts/fireworks/models/glm-5`,name:`GLM 5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.5,cacheWrite:0},contextWindow:202752,maxTokens:131072},"accounts/fireworks/models/glm-5p1":{id:`accounts/fireworks/models/glm-5p1`,name:`GLM 5.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202800,maxTokens:131072},"accounts/fireworks/models/gpt-oss-120b":{id:`accounts/fireworks/models/gpt-oss-120b`,name:`GPT OSS 120B`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"accounts/fireworks/models/gpt-oss-20b":{id:`accounts/fireworks/models/gpt-oss-20b`,name:`GPT OSS 20B`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.05,output:.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"accounts/fireworks/models/kimi-k2-instruct":{id:`accounts/fireworks/models/kimi-k2-instruct`,name:`Kimi K2 Instruct`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"accounts/fireworks/models/kimi-k2-thinking":{id:`accounts/fireworks/models/kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.3,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"accounts/fireworks/models/kimi-k2p5":{id:`accounts/fireworks/models/kimi-k2p5`,name:`Kimi K2.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"accounts/fireworks/models/kimi-k2p6":{id:`accounts/fireworks/models/kimi-k2p6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"accounts/fireworks/models/minimax-m2p1":{id:`accounts/fireworks/models/minimax-m2p1`,name:`MiniMax-M2.1`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:2e5,maxTokens:2e5},"accounts/fireworks/models/minimax-m2p5":{id:`accounts/fireworks/models/minimax-m2p5`,name:`MiniMax-M2.5`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"accounts/fireworks/models/minimax-m2p7":{id:`accounts/fireworks/models/minimax-m2p7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"accounts/fireworks/models/qwen3p6-plus":{id:`accounts/fireworks/models/qwen3p6-plus`,name:`Qwen 3.6 Plus`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.1,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"accounts/fireworks/routers/kimi-k2p5-turbo":{id:`accounts/fireworks/routers/kimi-k2p5-turbo`,name:`Kimi K2.5 Turbo (firepass)`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3}},"github-copilot":{"claude-haiku-4.5":{id:`claude-haiku-4.5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:32e3},"claude-opus-4.5":{id:`claude-opus-4.5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:16e4,maxTokens:32e3},"claude-opus-4.6":{id:`claude-opus-4.6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"claude-opus-4.7":{id:`claude-opus-4.7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:64e3},"claude-sonnet-4":{id:`claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:216e3,maxTokens:16e3},"claude-sonnet-4.5":{id:`claude-sonnet-4.5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsEagerToolInputStreaming:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:144e3,maxTokens:32e3},"claude-sonnet-4.6":{id:`claude-sonnet-4.6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:32e3},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5-mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1-Codex-max`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1-Codex-mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3-Codex`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"grok-code-fast-1":{id:`grok-code-fast-1`,name:`Grok Code Fast 1`,api:`openai-completions`,provider:`github-copilot`,baseUrl:`https://api.individual.githubcopilot.com`,headers:{"User-Agent":`GitHubCopilotChat/0.35.0`,"Editor-Version":`vscode/1.107.0`,"Editor-Plugin-Version":`copilot-chat/0.35.0`,"Copilot-Integration-Id":`vscode-chat`},compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3}},google:{"gemini-1.5-flash":{id:`gemini-1.5-flash`,name:`Gemini 1.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-flash-8b":{id:`gemini-1.5-flash-8b`,name:`Gemini 1.5 Flash-8B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.0375,output:.15,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-pro":{id:`gemini-1.5-pro`,name:`Gemini 1.5 Pro`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:5,cacheRead:.3125,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.0-flash-lite":{id:`gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite":{id:`gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-06-17":{id:`gemini-2.5-flash-lite-preview-06-17`,name:`Gemini 2.5 Flash Lite Preview 06-17`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-09-2025":{id:`gemini-2.5-flash-lite-preview-09-2025`,name:`Gemini 2.5 Flash Lite Preview 09-25`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-04-17":{id:`gemini-2.5-flash-preview-04-17`,name:`Gemini 2.5 Flash Preview 04-17`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-05-20":{id:`gemini-2.5-flash-preview-05-20`,name:`Gemini 2.5 Flash Preview 05-20`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-preview-09-2025":{id:`gemini-2.5-flash-preview-09-2025`,name:`Gemini 2.5 Flash Preview 09-25`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro-preview-05-06":{id:`gemini-2.5-pro-preview-05-06`,name:`Gemini 2.5 Pro Preview 05-06`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.31,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro-preview-06-05":{id:`gemini-2.5-pro-preview-06-05`,name:`Gemini 2.5 Pro Preview 06-05`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.31,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"gemini-3.1-flash-lite-preview":{id:`gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:1},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview-customtools":{id:`gemini-3.1-pro-preview-customtools`,name:`Gemini 3.1 Pro Preview Custom Tools`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-flash-latest":{id:`gemini-flash-latest`,name:`Gemini Flash Latest`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.075,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-flash-lite-latest":{id:`gemini-flash-lite-latest`,name:`Gemini Flash-Lite Latest`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.025,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-live-2.5-flash":{id:`gemini-live-2.5-flash`,name:`Gemini Live 2.5 Flash`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"gemini-live-2.5-flash-preview-native-audio":{id:`gemini-live-2.5-flash-preview-native-audio`,name:`Gemini Live 2.5 Flash Preview Native Audio`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`],cost:{input:.5,output:2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"gemma-3-27b-it":{id:`gemma-3-27b-it`,name:`Gemma 3 27B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"gemma-4-26b-a4b-it":{id:`gemma-4-26b-a4b-it`,name:`Gemma 4 26B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192},"gemma-4-31b-it":{id:`gemma-4-31b-it`,name:`Gemma 4 31B`,api:`google-generative-ai`,provider:`google`,baseUrl:`https://generativelanguage.googleapis.com/v1beta`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192}},"google-antigravity":{"claude-opus-4-5-thinking":{id:`claude-opus-4-5-thinking`,name:`Claude Opus 4.5 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6-thinking":{id:`claude-opus-4-6-thinking`,name:`Claude Opus 4.6 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:128e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5 (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5-thinking":{id:`claude-sonnet-4-5-thinking`,name:`Claude Sonnet 4.5 Thinking (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"gemini-3-flash":{id:`gemini-3-flash`,name:`Gemini 3 Flash (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.5,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-high":{id:`gemini-3.1-pro-high`,name:`Gemini 3.1 Pro High (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.375},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-low":{id:`gemini-3.1-pro-low`,name:`Gemini 3.1 Pro Low (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:2.375},contextWindow:1048576,maxTokens:65535},"gpt-oss-120b-medium":{id:`gpt-oss-120b-medium`,name:`GPT-OSS 120B Medium (Antigravity)`,api:`google-gemini-cli`,provider:`google-antigravity`,baseUrl:`https://daily-cloudcode-pa.sandbox.googleapis.com`,reasoning:!1,input:[`text`],cost:{input:.09,output:.36,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768}},"google-gemini-cli":{"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-flash-lite-preview":{id:`gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview (Cloud Code Assist)`,api:`google-gemini-cli`,provider:`google-gemini-cli`,baseUrl:`https://cloudcode-pa.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:65535}},"google-vertex":{"gemini-1.5-flash":{id:`gemini-1.5-flash`,name:`Gemini 1.5 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-flash-8b":{id:`gemini-1.5-flash-8b`,name:`Gemini 1.5 Flash-8B (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.0375,output:.15,cacheRead:.01,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-1.5-pro":{id:`gemini-1.5-pro`,name:`Gemini 1.5 Pro (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:5,cacheRead:.3125,cacheWrite:0},contextWindow:1e6,maxTokens:8192},"gemini-2.0-flash":{id:`gemini-2.0-flash`,name:`Gemini 2.0 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.0375,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"gemini-2.0-flash-lite":{id:`gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.01875,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash":{id:`gemini-2.5-flash`,name:`Gemini 2.5 Flash (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite":{id:`gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-flash-lite-preview-09-2025":{id:`gemini-2.5-flash-lite-preview-09-2025`,name:`Gemini 2.5 Flash Lite Preview 09-25 (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-2.5-pro":{id:`gemini-2.5-pro`,name:`Gemini 2.5 Pro (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-flash-preview":{id:`gemini-3-flash-preview`,name:`Gemini 3 Flash Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3-pro-preview":{id:`gemini-3-pro-preview`,name:`Gemini 3 Pro Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"gemini-3.1-pro-preview":{id:`gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro-preview-customtools":{id:`gemini-3.1-pro-preview-customtools`,name:`Gemini 3.1 Pro Preview Custom Tools (Vertex)`,api:`google-vertex`,provider:`google-vertex`,baseUrl:`https://{location}-aiplatform.googleapis.com`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536}},groq:{"deepseek-r1-distill-llama-70b":{id:`deepseek-r1-distill-llama-70b`,name:`DeepSeek R1 Distill Llama 70B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.75,output:.99,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"gemma2-9b-it":{id:`gemma2-9b-it`,name:`Gemma 2 9B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.2,output:.2,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"groq/compound":{id:`groq/compound`,name:`Compound`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"groq/compound-mini":{id:`groq/compound-mini`,name:`Compound Mini`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"llama-3.1-8b-instant":{id:`llama-3.1-8b-instant`,name:`Llama 3.1 8B Instant`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.05,output:.08,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"llama-3.3-70b-versatile":{id:`llama-3.3-70b-versatile`,name:`Llama 3.3 70B Versatile`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"llama3-70b-8192":{id:`llama3-70b-8192`,name:`Llama 3 70B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.59,output:.79,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"llama3-8b-8192":{id:`llama3-8b-8192`,name:`Llama 3 8B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.05,output:.08,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"meta-llama/llama-4-maverick-17b-128e-instruct":{id:`meta-llama/llama-4-maverick-17b-128e-instruct`,name:`Llama 4 Maverick 17B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"meta-llama/llama-4-scout-17b-16e-instruct":{id:`meta-llama/llama-4-scout-17b-16e-instruct`,name:`Llama 4 Scout 17B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.11,output:.34,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"mistral-saba-24b":{id:`mistral-saba-24b`,name:`Mistral Saba 24B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:.79,output:.79,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"moonshotai/kimi-k2-instruct":{id:`moonshotai/kimi-k2-instruct`,name:`Kimi K2 Instruct`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"moonshotai/kimi-k2-instruct-0905":{id:`moonshotai/kimi-k2-instruct-0905`,name:`Kimi K2 Instruct 0905`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`GPT OSS 20B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`Safety GPT OSS 20B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"qwen-qwq-32b":{id:`qwen-qwq-32b`,name:`Qwen QwQ 32B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.39,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"qwen/qwen3-32b":{id:`qwen/qwen3-32b`,name:`Qwen3 32B`,api:`openai-completions`,provider:`groq`,baseUrl:`https://api.groq.com/openai/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.59,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:40960}},huggingface:{"MiniMaxAI/MiniMax-M2.1":{id:`MiniMaxAI/MiniMax-M2.1`,name:`MiniMax-M2.1`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.5":{id:`MiniMaxAI/MiniMax-M2.5`,name:`MiniMax-M2.5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.7":{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:`Qwen/Qwen3-235B-A22B-Thinking-2507`,name:`Qwen3-235B-A22B-Thinking-2507`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.3,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct`,name:`Qwen3-Coder-480B-A35B-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:2,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:66536},"Qwen/Qwen3-Coder-Next":{id:`Qwen/Qwen3-Coder-Next`,name:`Qwen3-Coder-Next`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.2,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:`Qwen/Qwen3-Next-80B-A3B-Instruct`,name:`Qwen3-Next-80B-A3B-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:66536},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:`Qwen/Qwen3-Next-80B-A3B-Thinking`,name:`Qwen3-Next-80B-A3B-Thinking`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:.3,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"Qwen/Qwen3.5-397B-A17B":{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5-397B-A17B`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"XiaomiMiMo/MiMo-V2-Flash":{id:`XiaomiMiMo/MiMo-V2-Flash`,name:`MiMo-V2-Flash`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"deepseek-ai/DeepSeek-R1-0528":{id:`deepseek-ai/DeepSeek-R1-0528`,name:`DeepSeek-R1-0528`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:3,output:5,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:163840},"deepseek-ai/DeepSeek-V3.2":{id:`deepseek-ai/DeepSeek-V3.2`,name:`DeepSeek-V3.2`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.28,output:.4,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:65536},"deepseek-ai/DeepSeek-V4-Pro":{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.145,cacheWrite:0},contextWindow:1048576,maxTokens:393216},"moonshotai/Kimi-K2-Instruct":{id:`moonshotai/Kimi-K2-Instruct`,name:`Kimi-K2-Instruct`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"moonshotai/Kimi-K2-Instruct-0905":{id:`moonshotai/Kimi-K2-Instruct-0905`,name:`Kimi-K2-Instruct-0905`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"moonshotai/Kimi-K2-Thinking":{id:`moonshotai/Kimi-K2-Thinking`,name:`Kimi-K2-Thinking`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.5":{id:`moonshotai/Kimi-K2.5`,name:`Kimi-K2.5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.6":{id:`moonshotai/Kimi-K2.6`,name:`Kimi-K2.6`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144},"zai-org/GLM-4.7":{id:`zai-org/GLM-4.7`,name:`GLM-4.7`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:204800,maxTokens:131072},"zai-org/GLM-4.7-Flash":{id:`zai-org/GLM-4.7-Flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"zai-org/GLM-5":{id:`zai-org/GLM-5`,name:`GLM-5`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072},"zai-org/GLM-5.1":{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`huggingface`,baseUrl:`https://router.huggingface.co/v1`,compat:{supportsDeveloperRole:!1},reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:202752,maxTokens:131072}},"kimi-coding":{k2p6:{id:`k2p6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kimi-for-coding":{id:`kimi-for-coding`,name:`Kimi For Coding`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`kimi-coding`,baseUrl:`https://api.kimi.com/coding`,headers:{"User-Agent":`KimiCLI/1.5`},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768}},minimax:{"MiniMax-M2.7":{id:`MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`minimax`,baseUrl:`https://api.minimax.io/anthropic`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"MiniMax-M2.7-highspeed":{id:`MiniMax-M2.7-highspeed`,name:`MiniMax-M2.7-highspeed`,api:`anthropic-messages`,provider:`minimax`,baseUrl:`https://api.minimax.io/anthropic`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}},"minimax-cn":{"MiniMax-M2.7":{id:`MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`anthropic-messages`,provider:`minimax-cn`,baseUrl:`https://api.minimaxi.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"MiniMax-M2.7-highspeed":{id:`MiniMax-M2.7-highspeed`,name:`MiniMax-M2.7-highspeed`,api:`anthropic-messages`,provider:`minimax-cn`,baseUrl:`https://api.minimaxi.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}},mistral:{"codestral-latest":{id:`codestral-latest`,name:`Codestral (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.3,output:.9,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"devstral-2512":{id:`devstral-2512`,name:`Devstral 2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"devstral-medium-2507":{id:`devstral-medium-2507`,name:`Devstral Medium`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"devstral-medium-latest":{id:`devstral-medium-latest`,name:`Devstral 2 (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"devstral-small-2505":{id:`devstral-small-2505`,name:`Devstral Small 2505`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"devstral-small-2507":{id:`devstral-small-2507`,name:`Devstral Small`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"labs-devstral-small-2512":{id:`labs-devstral-small-2512`,name:`Devstral Small 2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"magistral-medium-latest":{id:`magistral-medium-latest`,name:`Magistral Medium (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`],cost:{input:2,output:5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"magistral-small":{id:`magistral-small`,name:`Magistral Small`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"ministral-3b-latest":{id:`ministral-3b-latest`,name:`Ministral 3B (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.04,output:.04,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"ministral-8b-latest":{id:`ministral-8b-latest`,name:`Ministral 8B (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.1,output:.1,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"mistral-large-2411":{id:`mistral-large-2411`,name:`Mistral Large 2.1`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"mistral-large-2512":{id:`mistral-large-2512`,name:`Mistral Large 3`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-large-latest":{id:`mistral-large-latest`,name:`Mistral Large (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-2505":{id:`mistral-medium-2505`,name:`Mistral Medium 3`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"mistral-medium-2508":{id:`mistral-medium-2508`,name:`Mistral Medium 3.1`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-latest":{id:`mistral-medium-latest`,name:`Mistral Medium (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistral-nemo":{id:`mistral-nemo`,name:`Mistral Nemo`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"mistral-small-2506":{id:`mistral-small-2506`,name:`Mistral Small 3.2`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistral-small-2603":{id:`mistral-small-2603`,name:`Mistral Small 4`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral-small-latest":{id:`mistral-small-latest`,name:`Mistral Small (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"open-mistral-7b":{id:`open-mistral-7b`,name:`Mistral 7B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.25,output:.25,cacheRead:0,cacheWrite:0},contextWindow:8e3,maxTokens:8e3},"open-mixtral-8x22b":{id:`open-mixtral-8x22b`,name:`Mixtral 8x22B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:64e3},"open-mixtral-8x7b":{id:`open-mixtral-8x7b`,name:`Mixtral 8x7B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`],cost:{input:.7,output:.7,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:32e3},"pixtral-12b":{id:`pixtral-12b`,name:`Pixtral 12B`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"pixtral-large-latest":{id:`pixtral-large-latest`,name:`Pixtral Large (latest)`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3}},openai:{"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"gpt-4-turbo":{id:`gpt-4-turbo`,name:`GPT-4 Turbo`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4.1":{id:`gpt-4.1`,name:`GPT-4.1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-mini":{id:`gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.4,output:1.6,cacheRead:.1,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4.1-nano":{id:`gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.1,output:.4,cacheRead:.03,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-05-13":{id:`gpt-4o-2024-05-13`,name:`GPT-4o (2024-05-13)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o-2024-08-06":{id:`gpt-4o-2024-08-06`,name:`GPT-4o (2024-08-06)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-2024-11-20":{id:`gpt-4o-2024-11-20`,name:`GPT-4o (2024-11-20)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-4o-mini":{id:`gpt-4o-mini`,name:`GPT-4o mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-chat-latest":{id:`gpt-5-chat-latest`,name:`GPT-5 Chat Latest`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5-Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-mini":{id:`gpt-5-mini`,name:`GPT-5 Mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-pro":{id:`gpt-5-pro`,name:`GPT-5 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-chat-latest":{id:`gpt-5.1-chat-latest`,name:`GPT-5.1 Chat`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-chat-latest":{id:`gpt-5.2-chat-latest`,name:`GPT-5.2 Chat`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-pro":{id:`gpt-5.2-pro`,name:`GPT-5.2 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-chat-latest":{id:`gpt-5.3-chat-latest`,name:`GPT-5.3 Chat (latest)`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 nano`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o1-pro":{id:`o1-pro`,name:`o1-pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:150,output:600,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-deep-research":{id:`o3-deep-research`,name:`o3-deep-research`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-pro":{id:`o3-pro`,name:`o3-pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini":{id:`o4-mini`,name:`o4-mini`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o4-mini-deep-research":{id:`o4-mini-deep-research`,name:`o4-mini-deep-research`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5}},"openai-codex":{"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex Mini`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.3-codex-spark":{id:`gpt-5.3-codex-spark`,name:`GPT-5.3 Codex Spark`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-codex-responses`,provider:`openai-codex`,baseUrl:`https://chatgpt.com/backend-api`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3}},opencode:{"big-pickle":{id:`big-pickle`,name:`Big Pickle`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-1":{id:`claude-opus-4-1`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"claude-opus-4-5":{id:`claude-opus-4-5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4-6":{id:`claude-opus-4-6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-opus-4-7":{id:`claude-opus-4-7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"claude-sonnet-4":{id:`claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-5":{id:`claude-sonnet-4-5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"claude-sonnet-4-6":{id:`claude-sonnet-4-6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"gemini-3-flash":{id:`gemini-3-flash`,name:`Gemini 3 Flash`,api:`google-generative-ai`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"gemini-3.1-pro":{id:`gemini-3.1-pro`,name:`Gemini 3.1 Pro Preview`,api:`google-generative-ai`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"glm-5":{id:`glm-5`,name:`GLM-5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:204800,maxTokens:131072},"gpt-5":{id:`gpt-5`,name:`GPT-5`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-codex":{id:`gpt-5-codex`,name:`GPT-5 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5-nano":{id:`gpt-5-nano`,name:`GPT-5 Nano`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.07,output:8.5,cacheRead:.107,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-max":{id:`gpt-5.1-codex-max`,name:`GPT-5.1 Codex Max`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex-mini":{id:`gpt-5.1-codex-mini`,name:`GPT-5.1 Codex Mini`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.025,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2-codex":{id:`gpt-5.2-codex`,name:`GPT-5.2 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.3-codex":{id:`gpt-5.3-codex`,name:`GPT-5.3 Codex`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4":{id:`gpt-5.4`,name:`GPT-5.4`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.4-mini":{id:`gpt-5.4-mini`,name:`GPT-5.4 Mini`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-nano":{id:`gpt-5.4-nano`,name:`GPT-5.4 Nano`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.4-pro":{id:`gpt-5.4-pro`,name:`GPT-5.4 Pro`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`openai-responses`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:30,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"hy3-preview-free":{id:`hy3-preview-free`,name:`Hy3 preview Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:64e3},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:65536},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:65536},"ling-2.6-flash-free":{id:`ling-2.6-flash-free`,name:`Ling 2.6 Flash Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262100,maxTokens:32800},"minimax-m2.5":{id:`minimax-m2.5`,name:`MiniMax M2.5`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax-m2.5-free":{id:`minimax-m2.5-free`,name:`MiniMax M2.5 Free`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"minimax-m2.7":{id:`minimax-m2.7`,name:`MiniMax M2.7`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"nemotron-3-super-free":{id:`nemotron-3-super-free`,name:`Nemotron 3 Super Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:128e3},"qwen3.5-plus":{id:`qwen3.5-plus`,name:`Qwen3.5 Plus`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:262144,maxTokens:65536},"qwen3.6-plus":{id:`qwen3.6-plus`,name:`Qwen3.6 Plus`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},contextWindow:262144,maxTokens:65536}},"opencode-go":{"deepseek-v4-flash":{id:`deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek-v4-pro":{id:`deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.0145,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"glm-5":{id:`glm-5`,name:`GLM-5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:204800,maxTokens:131072},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:65536},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6 (3x limits)`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.32,output:1.34,cacheRead:.054,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo V2 Omni`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:128e3},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo V2 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:128e3},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo V2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo V2.5 Pro`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:128e3},"minimax-m2.5":{id:`minimax-m2.5`,name:`MiniMax M2.5`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:0},contextWindow:204800,maxTokens:65536},"minimax-m2.7":{id:`minimax-m2.7`,name:`MiniMax M2.7`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"qwen3.5-plus":{id:`qwen3.5-plus`,name:`Qwen3.5 Plus`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},contextWindow:262144,maxTokens:65536},"qwen3.6-plus":{id:`qwen3.6-plus`,name:`Qwen3.6 Plus`,api:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},contextWindow:262144,maxTokens:65536}},openrouter:{"ai21/jamba-large-1.7":{id:`ai21/jamba-large-1.7`,name:`AI21: Jamba Large 1.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:8,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"alibaba/tongyi-deepresearch-30b-a3b":{id:`alibaba/tongyi-deepresearch-30b-a3b`,name:`Tongyi DeepResearch 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.44999999999999996,cacheRead:.09,cacheWrite:0},contextWindow:131072,maxTokens:131072},"allenai/olmo-3.1-32b-instruct":{id:`allenai/olmo-3.1-32b-instruct`,name:`AllenAI: Olmo 3.1 32B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.6,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:16384},"amazon/nova-2-lite-v1":{id:`amazon/nova-2-lite-v1`,name:`Amazon: Nova 2 Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65535},"amazon/nova-lite-v1":{id:`amazon/nova-lite-v1`,name:`Amazon: Nova Lite 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120},"amazon/nova-micro-v1":{id:`amazon/nova-micro-v1`,name:`Amazon: Nova Micro 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.035,output:.14,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:5120},"amazon/nova-premier-v1":{id:`amazon/nova-premier-v1`,name:`Amazon: Nova Premier 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:12.5,cacheRead:.625,cacheWrite:0},contextWindow:1e6,maxTokens:32e3},"amazon/nova-pro-v1":{id:`amazon/nova-pro-v1`,name:`Amazon: Nova Pro 1.0`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:3.1999999999999997,cacheRead:0,cacheWrite:0},contextWindow:3e5,maxTokens:5120},"anthropic/claude-3-haiku":{id:`anthropic/claude-3-haiku`,name:`Anthropic: Claude 3 Haiku`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"anthropic/claude-3.5-haiku":{id:`anthropic/claude-3.5-haiku`,name:`Anthropic: Claude 3.5 Haiku`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic/claude-3.7-sonnet":{id:`anthropic/claude-3.7-sonnet`,name:`Anthropic: Claude 3.7 Sonnet`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:128e3},"anthropic/claude-3.7-sonnet:thinking":{id:`anthropic/claude-3.7-sonnet:thinking`,name:`Anthropic: Claude 3.7 Sonnet (thinking)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-haiku-4.5":{id:`anthropic/claude-haiku-4.5`,name:`Anthropic: Claude Haiku 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4":{id:`anthropic/claude-opus-4`,name:`Anthropic: Claude Opus 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.1":{id:`anthropic/claude-opus-4.1`,name:`Anthropic: Claude Opus 4.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.5":{id:`anthropic/claude-opus-4.5`,name:`Anthropic: Claude Opus 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4.6":{id:`anthropic/claude-opus-4.6`,name:`Anthropic: Claude Opus 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.6-fast":{id:`anthropic/claude-opus-4.6-fast`,name:`Anthropic: Claude Opus 4.6 (Fast)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:150,cacheRead:3,cacheWrite:37.5},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.7":{id:`anthropic/claude-opus-4.7`,name:`Anthropic: Claude Opus 4.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-sonnet-4":{id:`anthropic/claude-sonnet-4`,name:`Anthropic: Claude Sonnet 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.5":{id:`anthropic/claude-sonnet-4.5`,name:`Anthropic: Claude Sonnet 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.6":{id:`anthropic/claude-sonnet-4.6`,name:`Anthropic: Claude Sonnet 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"arcee-ai/trinity-large-preview":{id:`arcee-ai/trinity-large-preview`,name:`Arcee AI: Trinity Large Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:4096},"arcee-ai/trinity-large-thinking":{id:`arcee-ai/trinity-large-thinking`,name:`Arcee AI: Trinity Large Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.22,output:.85,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:262144},"arcee-ai/trinity-mini":{id:`arcee-ai/trinity-mini`,name:`Arcee AI: Trinity Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.045,output:.15,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"arcee-ai/virtuoso-large":{id:`arcee-ai/virtuoso-large`,name:`Arcee AI: Virtuoso Large`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.75,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:64e3},auto:{id:`auto`,name:`Auto`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"baidu/ernie-4.5-21b-a3b":{id:`baidu/ernie-4.5-21b-a3b`,name:`Baidu: ERNIE 4.5 21B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.07,output:.28,cacheRead:0,cacheWrite:0},contextWindow:12e4,maxTokens:8e3},"baidu/ernie-4.5-vl-28b-a3b":{id:`baidu/ernie-4.5-vl-28b-a3b`,name:`Baidu: ERNIE 4.5 VL 28B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.14,output:.56,cacheRead:0,cacheWrite:0},contextWindow:3e4,maxTokens:8e3},"bytedance-seed/seed-1.6":{id:`bytedance-seed/seed-1.6`,name:`ByteDance Seed: Seed 1.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"bytedance-seed/seed-1.6-flash":{id:`bytedance-seed/seed-1.6-flash`,name:`ByteDance Seed: Seed 1.6 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"bytedance-seed/seed-2.0-lite":{id:`bytedance-seed/seed-2.0-lite`,name:`ByteDance Seed: Seed-2.0-Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"bytedance-seed/seed-2.0-mini":{id:`bytedance-seed/seed-2.0-mini`,name:`ByteDance Seed: Seed-2.0-Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"cohere/command-r-08-2024":{id:`cohere/command-r-08-2024`,name:`Cohere: Command R (08-2024)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"cohere/command-r-plus-08-2024":{id:`cohere/command-r-plus-08-2024`,name:`Cohere: Command R+ (08-2024)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"deepseek/deepseek-chat":{id:`deepseek/deepseek-chat`,name:`DeepSeek: DeepSeek V3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.32,output:.8899999999999999,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-chat-v3-0324":{id:`deepseek/deepseek-chat-v3-0324`,name:`DeepSeek: DeepSeek V3 0324`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.77,cacheRead:.135,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-chat-v3.1":{id:`deepseek/deepseek-chat-v3.1`,name:`DeepSeek: DeepSeek V3.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.75,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:7168},"deepseek/deepseek-r1":{id:`deepseek/deepseek-r1`,name:`DeepSeek: R1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.7,output:2.5,cacheRead:0,cacheWrite:0},contextWindow:64e3,maxTokens:16e3},"deepseek/deepseek-r1-0528":{id:`deepseek/deepseek-r1-0528`,name:`DeepSeek: R1 0528`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.5,output:2.1500000000000004,cacheRead:.35,cacheWrite:0},contextWindow:163840,maxTokens:32768},"deepseek/deepseek-v3.1-terminus":{id:`deepseek/deepseek-v3.1-terminus`,name:`DeepSeek: DeepSeek V3.1 Terminus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.21,output:.7899999999999999,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:32768},"deepseek/deepseek-v3.2":{id:`deepseek/deepseek-v3.2`,name:`DeepSeek: DeepSeek V3.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.252,output:.378,cacheRead:.0252,cacheWrite:0},contextWindow:131072,maxTokens:65536},"deepseek/deepseek-v3.2-exp":{id:`deepseek/deepseek-v3.2-exp`,name:`DeepSeek: DeepSeek V3.2 Exp`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.27,output:.41,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:65536},"deepseek/deepseek-v4-flash":{id:`deepseek/deepseek-v4-flash`,name:`DeepSeek: DeepSeek V4 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.0028,cacheWrite:0},contextWindow:1048576,maxTokens:384e3},"deepseek/deepseek-v4-pro":{id:`deepseek/deepseek-v4-pro`,name:`DeepSeek: DeepSeek V4 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0},reasoning:!0,input:[`text`],cost:{input:.435,output:.87,cacheRead:.003625,cacheWrite:0},contextWindow:1048576,maxTokens:384e3},"essentialai/rnj-1-instruct":{id:`essentialai/rnj-1-instruct`,name:`EssentialAI: Rnj 1 Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:4096},"google/gemini-2.0-flash-001":{id:`google/gemini-2.0-flash-001`,name:`Google: Gemini 2.0 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:.08333333333333334},contextWindow:1e6,maxTokens:8192},"google/gemini-2.0-flash-lite-001":{id:`google/gemini-2.0-flash-lite-001`,name:`Google: Gemini 2.0 Flash Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:0,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.5-flash":{id:`google/gemini-2.5-flash`,name:`Google: Gemini 2.5 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-flash-lite":{id:`google/gemini-2.5-flash-lite`,name:`Google: Gemini 2.5 Flash Lite`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-flash-lite-preview-09-2025":{id:`google/gemini-2.5-flash-lite-preview-09-2025`,name:`Google: Gemini 2.5 Flash Lite Preview 09-2025`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65535},"google/gemini-2.5-pro":{id:`google/gemini-2.5-pro`,name:`Google: Gemini 2.5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro-preview":{id:`google/gemini-2.5-pro-preview`,name:`Google: Gemini 2.5 Pro Preview 06-05`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro-preview-05-06":{id:`google/gemini-2.5-pro-preview-05-06`,name:`Google: Gemini 2.5 Pro Preview 05-06`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:.375},contextWindow:1048576,maxTokens:65535},"google/gemini-3-flash-preview":{id:`google/gemini-3-flash-preview`,name:`Google: Gemini 3 Flash Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-flash-lite-preview":{id:`google/gemini-3.1-flash-lite-preview`,name:`Google: Gemini 3.1 Flash Lite Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.024999999999999998,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-pro-preview":{id:`google/gemini-3.1-pro-preview`,name:`Google: Gemini 3.1 Pro Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemini-3.1-pro-preview-customtools":{id:`google/gemini-3.1-pro-preview-customtools`,name:`Google: Gemini 3.1 Pro Preview Custom Tools`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"google/gemma-3-12b-it":{id:`google/gemma-3-12b-it`,name:`Google: Gemma 3 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.04,output:.13,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"google/gemma-3-27b-it":{id:`google/gemma-3-27b-it`,name:`Google: Gemma 3 27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.16,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"google/gemma-4-26b-a4b-it":{id:`google/gemma-4-26b-a4b-it`,name:`Google: Gemma 4 26B A4B `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.06,output:.33,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"google/gemma-4-26b-a4b-it:free":{id:`google/gemma-4-26b-a4b-it:free`,name:`Google: Gemma 4 26B A4B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"google/gemma-4-31b-it":{id:`google/gemma-4-31b-it`,name:`Google: Gemma 4 31B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.13,output:.38,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"google/gemma-4-31b-it:free":{id:`google/gemma-4-31b-it:free`,name:`Google: Gemma 4 31B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inception/mercury-2":{id:`inception/mercury-2`,name:`Inception: Mercury 2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.25,output:.75,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:5e4},"inclusionai/ling-2.6-1t:free":{id:`inclusionai/ling-2.6-1t:free`,name:`inclusionAI: Ling-2.6-1T (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ling-2.6-flash:free":{id:`inclusionai/ling-2.6-flash:free`,name:`inclusionAI: Ling-2.6-flash (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"kwaipilot/kat-coder-pro-v2":{id:`kwaipilot/kat-coder-pro-v2`,name:`Kwaipilot: KAT-Coder-Pro V2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:256e3,maxTokens:8e4},"meta-llama/llama-3-8b-instruct":{id:`meta-llama/llama-3-8b-instruct`,name:`Meta: Llama 3 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.03,output:.04,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:16384},"meta-llama/llama-3.1-70b-instruct":{id:`meta-llama/llama-3.1-70b-instruct`,name:`Meta: Llama 3.1 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"meta-llama/llama-3.1-8b-instruct":{id:`meta-llama/llama-3.1-8b-instruct`,name:`Meta: Llama 3.1 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.02,output:.049999999999999996,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"meta-llama/llama-3.3-70b-instruct":{id:`meta-llama/llama-3.3-70b-instruct`,name:`Meta: Llama 3.3 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.32,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"meta-llama/llama-3.3-70b-instruct:free":{id:`meta-llama/llama-3.3-70b-instruct:free`,name:`Meta: Llama 3.3 70B Instruct (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:65536,maxTokens:4096},"meta-llama/llama-4-scout":{id:`meta-llama/llama-4-scout`,name:`Meta: Llama 4 Scout`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.3,cacheRead:0,cacheWrite:0},contextWindow:327680,maxTokens:16384},"minimax/minimax-m1":{id:`minimax/minimax-m1`,name:`MiniMax: MiniMax M1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.39999999999999997,output:2.2,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:4e4},"minimax/minimax-m2":{id:`minimax/minimax-m2`,name:`MiniMax: MiniMax M2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.255,output:1,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"minimax/minimax-m2.1":{id:`minimax/minimax-m2.1`,name:`MiniMax: MiniMax M2.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.29,output:.95,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:196608},"minimax/minimax-m2.5":{id:`minimax/minimax-m2.5`,name:`MiniMax: MiniMax M2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:1.15,cacheRead:.03,cacheWrite:0},contextWindow:196608,maxTokens:131072},"minimax/minimax-m2.5:free":{id:`minimax/minimax-m2.5:free`,name:`MiniMax: MiniMax M2.5 (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:196608,maxTokens:8192},"minimax/minimax-m2.7":{id:`minimax/minimax-m2.7`,name:`MiniMax: MiniMax M2.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.059,cacheWrite:0},contextWindow:196608,maxTokens:4096},"mistralai/codestral-2508":{id:`mistralai/codestral-2508`,name:`Mistral: Codestral 2508`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:.8999999999999999,cacheRead:.03,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"mistralai/devstral-2512":{id:`mistralai/devstral-2512`,name:`Mistral: Devstral 2 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/devstral-medium":{id:`mistralai/devstral-medium`,name:`Mistral: Devstral Medium`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/devstral-small":{id:`mistralai/devstral-small`,name:`Mistral: Devstral Small 1.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/ministral-14b-2512":{id:`mistralai/ministral-14b-2512`,name:`Mistral: Ministral 3 14B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.19999999999999998,cacheRead:.02,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/ministral-3b-2512":{id:`mistralai/ministral-3b-2512`,name:`Mistral: Ministral 3 3B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:.01,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/ministral-8b-2512":{id:`mistralai/ministral-8b-2512`,name:`Mistral: Ministral 3 8B 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-large":{id:`mistralai/mistral-large`,name:`Mistral Large`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"mistralai/mistral-large-2407":{id:`mistralai/mistral-large-2407`,name:`Mistral Large 2407`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-large-2411":{id:`mistralai/mistral-large-2411`,name:`Mistral Large 2411`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-large-2512":{id:`mistralai/mistral-large-2512`,name:`Mistral: Mistral Large 3 2512`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.5,output:1.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-medium-3":{id:`mistralai/mistral-medium-3`,name:`Mistral: Mistral Medium 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-medium-3.1":{id:`mistralai/mistral-medium-3.1`,name:`Mistral: Mistral Medium 3.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.04,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/mistral-nemo":{id:`mistralai/mistral-nemo`,name:`Mistral: Mistral Nemo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.02,output:.04,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"mistralai/mistral-saba":{id:`mistralai/mistral-saba`,name:`Mistral: Saba`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.19999999999999998,output:.6,cacheRead:.02,cacheWrite:0},contextWindow:32768,maxTokens:4096},"mistralai/mistral-small-2603":{id:`mistralai/mistral-small-2603`,name:`Mistral: Mistral Small 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:4096},"mistralai/mistral-small-3.2-24b-instruct":{id:`mistralai/mistral-small-3.2-24b-instruct`,name:`Mistral: Mistral Small 3.2 24B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"mistralai/mistral-small-creative":{id:`mistralai/mistral-small-creative`,name:`Mistral: Mistral Small Creative`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:32768,maxTokens:4096},"mistralai/mixtral-8x22b-instruct":{id:`mistralai/mixtral-8x22b-instruct`,name:`Mistral: Mixtral 8x22B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:65536,maxTokens:4096},"mistralai/mixtral-8x7b-instruct":{id:`mistralai/mixtral-8x7b-instruct`,name:`Mistral: Mixtral 8x7B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.54,output:.54,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:16384},"mistralai/pixtral-large-2411":{id:`mistralai/pixtral-large-2411`,name:`Mistral: Pixtral Large 2411`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:4096},"mistralai/voxtral-small-24b-2507":{id:`mistralai/voxtral-small-24b-2507`,name:`Mistral: Voxtral Small 24B 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:32e3,maxTokens:4096},"moonshotai/kimi-k2":{id:`moonshotai/kimi-k2`,name:`MoonshotAI: Kimi K2 0711`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.5700000000000001,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"moonshotai/kimi-k2-0905":{id:`moonshotai/kimi-k2-0905`,name:`MoonshotAI: Kimi K2 0905`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/kimi-k2-thinking":{id:`moonshotai/kimi-k2-thinking`,name:`MoonshotAI: Kimi K2 Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/kimi-k2.5":{id:`moonshotai/kimi-k2.5`,name:`MoonshotAI: Kimi K2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.41,output:2.06,cacheRead:.07,cacheWrite:0},contextWindow:262144,maxTokens:4096},"moonshotai/kimi-k2.6":{id:`moonshotai/kimi-k2.6`,name:`MoonshotAI: Kimi K2.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.7448,output:4.655,cacheRead:.1463,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"nex-agi/deepseek-v3.1-nex-n1":{id:`nex-agi/deepseek-v3.1-nex-n1`,name:`Nex AGI: DeepSeek V3.1 Nex N1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.135,output:.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:163840},"nvidia/llama-3.1-nemotron-70b-instruct":{id:`nvidia/llama-3.1-nemotron-70b-instruct`,name:`NVIDIA: Llama 3.1 Nemotron 70B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.2,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{id:`nvidia/llama-3.3-nemotron-super-49b-v1.5`,name:`NVIDIA: Llama 3.3 Nemotron Super 49B V1.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/nemotron-3-nano-30b-a3b":{id:`nvidia/nemotron-3-nano-30b-a3b`,name:`NVIDIA: Nemotron 3 Nano 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:228e3},"nvidia/nemotron-3-nano-30b-a3b:free":{id:`nvidia/nemotron-3-nano-30b-a3b:free`,name:`NVIDIA: Nemotron 3 Nano 30B A3B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"nvidia/nemotron-3-super-120b-a12b":{id:`nvidia/nemotron-3-super-120b-a12b`,name:`NVIDIA: Nemotron 3 Super`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"nvidia/nemotron-3-super-120b-a12b:free":{id:`nvidia/nemotron-3-super-120b-a12b:free`,name:`NVIDIA: Nemotron 3 Super (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"nvidia/nemotron-nano-12b-v2-vl:free":{id:`nvidia/nemotron-nano-12b-v2-vl:free`,name:`NVIDIA: Nemotron Nano 12B 2 VL (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"nvidia/nemotron-nano-9b-v2":{id:`nvidia/nemotron-nano-9b-v2`,name:`NVIDIA: Nemotron Nano 9B V2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.04,output:.16,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"nvidia/nemotron-nano-9b-v2:free":{id:`nvidia/nemotron-nano-9b-v2:free`,name:`NVIDIA: Nemotron Nano 9B V2 (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-3.5-turbo":{id:`openai/gpt-3.5-turbo`,name:`OpenAI: GPT-3.5 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:16385,maxTokens:4096},"openai/gpt-3.5-turbo-0613":{id:`openai/gpt-3.5-turbo-0613`,name:`OpenAI: GPT-3.5 Turbo (older v0613)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:2,cacheRead:0,cacheWrite:0},contextWindow:4095,maxTokens:4096},"openai/gpt-3.5-turbo-16k":{id:`openai/gpt-3.5-turbo-16k`,name:`OpenAI: GPT-3.5 Turbo 16k`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:4,cacheRead:0,cacheWrite:0},contextWindow:16385,maxTokens:4096},"openai/gpt-4":{id:`openai/gpt-4`,name:`OpenAI: GPT-4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8191,maxTokens:4096},"openai/gpt-4-0314":{id:`openai/gpt-4-0314`,name:`OpenAI: GPT-4 (older v0314)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:30,output:60,cacheRead:0,cacheWrite:0},contextWindow:8191,maxTokens:4096},"openai/gpt-4-1106-preview":{id:`openai/gpt-4-1106-preview`,name:`OpenAI: GPT-4 Turbo (older v1106)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4-turbo":{id:`openai/gpt-4-turbo`,name:`OpenAI: GPT-4 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4-turbo-preview":{id:`openai/gpt-4-turbo-preview`,name:`OpenAI: GPT-4 Turbo Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4.1":{id:`openai/gpt-4.1`,name:`OpenAI: GPT-4.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:4096},"openai/gpt-4.1-mini":{id:`openai/gpt-4.1-mini`,name:`OpenAI: GPT-4.1 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:1.5999999999999999,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-nano":{id:`openai/gpt-4.1-nano`,name:`OpenAI: GPT-4.1 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4o":{id:`openai/gpt-4o`,name:`OpenAI: GPT-4o`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-2024-05-13":{id:`openai/gpt-4o-2024-05-13`,name:`OpenAI: GPT-4o (2024-05-13)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4o-2024-08-06":{id:`openai/gpt-4o-2024-08-06`,name:`OpenAI: GPT-4o (2024-08-06)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-2024-11-20":{id:`openai/gpt-4o-2024-11-20`,name:`OpenAI: GPT-4o (2024-11-20)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-audio-preview":{id:`openai/gpt-4o-audio-preview`,name:`OpenAI: GPT-4o Audio`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini":{id:`openai/gpt-4o-mini`,name:`OpenAI: GPT-4o-mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini-2024-07-18":{id:`openai/gpt-4o-mini-2024-07-18`,name:`OpenAI: GPT-4o-mini (2024-07-18)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5":{id:`openai/gpt-5`,name:`OpenAI: GPT-5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-codex":{id:`openai/gpt-5-codex`,name:`OpenAI: GPT-5 Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-mini":{id:`openai/gpt-5-mini`,name:`OpenAI: GPT-5 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-nano":{id:`openai/gpt-5-nano`,name:`OpenAI: GPT-5 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:4e5,maxTokens:4096},"openai/gpt-5-pro":{id:`openai/gpt-5-pro`,name:`OpenAI: GPT-5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1":{id:`openai/gpt-5.1`,name:`OpenAI: GPT-5.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-chat":{id:`openai/gpt-5.1-chat`,name:`OpenAI: GPT-5.1 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.1-codex":{id:`openai/gpt-5.1-codex`,name:`OpenAI: GPT-5.1-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-max":{id:`openai/gpt-5.1-codex-max`,name:`OpenAI: GPT-5.1-Codex-Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-mini":{id:`openai/gpt-5.1-codex-mini`,name:`OpenAI: GPT-5.1-Codex-Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.03,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2":{id:`openai/gpt-5.2`,name:`OpenAI: GPT-5.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-chat":{id:`openai/gpt-5.2-chat`,name:`OpenAI: GPT-5.2 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:32e3},"openai/gpt-5.2-codex":{id:`openai/gpt-5.2-codex`,name:`OpenAI: GPT-5.2-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-pro":{id:`openai/gpt-5.2-pro`,name:`OpenAI: GPT-5.2 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.3-chat":{id:`openai/gpt-5.3-chat`,name:`OpenAI: GPT-5.3 Chat`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.3-codex":{id:`openai/gpt-5.3-codex`,name:`OpenAI: GPT-5.3-Codex`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4":{id:`openai/gpt-5.4`,name:`OpenAI: GPT-5.4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.4-mini":{id:`openai/gpt-5.4-mini`,name:`OpenAI: GPT-5.4 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-nano":{id:`openai/gpt-5.4-nano`,name:`OpenAI: GPT-5.4 Nano`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-pro":{id:`openai/gpt-5.4-pro`,name:`OpenAI: GPT-5.4 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5":{id:`openai/gpt-5.5`,name:`OpenAI: GPT-5.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5-pro":{id:`openai/gpt-5.5-pro`,name:`OpenAI: GPT-5.5 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-audio":{id:`openai/gpt-audio`,name:`OpenAI: GPT Audio`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-audio-mini":{id:`openai/gpt-audio-mini`,name:`OpenAI: GPT Audio Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.6,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`OpenAI: gpt-oss-120b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.039,output:.19,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-120b:free":{id:`openai/gpt-oss-120b:free`,name:`OpenAI: gpt-oss-120b (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`OpenAI: gpt-oss-20b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.03,output:.14,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-oss-20b:free":{id:`openai/gpt-oss-20b:free`,name:`OpenAI: gpt-oss-20b (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`OpenAI: gpt-oss-safeguard-20b`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/o1":{id:`openai/o1`,name:`OpenAI: o1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3":{id:`openai/o3`,name:`OpenAI: o3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-deep-research":{id:`openai/o3-deep-research`,name:`OpenAI: o3 Deep Research`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini":{id:`openai/o3-mini`,name:`OpenAI: o3 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini-high":{id:`openai/o3-mini-high`,name:`OpenAI: o3 Mini High`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-pro":{id:`openai/o3-pro`,name:`OpenAI: o3 Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini":{id:`openai/o4-mini`,name:`OpenAI: o4 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini-deep-research":{id:`openai/o4-mini-deep-research`,name:`OpenAI: o4 Mini Deep Research`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini-high":{id:`openai/o4-mini-high`,name:`OpenAI: o4 Mini High`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openrouter/auto":{id:`openrouter/auto`,name:`Auto Router`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"openrouter/free":{id:`openrouter/free`,name:`Free Models Router`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:4096},"prime-intellect/intellect-3":{id:`prime-intellect/intellect-3`,name:`Prime Intellect: INTELLECT-3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"qwen/qwen-2.5-72b-instruct":{id:`qwen/qwen-2.5-72b-instruct`,name:`Qwen2.5 72B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.36,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:16384},"qwen/qwen-2.5-7b-instruct":{id:`qwen/qwen-2.5-7b-instruct`,name:`Qwen: Qwen2.5 7B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.04,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"qwen/qwen-max":{id:`qwen/qwen-max`,name:`Qwen: Qwen-Max `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.04,output:4.16,cacheRead:.20800000000000002,cacheWrite:0},contextWindow:32768,maxTokens:8192},"qwen/qwen-plus":{id:`qwen/qwen-plus`,name:`Qwen: Qwen-Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.26,output:.78,cacheRead:.052000000000000005,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-plus-2025-07-28":{id:`qwen/qwen-plus-2025-07-28`,name:`Qwen: Qwen Plus 0728`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.26,output:.78,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-plus-2025-07-28:thinking":{id:`qwen/qwen-plus-2025-07-28:thinking`,name:`Qwen: Qwen Plus 0728 (thinking)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.26,output:.78,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:32768},"qwen/qwen-turbo":{id:`qwen/qwen-turbo`,name:`Qwen: Qwen-Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.0325,output:.13,cacheRead:.006500000000000001,cacheWrite:0},contextWindow:131072,maxTokens:8192},"qwen/qwen-vl-max":{id:`qwen/qwen-vl-max`,name:`Qwen: Qwen VL Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.52,output:2.08,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-14b":{id:`qwen/qwen3-14b`,name:`Qwen: Qwen3 14B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:40960},"qwen/qwen3-235b-a22b":{id:`qwen/qwen3-235b-a22b`,name:`Qwen: Qwen3 235B A22B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.45499999999999996,output:1.8199999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"qwen/qwen3-235b-a22b-2507":{id:`qwen/qwen3-235b-a22b-2507`,name:`Qwen: Qwen3 235B A22B Instruct 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.071,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-235b-a22b-thinking-2507":{id:`qwen/qwen3-235b-a22b-thinking-2507`,name:`Qwen: Qwen3 235B A22B Thinking 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.14950000000000002,output:1.495,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"qwen/qwen3-30b-a3b":{id:`qwen/qwen3-30b-a3b`,name:`Qwen: Qwen3 30B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.28,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"qwen/qwen3-30b-a3b-instruct-2507":{id:`qwen/qwen3-30b-a3b-instruct-2507`,name:`Qwen: Qwen3 30B A3B Instruct 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"qwen/qwen3-30b-a3b-thinking-2507":{id:`qwen/qwen3-30b-a3b-thinking-2507`,name:`Qwen: Qwen3 30B A3B Thinking 2507`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.39999999999999997,cacheRead:.08,cacheWrite:0},contextWindow:131072,maxTokens:131072},"qwen/qwen3-32b":{id:`qwen/qwen3-32b`,name:`Qwen: Qwen3 32B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.08,output:.24,cacheRead:.04,cacheWrite:0},contextWindow:40960,maxTokens:40960},"qwen/qwen3-8b":{id:`qwen/qwen3-8b`,name:`Qwen: Qwen3 8B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:40960,maxTokens:8192},"qwen/qwen3-coder":{id:`qwen/qwen3-coder`,name:`Qwen: Qwen3 Coder 480B A35B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.22,output:1.7999999999999998,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3-coder-30b-a3b-instruct":{id:`qwen/qwen3-coder-30b-a3b-instruct`,name:`Qwen: Qwen3 Coder 30B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.07,output:.27,cacheRead:0,cacheWrite:0},contextWindow:16e4,maxTokens:32768},"qwen/qwen3-coder-flash":{id:`qwen/qwen3-coder-flash`,name:`Qwen: Qwen3 Coder Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.195,output:.975,cacheRead:.039,cacheWrite:.24375},contextWindow:1e6,maxTokens:65536},"qwen/qwen3-coder-next":{id:`qwen/qwen3-coder-next`,name:`Qwen: Qwen3 Coder Next`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.14,output:.7999999999999999,cacheRead:.09,cacheWrite:0},contextWindow:262144,maxTokens:262144},"qwen/qwen3-coder-plus":{id:`qwen/qwen3-coder-plus`,name:`Qwen: Qwen3 Coder Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.65,output:3.25,cacheRead:.13,cacheWrite:.8125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3-coder:free":{id:`qwen/qwen3-coder:free`,name:`Qwen: Qwen3 Coder 480B A35B (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"qwen/qwen3-max":{id:`qwen/qwen3-max`,name:`Qwen: Qwen3 Max`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.78,output:3.9,cacheRead:.156,cacheWrite:.975},contextWindow:262144,maxTokens:32768},"qwen/qwen3-max-thinking":{id:`qwen/qwen3-max-thinking`,name:`Qwen: Qwen3 Max Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.78,output:3.9,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:32768},"qwen/qwen3-next-80b-a3b-instruct":{id:`qwen/qwen3-next-80b-a3b-instruct`,name:`Qwen: Qwen3 Next 80B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-next-80b-a3b-instruct:free":{id:`qwen/qwen3-next-80b-a3b-instruct:free`,name:`Qwen: Qwen3 Next 80B A3B Instruct (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"qwen/qwen3-next-80b-a3b-thinking":{id:`qwen/qwen3-next-80b-a3b-thinking`,name:`Qwen: Qwen3 Next 80B A3B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.0975,output:.78,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-235b-a22b-instruct":{id:`qwen/qwen3-vl-235b-a22b-instruct`,name:`Qwen: Qwen3 VL 235B A22B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.88,cacheRead:.11,cacheWrite:0},contextWindow:262144,maxTokens:16384},"qwen/qwen3-vl-235b-a22b-thinking":{id:`qwen/qwen3-vl-235b-a22b-thinking`,name:`Qwen: Qwen3 VL 235B A22B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:2.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-30b-a3b-instruct":{id:`qwen/qwen3-vl-30b-a3b-instruct`,name:`Qwen: Qwen3 VL 30B A3B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.13,output:.52,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-30b-a3b-thinking":{id:`qwen/qwen3-vl-30b-a3b-thinking`,name:`Qwen: Qwen3 VL 30B A3B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.13,output:1.56,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-32b-instruct":{id:`qwen/qwen3-vl-32b-instruct`,name:`Qwen: Qwen3 VL 32B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.10400000000000001,output:.41600000000000004,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-8b-instruct":{id:`qwen/qwen3-vl-8b-instruct`,name:`Qwen: Qwen3 VL 8B Instruct`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.08,output:.5,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3-vl-8b-thinking":{id:`qwen/qwen3-vl-8b-thinking`,name:`Qwen: Qwen3 VL 8B Thinking`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.117,output:1.365,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"qwen/qwen3.5-122b-a10b":{id:`qwen/qwen3.5-122b-a10b`,name:`Qwen: Qwen3.5-122B-A10B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:2.08,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-27b":{id:`qwen/qwen3.5-27b`,name:`Qwen: Qwen3.5-27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.195,output:1.56,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-35b-a3b":{id:`qwen/qwen3.5-35b-a3b`,name:`Qwen: Qwen3.5-35B-A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.1625,output:1.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-397b-a17b":{id:`qwen/qwen3.5-397b-a17b`,name:`Qwen: Qwen3.5 397B A17B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39,output:2.34,cacheRead:.195,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.5-9b":{id:`qwen/qwen3.5-9b`,name:`Qwen: Qwen3.5-9B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.15,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:4096},"qwen/qwen3.5-flash-02-23":{id:`qwen/qwen3.5-flash-02-23`,name:`Qwen: Qwen3.5-Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.065,output:.26,cacheRead:0,cacheWrite:.08125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.5-plus-02-15":{id:`qwen/qwen3.5-plus-02-15`,name:`Qwen: Qwen3.5 Plus 2026-02-15`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.26,output:1.56,cacheRead:0,cacheWrite:.325},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.5-plus-20260420":{id:`qwen/qwen3.5-plus-20260420`,name:`Qwen: Qwen3.5 Plus 2026-04-20`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2.4,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.6-27b":{id:`qwen/qwen3.6-27b`,name:`Qwen: Qwen3.6 27B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:2,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:65536},"qwen/qwen3.6-flash":{id:`qwen/qwen3.6-flash`,name:`Qwen: Qwen3.6 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:0,cacheWrite:.3125},contextWindow:1e6,maxTokens:65536},"qwen/qwen3.6-max-preview":{id:`qwen/qwen3.6-max-preview`,name:`Qwen: Qwen3.6 Max Preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.3,output:7.8,cacheRead:0,cacheWrite:1.625},contextWindow:262144,maxTokens:65536},"qwen/qwen3.6-plus":{id:`qwen/qwen3.6-plus`,name:`Qwen: Qwen3.6 Plus`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.325,output:1.95,cacheRead:0,cacheWrite:.40625},contextWindow:1e6,maxTokens:65536},"qwen/qwq-32b":{id:`qwen/qwq-32b`,name:`Qwen: QwQ 32B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.58,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"rekaai/reka-edge":{id:`rekaai/reka-edge`,name:`Reka Edge`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:16384,maxTokens:16384},"relace/relace-search":{id:`relace/relace-search`,name:`Relace: Relace Search`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1,output:3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:128e3},"sao10k/l3-euryale-70b":{id:`sao10k/l3-euryale-70b`,name:`Sao10k: Llama 3 Euryale 70B v2.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:1.48,output:1.48,cacheRead:0,cacheWrite:0},contextWindow:8192,maxTokens:8192},"sao10k/l3.1-euryale-70b":{id:`sao10k/l3.1-euryale-70b`,name:`Sao10K: Llama 3.1 Euryale 70B v2.2`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.85,output:.85,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"stepfun/step-3.5-flash":{id:`stepfun/step-3.5-flash`,name:`StepFun: Step 3.5 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:65536},"tencent/hy3-preview:free":{id:`tencent/hy3-preview:free`,name:`Tencent: Hy3 preview (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"thedrummer/rocinante-12b":{id:`thedrummer/rocinante-12b`,name:`TheDrummer: Rocinante 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.16999999999999998,output:.43,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"thedrummer/unslopnemo-12b":{id:`thedrummer/unslopnemo-12b`,name:`TheDrummer: UnslopNemo 12B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"tngtech/deepseek-r1t2-chimera":{id:`tngtech/deepseek-r1t2-chimera`,name:`TNG: DeepSeek R1T2 Chimera`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.1,cacheRead:.15,cacheWrite:0},contextWindow:163840,maxTokens:163840},"upstage/solar-pro-3":{id:`upstage/solar-pro-3`,name:`Upstage: Solar Pro 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:.015,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"x-ai/grok-3":{id:`x-ai/grok-3`,name:`xAI: Grok 3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-beta":{id:`x-ai/grok-3-beta`,name:`xAI: Grok 3 Beta`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-mini":{id:`x-ai/grok-3-mini`,name:`xAI: Grok 3 Mini`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-3-mini-beta":{id:`x-ai/grok-3-mini-beta`,name:`xAI: Grok 3 Mini Beta`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:4096},"x-ai/grok-4":{id:`x-ai/grok-4`,name:`xAI: Grok 4`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:4096},"x-ai/grok-4-fast":{id:`x-ai/grok-4-fast`,name:`xAI: Grok 4 Fast`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"x-ai/grok-4.1-fast":{id:`x-ai/grok-4.1-fast`,name:`xAI: Grok 4.1 Fast`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"x-ai/grok-4.20":{id:`x-ai/grok-4.20`,name:`xAI: Grok 4.20`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"x-ai/grok-code-fast-1":{id:`x-ai/grok-code-fast-1`,name:`xAI: Grok Code Fast 1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:1e4},"xiaomi/mimo-v2-flash":{id:`xiaomi/mimo-v2-flash`,name:`Xiaomi: MiMo-V2-Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.09,output:.29,cacheRead:.045,cacheWrite:0},contextWindow:262144,maxTokens:65536},"xiaomi/mimo-v2-omni":{id:`xiaomi/mimo-v2-omni`,name:`Xiaomi: MiMo-V2-Omni`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:65536},"xiaomi/mimo-v2-pro":{id:`xiaomi/mimo-v2-pro`,name:`Xiaomi: MiMo-V2-Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"xiaomi/mimo-v2.5":{id:`xiaomi/mimo-v2.5`,name:`Xiaomi: MiMo-V2.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"xiaomi/mimo-v2.5-pro":{id:`xiaomi/mimo-v2.5-pro`,name:`Xiaomi: MiMo-V2.5-Pro`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"z-ai/glm-4-32b":{id:`z-ai/glm-4-32b`,name:`Z.ai: GLM 4 32B `,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"z-ai/glm-4.5":{id:`z-ai/glm-4.5`,name:`Z.ai: GLM 4.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:131072,maxTokens:98304},"z-ai/glm-4.5-air":{id:`z-ai/glm-4.5-air`,name:`Z.ai: GLM 4.5 Air`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.13,output:.85,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:131072,maxTokens:98304},"z-ai/glm-4.5-air:free":{id:`z-ai/glm-4.5-air:free`,name:`Z.ai: GLM 4.5 Air (free)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:96e3},"z-ai/glm-4.5v":{id:`z-ai/glm-4.5v`,name:`Z.ai: GLM 4.5V`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:1.7999999999999998,cacheRead:.11,cacheWrite:0},contextWindow:65536,maxTokens:16384},"z-ai/glm-4.6":{id:`z-ai/glm-4.6`,name:`Z.ai: GLM 4.6`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.39,output:1.9,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:204800},"z-ai/glm-4.6v":{id:`z-ai/glm-4.6v`,name:`Z.ai: GLM 4.6V`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:.8999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:131072,maxTokens:24e3},"z-ai/glm-4.7":{id:`z-ai/glm-4.7`,name:`Z.ai: GLM 4.7`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.38,output:1.74,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:4096},"z-ai/glm-4.7-flash":{id:`z-ai/glm-4.7-flash`,name:`Z.ai: GLM 4.7 Flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:202752,maxTokens:16384},"z-ai/glm-5":{id:`z-ai/glm-5`,name:`Z.ai: GLM 5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:1.9,cacheRead:.119,cacheWrite:0},contextWindow:202752,maxTokens:16384},"z-ai/glm-5-turbo":{id:`z-ai/glm-5-turbo`,name:`Z.ai: GLM 5 Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072},"z-ai/glm-5.1":{id:`z-ai/glm-5.1`,name:`Z.ai: GLM 5.1`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:1.0499999999999998,output:3.5,cacheRead:.5249999999999999,cacheWrite:0},contextWindow:202752,maxTokens:65535},"z-ai/glm-5v-turbo":{id:`z-ai/glm-5v-turbo`,name:`Z.ai: GLM 5V Turbo`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202752,maxTokens:131072},"~anthropic/claude-haiku-latest":{id:`~anthropic/claude-haiku-latest`,name:`Anthropic Claude Haiku Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"~anthropic/claude-opus-latest":{id:`~anthropic/claude-opus-latest`,name:`Anthropic: Claude Opus Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"~anthropic/claude-sonnet-latest":{id:`~anthropic/claude-sonnet-latest`,name:`Anthropic Claude Sonnet Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"~google/gemini-flash-latest":{id:`~google/gemini-flash-latest`,name:`Google Gemini Flash Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:.08333333333333334},contextWindow:1048576,maxTokens:65536},"~google/gemini-pro-latest":{id:`~google/gemini-pro-latest`,name:`Google Gemini Pro Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375},contextWindow:1048576,maxTokens:65536},"~moonshotai/kimi-latest":{id:`~moonshotai/kimi-latest`,name:`MoonshotAI Kimi Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.7448,output:4.655,cacheRead:.1463,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"~openai/gpt-latest":{id:`~openai/gpt-latest`,name:`OpenAI GPT Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"~openai/gpt-mini-latest":{id:`~openai/gpt-mini-latest`,name:`OpenAI GPT Mini Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3}},"vercel-ai-gateway":{"alibaba/qwen-3-14b":{id:`alibaba/qwen-3-14b`,name:`Qwen3-14B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.12,output:.24,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"alibaba/qwen-3-235b":{id:`alibaba/qwen-3-235b`,name:`Qwen3 235B A22b Instruct 2507`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:1.2,cacheRead:.6,cacheWrite:0},contextWindow:131e3,maxTokens:4e4},"alibaba/qwen-3-30b":{id:`alibaba/qwen-3-30b`,name:`Qwen3-30B-A3B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.08,output:.29,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:16384},"alibaba/qwen-3-32b":{id:`alibaba/qwen-3-32b`,name:`Qwen 3 32B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.16,output:.64,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"alibaba/qwen-3.6-max-preview":{id:`alibaba/qwen-3.6-max-preview`,name:`Qwen 3.6 Max Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.3,output:7.8,cacheRead:.26,cacheWrite:1.625},contextWindow:24e4,maxTokens:64e3},"alibaba/qwen3-235b-a22b-thinking":{id:`alibaba/qwen3-235b-a22b-thinking`,name:`Qwen3 235B A22B Thinking 2507`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.22999999999999998,output:2.3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:262114,maxTokens:262114},"alibaba/qwen3-coder":{id:`alibaba/qwen3-coder`,name:`Qwen3 Coder 480B A35B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.5,output:7.5,cacheRead:.3,cacheWrite:0},contextWindow:262144,maxTokens:65536},"alibaba/qwen3-coder-30b-a3b":{id:`alibaba/qwen3-coder-30b-a3b`,name:`Qwen 3 Coder 30B A3B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:8192},"alibaba/qwen3-coder-next":{id:`alibaba/qwen3-coder-next`,name:`Qwen3 Coder Next`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"alibaba/qwen3-coder-plus":{id:`alibaba/qwen3-coder-plus`,name:`Qwen3 Coder Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1,output:5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"alibaba/qwen3-max":{id:`alibaba/qwen3-max`,name:`Qwen3 Max`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:262144,maxTokens:32768},"alibaba/qwen3-max-preview":{id:`alibaba/qwen3-max-preview`,name:`Qwen3 Max Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:262144,maxTokens:32768},"alibaba/qwen3-max-thinking":{id:`alibaba/qwen3-max-thinking`,name:`Qwen 3 Max Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.2,output:6,cacheRead:.24,cacheWrite:0},contextWindow:256e3,maxTokens:65536},"alibaba/qwen3-vl-thinking":{id:`alibaba/qwen3-vl-thinking`,name:`Qwen3 VL 235B A22B Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:32768},"alibaba/qwen3.5-flash":{id:`alibaba/qwen3.5-flash`,name:`Qwen 3.5 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.001,cacheWrite:.125},contextWindow:1e6,maxTokens:64e3},"alibaba/qwen3.5-plus":{id:`alibaba/qwen3.5-plus`,name:`Qwen 3.5 Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2.4,cacheRead:.04,cacheWrite:.5},contextWindow:1e6,maxTokens:64e3},"alibaba/qwen3.6-plus":{id:`alibaba/qwen3.6-plus`,name:`Qwen 3.6 Plus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.09999999999999999,cacheWrite:.625},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-3-haiku":{id:`anthropic/claude-3-haiku`,name:`Claude 3 Haiku`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"anthropic/claude-3.5-haiku":{id:`anthropic/claude-3.5-haiku`,name:`Claude 3.5 Haiku`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.7999999999999999,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"anthropic/claude-3.7-sonnet":{id:`anthropic/claude-3.7-sonnet`,name:`Claude 3.7 Sonnet`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"anthropic/claude-haiku-4.5":{id:`anthropic/claude-haiku-4.5`,name:`Claude Haiku 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.09999999999999999,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4":{id:`anthropic/claude-opus-4`,name:`Claude Opus 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.1":{id:`anthropic/claude-opus-4.1`,name:`Claude Opus 4.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:32e3},"anthropic/claude-opus-4.5":{id:`anthropic/claude-opus-4.5`,name:`Claude Opus 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:2e5,maxTokens:64e3},"anthropic/claude-opus-4.6":{id:`anthropic/claude-opus-4.6`,name:`Claude Opus 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-opus-4.7":{id:`anthropic/claude-opus-4.7`,name:`Claude Opus 4.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},contextWindow:1e6,maxTokens:128e3},"anthropic/claude-sonnet-4":{id:`anthropic/claude-sonnet-4`,name:`Claude Sonnet 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.5":{id:`anthropic/claude-sonnet-4.5`,name:`Claude Sonnet 4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"anthropic/claude-sonnet-4.6":{id:`anthropic/claude-sonnet-4.6`,name:`Claude Sonnet 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:128e3},"arcee-ai/trinity-large-preview":{id:`arcee-ai/trinity-large-preview`,name:`Trinity Large Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:131e3,maxTokens:131e3},"arcee-ai/trinity-large-thinking":{id:`arcee-ai/trinity-large-thinking`,name:`Trinity Large Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:.8999999999999999,cacheRead:0,cacheWrite:0},contextWindow:262100,maxTokens:8e4},"bytedance/seed-1.6":{id:`bytedance/seed-1.6`,name:`Seed 1.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:2,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:256e3,maxTokens:32e3},"cohere/command-a":{id:`cohere/command-a`,name:`Command A`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:2.5,output:10,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8e3},"deepseek/deepseek-r1":{id:`deepseek/deepseek-r1`,name:`DeepSeek-R1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"deepseek/deepseek-v3":{id:`deepseek/deepseek-v3`,name:`DeepSeek V3 0324`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.77,output:.77,cacheRead:0,cacheWrite:0},contextWindow:163840,maxTokens:16384},"deepseek/deepseek-v3.1":{id:`deepseek/deepseek-v3.1`,name:`DeepSeek-V3.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.56,output:1.68,cacheRead:.28,cacheWrite:0},contextWindow:163840,maxTokens:8192},"deepseek/deepseek-v3.1-terminus":{id:`deepseek/deepseek-v3.1-terminus`,name:`DeepSeek V3.1 Terminus`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.27,output:1,cacheRead:.135,cacheWrite:0},contextWindow:131072,maxTokens:65536},"deepseek/deepseek-v3.2":{id:`deepseek/deepseek-v3.2`,name:`DeepSeek V3.2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.28,output:.42,cacheRead:.028,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"deepseek/deepseek-v3.2-thinking":{id:`deepseek/deepseek-v3.2-thinking`,name:`DeepSeek V3.2 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.28,output:.42,cacheRead:.028,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"deepseek/deepseek-v4-flash":{id:`deepseek/deepseek-v4-flash`,name:`DeepSeek V4 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.14,output:.28,cacheRead:.028,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"deepseek/deepseek-v4-pro":{id:`deepseek/deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.435,output:.87,cacheRead:.0036,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"google/gemini-2.0-flash":{id:`google/gemini-2.0-flash`,name:`Gemini 2.0 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.0-flash-lite":{id:`google/gemini-2.0-flash-lite`,name:`Gemini 2.0 Flash Lite`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.075,output:.3,cacheRead:.02,cacheWrite:0},contextWindow:1048576,maxTokens:8192},"google/gemini-2.5-flash":{id:`google/gemini-2.5-flash`,name:`Gemini 2.5 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65536},"google/gemini-2.5-flash-lite":{id:`google/gemini-2.5-flash-lite`,name:`Gemini 2.5 Flash Lite`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"google/gemini-2.5-pro":{id:`google/gemini-2.5-pro`,name:`Gemini 2.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:1048576,maxTokens:65536},"google/gemini-3-flash":{id:`google/gemini-3-flash`,name:`Gemini 3 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.5,output:3,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:1e6,maxTokens:65e3},"google/gemini-3-pro-preview":{id:`google/gemini-3-pro-preview`,name:`Gemini 3 Pro Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"google/gemini-3.1-flash-lite-preview":{id:`google/gemini-3.1-flash-lite-preview`,name:`Gemini 3.1 Flash Lite Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:1.5,cacheRead:.03,cacheWrite:0},contextWindow:1e6,maxTokens:65e3},"google/gemini-3.1-pro-preview":{id:`google/gemini-3.1-pro-preview`,name:`Gemini 3.1 Pro Preview`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:64e3},"google/gemma-4-26b-a4b-it":{id:`google/gemma-4-26b-a4b-it`,name:`Gemma 4 26B A4B IT`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.13,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"google/gemma-4-31b-it":{id:`google/gemma-4-31b-it`,name:`Gemma 4 31B IT`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.14,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"inception/mercury-2":{id:`inception/mercury-2`,name:`Mercury 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.25,output:.75,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:128e3,maxTokens:128e3},"inception/mercury-coder-small":{id:`inception/mercury-coder-small`,name:`Mercury Coder Small Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.25,output:1,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:16384},"kwaipilot/kat-coder-pro-v2":{id:`kwaipilot/kat-coder-pro-v2`,name:`Kat Coder Pro V2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"meituan/longcat-flash-chat":{id:`meituan/longcat-flash-chat`,name:`LongCat Flash Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:1e5},"meta/llama-3.1-70b":{id:`meta/llama-3.1-70b`,name:`Llama 3.1 70B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.1-8b":{id:`meta/llama-3.1-8b`,name:`Llama 3.1 8B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.22,output:.22,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.2-11b":{id:`meta/llama-3.2-11b`,name:`Llama 3.2 11B Vision Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.16,output:.16,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.2-90b":{id:`meta/llama-3.2-90b`,name:`Llama 3.2 90B Vision Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-3.3-70b":{id:`meta/llama-3.3-70b`,name:`Llama 3.3 70B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.72,output:.72,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-4-maverick":{id:`meta/llama-4-maverick`,name:`Llama 4 Maverick 17B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.24,output:.9700000000000001,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"meta/llama-4-scout":{id:`meta/llama-4-scout`,name:`Llama 4 Scout 17B Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.16999999999999998,output:.66,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8192},"minimax/minimax-m2":{id:`minimax/minimax-m2`,name:`MiniMax M2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:205e3,maxTokens:205e3},"minimax/minimax-m2.1":{id:`minimax/minimax-m2.1`,name:`MiniMax M2.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"minimax/minimax-m2.1-lightning":{id:`minimax/minimax-m2.1-lightning`,name:`MiniMax M2.1 Lightning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131072},"minimax/minimax-m2.5":{id:`minimax/minimax-m2.5`,name:`MiniMax M2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.5-highspeed":{id:`minimax/minimax-m2.5-highspeed`,name:`MiniMax M2.5 High Speed`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.4,cacheRead:.03,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.7":{id:`minimax/minimax-m2.7`,name:`Minimax M2.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131e3},"minimax/minimax-m2.7-highspeed":{id:`minimax/minimax-m2.7-highspeed`,name:`MiniMax M2.7 High Speed`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131100},"mistral/codestral":{id:`mistral/codestral`,name:`Mistral Codestral`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.3,output:.8999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/devstral-2":{id:`mistral/devstral-2`,name:`Devstral 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral/devstral-small":{id:`mistral/devstral-small`,name:`Devstral Small 1.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"mistral/devstral-small-2":{id:`mistral/devstral-small-2`,name:`Devstral Small 2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"mistral/ministral-3b":{id:`mistral/ministral-3b`,name:`Ministral 3B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.09999999999999999,output:.09999999999999999,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/ministral-8b":{id:`mistral/ministral-8b`,name:`Ministral 8B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/mistral-medium":{id:`mistral/mistral-medium`,name:`Mistral Medium 3.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:64e3},"mistral/mistral-small":{id:`mistral/mistral-small`,name:`Mistral Small`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.3,cacheRead:0,cacheWrite:0},contextWindow:32e3,maxTokens:4e3},"mistral/pixtral-12b":{id:`mistral/pixtral-12b`,name:`Pixtral 12B 2409`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"mistral/pixtral-large":{id:`mistral/pixtral-large`,name:`Pixtral Large`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4e3},"moonshotai/kimi-k2":{id:`moonshotai/kimi-k2`,name:`Kimi K2 Instruct`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.5700000000000001,output:2.3,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"moonshotai/kimi-k2-0905":{id:`moonshotai/kimi-k2-0905`,name:`Kimi K2 0905`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.3,cacheWrite:0},contextWindow:256e3,maxTokens:128e3},"moonshotai/kimi-k2-thinking":{id:`moonshotai/kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2-thinking-turbo":{id:`moonshotai/kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2-turbo":{id:`moonshotai/kimi-k2-turbo`,name:`Kimi K2 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:256e3,maxTokens:16384},"moonshotai/kimi-k2.5":{id:`moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:262114,maxTokens:262114},"moonshotai/kimi-k2.6":{id:`moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262e3,maxTokens:262e3},"nvidia/nemotron-nano-12b-v2-vl":{id:`nvidia/nemotron-nano-12b-v2-vl`,name:`Nvidia Nemotron Nano 12B V2 VL`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"nvidia/nemotron-nano-9b-v2":{id:`nvidia/nemotron-nano-9b-v2`,name:`Nvidia Nemotron Nano 9B V2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.06,output:.22999999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"openai/gpt-4-turbo":{id:`openai/gpt-4-turbo`,name:`GPT-4 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"openai/gpt-4.1":{id:`openai/gpt-4.1`,name:`GPT-4.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-mini":{id:`openai/gpt-4.1-mini`,name:`GPT-4.1 mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.39999999999999997,output:1.5999999999999999,cacheRead:.09999999999999999,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4.1-nano":{id:`openai/gpt-4.1-nano`,name:`GPT-4.1 nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.09999999999999999,output:.39999999999999997,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:1047576,maxTokens:32768},"openai/gpt-4o":{id:`openai/gpt-4o`,name:`GPT-4o`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-4o-mini":{id:`openai/gpt-4o-mini`,name:`GPT-4o mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.075,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5":{id:`openai/gpt-5`,name:`GPT-5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-chat":{id:`openai/gpt-5-chat`,name:`GPT 5 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5-codex":{id:`openai/gpt-5-codex`,name:`GPT-5-Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-mini":{id:`openai/gpt-5-mini`,name:`GPT-5 mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-nano":{id:`openai/gpt-5-nano`,name:`GPT-5 nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.049999999999999996,output:.39999999999999997,cacheRead:.005,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5-pro":{id:`openai/gpt-5-pro`,name:`GPT-5 pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:120,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:272e3},"openai/gpt-5.1-codex":{id:`openai/gpt-5.1-codex`,name:`GPT-5.1-Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-max":{id:`openai/gpt-5.1-codex-max`,name:`GPT 5.1 Codex Max`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-codex-mini":{id:`openai/gpt-5.1-codex-mini`,name:`GPT 5.1 Codex Mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.25,output:2,cacheRead:.024999999999999998,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.1-instant":{id:`openai/gpt-5.1-instant`,name:`GPT-5.1 Instant`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.1-thinking":{id:`openai/gpt-5.1-thinking`,name:`GPT 5.1 Thinking`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2":{id:`openai/gpt-5.2`,name:`GPT 5.2`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-chat":{id:`openai/gpt-5.2-chat`,name:`GPT 5.2 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.2-codex":{id:`openai/gpt-5.2-codex`,name:`GPT 5.2 Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.2-pro":{id:`openai/gpt-5.2-pro`,name:`GPT 5.2 `,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:21,output:168,cacheRead:0,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.3-chat":{id:`openai/gpt-5.3-chat`,name:`GPT-5.3 Chat`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"openai/gpt-5.3-codex":{id:`openai/gpt-5.3-codex`,name:`GPT 5.3 Codex`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4":{id:`openai/gpt-5.4`,name:`GPT 5.4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.4-mini":{id:`openai/gpt-5.4-mini`,name:`GPT 5.4 Mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-nano":{id:`openai/gpt-5.4-nano`,name:`GPT 5.4 Nano`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:1.25,cacheRead:.02,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"openai/gpt-5.4-pro":{id:`openai/gpt-5.4-pro`,name:`GPT 5.4 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"openai/gpt-5.5":{id:`openai/gpt-5.5`,name:`GPT 5.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"openai/gpt-5.5-pro":{id:`openai/gpt-5.5-pro`,name:`GPT 5.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"openai/gpt-oss-20b":{id:`openai/gpt-oss-20b`,name:`GPT OSS 120B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.049999999999999996,output:.19999999999999998,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:8192},"openai/gpt-oss-safeguard-20b":{id:`openai/gpt-oss-safeguard-20b`,name:`GPT OSS Safeguard 20B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.075,output:.3,cacheRead:.037,cacheWrite:0},contextWindow:131072,maxTokens:65536},"openai/o1":{id:`openai/o1`,name:`o1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3":{id:`openai/o3`,name:`o3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-deep-research":{id:`openai/o3-deep-research`,name:`o3-deep-research`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:10,output:40,cacheRead:2.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-mini":{id:`openai/o3-mini`,name:`o3-mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o3-pro":{id:`openai/o3-pro`,name:`o3 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:20,output:80,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"openai/o4-mini":{id:`openai/o4-mini`,name:`o4-mini`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"perplexity/sonar":{id:`perplexity/sonar`,name:`Sonar`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:127e3,maxTokens:8e3},"perplexity/sonar-pro":{id:`perplexity/sonar-pro`,name:`Sonar Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:8e3},"prime-intellect/intellect-3":{id:`prime-intellect/intellect-3`,name:`INTELLECT 3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3":{id:`xai/grok-3`,name:`Grok 3 Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-fast":{id:`xai/grok-3-fast`,name:`Grok 3 Fast Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-mini":{id:`xai/grok-3-mini`,name:`Grok 3 Mini Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-3-mini-fast":{id:`xai/grok-3-mini-fast`,name:`Grok 3 Mini Fast Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`],cost:{input:.6,output:4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"xai/grok-4":{id:`xai/grok-4`,name:`Grok 4`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"xai/grok-4-fast-non-reasoning":{id:`xai/grok-4-fast-non-reasoning`,name:`Grok 4 Fast Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:256e3},"xai/grok-4-fast-reasoning":{id:`xai/grok-4-fast-reasoning`,name:`Grok 4 Fast Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:256e3},"xai/grok-4.1-fast-non-reasoning":{id:`xai/grok-4.1-fast-non-reasoning`,name:`Grok 4.1 Fast Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"xai/grok-4.1-fast-reasoning":{id:`xai/grok-4.1-fast-reasoning`,name:`Grok 4.1 Fast Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.19999999999999998,output:.5,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"xai/grok-4.20-multi-agent":{id:`xai/grok-4.20-multi-agent`,name:`Grok 4.20 Multi-Agent`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-multi-agent-beta":{id:`xai/grok-4.20-multi-agent-beta`,name:`Grok 4.20 Multi Agent Beta`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-non-reasoning":{id:`xai/grok-4.20-non-reasoning`,name:`Grok 4.20 Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-non-reasoning-beta":{id:`xai/grok-4.20-non-reasoning-beta`,name:`Grok 4.20 Beta Non-Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-reasoning":{id:`xai/grok-4.20-reasoning`,name:`Grok 4.20 Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.20-reasoning-beta":{id:`xai/grok-4.20-reasoning-beta`,name:`Grok 4.20 Beta Reasoning`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-code-fast-1":{id:`xai/grok-code-fast-1`,name:`Grok Code Fast 1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"xiaomi/mimo-v2-flash":{id:`xiaomi/mimo-v2-flash`,name:`MiMo V2 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.09999999999999999,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:32e3},"xiaomi/mimo-v2-pro":{id:`xiaomi/mimo-v2-pro`,name:`MiMo V2 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:128e3},"zai/glm-4.5":{id:`zai/glm-4.5`,name:`GLM-4.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:128e3,maxTokens:96e3},"zai/glm-4.5-air":{id:`zai/glm-4.5-air`,name:`GLM 4.5 Air`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.19999999999999998,output:1.1,cacheRead:.03,cacheWrite:0},contextWindow:128e3,maxTokens:96e3},"zai/glm-4.5v":{id:`zai/glm-4.5v`,name:`GLM 4.5V`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!1,input:[`text`,`image`],cost:{input:.6,output:1.7999999999999998,cacheRead:.11,cacheWrite:0},contextWindow:66e3,maxTokens:16e3},"zai/glm-4.6":{id:`zai/glm-4.6`,name:`GLM 4.6`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},contextWindow:2e5,maxTokens:96e3},"zai/glm-4.6v":{id:`zai/glm-4.6v`,name:`GLM-4.6V`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.3,output:.8999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:128e3,maxTokens:24e3},"zai/glm-4.6v-flash":{id:`zai/glm-4.6v-flash`,name:`GLM-4.6V-Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:24e3},"zai/glm-4.7":{id:`zai/glm-4.7`,name:`GLM 4.7`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:2.25,output:2.75,cacheRead:2.25,cacheWrite:0},contextWindow:131e3,maxTokens:4e4},"zai/glm-4.7-flash":{id:`zai/glm-4.7-flash`,name:`GLM 4.7 Flash`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.07,output:.39999999999999997,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131e3},"zai/glm-4.7-flashx":{id:`zai/glm-4.7-flashx`,name:`GLM 4.7 FlashX`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:.06,output:.39999999999999997,cacheRead:.01,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"zai/glm-5":{id:`zai/glm-5`,name:`GLM 5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1,output:3.1999999999999997,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:202800,maxTokens:131100},"zai/glm-5-turbo":{id:`zai/glm-5-turbo`,name:`GLM 5 Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:202800,maxTokens:131100},"zai/glm-5.1":{id:`zai/glm-5.1`,name:`GLM 5.1`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`],cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},contextWindow:202800,maxTokens:64e3},"zai/glm-5v-turbo":{id:`zai/glm-5v-turbo`,name:`GLM 5V Turbo`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},contextWindow:2e5,maxTokens:128e3}},xai:{"grok-2":{id:`grok-2`,name:`Grok 2`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-1212":{id:`grok-2-1212`,name:`Grok 2 (1212)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-latest":{id:`grok-2-latest`,name:`Grok 2 Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-2-vision":{id:`grok-2-vision`,name:`Grok 2 Vision`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-2-vision-1212":{id:`grok-2-vision-1212`,name:`Grok 2 Vision (1212)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-2-vision-latest":{id:`grok-2-vision-latest`,name:`Grok 2 Vision Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:10,cacheRead:2,cacheWrite:0},contextWindow:8192,maxTokens:4096},"grok-3":{id:`grok-3`,name:`Grok 3`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-fast":{id:`grok-3-fast`,name:`Grok 3 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-fast-latest":{id:`grok-3-fast-latest`,name:`Grok 3 Fast Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:25,cacheRead:1.25,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-latest":{id:`grok-3-latest`,name:`Grok 3 Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini":{id:`grok-3-mini`,name:`Grok 3 Mini`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-fast":{id:`grok-3-mini-fast`,name:`Grok 3 Mini Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:4,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-fast-latest":{id:`grok-3-mini-fast-latest`,name:`Grok 3 Mini Fast Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.6,output:4,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-3-mini-latest":{id:`grok-3-mini-latest`,name:`Grok 3 Mini Latest`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:0},contextWindow:131072,maxTokens:8192},"grok-4":{id:`grok-4`,name:`Grok 4`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:3,output:15,cacheRead:.75,cacheWrite:0},contextWindow:256e3,maxTokens:64e3},"grok-4-1-fast":{id:`grok-4-1-fast`,name:`Grok 4.1 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-1-fast-non-reasoning":{id:`grok-4-1-fast-non-reasoning`,name:`Grok 4.1 Fast (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-fast":{id:`grok-4-fast`,name:`Grok 4 Fast`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4-fast-non-reasoning":{id:`grok-4-fast-non-reasoning`,name:`Grok 4 Fast (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4.20-0309-non-reasoning":{id:`grok-4.20-0309-non-reasoning`,name:`Grok 4.20 (Non-Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-4.20-0309-reasoning":{id:`grok-4.20-0309-reasoning`,name:`Grok 4.20 (Reasoning)`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:6,cacheRead:.2,cacheWrite:0},contextWindow:2e6,maxTokens:3e4},"grok-beta":{id:`grok-beta`,name:`Grok Beta`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`],cost:{input:5,output:15,cacheRead:5,cacheWrite:0},contextWindow:131072,maxTokens:4096},"grok-code-fast-1":{id:`grok-code-fast-1`,name:`Grok Code Fast 1`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`],cost:{input:.2,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:256e3,maxTokens:1e4},"grok-vision-beta":{id:`grok-vision-beta`,name:`Grok Vision Beta`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:15,cacheRead:5,cacheWrite:0},contextWindow:8192,maxTokens:4096}},zai:{"glm-4.5-air":{id:`glm-4.5-air`,name:`GLM-4.5-Air`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:98304},"glm-4.7":{id:`glm-4.7`,name:`GLM-4.7`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"glm-5-turbo":{id:`glm-5-turbo`,name:`GLM-5-Turbo`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072},"glm-5.1":{id:`glm-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`zai`,baseUrl:`https://api.z.ai/api/coding/paas/v4`,compat:{supportsDeveloperRole:!1,thinkingFormat:`zai`,zaiToolStream:!0},reasoning:!0,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072}}},xd=new Map;for(let[e,t]of Object.entries(bd)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);xd.set(e,n)}function Sd(e,t){return xd.get(e)?.get(t)}function Cd(){return Array.from(xd.keys())}function wd(e){let t=xd.get(e);return t?Array.from(t.values()):[]}function Td(e,t){return t.cost.input=e.cost.input/1e6*t.input,t.cost.output=e.cost.output/1e6*t.output,t.cost.cacheRead=e.cost.cacheRead/1e6*t.cacheRead,t.cost.cacheWrite=e.cost.cacheWrite/1e6*t.cacheWrite,t.cost.total=t.cost.input+t.cost.output+t.cost.cacheRead+t.cost.cacheWrite,t.cost}function Ed(e){return!!(e.id.includes(`gpt-5.2`)||e.id.includes(`gpt-5.3`)||e.id.includes(`gpt-5.4`)||e.id.includes(`gpt-5.5`)||e.id.includes(`deepseek-v4-pro`)||e.id.includes(`opus-4-6`)||e.id.includes(`opus-4.6`)||e.id.includes(`opus-4-7`)||e.id.includes(`opus-4.7`))}function Dd(e,t){return!e||!t?!1:e.id===t.id&&e.provider===t.provider}var Od=class{isComplete;extractResult;queue=[];waiting=[];done=!1;finalResultPromise;resolveFinalResult;constructor(e,t){this.isComplete=e,this.extractResult=t,this.finalResultPromise=new Promise(e=>{this.resolveFinalResult=e})}push(e){if(this.done)return;this.isComplete(e)&&(this.done=!0,this.resolveFinalResult(this.extractResult(e)));let t=this.waiting.shift();t?t({value:e,done:!1}):this.queue.push(e)}end(e){for(this.done=!0,e!==void 0&&this.resolveFinalResult(e);this.waiting.length>0;)this.waiting.shift()({value:void 0,done:!0})}async*[Symbol.asyncIterator](){for(;;)if(this.queue.length>0)yield this.queue.shift();else if(this.done)return;else{let e=await new Promise(e=>this.waiting.push(e));if(e.done)return;yield e.value}}result(){return this.finalResultPromise}},kd=class extends Od{constructor(){super(e=>e.type===`done`||e.type===`error`,e=>{if(e.type===`done`)return e.message;if(e.type===`error`)return e.error;throw Error(`Unexpected event type for final result`)})}},Ad=e=>sd(()=>import(e),[]),jd,Md,Nd,Pd,Fd,Id,Ld,Rd,zd,Bd,Vd;function Hd(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function Ud(e,t){return{role:`assistant`,content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function Wd(e){return(t,n,r)=>{let i=new kd;return e().then(e=>{Hd(i,e.stream(t,n,r))}).catch(e=>{let n=Ud(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function Gd(e){return(t,n,r)=>{let i=new kd;return e().then(e=>{Hd(i,e.streamSimple(t,n,r))}).catch(e=>{let n=Ud(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function Kd(){return jd||=sd(()=>import(`./anthropic-BiTRBcug.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),__vite__mapDeps([0,1,2,3])),jd}function qd(){return Md||=sd(()=>import(`./azure-openai-responses-MuqXmHEI.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),__vite__mapDeps([4,5,2,6,3,7])),Md}function Jd(){return Nd||=sd(()=>import(`./google-Bp1Z3Se-.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),__vite__mapDeps([8,9,10,2])),Nd}function Yd(){return Pd||=sd(()=>import(`./google-gemini-cli-6iC3v7Mu.js`).then(e=>{let t=e;return{stream:t.streamGoogleGeminiCli,streamSimple:t.streamSimpleGoogleGeminiCli}}),__vite__mapDeps([11,9,10,2,3])),Pd}function Xd(){return Fd||=sd(()=>import(`./google-vertex-DzmUuLVp.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),__vite__mapDeps([12,9,10,2])),Fd}function Zd(){return Id||=sd(()=>import(`./mistral-BSlX93lo.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),__vite__mapDeps([13,2,6])),Id}function Qd(){return Ld||=sd(()=>import(`./openai-codex-responses-CvN5Iwy4.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),__vite__mapDeps([14,5,2,6,3])),Ld}function $d(){return Rd||=sd(()=>import(`./openai-completions-CteXgyGA.js`).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),__vite__mapDeps([15,1,2,3,7])),Rd}function ef(){return zd||=sd(()=>import(`./openai-responses-Chg1ZGwU.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),__vite__mapDeps([16,1,5,2,6,3,7])),zd}function tf(){return Bd?Promise.resolve(Bd):(Vd||=Ad(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),Vd)}var nf=Wd(Kd),rf=Gd(Kd),af=Wd(qd),of=Gd(qd),sf=Wd(Jd),cf=Gd(Jd),lf=Wd(Yd),uf=Gd(Yd),df=Wd(Xd),ff=Gd(Xd),pf=Wd(Zd),mf=Gd(Zd),hf=Wd(Qd),gf=Gd(Qd),_f=Wd($d),vf=Gd($d),yf=Wd(ef),bf=Gd(ef),xf=Wd(tf),Sf=Gd(tf);function Cf(){nd({api:`anthropic-messages`,stream:nf,streamSimple:rf}),nd({api:`openai-completions`,stream:_f,streamSimple:vf}),nd({api:`mistral-conversations`,stream:pf,streamSimple:mf}),nd({api:`openai-responses`,stream:yf,streamSimple:bf}),nd({api:`azure-openai-responses`,stream:af,streamSimple:of}),nd({api:`openai-codex-responses`,stream:hf,streamSimple:gf}),nd({api:`google-generative-ai`,stream:sf,streamSimple:cf}),nd({api:`google-gemini-cli`,stream:lf,streamSimple:uf}),nd({api:`google-vertex`,stream:df,streamSimple:ff}),nd({api:`bedrock-converse-stream`,stream:xf,streamSimple:Sf})}Cf();function wf(e){let t=rd(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function Tf(e,t,n){return wf(e.api).stream(e,t,n)}async function Ef(e,t,n){return Tf(e,t,n).result()}function Df(e,t,n){return wf(e.api).streamSimple(e,t,n)}var Of=n((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),kf=n((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var r=Of();Object.defineProperty(e,`Allow`,{enumerable:!0,get:function(){return r.Allow}}),n(Of(),e);var i=class extends Error{};e.PartialJSON=i;var a=class extends Error{};e.MalformedJSON=a;function o(e,t=r.Allow.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return s(e.trim(),t)}e.parseJSON=o;var s=(e,t)=>{let n=e.length,o=0,s=e=>{throw new i(`${e} at position ${o}`)},c=e=>{throw new a(`${e} at position ${o}`)},l=()=>(m(),o>=n&&s(`Unexpected end of input`),e[o]===`"`?u():e[o]===`{`?d():e[o]===`[`?f():e.substring(o,o+4)===`null`||r.Allow.NULL&t&&n-o<4&&`null`.startsWith(e.substring(o))?(o+=4,null):e.substring(o,o+4)===`true`||r.Allow.BOOL&t&&n-o<4&&`true`.startsWith(e.substring(o))?(o+=4,!0):e.substring(o,o+5)===`false`||r.Allow.BOOL&t&&n-o<5&&`false`.startsWith(e.substring(o))?(o+=5,!1):e.substring(o,o+8)===`Infinity`||r.Allow.INFINITY&t&&n-o<8&&`Infinity`.startsWith(e.substring(o))?(o+=8,1/0):e.substring(o,o+9)===`-Infinity`||r.Allow._INFINITY&t&&1<n-o&&n-o<9&&`-Infinity`.startsWith(e.substring(o))?(o+=9,-1/0):e.substring(o,o+3)===`NaN`||r.Allow.NAN&t&&n-o<3&&`NaN`.startsWith(e.substring(o))?(o+=3,NaN):p()),u=()=>{let i=o,a=!1;for(o++;o<n&&(e[o]!==`"`||a&&e[o-1]===`\\`);)a=e[o]===`\\`?!a:!1,o++;if(e.charAt(o)==`"`)try{return JSON.parse(e.substring(i,++o-Number(a)))}catch(e){c(String(e))}else if(r.Allow.STR&t)try{return JSON.parse(e.substring(i,o-Number(a))+`"`)}catch{return JSON.parse(e.substring(i,e.lastIndexOf(`\\`))+`"`)}s(`Unterminated string literal`)},d=()=>{o++,m();let i={};try{for(;e[o]!==`}`;){if(m(),o>=n&&r.Allow.OBJ&t)return i;let a=u();m(),o++;try{i[a]=l()}catch(e){if(r.Allow.OBJ&t)return i;throw e}m(),e[o]===`,`&&o++}}catch{if(r.Allow.OBJ&t)return i;s(`Expected '}' at end of object`)}return o++,i},f=()=>{o++;let n=[];try{for(;e[o]!==`]`;)n.push(l()),m(),e[o]===`,`&&o++}catch{if(r.Allow.ARR&t)return n;s(`Expected ']' at end of array`)}return o++,n},p=()=>{if(o===0){e===`-`&&c(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(r.Allow.NUM&t)try{return JSON.parse(e.substring(0,e.lastIndexOf(`e`)))}catch{}c(String(n))}}let i=o;for(e[o]===`-`&&o++;e[o]&&`,]}`.indexOf(e[o])===-1;)o++;o==n&&!(r.Allow.NUM&t)&&s(`Unterminated number literal`);try{return JSON.parse(e.substring(i,o))}catch{e.substring(i,o)===`-`&&s(`Not sure what '-' is`);try{return JSON.parse(e.substring(i,e.lastIndexOf(`e`)))}catch(e){c(String(e))}}},m=()=>{for(;o<n&&`
132
132
  \r `.includes(e[o]);)o++};return l()};e.parse=o}))(),Af=new Set([`"`,`\\`,`/`,`b`,`f`,`n`,`r`,`t`,`u`]);function jf(e){let t=e.codePointAt(0);return t!==void 0&&t>=0&&t<=31}function Mf(e){switch(e){case`\b`:return`\\b`;case`\f`:return`\\f`;case`
133
133
  `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;default:return`\\u${e.codePointAt(0)?.toString(16).padStart(4,`0`)??`0000`}`}}function Nf(e){let t=``,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(!n){t+=i,i===`"`&&(n=!0);continue}if(i===`"`){t+=i,n=!1;continue}if(i===`\\`){let n=e[r+1];if(n===void 0){t+=`\\\\`;continue}if(n===`u`){let n=e.slice(r+2,r+6);if(/^[0-9a-fA-F]{4}$/.test(n)){t+=`\\u${n}`,r+=5;continue}}if(Af.has(n)){t+=`\\${n}`,r+=1;continue}t+=`\\\\`;continue}t+=jf(i)?Mf(i):i}return t}function Pf(e){try{return JSON.parse(e)}catch(t){let n=Nf(e);if(n!==e)return JSON.parse(n);throw t}}function Ff(e){if(!e||e.trim()===``)return{};try{return Pf(e)}catch{try{return(0,kf.parse)(e)??{}}catch{try{return(0,kf.parse)(Nf(e))??{}}catch{return{}}}}}function If(e,t){return hee({type:`string`,enum:e,...t?.description&&{description:t.description},...t?.default&&{default:t.default}})}function Lf(e){return At(e)&&Kt(e,`check`)&&Kt(e,`errors`)&&Tt(e.check)&&Tt(e.errors)}function Rf(e){return Kt(e,`~guard`)&&Lf(e[`~guard`])}function zf(e){return Kt(e,`~refine`)&&bt(e[`~refine`])&&Ut(e[`~refine`],0,e=>At(e)&&Kt(e,`check`)&&Kt(e,`error`)&&Tt(e.check)&&Tt(e.error))}function Bf(e){return At(e)&&!bt(e)}function Vf(e){return Ct(e)}function Hf(e){return Bf(e)||Vf(e)}function Uf(e){return Kt(e,`additionalItems`)&&Hf(e.additionalItems)}function Wf(e){return Kt(e,`additionalProperties`)&&Hf(e.additionalProperties)}function Gf(e){return Kt(e,`allOf`)&&bt(e.allOf)&&e.allOf.every(e=>Hf(e))}function Kf(e){return Kt(e,`$anchor`)&&jt(e.$anchor)}function qf(e){return Kt(e,`anyOf`)&&bt(e.anyOf)&&e.anyOf.every(e=>Hf(e))}function Jf(e){return Kt(e,`const`)}function Yf(e){return Kt(e,`contains`)&&Hf(e.contains)}function Xf(e){return Kt(e,`default`)}function Zf(e){return Kt(e,`dependencies`)&&At(e.dependencies)&&Object.values(e.dependencies).every(e=>Hf(e)||bt(e)&&e.every(e=>jt(e)))}function Qf(e){return Kt(e,`dependentRequired`)&&At(e.dependentRequired)&&Object.values(e.dependentRequired).every(e=>bt(e)&&e.every(e=>jt(e)))}function $f(e){return Kt(e,`dependentSchemas`)&&At(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(e=>Hf(e))}function ep(e){return Kt(e,`$dynamicAnchor`)&&jt(e.$dynamicAnchor)}function tp(e){return Kt(e,`$dynamicRef`)&&jt(e.$dynamicRef)}function np(e){return Kt(e,`else`)&&Hf(e.else)}function rp(e){return Kt(e,`enum`)&&bt(e.enum)}function ip(e){return Kt(e,`exclusiveMaximum`)&&(Ot(e.exclusiveMaximum)||St(e.exclusiveMaximum))}function ap(e){return Kt(e,`exclusiveMinimum`)&&(Ot(e.exclusiveMinimum)||St(e.exclusiveMinimum))}function op(e){return Kt(e,`format`)&&jt(e.format)}function sp(e){return Kt(e,`$id`)&&jt(e.$id)}function cp(e){return Kt(e,`if`)&&Hf(e.if)}function lp(e){return Kt(e,`items`)&&(Hf(e.items)||bt(e.items)&&e.items.every(e=>Hf(e)))}function up(e){return lp(e)&&bt(e.items)}function dp(e){return Kt(e,`maximum`)&&(Ot(e.maximum)||St(e.maximum))}function fp(e){return Kt(e,`maxContains`)&&Ot(e.maxContains)}function pp(e){return Kt(e,`maxItems`)&&Ot(e.maxItems)}function mp(e){return Kt(e,`maxLength`)&&Ot(e.maxLength)}function hp(e){return Kt(e,`maxProperties`)&&Ot(e.maxProperties)}function gp(e){return Kt(e,`minimum`)&&(Ot(e.minimum)||St(e.minimum))}function _p(e){return Kt(e,`minContains`)&&Ot(e.minContains)}function vp(e){return Kt(e,`minItems`)&&Ot(e.minItems)}function yp(e){return Kt(e,`minLength`)&&Ot(e.minLength)}function bp(e){return Kt(e,`minProperties`)&&Ot(e.minProperties)}function xp(e){return Kt(e,`multipleOf`)&&(Ot(e.multipleOf)||St(e.multipleOf))}function Sp(e){return Kt(e,`not`)&&Hf(e.not)}function Cp(e){return Kt(e,`oneOf`)&&bt(e.oneOf)&&e.oneOf.every(e=>Hf(e))}function wp(e){return Kt(e,`pattern`)&&(jt(e.pattern)||e.pattern instanceof RegExp)}function Tp(e){return Kt(e,`patternProperties`)&&At(e.patternProperties)&&Object.values(e.patternProperties).every(e=>Hf(e))}function Ep(e){return Kt(e,`prefixItems`)&&bt(e.prefixItems)&&e.prefixItems.every(e=>Hf(e))}function Dp(e){return Kt(e,`properties`)&&At(e.properties)&&Object.values(e.properties).every(e=>Hf(e))}function Op(e){return Kt(e,`propertyNames`)&&(At(e.propertyNames)||Hf(e.propertyNames))}function kp(e){return Kt(e,`$recursiveAnchor`)&&Ct(e.$recursiveAnchor)}function Ap(e){return kp(e)&&R(e.$recursiveAnchor,!0)}function jp(e){return Kt(e,`$recursiveRef`)&&jt(e.$recursiveRef)}function Mp(e){return Kt(e,`$ref`)&&jt(e.$ref)}function Np(e){return Kt(e,`required`)&&bt(e.required)&&e.required.every(e=>jt(e))}function Pp(e){return Kt(e,`then`)&&Hf(e.then)}function Fp(e){return Kt(e,`type`)&&(jt(e.type)||bt(e.type)&&e.type.every(e=>jt(e)))}function Ip(e){return Kt(e,`uniqueItems`)&&Ct(e.uniqueItems)}function Lp(e){return Kt(e,`unevaluatedItems`)&&Hf(e.unevaluatedItems)}function Rp(e){return Kt(e,`unevaluatedProperties`)&&Hf(e.unevaluatedProperties)}var zp=class{constructor(){let e=new Set,t=new Set;this.stack=[{indices:e,keys:t}]}Push(){let e=new Set,t=new Set;return this.stack.push({indices:e,keys:t}),!0}Pop(){return this.stack.pop(),!0}AddIndex(e){return this.GetIndices().add(e),!0}AddKey(e){return this.GetKeys().add(e),!0}GetIndices(){return this.stack[this.stack.length-1].indices}GetKeys(){return this.stack[this.stack.length-1].keys}Merge(e){for(let t of e)t.GetIndices().forEach(e=>this.GetIndices().add(e)),t.GetKeys().forEach(e=>this.GetKeys().add(e));return!0}},Bp=class extends zp{constructor(e){super(),this.callback=e}AddError(e){return this.callback(e),!1}},Vp=class extends Bp{constructor(){super(e=>this.errors.push(e)),this.errors=[]}AddError(e){return this.errors.push(e),!1}GetErrors(){return this.errors}};function Hp(e,t,n,r){return n[`~guard`].check(r)}function Up(e,t,n,r,i,a){return i[`~guard`].check(a)||t.AddError({keyword:`~guard`,schemaPath:n,instancePath:r,params:{errors:i[`~guard`].errors(a)}})}function Wp(e,t,n,r){return Ut(n[`~refine`],0,(e,t)=>e.check(r))}function Gp(e,t,n,r,i,a){return Wt(i[`~refine`],0,(e,i)=>e.check(a)||t.AddError({keyword:`~refine`,schemaPath:n,instancePath:r,params:{index:i,message:e.error(a)}}))}function Kp(e){return lp(e)&&bt(e.items)}function qp(e,t,n,r){return Kp(n)?r.every((r,i)=>Ft(i,n.items.length)||fg(e,t,n.additionalItems,r)&&t.AddIndex(i)):!0}function Jp(e,t,n,r,i,a){return Kp(i)?a.every((a,o)=>{let s=`${n}/additionalItems`,c=`${r}/${o}`;return Ft(o,i.items.length)||mg(e,t,s,c,i.additionalItems,a)&&t.AddIndex(o)}):!0}function Yp(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}$`}function Xp(e){let t=[];return Tp(e)&&t.push(...Yt(e.patternProperties)),Dp(e)&&t.push(...Yt(e.properties).map(Yp)),R(t.length,0)?`(?!)`:`(${t.join(`|`)})`}function Zp(e,t,n,r){let i=new RegExp(Xp(n));return Ut(Yt(r),0,(a,o)=>i.test(a)||fg(e,t,n.additionalProperties,r[a])&&t.AddKey(a))}function Qp(e,t,n,r,i,a){let o=new RegExp(Xp(i)),s=[];return Wt(Yt(a),0,(c,l)=>{let u=`${n}/additionalProperties`,d=`${r}/${c}`,f=new Vp,p=o.test(c)||mg(e,f,u,d,i.additionalProperties,a[c])&&t.AddKey(c);return p||s.push(c),p})||t.AddError({keyword:`additionalProperties`,schemaPath:n,instancePath:r,params:{additionalProperties:s}})}function $p(e,t,n,r){let i=n.allOf.reduce((t,n)=>{let i=new zp;return pg(e,i,n,r)?[...t,i]:t},[]);return R(i.length,n.allOf.length)&&t.Merge(i)}function em(e,t,n,r,i,a){let o=[],s=i.allOf.reduce((t,i,s)=>{let c=`${n}/allOf/${s}`,l=new Vp,u=hg(e,l,c,r,i,a);return u||o.push(l),u?[...t,l]:t},[]),c=R(s.length,i.allOf.length)&&t.Merge(s);return c||o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),c}function tm(e,t,n,r){let i=n.anyOf.reduce((t,n)=>{let i=new zp;return pg(e,i,n,r)?[...t,i]:t},[]);return Pt(i.length,0)&&t.Merge(i)}function nm(e,t,n,r,i,a){let o=[],s=i.anyOf.reduce((t,i,s)=>{let c=new Vp,l=hg(e,c,`${n}/anyOf/${s}`,r,i,a);return l||o.push(c),l?[...t,c]:t},[]),c=Pt(s.length,0)&&t.Merge(s);return c||o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),c||t.AddError({keyword:`anyOf`,schemaPath:n,instancePath:r,params:{}})}function rm(e,t,n,r){return n}function im(e,t,n,r,i,a){return rm(e,t,i,a)||t.AddError({keyword:`boolean`,schemaPath:n,instancePath:r,params:{}})}function am(e,t,n,r){return Bt(n.const)?R(r,n.const):Zt(r,n.const)}function om(e,t,n,r,i,a){return am(e,t,i,a)||t.AddError({keyword:`const`,schemaPath:n,instancePath:r,params:{allowedValue:i.const}})}function sm(e){return!(_p(e)&&R(e.minContains,0))}function cm(e,t,n,r){return sm(n)?!R(r.length,0)&&r.some(r=>pg(e,t,n.contains,r)):!0}function lm(e,t,n,r,i,a){return cm(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:1}})}function um(e,t,n,r){let i=R(Yt(r).length,0),a=Ut(Jt(n.dependencies),0,([n,i])=>!Kt(r,n)||(bt(i)?i.every(e=>Kt(r,e)):pg(e,t,i,r)));return i||a}function dm(e,t,n,r,i,a){let o=R(Yt(a).length,0),s=Wt(Jt(i.dependencies),0,([i,o])=>{let s=`${n}/dependencies/${i}`;return!Kt(a,i)||(bt(o)?o.every(e=>Kt(a,e)||t.AddError({keyword:`dependencies`,schemaPath:n,instancePath:r,params:{property:i,dependencies:o}})):hg(e,t,s,r,o,a))});return o||s}function fm(e,t,n,r){let i=R(Yt(r).length,0),a=Ut(Jt(n.dependentRequired),0,([e,t])=>!Kt(r,e)||t.every(e=>Kt(r,e)));return i||a}function pm(e,t,n,r,i,a){let o=R(Yt(a).length,0),s=Wt(Jt(i.dependentRequired),0,([e,i])=>!Kt(a,e)||Wt(i,0,o=>Kt(a,o)||t.AddError({keyword:`dependentRequired`,schemaPath:n,instancePath:r,params:{property:e,dependencies:i}})));return o||s}function mm(e,t,n,r){let i=R(Yt(r).length,0),a=Ut(Jt(n.dependentSchemas),0,([n,i])=>!Kt(r,n)||pg(e,t,i,r));return i||a}function hm(e,t,n,r,i,a){let o=R(Yt(a).length,0),s=Wt(Jt(i.dependentSchemas),0,([i,o])=>{let s=`${n}/dependentSchemas/${i}`;return!Kt(a,i)||hg(e,t,s,r,o,a)});return o||s}function gm(e,t,n,r){let i=e.DynamicRef(n)??!1;return Hf(i)&&pg(e,t,i,r)}function _m(e,t,n,r,i,a){let o=e.DynamicRef(i)??!1;return Hf(o)&&hg(e,t,`#`,r,o,a)}function vm(e,t,n,r){return n.enum.some(e=>Bt(e)?R(r,e):Zt(r,e))}function ym(e,t,n,r,i,a){return vm(e,t,i,a)||t.AddError({keyword:`enum`,schemaPath:n,instancePath:r,params:{allowedValues:i.enum}})}function bm(e,t,n,r){return Ft(r,n.exclusiveMaximum)}function xm(e,t,n,r,i,a){return bm(e,t,i,a)||t.AddError({keyword:`exclusiveMaximum`,schemaPath:n,instancePath:r,params:{comparison:`<`,limit:i.exclusiveMaximum}})}function Sm(e,t,n,r){return Pt(r,n.exclusiveMinimum)}function Cm(e,t,n,r,i,a){return Sm(e,t,i,a)||t.AddError({keyword:`exclusiveMinimum`,schemaPath:n,instancePath:r,params:{comparison:`>`,limit:i.exclusiveMinimum}})}var wm=[0,31,28,31,30,31,30,31,31,30,31,30,31],Tm=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function Em(e){return e%4==0&&(e%100!=0||e%400==0)}function Dm(e){let t=Tm.exec(e);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r===2&&Em(n)?29:wm[r])}var Om=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function km(e,t=!0){let n=Om.exec(e);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=n[4]===`-`?-1:1,s=+(n[5]||0),c=+(n[6]||0);if(s>23||c>59||t&&!n[4]&&e.toLowerCase().indexOf(`z`)===-1)return!1;if(r<=23&&i<=59&&a<60)return!0;let l=i-c*o,u=r-s*o-+(l<0);return(u===23||u===-1)&&(l===59||l===-1)&&a<61}function Am(e,t=!0){let n=e.split(/T/i);return n.length===2&&Dm(n[0])&&km(n[1],t)}var jm=/^P((\d+Y(\d+M(\d+D)?)?|\d+M(\d+D)?|\d+D)(T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S))?|T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S)|\d+W)$/;function Mm(e){return jm.test(e)}var Nm=/^(?!.*\.\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;function Pm(e){return Nm.test(e)}var Fm=36,Im=1,Lm=26,Rm=38,zm=700,Bm=72,Vm=128;function Hm(e,t,n){e=n?Math.floor(e/zm):e>>1,e+=Math.floor(e/t);let r=0;for(;e>(Fm-Im)*Lm>>1;)e=Math.floor(e/(Fm-Im)),r+=Fm;return r+Math.floor((Fm-Im+1)*e/(e+Rm))}function Um(e){let t=[],n=Vm,r=0,i=Bm,a=e.lastIndexOf(`-`);if(a>0)for(let n=0;n<a;n++){let r=e.charCodeAt(n);if(r>=128)throw Error(`Invalid punycode: non-basic before delimiter`);t.push(r)}let o=a<0?0:a+1;for(;o<e.length;){let a=r,s=1,c=Fm;for(;;){if(o>=e.length)throw Error(`Invalid punycode: unexpected end of input`);let t=e.charCodeAt(o++),n;if(t>=97&&t<=122)n=t-97;else if(t>=48&&t<=57)n=t-48+26;else if(t>=65&&t<=90)n=t-65;else throw Error(`Invalid punycode: bad digit character`);r+=n*s;let a=c<=i?Im:c>=i+Lm?Lm:c-i;if(n<a)break;s*=Fm-a,c+=Fm}let l=t.length+1;i=Hm(r-a,l,a===0),n+=Math.floor(r/l),r%=l,t.splice(r,0,n),r++}return globalThis.String.fromCodePoint(...t)}function Wm(e){return/\p{Mn}/u.test(String.fromCodePoint(e))}function Gm(e){return/\p{Mc}/u.test(String.fromCodePoint(e))}function Km(e){return/\p{Me}/u.test(String.fromCodePoint(e))}function qm(e){return Wm(e)||Gm(e)||Km(e)}var Jm=new Set([1600,2042,12334,12335,12337,12338,12339,12340,12341,12347]),Ym=new Set([2381,2509,2637,2765,2893,3021,3149,3277,3387,3388,3405,3530,6980,7082,7083,43456,69702,69759,69817,69939,69940,70080,70197,70477,70722,70850,71103,71231,71350,72767,73028,73029]);function Xm(e){return/\p{Script=Greek}/u.test(String.fromCodePoint(e))}function Zm(e){return/\p{Script=Hebrew}/u.test(String.fromCodePoint(e))}function Qm(e){return/\p{Script=Hiragana}/u.test(String.fromCodePoint(e))}function $m(e){return/\p{Script=Katakana}/u.test(String.fromCodePoint(e))}function eh(e){return/\p{Script=Han}/u.test(String.fromCodePoint(e))}function th(e){return e>=1632&&e<=1641}function nh(e){return e>=1776&&e<=1785}function rh(e){return Ym.has(e)}function ih(e){if(e.length===0)return!1;let t=[...e].map(e=>e.codePointAt(0)),n=t.length;if(t[0]===45||t[n-1]===45||n>=4&&t[2]===45&&t[3]===45||qm(t[0]))return!1;let r=!1,i=!1,a=!1;for(let e=0;e<n;e++){let n=t[e];if(Jm.has(n))return!1;(Qm(n)||$m(n)||eh(n))&&(r=!0),th(n)&&(i=!0),nh(n)&&(a=!0);let o=t[e-1],s=t[e+1];switch(n){case 183:if(o!==108||s!==108)return!1;break;case 885:if(s===void 0||!Xm(s))return!1;break;case 1523:case 1524:if(o===void 0||!Zm(o))return!1;break;case 8205:if(o===void 0||!rh(o))return!1;break;case 12539:break}}return!(e.includes(`・`)&&!r||i&&a)}function ah(e){if(e.charCodeAt(0)===45||e.charCodeAt(e.length-1)===45||e.length>=4&&e.charCodeAt(2)===45&&e.charCodeAt(3)===45)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||n===45))return!1}return!0}function oh(e){return e.toLowerCase().startsWith(`xn--`)}function sh(e){try{return ih(Um(e.slice(4)))}catch{return!1}}function ch(e){return e.length===0||e.length>63?!1:oh(e)?sh(e):ih(e)}function lh(e){return e.length===0||e.length>63?!1:oh(e)?sh(e):ah(e)}function uh(e){if(e.length===0||e.length>253||e.charCodeAt(e.length-1)===46)return!1;for(let t of e.split(`.`))if(!lh(t))return!1;return!0}var dh=/^(?!.*\.\.)[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\.[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?)*$/iu;function fh(e){return dh.test(e)}function ph(e){if(e.length===0||e.includes(` `))return!1;let t=e.normalize(`NFC`).replace(/[\u002E\u3002\uFF0E\uFF61]/g,`.`);if(t.length>253)return!1;for(let e of t.split(`.`))if(!ch(e))return!1;return!0}function mh(e,t,n){let r=0,i=0,a=0,o=0;for(let s=t;s<n;s++){let t=e.charCodeAt(s);if(t===46){if(a===0||i>255||o===48&&a>1)return!1;r++,i=0,a=0,o=0}else if(t>=48&&t<=57)a===0&&(o=t),i=i*10+(t-48),a++;else return!1}return r===3&&a>0&&i<=255&&!(o===48&&a>1)}function hh(e){return mh(e,0,e.length)}function gh(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function _h(e){let t=e.length;if(t===0)return!1;let n=0,r=!1,i=0;if(e.charCodeAt(0)===58&&e.charCodeAt(1)===58){if(t===2)return!0;r=!0,i=2}for(;i<t;){let a=0,o=i;for(;i<t&&gh(e.charCodeAt(i));)i++,a++;if(a===0)return!1;let s=e.charCodeAt(i);if(s===46){if(!mh(e,o,t))return!1;n+=2,i=t;break}if(a>4)return!1;if(n++,i===t)break;if(s!==58)return!1;if(i++,e.charCodeAt(i)===58){if(r||e.charCodeAt(i+1)===58)return!1;if(r=!0,i++,i===t)break}}return r?n<=7:n===8}function vh(e){try{return new URL(e,`http://example.com`),!0}catch{return!1}}function yh(e){if(e.includes(` `)||e.includes(`\\`)||/[\x00-\x1F\x7F]/.test(e)||/%(?![0-9a-fA-F]{2})/.test(e))return!1;if(e===``)return!0;let t=e.indexOf(`:`);return t>0&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e.substring(0,t))?vh(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:vh(e)}function bh(e){try{return new URL(e),!0}catch{return!1}}var xh=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function Sh(e){return xh.test(e)}var Ch=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function wh(e){return Ch.test(e)}function Th(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}var Eh=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function Dh(e){return Eh.test(e)}var Oh=/^(?!.*[^\x00-\x7F])(?!.*\\)(?:(?:[a-z][a-z0-9+\-.]*:)?(?:\/\/[^\s[\]{}<>^`|]*)?|[^\s[\]{}<>^`|]*)(?:\?[^\s[\]{}<>^`|]*)?(?:#[^\s[\]{}<>^`|]*)?$/i;function kh(e){return Oh.test(e)}var Ah=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;function jh(e){return Ah.test(e)}function Mh(e){return e>=97&&e<=122||e>=65&&e<=90}function Nh(e){return Mh(e)||e>=48&&e<=57}function Ph(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Fh(e){return Nh(e)||e===43||e===45||e===46}function Ih(e){return Nh(e)||e===45||e===46||e===95||e===126}function Lh(e){return e===33||e===36||e===38||e===39||e===40||e===41||e===42||e===43||e===44||e===59||e===61}function Rh(e){return Ih(e)||Lh(e)||e===58||e===64}function zh(e){let t=e.length;if(t===0||!Mh(e.charCodeAt(0)))return!1;let n=1;for(;n<t;){let t=e.charCodeAt(n);if(t===58)break;if(!Fh(t))return!1;n++}if(e.charCodeAt(n)!==58)return!1;if(n++,e.charCodeAt(n)===47&&e.charCodeAt(n+1)===47){n+=2;let r=n,i=-1;for(let r=n;r<t;r++){let t=e.charCodeAt(r);if(t===64){i=r;break}if(t===47||t===63||t===35)break}if(i!==-1){for(let t=r;t<i;t++){let n=e.charCodeAt(t);if(n===91||n===93)return!1;if(n===37){if(t+2>=i||!Ph(e.charCodeAt(t+1))||!Ph(e.charCodeAt(t+2)))return!1;t+=2}else if(!Ih(n)&&!Lh(n)&&n!==58)return!1}n=i+1}if(e.charCodeAt(n)===91){for(n++;n<t&&e.charCodeAt(n)!==93;)n++;if(e.charCodeAt(n)!==93)return!1;n++}else for(;n<t;){let t=e.charCodeAt(n);if(t===47||t===63||t===35||t===58)break;if(t<128&&!Ih(t)&&!Lh(t))return!1;n++}if(e.charCodeAt(n)===58)for(n++;n<t;){let t=e.charCodeAt(n);if(t===47||t===63||t===35)break;if(t<48||t>57)return!1;n++}}for(;n<t;){let r=e.charCodeAt(n);if(r===37){if(n+2>=t||!Ph(e.charCodeAt(n+1))||!Ph(e.charCodeAt(n+2)))return!1;n+=2}else if(r>127)return!1;else if(!(Rh(r)||r===47||r===63||r===35))return!1;n++}return!0}var Bh=/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;function Vh(e){return Bh.test(e)}var Hh=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function Bne(e){return Hh.test(e)}var Uh=new Map;function Wh(){Uh.clear()}function Gh(e,t){return Uh.get(e)?.(t)??!0}function Kh(){Wh(),Uh.set(`date-time`,Am),Uh.set(`date`,Dm),Uh.set(`duration`,Mm),Uh.set(`email`,Pm),Uh.set(`hostname`,uh),Uh.set(`idn-email`,fh),Uh.set(`idn-hostname`,ph),Uh.set(`ipv4`,hh),Uh.set(`ipv6`,_h),Uh.set(`iri-reference`,yh),Uh.set(`iri`,bh),Uh.set(`json-pointer-uri-fragment`,Sh),Uh.set(`json-pointer`,wh),Uh.set(`regex`,Th),Uh.set(`relative-json-pointer`,Dh),Uh.set(`time`,km),Uh.set(`uri-reference`,kh),Uh.set(`uri-template`,jh),Uh.set(`uri`,zh),Uh.set(`url`,Vh),Uh.set(`uuid`,Bne)}Kh();function qh(e,t,n,r){return Gh(n.format,r)}function Vne(e,t,n,r,i,a){return qh(e,t,i,a)||t.AddError({keyword:`format`,schemaPath:n,instancePath:r,params:{format:i.format}})}function Hne(e,t,n,r){let i=Pp(n)?n.then:!0,a=np(n)?n.else:!0;return pg(e,t,n.if,r)?pg(e,t,i,r):pg(e,t,a,r)}function Une(e,t,n,r,i,a){let o=Pp(i)?i.then:!0,s=np(i)?i.else:!0,c=new Vp,l=hg(e,c,`${n}/if`,r,i.if,a)?hg(e,c,`${n}/then`,r,o,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`then`}}):hg(e,t,`${n}/else`,r,s,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`else`}});return l&&t.Merge([c]),l}function Wne(e,t,n,r){return Ut(n.items,0,(n,i)=>It(r.length,i)||fg(e,t,n,r[i])&&t.AddIndex(i))}function Gne(e,t,n,r,i,a){return Wt(i.items,0,(i,o)=>{let s=`${n}/items/${o}`,c=`${r}/${o}`;return It(a.length,o)||mg(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function Kne(e,t,n,r){return Ut(r,Ep(n)?n.prefixItems.length:0,(r,i)=>fg(e,t,n.items,r)&&t.AddIndex(i))}function qne(e,t,n,r,i,a){return Wt(a,Ep(i)?i.prefixItems.length:0,(a,o)=>mg(e,t,`${n}/items`,`${r}/${o}`,i.items,a)&&t.AddIndex(o))}function Jne(e,t,n,r){return up(n)?Wne(e,t,n,r):Kne(e,t,n,r)}function Yne(e,t,n,r,i,a){return up(i)?Gne(e,t,n,r,i,a):qne(e,t,n,r,i,a)}function Xne(e){return Yf(e)}function Jh(e,t,n,r){return Xne(n)?It(r.reduce((r,i)=>pg(e,t,n.contains,i)?++r:r,0),n.maxContains):!0}function Zne(e,t,n,r,i,a){let o=_p(i)?i.minContains:1;return Jh(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:o,maxContains:i.maxContains}})}function Yh(e,t,n,r){return It(r,n.maximum)}function Qne(e,t,n,r,i,a){return Yh(e,t,i,a)||t.AddError({keyword:`maximum`,schemaPath:n,instancePath:r,params:{comparison:`<=`,limit:i.maximum}})}function Xh(e,t,n,r){return It(r.length,n.maxItems)}function $ne(e,t,n,r,i,a){return Xh(e,t,i,a)||t.AddError({keyword:`maxItems`,schemaPath:n,instancePath:r,params:{limit:i.maxItems}})}function Zh(e,t,n,r){return Vt(r,n.maxLength)}function ere(e,t,n,r,i,a){return Zh(e,t,i,a)||t.AddError({keyword:`maxLength`,schemaPath:n,instancePath:r,params:{limit:i.maxLength}})}function Qh(e,t,n,r){return It(Yt(r).length,n.maxProperties)}function tre(e,t,n,r,i,a){return Qh(e,t,i,a)||t.AddError({keyword:`maxProperties`,schemaPath:n,instancePath:r,params:{limit:i.maxProperties}})}function nre(e){return Yf(e)}function $h(e,t,n,r){return nre(n)?Lt(r.reduce((r,i)=>pg(e,t,n.contains,i)?++r:r,0),n.minContains):!0}function rre(e,t,n,r,i,a){return $h(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:i.minContains}})}function eg(e,t,n,r){return Lt(r,n.minimum)}function ire(e,t,n,r,i,a){return eg(e,t,i,a)||t.AddError({keyword:`minimum`,schemaPath:n,instancePath:r,params:{comparison:`>=`,limit:i.minimum}})}function tg(e,t,n,r){return Lt(r.length,n.minItems)}function are(e,t,n,r,i,a){return tg(e,t,i,a)||t.AddError({keyword:`minItems`,schemaPath:n,instancePath:r,params:{limit:i.minItems}})}function ng(e,t,n,r){return Ht(r,n.minLength)}function ore(e,t,n,r,i,a){return ng(e,t,i,a)||t.AddError({keyword:`minLength`,schemaPath:n,instancePath:r,params:{limit:i.minLength}})}function rg(e,t,n,r){return Lt(Yt(r).length,n.minProperties)}function sre(e,t,n,r,i,a){return rg(e,t,i,a)||t.AddError({keyword:`minProperties`,schemaPath:n,instancePath:r,params:{limit:i.minProperties}})}function ig(e,t,n,r){return Rt(r,n.multipleOf)}function cre(e,t,n,r,i,a){return ig(e,t,i,a)||t.AddError({keyword:`multipleOf`,schemaPath:n,instancePath:r,params:{multipleOf:i.multipleOf}})}function ag(e,t,n,r){let i=new zp;return!pg(e,i,n.not,r)&&t.Merge([i])}function lre(e,t,n,r,i,a){return ag(e,t,i,a)||t.AddError({keyword:`not`,schemaPath:n,instancePath:r,params:{}})}function ure(e,t,n,r){let i=n.oneOf.reduce((t,n)=>{let i=new zp;return pg(e,i,n,r)?[...t,i]:t},[]);return R(i.length,1)&&t.Merge(i)}function dre(e,t,n,r,i,a){let o=[],s=[],c=i.oneOf.reduce((t,i,c)=>{let l=new Vp,u=hg(e,l,`${n}/oneOf/${c}`,r,i,a);return u&&s.push(c),u||o.push(l),u?[...t,l]:t},[]),l=R(c.length,1)&&t.Merge(c);return!l&&R(s.length,0)&&o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),l||t.AddError({keyword:`oneOf`,schemaPath:n,instancePath:r,params:{passingSchemas:s}})}function og(e,t,n,r){return(jt(n.pattern)?new RegExp(n.pattern,`u`):n.pattern).test(r)}function fre(e,t,n,r,i,a){return og(e,t,i,a)||t.AddError({keyword:`pattern`,schemaPath:n,instancePath:r,params:{pattern:i.pattern}})}function pre(e,t,n,r){return Ut(Jt(n.patternProperties),0,([n,i])=>{let a=new RegExp(n,`u`);return Ut(Jt(r),0,([n,r])=>!a.test(n)||fg(e,t,i,r)&&t.AddKey(n))})}function mre(e,t,n,r,i,a){return Wt(Jt(i.patternProperties),0,([i,o])=>{let s=`${n}/patternProperties/${i}`,c=new RegExp(i,`u`);return Wt(Jt(a),0,([n,i])=>{let a=`${r}/${n}`;return!c.test(n)||mg(e,t,s,a,o,i)&&t.AddKey(n)})})}function hre(e,t,n,r){return R(r.length,0)||Ut(n.prefixItems,0,(n,i)=>It(r.length,i)||fg(e,t,n,r[i])&&t.AddIndex(i))}function gre(e,t,n,r,i,a){return R(a.length,0)||Wt(i.prefixItems,0,(i,o)=>{let s=`${n}/prefixItems/${o}`,c=`${r}/${o}`;return It(a.length,o)||mg(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function sg(e,t){return e.includes(t)||dn().exactOptionalPropertyTypes}function cg(e,t){return Nt(e[t])}function _re(e,t,n,r){let i=Np(n)?n.required:[];return Ut(Jt(n.properties),0,([n,a])=>{let o=!Kt(r,n)||fg(e,t,a,r[n])&&t.AddKey(n);return sg(i,n)?o:cg(r,n)||o})}function vre(e,t,n,r,i,a){let o=Np(i)?i.required:[];return Wt(Jt(i.properties),0,([i,s])=>{let c=`${n}/properties/${i}`,l=`${r}/${i}`,u=()=>!Kt(a,i)||mg(e,t,c,l,s,a[i])&&t.AddKey(i);return sg(o,i)?u():cg(a,i)||u()})}function yre(e,t,n,r){return Ut(Yt(r),0,(r,i)=>pg(e,t,n.propertyNames,r))}function bre(e,t,n,r,i,a){let o=[];return Wt(Yt(a),0,(t,a)=>{let s=`${r}/${t}`,c=`${n}/propertyNames`,l=hg(e,new Vp,c,s,i.propertyNames,t);return l||o.push(t),l})||t.AddError({keyword:`propertyNames`,schemaPath:n,instancePath:r,params:{propertyNames:o}})}function xre(e,t,n,r){let i=e.RecursiveRef(n)??!1;return Hf(i)&&pg(e,t,i,r)}function Sre(e,t,n,r,i,a){let o=e.RecursiveRef(i)??!1;return Hf(o)&&hg(e,t,`#`,r,o,a)}function Cre(e,t,n,r){let i=e.Ref(n)??!1,a=new zp,o=Hf(i)&&pg(e,a,i,r);return o&&t.Merge([a]),o}function wre(e,t,n,r,i,a){let o=e.Ref(i)??!1,s=new Vp,c=Hf(o)&&hg(e,s,`#`,r,o,a);return c&&t.Merge([s]),c||s.GetErrors().forEach(e=>t.AddError(e)),c}function Tre(e,t,n,r){return Ut(n.required,0,e=>Kt(r,e))}function Ere(e,t,n,r,i,a){let o=[];return Wt(i.required,0,e=>{let t=Kt(a,e);return t||o.push(e),t})||t.AddError({keyword:`required`,schemaPath:n,instancePath:r,params:{requiredProperties:o}})}function lg(e,t,n,r,i){return R(n,`object`)?kt(i):R(n,`array`)?bt(i):R(n,`boolean`)?Ct(i):R(n,`integer`)?Et(i):R(n,`number`)?Ot(i):R(n,`null`)?Dt(i):R(n,`string`)?jt(i):R(n,`asyncIterator`)?xt(i):R(n,`bigint`)?St(i):R(n,`constructor`)?wt(i):R(n,`function`)?Tt(i):R(n,`iterator`)?tee(i):R(n,`symbol`)?Mt(i):R(n,`undefined`)||R(n,`void`)?Nt(i):!0}function ug(e,t,n,r,i){return n.some(n=>lg(e,t,n,r,i))}function Dre(e,t,n,r){return bt(n.type)?ug(e,t,n.type,n,r):lg(e,t,n.type,n,r)}function Ore(e,t,n,r,i,a){return(bt(i.type)?ug(e,t,i.type,i,a):lg(e,t,i.type,i,a))||t.AddError({keyword:`type`,schemaPath:n,instancePath:r,params:{type:i.type}})}function kre(e,t,n,r){let i=t.GetIndices();return Ut(r,0,(r,a)=>(i.has(a)||pg(e,t,n.unevaluatedItems,r))&&t.AddIndex(a))}function Are(e,t,n,r,i,a){let o=t.GetIndices(),s=[];return Wt(a,0,(a,c)=>{let l=new Vp,u=(o.has(c)||hg(e,l,n,r,i.unevaluatedItems,a))&&t.AddIndex(c);return u||s.push(c),u})||t.AddError({keyword:`unevaluatedItems`,schemaPath:n,instancePath:r,params:{unevaluatedItems:s}})}function jre(e,t,n,r){let i=t.GetKeys();return Ut(Jt(r),0,([r,a])=>i.has(r)||pg(e,t,n.unevaluatedProperties,a)&&t.AddKey(r))}function Mre(e,t,n,r,i,a){let o=t.GetKeys(),s=[];return Wt(Jt(a),0,([a,c])=>{let l=new Vp,u=o.has(a)||hg(e,l,n,r,i.unevaluatedProperties,c)&&t.AddKey(a);return u||s.push(a),u})||t.AddError({keyword:`unevaluatedProperties`,schemaPath:n,instancePath:r,params:{unevaluatedProperties:s}})}function dg(e){return!R(e.uniqueItems,!1)}function Nre(e,t,n,r){if(!dg(n))return!0;let i=new Set(r.map(Ur)).size,a=r.length;return R(i,a)}function Pre(e,t,n,r,i,a){if(!dg(i))return!0;let o=new Set,s=a.reduce((e,t,n)=>{let r=Ur(t);return o.has(r)?[...e,n]:(o.add(r),e)},[]);return R(s.length,0)||t.AddError({keyword:`uniqueItems`,schemaPath:n,instancePath:r,params:{duplicateItems:s}})}function fg(e,t,n,r){return t.Push()&&pg(e,t,n,r)&&t.Pop()}function pg(e,t,n,r){e.Push(n);let i=Vf(n)?rm(e,t,n,r):(!Fp(n)||Dre(e,t,n,r))&&(!(At(r)&&!bt(r))||(!Np(n)||Tre(e,t,n,r))&&(!Wf(n)||Zp(e,t,n,r))&&(!Zf(n)||um(e,t,n,r))&&(!Qf(n)||fm(e,t,n,r))&&(!$f(n)||mm(e,t,n,r))&&(!Tp(n)||pre(e,t,n,r))&&(!Dp(n)||_re(e,t,n,r))&&(!Op(n)||yre(e,t,n,r))&&(!bp(n)||rg(e,t,n,r))&&(!hp(n)||Qh(e,t,n,r)))&&(!bt(r)||(!Uf(n)||qp(e,t,n,r))&&(!Yf(n)||cm(e,t,n,r))&&(!lp(n)||Jne(e,t,n,r))&&(!fp(n)||Jh(e,t,n,r))&&(!pp(n)||Xh(e,t,n,r))&&(!_p(n)||$h(e,t,n,r))&&(!vp(n)||tg(e,t,n,r))&&(!Ep(n)||hre(e,t,n,r))&&(!Ip(n)||Nre(e,t,n,r)))&&(!jt(r)||(!mp(n)||Zh(e,t,n,r))&&(!yp(n)||ng(e,t,n,r))&&(!op(n)||qh(e,t,n,r))&&(!wp(n)||og(e,t,n,r)))&&(!(Ot(r)||St(r))||(!ip(n)||bm(e,t,n,r))&&(!ap(n)||Sm(e,t,n,r))&&(!dp(n)||Yh(e,t,n,r))&&(!gp(n)||eg(e,t,n,r))&&(!xp(n)||ig(e,t,n,r)))&&(!Mp(n)||Cre(e,t,n,r))&&(!jp(n)||xre(e,t,n,r))&&(!tp(n)||gm(e,t,n,r))&&(!Rf(n)||Hp(e,t,n,r))&&(!Jf(n)||am(e,t,n,r))&&(!rp(n)||vm(e,t,n,r))&&(!cp(n)||Hne(e,t,n,r))&&(!Sp(n)||ag(e,t,n,r))&&(!Gf(n)||$p(e,t,n,r))&&(!qf(n)||tm(e,t,n,r))&&(!Cp(n)||ure(e,t,n,r))&&(!Lp(n)||!bt(r)||kre(e,t,n,r))&&(!Rp(n)||!At(r)||jre(e,t,n,r))&&(!zf(n)||Wp(e,t,n,r));return e.Pop(n),i}function mg(e,t,n,r,i,a){return t.Push()&&hg(e,t,n,r,i,a)&&t.Pop()}function hg(e,t,n,r,i,a){e.Push(i);let o=Vf(i)?im(e,t,n,r,i,a):!!((!Fp(i)||Ore(e,t,n,r,i,a))&+(!(At(a)&&!bt(a))||!!((!Np(i)||Ere(e,t,n,r,i,a))&+(!Wf(i)||Qp(e,t,n,r,i,a))&(!Zf(i)||dm(e,t,n,r,i,a))&(!Qf(i)||pm(e,t,n,r,i,a))&(!$f(i)||hm(e,t,n,r,i,a))&(!Tp(i)||mre(e,t,n,r,i,a))&(!Dp(i)||vre(e,t,n,r,i,a))&(!Op(i)||bre(e,t,n,r,i,a))&(!bp(i)||sre(e,t,n,r,i,a))&(!hp(i)||tre(e,t,n,r,i,a))))&(!bt(a)||!!((!Uf(i)||Jp(e,t,n,r,i,a))&+(!Yf(i)||lm(e,t,n,r,i,a))&(!lp(i)||Yne(e,t,n,r,i,a))&(!fp(i)||Zne(e,t,n,r,i,a))&(!pp(i)||$ne(e,t,n,r,i,a))&(!_p(i)||rre(e,t,n,r,i,a))&(!vp(i)||are(e,t,n,r,i,a))&(!Ep(i)||gre(e,t,n,r,i,a))&(!Ip(i)||Pre(e,t,n,r,i,a))))&(!jt(a)||!!((!mp(i)||ere(e,t,n,r,i,a))&+(!yp(i)||ore(e,t,n,r,i,a))&(!op(i)||Vne(e,t,n,r,i,a))&(!wp(i)||fre(e,t,n,r,i,a))))&(!(Ot(a)||St(a))||!!((!ip(i)||xm(e,t,n,r,i,a))&+(!ap(i)||Cm(e,t,n,r,i,a))&(!dp(i)||Qne(e,t,n,r,i,a))&(!gp(i)||ire(e,t,n,r,i,a))&(!xp(i)||cre(e,t,n,r,i,a))))&(!Mp(i)||wre(e,t,n,r,i,a))&(!jp(i)||Sre(e,t,n,r,i,a))&(!tp(i)||_m(e,t,n,r,i,a))&(!Rf(i)||Up(e,t,n,r,i,a))&(!Jf(i)||om(e,t,n,r,i,a))&(!rp(i)||ym(e,t,n,r,i,a))&(!cp(i)||Une(e,t,n,r,i,a))&(!Sp(i)||lre(e,t,n,r,i,a))&(!Gf(i)||em(e,t,n,r,i,a))&(!qf(i)||nm(e,t,n,r,i,a))&(!Cp(i)||dre(e,t,n,r,i,a))&(!Lp(i)||!bt(a)||Are(e,t,n,r,i,a))&(!Rp(i)||!At(a)||Mre(e,t,n,r,i,a)))&&(!zf(i)||Gp(e,t,n,r,i,a));return e.Pop(i),o}function Fre(e,t){return At(t)?t[e]:void 0}function Ire(e,t){return e.reduce((e,t)=>Fre(t,e),t)}function Lre(e){if(R(e.length,0))return[];let t=e.split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`));return t.length>0&&t[0]===``?t.slice(1):t}function Rre(e,t){return Ire(Lre(t),e)}function zre(e,t,n){if(e.$id===n.hash)return e;let r=new URL(e.$id,t.href),i=new URL(n.href,t.href);if(R(r.pathname,i.pathname))return n.hash.startsWith(`#`)?gg(e,t,n):e}function Bre(e,t,n){let r=new URL(`#${e.$anchor}`,t.href),i=new URL(n.href,t.href);return R(r.href,i.href)?e:void 0}function Vre(e,t,n){let r=new URL(`#${e.$dynamicAnchor}`,t.href),i=new URL(n.href,t.href);return R(r.href,i.href)?e:void 0}function gg(e,t,n){if(n.href.endsWith(`#`))return e;if(!n.hash.startsWith(`#`))return;let r=decodeURIComponent(n.hash.slice(1));if(r.startsWith(`/`))return Rre(e,r)}function Hre(e,t,n){if(sp(e)){let r=zre(e,t,n);if(!Nt(r))return r}if(Kf(e)){let r=Bre(e,t,n);if(!Nt(r))return r}if(ep(e)){let r=Vre(e,t,n);if(!Nt(r))return r}return gg(e,t,n)}function Ure(e,t,n){return e.reduce((e,r)=>{let i=_g(r,t,n);return Nt(i)?e:i},void 0)}function Wre(e,t,n){return Yt(e).reduce((r,i)=>{let a=_g(e[i],t,n);return Nt(a)?r:a},void 0)}function _g(e,t,n){let r=Bf(e)&&sp(e)?new URL(e.$id,t.href):t;if(Bf(e)){let t=Hre(e,r,n);if(!Nt(t))return t}if(bt(e))return Ure(e,r,n);if(At(e))return Wre(e,r,n)}function vg(e,t){let n=new URL(`http://unknown/`),r=sp(e)?new URL(e.$id,n.href):n;return _g(e,r,new URL(t,r.href))}function Gre(e,t,n,r){let i=n.$dynamicRef.startsWith(`#`)?vg(t,n.$dynamicRef):vg(e,n.$dynamicRef);if(!Nt(i))return!Bf(i)||!ep(i)||new URL(n.$dynamicRef,`http://unknown/`).hash.startsWith(`#/`)?i:r.find(e=>e.$dynamicAnchor===i.$dynamicAnchor)??i}var yg=function(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)},bg,xg,Sg,Cg,wg,Kre=class{constructor(e,t){bg.add(this),this.context=e,this.schema=t,this.ids=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[]}BaseURL(){return this.ids.reduce((e,t)=>new URL(t.$id,e),new URL(`http://unknown`))}Base(){return this.ids[this.ids.length-1]??this.schema}Push(e){Bf(e)&&(sp(e)&&(this.ids.push(e),yg(this,bg,`m`,xg).call(this,e)),Kf(e)&&this.anchors.push(e),Ap(e)&&this.recursiveAnchors.push(e),ep(e)&&this.dynamicAnchors.push(e))}Pop(e){Bf(e)&&(sp(e)&&(this.ids.pop(),yg(this,bg,`m`,Sg).call(this,e)),Kf(e)&&this.anchors.pop(),Ap(e)&&this.recursiveAnchors.pop(),ep(e)&&this.dynamicAnchors.pop())}Ref(e){return yg(this,bg,`m`,Cg).call(this,e)??yg(this,bg,`m`,wg).call(this,e)}RecursiveRef(e){return Ap(this.Base())?vg(this.recursiveAnchors[0],e.$recursiveRef):vg(this.Base(),e.$recursiveRef)}DynamicRef(e){let t=this.schema;return Gre(t,this.Base(),e,this.dynamicAnchors)}};bg=new WeakSet,xg=function e(t,n=!0){if(!Bf(t))return;let r=t;if(!(!n&&sp(r))){!n&&ep(r)&&this.dynamicAnchors.push(r);for(let t of Yt(r))yg(this,bg,`m`,e).call(this,r[t],!1)}},Sg=function e(t,n=!0){if(!Bf(t))return;let r=t;if(!(!n&&sp(r))){!n&&ep(r)&&this.dynamicAnchors.pop();for(let t of Yt(r))yg(this,bg,`m`,e).call(this,r[t],!1)}},Cg=function(e){return Kt(this.context,e.$ref)?this.context[e.$ref]:void 0},wg=function(e){let t=this.schema;return e.$ref.startsWith(`#`)?vg(this.Base(),e.$ref):vg(t,e.$ref)};function qre(...e){let[t,n,r]=mr(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return pg(new Kre(t,n),new zp,n,r)}function Tg(...e){let[t,n,r]=mr(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return qre(t,n,r)}function Jre(e,t,n){return bt(n)?n.map(n=>Ag(e,t.items,n)):n}function Yre(e,t,n){return t.Clean(n)}function Xre(e,t,n){return Ag({...e,...t.$defs},qn(t.$ref),n)}function Zre(e,t){let n=Kt(t,`unevaluatedProperties`)?{additionalProperties:t.unevaluatedProperties}:{},r=Qu(qu(e,t));return ar(r)?ql(r,n):r}function Qre(e,t,n){return Ag(e,Zre(e,t),n)}function Eg(e){return Kt(e,`additionalProperties`)?e.additionalProperties:void 0}function $re(e,t,n){if(!At(n)||bt(n))return n;let r=Eg(t);for(let i of Yt(n)){if(Kt(t.properties,i)){n[i]=Ag(e,t.properties[i],n[i]);continue}if(Ct(r)&&R(r,!0)||_n(r)&&Tg(e,r,n[i])){n[i]=Ag(e,r,n[i]);continue}delete n[i]}return n}function eie(e,t,n){if(!At(n))return n;let r=Eg(t),[i,a]=[new RegExp(ta(t)),ra(t)];for(let t of Yt(n)){if(i.test(t)){n[t]=Ag(e,a,n[t]);continue}if(Ct(r)&&R(r,!0)||_n(r)&&Tg(e,r,n[t])){n[t]=Ag(e,r,n[t]);continue}delete n[t]}return n}function tie(e,t,n){return Kt(e,t.$ref)?Ag(e,e[t.$ref],n):n}function nie(e,t,n){if(!bt(n))return n;let r=Math.min(n.length,t.items.length);for(let i=0;i<r;i++)n[i]=Ag(e,t.items[i],n[i]);return Pt(n.length,r)?n.slice(0,r):n}function rie(e){return e}function iie(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=Dg(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=Dg(e[n]);return t}function aie(e){return zt(e)?rie(e):iie(e)}function oie(e){return e.map(e=>Dg(e))}function sie(e){return e.slice()}function cie(e){return new Map(Dg([...e.entries()]))}function lie(e){return new Set(Dg([...e.values()]))}function uie(e){return e}function Dg(e){return Qt(e)?sie(e):tn(e)?cie(e):en(e)?lie(e):bt(e)?oie(e):At(e)?aie(e):uie(e)}function Og(e,t){return JSON.stringify(e).localeCompare(JSON.stringify(t))}function kg(e,t=1){return e.sort((e,n)=>{let r=Ms(e,n);return(R(r,`disjoint`)?Og(e,n):R(r,`right-inside`)?1:R(r,`left-inside`)?-1:Og(e,n))*t})}function die(e,t,n){for(let r of kg(t.anyOf)){let t=Ag(e,r,Dg(n));if(Tg(e,r,t))return t}return n}function Ag(e,t,n){return zn(t)?Jre(e,t,n):Ln(t)?Yre(e,t,n):pr(t)?Xre(e,t,n):vr(t)?Qre(e,t,n):ar(t)?$re(e,t,n):ia(t)?eie(e,t,n):Jn(t)?tie(e,t,n):Ri(t)?nie(e,t,n):cr(t)?die(e,t,n):n}function jg(...e){let[t,n,r]=mr(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Ag(t,n,r)}function Mg(e){return At(e)&&Kt(e,`value`)}function Ng(e){return{value:e}}function fie(e){return bt(e)?Ng(e):Ng([e])}function pie(e){return R(e,!0)?Ng(BigInt(1)):Ng(BigInt(0))}var mie=/^-?(0|[1-9]\d*)n$/,hie=/^-?(0|[1-9]\d*)\.\d+$/,gie=/^-?(0|[1-9]\d*)$/;function _ie(e){return mie.test(e)}function vie(e){return hie.test(e)}function yie(e){return gie.test(e)}function bie(e){let t=e.toLowerCase();return _ie(e)?Ng(BigInt(e.slice(0,e.length-1))):vie(e)?Ng(BigInt(e.split(`.`)[0])):yie(e)?Ng(BigInt(e)):R(t,`false`)?Ng(BigInt(0)):R(t,`true`)?Ng(BigInt(1)):void 0}function Pg(e){return St(e)?Ng(e):Ct(e)?pie(e):Ot(e)?Ng(BigInt(Math.trunc(e))):Dt(e)?Ng(BigInt(0)):jt(e)?bie(e):Nt(e)?Ng(BigInt(0)):void 0}function xie(e){return R(e,BigInt(0))?Ng(!1):R(e,BigInt(1))?Ng(!0):void 0}function Sie(e){return R(e,0)?Ng(!1):R(e,1)?Ng(!0):void 0}function Cie(e){return R(e.toLowerCase(),`false`)?Ng(!1):R(e.toLowerCase(),`true`)?Ng(!0):R(e,`0`)?Ng(!1):R(e,`1`)?Ng(!0):void 0}function Fg(e){return St(e)?xie(e):Ct(e)?Ng(e):Ot(e)?Sie(e):Dt(e)?Ng(!1):jt(e)?Cie(e):Nt(e)?Ng(!1):void 0}function wie(e){return R(e,BigInt(0))?Ng(null):void 0}function Tie(e){return R(e,!1)?Ng(null):void 0}function Eie(e){return R(e,0)?Ng(null):void 0}function Die(e){let t=e.toLowerCase();return R(t,`undefined`)||R(t,`null`)||R(e,``)||R(e,`0`)?Ng(null):void 0}function Oie(e){return St(e)?wie(e):Ct(e)?Tie(e):Ot(e)?Eie(e):Dt(e)?Ng(null):jt(e)?Die(e):Nt(e)?Ng(null):void 0}var Ig=BigInt(2**53-1),Lg=BigInt(-(2**53-1));function kie(e){return e<=Ig&&e>=Lg?Ng(Number(e)):void 0}function Aie(e){return Ng(+!!e)}function jie(e){let t=+e;if(Ot(t))return Ng(t);let n=e.toLowerCase();if(R(n,`false`))return Ng(0);if(R(n,`true`))return Ng(1);let r=Pg(e);if(Mg(r))return r.value<=Ig&&r.value>=Lg?Ng(Number(r.value)):void 0}function Rg(e){return St(e)?kie(e):Ct(e)?Aie(e):Ot(e)?Ng(e):Dt(e)?Ng(0):jt(e)?jie(e):Nt(e)?Ng(0):void 0}function zg(e){return St(e)||Ct(e)||Ot(e)?Ng(e.toString()):Dt(e)?Ng(`null`):jt(e)?Ng(e):Nt(e)?Ng(``):void 0}function Mie(e){return R(e,BigInt(0))?Ng(void 0):void 0}function Nie(e){return R(e,!1)?Ng(void 0):void 0}function Pie(e){return R(e,0)?Ng(void 0):void 0}function Fie(e){let t=e.toLowerCase();return R(t,`undefined`)||R(t,`null`)||R(e,``)||R(e,`0`)?Ng(void 0):void 0}function Bg(e){return St(e)?Mie(e):Ct(e)?Nie(e):Ot(e)?Pie(e):Dt(e)?Ng(void 0):jt(e)?Fie(e):Nt(e)?Ng(e):void 0}function Iie(e,t,n){return fie(n).value.map(n=>Wg(e,t.items,n))}function Lie(e,t,n){return t.Convert(n)}function Rie(e,t,n){let r=Pg(n);return Mg(r)?r.value:n}function zie(e,t,n){let r=Fg(n);return Mg(r)?r.value:n}function Bie(e,t,n){return Wg({...e,...t.$defs},qn(t.$ref),n)}function Vg(e,t,n){if(t.anyOf.some(t=>Tg(e,t,n)))return n;let r=t.anyOf.map(t=>Wg(e,t,Dg(n))).find(n=>Tg(e,t,n));return Nt(r)?n:r}function Vie(e,t,n){return Vg(e,Ii(t),n)}function Hie(e,t,n){let r=Rg(n);return Mg(r)?Math.trunc(r.value):n}function Uie(e,t,n){return Wg(e,Qu(qu(e,t)),n)}function Wie(e,t,n){let r=Pg(n);return Mg(r)&&R(t.const,r.value)?r.value:n}function Gie(e,t,n){let r=Fg(n);return Mg(r)&&R(t.const,r.value)?r.value:n}function Kie(e,t,n){let r=Rg(n);return Mg(r)&&R(t.const,r.value)?r.value:n}function qie(e,t,n){let r=zg(n);return Mg(r)&&R(t.const,r.value)?r.value:n}function Jie(e,t,n){return R(t.const,n)?n:ai(t)?Wie(e,t,n):oi(t)?Gie(e,t,n):si(t)?Kie(e,t,n):ci(t)?qie(e,t,n):br()}function Yie(e,t,n){let r=Oie(n);return Mg(r)?r.value:n}function Xie(e,t,n){let r=Rg(n);return Mg(r)?r.value:n}function Hg(e,t,n,r){let i=Yt(r);for(let[a,o]of t)for(let t of i)a.test(t)||(r[t]=Wg(e,n,r[t]));return r}function Ug(e,t,n){return Nn(e)&&Nt(n[t])}function Zie(e,t,n){let r=qt(t.properties),i=Yt(n);for(let[t,a]of r)for(let r of i)!t.test(r)||Ug(a,r,n)||(n[r]=Wg(e,a,n[r]));return Kt(t,`additionalProperties`)&&At(t.additionalProperties)?Hg(e,r,t.additionalProperties,n):n}function Qie(e,t,n){return kt(n)?Zie(e,t,n):n}function $ie(e,t,n){let r=qt(t.patternProperties),i=Yt(n);for(let[t,a]of r)for(let r of i)t.test(r)&&(n[r]=Wg(e,a,n[r]));return Kt(t,`additionalProperties`)&&At(t.additionalProperties)?Hg(e,r,t.additionalProperties,n):n}function eae(e,t,n){return kt(n)?$ie(e,t,n):n}function tae(e,t,n){return Kt(e,t.$ref)?Wg(e,e[t.$ref],n):n}function nae(e,t,n){let r=zg(n);return Mg(r)?r.value:n}function rae(e,t,n){return Wg(e,Mi(t.pattern),n)}function iae(e,t,n){if(!bt(n))return n;for(let r=0;r<Math.min(t.items.length,n.length);r++)n[r]=Wg(e,t.items[r],n[r]);return n}function aae(e,t,n){let r=Bg(n);return Mg(r)?r.value:n}function oae(e,t,n){return Mg(Bg(n))?void 0:n}function Wg(e,t,n){return zn(t)?Iie(e,t,n):Ln(t)?Lie(e,t,n):qr(t)?Rie(e,t,n):Jr(t)?zie(e,t,n):pr(t)?Bie(e,t,n):gr(t)?Vie(e,t,n):Zr(t)?Hie(e,t,n):vr(t)?Uie(e,t,n):li(t)?Jie(e,t,n):di(t)?Yie(e,t,n):mi(t)?Xie(e,t,n):ar(t)?Qie(e,t,n):ia(t)?eae(e,t,n):Jn(t)?tae(e,t,n):vi(t)?nae(e,t,n):to(t)?rae(e,t,n):Ri(t)?iae(e,t,n):oa(t)?aae(e,t,n):cr(t)?Vg(e,t,n):sa(t)?oae(e,t,n):n}function sae(e,t,n){if(!bt(n))return n;for(let r=0;r<n.length;r++)n[r]=Gg(e,t.items,n[r]);return n}function cae(e,t,n){return t.Default(n)}function lae(e,t,n){return Gg({...e,...t.$defs},qn(t.$ref),n)}function uae(e,t){return Nt(t)?Tt(e.default)?e.default():Dg(e.default):t}function dae(e,t,n){return Gg(e,Qu(qu(e,t)),n)}function fae(e,t,n){if(!At(n))return n;let r=Yt(t.properties);for(let i of r)Nt(Gg(e,t.properties[i],n[i]))&&(Nn(t.properties[i])||!Kt(t.properties[i],`default`))||(n[i]=Gg(e,t.properties[i],n[i]));if(!Wf(t)||Ct(t.additionalProperties))return n;for(let i of Yt(n))r.includes(i)||(n[i]=Gg(e,t.additionalProperties,n[i]));return n}function pae(e,t,n){if(!At(n))return n;let[r,i]=[new RegExp(ta(t)),ra(t)];for(let t of Yt(n))r.test(t)&&Xf(i)&&(n[t]=Gg(e,i,n[t]));if(!Wf(t))return n;for(let i of Yt(n))r.test(i)||(n[i]=Gg(e,t.additionalProperties,n[i]));return n}function mae(e,t,n){return Kt(e,t.$ref)?Gg(e,e[t.$ref],n):n}function hae(e,t,n){if(!bt(n))return n;let[r,i]=[t.items,Math.max(t.items.length,n.length)];for(let t=0;t<i;t++)t<r.length&&(n[t]=Gg(e,r[t],n[t]));return n}function gae(e,t,n){for(let r of t.anyOf){let t=Gg(e,r,Dg(n));if(Tg(e,r,t))return t}return n}function Gg(e,t,n){let r=Xf(t)?uae(t,n):n;return zn(t)?sae(e,t,r):Ln(t)?cae(e,t,r):pr(t)?lae(e,t,r):vr(t)?dae(e,t,r):ar(t)?fae(e,t,r):ia(t)?pae(e,t,r):Jn(t)?mae(e,t,r):Ri(t)?hae(e,t,r):cr(t)?gae(e,t,r):r}function _ae(e,t,n){return t[`~codec`].decode(n)}function vae(e,t,n){return t[`~codec`].encode(n)}function Kg(e,t,n,r){return Wr(n)?R(e,`Decode`)?_ae(t,n,r):vae(t,n,r):r}function yae(e,t,n,r){if(!bt(r))return br();for(let i=0;i<r.length;i++)r[i]=Xg(e,t,n.items,r[i]);return Kg(e,t,n,r)}function bae(e,t,n,r){let i=Kg(e,t,n,r);if(!bt(i))return i;for(let r=0;r<i.length;r++)i[r]=Xg(e,t,n.items,i[r]);return i}function xae(e,t,n,r){return R(e,`Decode`)?yae(e,t,n,r):bae(e,t,n,r)}function Sae(e,t,n,r){return r=Xg(e,{...t,...n.$defs},qn(n.$ref),r),Kg(e,t,n,r)}function qg(e){return e.reduce((e,t)=>({...e,...t}),{})}function Jg(e,t){for(let n of t)if(!Zt(e,n))return n;return e}function Cae(e,t,n,r){if(R(n.allOf.length,0))return Kg(e,t,n,r);let i=n.allOf.map(n=>Xg(e,t,n,jg(n,Dg(r))));return Kg(e,t,n,i.every(e=>At(e))?qg(i):Jg(r,i))}function wae(e,t,n,r){if(R(n.allOf.length,0))return Kg(e,t,n,r);let i=Kg(e,t,n,r),a=n.allOf.map(n=>Xg(e,t,n,jg(n,Dg(i))));return a.every(e=>At(e))?qg(a):Jg(i,a)}function Tae(e,t,n,r){return R(e,`Decode`)?Cae(e,t,n,r):wae(e,t,n,r)}function Eae(e,t,n,r){if(!kt(r))return br();for(let i of Yt(n.properties))!Kt(r,i)||Ug(n.properties[i],i,r)||(r[i]=Xg(e,t,n.properties[i],r[i]));return Kg(e,t,n,r)}function Dae(e,t,n,r){let i=Kg(e,t,n,r);if(!kt(i))return i;for(let r of Yt(n.properties))!Kt(i,r)||Ug(n.properties[r],r,i)||(i[r]=Xg(e,t,n.properties[r],i[r]));return i}function Oae(e,t,n,r){return R(e,`Decode`)?Eae(e,t,n,r):Dae(e,t,n,r)}function kae(e,t,n,r){if(!kt(r))return br();let i=new RegExp(ta(n));for(let a of Yt(r))i.test(a)||br(),r[a]=Xg(e,t,ra(n),r[a]);return Kg(e,t,n,r)}function Aae(e,t,n,r){let i=Kg(e,t,n,r);if(!kt(i))return i;let a=new RegExp(ta(n));for(let r of Yt(i))a.test(r)&&(i[r]=Xg(e,t,ra(n),i[r]));return i}function jae(e,t,n,r){return R(e,`Decode`)?kae(e,t,n,r):Aae(e,t,n,r)}function Yg(e,t,n,r){return Kt(t,n.$ref)?Xg(e,t,t[n.$ref],r):r}function Mae(e,t,n,r){return R(e,`Decode`)?Kg(e,t,n,Yg(e,t,n,r)):Yg(e,t,n,Kg(e,t,n,r))}function Nae(e,t,n,r){if(!bt(r))return br();for(let i=0;i<Math.min(n.items.length,r.length);i++)r[i]=Xg(e,t,n.items[i],r[i]);return Kg(e,t,n,r)}function Pae(e,t,n,r){let i=Kg(e,t,n,r);if(!bt(i))return r;for(let r=0;r<Math.min(n.items.length,i.length);r++)i[r]=Xg(e,t,n.items[r],i[r]);return i}function Fae(e,t,n,r){return R(e,`Decode`)?Nae(e,t,n,r):Pae(e,t,n,r)}function Iae(e,t,n,r){for(let i of kg(n.anyOf,1))if(Tg(t,i,r))return Kg(e,t,n,Xg(e,t,i,r));return r}function Lae(e,t,n,r){let i=Kg(e,t,n,r);for(let r of kg(n.anyOf,-1)){let n=Xg(e,t,r,Dg(i));if(Tg(t,r,n))return n}return i}function Rae(e,t,n,r){return R(e,`Decode`)?Iae(e,t,n,r):Lae(e,t,n,r)}function Xg(e,t,n,r){return zn(n)?xae(e,t,n,r):pr(n)?Sae(e,t,n,r):vr(n)?Tae(e,t,n,r):ar(n)?Oae(e,t,n,r):ia(n)?jae(e,t,n,r):Jn(n)?Mae(e,t,n,r):Ri(n)?Fae(e,t,n,r):cr(n)?Rae(e,t,n,r):Kg(e,t,n,r)}sr([ir({type:ri(`insert`),path:_i(),value:ur()}),Object({type:ri(`update`),path:_i(),value:ur()}),ir({type:ri(`delete`),path:_i()})]);var Zg=be(({variant:e=`default`,size:t=`md`,disabled:n=!1,type:r=`button`,loading:i=!1,onClick:a,title:o,className:s=``,children:c})=>{let l={sm:`h-8 rounded-md px-3 text-xs`,md:`h-9 rounded-md px-4 text-sm`,lg:`h-10 rounded-md px-8 text-sm`,icon:`size-8 rounded-md`},u={default:`bg-primary text-primary-foreground shadow-xs hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90`,outline:`border border-input bg-background text-foreground shadow-xs hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80`,ghost:`text-foreground hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},d=t===`icon`?``:`gap-2`,f=t===`icon`?``:`has-[>svg]:px-2.5`,p=u[e]||u.default;return N`
134
134
  <button
@@ -2827,7 +2827,7 @@ ${this.content||``}</pre
2827
2827
  `}else l.innerHTML=`<pre class="text-xs bg-background border rounded p-2 max-h-40 overflow-auto font-mono whitespace-pre-wrap">${_9(JSON.stringify(r,null,2))}</pre>`;s.append(l);let u=document.createElement(`div`);u.className=`flex items-center gap-2`;let d=document.createElement(`button`);d.type=`button`,d.className=`inline-flex items-center gap-1.5 rounded-md bg-emerald-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-emerald-700 transition-colors cursor-pointer`,d.textContent=Z(`toolApprovalAccept`),d.addEventListener(`click`,e=>{e.stopPropagation(),e.preventDefault(),a()});let f=document.createElement(`button`);f.type=`button`,f.className=`inline-flex items-center gap-1.5 rounded-md border border-red-300 dark:border-red-700 px-3 py-1.5 text-xs font-medium text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/30 transition-colors cursor-pointer`,f.textContent=Z(`toolApprovalReject`),f.addEventListener(`click`,e=>{e.stopPropagation(),e.preventDefault(),o()}),u.append(d,f),s.append(u);let p=i.querySelector(`message-list`);p?p.append(s):i.querySelector(`agent-interface`)?.append(s),s.scrollIntoView({behavior:`smooth`,block:`end`})}function g9(e){e.querySelectorAll(a_e).forEach(e=>e.remove())}function _9(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}function s_e(e,t){let n=e.split(`
2828
2828
  `),r=t.split(`
2829
2829
  `),i=[];for(let e of n)i.push(`<span class="text-red-600 dark:text-red-400">- ${_9(e)}</span>`);for(let e of r)i.push(`<span class="text-emerald-600 dark:text-emerald-400">+ ${_9(e)}</span>`);return i.join(`
2830
- `)}function v9({agent:e,onModelSelect:t,revision:n,yoloMode:r,workspaceToolsEnabled:i,project:a,onToggleYoloMode:o,onRollbackFromMessage:s,onCopyAnswer:c,onForkFromMessage:l,onApproveToolCall:u,onRejectToolCall:d,restoredDraft:f,disableFork:p=!1,readOnly:m=!1,bypassClientApiKeyCheck:h=!1,allowModelControls:g=!0}){let _=(0,I.useRef)(null),v=(0,I.useRef)(void 0),y=(0,I.useRef)(void 0),b=(0,I.useRef)(new Map),x=(0,I.useRef)([]),S=(0,I.useRef)(void 0),C=(0,I.useRef)({onCopyAnswer:c,onRollbackFromMessage:s,onForkFromMessage:l,onToggleYoloMode:o,onApproveToolCall:u,onRejectToolCall:d,onModelSelect:t,yoloMode:r,workspaceToolsEnabled:i,disableFork:p,readOnly:m,allowModelControls:g,bypassClientApiKeyCheck:h});(0,I.useEffect)(()=>{C.current={onCopyAnswer:c,onRollbackFromMessage:s,onForkFromMessage:l,onToggleYoloMode:o,onApproveToolCall:u,onRejectToolCall:d,onModelSelect:t,yoloMode:r,workspaceToolsEnabled:i,disableFork:p,readOnly:m,allowModelControls:g,bypassClientApiKeyCheck:h},y.current=f});let w=(0,I.useRef)(null),T=(0,I.useRef)(null),E=(0,I.useRef)(null),D=(0,I.useRef)(null);(0,I.useEffect)(()=>{let e=!1;return a?.id?(fetch(`/api/project/commands?projectId=${encodeURIComponent(a.id)}`,{cache:`no-store`}).then(e=>e.ok?e.json():{commands:[]}).then(t=>{e||(x.current=Array.isArray(t.commands)?t.commands:[])}).catch(()=>{e||(x.current=[])}),()=>{e=!0}):(x.current=[],()=>{e=!0})},[a?.id,n]);let O=(e,t,n)=>{if(t.sessionId&&t.sessionId!==n||!t9(t))return;let r=()=>{let r=e.querySelector(`message-editor`),i=r?{text:r.value??r.querySelector(`textarea`)?.value??``,attachments:r.attachments?[...r.attachments]:[]}:b.current.get(n),a=S.current;(a?.id!==t.id||!t9(i??e9())||i?.text===a.text)&&(h9(e,t,b.current,n),S.current={id:t.id,text:t.text})};r(),window.requestAnimationFrame(r);for(let e of[0,50,150,300,600])window.setTimeout(r,e);e.querySelector(`agent-interface`)?.updateComplete?.then(r)};return(0,I.useEffect)(()=>{if(!_.current||!e)return;let t=new b5,n=e.sessionId,r=!1,i,a=Kge({panel:t});T.current=a;let o=qge({panel:t,getCustomCommands:()=>x.current,getComposerDrafts:()=>b.current,sessionId:n,setComposerDrafts:e=>{b.current=e},restoreDraftIntoComposer:e=>{h9(t,e,b.current,n)}}),s=Jge({panel:t,getSystemPrompt:()=>e.state.systemPrompt,getMessages:()=>e.state.messages,getContextWindow:()=>e.state.model?.contextWindow??0}),c=e=>{let r=t.querySelector(`message-editor`),i=r?.attachments?[...r.attachments]:[];b.current.set(n,{text:e,attachments:i})},l=e=>{let r=t.querySelector(`message-editor`),i=r?.querySelector(`textarea`),a=r?.value??i?.value??``;b.current.set(n,{text:a,attachments:e?[...e]:[]})},u=()=>{if(r||!t.isConnected)return;let n=C.current;try{t_e({panel:t,getMessages:()=>e.state.messages,isStreaming:()=>e.state.isStreaming,onCopyAnswer:n.onCopyAnswer,onRollbackFromMessage:n.onRollbackFromMessage,onForkFromMessage:n.onForkFromMessage,disableFork:n.disableFork})}catch{}try{n_e({panel:t,isStreaming:()=>e.state.isStreaming,abort:()=>e.abort(),yoloMode:n.yoloMode,workspaceToolsEnabled:n.workspaceToolsEnabled,readOnly:n.readOnly,allowModelControls:n.allowModelControls,onToggleYoloMode:n.onToggleYoloMode,onInput:c,onFilesChange:l,removeCommandSuggestions:o.remove,updateCommandSuggestions:o.update,setupCommandTextareaHandler:o.setupTextareaHandler})}catch{}let i=D.current;if(i&&i.sessionId===e.sessionId){let e=i.toolCallId;o_e({panel:t,onApprove:()=>{D.current=null,g9(t),C.current.onApproveToolCall(e)},onReject:()=>{D.current=null,g9(t),C.current.onRejectToolCall(e)}},i.toolName,e,i.args)}else g9(t);s.update(),a.setup(),a.isEnabled&&a.scheduleScrollToBottom()};w.current=u;let d=!1,f=()=>{d||(d=!0,window.requestAnimationFrame(()=>{d=!1,u()}))};E.current=f,t.setAgent(e,{onApiKeyRequired:C.current.bypassClientApiKeyCheck?async()=>!0:e=>k5.prompt(e),onBeforeSend:()=>{o.remove(),b.current.delete(n),a.enable()},onModelSelect:C.current.onModelSelect,toolsFactory:()=>zge(e.state.tools)}).then(()=>{if(r)return;let e=y.current;e&&v.current!==e.id?(v.current=e.id,O(t,e,n)):h9(t,b.current.get(n)??e9(),b.current,n),i=new MutationObserver(f),i.observe(t,{childList:!0,subtree:!0}),window.requestAnimationFrame(()=>{r||u()})}),_.current.replaceChildren(t);let p=e.subscribe(r=>{if(r.type===`agent_start`&&(a.enable(),D.current?.sessionId===e.sessionId&&(D.current=null)),(r.type===`message_start`||r.type===`message_update`||r.type===`message_end`||r.type===`turn_end`||r.type===`agent_end`)&&a.isEnabled&&a.scheduleScrollToBottom(),r.type===`messages_replaced`||r.type===`message_end`||r.type===`agent_end`){let e=y.current;e&&v.current===e.id&&O(t,e,n)}if(r.type===`agent_end`&&D.current?.sessionId===e.sessionId&&(D.current=null,E.current?.()),r.type===`tool_approval_required`){let e=r;D.current={toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,sessionId:e.sessionId},E.current?.()}});return()=>{i_e(t,b.current,n),o.remove(),o.cleanupTextareaHandler(),r=!0,a.cleanup(),T.current=null,p(),i?.disconnect(),w.current=null,t.remove()}},[e]),(0,I.useEffect)(()=>{w.current?.(),(_.current?.querySelector(`agent-interface`))?.requestUpdate?.()},[r,i,p,m,g,n]),(0,I.useEffect)(()=>{let t=y.current;if(!t||!_.current)return;let n=e?.sessionId??``;if(t.sessionId&&t.sessionId!==n)return;let r=_.current.querySelector(`pi-chat-panel`);r&&(v.current=t.id,O(r,t,n))},[f,e]),(0,Q.jsx)(`div`,{ref:_,className:`min-h-0 flex-1 overflow-hidden`})}function c_e({onAddModel:e,onUseExample:t}){return(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-6`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-xl rounded-2xl border border-border bg-card/80 p-6 text-center shadow-sm backdrop-blur`,children:[(0,Q.jsx)(`div`,{className:`mx-auto flex size-12 items-center justify-center rounded-2xl bg-primary/10 text-primary`,children:(0,Q.jsx)(l,{className:`size-6`})}),(0,Q.jsx)(`h2`,{className:`mt-4 text-lg font-semibold text-foreground`,children:Z(`modelSetupTitle`)}),(0,Q.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:Z(`modelSetupDescription`)}),(0,Q.jsxs)(`div`,{className:`mt-5 grid gap-3 rounded-xl border border-border/70 bg-muted/25 p-4 text-left text-sm`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsx)(h,{className:`mt-0.5 size-4 shrink-0 text-primary`}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:Z(`modelSetupSupports`)})]}),(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-primary`}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:Z(`modelSetupLocalStorage`)})]})]}),(0,Q.jsxs)(`div`,{className:`mt-6 flex flex-col justify-center gap-3 sm:flex-row`,children:[(0,Q.jsxs)(m7,{onClick:e,className:`gap-2`,children:[(0,Q.jsx)(v,{className:`size-4`}),Z(`modelSetupAddModel`)]}),(0,Q.jsx)(m7,{variant:`outline`,onClick:t,children:Z(`modelSetupUseLiteLlmExample`)})]})]})})}function l_e(e,t){let n=(0,I.useRef)(null),r=(0,I.useRef)(e);(0,I.useEffect)(()=>{r.current=e},[e]);let i=(0,I.useCallback)(e=>{n.current=e},[]);return(0,I.useEffect)(()=>{let e=n.current;if(!e||!t)return;let i=new IntersectionObserver(e=>{e[0]?.isIntersecting&&r.current()},{root:null,rootMargin:`100px`,threshold:0});return i.observe(e),()=>i.disconnect()},[t]),i}var u_e=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`});function y9(e){return u_e.format(new Date(e))}function b9({onLoadMore:e,enabled:t}){let n=l_e(e,t);return t?(0,Q.jsx)(`div`,{ref:n,className:`flex items-center justify-center py-1`,children:(0,Q.jsx)(m,{className:`size-3 animate-spin text-muted-foreground/45`})}):null}var d_e=(0,I.memo)(function({sidebarOpen:e,scheduledTasksActive:t,projectsCollapsed:n,conversationsCollapsed:r,projects:i,expandedProjectIds:a,activeProject:o,currentSessionId:s,globalSessions:c,sessionsForProject:l,globalHasMore:d,globalLoading:f,onLoadMoreGlobal:p,projectHasMore:g,projectLoading:w,projectLoaded:T,onLoadMoreProject:D,sessionTaskStatus:O,selectingProject:k,onToggleProjectsCollapsed:A,onToggleConversationsCollapsed:ee,onToggleProjectExpanded:j,onSelectProjectDirectory:re,onStartNewProjectChat:ae,onOpenGlobalSkills:oe,onOpenProjectSkills:se,onOpenProjectInExplorer:ce,onDeleteProject:le,onLoadSession:N,onRenameSession:P,onDeleteSession:ue,onStartNewGlobalChat:de,onOpenScheduledTasks:fe,onToggleSidebar:pe}){let F=`mb-1 flex w-full items-center gap-1 rounded-lg px-2 py-1 text-sm font-medium leading-5 text-muted-foreground/72 transition-colors hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)]`,me=`flex min-w-0 flex-1 items-center gap-1 text-left transition-colors hover:text-foreground/80`,he=`size-4 shrink-0 transition-transform duration-200 ease-out motion-reduce:transition-none`,ge=`grid transition-[grid-template-rows,opacity] duration-200 ease-out motion-reduce:transition-none`,_e=`grid-rows-[1fr] opacity-100`,ve=`pointer-events-none grid-rows-[0fr] opacity-0`,ye=`min-h-0 overflow-hidden`,be=`hover:shadow-[0_8px_18px_-14px_rgb(15_23_42_/_0.5)]`,xe=`group relative flex items-center gap-2 overflow-hidden rounded-lg px-2 py-1.5 text-left transition-all duration-160 ease-out hover:-translate-y-px active:translate-y-0 hover:shadow-[0_10px_26px_-18px_rgb(15_23_42_/_0.48)]`,Se=`bg-[color-mix(in_oklab,var(--muted)_70%,transparent)] text-foreground/92 shadow-[0_10px_26px_-20px_rgb(15_23_42_/_0.36)]`,Ce=`text-muted-foreground/72 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/86`,we=`text-muted-foreground/76 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/90`,Te=`inline-flex size-6 shrink-0 items-center justify-center rounded-full text-muted-foreground/55 transition-colors group-hover:text-foreground/70`,L=`size-7 shrink-0 rounded-full text-muted-foreground/55 transition-all duration-160 ease-out hover:-translate-y-px hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/85 active:translate-y-0 ${be}`,Ee=`pointer-events-none absolute inset-y-0 right-1 flex items-center gap-0.5 rounded-r-lg bg-gradient-to-l from-background via-background/95 to-transparent pl-8 opacity-0 transition-opacity duration-160 group-hover:pointer-events-auto group-hover:opacity-100 group-focus-within:pointer-events-auto group-focus-within:opacity-100`,De=L,Oe=`size-7 shrink-0 rounded-full text-muted-foreground/55 transition-all duration-160 ease-out hover:-translate-y-px hover:bg-destructive/14 hover:text-destructive/90 active:translate-y-0 ${be}`,ke=`truncate text-sm leading-5`,Ae=`font-medium text-foreground/92`,je=`mt-0.5 truncate text-[11px] leading-4 text-muted-foreground/55`,[Me,Ne]=(0,I.useState)(!1),[Pe,Fe]=(0,I.useState)(``),[Ie,Le]=(0,I.useState)(null),Re=(0,I.useRef)(null),ze=(0,I.useMemo)(()=>{let e=i.flatMap(e=>l(e.id).map(t=>({session:t,projectName:e.name}))),t=c.map(e=>({session:e,projectName:``})),n=new Set;return[...e,...t].filter(({session:e})=>n.has(e.id)?!1:(n.add(e.id),!0))},[c,i,l]),Be=Pe.trim()?ze.filter(({session:e,projectName:t})=>`${X7(e.title)} ${t}`.toLowerCase().includes(Pe.trim().toLowerCase())).slice(0,8):[],Ve=()=>{Ne(!0),window.setTimeout(()=>Re.current?.focus(),0)},He=e=>{N(e),Ne(!1),Fe(``)};return(0,I.useEffect)(()=>{if(!Ie)return;let e=()=>Le(null);return window.addEventListener(`click`,e),window.addEventListener(`blur`,e),()=>{window.removeEventListener(`click`,e),window.removeEventListener(`blur`,e)}},[Ie]),(0,Q.jsxs)(`aside`,{className:p7(`relative z-10 hidden min-h-0 shrink-0 overflow-hidden border-r border-border bg-background transition-[width] duration-200 ease-out motion-reduce:transition-none md:flex md:flex-col`,e?`w-80`:`w-14`),children:[(0,Q.jsxs)(`div`,{className:`shrink-0 px-3 pt-3 pb-1`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,Ce),onClick:pe,"aria-label":Z(`toggleSidebar`),children:[(0,Q.jsxs)(`span`,{className:p7(Te,`relative`),children:[(0,Q.jsx)(h,{className:p7(`size-4 transition-opacity duration-160`,!e&&`group-hover:opacity-0`)}),e?null:(0,Q.jsx)(E,{className:`absolute size-4 opacity-0 transition-opacity duration-160 group-hover:opacity-100`})]}),(0,Q.jsx)(`span`,{className:p7(`ml-auto inline-flex size-6 items-center justify-center text-muted-foreground/55 transition-opacity duration-100 group-hover:text-foreground/70`,!e&&`opacity-0`),children:(0,Q.jsx)(x,{className:`size-4`})})]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`mt-4 w-full`,Ce),onClick:Ve,"aria-label":Z(`search`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(_,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:ke,children:Z(`search`)}):null]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,Ce),onClick:oe,"aria-label":Z(`manageGlobalSkills`),title:Z(`manageGlobalSkills`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(te,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:ke,children:Z(`skills`)}):null]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,t?Se:Ce),onClick:fe,"aria-label":Z(`scheduledTasksLabel`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(C,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:Z(`scheduledTasksLabel`)}):null]})]}),e?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`shrink-0 px-3 max-h-[55%] flex flex-col min-h-0 overflow-hidden`,children:(0,Q.jsxs)(`div`,{className:`shrink-0 mb-0.5`,children:[(0,Q.jsxs)(`div`,{className:F,children:[(0,Q.jsxs)(`button`,{type:`button`,className:me,onClick:A,"aria-expanded":!n,children:[(0,Q.jsx)(u,{className:p7(he,!n&&`rotate-90`)}),(0,Q.jsx)(`span`,{className:`flex-1 truncate`,children:Z(`projects`)})]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:L,onClick:re,disabled:k,"aria-label":Z(`addProject`),children:(0,Q.jsx)(v,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:p7(ge,`flex-1 min-h-0`,n?ve:_e),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`h-full overflow-y-auto`,children:(0,Q.jsx)(`div`,{className:`space-y-0.5`,children:i.length===0?(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noProjects`)}):i.map(e=>{let t=l(e.id),n=a.has(e.id),r=o?.id===e.id,i=T(e.id),c=Ie===e.id;return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:p7(xe,r?`text-foreground/84 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)]`:Ce,c&&`z-20 overflow-visible`),children:[(0,Q.jsx)(`button`,{type:`button`,className:Te,onClick:()=>j(e.id),"aria-label":Z(n?`collapseProject`:`expandProject`),children:n?(0,Q.jsx)(ie,{className:`size-4`}):(0,Q.jsx)(ne,{className:`size-4`})}),(0,Q.jsx)(`button`,{className:`flex min-w-0 flex-1 items-center text-left`,type:`button`,title:e.path,onClick:()=>j(e.id),children:(0,Q.jsx)(`span`,{className:p7(ke,r&&`font-medium text-foreground/84`),children:e.name})}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:t=>{t.stopPropagation(),Le(t=>t===e.id?null:e.id)},"aria-label":Z(`moreOptions`),"aria-expanded":c,children:(0,Q.jsx)(M,{className:`size-4`})}),c?(0,Q.jsxs)(`div`,{className:`absolute right-0 top-8 z-30 min-w-48 rounded-lg border border-border bg-card p-1 shadow-xl`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 whitespace-nowrap rounded-md px-2 py-1.5 text-left text-sm text-foreground/86 transition-colors hover:bg-muted`,title:Z(`openInExplorer`),"aria-label":Z(`openInExplorer`),onClick:()=>{Le(null),ce(e)},children:[(0,Q.jsx)(ie,{className:`size-4 shrink-0 text-muted-foreground/70`}),(0,Q.jsx)(`span`,{children:Z(`openFolder`)})]}),(0,Q.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 whitespace-nowrap rounded-md px-2 py-1.5 text-left text-sm text-foreground/86 transition-colors hover:bg-muted`,onClick:()=>{Le(null),se(e)},children:[(0,Q.jsx)(te,{className:`size-4 shrink-0 text-muted-foreground/70`}),(0,Q.jsx)(`span`,{children:Z(`manageProjectSkills`)})]})]}):null]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>ae(e),"aria-label":Z(`newProjectChat`),children:(0,Q.jsx)(b,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>le(e.id),"aria-label":Z(`deleteProject`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]}),(0,Q.jsx)(`div`,{className:p7(ge,n?_e:ve),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`mt-0.5 space-y-0.5 pl-8 max-h-[35vh] overflow-y-auto`,children:t.length===0&&!i?(0,Q.jsxs)(`div`,{className:`flex items-center px-2 py-1.5 text-xs text-muted-foreground/55`,children:[(0,Q.jsx)(m,{className:`mr-1.5 size-3 animate-spin`}),Z(`loadingChatWorkspace`)]}):t.length===0&&!g(e.id)?(0,Q.jsx)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground/55`,children:Z(`noConversations`)}):(0,Q.jsxs)(Q.Fragment,{children:[t.map(e=>{let t=s===e.id;return(0,Q.jsxs)(`div`,{className:p7(xe,`gap-1`,t?Se:we),children:[(0,Q.jsxs)(`button`,{className:`min-w-0 flex-1 text-left`,type:`button`,onClick:()=>N(e.id),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 truncate`,children:[O(e)===`running`?(0,Q.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-emerald-500`}):null,(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:X7(e.title)})]}),(0,Q.jsx)(`div`,{className:je,children:y9(e.lastModified)})]}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>P(e.id,e.title),"aria-label":Z(`renameSession`),children:(0,Q.jsx)(y,{className:`size-3.5`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>ue(e.id),"aria-label":Z(`deleteSession`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id)}),(0,Q.jsx)(b9,{onLoadMore:()=>D(e.id),enabled:g(e.id)&&!w(e.id)})]})})})})]},e.id)})})})})})]})}),(0,Q.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col px-3 pb-3`,children:[(0,Q.jsxs)(`div`,{className:F,children:[(0,Q.jsxs)(`button`,{type:`button`,className:me,onClick:ee,"aria-expanded":!r,children:[(0,Q.jsx)(u,{className:p7(he,!r&&`rotate-90`)}),(0,Q.jsx)(`span`,{className:`flex-1 truncate`,children:Z(`conversations`)})]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:L,onClick:de,"aria-label":Z(`newChat`),children:(0,Q.jsx)(b,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:p7(ge,`flex-1 min-h-0`,r?ve:_e),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`h-full overflow-y-auto`,children:c.length===0&&!d?(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noSavedConversations`)}):(0,Q.jsxs)(`div`,{className:`space-y-0.5`,children:[c.map(e=>{let t=s===e.id;return(0,Q.jsxs)(`div`,{className:p7(xe,t?Se:we),children:[(0,Q.jsxs)(`button`,{className:`min-w-0 flex-1 text-left`,type:`button`,onClick:()=>N(e.id),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 truncate`,children:[O(e)===`running`?(0,Q.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-emerald-500`}):null,(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:X7(e.title)})]}),(0,Q.jsx)(`div`,{className:je,children:y9(e.lastModified)})]}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>P(e.id,e.title),"aria-label":Z(`renameSession`),children:(0,Q.jsx)(y,{className:`size-3.5`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>ue(e.id),"aria-label":Z(`deleteSession`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id)}),(0,Q.jsx)(b9,{onLoadMore:p,enabled:d&&!f})]})})})})]})]}):null,Me?(0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center bg-background/50 px-4 pt-[12vh] backdrop-blur-sm`,role:`dialog`,"aria-modal":`true`,onMouseDown:()=>Ne(!1),children:(0,Q.jsxs)(`div`,{className:`w-full max-w-xl rounded-2xl border border-border bg-card p-3 shadow-xl`,onMouseDown:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-input bg-background px-3 py-2`,children:[(0,Q.jsx)(_,{className:`size-4 shrink-0 text-muted-foreground/60`}),(0,Q.jsx)(`input`,{ref:Re,value:Pe,onChange:e=>Fe(e.target.value),onKeyDown:e=>{e.key===`Escape`&&Ne(!1)},placeholder:Z(`searchDialog`),className:`min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground/45`})]}),(0,Q.jsx)(`div`,{className:`mt-2 max-h-[50vh] overflow-y-auto`,children:Pe.trim()?Be.length>0?Be.map(({session:e,projectName:t})=>(0,Q.jsxs)(`button`,{type:`button`,className:`block w-full rounded-xl px-3 py-2 text-left transition-colors hover:bg-muted/60`,onClick:()=>He(e.id),children:[(0,Q.jsx)(`div`,{className:`truncate text-sm text-foreground/90`,children:X7(e.title)}),(0,Q.jsxs)(`div`,{className:`truncate text-[11px] text-muted-foreground/55`,children:[t||Z(`normalChat`),` · `,y9(e.lastModified)]})]},e.id)):(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noSearchResults`)}):(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`searchHint`)})})]})}):null]})}),f_e=class extends I.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){v7.error(`ErrorBoundary caught an error:`,e,t)}handleRetry=()=>{this.setState({error:null})};render(){return this.state.error?this.props.fallback?this.props.fallback:(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`max-w-md rounded-lg border border-border bg-card p-5 shadow-sm text-center`,children:[(0,Q.jsx)(`h1`,{className:`text-base font-semibold`,children:`Something went wrong`}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground break-all`,children:this.state.error.message||`An unexpected error occurred.`}),(0,Q.jsx)(m7,{variant:`outline`,size:`sm`,className:`mt-4`,onClick:this.handleRetry,children:`Try again`})]})}):this.props.children}};function p_e(){let[e,t]=(0,I.useState)(),[n,r]=(0,I.useState)([]),[i,a]=(0,I.useState)(()=>new Set),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(!1);return{activeProject:e,projects:n,expandedProjectIds:i,selectingProject:o,projectPickerOpen:c,loadProject:(0,I.useCallback)(async()=>{try{let e=await fetch(`/api/project`);if(!e.ok)return;let n=await e.json();t(n.project),r(Array.isArray(n.projects)?n.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(n.projects)?n.projects:[])t.add(e.id);return t})}catch(e){v7.error(`Failed to load project:`,e)}},[]),switchActiveProject:(0,I.useCallback)(async e=>{let n=await fetch(`/api/project/active`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e})}),i=await n.json().catch(()=>null);if(!n.ok)throw Error(i?.error||`Project switch failed with HTTP ${n.status}`);return t(i.project),r(Array.isArray(i.projects)?i.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(i.projects)?i.projects:[])t.add(e.id);return t}),i.project},[]),handleSelectProjectPath:(0,I.useCallback)(async e=>{s(!0);try{let n=await fetch(`/api/project/path`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),i=await n.json().catch(()=>null);if(!n.ok)throw Error(i?.error||`Project selection failed with HTTP ${n.status}`);i?.project&&(t(i.project),r(Array.isArray(i.projects)?i.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(i.projects)?i.projects:[])t.add(e.id);return t}))}catch(e){throw v7.error(`Failed to select project:`,e),e}finally{s(!1)}},[]),selectProjectDirectory:(0,I.useCallback)(()=>{l(!0)},[]),setProjectPickerOpen:l,toggleProjectExpanded:(0,I.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),setActiveProject:t,setProjects:r,setExpandedProjectIds:a}}function m_e(){let[e,t]=(0,I.useState)(!1),n=(0,I.useRef)(void 0);return{yoloMode:e,setYoloMode:t,initialize:(0,I.useCallback)(async e=>{let n=await L7(e);return t(n),n},[]),loadForProject:(0,I.useCallback)(async(e,r)=>{n.current!==r&&(n.current=r,t(await L7(e,r)))},[])}}var h_e=`quickforge-sync`;function g_e(e){let t=(0,I.useRef)(e);(0,I.useEffect)(()=>{t.current=e});let n=(0,I.useRef)(crypto.randomUUID()),r=(0,I.useRef)(null);(0,I.useEffect)(()=>{let e=new BroadcastChannel(h_e);r.current=e;let i=e=>{let r=e.data;if(!(!r||r.sourceTabId===n.current))switch(r.type){case`sessions-changed`:t.current.onSessionsChanged();break;case`projects-changed`:t.current.onProjectsChanged();break;case`settings-changed`:t.current.onSettingsChanged();break}};e.addEventListener(`message`,i);let a=()=>{document.visibilityState===`visible`&&(t.current.onSessionsChanged(),t.current.onProjectsChanged())};return document.addEventListener(`visibilitychange`,a),()=>{e.removeEventListener(`message`,i),e.close(),document.removeEventListener(`visibilitychange`,a)}},[]);let i=(0,I.useCallback)(e=>{let t={type:e,sourceTabId:n.current,timestamp:Date.now()};r.current?.postMessage(t)},[]);return{notifySessionsChanged:(0,I.useCallback)(()=>i(`sessions-changed`),[i]),notifyProjectsChanged:(0,I.useCallback)(()=>i(`projects-changed`),[i]),notifySettingsChanged:(0,I.useCallback)(()=>i(`settings-changed`),[i])}}function __e(){return``}var x9=new class{eventSource=null;handlersBySession=new Map;baseUrl=``;reconnectTimer=null;reconnectDelay=1e3;directBaseUrl=__e();fallbackBaseUrl=``;subscribe(e,t,n){this.fallbackBaseUrl=t;let r=this.directBaseUrl||this.fallbackBaseUrl;(!this.eventSource||this.baseUrl!==r)&&(this.disconnect(),this.baseUrl=r,this.connect());let i=this.handlersBySession.get(e);return i||(i=new Set,this.handlersBySession.set(e,i)),i.add(n),()=>{let t=this.handlersBySession.get(e);t?.delete(n),t?.size===0&&this.handlersBySession.delete(e),this.handlersBySession.size===0&&this.globalHandlers.size===0&&this.disconnect()}}globalHandlers=new Set;subscribeAll(e,t){this.fallbackBaseUrl=e;let n=this.directBaseUrl||this.fallbackBaseUrl;return(!this.eventSource||this.baseUrl!==n)&&(this.disconnect(),this.baseUrl=n,this.connect()),this.globalHandlers.add(t),()=>{this.globalHandlers.delete(t),this.handlersBySession.size===0&&this.globalHandlers.size===0&&this.disconnect()}}connect(){let e=`${this.baseUrl}/api/agents/events`;this.eventSource=new EventSource(e),this.eventSource.onopen=()=>{this.reconnectDelay=1e3};let t=[`state`,`agent_start`,`agent_end`,`message_start`,`message_end`,`turn_start`,`turn_end`,`message_update`,`tool_execution_start`,`tool_execution_end`,`error`,`title_updated`,`session_forked`,`scheduled_task_notification`,`scheduled_task_started`,`tool_approval_required`,`messages_replaced`],n=e=>t=>{try{let n=JSON.parse(t.data),r=n.sessionId;if(!r&&e!==`scheduled_task_notification`)return;let i=e?{type:e,...n}:n;r?this.emit(r,i):this.emitGlobal(i)}catch{}};this.eventSource.onmessage=n();for(let e of t)this.eventSource.addEventListener(e,n(e));this.eventSource.onerror=()=>{if(this.eventSource?.close(),this.eventSource=null,this.baseUrl===this.directBaseUrl&&this.fallbackBaseUrl!==this.directBaseUrl){this.baseUrl=this.fallbackBaseUrl,this.connect();return}this.scheduleReconnect()}}scheduleReconnect(){this.reconnectTimer||this.handlersBySession.size===0&&this.globalHandlers.size===0||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4),this.connect()},this.reconnectDelay))}emitGlobal(e){for(let t of this.globalHandlers)try{t(e)}catch{}}emit(e,t){this.emitGlobal(t);let n=this.handlersBySession.get(e);if(n)for(let e of n)try{e(t)}catch{}}disconnect(){this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.eventSource?.close(),this.eventSource=null}};async function v_e(e=``){let t=await fetch(`${e}/api/agents`,{cache:`no-store`});if(!t.ok)return[];let n=await t.json().catch(()=>null);return Array.isArray(n?.sessions)?n.sessions:[]}function S9(e,t=``){return x9.subscribeAll(t,e)}var y_e=class e{state;streamFn=Df;getApiKey;sessionId;listeners=new Set;unsubscribeSse;baseUrl;disposed=!1;_syncingThinkingLevel=!1;pollTimer=null;stateVersion=0;constructor(e){this.sessionId=e.sessionId,this.baseUrl=e.baseUrl??``;let t=e.initialState??{},n={systemPrompt:t.systemPrompt??``,model:t.model??null,thinkingLevel:t.thinkingLevel??`off`,messages:t.messages?.slice()??[],tools:t.tools??[],isStreaming:t.isStreaming??!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:t.errorMessage};this.state=new Proxy(n,{set:(e,t,n)=>{let r=e[t];return e[t]=n,t===`thinkingLevel`&&!this._syncingThinkingLevel&&n!==r&&this.updateThinkingLevel(n),!0}}),this.unsubscribeSse=x9.subscribe(this.sessionId,this.baseUrl,e=>this.handleSseEvent(e))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async prompt(e){if(this.disposed)return;let t;t=typeof e==`string`?{role:`user`,content:e,timestamp:Date.now()}:Array.isArray(e)?[...e].reverse().find(e=>e.role===`user`||e.role===`user-with-attachments`)??e[e.length-1]:e;let n=t;this.state.messages=[...this.state.messages,n],this.emitToListeners({type:`message_start`,message:n}),this.state.isStreaming||(this.state.isStreaming=!0,this.state.errorMessage=void 0,this.emitToListeners({type:`agent_start`}));let r=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/prompt`;fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:n})}).then(e=>{if(!e.ok)throw Error(`Failed to send prompt: HTTP ${e.status}`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);v7.error(`Failed to send prompt:`,e),this.state.errorMessage=t,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.stopPollingState(),this.emitToListeners({type:`error`,error:t}),this.emitToListeners({type:`agent_end`,messages:this.state.messages})}),this.startPollingState()}abort(){let e=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/abort`;fetch(e,{method:`POST`}).catch(e=>{v7.error(`Failed to abort:`,e)})}steer(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/steer`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:e})}).catch(e=>{v7.error(`Failed to send steer:`,e)})}followUp(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/follow-up`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:e})}).catch(e=>{v7.error(`Failed to send follow-up:`,e)})}reset(){this.state.messages=[],this.state.errorMessage=void 0,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.state.pendingToolCalls=new Set}async updateYoloMode(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/yolo-mode`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({yoloMode:e})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error||`Failed to sync YOLO mode: HTTP ${n.status}`)}}async updateModel(e){this.state.model=e;let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/model`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({model:e})}).catch(e=>{v7.error(`Failed to sync model update to server:`,e)})}async updateThinkingLevel(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/thinking-level`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({thinkingLevel:e})}).catch(e=>{v7.error(`Failed to sync thinking level update to server:`,e)})}async syncMessages(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/messages`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({messages:e})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error||`Failed to sync messages: HTTP ${n.status}`)}}async rollback(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/rollback`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({messageIndex:e})}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Failed to roll back: HTTP ${n.status}`);return r}async approveToolCall(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/approve-tool`;await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({toolCallId:e})})}async rejectToolCall(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/reject-tool`;await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({toolCallId:e})})}dispose(){this.disposed=!0,this.pollTimer&&=(clearInterval(this.pollTimer),null),this.unsubscribeSse?.(),this.unsubscribeSse=void 0,this.listeners.clear()}handleSseEvent(e){switch(e.type){case`state`:{let t=e;t.systemPrompt!==void 0&&(this.state.systemPrompt=t.systemPrompt),t.messages&&(t.messages.length>this.state.messages.length||!this.state.isStreaming&&t.messages.length===this.state.messages.length)&&(this.state.messages=t.messages,this.stateVersion++),t.model&&(this.state.model=t.model),t.thinkingLevel&&(this._syncingThinkingLevel=!0,this.state.thinkingLevel=t.thinkingLevel,this._syncingThinkingLevel=!1),t.tools&&(this.state.tools=t.tools);let n=this.state.isStreaming;t.isStreaming!==void 0&&(n=this.state.isStreaming,this.state.isStreaming=t.isStreaming,this.stopPollingState()),t.isStreaming?(this.state.errorMessage=void 0,this.emitToListeners({type:`agent_start`})):n&&(this.stateVersion++,this.emitToListeners({type:`agent_end`,messages:this.state.messages}));return}case`agent_start`:this.state.isStreaming=!0,this.state.errorMessage=void 0;break;case`agent_end`:{this.stopPollingState();let t=e;this.refreshStateFromServer({forceMessages:!0}).finally(()=>{this.state.isStreaming=!1,this.state.streamingMessage=void 0,t.errorMessage&&(this.state.errorMessage=t.errorMessage),this.emitToListeners(e)});return}case`message_end`:case`turn_end`:{let t=e;if(t.messages&&t.messages.length>=this.state.messages.length){this.state.messages=t.messages,this.stateVersion++,this.emitToListeners(e);return}this.refreshStateFromServer().finally(()=>{this.emitToListeners(e)});return}case`messages_replaced`:{let t=e;t.messages&&(this.state.messages=t.messages,this.state.streamingMessage=void 0,this.stateVersion++);break}case`error`:{this.stopPollingState();let t=e.error;this.state.errorMessage=t||`Unknown error`,this.state.isStreaming=!1;break}case`title_updated`:break;case`session_forked`:break;case`message_start`:case`message_update`:case`turn_start`:case`tool_execution_start`:case`tool_execution_end`:case`tool_approval_required`:break}this.emitToListeners(e)}emitToListeners(e){for(let t of this.listeners)try{t(e)}catch{}}startPollingState(){this.pollTimer||this.disposed||(this.pollTimer=setInterval(()=>{this.refreshStateFromServer({notify:!0})},2e3))}stopPollingState(){this.pollTimer&&=(clearInterval(this.pollTimer),null)}async refreshStateFromServer(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/state`;try{let n=this.stateVersion,r=await fetch(t);if(!r.ok)return;let i=await r.json();if(!e?.forceMessages&&n!==this.stateVersion)return;let a=!!(i.messages&&(e?.forceMessages||i.messages.length>this.state.messages.length||!this.state.isStreaming&&i.messages.length===this.state.messages.length));if(a&&(this.state.messages=i.messages,this.stateVersion++),i.systemPrompt!==void 0&&(this.state.systemPrompt=i.systemPrompt),i.model&&(this.state.model=i.model),i.thinkingLevel&&(this._syncingThinkingLevel=!0,this.state.thinkingLevel=i.thinkingLevel,this._syncingThinkingLevel=!1),i.tools&&(this.state.tools=i.tools),i.isStreaming!==void 0){let t=this.state.isStreaming;if(this.state.isStreaming=!!i.isStreaming,i.isStreaming?(this.state.errorMessage=void 0,t||this.emitToListeners({type:`agent_start`})):this.stopPollingState(),e?.notify&&t&&!i.isStreaming){this.stateVersion++,this.emitToListeners({type:`agent_end`,messages:this.state.messages});return}}if(e?.notify)if(i.isStreaming&&a){let e=this.state.messages[this.state.messages.length-1];e&&this.emitToListeners({type:`message_update`,message:e})}else i.isStreaming||this.emitToListeners({type:`message_end`})}catch{}}static async create(t,n={}){let r=n.baseUrl??``,i=await fetch(`${r}/api/agents/${encodeURIComponent(t)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({scope:n.scope??`global`,projectId:n.projectId,yoloMode:n.yoloMode??!1,model:n.model,thinkingLevel:n.thinkingLevel??`off`,messages:n.messages??[],title:n.title??`New chat`})});if(!i.ok){let e=await i.json().catch(()=>({error:`Failed to create agent`}));throw Error(e.error||`Failed to create agent`)}let a={};try{let e=await fetch(`${r}/api/agents/${encodeURIComponent(t)}/state`);e.ok&&(a=await e.json())}catch{}return new e({sessionId:t,baseUrl:r,initialState:{systemPrompt:a.systemPrompt??``,model:a.model??n.model??null,thinkingLevel:a.thinkingLevel??n.thinkingLevel??`off`,messages:a.messages??n.messages??[],tools:[],isStreaming:!!a.isStreaming,errorMessage:a.errorMessage}})}};function b_e(e){let{storageRef:t,activeModelRef:n,yoloModeRef:r,activeProjectRef:i,switchActiveProject:a,sessions:o,refreshSessions:s}=e,c=(0,I.useRef)(null),l=(0,I.useRef)(new Map),u=(0,I.useRef)(`global`),d=(0,I.useRef)(void 0),f=(0,I.useRef)(`New chat`),p=(0,I.useRef)(void 0),m=(0,I.useRef)(null),h=(0,I.useRef)(e.onTaskComplete);(0,I.useEffect)(()=>{h.current=e.onTaskComplete});let[g,_]=(0,I.useState)(null),[v,y]=(0,I.useState)(),[b,x]=(0,I.useState)(`New chat`),[S,C]=(0,I.useState)(`global`),[w,T]=(0,I.useState)(),[E,D]=(0,I.useState)({}),[O,k]=(0,I.useState)(0),A=(0,I.useCallback)(async e=>{if(d.current===e.sessionId){let t=e.agent.state.messages,n=e.title;Yge(n)&&(n=d9(t)),p.current=e.createdAt??new Date().toISOString(),f.current=n,x(n)}await s({broadcast:!0})},[s]),ee=(0,I.useCallback)(e=>{u.current=e.scope,d.current=e.sessionId,p.current=e.createdAt,f.current=e.title,C(e.scope),y(e.sessionId),x(e.title),T(e.project),c.current=e.agent,_(e.agent);let t=new URL(window.location.href);t.searchParams.set(`session`,e.sessionId),window.history.replaceState({},``,t)},[]),j=(0,I.useCallback)(async(e,a=crypto.randomUUID(),o)=>{let c=l.current.get(a);if(c)return o?.attachToView!==!1&&ee(c),c.agent;let p=o?.scope??u.current,g=p===`project`?o?.project??i.current:void 0,_=new Date().toISOString(),{model:v,thinkingLevel:y,tools:b,...S}=e??{},C=t.current,w=C?await M7(C):{},T=v??w.model??n.current,E=C?await xge(C,T):E7(T),O=y??w.thinkingLevel??A7(E);n.current=E;let k=await y_e.create(a,{scope:p,projectId:g?.id,yoloMode:r.current,model:E,thinkingLevel:O,messages:S.messages??[],title:o?.title}),j=k.state.isStreaming?`running`:k.state.errorMessage?`error`:`idle`,te={sessionId:k.sessionId,agent:k,scope:p,project:g,title:o?.title??`New chat`,createdAt:o?.createdAt??_,status:j,startedAt:_,unsubscribe:()=>void 0};return te.unsubscribe=k.subscribe(e=>{if(e.type===`agent_start`&&(te.status=`running`,te.startedAt=te.startedAt??new Date().toISOString(),te.finishedAt=void 0,D(e=>({...e,[te.sessionId]:te.status}))),e.type===`message_end`&&(k.state.messages=[...k.state.messages]),e.type===`agent_end`){let e=te.status===`running`;te.status=k.state.errorMessage?`error`:`idle`,te.finishedAt=new Date().toISOString(),D(e=>({...e,[te.sessionId]:te.status})),A(te).catch(e=>v7.error(`Failed to sync session UI:`,e)),e&&h.current?.(te.sessionId,te.title,te.status)}if(e.type===`title_updated`){let t=e;t.title&&(te.title=t.title),te.sessionId===d.current&&t.title&&(f.current=t.title,x(t.title)),s({broadcast:!0}).catch(e=>v7.error(`Failed to refresh sessions:`,e))}if(e.type===`session_forked`){let t=e;if(!t.targetSessionId)return;s({broadcast:!0}).catch(e=>v7.error(`Failed to refresh sessions:`,e)),m.current?.(t.targetSessionId,{title:t.title,createdAt:t.createdAt,scope:t.scope,projectId:t.projectId??void 0})}}),l.current.set(a,te),te.status!==`idle`&&D(e=>({...e,[te.sessionId]:te.status})),o?.attachToView!==!1&&ee(te),k.state.messages.length>0&&await s({broadcast:!0}),k},[ee,s,A,t,n,r,i]),te=(0,I.useCallback)(async(e,r)=>{let s=l.current.get(e);if(s){if(s.scope===`project`&&s.project?.id&&i.current?.id!==s.project.id)try{await a(s.project.id)}catch(e){v7.error(`Failed to switch project for running session:`,e)}ee(s);return}let c=t.current;if(!c){await j({tools:[]},e,{scope:r?.scope??`global`,attachToView:!0,createdAt:r?.createdAt,title:r?.title});return}let u=await c.sessions.get(e);if(!u)return;let d=o.find(t=>t.id===e)??await c.sessions.getMetadata(e),f=r?.scope??Y7(d??u),p=r?.projectId??d?.projectId??u.projectId,m;if(f===`project`&&p){let e=p;if(i.current?.id!==e)try{m=await a(e)}catch(e){v7.error(`Failed to switch project for session:`,e),alert(`Failed to switch project`);return}else m=i.current}n.current=u.model,await j({model:u.model,thinkingLevel:u.thinkingLevel,messages:u.messages,tools:[]},u.id,{scope:f,project:m,attachToView:!0,createdAt:u.createdAt??r?.createdAt,title:u.title??r?.title})},[ee,j,o,a,t,n,i]);return(0,I.useEffect)(()=>{m.current=te},[te]),{agentRef:c,taskMapRef:l,currentSessionIdRef:d,currentChatScopeRef:u,agent:g,currentSessionId:v,currentTitle:b,chatScope:S,currentToolProject:w,taskStatuses:E,chatPanelRevision:O,createAgent:j,loadSession:te,syncSessionUI:A,setChatPanelRevision:k,setCurrentAgentMessages:(0,I.useCallback)(e=>{c.current&&(c.current.state.messages=e)},[]),updateCurrentAgentModel:(0,I.useCallback)(e=>{c.current&&(c.current.state.model=e,c.current.updateModel(e).catch(e=>{v7.error(`Failed to sync model to server:`,e)}))},[]),setCurrentTitleRef:(0,I.useCallback)(e=>{f.current=e},[])}}var C9=20;function x_e({backendRef:e,expandedProjectIds:t,onBroadcastSessionsChanged:n}){let[r,i]=(0,I.useState)({items:[],total:0,loading:!1}),[a,o]=(0,I.useState)({}),s=(0,I.useRef)(a),c=(0,I.useRef)(t);(0,I.useEffect)(()=>{s.current=a},[a]),(0,I.useEffect)(()=>{c.current=t},[t]);let l=(0,I.useMemo)(()=>[...r.items,...Object.values(a).flatMap(e=>e.items)],[r.items,a]),u=(0,I.useCallback)(async t=>{let n=e.current;if(n){i(e=>({...e,loading:!0}));try{let e=await n.fetchPaginatedFromIndex(`sessions-metadata`,`lastModified`,{direction:`desc`,limit:C9,offset:t,scope:`global`});i(n=>({items:t===0?e.values:[...n.items,...e.values],total:e.total,loading:!1}))}catch{i(e=>({...e,loading:!1}))}}},[e]),d=(0,I.useCallback)(async(t,n)=>{let r=e.current;if(r){o(e=>{let n=e[t];return{...e,[t]:{...n??{items:[],total:0},loading:!0}}});try{let e=await r.fetchPaginatedFromIndex(`sessions-metadata`,`lastModified`,{direction:`desc`,limit:C9,offset:n,scope:`project`,projectId:t});o(r=>{let i=r[t]?.items??[];return{...r,[t]:{items:n===0?e.values:[...i,...e.values],total:e.total,loading:!1}}})}catch{o(e=>{let n=e[t];return{...e,[t]:{...n??{items:[],total:0},loading:!1}}})}}},[e]),f=(0,I.useCallback)(async e=>{await u(0);let t=new Set([...Object.keys(s.current),...c.current]);t.size===0?o({}):(o(e=>{let n={};for(let r of t)n[r]={...e[r]??{items:[],total:0},loading:!0};return n}),await Promise.all([...t].map(e=>d(e,0)))),e?.broadcast&&n?.()},[u,d,n]),p=(0,I.useCallback)(e=>a[e]?.items??[],[a]),m=(0,I.useCallback)(e=>{let t=a[e];return t?t.items.length<t.total:!0},[a]),h=(0,I.useCallback)(e=>a[e]?.loading??!1,[a]),g=(0,I.useCallback)(e=>e in a,[a]),_=(0,I.useCallback)(()=>{u(r.items.length)},[r.items.length,u]),v=(0,I.useCallback)(e=>{let t=a[e];d(e,t?.items.length??0)},[d,a]);return{allLoadedSessions:l,globalSessions:r.items,sessionsForProject:p,globalHasMore:r.items.length<r.total,projectHasMore:m,globalLoading:r.loading,projectLoading:h,projectLoaded:g,loadGlobalSessions:u,loadProjectSessions:d,refreshSessions:f,loadMoreGlobal:_,loadMoreProject:v}}function S_e(){let[e,t]=(0,I.useState)([]),n=(0,I.useCallback)(e=>{t(t=>[...t,{...e,id:crypto.randomUUID(),createdAt:Date.now()}])},[]);return{toasts:e,handleTaskComplete:(0,I.useCallback)((e,t,r)=>{n({sessionId:e,title:t,status:r})},[n]),addToast:n,dismissToast:(0,I.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[])}}function C_e({storageRef:e,backendRef:t,activeModelRef:n,yoloModeRef:r,activeProjectRef:i,taskMapRef:a,loadGlobalSessions:o,loadProject:s,initYoloMode:c,switchActiveProject:l,createAgent:u,setNeedsModelSetup:d}){let[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)();return(0,I.useEffect)(()=>{let f=!1;async function m(){try{let a=await O7();if(f)return;e.current=a,t.current=a.backend,await Qhe(a),await Promise.all([o(0),s()]),r.current=await c(a);let m=await F7(a),h=await M7(a);m&&(n.current=h.model??m);let g=new URLSearchParams(window.location.search).get(`session`);if(g){let e=await a.sessions.get(g);if(e){let t=await a.sessions.getMetadata(e.id),r=Y7(t??e),o;if(r===`project`&&(t?.projectId||e.projectId)){let n=t?.projectId??e.projectId;if(i.current?.id!==n)try{o=await l(n)}catch(e){v7.error(`Failed to switch project for initial session:`,e),alert(Z(`projectSwitchFailed`)),m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0),p(!0);return}else o=i.current}n.current=e.model,await u({model:e.model,thinkingLevel:e.thinkingLevel,messages:e.messages,tools:[]},e.id,{scope:r,project:o,attachToView:!0,createdAt:e.createdAt,title:e.title})}else m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0)}else m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0);p(!0)}catch(e){v7.error(`Failed to bootstrap QuickForge:`,e),f||h(Z(`localServiceUnavailableDescription`))}}m();let g=a.current;return()=>{f=!0;for(let e of g.values())e.unsubscribe(),e.agent.dispose();g.clear()}},[e,t,n,r,i,a,o,s,c,l,u,d]),{ready:f,startupError:m}}var w9=()=>({modelId:``,contextWindow:C7.contextWindow,maxTokens:C7.maxTokens,reasoning:!1}),T9=()=>({name:C7.name,baseUrl:C7.baseUrl,apiKey:``,headersJson:`{}`,protocol:`openai-completions`,models:[w9()]}),w_e=class extends B5{providers=[];form=T9();editingProviderId;formOpen=!1;loading=!0;autoEditProviderName=null;async connectedCallback(){if(super.connectedCallback(),await this.loadProviders(),this.autoEditProviderName){let e=this.providers.find(e=>e.name===this.autoEditProviderName);e&&await this.openEditForm(e),this.autoEditProviderName=null}}getTabName(){return Z(`customModels`)}async loadProviders(){this.loading=!0,this.requestUpdate();try{this.providers=await o_().customProviders.getAll()}catch(e){v7.error(`Failed to load custom providers:`,e),this.providers=[]}finally{this.loading=!1,this.requestUpdate()}}openAddForm(){this.editingProviderId=void 0,this.form=T9(),this.formOpen=!0,this.requestUpdate()}async openEditForm(e){let t=await o_().providerKeys.get(e.name)??e.apiKey??``,n=e.models??[],r=n.length>0?n.map(e=>({modelId:e.id,contextWindow:e.contextWindow??C7.contextWindow,maxTokens:e.maxTokens??C7.maxTokens,reasoning:e.reasoning===!0})):[w9()];this.editingProviderId=e.id,this.form={providerId:e.id,id:e.id,name:e.name,baseUrl:e.baseUrl,apiKey:t,headersJson:JSON.stringify(n[0]?.headers??{},null,2),protocol:e.type===`anthropic-messages`?`anthropic-messages`:`openai-completions`,models:r},this.formOpen=!0,this.requestUpdate()}closeForm(){this.formOpen=!1,this.editingProviderId=void 0,this.form=T9(),this.requestUpdate()}updateForm(e,t){this.form={...this.form,[e]:t},this.requestUpdate()}updateModelField(e,t,n){let r=this.form.models.map((r,i)=>i===e?{...r,[t]:n}:r);this.form={...this.form,models:r},this.requestUpdate()}addModelRow(){this.form={...this.form,models:[...this.form.models,w9()]},this.requestUpdate()}removeModelRow(e){let t=this.form.models.filter((t,n)=>n!==e);this.form={...this.form,models:t},this.requestUpdate()}parseHeadersJson(){let e=this.form.headersJson.trim();if(!e)return{};let t;try{t=JSON.parse(e)}catch{return alert(Z(`invalidHeadersJson`)),null}if(!t||typeof t!=`object`||Array.isArray(t))return alert(Z(`invalidHeadersJson`)),null;let n={};for(let[e,r]of Object.entries(t)){if(!e.trim()||typeof r!=`string`)return alert(Z(`invalidHeadersJson`)),null;n[e]=r}return n}buildModel(e,t){let n=this.form.name.trim(),r=this.form.baseUrl.trim(),i=e.reasoning===!0,a=r.includes(`api.deepseek.com`);return E7({id:e.modelId,name:`${e.modelId} (${n})`,api:this.form.protocol,provider:n,baseUrl:r.replace(/\/$/,``),reasoning:i,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:Number(e.contextWindow)||C7.contextWindow,maxTokens:Number(e.maxTokens)||C7.maxTokens,headers:Object.keys(t).length>0?t:void 0,compat:this.form.protocol===`openai-completions`?{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:i,supportsUsageInStreaming:!1,supportsStrictMode:!1,maxTokensField:`max_tokens`,...a&&i?{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{low:`high`,medium:`high`,high:`high`,xhigh:`max`}}:{}}:void 0})}async saveModel(){let e=this.form.name.trim(),t=this.form.baseUrl.trim();if(!e||!t){alert(Z(`fillProviderBaseUrlModel`));return}let n=this.form.models.filter(e=>e.modelId.trim());if(n.length===0){alert(Z(`atLeastOneModel`));return}let r=n.map(e=>e.modelId.trim());if(new Set(r).size!==r.length){alert(Z(`duplicateModelId`));return}let i=this.parseHeadersJson();if(!i)return;let a=n.map(e=>this.buildModel(e,i)),o=this.form.apiKey.trim(),s=this.editingProviderId?this.providers.find(e=>e.id===this.editingProviderId):void 0,c={id:this.editingProviderId??crypto.randomUUID(),name:e,type:this.form.protocol,baseUrl:a[0].baseUrl,apiKey:o||void 0,models:a};try{let e=o_();await e.customProviders.set(c),s&&s.name!==c.name&&await e.providerKeys.delete(s.name),o?await e.providerKeys.set(c.name,o):await e.providerKeys.delete(c.name),this.closeForm(),await this.loadProviders()}catch(e){v7.error(`Failed to save custom model:`,e),alert(Z(`saveCustomModelFailed`))}}async deleteProvider(e){if(confirm(Z(`confirmDeleteProvider`,{name:e.name})))try{let t=o_();await t.customProviders.delete(e.id),await t.providerKeys.delete(e.name),await this.loadProviders()}catch(e){v7.error(`Failed to delete custom provider:`,e),alert(Z(`deleteFailed`))}}renderProvider(e){let t=e.models??[],n=t.length;return N`
2830
+ `)}function v9({agent:e,onModelSelect:t,revision:n,yoloMode:r,workspaceToolsEnabled:i,project:a,onToggleYoloMode:o,onRollbackFromMessage:s,onCopyAnswer:c,onForkFromMessage:l,onApproveToolCall:u,onRejectToolCall:d,restoredDraft:f,disableFork:p=!1,readOnly:m=!1,bypassClientApiKeyCheck:h=!1,allowModelControls:g=!0}){let _=(0,I.useRef)(null),v=(0,I.useRef)(void 0),y=(0,I.useRef)(void 0),b=(0,I.useRef)(new Map),x=(0,I.useRef)([]),S=(0,I.useRef)(void 0),C=(0,I.useRef)(new Set),w=(0,I.useRef)({onCopyAnswer:c,onRollbackFromMessage:s,onForkFromMessage:l,onToggleYoloMode:o,onApproveToolCall:u,onRejectToolCall:d,onModelSelect:t,yoloMode:r,workspaceToolsEnabled:i,disableFork:p,readOnly:m,allowModelControls:g,bypassClientApiKeyCheck:h});(0,I.useEffect)(()=>{w.current={onCopyAnswer:c,onRollbackFromMessage:s,onForkFromMessage:l,onToggleYoloMode:o,onApproveToolCall:u,onRejectToolCall:d,onModelSelect:t,yoloMode:r,workspaceToolsEnabled:i,disableFork:p,readOnly:m,allowModelControls:g,bypassClientApiKeyCheck:h},y.current=f});let T=(0,I.useRef)(null),E=(0,I.useRef)(null),D=(0,I.useRef)(null),O=(0,I.useRef)(null);(0,I.useEffect)(()=>{let e=!1;return a?.id?(fetch(`/api/project/commands?projectId=${encodeURIComponent(a.id)}`,{cache:`no-store`}).then(e=>e.ok?e.json():{commands:[]}).then(t=>{e||(x.current=Array.isArray(t.commands)?t.commands:[])}).catch(()=>{e||(x.current=[])}),()=>{e=!0}):(x.current=[],()=>{e=!0})},[a?.id,n]);let k=(e,t,n,r=!1)=>{if(t.sessionId&&t.sessionId!==n||!t9(t)||!r&&C.current.has(t.id))return;let i=()=>{if(!r&&C.current.has(t.id))return;let i=e.querySelector(`message-editor`),a=i?{text:i.value??i.querySelector(`textarea`)?.value??``,attachments:i.attachments?[...i.attachments]:[]}:b.current.get(n),o=S.current;(o?.id!==t.id||!t9(a??e9())||a?.text===o.text)&&(h9(e,t,b.current,n),S.current={id:t.id,text:t.text})};i(),window.requestAnimationFrame(i);for(let e of[0,50,150,300,600])window.setTimeout(i,e);e.querySelector(`agent-interface`)?.updateComplete?.then(i)};return(0,I.useEffect)(()=>{if(!_.current||!e)return;let t=new b5,n=e.sessionId,r=!1,i,a=Kge({panel:t});E.current=a;let o=qge({panel:t,getCustomCommands:()=>x.current,getComposerDrafts:()=>b.current,sessionId:n,setComposerDrafts:e=>{b.current=e},restoreDraftIntoComposer:e=>{h9(t,e,b.current,n)}}),s=Jge({panel:t,getSystemPrompt:()=>e.state.systemPrompt,getMessages:()=>e.state.messages,getContextWindow:()=>e.state.model?.contextWindow??0}),c=e=>{let r=t.querySelector(`message-editor`),i=r?.attachments?[...r.attachments]:[];b.current.set(n,{text:e,attachments:i})},l=e=>{let r=t.querySelector(`message-editor`),i=r?.querySelector(`textarea`),a=r?.value??i?.value??``;b.current.set(n,{text:a,attachments:e?[...e]:[]})},u=()=>{if(r||!t.isConnected)return;let n=w.current;try{t_e({panel:t,getMessages:()=>e.state.messages,isStreaming:()=>e.state.isStreaming,onCopyAnswer:n.onCopyAnswer,onRollbackFromMessage:n.onRollbackFromMessage,onForkFromMessage:n.onForkFromMessage,disableFork:n.disableFork})}catch{}try{n_e({panel:t,isStreaming:()=>e.state.isStreaming,abort:()=>e.abort(),yoloMode:n.yoloMode,workspaceToolsEnabled:n.workspaceToolsEnabled,readOnly:n.readOnly,allowModelControls:n.allowModelControls,onToggleYoloMode:n.onToggleYoloMode,onInput:c,onFilesChange:l,removeCommandSuggestions:o.remove,updateCommandSuggestions:o.update,setupCommandTextareaHandler:o.setupTextareaHandler})}catch{}let i=O.current;if(i&&i.sessionId===e.sessionId){let e=i.toolCallId;o_e({panel:t,onApprove:()=>{O.current=null,g9(t),w.current.onApproveToolCall(e)},onReject:()=>{O.current=null,g9(t),w.current.onRejectToolCall(e)}},i.toolName,e,i.args)}else g9(t);s.update(),a.setup(),a.isEnabled&&a.scheduleScrollToBottom()};T.current=u;let d=!1,f=()=>{d||(d=!0,window.requestAnimationFrame(()=>{d=!1,u()}))};D.current=f,t.setAgent(e,{onApiKeyRequired:w.current.bypassClientApiKeyCheck?async()=>!0:e=>k5.prompt(e),onBeforeSend:()=>{let e=y.current;e&&C.current.add(e.id),o.remove(),b.current.delete(n),a.enable()},onModelSelect:w.current.onModelSelect,toolsFactory:()=>zge(e.state.tools)}).then(()=>{if(r)return;let e=y.current;e&&v.current!==e.id?(v.current=e.id,k(t,e,n)):h9(t,b.current.get(n)??e9(),b.current,n),i=new MutationObserver(f),i.observe(t,{childList:!0,subtree:!0}),window.requestAnimationFrame(()=>{r||u()})}),_.current.replaceChildren(t);let p=e.subscribe(r=>{if(r.type===`agent_start`&&(a.enable(),O.current?.sessionId===e.sessionId&&(O.current=null)),(r.type===`message_start`||r.type===`message_update`||r.type===`message_end`||r.type===`turn_end`||r.type===`agent_end`)&&a.isEnabled&&a.scheduleScrollToBottom(),r.type===`messages_replaced`){let e=y.current;e&&v.current===e.id&&k(t,e,n)}if(r.type===`agent_end`&&O.current?.sessionId===e.sessionId&&(O.current=null,D.current?.()),r.type===`tool_approval_required`){let e=r;O.current={toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,sessionId:e.sessionId},D.current?.()}});return()=>{i_e(t,b.current,n),o.remove(),o.cleanupTextareaHandler(),r=!0,a.cleanup(),E.current=null,p(),i?.disconnect(),T.current=null,t.remove()}},[e]),(0,I.useEffect)(()=>{T.current?.(),(_.current?.querySelector(`agent-interface`))?.requestUpdate?.()},[r,i,p,m,g,n]),(0,I.useEffect)(()=>{let t=y.current;if(!t||!_.current)return;let n=e?.sessionId??``;if(t.sessionId&&t.sessionId!==n)return;let r=_.current.querySelector(`pi-chat-panel`);r&&(v.current=t.id,k(r,t,n,!0))},[f,e]),(0,Q.jsx)(`div`,{ref:_,className:`min-h-0 flex-1 overflow-hidden`})}function c_e({onAddModel:e,onUseExample:t}){return(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center p-6`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-xl rounded-2xl border border-border bg-card/80 p-6 text-center shadow-sm backdrop-blur`,children:[(0,Q.jsx)(`div`,{className:`mx-auto flex size-12 items-center justify-center rounded-2xl bg-primary/10 text-primary`,children:(0,Q.jsx)(l,{className:`size-6`})}),(0,Q.jsx)(`h2`,{className:`mt-4 text-lg font-semibold text-foreground`,children:Z(`modelSetupTitle`)}),(0,Q.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:Z(`modelSetupDescription`)}),(0,Q.jsxs)(`div`,{className:`mt-5 grid gap-3 rounded-xl border border-border/70 bg-muted/25 p-4 text-left text-sm`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsx)(h,{className:`mt-0.5 size-4 shrink-0 text-primary`}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:Z(`modelSetupSupports`)})]}),(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Q.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-primary`}),(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:Z(`modelSetupLocalStorage`)})]})]}),(0,Q.jsxs)(`div`,{className:`mt-6 flex flex-col justify-center gap-3 sm:flex-row`,children:[(0,Q.jsxs)(m7,{onClick:e,className:`gap-2`,children:[(0,Q.jsx)(v,{className:`size-4`}),Z(`modelSetupAddModel`)]}),(0,Q.jsx)(m7,{variant:`outline`,onClick:t,children:Z(`modelSetupUseLiteLlmExample`)})]})]})})}function l_e(e,t){let n=(0,I.useRef)(null),r=(0,I.useRef)(e);(0,I.useEffect)(()=>{r.current=e},[e]);let i=(0,I.useCallback)(e=>{n.current=e},[]);return(0,I.useEffect)(()=>{let e=n.current;if(!e||!t)return;let i=new IntersectionObserver(e=>{e[0]?.isIntersecting&&r.current()},{root:null,rootMargin:`100px`,threshold:0});return i.observe(e),()=>i.disconnect()},[t]),i}var u_e=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`});function y9(e){return u_e.format(new Date(e))}function b9({onLoadMore:e,enabled:t}){let n=l_e(e,t);return t?(0,Q.jsx)(`div`,{ref:n,className:`flex items-center justify-center py-1`,children:(0,Q.jsx)(m,{className:`size-3 animate-spin text-muted-foreground/45`})}):null}var d_e=(0,I.memo)(function({sidebarOpen:e,scheduledTasksActive:t,projectsCollapsed:n,conversationsCollapsed:r,projects:i,expandedProjectIds:a,activeProject:o,currentSessionId:s,globalSessions:c,sessionsForProject:l,globalHasMore:d,globalLoading:f,onLoadMoreGlobal:p,projectHasMore:g,projectLoading:w,projectLoaded:T,onLoadMoreProject:D,sessionTaskStatus:O,selectingProject:k,onToggleProjectsCollapsed:A,onToggleConversationsCollapsed:ee,onToggleProjectExpanded:j,onSelectProjectDirectory:re,onStartNewProjectChat:ae,onOpenGlobalSkills:oe,onOpenProjectSkills:se,onOpenProjectInExplorer:ce,onDeleteProject:le,onLoadSession:N,onRenameSession:P,onDeleteSession:ue,onStartNewGlobalChat:de,onOpenScheduledTasks:fe,onToggleSidebar:pe}){let F=`mb-1 flex w-full items-center gap-1 rounded-lg px-2 py-1 text-sm font-medium leading-5 text-muted-foreground/72 transition-colors hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)]`,me=`flex min-w-0 flex-1 items-center gap-1 text-left transition-colors hover:text-foreground/80`,he=`size-4 shrink-0 transition-transform duration-200 ease-out motion-reduce:transition-none`,ge=`grid transition-[grid-template-rows,opacity] duration-200 ease-out motion-reduce:transition-none`,_e=`grid-rows-[1fr] opacity-100`,ve=`pointer-events-none grid-rows-[0fr] opacity-0`,ye=`min-h-0 overflow-hidden`,be=`hover:shadow-[0_8px_18px_-14px_rgb(15_23_42_/_0.5)]`,xe=`group relative flex items-center gap-2 overflow-hidden rounded-lg px-2 py-1.5 text-left transition-all duration-160 ease-out hover:-translate-y-px active:translate-y-0 hover:shadow-[0_10px_26px_-18px_rgb(15_23_42_/_0.48)]`,Se=`bg-[color-mix(in_oklab,var(--muted)_70%,transparent)] text-foreground/92 shadow-[0_10px_26px_-20px_rgb(15_23_42_/_0.36)]`,Ce=`text-muted-foreground/72 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/86`,we=`text-muted-foreground/76 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/90`,Te=`inline-flex size-6 shrink-0 items-center justify-center rounded-full text-muted-foreground/55 transition-colors group-hover:text-foreground/70`,L=`size-7 shrink-0 rounded-full text-muted-foreground/55 transition-all duration-160 ease-out hover:-translate-y-px hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)] hover:text-foreground/85 active:translate-y-0 ${be}`,Ee=`pointer-events-none absolute inset-y-0 right-1 flex items-center gap-0.5 rounded-r-lg bg-gradient-to-l from-background via-background/95 to-transparent pl-8 opacity-0 transition-opacity duration-160 group-hover:pointer-events-auto group-hover:opacity-100 group-focus-within:pointer-events-auto group-focus-within:opacity-100`,De=L,Oe=`size-7 shrink-0 rounded-full text-muted-foreground/55 transition-all duration-160 ease-out hover:-translate-y-px hover:bg-destructive/14 hover:text-destructive/90 active:translate-y-0 ${be}`,ke=`truncate text-sm leading-5`,Ae=`font-medium text-foreground/92`,je=`mt-0.5 truncate text-[11px] leading-4 text-muted-foreground/55`,[Me,Ne]=(0,I.useState)(!1),[Pe,Fe]=(0,I.useState)(``),[Ie,Le]=(0,I.useState)(null),Re=(0,I.useRef)(null),ze=(0,I.useMemo)(()=>{let e=i.flatMap(e=>l(e.id).map(t=>({session:t,projectName:e.name}))),t=c.map(e=>({session:e,projectName:``})),n=new Set;return[...e,...t].filter(({session:e})=>n.has(e.id)?!1:(n.add(e.id),!0))},[c,i,l]),Be=Pe.trim()?ze.filter(({session:e,projectName:t})=>`${X7(e.title)} ${t}`.toLowerCase().includes(Pe.trim().toLowerCase())).slice(0,8):[],Ve=()=>{Ne(!0),window.setTimeout(()=>Re.current?.focus(),0)},He=e=>{N(e),Ne(!1),Fe(``)};return(0,I.useEffect)(()=>{if(!Ie)return;let e=()=>Le(null);return window.addEventListener(`click`,e),window.addEventListener(`blur`,e),()=>{window.removeEventListener(`click`,e),window.removeEventListener(`blur`,e)}},[Ie]),(0,Q.jsxs)(`aside`,{className:p7(`relative z-10 hidden min-h-0 shrink-0 overflow-hidden border-r border-border bg-background transition-[width] duration-200 ease-out motion-reduce:transition-none md:flex md:flex-col`,e?`w-80`:`w-14`),children:[(0,Q.jsxs)(`div`,{className:`shrink-0 px-3 pt-3 pb-1`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,Ce),onClick:pe,"aria-label":Z(`toggleSidebar`),children:[(0,Q.jsxs)(`span`,{className:p7(Te,`relative`),children:[(0,Q.jsx)(h,{className:p7(`size-4 transition-opacity duration-160`,!e&&`group-hover:opacity-0`)}),e?null:(0,Q.jsx)(E,{className:`absolute size-4 opacity-0 transition-opacity duration-160 group-hover:opacity-100`})]}),(0,Q.jsx)(`span`,{className:p7(`ml-auto inline-flex size-6 items-center justify-center text-muted-foreground/55 transition-opacity duration-100 group-hover:text-foreground/70`,!e&&`opacity-0`),children:(0,Q.jsx)(x,{className:`size-4`})})]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`mt-4 w-full`,Ce),onClick:Ve,"aria-label":Z(`search`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(_,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:ke,children:Z(`search`)}):null]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,Ce),onClick:oe,"aria-label":Z(`manageGlobalSkills`),title:Z(`manageGlobalSkills`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(te,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:ke,children:Z(`skills`)}):null]}),(0,Q.jsxs)(`button`,{type:`button`,className:p7(xe,`w-full`,t?Se:Ce),onClick:fe,"aria-label":Z(`scheduledTasksLabel`),children:[(0,Q.jsx)(`span`,{className:Te,children:(0,Q.jsx)(C,{className:`size-4`})}),e?(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:Z(`scheduledTasksLabel`)}):null]})]}),e?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`shrink-0 px-3 max-h-[55%] flex flex-col min-h-0 overflow-hidden`,children:(0,Q.jsxs)(`div`,{className:`shrink-0 mb-0.5`,children:[(0,Q.jsxs)(`div`,{className:F,children:[(0,Q.jsxs)(`button`,{type:`button`,className:me,onClick:A,"aria-expanded":!n,children:[(0,Q.jsx)(u,{className:p7(he,!n&&`rotate-90`)}),(0,Q.jsx)(`span`,{className:`flex-1 truncate`,children:Z(`projects`)})]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:L,onClick:re,disabled:k,"aria-label":Z(`addProject`),children:(0,Q.jsx)(v,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:p7(ge,`flex-1 min-h-0`,n?ve:_e),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`h-full overflow-y-auto`,children:(0,Q.jsx)(`div`,{className:`space-y-0.5`,children:i.length===0?(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noProjects`)}):i.map(e=>{let t=l(e.id),n=a.has(e.id),r=o?.id===e.id,i=T(e.id),c=Ie===e.id;return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:p7(xe,r?`text-foreground/84 hover:bg-[color-mix(in_oklab,var(--muted)_52%,transparent)]`:Ce,c&&`z-20 overflow-visible`),children:[(0,Q.jsx)(`button`,{type:`button`,className:Te,onClick:()=>j(e.id),"aria-label":Z(n?`collapseProject`:`expandProject`),children:n?(0,Q.jsx)(ie,{className:`size-4`}):(0,Q.jsx)(ne,{className:`size-4`})}),(0,Q.jsx)(`button`,{className:`flex min-w-0 flex-1 items-center text-left`,type:`button`,title:e.path,onClick:()=>j(e.id),children:(0,Q.jsx)(`span`,{className:p7(ke,r&&`font-medium text-foreground/84`),children:e.name})}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:t=>{t.stopPropagation(),Le(t=>t===e.id?null:e.id)},"aria-label":Z(`moreOptions`),"aria-expanded":c,children:(0,Q.jsx)(M,{className:`size-4`})}),c?(0,Q.jsxs)(`div`,{className:`absolute right-0 top-8 z-30 min-w-48 rounded-lg border border-border bg-card p-1 shadow-xl`,onClick:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 whitespace-nowrap rounded-md px-2 py-1.5 text-left text-sm text-foreground/86 transition-colors hover:bg-muted`,title:Z(`openInExplorer`),"aria-label":Z(`openInExplorer`),onClick:()=>{Le(null),ce(e)},children:[(0,Q.jsx)(ie,{className:`size-4 shrink-0 text-muted-foreground/70`}),(0,Q.jsx)(`span`,{children:Z(`openFolder`)})]}),(0,Q.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 whitespace-nowrap rounded-md px-2 py-1.5 text-left text-sm text-foreground/86 transition-colors hover:bg-muted`,onClick:()=>{Le(null),se(e)},children:[(0,Q.jsx)(te,{className:`size-4 shrink-0 text-muted-foreground/70`}),(0,Q.jsx)(`span`,{children:Z(`manageProjectSkills`)})]})]}):null]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>ae(e),"aria-label":Z(`newProjectChat`),children:(0,Q.jsx)(b,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>le(e.id),"aria-label":Z(`deleteProject`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]}),(0,Q.jsx)(`div`,{className:p7(ge,n?_e:ve),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`mt-0.5 space-y-0.5 pl-8 max-h-[35vh] overflow-y-auto`,children:t.length===0&&!i||t.length===0&&w(e.id)?(0,Q.jsxs)(`div`,{className:`flex items-center px-2 py-1.5 text-xs text-muted-foreground/55`,children:[(0,Q.jsx)(m,{className:`mr-1.5 size-3 animate-spin`}),Z(`loadingChatWorkspace`)]}):t.length===0&&!g(e.id)?(0,Q.jsx)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground/55`,children:Z(`noConversations`)}):(0,Q.jsxs)(Q.Fragment,{children:[t.map(e=>{let t=s===e.id;return(0,Q.jsxs)(`div`,{className:p7(xe,`gap-1`,t?Se:we),children:[(0,Q.jsxs)(`button`,{className:`min-w-0 flex-1 text-left`,type:`button`,onClick:()=>N(e.id),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 truncate`,children:[O(e)===`running`?(0,Q.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-emerald-500`}):null,(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:X7(e.title)})]}),(0,Q.jsx)(`div`,{className:je,children:y9(e.lastModified)})]}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>P(e.id,e.title),"aria-label":Z(`renameSession`),children:(0,Q.jsx)(y,{className:`size-3.5`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>ue(e.id),"aria-label":Z(`deleteSession`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id)}),(0,Q.jsx)(b9,{onLoadMore:()=>D(e.id),enabled:g(e.id)&&!w(e.id)})]})})})})]},e.id)})})})})})]})}),(0,Q.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col px-3 pb-3`,children:[(0,Q.jsxs)(`div`,{className:F,children:[(0,Q.jsxs)(`button`,{type:`button`,className:me,onClick:ee,"aria-expanded":!r,children:[(0,Q.jsx)(u,{className:p7(he,!r&&`rotate-90`)}),(0,Q.jsx)(`span`,{className:`flex-1 truncate`,children:Z(`conversations`)})]}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:L,onClick:de,"aria-label":Z(`newChat`),children:(0,Q.jsx)(b,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:p7(ge,`flex-1 min-h-0`,r?ve:_e),children:(0,Q.jsx)(`div`,{className:ye,children:(0,Q.jsx)(`div`,{className:`h-full overflow-y-auto`,children:c.length===0&&!d?(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noSavedConversations`)}):(0,Q.jsxs)(`div`,{className:`space-y-0.5`,children:[c.map(e=>{let t=s===e.id;return(0,Q.jsxs)(`div`,{className:p7(xe,t?Se:we),children:[(0,Q.jsxs)(`button`,{className:`min-w-0 flex-1 text-left`,type:`button`,onClick:()=>N(e.id),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 truncate`,children:[O(e)===`running`?(0,Q.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-emerald-500`}):null,(0,Q.jsx)(`span`,{className:p7(ke,t&&Ae),children:X7(e.title)})]}),(0,Q.jsx)(`div`,{className:je,children:y9(e.lastModified)})]}),(0,Q.jsxs)(`div`,{className:Ee,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:De,onClick:()=>P(e.id,e.title),"aria-label":Z(`renameSession`),children:(0,Q.jsx)(y,{className:`size-3.5`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:Oe,onClick:()=>ue(e.id),"aria-label":Z(`deleteSession`),children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id)}),(0,Q.jsx)(b9,{onLoadMore:p,enabled:d&&!f})]})})})})]})]}):null,Me?(0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center bg-background/50 px-4 pt-[12vh] backdrop-blur-sm`,role:`dialog`,"aria-modal":`true`,onMouseDown:()=>Ne(!1),children:(0,Q.jsxs)(`div`,{className:`w-full max-w-xl rounded-2xl border border-border bg-card p-3 shadow-xl`,onMouseDown:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-input bg-background px-3 py-2`,children:[(0,Q.jsx)(_,{className:`size-4 shrink-0 text-muted-foreground/60`}),(0,Q.jsx)(`input`,{ref:Re,value:Pe,onChange:e=>Fe(e.target.value),onKeyDown:e=>{e.key===`Escape`&&Ne(!1)},placeholder:Z(`searchDialog`),className:`min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground/45`})]}),(0,Q.jsx)(`div`,{className:`mt-2 max-h-[50vh] overflow-y-auto`,children:Pe.trim()?Be.length>0?Be.map(({session:e,projectName:t})=>(0,Q.jsxs)(`button`,{type:`button`,className:`block w-full rounded-xl px-3 py-2 text-left transition-colors hover:bg-muted/60`,onClick:()=>He(e.id),children:[(0,Q.jsx)(`div`,{className:`truncate text-sm text-foreground/90`,children:X7(e.title)}),(0,Q.jsxs)(`div`,{className:`truncate text-[11px] text-muted-foreground/55`,children:[t||Z(`normalChat`),` · `,y9(e.lastModified)]})]},e.id)):(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`noSearchResults`)}):(0,Q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground/55`,children:Z(`searchHint`)})})]})}):null]})}),f_e=class extends I.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){v7.error(`ErrorBoundary caught an error:`,e,t)}handleRetry=()=>{this.setState({error:null})};render(){return this.state.error?this.props.fallback?this.props.fallback:(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`max-w-md rounded-lg border border-border bg-card p-5 shadow-sm text-center`,children:[(0,Q.jsx)(`h1`,{className:`text-base font-semibold`,children:`Something went wrong`}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground break-all`,children:this.state.error.message||`An unexpected error occurred.`}),(0,Q.jsx)(m7,{variant:`outline`,size:`sm`,className:`mt-4`,onClick:this.handleRetry,children:`Try again`})]})}):this.props.children}};function p_e(){let[e,t]=(0,I.useState)(),[n,r]=(0,I.useState)([]),[i,a]=(0,I.useState)(()=>new Set),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(!1);return{activeProject:e,projects:n,expandedProjectIds:i,selectingProject:o,projectPickerOpen:c,loadProject:(0,I.useCallback)(async()=>{try{let e=await fetch(`/api/project`);if(!e.ok)return;let n=await e.json();t(n.project),r(Array.isArray(n.projects)?n.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(n.projects)?n.projects:[])t.add(e.id);return t})}catch(e){v7.error(`Failed to load project:`,e)}},[]),switchActiveProject:(0,I.useCallback)(async e=>{let n=await fetch(`/api/project/active`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e})}),i=await n.json().catch(()=>null);if(!n.ok)throw Error(i?.error||`Project switch failed with HTTP ${n.status}`);return t(i.project),r(Array.isArray(i.projects)?i.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(i.projects)?i.projects:[])t.add(e.id);return t}),i.project},[]),handleSelectProjectPath:(0,I.useCallback)(async e=>{s(!0);try{let n=await fetch(`/api/project/path`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),i=await n.json().catch(()=>null);if(!n.ok)throw Error(i?.error||`Project selection failed with HTTP ${n.status}`);i?.project&&(t(i.project),r(Array.isArray(i.projects)?i.projects:[]),a(e=>{let t=new Set(e);for(let e of Array.isArray(i.projects)?i.projects:[])t.add(e.id);return t}))}catch(e){throw v7.error(`Failed to select project:`,e),e}finally{s(!1)}},[]),selectProjectDirectory:(0,I.useCallback)(()=>{l(!0)},[]),setProjectPickerOpen:l,toggleProjectExpanded:(0,I.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),setActiveProject:t,setProjects:r,setExpandedProjectIds:a}}function m_e(){let[e,t]=(0,I.useState)(!1),n=(0,I.useRef)(void 0);return{yoloMode:e,setYoloMode:t,initialize:(0,I.useCallback)(async e=>{let n=await L7(e);return t(n),n},[]),loadForProject:(0,I.useCallback)(async(e,r)=>{n.current!==r&&(n.current=r,t(await L7(e,r)))},[])}}var h_e=`quickforge-sync`;function g_e(e){let t=(0,I.useRef)(e);(0,I.useEffect)(()=>{t.current=e});let n=(0,I.useRef)(crypto.randomUUID()),r=(0,I.useRef)(null);(0,I.useEffect)(()=>{let e=new BroadcastChannel(h_e);r.current=e;let i=e=>{let r=e.data;if(!(!r||r.sourceTabId===n.current))switch(r.type){case`sessions-changed`:t.current.onSessionsChanged();break;case`projects-changed`:t.current.onProjectsChanged();break;case`settings-changed`:t.current.onSettingsChanged();break}};e.addEventListener(`message`,i);let a=()=>{document.visibilityState===`visible`&&(t.current.onSessionsChanged(),t.current.onProjectsChanged())};return document.addEventListener(`visibilitychange`,a),()=>{e.removeEventListener(`message`,i),e.close(),document.removeEventListener(`visibilitychange`,a)}},[]);let i=(0,I.useCallback)(e=>{let t={type:e,sourceTabId:n.current,timestamp:Date.now()};r.current?.postMessage(t)},[]);return{notifySessionsChanged:(0,I.useCallback)(()=>i(`sessions-changed`),[i]),notifyProjectsChanged:(0,I.useCallback)(()=>i(`projects-changed`),[i]),notifySettingsChanged:(0,I.useCallback)(()=>i(`settings-changed`),[i])}}function __e(){return``}var x9=new class{eventSource=null;handlersBySession=new Map;baseUrl=``;reconnectTimer=null;reconnectDelay=1e3;directBaseUrl=__e();fallbackBaseUrl=``;subscribe(e,t,n){this.fallbackBaseUrl=t;let r=this.directBaseUrl||this.fallbackBaseUrl;(!this.eventSource||this.baseUrl!==r)&&(this.disconnect(),this.baseUrl=r,this.connect());let i=this.handlersBySession.get(e);return i||(i=new Set,this.handlersBySession.set(e,i)),i.add(n),()=>{let t=this.handlersBySession.get(e);t?.delete(n),t?.size===0&&this.handlersBySession.delete(e),this.handlersBySession.size===0&&this.globalHandlers.size===0&&this.disconnect()}}globalHandlers=new Set;subscribeAll(e,t){this.fallbackBaseUrl=e;let n=this.directBaseUrl||this.fallbackBaseUrl;return(!this.eventSource||this.baseUrl!==n)&&(this.disconnect(),this.baseUrl=n,this.connect()),this.globalHandlers.add(t),()=>{this.globalHandlers.delete(t),this.handlersBySession.size===0&&this.globalHandlers.size===0&&this.disconnect()}}connect(){let e=`${this.baseUrl}/api/agents/events`;this.eventSource=new EventSource(e),this.eventSource.onopen=()=>{this.reconnectDelay=1e3};let t=[`state`,`agent_start`,`agent_end`,`message_start`,`message_end`,`turn_start`,`turn_end`,`message_update`,`tool_execution_start`,`tool_execution_end`,`error`,`title_updated`,`session_forked`,`scheduled_task_notification`,`scheduled_task_started`,`tool_approval_required`,`messages_replaced`],n=e=>t=>{try{let n=JSON.parse(t.data),r=n.sessionId;if(!r&&e!==`scheduled_task_notification`)return;let i=e?{type:e,...n}:n;r?this.emit(r,i):this.emitGlobal(i)}catch{}};this.eventSource.onmessage=n();for(let e of t)this.eventSource.addEventListener(e,n(e));this.eventSource.onerror=()=>{if(this.eventSource?.close(),this.eventSource=null,this.baseUrl===this.directBaseUrl&&this.fallbackBaseUrl!==this.directBaseUrl){this.baseUrl=this.fallbackBaseUrl,this.connect();return}this.scheduleReconnect()}}scheduleReconnect(){this.reconnectTimer||this.handlersBySession.size===0&&this.globalHandlers.size===0||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4),this.connect()},this.reconnectDelay))}emitGlobal(e){for(let t of this.globalHandlers)try{t(e)}catch{}}emit(e,t){this.emitGlobal(t);let n=this.handlersBySession.get(e);if(n)for(let e of n)try{e(t)}catch{}}disconnect(){this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.eventSource?.close(),this.eventSource=null}};async function v_e(e=``){let t=await fetch(`${e}/api/agents`,{cache:`no-store`});if(!t.ok)return[];let n=await t.json().catch(()=>null);return Array.isArray(n?.sessions)?n.sessions:[]}function S9(e,t=``){return x9.subscribeAll(t,e)}var y_e=class e{state;streamFn=Df;getApiKey;sessionId;listeners=new Set;unsubscribeSse;baseUrl;disposed=!1;_syncingThinkingLevel=!1;pollTimer=null;stateVersion=0;constructor(e){this.sessionId=e.sessionId,this.baseUrl=e.baseUrl??``;let t=e.initialState??{},n={systemPrompt:t.systemPrompt??``,model:t.model??null,thinkingLevel:t.thinkingLevel??`off`,messages:t.messages?.slice()??[],tools:t.tools??[],isStreaming:t.isStreaming??!1,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:t.errorMessage};this.state=new Proxy(n,{set:(e,t,n)=>{let r=e[t];return e[t]=n,t===`thinkingLevel`&&!this._syncingThinkingLevel&&n!==r&&this.updateThinkingLevel(n),!0}}),this.unsubscribeSse=x9.subscribe(this.sessionId,this.baseUrl,e=>this.handleSseEvent(e))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async prompt(e){if(this.disposed)return;let t;t=typeof e==`string`?{role:`user`,content:e,timestamp:Date.now()}:Array.isArray(e)?[...e].reverse().find(e=>e.role===`user`||e.role===`user-with-attachments`)??e[e.length-1]:e;let n=t;this.state.messages=[...this.state.messages,n],this.emitToListeners({type:`message_start`,message:n}),this.state.isStreaming||(this.state.isStreaming=!0,this.state.errorMessage=void 0,this.emitToListeners({type:`agent_start`}));let r=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/prompt`;fetch(r,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:n})}).then(e=>{if(!e.ok)throw Error(`Failed to send prompt: HTTP ${e.status}`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);v7.error(`Failed to send prompt:`,e),this.state.errorMessage=t,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.stopPollingState(),this.emitToListeners({type:`error`,error:t}),this.emitToListeners({type:`agent_end`,messages:this.state.messages})}),this.startPollingState()}abort(){let e=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/abort`;fetch(e,{method:`POST`}).catch(e=>{v7.error(`Failed to abort:`,e)})}steer(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/steer`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:e})}).catch(e=>{v7.error(`Failed to send steer:`,e)})}followUp(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/follow-up`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:e})}).catch(e=>{v7.error(`Failed to send follow-up:`,e)})}reset(){this.state.messages=[],this.state.errorMessage=void 0,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.state.pendingToolCalls=new Set}async updateYoloMode(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/yolo-mode`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({yoloMode:e})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error||`Failed to sync YOLO mode: HTTP ${n.status}`)}}async updateModel(e){this.state.model=e;let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/model`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({model:e})}).catch(e=>{v7.error(`Failed to sync model update to server:`,e)})}async updateThinkingLevel(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/thinking-level`;fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({thinkingLevel:e})}).catch(e=>{v7.error(`Failed to sync thinking level update to server:`,e)})}async syncMessages(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/messages`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({messages:e})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error||`Failed to sync messages: HTTP ${n.status}`)}}async rollback(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/rollback`,n=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({messageIndex:e})}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Failed to roll back: HTTP ${n.status}`);return r}async approveToolCall(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/approve-tool`;await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({toolCallId:e})})}async rejectToolCall(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/reject-tool`;await fetch(t,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({toolCallId:e})})}dispose(){this.disposed=!0,this.pollTimer&&=(clearInterval(this.pollTimer),null),this.unsubscribeSse?.(),this.unsubscribeSse=void 0,this.listeners.clear()}handleSseEvent(e){switch(e.type){case`state`:{let t=e;t.systemPrompt!==void 0&&(this.state.systemPrompt=t.systemPrompt),t.messages&&(t.messages.length>this.state.messages.length||!this.state.isStreaming&&t.messages.length===this.state.messages.length)&&(this.state.messages=t.messages,this.stateVersion++),t.model&&(this.state.model=t.model),t.thinkingLevel&&(this._syncingThinkingLevel=!0,this.state.thinkingLevel=t.thinkingLevel,this._syncingThinkingLevel=!1),t.tools&&(this.state.tools=t.tools);let n=this.state.isStreaming;t.isStreaming!==void 0&&(n=this.state.isStreaming,this.state.isStreaming=t.isStreaming,this.stopPollingState()),t.isStreaming?(this.state.errorMessage=void 0,this.emitToListeners({type:`agent_start`})):n&&(this.stateVersion++,this.emitToListeners({type:`agent_end`,messages:this.state.messages}));return}case`agent_start`:this.state.isStreaming=!0,this.state.errorMessage=void 0;break;case`agent_end`:{this.stopPollingState();let t=e;this.refreshStateFromServer({forceMessages:!0}).finally(()=>{this.state.isStreaming=!1,this.state.streamingMessage=void 0,t.errorMessage&&(this.state.errorMessage=t.errorMessage),this.emitToListeners(e)});return}case`message_end`:case`turn_end`:{let t=e;if(t.messages&&t.messages.length>=this.state.messages.length){this.state.messages=t.messages,this.stateVersion++,this.emitToListeners(e);return}this.refreshStateFromServer().finally(()=>{this.emitToListeners(e)});return}case`messages_replaced`:{let t=e;t.messages&&(this.state.messages=t.messages,this.state.streamingMessage=void 0,this.stateVersion++);break}case`error`:{this.stopPollingState();let t=e.error;this.state.errorMessage=t||`Unknown error`,this.state.isStreaming=!1;break}case`title_updated`:break;case`session_forked`:break;case`message_start`:case`message_update`:case`turn_start`:case`tool_execution_start`:case`tool_execution_end`:case`tool_approval_required`:break}this.emitToListeners(e)}emitToListeners(e){for(let t of this.listeners)try{t(e)}catch{}}startPollingState(){this.pollTimer||this.disposed||(this.pollTimer=setInterval(()=>{this.refreshStateFromServer({notify:!0})},2e3))}stopPollingState(){this.pollTimer&&=(clearInterval(this.pollTimer),null)}async refreshStateFromServer(e){let t=`${this.baseUrl}/api/agents/${encodeURIComponent(this.sessionId)}/state`;try{let n=this.stateVersion,r=await fetch(t);if(!r.ok)return;let i=await r.json();if(!e?.forceMessages&&n!==this.stateVersion)return;let a=!!(i.messages&&(e?.forceMessages||i.messages.length>this.state.messages.length||!this.state.isStreaming&&i.messages.length===this.state.messages.length));if(a&&(this.state.messages=i.messages,this.stateVersion++),i.systemPrompt!==void 0&&(this.state.systemPrompt=i.systemPrompt),i.model&&(this.state.model=i.model),i.thinkingLevel&&(this._syncingThinkingLevel=!0,this.state.thinkingLevel=i.thinkingLevel,this._syncingThinkingLevel=!1),i.tools&&(this.state.tools=i.tools),i.isStreaming!==void 0){let t=this.state.isStreaming;if(this.state.isStreaming=!!i.isStreaming,i.isStreaming?(this.state.errorMessage=void 0,t||this.emitToListeners({type:`agent_start`})):this.stopPollingState(),e?.notify&&t&&!i.isStreaming){this.stateVersion++,this.emitToListeners({type:`agent_end`,messages:this.state.messages});return}}if(e?.notify)if(i.isStreaming&&a){let e=this.state.messages[this.state.messages.length-1];e&&this.emitToListeners({type:`message_update`,message:e})}else i.isStreaming||this.emitToListeners({type:`message_end`})}catch{}}static async create(t,n={}){let r=n.baseUrl??``,i=await fetch(`${r}/api/agents/${encodeURIComponent(t)}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({scope:n.scope??`global`,projectId:n.projectId,yoloMode:n.yoloMode??!1,model:n.model,thinkingLevel:n.thinkingLevel??`off`,messages:n.messages??[],title:n.title??`New chat`})});if(!i.ok){let e=await i.json().catch(()=>({error:`Failed to create agent`}));throw Error(e.error||`Failed to create agent`)}let a={};try{let e=await fetch(`${r}/api/agents/${encodeURIComponent(t)}/state`);e.ok&&(a=await e.json())}catch{}return new e({sessionId:t,baseUrl:r,initialState:{systemPrompt:a.systemPrompt??``,model:a.model??n.model??null,thinkingLevel:a.thinkingLevel??n.thinkingLevel??`off`,messages:a.messages??n.messages??[],tools:[],isStreaming:!!a.isStreaming,errorMessage:a.errorMessage}})}};function b_e(e){let{storageRef:t,activeModelRef:n,yoloModeRef:r,activeProjectRef:i,switchActiveProject:a,sessions:o,refreshSessions:s}=e,c=(0,I.useRef)(null),l=(0,I.useRef)(new Map),u=(0,I.useRef)(`global`),d=(0,I.useRef)(void 0),f=(0,I.useRef)(`New chat`),p=(0,I.useRef)(void 0),m=(0,I.useRef)(null),h=(0,I.useRef)(e.onTaskComplete);(0,I.useEffect)(()=>{h.current=e.onTaskComplete});let[g,_]=(0,I.useState)(null),[v,y]=(0,I.useState)(),[b,x]=(0,I.useState)(`New chat`),[S,C]=(0,I.useState)(`global`),[w,T]=(0,I.useState)(),[E,D]=(0,I.useState)({}),[O,k]=(0,I.useState)(0),A=(0,I.useCallback)(async e=>{if(d.current===e.sessionId){let t=e.agent.state.messages,n=e.title;Yge(n)&&(n=d9(t)),p.current=e.createdAt??new Date().toISOString(),f.current=n,x(n)}await s({broadcast:!0})},[s]),ee=(0,I.useCallback)(e=>{u.current=e.scope,d.current=e.sessionId,p.current=e.createdAt,f.current=e.title,C(e.scope),y(e.sessionId),x(e.title),T(e.project),c.current=e.agent,_(e.agent);let t=new URL(window.location.href);t.searchParams.set(`session`,e.sessionId),window.history.replaceState({},``,t)},[]),j=(0,I.useCallback)(async(e,a=crypto.randomUUID(),o)=>{let c=l.current.get(a);if(c)return o?.attachToView!==!1&&ee(c),c.agent;let p=o?.scope??u.current,g=p===`project`?o?.project??i.current:void 0,_=new Date().toISOString(),{model:v,thinkingLevel:y,tools:b,...S}=e??{},C=t.current,w=C?await M7(C):{},T=v??w.model??n.current,E=C?await xge(C,T):E7(T),O=y??w.thinkingLevel??A7(E);n.current=E;let k=await y_e.create(a,{scope:p,projectId:g?.id,yoloMode:r.current,model:E,thinkingLevel:O,messages:S.messages??[],title:o?.title}),j=k.state.isStreaming?`running`:k.state.errorMessage?`error`:`idle`,te={sessionId:k.sessionId,agent:k,scope:p,project:g,title:o?.title??`New chat`,createdAt:o?.createdAt??_,status:j,startedAt:_,unsubscribe:()=>void 0};return te.unsubscribe=k.subscribe(e=>{if(e.type===`agent_start`&&(te.status=`running`,te.startedAt=te.startedAt??new Date().toISOString(),te.finishedAt=void 0,D(e=>({...e,[te.sessionId]:te.status}))),e.type===`message_end`&&(k.state.messages=[...k.state.messages]),e.type===`agent_end`){let e=te.status===`running`;te.status=k.state.errorMessage?`error`:`idle`,te.finishedAt=new Date().toISOString(),D(e=>({...e,[te.sessionId]:te.status})),A(te).catch(e=>v7.error(`Failed to sync session UI:`,e)),e&&h.current?.(te.sessionId,te.title,te.status)}if(e.type===`title_updated`){let t=e;t.title&&(te.title=t.title),te.sessionId===d.current&&t.title&&(f.current=t.title,x(t.title)),s({broadcast:!0}).catch(e=>v7.error(`Failed to refresh sessions:`,e))}if(e.type===`session_forked`){let t=e;if(!t.targetSessionId)return;s({broadcast:!0}).catch(e=>v7.error(`Failed to refresh sessions:`,e)),m.current?.(t.targetSessionId,{title:t.title,createdAt:t.createdAt,scope:t.scope,projectId:t.projectId??void 0})}}),l.current.set(a,te),te.status!==`idle`&&D(e=>({...e,[te.sessionId]:te.status})),o?.attachToView!==!1&&ee(te),k.state.messages.length>0&&await s({broadcast:!0}),k},[ee,s,A,t,n,r,i]),te=(0,I.useCallback)(async(e,r)=>{let s=l.current.get(e);if(s){if(s.scope===`project`&&s.project?.id&&i.current?.id!==s.project.id)try{await a(s.project.id)}catch(e){v7.error(`Failed to switch project for running session:`,e)}ee(s);return}let c=t.current;if(!c){await j({tools:[]},e,{scope:r?.scope??`global`,attachToView:!0,createdAt:r?.createdAt,title:r?.title});return}let u=await c.sessions.get(e);if(!u)return;let d=o.find(t=>t.id===e)??await c.sessions.getMetadata(e),f=r?.scope??Y7(d??u),p=r?.projectId??d?.projectId??u.projectId,m;if(f===`project`&&p){let e=p;if(i.current?.id!==e)try{m=await a(e)}catch(e){v7.error(`Failed to switch project for session:`,e),alert(`Failed to switch project`);return}else m=i.current}n.current=u.model,await j({model:u.model,thinkingLevel:u.thinkingLevel,messages:u.messages,tools:[]},u.id,{scope:f,project:m,attachToView:!0,createdAt:u.createdAt??r?.createdAt,title:u.title??r?.title})},[ee,j,o,a,t,n,i]);return(0,I.useEffect)(()=>{m.current=te},[te]),{agentRef:c,taskMapRef:l,currentSessionIdRef:d,currentChatScopeRef:u,agent:g,currentSessionId:v,currentTitle:b,chatScope:S,currentToolProject:w,taskStatuses:E,chatPanelRevision:O,createAgent:j,loadSession:te,syncSessionUI:A,setChatPanelRevision:k,setCurrentAgentMessages:(0,I.useCallback)(e=>{c.current&&(c.current.state.messages=e)},[]),updateCurrentAgentModel:(0,I.useCallback)(e=>{c.current&&(c.current.state.model=e,c.current.updateModel(e).catch(e=>{v7.error(`Failed to sync model to server:`,e)}))},[]),setCurrentTitleRef:(0,I.useCallback)(e=>{f.current=e},[])}}var C9=20;function x_e({backendRef:e,expandedProjectIds:t,onBroadcastSessionsChanged:n}){let[r,i]=(0,I.useState)({items:[],total:0,loading:!1}),[a,o]=(0,I.useState)({}),s=(0,I.useRef)(a),c=(0,I.useRef)(t);(0,I.useEffect)(()=>{s.current=a},[a]),(0,I.useEffect)(()=>{c.current=t},[t]);let l=(0,I.useMemo)(()=>[...r.items,...Object.values(a).flatMap(e=>e.items)],[r.items,a]),u=(0,I.useCallback)(async t=>{let n=e.current;if(n){i(e=>({...e,loading:!0}));try{let e=await n.fetchPaginatedFromIndex(`sessions-metadata`,`lastModified`,{direction:`desc`,limit:C9,offset:t,scope:`global`});i(n=>({items:t===0?e.values:[...n.items,...e.values],total:e.total,loading:!1}))}catch{i(e=>({...e,loading:!1}))}}},[e]),d=(0,I.useCallback)(async(t,n)=>{let r=e.current;if(r){o(e=>{let n=e[t];return{...e,[t]:{...n??{items:[],total:0},loading:!0}}});try{let e=await r.fetchPaginatedFromIndex(`sessions-metadata`,`lastModified`,{direction:`desc`,limit:C9,offset:n,scope:`project`,projectId:t});o(r=>{let i=r[t]?.items??[];return{...r,[t]:{items:n===0?e.values:[...i,...e.values],total:e.total,loading:!1}}})}catch{o(e=>{let n=e[t];return{...e,[t]:{...n??{items:[],total:0},loading:!1}}})}}},[e]),f=(0,I.useCallback)(async e=>{await u(0);let t=new Set([...Object.keys(s.current),...c.current]);t.size===0?o({}):(o(e=>{let n={};for(let r of t)n[r]={...e[r]??{items:[],total:0},loading:!0};return n}),await Promise.all([...t].map(e=>d(e,0)))),e?.broadcast&&n?.()},[u,d,n]),p=(0,I.useCallback)(e=>a[e]?.items??[],[a]),m=(0,I.useCallback)(e=>{let t=a[e];return t?t.items.length<t.total:!0},[a]),h=(0,I.useCallback)(e=>a[e]?.loading??!1,[a]),g=(0,I.useCallback)(e=>e in a,[a]),_=(0,I.useCallback)(()=>{u(r.items.length)},[r.items.length,u]),v=(0,I.useCallback)(e=>{let t=a[e];d(e,t?.items.length??0)},[d,a]);return{allLoadedSessions:l,globalSessions:r.items,sessionsForProject:p,globalHasMore:r.items.length<r.total,projectHasMore:m,globalLoading:r.loading,projectLoading:h,projectLoaded:g,loadGlobalSessions:u,loadProjectSessions:d,refreshSessions:f,loadMoreGlobal:_,loadMoreProject:v}}function S_e(){let[e,t]=(0,I.useState)([]),n=(0,I.useCallback)(e=>{t(t=>[...t,{...e,id:crypto.randomUUID(),createdAt:Date.now()}])},[]);return{toasts:e,handleTaskComplete:(0,I.useCallback)((e,t,r)=>{n({sessionId:e,title:t,status:r})},[n]),addToast:n,dismissToast:(0,I.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[])}}function C_e({storageRef:e,backendRef:t,activeModelRef:n,yoloModeRef:r,activeProjectRef:i,taskMapRef:a,loadGlobalSessions:o,loadProject:s,initYoloMode:c,switchActiveProject:l,createAgent:u,setNeedsModelSetup:d}){let[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)();return(0,I.useEffect)(()=>{let f=!1;async function m(){try{let a=await O7();if(f)return;e.current=a,t.current=a.backend,await Qhe(a),await Promise.all([o(0),s()]),r.current=await c(a);let m=await F7(a),h=await M7(a);m&&(n.current=h.model??m);let g=new URLSearchParams(window.location.search).get(`session`);if(g){let e=await a.sessions.get(g);if(e){let t=await a.sessions.getMetadata(e.id),r=Y7(t??e),o;if(r===`project`&&(t?.projectId||e.projectId)){let n=t?.projectId??e.projectId;if(i.current?.id!==n)try{o=await l(n)}catch(e){v7.error(`Failed to switch project for initial session:`,e),alert(Z(`projectSwitchFailed`)),m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0),p(!0);return}else o=i.current}n.current=e.model,await u({model:e.model,thinkingLevel:e.thinkingLevel,messages:e.messages,tools:[]},e.id,{scope:r,project:o,attachToView:!0,createdAt:e.createdAt,title:e.title})}else m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0)}else m?await u({model:h.model??m,thinkingLevel:h.thinkingLevel,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}):d(!0);p(!0)}catch(e){v7.error(`Failed to bootstrap QuickForge:`,e),f||h(Z(`localServiceUnavailableDescription`))}}m();let g=a.current;return()=>{f=!0;for(let e of g.values())e.unsubscribe(),e.agent.dispose();g.clear()}},[e,t,n,r,i,a,o,s,c,l,u,d]),{ready:f,startupError:m}}var w9=()=>({modelId:``,contextWindow:C7.contextWindow,maxTokens:C7.maxTokens,reasoning:!1}),T9=()=>({name:C7.name,baseUrl:C7.baseUrl,apiKey:``,headersJson:`{}`,protocol:`openai-completions`,models:[w9()]}),w_e=class extends B5{providers=[];form=T9();editingProviderId;formOpen=!1;loading=!0;autoEditProviderName=null;async connectedCallback(){if(super.connectedCallback(),await this.loadProviders(),this.autoEditProviderName){let e=this.providers.find(e=>e.name===this.autoEditProviderName);e&&await this.openEditForm(e),this.autoEditProviderName=null}}getTabName(){return Z(`customModels`)}async loadProviders(){this.loading=!0,this.requestUpdate();try{this.providers=await o_().customProviders.getAll()}catch(e){v7.error(`Failed to load custom providers:`,e),this.providers=[]}finally{this.loading=!1,this.requestUpdate()}}openAddForm(){this.editingProviderId=void 0,this.form=T9(),this.formOpen=!0,this.requestUpdate()}async openEditForm(e){let t=await o_().providerKeys.get(e.name)??e.apiKey??``,n=e.models??[],r=n.length>0?n.map(e=>({modelId:e.id,contextWindow:e.contextWindow??C7.contextWindow,maxTokens:e.maxTokens??C7.maxTokens,reasoning:e.reasoning===!0})):[w9()];this.editingProviderId=e.id,this.form={providerId:e.id,id:e.id,name:e.name,baseUrl:e.baseUrl,apiKey:t,headersJson:JSON.stringify(n[0]?.headers??{},null,2),protocol:e.type===`anthropic-messages`?`anthropic-messages`:`openai-completions`,models:r},this.formOpen=!0,this.requestUpdate()}closeForm(){this.formOpen=!1,this.editingProviderId=void 0,this.form=T9(),this.requestUpdate()}updateForm(e,t){this.form={...this.form,[e]:t},this.requestUpdate()}updateModelField(e,t,n){let r=this.form.models.map((r,i)=>i===e?{...r,[t]:n}:r);this.form={...this.form,models:r},this.requestUpdate()}addModelRow(){this.form={...this.form,models:[...this.form.models,w9()]},this.requestUpdate()}removeModelRow(e){let t=this.form.models.filter((t,n)=>n!==e);this.form={...this.form,models:t},this.requestUpdate()}parseHeadersJson(){let e=this.form.headersJson.trim();if(!e)return{};let t;try{t=JSON.parse(e)}catch{return alert(Z(`invalidHeadersJson`)),null}if(!t||typeof t!=`object`||Array.isArray(t))return alert(Z(`invalidHeadersJson`)),null;let n={};for(let[e,r]of Object.entries(t)){if(!e.trim()||typeof r!=`string`)return alert(Z(`invalidHeadersJson`)),null;n[e]=r}return n}buildModel(e,t){let n=this.form.name.trim(),r=this.form.baseUrl.trim(),i=e.reasoning===!0,a=r.includes(`api.deepseek.com`);return E7({id:e.modelId,name:`${e.modelId} (${n})`,api:this.form.protocol,provider:n,baseUrl:r.replace(/\/$/,``),reasoning:i,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:Number(e.contextWindow)||C7.contextWindow,maxTokens:Number(e.maxTokens)||C7.maxTokens,headers:Object.keys(t).length>0?t:void 0,compat:this.form.protocol===`openai-completions`?{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:i,supportsUsageInStreaming:!1,supportsStrictMode:!1,maxTokensField:`max_tokens`,...a&&i?{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`,reasoningEffortMap:{low:`high`,medium:`high`,high:`high`,xhigh:`max`}}:{}}:void 0})}async saveModel(){let e=this.form.name.trim(),t=this.form.baseUrl.trim();if(!e||!t){alert(Z(`fillProviderBaseUrlModel`));return}let n=this.form.models.filter(e=>e.modelId.trim());if(n.length===0){alert(Z(`atLeastOneModel`));return}let r=n.map(e=>e.modelId.trim());if(new Set(r).size!==r.length){alert(Z(`duplicateModelId`));return}let i=this.parseHeadersJson();if(!i)return;let a=n.map(e=>this.buildModel(e,i)),o=this.form.apiKey.trim(),s=this.editingProviderId?this.providers.find(e=>e.id===this.editingProviderId):void 0,c={id:this.editingProviderId??crypto.randomUUID(),name:e,type:this.form.protocol,baseUrl:a[0].baseUrl,apiKey:o||void 0,models:a};try{let e=o_();await e.customProviders.set(c),s&&s.name!==c.name&&await e.providerKeys.delete(s.name),o?await e.providerKeys.set(c.name,o):await e.providerKeys.delete(c.name),this.closeForm(),await this.loadProviders()}catch(e){v7.error(`Failed to save custom model:`,e),alert(Z(`saveCustomModelFailed`))}}async deleteProvider(e){if(confirm(Z(`confirmDeleteProvider`,{name:e.name})))try{let t=o_();await t.customProviders.delete(e.id),await t.providerKeys.delete(e.name),await this.loadProviders()}catch(e){v7.error(`Failed to delete custom provider:`,e),alert(Z(`deleteFailed`))}}renderProvider(e){let t=e.models??[],n=t.length;return N`
2831
2831
  <div class="rounded-lg border border-border p-4">
2832
2832
  <div class="flex items-start justify-between gap-4">
2833
2833
  <div class="min-w-0 flex-1">
@@ -3209,4 +3209,4 @@ ${this.content||``}</pre
3209
3209
  ${this.error?N`<div class="rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive">${this.error}</div>`:null}
3210
3210
  </div>
3211
3211
  `}},F9=`quickforge-service-settings-tab`;customElements.get(F9)||customElements.define(F9,z_e);function I9(){return document.createElement(F9)}function L9(e){return`${e.provider} / ${e.id}`}function R9(e,t){let n=document.createElement(`button`);return n.type=`button`,n.className=e,n.textContent=t,n}var B_e=`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.85 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/><path d="m15 5 4 4"/></svg>`;function z9(e,t,n,r){let i=t.map(e=>({provider:e.provider,id:e.id,model:e})),a=document.createElement(`div`);a.className=`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`;let o=document.createElement(`div`);o.className=`flex max-h-[80vh] w-full max-w-lg flex-col overflow-hidden rounded-lg border border-border bg-background text-foreground shadow-xl`;let s=document.createElement(`div`);s.className=`border-b border-border p-4`;let c=document.createElement(`div`);c.className=`mb-3 flex items-center justify-between gap-3`;let l=document.createElement(`div`);l.className=`text-sm font-semibold`,l.textContent=Z(`selectCustomModel`);let u=R9(`rounded-md px-2 py-1 text-sm text-muted-foreground hover:bg-secondary`,Z(`close`));u.onclick=()=>a.remove(),c.append(l,u);let d=document.createElement(`input`);d.className=`w-full rounded-md border border-input bg-background px-3 py-2 text-sm`,d.placeholder=Z(`searchModels`),s.append(c,d);let f=document.createElement(`div`);f.className=`min-h-0 flex-1 overflow-y-auto`;let p=()=>{let t=d.value.trim().toLowerCase();f.replaceChildren();let o=i.filter(({model:e})=>t?L9(e).toLowerCase().includes(t):!0).sort((t,n)=>{let r=Dd(e,t.model),i=Dd(e,n.model);return r&&!i?-1:!r&&i?1:L9(t.model).localeCompare(L9(n.model))});if(o.length===0){let e=document.createElement(`div`);e.className=`p-8 text-center text-sm text-muted-foreground`,e.textContent=Z(`noMatchingCustomModels`),f.append(e);return}for(let{model:t}of o){let i=R9(`w-full border-b border-border px-4 py-3 text-left hover:bg-muted`,``),o=document.createElement(`div`);o.className=`flex items-center justify-between gap-2`;let s=document.createElement(`div`);s.className=`min-w-0 truncate text-sm font-medium`,s.textContent=t.id;let c=document.createElement(`div`);c.className=`flex shrink-0 items-center gap-1.5`;let l=document.createElement(`div`);if(l.className=`rounded-md border border-border px-2 py-0.5 text-xs text-muted-foreground`,l.textContent=t.provider,c.append(l),r){let e=document.createElement(`button`);e.type=`button`,e.className=`shrink-0 rounded p-0.5 text-muted-foreground hover:bg-secondary hover:text-foreground`,e.innerHTML=B_e,e.setAttribute(`aria-label`,Z(`editModel`)),e.onclick=e=>{e.stopPropagation(),a.remove(),r(t)},c.append(e)}o.append(s,c);let u=document.createElement(`div`);if(u.className=`mt-1 text-xs text-muted-foreground`,u.textContent=`${t.api} · ${t.contextWindow}/${t.maxTokens}`,Dd(e,t)){let e=document.createElement(`span`);e.className=`ml-2 text-green-500`,e.textContent=`✓`,s.append(e)}i.append(o,u),i.onclick=()=>{n(t),a.remove()},f.append(i)}};d.oninput=p,a.onclick=e=>{e.target===a&&a.remove()},o.onclick=e=>e.stopPropagation(),o.append(s,f),a.append(o),document.body.append(a),p(),d.focus()}function V_e({storageRef:e,activeModelRef:t,agentRef:n,createAgent:r,updateCurrentAgentModel:i,setChatPanelRevision:a,needsModelSetup:o,setNeedsModelSetup:s,setRestoredDraft:c,notifySettingsChanged:l}){let u=(0,I.useCallback)(async()=>{let o=e.current;if(!o)return!1;let c=await F7(o);return c?(t.current=c,s(!1),await k7(o,c),n.current?(i(c),a(e=>e+1)):await r({model:c,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}),l(),!0):(s(!0),!1)},[e,t,n,r,i,a,s,l]),d=(0,I.useCallback)(e=>{U5.open([k9(),k_e(),D9(),P9(),I9()],()=>{(o||!n.current)&&u().catch(e=>v7.error(`Failed to activate configured model:`,e))}),window.setTimeout(()=>{let t=document.querySelector(`settings-dialog`);t&&(t.activeTabIndex=e===`defaults`?1:2,t.requestUpdate?.())},0)},[u,o,n]),f=(0,I.useCallback)(()=>{d(`customModels`)},[d]);return{activateConfiguredModel:u,openModelSettings:f,openDefaultOptionsSettings:(0,I.useCallback)(()=>{d(`defaults`)},[d]),activateLiteLlmExampleModel:(0,I.useCallback)(async()=>{let o=e.current;if(!o)return;let c=D7(C7);await Sge(o,C7,c),await k7(o,c),t.current=c,s(!1),n.current?(i(c),a(e=>e+1)):await r({model:c,tools:[]},crypto.randomUUID(),{scope:`global`,attachToView:!0}),l()},[e,t,n,r,i,a,s,l]),openCustomModelSelector:(0,I.useCallback)(async()=>{let r=e.current,o=n.current;if(!r||!o)return;let s=document.querySelector(`agent-interface message-editor textarea`)?.value??``,l=await r.customProviders.getAll();for(let e of l)e.apiKey&&await r.providerKeys.set(e.name,e.apiKey);let u=await P7(r);if(u.length===0){confirm(Z(`addCustomModelFirst`))&&f();return}z9(o.state.model??t.current,u,e=>{let n=e;o.state.model=n,t.current=n,i(n),o.updateModel(n).catch(e=>{v7.error(`Failed to sync model to server:`,e)}),s&&c({id:Date.now(),text:s}),a(e=>e+1),k7(r,n).catch(e=>{v7.error(`Failed to save active model:`,e)})},async e=>{await U5.open([k9(),D9(e.provider),P9(),I9()]);let t=document.querySelector(`settings-dialog`);t&&(t.activeTabIndex=1,t.requestUpdate?.())})},[e,t,n,i,a,c,f])}}function B9(){let e=new URL(window.location.href);e.searchParams.delete(`session`),window.history.replaceState({},``,e)}function H_e({storageRef:e,activeModelRef:t,activeProjectRef:n,currentChatScopeRef:r,currentSessionIdRef:i,taskMapRef:a,agentRef:o,createAgent:s,syncSessionUI:c,setCurrentAgentMessages:l,setChatPanelRevision:u,refreshSessions:d,needsModelSetup:f,switchActiveProject:p,setScheduledTasksOpen:m,setRestoredDraft:h}){return{startNewGlobalChat:(0,I.useCallback)(async()=>{if(f){alert(Z(`modelSetupRequired`));return}m(!1);let e=crypto.randomUUID();B9(),await s({tools:[]},e,{scope:`global`,attachToView:!0})},[s,f,m]),startNewProjectChat:(0,I.useCallback)(async e=>{if(f){alert(Z(`modelSetupRequired`));return}m(!1);let t=e??n.current;if(!t)return;n.current?.id!==t.id&&await p(t.id);let r=crypto.randomUUID();B9(),await s({tools:[]},r,{scope:`project`,project:t,attachToView:!0})},[n,s,f,m,p]),rollbackFromMessage:(0,I.useCallback)(async f=>{let p=o.current;if(!p)return;if(p.state.isStreaming){alert(Z(`generationStillRunning`));return}let m=c9(p.state.messages,f),g=m>=0?p.state.messages[m]:void 0;if(m<0||!g){alert(Z(`noConversationTurnToRollback`));return}if(!window.confirm(Z(`rollbackConfirm`)))return;let _={id:Date.now(),sessionId:p.sessionId,text:l9(g),attachments:g.role===`user-with-attachments`?g.attachments:void 0},v=p.state.messages.slice(0,m);try{v=(await p.rollback(f)).session.messages??v}catch(e){v7.error(`Failed to rollback conversation:`,e),alert(e instanceof Error?e.message:Z(`rollbackFailed`));return}l(v);let y=i.current?a.current.get(i.current):void 0;if(Xge(v)&&y){_&&h(_),u(e=>e+1),c(y).catch(e=>v7.error(`Failed to sync session UI:`,e));return}let b=e.current,x=i.current,S=r.current,C=S===`project`?n.current:void 0,w=p.state.model??t.current,T=p.state.thinkingLevel;if(x){let e=a.current.get(x);e?.unsubscribe(),e?.agent.dispose(),a.current.delete(x)}if(b&&x)try{await b.sessions.delete(x),await d({broadcast:!0})}catch(e){v7.error(`Failed to delete rolled back empty session:`,e)}let E=crypto.randomUUID();await s({model:w,thinkingLevel:T,messages:[],tools:[]},E,{scope:S,project:C,attachToView:!0,title:`New chat`}),h({..._,sessionId:E}),u(e=>e+1)},[t,n,o,s,r,i,d,u,l,h,e,c,a]),copyAnswer:(0,I.useCallback)(async e=>{try{await u9(e)}catch(e){throw v7.error(`Failed to copy answer:`,e),alert(Z(`copyFailed`)),e}},[]),forkFromMessage:(0,I.useCallback)(async i=>{let a=o.current;if(!a)return;if(a.state.isStreaming){alert(Z(`generationStillRunning`));return}let c=a.state.messages.slice(0,i+1);if(!f9(c))return;let l=r.current,u=l===`project`?n.current:void 0,f=crypto.randomUUID(),p=d9(c),m=e.current;await s({model:a.state.model??t.current,thinkingLevel:a.state.thinkingLevel,messages:c,tools:[]},f,{scope:l,project:u,attachToView:!0,title:p}),m&&d({broadcast:!0}).catch(e=>v7.error(`Failed to refresh sessions:`,e))},[t,n,o,s,r,d,e])}}var V9=oe();function U_e({options:e,onResolve:t}){let n=(0,I.useRef)(null);return(0,I.useEffect)(()=>{n.current?.focus();let e=e=>{e.key===`Escape`&&t(!1),e.key===`Enter`&&t(!0)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t]),(0,V9.createPortal)((0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onClick:e=>{e.target===e.currentTarget&&t(!1)},children:(0,Q.jsxs)(`div`,{className:p7(`w-full max-w-sm rounded-lg border border-border bg-background p-6 shadow-lg`,`mx-4`),children:[(0,Q.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:e.title}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.description}),(0,Q.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,Q.jsx)(m7,{ref:n,variant:`outline`,size:`sm`,onClick:()=>t(!1),children:e.cancelLabel??`Cancel`}),(0,Q.jsx)(m7,{variant:`destructive`,size:`sm`,onClick:()=>t(!0),children:e.confirmLabel??`Delete`})]})]})}),document.body)}function H9(e){return new Promise(t=>{let n=document.createElement(`div`);document.body.appendChild(n);let r=(0,ye.createRoot)(n);function i(){r.unmount(),setTimeout(()=>n.remove(),0)}function a(e){i(),t(e)}r.render((0,Q.jsx)(U_e,{options:e,onResolve:a}))})}function W_e({projects:e,activeProjectRef:t,refreshSessions:n,notifyProjectsChanged:r,setActiveProject:i,setProjects:a,setExpandedProjectIds:o,setChatPanelRevision:s}){return{deleteProjectInline:(0,I.useCallback)(async c=>{let l=e.find(e=>e.id===c);if(!await H9({title:Z(`deleteProject`),description:Z(`deleteProjectConfirm`,{name:l?.name??c}),confirmLabel:Z(`confirmDelete`),cancelLabel:Z(`cancel`)}))return;let u=await fetch(`/api/project/${encodeURIComponent(c)}`,{method:`DELETE`}),d=await u.json().catch(()=>null);if(!u.ok)throw Error(d?.error||`Failed to delete project`);i(d.project),a(d.projects),o(e=>{let t=new Set(e);return t.delete(c),t}),await n({broadcast:!0}),r(),t.current?.id===c&&(t.current=d.project,s(e=>e+1))},[e,t,n,r,i,a,o,s])}}var U9=I.forwardRef(({className:e,type:t,...n},r)=>(0,Q.jsx)(`input`,{type:t,className:p7(`flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n}));U9.displayName=`Input`;function G_e({options:e,onResolve:t}){let n=(0,I.useRef)(null),[r,i]=(0,I.useState)(e.defaultValue??``),a=(0,I.useRef)(r);return(0,I.useEffect)(()=>{a.current=r},[r]),(0,I.useEffect)(()=>{n.current?.focus(),n.current?.select()},[]),(0,I.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t(null),e.key===`Enter`&&a.current.trim()&&t(a.current.trim())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[t]),(0,V9.createPortal)((0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onClick:e=>{e.target===e.currentTarget&&t(null)},children:(0,Q.jsxs)(`div`,{className:p7(`w-full max-w-sm rounded-lg border border-border bg-background p-6 shadow-lg`,`mx-4`),children:[(0,Q.jsx)(`h2`,{className:`text-base font-semibold text-foreground`,children:e.title}),e.description?(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.description}):null,(0,Q.jsx)(`div`,{className:`mt-4`,children:(0,Q.jsx)(U9,{ref:n,value:r,onChange:e=>i(e.target.value),placeholder:e.placeholder,className:`w-full`})}),(0,Q.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,Q.jsx)(m7,{variant:`outline`,size:`sm`,onClick:()=>t(null),children:e.cancelLabel??`Cancel`}),(0,Q.jsx)(m7,{size:`sm`,onClick:()=>r.trim()?t(r.trim()):void 0,disabled:!r.trim(),children:e.confirmLabel??`Save`})]})]})}),document.body)}function K_e(e){return new Promise(t=>{let n=document.createElement(`div`);document.body.appendChild(n);let r=(0,ye.createRoot)(n);function i(){r.unmount(),setTimeout(()=>n.remove(),0)}function a(e){i(),t(e)}r.render((0,Q.jsx)(G_e,{options:e,onResolve:a}))})}function q_e({storageRef:e,taskMapRef:t,currentSessionIdRef:n,loadAgentSession:r,setCurrentTitleRef:i,refreshSessions:a,setScheduledTasksOpen:o,startNewGlobalChat:s}){return{loadSession:(0,I.useCallback)(e=>{o(!1),r(e)},[r,o]),renameSession:(0,I.useCallback)(async(t,r)=>{let o=e.current;if(!o)return;let s=await K_e({title:Z(`renameSession`),description:Z(`sessionName`),defaultValue:r,confirmLabel:Z(`save`),cancelLabel:Z(`cancel`)});if(!s||s===r)return;let c=await o.sessions.get(t);if(!c)return;let l=await o.sessions.getMetadata(t);l&&(await o.sessions.save(c,{...l,title:s}),await a({broadcast:!0}),n.current===t&&i(s))},[n,a,i,e]),deleteSession:(0,I.useCallback)(async r=>{let i=e.current;if(!i||!await H9({title:Z(`deleteSession`),description:Z(`deleteSessionConfirm`),confirmLabel:Z(`confirmDelete`),cancelLabel:Z(`cancel`)}))return;let c=t.current.get(r);c?.unsubscribe(),c?.agent.dispose(),t.current.delete(r),await i.sessions.delete(r),await a({broadcast:!0}),n.current===r&&(o(!1),await s())},[n,a,o,s,e,t]),startNewGlobalSession:(0,I.useCallback)(()=>{o(!1),s()},[o,s])}}function J_e({storageRef:e,yoloModeRef:t,setYoloMode:n,agentRef:r,activeProjectRef:i,setChatPanelRevision:a,notifySettingsChanged:o}){let s=(0,I.useCallback)((e,t)=>{e&&e.updateYoloMode(t).then(()=>{a(e=>e+1)}).catch(e=>{v7.error(`Failed to sync YOLO mode to server:`,e)})},[a]);return{toggleYoloMode:(0,I.useCallback)(()=>{let a=e.current,c=r.current,l=i.current?.id;n(e=>{let n=!e;return t.current=n,a&&I7(a,n,l).catch(e=>{v7.error(`Failed to save YOLO mode:`,e)}),s(c,n),n}),o()},[r,i,o,n,e,s,t])}}function Y_e(e){return e===`running`||e===`idle`||e===`error`||e===`aborted`?e:void 0}function X_e(e){let[t,n]=(0,I.useState)({}),r=(0,I.useMemo)(()=>new Set(e.map(e=>e.id)),[e]),i=(0,I.useMemo)(()=>e.map(e=>e.id).sort().join(`
3212
- `),[e]),a=(0,I.useCallback)(async()=>{if(r.size===0){n({});return}try{let e=await v_e(),t=new Map(e.map(e=>[e.sessionId,Y_e(e.status)]).filter(e=>!!e[1]));n(e=>{let n={};for(let i of r){let r=t.get(i),a=e[i];r?n[i]=r:a===`running`?n[i]=`idle`:a&&a!==`idle`&&(n[i]=a)}return n})}catch(e){v7.error(`Failed to refresh visible agent statuses:`,e)}},[r]);return(0,I.useEffect)(()=>{let e=window.setTimeout(()=>{a()},0);return()=>window.clearTimeout(e)},[a,i]),(0,I.useEffect)(()=>S9(e=>{let t=e.sessionId;if(!(!t||!r.has(t))){if(e.type===`agent_start`){n(e=>({...e,[t]:`running`}));return}if(e.type===`agent_end`){let r=e.errorMessage?`error`:`idle`;n(e=>({...e,[t]:r}))}}}),[r]),(0,I.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&a()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[a]),t}function Z_e({toast:e,onDismiss:t,onClick:n}){let[r,i]=(0,I.useState)(!1),[o,s]=(0,I.useState)(!1);(0,I.useEffect)(()=>{let n=window.setTimeout(()=>i(!0),10),r=window.setTimeout(()=>{s(!0),window.setTimeout(()=>t(e.id),200)},5e3);return()=>{window.clearTimeout(n),window.clearTimeout(r)}},[e.id,t]);let c=()=>{s(!0),window.setTimeout(()=>t(e.id),200)},l=e.status===`error`;return(0,Q.jsxs)(`div`,{role:`alert`,onClick:()=>n(e.sessionId),className:p7(`pointer-events-auto flex w-80 cursor-pointer items-start gap-3 rounded-xl border border-border bg-background p-3 shadow-lg transition-all duration-200 ease-out`,r&&!o?`translate-x-0 opacity-100`:`translate-x-4 opacity-0`),children:[(0,Q.jsx)(`div`,{className:`mt-0.5 shrink-0`,children:l?(0,Q.jsx)(p,{className:`size-5 text-destructive`}):(0,Q.jsx)(a,{className:`size-5 text-emerald-500`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground/90`,children:e.title}),(0,Q.jsx)(`p`,{className:`mt-0.5 line-clamp-3 text-xs text-muted-foreground`,children:e.message||Z(l?`taskError`:`taskCompleted`)})]}),(0,Q.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},className:`shrink-0 rounded-md p-0.5 text-muted-foreground/60 transition-colors hover:text-foreground`,"aria-label":Z(`close`),children:(0,Q.jsx)(D,{className:`size-4`})})]})}function Q_e({toasts:e,onDismiss:t,onClick:n}){return e.length===0?null:(0,Q.jsx)(`div`,{className:`pointer-events-none fixed right-4 top-4 z-50 flex flex-col gap-2`,children:e.map(e=>(0,Q.jsx)(Z_e,{toast:e,onDismiss:t,onClick:n},e.id))})}async function W9(e,t){let n=await fetch(e,{...t,cache:`no-store`,headers:{...t?.body?{"content-type":`application/json`}:void 0,...t?.headers}}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}function $_e(){let e=()=>Array.from({length:6},()=>`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[Math.floor(Math.random()*32)]).join(``);return`${e()}-${e()}`}function eve(e=24){return new Date(Date.now()+e*60*60*1e3).toISOString()}async function tve(e){return W9(`/api/shares`,{method:`POST`,body:JSON.stringify(e)})}async function G9(e){return W9(`/api/shares${e?`?sessionId=${encodeURIComponent(e)}`:``}`)}async function nve(e){return W9(`/api/shares/${encodeURIComponent(e)}`,{method:`DELETE`})}async function rve(e,t=``){return W9(`/api/shared/${encodeURIComponent(e)}/unlock`,{method:`POST`,body:JSON.stringify({password:t})})}async function ive(e){return W9(`/api/shared/${encodeURIComponent(e)}/models`)}function ave({open:e,sessionId:t,title:n,onOpenChange:r}){let a=(0,I.useId)(),[o,s]=(0,I.useState)(`read`),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(`24h`),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(``),[g,_]=(0,I.useState)([]),[v,y]=(0,I.useState)(!1),[b,x]=(0,I.useState)(),C=(0,I.useMemo)(()=>{if(u!==`never`)return eve(u===`1h`?1:u===`7d`?168:24)},[u]);if((0,I.useEffect)(()=>{!e||!t||G9(t).then(e=>_(e.shares)).catch(e=>x(e instanceof Error?e.message:`Failed to load shares`))},[e,t]),!e)return null;let w=o===`operate`,E=!!t&&(o!==`operate`||f&&c.trim()),D=async()=>{if(!(!t||!E)){if(w&&!c.trim()){x(`可操作分享必须设置密码。`);return}y(!0),x(void 0);try{let e=await tve({sessionId:t,permission:o,password:c.trim(),expiresAt:C});h(e.url),await u9(e.url),p(!1),_((await G9(t)).shares)}catch(e){x(e instanceof Error?e.message:`Failed to create share`)}finally{y(!1)}}},O=async e=>{let t=e.url||`${window.location.origin}/share/${encodeURIComponent(e.id)}`;h(t),await u9(t)},k=async e=>{try{await nve(e),_(t=>t.map(t=>t.id===e?{...t,revokedAt:new Date().toISOString()}:t))}catch(e){x(e instanceof Error?e.message:`Failed to revoke share`)}};return(0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,onMouseDown:e=>{e.target===e.currentTarget&&r(!1)},children:(0,Q.jsxs)(`div`,{className:`flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-border bg-background shadow-2xl`,onMouseDown:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`shrink-0 border-b border-border px-5 py-4`,children:[(0,Q.jsx)(`h2`,{className:`text-base font-semibold`,children:`分享到局域网`}),(0,Q.jsxs)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:[`当前对话:`,n,`。同一个对话只会有一个固定分享链接;只读分享密码可选,可操作分享必须设置密码。`]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`mb-2 text-sm font-medium`,children:`权限`}),(0,Q.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:`rounded-xl border p-3 text-left text-sm ${o===`read`?`border-primary bg-primary/10`:`border-border`}`,onClick:()=>s(`read`),children:[(0,Q.jsx)(`div`,{className:`font-medium`,children:`仅阅读`}),(0,Q.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:`只能查看这一个对话。`})]}),(0,Q.jsxs)(`button`,{type:`button`,className:`rounded-xl border p-3 text-left text-sm ${o===`operate`?`border-red-400 bg-red-50 text-red-950`:`border-border`}`,onClick:()=>s(`operate`),children:[(0,Q.jsx)(`div`,{className:`font-medium text-red-700`,children:`可操作(高危)`}),(0,Q.jsx)(`div`,{className:`mt-1 text-xs text-red-700`,children:`允许对方操作这个原对话,禁止 Fork。`})]})]})]}),o===`operate`?(0,Q.jsxs)(`div`,{className:`rounded-xl border border-red-300 bg-red-50 p-3 text-sm text-red-900`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2 font-semibold`,children:[(0,Q.jsx)(A,{className:`mt-0.5 size-4`}),`高危可操作权限`]}),(0,Q.jsx)(`p`,{className:`mt-2 text-xs leading-5`,children:`拥有链接和密码的人只能操作这一个原对话,但对方的消息、停止生成、回滚、模型/思考等级选择、YOLO 状态下可用工具等操作会按正常对话权限直接影响你的本机原对话。可操作分享必须设置密码。`}),(0,Q.jsxs)(`label`,{className:`mt-3 flex items-center gap-2 text-xs font-medium`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked)}),`我已了解风险,仍然允许可操作权限。`]})]}):null,(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{htmlFor:a,className:`block text-sm font-medium`,children:w?`密码(可操作必填)`:`密码(可选)`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,Q.jsx)(`input`,{id:a,value:c,onChange:e=>l(e.target.value),className:`h-10 w-full min-w-0 rounded-md border border-input bg-background px-3 text-sm`,placeholder:w?`可操作分享必须设置密码`:`留空则打开链接无需密码`}),(0,Q.jsxs)(m7,{variant:`outline`,className:`h-10 sm:shrink-0`,onClick:()=>l($_e()),children:[(0,Q.jsx)(T,{className:`mr-2 size-4`}),`生成密码`]})]}),(0,Q.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:w?`可操作分享必须设置非空密码;修改密码后旧密码和已解锁状态会失效。`:`留空保存会取消密码保护;填写新密码保存后旧密码和已解锁状态会失效。`})]}),(0,Q.jsxs)(`label`,{className:`block text-sm font-medium`,children:[`有效期`,(0,Q.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),className:`mt-2 h-10 w-full rounded-md border border-input bg-background px-3 text-sm`,children:[(0,Q.jsx)(`option`,{value:`1h`,children:`1 小时`}),(0,Q.jsx)(`option`,{value:`24h`,children:`24 小时`}),(0,Q.jsx)(`option`,{value:`7d`,children:`7 天`}),(0,Q.jsx)(`option`,{value:`never`,children:`永久,需手动撤销`})]})]}),m?(0,Q.jsxs)(`div`,{className:`rounded-xl border border-emerald-300 bg-emerald-50 p-3 text-sm text-emerald-900`,children:[`已复制到剪切板。`,(0,Q.jsx)(`pre`,{className:`mt-2 max-h-36 overflow-auto whitespace-pre-wrap text-xs`,children:m})]}):null,b?(0,Q.jsx)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:b}):null,g.length?(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`mb-2 text-sm font-medium`,children:`已有分享`}),(0,Q.jsx)(`div`,{className:`space-y-2`,children:g.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border p-2 text-xs`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate font-mono`,children:e.id}),(0,Q.jsxs)(`div`,{className:`text-muted-foreground`,children:[e.permission===`operate`?`可操作`:`只读`,` · `,e.hasPassword?`有密码`:`无密码`,` · `,e.revokedAt?`已撤销`:e.expiresAt?`到期 ${new Date(e.expiresAt).toLocaleString()}`:`永久`]})]}),e.revokedAt?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:()=>void O(e),"aria-label":`复制分享链接`,title:`复制分享链接`,children:(0,Q.jsx)(i,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:`text-destructive`,onClick:()=>void k(e.id),"aria-label":`撤销分享`,title:`撤销分享`,children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id))})]}):null]})}),(0,Q.jsx)(`div`,{className:`shrink-0 border-t border-border px-5 py-4`,children:(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(m7,{variant:`outline`,onClick:()=>r(!1),children:Z(`cancel`)}),(0,Q.jsxs)(m7,{variant:o===`operate`?`destructive`:`default`,disabled:!E||v,onClick:()=>void D(),title:o===`operate`&&!c.trim()?`可操作分享必须设置密码`:void 0,children:[(0,Q.jsx)(i,{className:`mr-2 size-4`}),o===`operate`?`保存配置并复制高危可操作链接`:`保存配置并复制链接`]})]})})]})})}var K9=`quickforgeClientMessageId`;function q9(e){let t=e?.metadata;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}function J9(e){let t=q9(e)?.[K9];return typeof t==`string`&&t?t:void 0}function ove(){return`qfcm_${typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}`}function sve(e){let t=J9(e);if(t)return{message:e,clientMessageId:t};let n=ove();return{message:{...e,metadata:{...q9(e),[K9]:n}},clientMessageId:n}}function Y9(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`text`).map(e=>e.text).filter(e=>typeof e==`string`).join(``):``}function cve(e,t){if(!e||!t||e.role!==t.role)return!1;let n=J9(e),r=J9(t);return n&&r?n===r:Y9(e.content)===Y9(t.content)}async function X9(e,t){let n=await fetch(e,{...t,cache:`no-store`,headers:{...t?.body?{"content-type":`application/json`}:void 0,...t?.headers}}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}var Z9=class e{state;streamFn=Df;getApiKey;sessionId;shareId;permission;listeners=new Set;eventSource=null;disposed=!1;reconnectTimer=null;reconnectDelay=1e3;baseUrl=``;syncingThinkingLevel=!1;constructor(e,t){this.shareId=e,this.sessionId=t.sessionId||t.id||e,this.permission=t.permission??`read`;let n={systemPrompt:t.systemPrompt??``,model:t.model??{provider:`shared`,id:`shared`},thinkingLevel:t.thinkingLevel??`off`,messages:t.messages?.slice()??[],tools:t.tools??[],isStreaming:!!t.isStreaming,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:t.errorMessage};this.state=new Proxy(n,{set:(e,t,n)=>{let r=e[t];return e[t]=n,t===`thinkingLevel`&&!this.syncingThinkingLevel&&n!==r&&this.updateThinkingLevel(n).catch(e=>{v7.error(`Failed to update shared thinking level:`,e)}),!0}}),this.connectEvents()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async prompt(e){if(this.disposed||this.permission!==`operate`)return;let{message:t,clientMessageId:n}=sve(this.normalizeInput(e));this.state.messages=[...this.state.messages,t],this.emit({type:`message_start`,message:t}),this.state.isStreaming||(this.state.isStreaming=!0,this.state.errorMessage=void 0,this.emit({type:`agent_start`}));try{await X9(`/api/shared/${encodeURIComponent(this.shareId)}/message`,{method:`POST`,body:JSON.stringify({message:t,clientMessageId:n})})}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.state.isStreaming=!1,this.emit({type:`error`,error:t}),this.emit({type:`agent_end`,messages:this.state.messages}),e}}async updateModel(e){if(!(this.disposed||this.permission!==`operate`)){this.state.model=e;try{let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/model`,{method:`POST`,body:JSON.stringify({model:e})});t.model&&(this.state.model=t.model)}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.emit({type:`error`,error:t}),e}}}async updateThinkingLevel(e){if(!(this.disposed||this.permission!==`operate`)){!this.syncingThinkingLevel&&this.state.thinkingLevel!==e&&(this.state.thinkingLevel=e);try{let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/thinking-level`,{method:`POST`,body:JSON.stringify({thinkingLevel:e})});t.thinkingLevel&&(this.state.thinkingLevel=t.thinkingLevel)}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.emit({type:`error`,error:t}),e}}}abort(){this.permission===`operate`&&fetch(`/api/shared/${encodeURIComponent(this.shareId)}/abort`,{method:`POST`}).catch(e=>{v7.error(`Failed to abort shared conversation:`,e)})}steer(){}followUp(){}reset(){this.state.messages=[],this.state.errorMessage=void 0,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.state.pendingToolCalls=new Set}async rollback(e){if(this.permission!==`operate`)return;let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/rollback`,{method:`POST`,body:JSON.stringify({messageIndex:e})});return this.applyState(t.session),this.emit({type:`messages_replaced`,messages:this.state.messages}),t}dispose(){this.disposed=!0,this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.eventSource?.close(),this.eventSource=null,this.listeners.clear()}static async loadState(e){return X9(`/api/shared/${encodeURIComponent(e)}/session`)}static async create(t){return new e(t,await e.loadState(t))}normalizeInput(e){return typeof e==`string`?{role:`user`,content:e,timestamp:Date.now()}:Array.isArray(e)?[...e].reverse().find(e=>e.role===`user`||e.role===`user-with-attachments`)??e[e.length-1]:e}connectEvents(){this.disposed||(this.eventSource?.close(),this.baseUrl=``,this.openEventSource())}openEventSource(){if(this.disposed)return;let e=`${this.baseUrl}/api/shared/${encodeURIComponent(this.shareId)}/events`;this.eventSource=new EventSource(e,{withCredentials:!0}),this.eventSource.onopen=()=>{this.reconnectDelay=1e3};let t=[`state`,`agent_start`,`agent_end`,`message_start`,`message_end`,`turn_start`,`turn_end`,`message_update`,`tool_execution_start`,`tool_execution_update`,`tool_execution_end`,`error`,`title_updated`,`messages_replaced`],n=e=>t=>{try{let n=JSON.parse(t.data);this.handleEvent(e?{type:e,...n}:n)}catch{}};this.eventSource.onmessage=n();for(let e of t)this.eventSource.addEventListener(e,n(e));this.eventSource.onerror=()=>{this.eventSource?.close(),this.eventSource=null,this.scheduleReconnect()}}scheduleReconnect(){this.disposed||this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4),this.openEventSource()},this.reconnectDelay))}handleEvent(e){if(e.type){switch(e.type){case`state`:this.applyState(e);break;case`agent_start`:this.state.isStreaming=!0,this.state.errorMessage=void 0;break;case`agent_end`:this.state.isStreaming=!1,this.state.streamingMessage=void 0;break;case`message_start`:if(e.message){let t=this.state.messages.findIndex(t=>cve(t,e.message));if(t>=0){let n=this.state.messages.slice();n[t]=e.message,this.state.messages=n}else this.state.messages=[...this.state.messages,e.message]}break;case`message_update`:e.message&&(this.state.streamingMessage=e.message);break;case`message_end`:if(e.message){let t=this.state.messages.slice(),n=t.length-1;n>=0&&t[n]?.role===e.message.role?t[n]=e.message:t.push(e.message),this.state.messages=t}this.state.streamingMessage=void 0;break;case`messages_replaced`:e.messages&&(this.state.messages=e.messages,this.state.streamingMessage=void 0);break;case`error`:this.state.errorMessage=typeof e.error==`string`?e.error:`Unknown error`,this.state.isStreaming=!1;break}this.emit(e)}}applyState(e){this.sessionId=e.sessionId||e.id||this.sessionId,e.messages&&(this.state.messages=e.messages),e.systemPrompt!==void 0&&(this.state.systemPrompt=e.systemPrompt),e.model&&(this.state.model=e.model),e.thinkingLevel&&(this.syncingThinkingLevel=!0,this.state.thinkingLevel=e.thinkingLevel,this.syncingThinkingLevel=!1),e.tools&&(this.state.tools=e.tools),e.isStreaming!==void 0&&(this.state.isStreaming=!!e.isStreaming),e.errorMessage!==void 0&&(this.state.errorMessage=e.errorMessage)}emit(e){for(let t of this.listeners)try{t(e)}catch{}}};function lve(e){return{id:`shared-${e.provider}`,name:e.provider,type:e.api,baseUrl:e.baseUrl??``,models:[e]}}async function Q9(e,t){try{let t=await ive(e);if(t.providers?.length)return t.providers}catch{}return t?[lve(t)]:[]}function uve(e,t){let n=t.model??{provider:`shared`,id:`shared`};return new Z9(e,{...t,model:n,thinkingLevel:t.thinkingLevel??A7(n)})}function $9(e,t){let n={settings:new $5,providerKeys:new Z5,sessions:new Q5,customProviders:new X5},r=new g7(``,{blockedStores:[`sessions`,`provider-keys`],fakeProviderKeys:t?[t.provider]:void 0,storeOverrides:t?{"custom-providers":{keys:async()=>(await Q9(e,t)).map(e=>e.name),get:async n=>(await Q9(e,t)).find(e=>e.name===n)??null,has:async n=>(await Q9(e,t)).some(e=>e.name===n)}}:void 0});n.settings.setBackend(r),n.providerKeys.setBackend(r),n.sessions.setBackend(r),n.customProviders.setBackend(r),s_(new i_(n.settings,n.providerKeys,n.sessions,n.customProviders,r))}function dve({shareId:e}){let[t,n]=(0,I.useState)(``),[r,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(`read`),[c,l]=(0,I.useState)(`QuickForge 分享对话`),[u,d]=(0,I.useState)(),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(),g=(0,I.useRef)(!1),_=o===`operate`,v=!!r,y=!!r?.state.tools?.length;(0,I.useEffect)(()=>{$9(e,r?.state.model)},[r?.state.model,e]),(0,I.useEffect)(()=>()=>r?.dispose(),[r]);let b=(0,I.useCallback)(async(n=t.trim())=>{d(void 0),p(!0);try{let t=await rve(e,n);s(t.permission),l(t.title||t.share.titleSnapshot||`QuickForge 分享对话`);let r=await Z9.loadState(e);$9(e,r.model),a(uve(e,r))}catch(e){d(e instanceof Error?e.message:`Failed to unlock shared conversation`)}finally{p(!1)}},[t,e]);(0,I.useEffect)(()=>{if(v||f||g.current)return;g.current=!0;let e=window.setTimeout(()=>{b(``)},0);return()=>window.clearTimeout(e)},[f,b,v]);let x=(0,I.useCallback)(async e=>{await u9(e)},[]),S=(0,I.useCallback)(async()=>{if(!(!r||r.permission!==`operate`))try{let t=(await Q9(e,r.state.model)).flatMap(e=>e.models??[]);if(!t.length)return;z9(r.state.model,t,t=>{$9(e,t),r.updateModel(t).catch(e=>{d(e instanceof Error?e.message:`Failed to update model`)})})}catch(e){d(e instanceof Error?e.message:`Failed to load models`)}},[r,e]),C=(0,I.useCallback)(async e=>{if(!r||r.permission!==`operate`)return;if(d(void 0),r.state.isStreaming){alert(Z(`generationStillRunning`));return}let t=c9(r.state.messages,e),n=t>=0?r.state.messages[t]:void 0;if(!n){alert(Z(`noConversationTurnToRollback`));return}if(window.confirm(`确定回滚这个原对话吗?该操作会直接影响分享者本机中的这一个对话。该消息及其之后的对话记录会被移除,消息内容会恢复到输入框。`))try{await r.rollback(e),h({id:Date.now(),sessionId:r.sessionId,text:l9(n),attachments:n.role===`user-with-attachments`?n.attachments:void 0})}catch(e){d(e instanceof Error?e.message:`Failed to roll back`)}},[r]);return v?(0,Q.jsxs)(`div`,{className:`flex h-screen min-h-0 flex-col bg-background text-foreground`,children:[(0,Q.jsx)(`header`,{className:p7(`shrink-0 border-b px-4 py-3`,_?`border-red-300 bg-red-50 text-red-950`:`border-border bg-card`),children:(0,Q.jsxs)(`div`,{className:`mx-auto flex max-w-4xl items-start gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:c}),(0,Q.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs`,children:[(0,Q.jsxs)(`span`,{className:p7(`inline-flex items-center gap-1 rounded-full px-2 py-0.5 font-medium`,_?`bg-red-100 text-red-700`:`bg-muted text-muted-foreground`),children:[_?(0,Q.jsx)(A,{className:`size-3.5`}):null,_?`高危可操作`:`只读分享`]}),(0,Q.jsx)(`span`,{className:p7(_?`text-red-800`:`text-muted-foreground`),children:_?`正在操作分享者的原始对话`:`只能查看,不能发送或修改`})]}),_?null:(0,Q.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:`界面与正常对话保持一致`})]}),(0,Q.jsxs)(m7,{variant:`ghost`,size:`sm`,className:p7(`shrink-0`,_?`text-red-700 hover:bg-red-100 hover:text-red-800`:void 0),onClick:()=>void u9(window.location.href),"aria-label":_?`复制高危分享链接`:`复制分享链接`,title:_?`复制高危分享链接`:`复制分享链接`,children:[(0,Q.jsx)(i,{className:`size-4`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:_?`复制高危链接`:`复制链接`})]})]})}),u?(0,Q.jsx)(`div`,{className:`mx-auto w-full max-w-4xl px-4 py-2 text-sm text-destructive`,children:u}):null,(0,Q.jsx)(v9,{agent:r,revision:0,yoloMode:y,workspaceToolsEnabled:y,onModelSelect:S,onToggleYoloMode:()=>void 0,onRollbackFromMessage:C,onCopyAnswer:x,onForkFromMessage:()=>void 0,onApproveToolCall:()=>void 0,onRejectToolCall:()=>void 0,disableFork:!0,readOnly:!_,restoredDraft:m,bypassClientApiKeyCheck:!0})]}):(0,Q.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-md rounded-2xl border border-border bg-card p-6 shadow-xl`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,Q.jsx)(A,{className:`size-5 text-amber-500`}),`QuickForge 局域网对话分享`]}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`如果分享者设置了密码,请输入密码。未设置密码的链接会自动打开。`}),(0,Q.jsx)(`input`,{type:`password`,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Enter`&&b()},className:`mt-5 h-10 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus:border-primary`,placeholder:`密码`,autoFocus:!0}),u?(0,Q.jsx)(`div`,{className:`mt-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:u}):null,(0,Q.jsx)(m7,{className:`mt-5 w-full`,onClick:()=>void b(),disabled:f||!t.trim(),children:f?Z(`loading`):`用密码打开分享对话`})]})})}function fve(e){return e===`idle`||e===`running`||e===`error`||e===`aborted`}function pve(e){return e.type===`scheduled_task_notification`}function mve(e){return e.type===`scheduled_task_started`}function hve(){let e=(0,I.useRef)(null),t=(0,I.useRef)(D7(C7)),n=(0,I.useRef)(!1),r=(0,I.useRef)(void 0),{activeProject:i,projects:a,expandedProjectIds:o,selectingProject:s,projectPickerOpen:c,loadProject:l,switchActiveProject:u,handleSelectProjectPath:d,selectProjectDirectory:f,setProjectPickerOpen:p,toggleProjectExpanded:m,setActiveProject:h,setProjects:g,setExpandedProjectIds:_}=p_e(),{yoloMode:y,setYoloMode:b,initialize:x,loadForProject:S}=m_e(),[C,w]=(0,I.useState)(!0),[T,E]=(0,I.useState)(!1),[D,k]=(0,I.useState)(!1),[A,j]=(0,I.useState)(!1),[te,ne]=(0,I.useState)(),[re,M]=(0,I.useState)(!1),[ie,ae]=(0,I.useState)(),[oe,se]=(0,I.useState)(!1),{toasts:ce,handleTaskComplete:le,addToast:N,dismissToast:P}=S_e(),ue=(0,I.useRef)(null),de=(0,I.useRef)(null),{allLoadedSessions:fe,globalSessions:pe,sessionsForProject:F,globalHasMore:me,projectHasMore:he,globalLoading:ge,projectLoading:_e,projectLoaded:ve,loadGlobalSessions:ye,loadProjectSessions:be,refreshSessions:xe,loadMoreGlobal:Se,loadMoreProject:Ce}=x_e({backendRef:de,expandedProjectIds:o,onBroadcastSessionsChanged:(0,I.useCallback)(()=>ue.current?.notifySessionsChanged(),[])}),we=g_e({onSessionsChanged:()=>{xe()},onProjectsChanged:()=>{l()},onSettingsChanged:()=>{xe()}});(0,I.useEffect)(()=>{n.current=y},[y]),(0,I.useEffect)(()=>{r.current=i},[i]),(0,I.useEffect)(()=>{let t=e.current;t&&S(t,i?.id)},[i,S,e]),(0,I.useEffect)(()=>{ue.current=we},[we]);let Te=b_e({storageRef:e,activeModelRef:t,yoloModeRef:n,activeProjectRef:r,switchActiveProject:u,sessions:fe,refreshSessions:xe,onTaskComplete:le}),{createAgent:L,loadSession:Ee,syncSessionUI:De,setCurrentAgentMessages:Oe,updateCurrentAgentModel:ke,setChatPanelRevision:Ae,setCurrentTitleRef:je,agentRef:Me,taskMapRef:Ne,currentSessionIdRef:Pe,currentChatScopeRef:Fe}=Te,Ie=(0,I.useCallback)(e=>{e&&(M(!1),Ee(e))},[Ee]);(0,I.useEffect)(()=>S9(e=>{if(mve(e)){let t=typeof e.projectId==`string`?e.projectId:void 0;t&&(_(e=>{let n=new Set(e);return n.add(t),n}),be(t,0)),xe({broadcast:!0});return}if(!pve(e))return;let t=typeof e.sessionId==`string`?e.sessionId:void 0,n=typeof e.title==`string`?e.title:Z(`scheduledTasks`),r=fve(e.status)?e.status:`idle`,i=typeof e.message==`string`?e.message:void 0;N({sessionId:t??``,title:n,status:r,message:i})}),[N,be,xe,_]);let{ready:Le,startupError:Re}=C_e({storageRef:e,backendRef:de,activeModelRef:t,yoloModeRef:n,activeProjectRef:r,taskMapRef:Ne,loadGlobalSessions:ye,loadProject:l,initYoloMode:x,switchActiveProject:u,createAgent:L,setNeedsModelSetup:j}),{startNewGlobalChat:ze,startNewProjectChat:Be,rollbackFromMessage:Ve,copyAnswer:He,forkFromMessage:Ue}=H_e({storageRef:e,activeModelRef:t,activeProjectRef:r,currentChatScopeRef:Fe,currentSessionIdRef:Pe,taskMapRef:Ne,agentRef:Me,createAgent:L,syncSessionUI:De,setCurrentAgentMessages:Oe,setChatPanelRevision:Ae,refreshSessions:xe,needsModelSetup:A,switchActiveProject:u,setScheduledTasksOpen:M,setRestoredDraft:ne}),{deleteProjectInline:We}=W_e({projects:a,activeProjectRef:r,refreshSessions:xe,notifyProjectsChanged:we.notifyProjectsChanged,setActiveProject:h,setProjects:g,setExpandedProjectIds:_,setChatPanelRevision:Ae}),{toggleYoloMode:Ge}=J_e({storageRef:e,yoloModeRef:n,setYoloMode:b,agentRef:Me,activeProjectRef:r,setChatPanelRevision:Ae,notifySettingsChanged:we.notifySettingsChanged}),Ke=(0,I.useCallback)(e=>{Me.current?.approveToolCall(e).catch(e=>{v7.error(`Failed to approve tool call:`,e)})},[Me]),qe=(0,I.useCallback)(e=>{Me.current?.rejectToolCall(e).catch(e=>{v7.error(`Failed to reject tool call:`,e)})},[Me]),{loadSession:Je,renameSession:Ye,deleteSession:Xe,startNewGlobalSession:Ze}=q_e({storageRef:e,taskMapRef:Ne,currentSessionIdRef:Pe,loadAgentSession:Ee,setCurrentTitleRef:je,refreshSessions:xe,setScheduledTasksOpen:M,startNewGlobalChat:ze}),{openModelSettings:Qe,openDefaultOptionsSettings:$e,activateLiteLlmExampleModel:et,openCustomModelSelector:tt}=V_e({storageRef:e,activeModelRef:t,agentRef:Me,createAgent:L,updateCurrentAgentModel:ke,setChatPanelRevision:Ae,needsModelSetup:A,setNeedsModelSetup:j,setRestoredDraft:ne,notifySettingsChanged:we.notifySettingsChanged}),nt=X_e((0,I.useMemo)(()=>[...pe,...a.flatMap(e=>F(e.id))],[pe,a,F])),rt=(0,I.useCallback)(e=>Te.taskStatuses[e.id]??nt[e.id]??e.taskStatus??`idle`,[Te.taskStatuses,nt]),it=(0,I.useCallback)(()=>{E(e=>!e)},[]),at=(0,I.useCallback)(()=>{k(e=>!e)},[]),ot=(0,I.useCallback)(()=>{ae({scope:`global`})},[]),st=(0,I.useCallback)(e=>{ae({scope:`project`,project:e})},[]),ct=(0,I.useCallback)(async e=>{let t=await fetch(`/api/project/${encodeURIComponent(e.id)}/open-in-explorer`,{method:`POST`});if(t.ok)return;let n=await t.json().catch(()=>null);throw Error(n?.error||Z(`openInExplorerFailed`))},[]),lt=(0,I.useCallback)(e=>{if(e.scope===`project`&&e.project&&e.projects){g(e.projects),ae({scope:`project`,project:e.project}),r.current?.id===e.project.id&&(h(e.project),r.current=e.project),we.notifyProjectsChanged();return}we.notifyProjectsChanged()},[we,h,g]);return Re?(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`max-w-md rounded-lg border border-border bg-card p-5 shadow-sm`,children:[(0,Q.jsx)(`h1`,{className:`text-base font-semibold`,children:Z(`localServiceUnavailableTitle`)}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:Re})]})}):!Le||!Te.agent&&!A?(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background text-foreground`,children:(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:Z(`loadingChatWorkspace`)})}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex h-screen min-h-0 bg-background text-foreground`,children:[(0,Q.jsx)(d_e,{sidebarOpen:C,scheduledTasksActive:re,projectsCollapsed:T,conversationsCollapsed:D,projects:a,expandedProjectIds:o,activeProject:i,currentSessionId:Te.currentSessionId,globalSessions:pe,sessionsForProject:F,globalHasMore:me,globalLoading:ge,onLoadMoreGlobal:Se,projectHasMore:he,projectLoading:_e,projectLoaded:ve,onLoadMoreProject:Ce,sessionTaskStatus:rt,selectingProject:s,onToggleProjectsCollapsed:it,onToggleConversationsCollapsed:at,onToggleProjectExpanded:m,onSelectProjectDirectory:f,onStartNewProjectChat:Be,onOpenGlobalSkills:ot,onOpenProjectSkills:st,onOpenProjectInExplorer:e=>{ct(e).catch(e=>{v7.error(`Failed to open project in explorer:`,e),alert(e instanceof Error?e.message:Z(`openInExplorerFailed`))})},onDeleteProject:We,onLoadSession:Je,onRenameSession:Ye,onDeleteSession:Xe,onStartNewGlobalChat:Ze,onOpenScheduledTasks:()=>M(!0),onToggleSidebar:()=>w(e=>!e)}),(0,Q.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Q.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:`md:hidden`,onClick:ze,"aria-label":Z(`newChat`),children:(0,Q.jsx)(v,{className:`size-4`})}),(0,Q.jsx)(`div`,{className:`min-w-0 flex-1`,children:re?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:`AI Workspace`}),(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:Z(`scheduledTasks`)})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:Te.chatScope===`project`?Te.currentToolProject?.name??Z(`projectChat`):Z(`normalChat`)}),(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:X7(Te.currentTitle)})]})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:()=>se(!0),disabled:!Te.currentSessionId||re||A,"aria-label":`分享到局域网`,title:`分享到局域网`,children:(0,Q.jsx)(O,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:$e,"aria-label":Z(`settings`),children:(0,Q.jsx)(ee,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1`,children:(0,Q.jsx)(`section`,{className:`flex min-w-0 flex-1 flex-col`,children:re?(0,Q.jsx)(kge,{onOpenSession:Ie}):A?(0,Q.jsx)(c_e,{onAddModel:Qe,onUseExample:()=>{et().catch(e=>v7.error(`Failed to use LiteLLM example:`,e))}}):(0,Q.jsx)(f_e,{children:(0,Q.jsx)(v9,{agent:Te.agent,onModelSelect:tt,revision:Te.chatPanelRevision,yoloMode:y,workspaceToolsEnabled:!!Te.currentToolProject?.id,project:Te.currentToolProject,projectId:Te.currentToolProject?.id,onToggleYoloMode:Ge,onRollbackFromMessage:Ve,onCopyAnswer:He,onForkFromMessage:Ue,onApproveToolCall:Ke,onRejectToolCall:qe,disableFork:!1,restoredDraft:te})})})})]})]}),(0,Q.jsx)(Age,{open:c,initialPath:i?.path,disabled:s,onOpenChange:p,onSelect:d}),(0,Q.jsx)(jge,{open:!!ie,scope:ie?.scope??`global`,project:ie?.project,onOpenChange:e=>{e||ae(void 0)},onSaved:lt}),(0,Q.jsx)(ave,{open:oe,sessionId:Te.currentSessionId,title:X7(Te.currentTitle),onOpenChange:se}),(0,Q.jsx)(Q_e,{toasts:ce,onDismiss:P,onClick:Ie})]})}function gve(){let e=window.location.pathname.match(/^\/share\/([^/]+)\/?$/)?.[1];return e?(0,Q.jsx)(dve,{shareId:decodeURIComponent(e)}):(0,Q.jsx)(hve,{})}ige(),(0,ye.createRoot)(document.getElementById(`root`)).render((0,Q.jsx)(I.StrictMode,{children:(0,Q.jsx)(gve,{})}));export{Td as a,sd as c,kd as i,Pf as n,Ed as o,Ff as r,yd as s,_x as t};
3212
+ `),[e]),a=(0,I.useCallback)(async()=>{if(r.size===0){n({});return}try{let e=await v_e(),t=new Map(e.map(e=>[e.sessionId,Y_e(e.status)]).filter(e=>!!e[1]));n(e=>{let n={};for(let i of r){let r=t.get(i),a=e[i];r?n[i]=r:a===`running`?n[i]=`idle`:a&&a!==`idle`&&(n[i]=a)}return n})}catch(e){v7.error(`Failed to refresh visible agent statuses:`,e)}},[r]);return(0,I.useEffect)(()=>{let e=window.setTimeout(()=>{a()},0);return()=>window.clearTimeout(e)},[a,i]),(0,I.useEffect)(()=>S9(e=>{let t=e.sessionId;if(!(!t||!r.has(t))){if(e.type===`agent_start`){n(e=>({...e,[t]:`running`}));return}if(e.type===`agent_end`){let r=e.errorMessage?`error`:`idle`;n(e=>({...e,[t]:r}))}}}),[r]),(0,I.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&a()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[a]),t}function Z_e({toast:e,onDismiss:t,onClick:n}){let[r,i]=(0,I.useState)(!1),[o,s]=(0,I.useState)(!1);(0,I.useEffect)(()=>{let n=window.setTimeout(()=>i(!0),10),r=window.setTimeout(()=>{s(!0),window.setTimeout(()=>t(e.id),200)},5e3);return()=>{window.clearTimeout(n),window.clearTimeout(r)}},[e.id,t]);let c=()=>{s(!0),window.setTimeout(()=>t(e.id),200)},l=e.status===`error`;return(0,Q.jsxs)(`div`,{role:`alert`,onClick:()=>n(e.sessionId),className:p7(`pointer-events-auto flex w-80 cursor-pointer items-start gap-3 rounded-xl border border-border bg-background p-3 shadow-lg transition-all duration-200 ease-out`,r&&!o?`translate-x-0 opacity-100`:`translate-x-4 opacity-0`),children:[(0,Q.jsx)(`div`,{className:`mt-0.5 shrink-0`,children:l?(0,Q.jsx)(p,{className:`size-5 text-destructive`}):(0,Q.jsx)(a,{className:`size-5 text-emerald-500`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground/90`,children:e.title}),(0,Q.jsx)(`p`,{className:`mt-0.5 line-clamp-3 text-xs text-muted-foreground`,children:e.message||Z(l?`taskError`:`taskCompleted`)})]}),(0,Q.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},className:`shrink-0 rounded-md p-0.5 text-muted-foreground/60 transition-colors hover:text-foreground`,"aria-label":Z(`close`),children:(0,Q.jsx)(D,{className:`size-4`})})]})}function Q_e({toasts:e,onDismiss:t,onClick:n}){return e.length===0?null:(0,Q.jsx)(`div`,{className:`pointer-events-none fixed right-4 top-4 z-50 flex flex-col gap-2`,children:e.map(e=>(0,Q.jsx)(Z_e,{toast:e,onDismiss:t,onClick:n},e.id))})}async function W9(e,t){let n=await fetch(e,{...t,cache:`no-store`,headers:{...t?.body?{"content-type":`application/json`}:void 0,...t?.headers}}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}function $_e(){let e=()=>Array.from({length:6},()=>`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[Math.floor(Math.random()*32)]).join(``);return`${e()}-${e()}`}function eve(e=24){return new Date(Date.now()+e*60*60*1e3).toISOString()}async function tve(e){return W9(`/api/shares`,{method:`POST`,body:JSON.stringify(e)})}async function G9(e){return W9(`/api/shares${e?`?sessionId=${encodeURIComponent(e)}`:``}`)}async function nve(e){return W9(`/api/shares/${encodeURIComponent(e)}`,{method:`DELETE`})}async function rve(e,t=``){return W9(`/api/shared/${encodeURIComponent(e)}/unlock`,{method:`POST`,body:JSON.stringify({password:t})})}async function ive(e){return W9(`/api/shared/${encodeURIComponent(e)}/models`)}function ave({open:e,sessionId:t,title:n,onOpenChange:r}){let a=(0,I.useId)(),[o,s]=(0,I.useState)(`read`),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(`24h`),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(``),[g,_]=(0,I.useState)([]),[v,y]=(0,I.useState)(!1),[b,x]=(0,I.useState)(),C=(0,I.useMemo)(()=>{if(u!==`never`)return eve(u===`1h`?1:u===`7d`?168:24)},[u]);if((0,I.useEffect)(()=>{!e||!t||G9(t).then(e=>_(e.shares)).catch(e=>x(e instanceof Error?e.message:`Failed to load shares`))},[e,t]),!e)return null;let w=o===`operate`,E=!!t&&(o!==`operate`||f&&c.trim()),D=async()=>{if(!(!t||!E)){if(w&&!c.trim()){x(`可操作分享必须设置密码。`);return}y(!0),x(void 0);try{let e=await tve({sessionId:t,permission:o,password:c.trim(),expiresAt:C});h(e.url),await u9(e.url),p(!1),_((await G9(t)).shares)}catch(e){x(e instanceof Error?e.message:`Failed to create share`)}finally{y(!1)}}},O=async e=>{let t=e.url||`${window.location.origin}/share/${encodeURIComponent(e.id)}`;h(t),await u9(t)},k=async e=>{try{await nve(e),_(t=>t.map(t=>t.id===e?{...t,revokedAt:new Date().toISOString()}:t))}catch(e){x(e instanceof Error?e.message:`Failed to revoke share`)}};return(0,Q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,onMouseDown:e=>{e.target===e.currentTarget&&r(!1)},children:(0,Q.jsxs)(`div`,{className:`flex max-h-[90vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-border bg-background shadow-2xl`,onMouseDown:e=>e.stopPropagation(),children:[(0,Q.jsxs)(`div`,{className:`shrink-0 border-b border-border px-5 py-4`,children:[(0,Q.jsx)(`h2`,{className:`text-base font-semibold`,children:`分享到局域网`}),(0,Q.jsxs)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:[`当前对话:`,n,`。同一个对话只会有一个固定分享链接;只读分享密码可选,可操作分享必须设置密码。`]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`mb-2 text-sm font-medium`,children:`权限`}),(0,Q.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:`rounded-xl border p-3 text-left text-sm ${o===`read`?`border-primary bg-primary/10`:`border-border`}`,onClick:()=>s(`read`),children:[(0,Q.jsx)(`div`,{className:`font-medium`,children:`仅阅读`}),(0,Q.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:`只能查看这一个对话。`})]}),(0,Q.jsxs)(`button`,{type:`button`,className:`rounded-xl border p-3 text-left text-sm ${o===`operate`?`border-red-400 bg-red-50 text-red-950`:`border-border`}`,onClick:()=>s(`operate`),children:[(0,Q.jsx)(`div`,{className:`font-medium text-red-700`,children:`可操作(高危)`}),(0,Q.jsx)(`div`,{className:`mt-1 text-xs text-red-700`,children:`允许对方操作这个原对话,禁止 Fork。`})]})]})]}),o===`operate`?(0,Q.jsxs)(`div`,{className:`rounded-xl border border-red-300 bg-red-50 p-3 text-sm text-red-900`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2 font-semibold`,children:[(0,Q.jsx)(A,{className:`mt-0.5 size-4`}),`高危可操作权限`]}),(0,Q.jsx)(`p`,{className:`mt-2 text-xs leading-5`,children:`拥有链接和密码的人只能操作这一个原对话,但对方的消息、停止生成、回滚、模型/思考等级选择、YOLO 状态下可用工具等操作会按正常对话权限直接影响你的本机原对话。可操作分享必须设置密码。`}),(0,Q.jsxs)(`label`,{className:`mt-3 flex items-center gap-2 text-xs font-medium`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked)}),`我已了解风险,仍然允许可操作权限。`]})]}):null,(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`label`,{htmlFor:a,className:`block text-sm font-medium`,children:w?`密码(可操作必填)`:`密码(可选)`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center`,children:[(0,Q.jsx)(`input`,{id:a,value:c,onChange:e=>l(e.target.value),className:`h-10 w-full min-w-0 rounded-md border border-input bg-background px-3 text-sm`,placeholder:w?`可操作分享必须设置密码`:`留空则打开链接无需密码`}),(0,Q.jsxs)(m7,{variant:`outline`,className:`h-10 sm:shrink-0`,onClick:()=>l($_e()),children:[(0,Q.jsx)(T,{className:`mr-2 size-4`}),`生成密码`]})]}),(0,Q.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:w?`可操作分享必须设置非空密码;修改密码后旧密码和已解锁状态会失效。`:`留空保存会取消密码保护;填写新密码保存后旧密码和已解锁状态会失效。`})]}),(0,Q.jsxs)(`label`,{className:`block text-sm font-medium`,children:[`有效期`,(0,Q.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),className:`mt-2 h-10 w-full rounded-md border border-input bg-background px-3 text-sm`,children:[(0,Q.jsx)(`option`,{value:`1h`,children:`1 小时`}),(0,Q.jsx)(`option`,{value:`24h`,children:`24 小时`}),(0,Q.jsx)(`option`,{value:`7d`,children:`7 天`}),(0,Q.jsx)(`option`,{value:`never`,children:`永久,需手动撤销`})]})]}),m?(0,Q.jsxs)(`div`,{className:`rounded-xl border border-emerald-300 bg-emerald-50 p-3 text-sm text-emerald-900`,children:[`已复制到剪切板。`,(0,Q.jsx)(`pre`,{className:`mt-2 max-h-36 overflow-auto whitespace-pre-wrap text-xs`,children:m})]}):null,b?(0,Q.jsx)(`div`,{className:`rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:b}):null,g.length?(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`mb-2 text-sm font-medium`,children:`已有分享`}),(0,Q.jsx)(`div`,{className:`space-y-2`,children:g.map(e=>(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border p-2 text-xs`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate font-mono`,children:e.id}),(0,Q.jsxs)(`div`,{className:`text-muted-foreground`,children:[e.permission===`operate`?`可操作`:`只读`,` · `,e.hasPassword?`有密码`:`无密码`,` · `,e.revokedAt?`已撤销`:e.expiresAt?`到期 ${new Date(e.expiresAt).toLocaleString()}`:`永久`]})]}),e.revokedAt?null:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:()=>void O(e),"aria-label":`复制分享链接`,title:`复制分享链接`,children:(0,Q.jsx)(i,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:`text-destructive`,onClick:()=>void k(e.id),"aria-label":`撤销分享`,title:`撤销分享`,children:(0,Q.jsx)(S,{className:`size-4`})})]})]},e.id))})]}):null]})}),(0,Q.jsx)(`div`,{className:`shrink-0 border-t border-border px-5 py-4`,children:(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(m7,{variant:`outline`,onClick:()=>r(!1),children:Z(`cancel`)}),(0,Q.jsxs)(m7,{variant:o===`operate`?`destructive`:`default`,disabled:!E||v,onClick:()=>void D(),title:o===`operate`&&!c.trim()?`可操作分享必须设置密码`:void 0,children:[(0,Q.jsx)(i,{className:`mr-2 size-4`}),o===`operate`?`保存配置并复制高危可操作链接`:`保存配置并复制链接`]})]})})]})})}var K9=`quickforgeClientMessageId`;function q9(e){let t=e?.metadata;return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}function J9(e){let t=q9(e)?.[K9];return typeof t==`string`&&t?t:void 0}function ove(){return`qfcm_${typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}`}function sve(e){let t=J9(e);if(t)return{message:e,clientMessageId:t};let n=ove();return{message:{...e,metadata:{...q9(e),[K9]:n}},clientMessageId:n}}function Y9(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`text`).map(e=>e.text).filter(e=>typeof e==`string`).join(``):``}function cve(e,t){if(!e||!t||e.role!==t.role)return!1;let n=J9(e),r=J9(t);return n&&r?n===r:Y9(e.content)===Y9(t.content)}async function X9(e,t){let n=await fetch(e,{...t,cache:`no-store`,headers:{...t?.body?{"content-type":`application/json`}:void 0,...t?.headers}}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error||`Request failed: ${n.status}`);return r}var Z9=class e{state;streamFn=Df;getApiKey;sessionId;shareId;permission;listeners=new Set;eventSource=null;disposed=!1;reconnectTimer=null;reconnectDelay=1e3;baseUrl=``;syncingThinkingLevel=!1;constructor(e,t){this.shareId=e,this.sessionId=t.sessionId||t.id||e,this.permission=t.permission??`read`;let n={systemPrompt:t.systemPrompt??``,model:t.model??{provider:`shared`,id:`shared`},thinkingLevel:t.thinkingLevel??`off`,messages:t.messages?.slice()??[],tools:t.tools??[],isStreaming:!!t.isStreaming,streamingMessage:void 0,pendingToolCalls:new Set,errorMessage:t.errorMessage};this.state=new Proxy(n,{set:(e,t,n)=>{let r=e[t];return e[t]=n,t===`thinkingLevel`&&!this.syncingThinkingLevel&&n!==r&&this.updateThinkingLevel(n).catch(e=>{v7.error(`Failed to update shared thinking level:`,e)}),!0}}),this.connectEvents()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async prompt(e){if(this.disposed||this.permission!==`operate`)return;let{message:t,clientMessageId:n}=sve(this.normalizeInput(e));this.state.messages=[...this.state.messages,t],this.emit({type:`message_start`,message:t}),this.state.isStreaming||(this.state.isStreaming=!0,this.state.errorMessage=void 0,this.emit({type:`agent_start`}));try{await X9(`/api/shared/${encodeURIComponent(this.shareId)}/message`,{method:`POST`,body:JSON.stringify({message:t,clientMessageId:n})})}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.state.isStreaming=!1,this.emit({type:`error`,error:t}),this.emit({type:`agent_end`,messages:this.state.messages}),e}}async updateModel(e){if(!(this.disposed||this.permission!==`operate`)){this.state.model=e;try{let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/model`,{method:`POST`,body:JSON.stringify({model:e})});t.model&&(this.state.model=t.model)}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.emit({type:`error`,error:t}),e}}}async updateThinkingLevel(e){if(!(this.disposed||this.permission!==`operate`)){!this.syncingThinkingLevel&&this.state.thinkingLevel!==e&&(this.state.thinkingLevel=e);try{let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/thinking-level`,{method:`POST`,body:JSON.stringify({thinkingLevel:e})});t.thinkingLevel&&(this.state.thinkingLevel=t.thinkingLevel)}catch(e){let t=e instanceof Error?e.message:String(e);throw this.state.errorMessage=t,this.emit({type:`error`,error:t}),e}}}abort(){this.permission===`operate`&&fetch(`/api/shared/${encodeURIComponent(this.shareId)}/abort`,{method:`POST`}).catch(e=>{v7.error(`Failed to abort shared conversation:`,e)})}steer(){}followUp(){}reset(){this.state.messages=[],this.state.errorMessage=void 0,this.state.isStreaming=!1,this.state.streamingMessage=void 0,this.state.pendingToolCalls=new Set}async rollback(e){if(this.permission!==`operate`)return;let t=await X9(`/api/shared/${encodeURIComponent(this.shareId)}/rollback`,{method:`POST`,body:JSON.stringify({messageIndex:e})});return this.applyState(t.session),this.emit({type:`messages_replaced`,messages:this.state.messages}),t}dispose(){this.disposed=!0,this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.eventSource?.close(),this.eventSource=null,this.listeners.clear()}static async loadState(e){return X9(`/api/shared/${encodeURIComponent(e)}/session`)}static async create(t){return new e(t,await e.loadState(t))}normalizeInput(e){return typeof e==`string`?{role:`user`,content:e,timestamp:Date.now()}:Array.isArray(e)?[...e].reverse().find(e=>e.role===`user`||e.role===`user-with-attachments`)??e[e.length-1]:e}connectEvents(){this.disposed||(this.eventSource?.close(),this.baseUrl=``,this.openEventSource())}openEventSource(){if(this.disposed)return;let e=`${this.baseUrl}/api/shared/${encodeURIComponent(this.shareId)}/events`;this.eventSource=new EventSource(e,{withCredentials:!0}),this.eventSource.onopen=()=>{this.reconnectDelay=1e3};let t=[`state`,`agent_start`,`agent_end`,`message_start`,`message_end`,`turn_start`,`turn_end`,`message_update`,`tool_execution_start`,`tool_execution_update`,`tool_execution_end`,`error`,`title_updated`,`messages_replaced`],n=e=>t=>{try{let n=JSON.parse(t.data);this.handleEvent(e?{type:e,...n}:n)}catch{}};this.eventSource.onmessage=n();for(let e of t)this.eventSource.addEventListener(e,n(e));this.eventSource.onerror=()=>{this.eventSource?.close(),this.eventSource=null,this.scheduleReconnect()}}scheduleReconnect(){this.disposed||this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.reconnectDelay=Math.min(this.reconnectDelay*2,3e4),this.openEventSource()},this.reconnectDelay))}handleEvent(e){if(e.type){switch(e.type){case`state`:this.applyState(e);break;case`agent_start`:this.state.isStreaming=!0,this.state.errorMessage=void 0;break;case`agent_end`:this.state.isStreaming=!1,this.state.streamingMessage=void 0;break;case`message_start`:if(e.message){let t=this.state.messages.findIndex(t=>cve(t,e.message));if(t>=0){let n=this.state.messages.slice();n[t]=e.message,this.state.messages=n}else this.state.messages=[...this.state.messages,e.message]}break;case`message_update`:e.message&&(this.state.streamingMessage=e.message);break;case`message_end`:if(e.message){let t=this.state.messages.slice(),n=t.length-1;n>=0&&t[n]?.role===e.message.role?t[n]=e.message:t.push(e.message),this.state.messages=t}this.state.streamingMessage=void 0;break;case`messages_replaced`:e.messages&&(this.state.messages=e.messages,this.state.streamingMessage=void 0);break;case`error`:this.state.errorMessage=typeof e.error==`string`?e.error:`Unknown error`,this.state.isStreaming=!1;break}this.emit(e)}}applyState(e){this.sessionId=e.sessionId||e.id||this.sessionId,e.messages&&(this.state.messages=e.messages),e.systemPrompt!==void 0&&(this.state.systemPrompt=e.systemPrompt),e.model&&(this.state.model=e.model),e.thinkingLevel&&(this.syncingThinkingLevel=!0,this.state.thinkingLevel=e.thinkingLevel,this.syncingThinkingLevel=!1),e.tools&&(this.state.tools=e.tools),e.isStreaming!==void 0&&(this.state.isStreaming=!!e.isStreaming),e.errorMessage!==void 0&&(this.state.errorMessage=e.errorMessage)}emit(e){for(let t of this.listeners)try{t(e)}catch{}}};function lve(e){return{id:`shared-${e.provider}`,name:e.provider,type:e.api,baseUrl:e.baseUrl??``,models:[e]}}async function Q9(e,t){try{let t=await ive(e);if(t.providers?.length)return t.providers}catch{}return t?[lve(t)]:[]}function uve(e,t){let n=t.model??{provider:`shared`,id:`shared`};return new Z9(e,{...t,model:n,thinkingLevel:t.thinkingLevel??A7(n)})}function $9(e,t){let n={settings:new $5,providerKeys:new Z5,sessions:new Q5,customProviders:new X5},r=new g7(``,{blockedStores:[`sessions`,`provider-keys`],fakeProviderKeys:t?[t.provider]:void 0,storeOverrides:t?{"custom-providers":{keys:async()=>(await Q9(e,t)).map(e=>e.name),get:async n=>(await Q9(e,t)).find(e=>e.name===n)??null,has:async n=>(await Q9(e,t)).some(e=>e.name===n)}}:void 0});n.settings.setBackend(r),n.providerKeys.setBackend(r),n.sessions.setBackend(r),n.customProviders.setBackend(r),s_(new i_(n.settings,n.providerKeys,n.sessions,n.customProviders,r))}function dve({shareId:e}){let[t,n]=(0,I.useState)(``),[r,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(`read`),[c,l]=(0,I.useState)(`QuickForge 分享对话`),[u,d]=(0,I.useState)(),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(),g=(0,I.useRef)(!1),_=o===`operate`,v=!!r,y=!!r?.state.tools?.length;(0,I.useEffect)(()=>{$9(e,r?.state.model)},[r?.state.model,e]),(0,I.useEffect)(()=>()=>r?.dispose(),[r]);let b=(0,I.useCallback)(async(n=t.trim())=>{d(void 0),p(!0);try{let t=await rve(e,n);s(t.permission),l(t.title||t.share.titleSnapshot||`QuickForge 分享对话`);let r=await Z9.loadState(e);$9(e,r.model),a(uve(e,r))}catch(e){d(e instanceof Error?e.message:`Failed to unlock shared conversation`)}finally{p(!1)}},[t,e]);(0,I.useEffect)(()=>{if(v||f||g.current)return;g.current=!0;let e=window.setTimeout(()=>{b(``)},0);return()=>window.clearTimeout(e)},[f,b,v]);let x=(0,I.useCallback)(async e=>{await u9(e)},[]),S=(0,I.useCallback)(async()=>{if(!(!r||r.permission!==`operate`))try{let t=(await Q9(e,r.state.model)).flatMap(e=>e.models??[]);if(!t.length)return;z9(r.state.model,t,t=>{$9(e,t),r.updateModel(t).catch(e=>{d(e instanceof Error?e.message:`Failed to update model`)})})}catch(e){d(e instanceof Error?e.message:`Failed to load models`)}},[r,e]),C=(0,I.useCallback)(async e=>{if(!r||r.permission!==`operate`)return;if(d(void 0),r.state.isStreaming){alert(Z(`generationStillRunning`));return}let t=c9(r.state.messages,e),n=t>=0?r.state.messages[t]:void 0;if(!n){alert(Z(`noConversationTurnToRollback`));return}if(window.confirm(`确定回滚这个原对话吗?该操作会直接影响分享者本机中的这一个对话。该消息及其之后的对话记录会被移除,消息内容会恢复到输入框。`))try{await r.rollback(e),h({id:Date.now(),sessionId:r.sessionId,text:l9(n),attachments:n.role===`user-with-attachments`?n.attachments:void 0})}catch(e){d(e instanceof Error?e.message:`Failed to roll back`)}},[r]);return v?(0,Q.jsxs)(`div`,{className:`flex h-screen min-h-0 flex-col bg-background text-foreground`,children:[(0,Q.jsx)(`header`,{className:p7(`shrink-0 border-b px-4 py-3`,_?`border-red-300 bg-red-50 text-red-950`:`border-border bg-card`),children:(0,Q.jsxs)(`div`,{className:`mx-auto flex max-w-4xl items-start gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:c}),(0,Q.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs`,children:[(0,Q.jsxs)(`span`,{className:p7(`inline-flex items-center gap-1 rounded-full px-2 py-0.5 font-medium`,_?`bg-red-100 text-red-700`:`bg-muted text-muted-foreground`),children:[_?(0,Q.jsx)(A,{className:`size-3.5`}):null,_?`高危可操作`:`只读分享`]}),(0,Q.jsx)(`span`,{className:p7(_?`text-red-800`:`text-muted-foreground`),children:_?`正在操作分享者的原始对话`:`只能查看,不能发送或修改`})]}),_?null:(0,Q.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:`界面与正常对话保持一致`})]}),(0,Q.jsxs)(m7,{variant:`ghost`,size:`sm`,className:p7(`shrink-0`,_?`text-red-700 hover:bg-red-100 hover:text-red-800`:void 0),onClick:()=>void u9(window.location.href),"aria-label":_?`复制高危分享链接`:`复制分享链接`,title:_?`复制高危分享链接`:`复制分享链接`,children:[(0,Q.jsx)(i,{className:`size-4`}),(0,Q.jsx)(`span`,{className:`hidden sm:inline`,children:_?`复制高危链接`:`复制链接`})]})]})}),u?(0,Q.jsx)(`div`,{className:`mx-auto w-full max-w-4xl px-4 py-2 text-sm text-destructive`,children:u}):null,(0,Q.jsx)(v9,{agent:r,revision:0,yoloMode:y,workspaceToolsEnabled:y,onModelSelect:S,onToggleYoloMode:()=>void 0,onRollbackFromMessage:C,onCopyAnswer:x,onForkFromMessage:()=>void 0,onApproveToolCall:()=>void 0,onRejectToolCall:()=>void 0,disableFork:!0,readOnly:!_,restoredDraft:m,bypassClientApiKeyCheck:!0})]}):(0,Q.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-md rounded-2xl border border-border bg-card p-6 shadow-xl`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,Q.jsx)(A,{className:`size-5 text-amber-500`}),`QuickForge 局域网对话分享`]}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`如果分享者设置了密码,请输入密码。未设置密码的链接会自动打开。`}),(0,Q.jsx)(`input`,{type:`password`,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Enter`&&b()},className:`mt-5 h-10 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus:border-primary`,placeholder:`密码`,autoFocus:!0}),u?(0,Q.jsx)(`div`,{className:`mt-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive`,children:u}):null,(0,Q.jsx)(m7,{className:`mt-5 w-full`,onClick:()=>void b(),disabled:f||!t.trim(),children:f?Z(`loading`):`用密码打开分享对话`})]})})}function fve(e){return e===`idle`||e===`running`||e===`error`||e===`aborted`}function pve(e){return e.type===`scheduled_task_notification`}function mve(e){return e.type===`scheduled_task_started`}function hve(){let e=(0,I.useRef)(null),t=(0,I.useRef)(D7(C7)),n=(0,I.useRef)(!1),r=(0,I.useRef)(void 0),{activeProject:i,projects:a,expandedProjectIds:o,selectingProject:s,projectPickerOpen:c,loadProject:l,switchActiveProject:u,handleSelectProjectPath:d,selectProjectDirectory:f,setProjectPickerOpen:p,toggleProjectExpanded:m,setActiveProject:h,setProjects:g,setExpandedProjectIds:_}=p_e(),{yoloMode:y,setYoloMode:b,initialize:x,loadForProject:S}=m_e(),[C,w]=(0,I.useState)(!0),[T,E]=(0,I.useState)(!1),[D,k]=(0,I.useState)(!1),[A,j]=(0,I.useState)(!1),[te,ne]=(0,I.useState)(),[re,M]=(0,I.useState)(!1),[ie,ae]=(0,I.useState)(),[oe,se]=(0,I.useState)(!1),{toasts:ce,handleTaskComplete:le,addToast:N,dismissToast:P}=S_e(),ue=(0,I.useRef)(null),de=(0,I.useRef)(null),{allLoadedSessions:fe,globalSessions:pe,sessionsForProject:F,globalHasMore:me,projectHasMore:he,globalLoading:ge,projectLoading:_e,projectLoaded:ve,loadGlobalSessions:ye,loadProjectSessions:be,refreshSessions:xe,loadMoreGlobal:Se,loadMoreProject:Ce}=x_e({backendRef:de,expandedProjectIds:o,onBroadcastSessionsChanged:(0,I.useCallback)(()=>ue.current?.notifySessionsChanged(),[])}),we=g_e({onSessionsChanged:()=>{xe()},onProjectsChanged:()=>{l()},onSettingsChanged:()=>{xe()}});(0,I.useEffect)(()=>{n.current=y},[y]),(0,I.useEffect)(()=>{r.current=i},[i]),(0,I.useEffect)(()=>{let t=e.current;t&&S(t,i?.id)},[i,S,e]),(0,I.useEffect)(()=>{ue.current=we},[we]);let Te=b_e({storageRef:e,activeModelRef:t,yoloModeRef:n,activeProjectRef:r,switchActiveProject:u,sessions:fe,refreshSessions:xe,onTaskComplete:le}),{createAgent:L,loadSession:Ee,syncSessionUI:De,setCurrentAgentMessages:Oe,updateCurrentAgentModel:ke,setChatPanelRevision:Ae,setCurrentTitleRef:je,agentRef:Me,taskMapRef:Ne,currentSessionIdRef:Pe,currentChatScopeRef:Fe}=Te,Ie=(0,I.useCallback)(e=>{e&&(M(!1),Ee(e))},[Ee]);(0,I.useEffect)(()=>S9(e=>{if(mve(e)){let t=typeof e.projectId==`string`?e.projectId:void 0;t&&(_(e=>{let n=new Set(e);return n.add(t),n}),be(t,0)),xe({broadcast:!0});return}if(!pve(e))return;let t=typeof e.sessionId==`string`?e.sessionId:void 0,n=typeof e.title==`string`?e.title:Z(`scheduledTasks`),r=fve(e.status)?e.status:`idle`,i=typeof e.message==`string`?e.message:void 0;N({sessionId:t??``,title:n,status:r,message:i})}),[N,be,xe,_]);let{ready:Le,startupError:Re}=C_e({storageRef:e,backendRef:de,activeModelRef:t,yoloModeRef:n,activeProjectRef:r,taskMapRef:Ne,loadGlobalSessions:ye,loadProject:l,initYoloMode:x,switchActiveProject:u,createAgent:L,setNeedsModelSetup:j});(0,I.useEffect)(()=>{if(Le)for(let e of o)!ve(e)&&!_e(e)&&be(e,0)},[Le,o,ve,_e,be]);let{startNewGlobalChat:ze,startNewProjectChat:Be,rollbackFromMessage:Ve,copyAnswer:He,forkFromMessage:Ue}=H_e({storageRef:e,activeModelRef:t,activeProjectRef:r,currentChatScopeRef:Fe,currentSessionIdRef:Pe,taskMapRef:Ne,agentRef:Me,createAgent:L,syncSessionUI:De,setCurrentAgentMessages:Oe,setChatPanelRevision:Ae,refreshSessions:xe,needsModelSetup:A,switchActiveProject:u,setScheduledTasksOpen:M,setRestoredDraft:ne}),{deleteProjectInline:We}=W_e({projects:a,activeProjectRef:r,refreshSessions:xe,notifyProjectsChanged:we.notifyProjectsChanged,setActiveProject:h,setProjects:g,setExpandedProjectIds:_,setChatPanelRevision:Ae}),{toggleYoloMode:Ge}=J_e({storageRef:e,yoloModeRef:n,setYoloMode:b,agentRef:Me,activeProjectRef:r,setChatPanelRevision:Ae,notifySettingsChanged:we.notifySettingsChanged}),Ke=(0,I.useCallback)(e=>{Me.current?.approveToolCall(e).catch(e=>{v7.error(`Failed to approve tool call:`,e)})},[Me]),qe=(0,I.useCallback)(e=>{Me.current?.rejectToolCall(e).catch(e=>{v7.error(`Failed to reject tool call:`,e)})},[Me]),{loadSession:Je,renameSession:Ye,deleteSession:Xe,startNewGlobalSession:Ze}=q_e({storageRef:e,taskMapRef:Ne,currentSessionIdRef:Pe,loadAgentSession:Ee,setCurrentTitleRef:je,refreshSessions:xe,setScheduledTasksOpen:M,startNewGlobalChat:ze}),{openModelSettings:Qe,openDefaultOptionsSettings:$e,activateLiteLlmExampleModel:et,openCustomModelSelector:tt}=V_e({storageRef:e,activeModelRef:t,agentRef:Me,createAgent:L,updateCurrentAgentModel:ke,setChatPanelRevision:Ae,needsModelSetup:A,setNeedsModelSetup:j,setRestoredDraft:ne,notifySettingsChanged:we.notifySettingsChanged}),nt=X_e((0,I.useMemo)(()=>[...pe,...a.flatMap(e=>F(e.id))],[pe,a,F])),rt=(0,I.useCallback)(e=>Te.taskStatuses[e.id]??nt[e.id]??e.taskStatus??`idle`,[Te.taskStatuses,nt]),it=(0,I.useCallback)(()=>{E(e=>!e)},[]),at=(0,I.useCallback)(()=>{k(e=>!e)},[]),ot=(0,I.useCallback)(()=>{ae({scope:`global`})},[]),st=(0,I.useCallback)(e=>{ae({scope:`project`,project:e})},[]),ct=(0,I.useCallback)(async e=>{let t=await fetch(`/api/project/${encodeURIComponent(e.id)}/open-in-explorer`,{method:`POST`});if(t.ok)return;let n=await t.json().catch(()=>null);throw Error(n?.error||Z(`openInExplorerFailed`))},[]),lt=(0,I.useCallback)(e=>{if(e.scope===`project`&&e.project&&e.projects){g(e.projects),ae({scope:`project`,project:e.project}),r.current?.id===e.project.id&&(h(e.project),r.current=e.project),we.notifyProjectsChanged();return}we.notifyProjectsChanged()},[we,h,g]);return Re?(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background p-6 text-foreground`,children:(0,Q.jsxs)(`div`,{className:`max-w-md rounded-lg border border-border bg-card p-5 shadow-sm`,children:[(0,Q.jsx)(`h1`,{className:`text-base font-semibold`,children:Z(`localServiceUnavailableTitle`)}),(0,Q.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:Re})]})}):!Le||!Te.agent&&!A?(0,Q.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-background text-foreground`,children:(0,Q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:Z(`loadingChatWorkspace`)})}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex h-screen min-h-0 bg-background text-foreground`,children:[(0,Q.jsx)(d_e,{sidebarOpen:C,scheduledTasksActive:re,projectsCollapsed:T,conversationsCollapsed:D,projects:a,expandedProjectIds:o,activeProject:i,currentSessionId:Te.currentSessionId,globalSessions:pe,sessionsForProject:F,globalHasMore:me,globalLoading:ge,onLoadMoreGlobal:Se,projectHasMore:he,projectLoading:_e,projectLoaded:ve,onLoadMoreProject:Ce,sessionTaskStatus:rt,selectingProject:s,onToggleProjectsCollapsed:it,onToggleConversationsCollapsed:at,onToggleProjectExpanded:m,onSelectProjectDirectory:f,onStartNewProjectChat:Be,onOpenGlobalSkills:ot,onOpenProjectSkills:st,onOpenProjectInExplorer:e=>{ct(e).catch(e=>{v7.error(`Failed to open project in explorer:`,e),alert(e instanceof Error?e.message:Z(`openInExplorerFailed`))})},onDeleteProject:We,onLoadSession:Je,onRenameSession:Ye,onDeleteSession:Xe,onStartNewGlobalChat:Ze,onOpenScheduledTasks:()=>M(!0),onToggleSidebar:()=>w(e=>!e)}),(0,Q.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Q.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-2 border-b border-border px-3`,children:[(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,className:`md:hidden`,onClick:ze,"aria-label":Z(`newChat`),children:(0,Q.jsx)(v,{className:`size-4`})}),(0,Q.jsx)(`div`,{className:`min-w-0 flex-1`,children:re?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:`AI Workspace`}),(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:Z(`scheduledTasks`)})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:Te.chatScope===`project`?Te.currentToolProject?.name??Z(`projectChat`):Z(`normalChat`)}),(0,Q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:X7(Te.currentTitle)})]})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:()=>se(!0),disabled:!Te.currentSessionId||re||A,"aria-label":`分享到局域网`,title:`分享到局域网`,children:(0,Q.jsx)(O,{className:`size-4`})}),(0,Q.jsx)(m7,{variant:`ghost`,size:`icon`,onClick:$e,"aria-label":Z(`settings`),children:(0,Q.jsx)(ee,{className:`size-4`})})]}),(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1`,children:(0,Q.jsx)(`section`,{className:`flex min-w-0 flex-1 flex-col`,children:re?(0,Q.jsx)(kge,{onOpenSession:Ie}):A?(0,Q.jsx)(c_e,{onAddModel:Qe,onUseExample:()=>{et().catch(e=>v7.error(`Failed to use LiteLLM example:`,e))}}):(0,Q.jsx)(f_e,{children:(0,Q.jsx)(v9,{agent:Te.agent,onModelSelect:tt,revision:Te.chatPanelRevision,yoloMode:y,workspaceToolsEnabled:!!Te.currentToolProject?.id,project:Te.currentToolProject,projectId:Te.currentToolProject?.id,onToggleYoloMode:Ge,onRollbackFromMessage:Ve,onCopyAnswer:He,onForkFromMessage:Ue,onApproveToolCall:Ke,onRejectToolCall:qe,disableFork:!1,restoredDraft:te})})})})]})]}),(0,Q.jsx)(Age,{open:c,initialPath:i?.path,disabled:s,onOpenChange:p,onSelect:d}),(0,Q.jsx)(jge,{open:!!ie,scope:ie?.scope??`global`,project:ie?.project,onOpenChange:e=>{e||ae(void 0)},onSaved:lt}),(0,Q.jsx)(ave,{open:oe,sessionId:Te.currentSessionId,title:X7(Te.currentTitle),onOpenChange:se}),(0,Q.jsx)(Q_e,{toasts:ce,onDismiss:P,onClick:Ie})]})}function gve(){let e=window.location.pathname.match(/^\/share\/([^/]+)\/?$/)?.[1];return e?(0,Q.jsx)(dve,{shareId:decodeURIComponent(e)}):(0,Q.jsx)(hve,{})}ige(),(0,ye.createRoot)(document.getElementById(`root`)).render((0,Q.jsx)(I.StrictMode,{children:(0,Q.jsx)(gve,{})}));export{Td as a,sd as c,kd as i,Pf as n,Ed as o,Ff as r,yd as s,_x as t};