sliccy 3.4.2 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +2 -1
  2. package/dist/ui/assets/{adobe-DtL7GdwG.js → adobe-CGTvYXL4.js} +2 -2
  3. package/dist/ui/assets/{adobe-CjwUvUUz.js → adobe-OW6qDMdx.js} +1 -1
  4. package/dist/ui/assets/{agent-bridge-Dreex1la.js → agent-bridge-C2uPxD5C.js} +1 -1
  5. package/dist/ui/assets/{agent-message-to-chat-D-uGBdBr.js → agent-message-to-chat-BB7XSXm_.js} +1 -1
  6. package/dist/ui/assets/{anthropic-BcNzOm3q.js → anthropic-BnWq0Gp1.js} +1 -1
  7. package/dist/ui/assets/{anthropic-CpMf0Lbf.js → anthropic-OisNnXAs.js} +1 -1
  8. package/dist/ui/assets/{apps-DHjHDFp8.js → apps-Ejwl_4gp.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-CA1mxD3H.js → azure-openai-BJpO12vj.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-DPZemc4U.js → azure-openai-BpvzasWn.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-responses-CkJGWdYm.js → azure-openai-responses-Dkyfu7sH.js} +1 -1
  12. package/dist/ui/assets/{azure-openai-responses-B-Sp7Lbb.js → azure-openai-responses-DsK2BYfK.js} +1 -1
  13. package/dist/ui/assets/{bsh-watchdog-Cp3gNbYH.js → bsh-watchdog-Bf2N4JJz.js} +1 -1
  14. package/dist/ui/assets/{cdp-wB9CHBaO.js → cdp-jjZoIvhA.js} +3 -3
  15. package/dist/ui/assets/cost-command-Dp2pKtGI.js +1 -0
  16. package/dist/ui/assets/{es-3DUxOu76.js → es-BUJ3s4sB.js} +1 -1
  17. package/dist/ui/assets/{follower-sprinkle-bridge-CDFAxrIT.js → follower-sprinkle-bridge-DhatJqh3.js} +1 -1
  18. package/dist/ui/assets/{github-TbpFfs-O.js → github-BySyEply.js} +1 -1
  19. package/dist/ui/assets/{github-D6b5Hhsb.js → github-qoj9WnN1.js} +2 -2
  20. package/dist/ui/assets/{google-n4rJNqnF.js → google-Bima5SPX.js} +1 -1
  21. package/dist/ui/assets/{google-BMVsxTG7.js → google-Dd5CRihX.js} +1 -1
  22. package/dist/ui/assets/{google-shared-DGHk65kV.js → google-shared-Ba5pKC-j.js} +1 -1
  23. package/dist/ui/assets/{google-shared-B0BrRTgf.js → google-shared-fvMK7kNt.js} +1 -1
  24. package/dist/ui/assets/{google-vertex-C0o8gAGe.js → google-vertex-B7bwWNVw.js} +1 -1
  25. package/dist/ui/assets/{google-vertex-Cbjs5cnT.js → google-vertex-DwbFrPFr.js} +1 -1
  26. package/dist/ui/assets/{index-Di6Yhobc.js → index-BLNJh7vP.js} +162 -161
  27. package/dist/ui/assets/{intercepted-oauth-5XrS3zi4.js → intercepted-oauth-BVMYx7J_.js} +1 -1
  28. package/dist/ui/assets/{kernel-worker-CbXtvutp.js → kernel-worker-BTe9oTQU.js} +17 -17
  29. package/dist/ui/assets/{lick-ws-bridge-DCpPUoqH.js → lick-ws-bridge-CVH1mgXb.js} +1 -1
  30. package/dist/ui/assets/{local-llm-CYufjkaA.js → local-llm-Bxj2shNM.js} +1 -1
  31. package/dist/ui/assets/{magick-wasm-CJgANw_I.js → magick-wasm-BO5g67Rd.js} +1 -1
  32. package/dist/ui/assets/{mistral-CmJ4hz5s.js → mistral-C5IRpPjM.js} +1 -1
  33. package/dist/ui/assets/{mistral-BevEK6OI.js → mistral-vXl92WrJ.js} +1 -1
  34. package/dist/ui/assets/{nuke-command-CSlJniNh.js → nuke-command-B5WgTQX5.js} +1 -1
  35. package/dist/ui/assets/{oauth-pEdtO0n-.js → oauth-C1zT34i5.js} +1 -1
  36. package/dist/ui/assets/{oauth-bootstrap-CHQvm1zm.js → oauth-bootstrap-D5-XCYJy.js} +2 -2
  37. package/dist/ui/assets/{oauth-service-E487CG2S.js → oauth-service-BfUBqpue.js} +1 -1
  38. package/dist/ui/assets/{oauth-service-BLhH22XI.js → oauth-service-BrdxQDqa.js} +1 -1
  39. package/dist/ui/assets/{offscreen-client-tyIPYuPQ.js → offscreen-client-BzA2kT9R.js} +1 -1
  40. package/dist/ui/assets/{onboarding-orchestrator-B0AYrgqN.js → onboarding-orchestrator-D5swHBPg.js} +1 -1
  41. package/dist/ui/assets/{openai-codex-responses-C0xjwfYe.js → openai-codex-responses-BoFiTqzq.js} +1 -1
  42. package/dist/ui/assets/{openai-codex-responses-D2f5kBKJ.js → openai-codex-responses-MkWPZpWx.js} +1 -1
  43. package/dist/ui/assets/{openai-completions-BT4Diwqm.js → openai-completions-B6WfdJJI.js} +1 -1
  44. package/dist/ui/assets/{openai-responses-CZEufjZG.js → openai-responses-CHDUum_T.js} +1 -1
  45. package/dist/ui/assets/{openai-responses-s57fcmKx.js → openai-responses-DS_dvwyT.js} +1 -1
  46. package/dist/ui/assets/{openai-responses-shared-CXLudxob.js → openai-responses-shared-BkTAKG6M.js} +1 -1
  47. package/dist/ui/assets/{openai-responses-shared-BIPZ3mo-.js → openai-responses-shared-_AzKl70H.js} +1 -1
  48. package/dist/ui/assets/{panel-rpc-handlers-CaWuTTyj.js → panel-rpc-handlers-Btu3JoLl.js} +1 -1
  49. package/dist/ui/assets/{provider-yeAVK7Ac.js → provider-Dv9mviVN.js} +1 -1
  50. package/dist/ui/assets/{provider-B_YPzOko.js → provider-guvGqt2v.js} +2 -2
  51. package/dist/ui/assets/provider-store-access-DJHwiwpn.js +1 -0
  52. package/dist/ui/assets/provider-store-access-DYhqjzKT.js +1 -0
  53. package/dist/ui/assets/{proxied-fetch-BOut0pqh.js → proxied-fetch-Dx8BWuDH.js} +1 -1
  54. package/dist/ui/assets/{pyodide-qABm7xCc.js → pyodide-_MetQICr.js} +2 -2
  55. package/dist/ui/assets/remote-terminal-view-Clb8pfAY.js +6 -0
  56. package/dist/ui/assets/{secret-env-BtrnLdyG.js → secret-env-D-n3yC2a.js} +1 -1
  57. package/dist/ui/assets/{slicc-editor-B7LN_EoL.js → slicc-editor-CQDCdO3W.js} +1 -1
  58. package/dist/ui/assets/{spawn-DaHdHFzT.js → spawn-DTK8J2iu.js} +1 -1
  59. package/dist/ui/assets/{sql-wasm-rZv93hdK.js → sql-wasm-CJELqQTk.js} +1 -1
  60. package/dist/ui/assets/{store-DuyeqtSu.js → store-BLIW0xe0.js} +1 -1
  61. package/dist/ui/assets/{tray-leave-runtime-d7bYIpZ5.js → tray-leave-runtime-DqZDHkgt.js} +1 -1
  62. package/dist/ui/assets/{upgrade-detection-CHpPmVNQ.js → upgrade-detection-D292gqpK.js} +1 -1
  63. package/dist/ui/assets/{xai-grok-BuLwklR4.js → xai-grok-Balk6g5j.js} +1 -1
  64. package/dist/ui/assets/{xai-grok-BuTRvpeb.js → xai-grok-BeYWHRB2.js} +1 -1
  65. package/dist/ui/index.html +1 -1
  66. package/dist/ui/packages/webapp/index.html +1 -1
  67. package/package.json +1 -1
  68. package/dist/ui/assets/cost-command-DjPtqKVx.js +0 -1
  69. package/dist/ui/assets/provider-store-access-3MjJSflq.js +0 -1
  70. package/dist/ui/assets/provider-store-access-6nY86_H7.js +0 -1
  71. package/dist/ui/assets/remote-terminal-view-CaavScXb.js +0 -6
@@ -876,7 +876,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
876
876
  this.scrollIntoView({ block: 'center', inline: 'center' });
877
877
  const r = this.getBoundingClientRect();
878
878
  return { x: r.x, y: r.y, width: r.width, height: r.height };
879
- }`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0)throw Error(`Element with backend node ${e} has no dimensions`);return{x:n.x+n.width/2,y:n.y+n.height/2}}async ensureLocalConnected(){this.localClient.state===`disconnected`&&await this.localClient.connect({url:C()})}async ensureConnected(){this.client.state===`disconnected`&&(this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null,this.client.state===`disconnected`&&await this.connect())}ensureAttached(){if(!this.sessionId)throw Error(`Not attached to a page. Call attachToPage(targetId) first.`)}addDialogListener(e){e.on(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}removeDialogListener(e){e.off(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}setClient(e){this.client!==e&&(this.removeDialogListener(this.client),this.client=e,this.addDialogListener(this.client))}async boundingBox(e){await this.client.send(`DOM.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.getDocument`,{depth:0},this.sessionId)).root.nodeId,n;try{n=(await this.client.send(`DOM.querySelector`,{nodeId:t,selector:e},this.sessionId)).nodeId}catch{return null}if(!n)return null;let r=(await this.client.send(`DOM.getBoxModel`,{nodeId:n},this.sessionId)).model;if(!r)return null;let i=r.content;return{x:i[0],y:i[1],width:r.width,height:r.height}}};function T(e){let t={role:b(e.role,`unknown`),name:b(e.name)},n=b(e.value);n!==``&&(t.value=n);let r=b(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>T(e)).filter(e=>e.role!==`unknown`)),t}function E(e){return e.headers.get(`x-proxy-error`)===`1`}async function ee(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return D(n,t)}function D(e,t){let n;try{n=JSON.parse(e)}catch{return t}if(!n||typeof n!=`object`)return t;let r=n.error;if(typeof r==`string`&&r.length>0)return r;if(r&&typeof r==`object`){let e=r.message;if(typeof e==`string`&&e.length>0)return e;try{return JSON.stringify(r)}catch{return t}}return t}const O={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let te=null;async function ne(){if(te){let e=Object.values(O).every(e=>te.objectStoreNames.contains(e));if(te.version===3&&e)return te;te.close(),te=null}return new Promise((e,t)=>{let n=indexedDB.open(`slicc-groups`,3);n.onupgradeneeded=e=>{let t=e.target.result,n=e.oldVersion;if(n<1){if(!t.objectStoreNames.contains(O.MESSAGES)){let e=t.createObjectStore(O.MESSAGES,{keyPath:`id`});e.createIndex(`chatJid`,`chatJid`),e.createIndex(`timestamp`,`timestamp`),e.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}t.objectStoreNames.contains(O.SESSIONS)||t.createObjectStore(O.SESSIONS,{keyPath:`groupFolder`}),t.objectStoreNames.contains(O.TASKS)||t.createObjectStore(O.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),t.objectStoreNames.contains(O.STATE)||t.createObjectStore(O.STATE,{keyPath:`key`})}if(n<2){let n=e.target.transaction;if(t.objectStoreNames.contains(`groups`)){let e=n.objectStore(`groups`).getAll();e.onsuccess=()=>{let n=e.result;t.deleteObjectStore(`groups`);let r=t.createObjectStore(O.SCOOPS,{keyPath:`jid`});r.createIndex(`type`,`type`);for(let e of n){let t=e.isMain??!1,n={jid:e.jid,name:e.name,folder:e.folder,trigger:t?void 0:e.trigger||`@${e.folder}`,requiresTrigger:!t&&(e.requiresTrigger??!0),isCone:t,type:t?`cone`:`scoop`,assistantLabel:t?`sliccy`:e.config?.assistantName||e.folder,addedAt:e.addedAt,config:e.config?{systemPromptAppend:e.config.systemPromptAppend,timeout:e.config.timeout,assistantName:e.config.assistantName}:void 0};r.put(n)}}}else t.objectStoreNames.contains(O.SCOOPS)||t.createObjectStore(O.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}n<3&&(t.objectStoreNames.contains(O.WEBHOOKS)||t.createObjectStore(O.WEBHOOKS,{keyPath:`id`}),t.objectStoreNames.contains(O.CRONTASKS)||t.createObjectStore(O.CRONTASKS,{keyPath:`id`}))},n.onsuccess=()=>{te=n.result,e(te)},n.onerror=()=>t(n.error)})}async function k(e,t=`readonly`){return(await ne()).transaction(e,t).objectStore(e)}async function re(e){let t=await k(O.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ie(){let e=await k(O.SCOOPS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>{let e={};for(let t of r.result)e[t.jid]=t;t(e)},r.onerror=()=>n(r.error)})}async function ae(e){let t=await k(O.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function oe(){let e=await k(O.MESSAGES,`readwrite`);return new Promise((t,n)=>{let r=e.clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}async function se(e){let t=(await k(O.MESSAGES,`readwrite`)).index(`chatJid_timestamp`),n=IDBKeyRange.bound([e,``],[e,`￿`],!1,!1);return new Promise((e,r)=>{let i=t.openCursor(n);i.onsuccess=()=>{let t=i.result;if(!t){e();return}t.delete(),t.continue()},i.onerror=()=>r(i.error)})}async function ce(e){let t=await k(O.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function le(e){let t=await k(O.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ue(e){let t=(await k(O.MESSAGES)).index(`chatJid_timestamp`),n=IDBKeyRange.bound([e,``],[e,`￿`],!1,!1);return new Promise((e,r)=>{let i=t.getAll(n);i.onsuccess=()=>e(i.result),i.onerror=()=>r(i.error)})}async function de(e,t,n){let r=(await k(O.MESSAGES)).index(`chatJid_timestamp`),i=IDBKeyRange.bound([e,t],[e,`￿`],!0,!1);return new Promise((e,t)=>{let a=r.getAll(i);a.onsuccess=()=>{let t=a.result;n&&(t=t.filter(e=>e.senderName!==n)),e(t)},a.onerror=()=>t(a.error)})}async function fe(e){let t=await k(O.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function pe(e){let t=await k(O.TASKS);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async function me(){let e=await k(O.TASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}async function he(e){let t=await k(O.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ge(e){let t=await k(O.STATE);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result?.value??null),i.onerror=()=>r(i.error)})}async function _e(e,t){let n=await k(O.STATE,`readwrite`);return new Promise((r,i)=>{let a=n.put({key:e,value:t});a.onsuccess=()=>r(),a.onerror=()=>i(a.error)})}async function ve(){await ne()}async function ye(e){let t=await k(O.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function be(){try{let e=await k(O.WEBHOOKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function xe(e){let t=await k(O.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function Se(e){let t=await k(O.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function A(){try{let e=await k(O.CRONTASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function Ce(e){let t=await k(O.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}function we(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}const Te=`slicc.trayWorkerBaseUrl`,Ee=`https://www.sliccy.ai`;_(`tray-leader`);let De={state:`inactive`,session:null,error:null};function j(){return{...De,session:De.session?{...De.session}:null}}const Oe=new Set;function M(e){return Oe.add(e),()=>{Oe.delete(e)}}let N={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function ke(){return{...N}}const Ae=new Set;function je(e){return Ae.add(e),()=>{Ae.delete(e)}}const Me=new Set([`send_message`,`list_scoops`,`list_tasks`]),Ne=`sessions`;function Pe(){return new Promise((e,t)=>{let n=indexedDB.open(`browser-coding-agent`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(Ne)||e.createObjectStore(Ne,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Fe=class{db=null;async init(){this.db=await Pe()}ensureDb(){if(!this.db)throw Error(`SessionStore not initialized. Call init() first.`);return this.db}async save(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readwrite`);i.objectStore(Ne).put(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readonly`).objectStore(Ne).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async list(){let e=this.ensureDb();return new Promise((t,n)=>{let r=e.transaction(Ne,`readonly`).objectStore(Ne).getAll();r.onsuccess=()=>{t(r.result.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id))},r.onerror=()=>n(r.error)})}async delete(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readwrite`);i.objectStore(Ne).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async saveMessages(e,t){let n=await this.load(e),r=n?{...n,messages:t,updatedAt:Date.now()}:{id:e,messages:t,createdAt:Date.now(),updatedAt:Date.now()};await this.save(r)}};const Ie=_(`tool-ui`),Le=new class{pending=new Map;idCounter=0;generateId(){return`tool-ui-${++this.idCounter}-${Date.now().toString(36)}`}register(e,t,n,r){this.pending.set(e,{request:t,resolve:n,reject:r}),Ie.info(`Tool UI registered`,{id:e})}async handleAction(e,t){let n=this.pending.get(e);if(!n){Ie.warn(`Action for unknown tool UI`,{id:e,action:t.action});return}Ie.info(`Tool UI action`,{id:e,action:t.action});try{let e;e=n.request.onAction?await n.request.onAction(t.action,t.data):t,n.resolve(e)}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.pending.delete(e)}}cancel(e,t=`cancelled`){let n=this.pending.get(e);n&&(n.reject(Error(t)),this.pending.delete(e),Ie.info(`Tool UI cancelled`,{id:e,reason:t}))}cancelAll(e=`cancelled`){let t=this.pending.size;for(let[t,n]of this.pending)n.reject(Error(e));this.pending.clear(),t>0&&Ie.info(`All tool UIs cancelled`,{reason:e,count:t})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function Re(e,t){let n=e.id??Le.generateId(),r,i,a=new Promise((e,t)=>{r=e,i=t});return Le.register(n,e,r,i),t?t({content:[{type:`tool_ui`,requestId:n,html:e.html}]}):Ie.warn(`showToolUI called without onUpdate callback — UI may not render`),a.finally(()=>{t&&t({content:[{type:`tool_ui_done`,requestId:n}]})})}const ze=[];function Be(e){return ze.push(e),e}function Ve(e){let t=ze.lastIndexOf(e);t!==-1&&ze.splice(t,1)}function He(){return ze.length>0?ze[ze.length-1]:null}async function Ue(e){let t=He();return t?Re(e,t.onUpdate):(Ie.warn(`showToolUIFromContext called without execution context`),null)}const We=_(`panel-transport`);function Ge(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Ke(){return{onMessage:e=>{let t=(t,n,r)=>(Ge(t)&&e(t),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:e=>{chrome.runtime.sendMessage({source:`offscreen`,payload:e}).catch(e=>{let t=e instanceof Error?e.message:String(e);/receiving end does not exist/i.test(t)||We.error(`Offscreen → panel transport send failed`,{error:t})})}}}const qe=_(`offscreen-bridge`);var Je=class{orchestrator=null;browserAPI=null;messageBuffers=new Map;currentMessageId=new Map;scoopStatuses=new Map;sessionStore=null;followerSync=null;_transport;transportUnsubscribe=null;activeScoopJid=null;agentEventListeners=new Set;fanOutMessageId=new Map;constructor(e){this._transport=e??null}get transport(){return this._transport||=Ke(),this._transport}async bind(e,t){this.orchestrator=e,this.browserAPI=t??null,this.transportUnsubscribe?.(),this.transportUnsubscribe=this.setupMessageListener();let n=new Fe;await n.init(),this.sessionStore=n}static createCallbacks(e){return{onResponse:(t,n,r)=>{let i=e.getOrCreateAssistantMsg(t);r?i.content+=n:(i.content=n,i.isStreaming=!1),e.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:n})},onResponseDone:t=>{let n=e.currentMessageId.get(t);if(n){let r=e.getBuffer(t).find(e=>e.id===n);r&&(r.isStreaming=!1),e.currentMessageId.delete(t)}e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`})},onSendMessage:(t,n)=>{let r=e.getBuffer(t),i=`msg-${Ye()}`;r.push({id:i,role:`assistant`,content:n,timestamp:Date.now()}),e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:n}),e.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`})},onStatusChange:(t,n)=>{e.scoopStatuses.set(t,n),n===`ready`&&e.currentMessageId.delete(t),e.emit({type:`scoop-status`,scoopJid:t,status:n}),e.emitScoopList()},onCompactionStateChange:(t,n)=>{e.emit({type:`compaction-state`,scoopJid:t,state:n})},onError:(t,n)=>{e.emit({type:`error`,scoopJid:t,error:n})},onToolStart:(t,n,r)=>{if(Me.has(n))return;let i=e.getOrCreateAssistantMsg(t);i.toolCalls||=[],i.toolCalls.push({id:Ye(),name:n,input:r}),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:n,toolInput:r})},onToolEnd:(t,n,r,i)=>{if(Me.has(n))return;let a=e.currentMessageId.get(t);if(a){let o=e.getBuffer(t).find(e=>e.id===a);if(o?.toolCalls){let e=[...o.toolCalls].reverse().find(e=>e.name===n&&e.result===void 0);e&&(e.result=r,e.isError=i)}}e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_end`,toolName:n,toolResult:r,isError:i})},onToolUI:(t,n,r,i)=>{e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_ui`,toolName:n,requestId:r,html:i})},onToolUIDone:(t,n)=>{e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_ui_done`,requestId:n})},onIncomingMessage:(t,n)=>{let r={id:n.id,role:`user`,content:n.channel===`delegation`?`**[Instructions from sliccy]**\n\n${n.content}`:n.content,attachments:n.attachments,timestamp:new Date(n.timestamp).getTime(),source:n.channel===`delegation`?`delegation`:void 0,channel:n.channel};e.getBuffer(t).push(r),e.persistScoop(t),e.notifyPanelIncomingMessage(t,n)}}}notifyPanelIncomingMessage(e,t){this.emit({type:`incoming-message`,scoopJid:e,message:{id:t.id,content:t.content,attachments:t.attachments,channel:t.channel,senderName:t.senderName,fromAssistant:t.fromAssistant,timestamp:t.timestamp}})}toScoopSnapshot(e){let t=e.config&&(e.config.modelId!==void 0||e.config.thinkingLevel!==void 0)?{...e.config.modelId===void 0?{}:{modelId:e.config.modelId},...e.config.thinkingLevel===void 0?{}:{thinkingLevel:e.config.thinkingLevel}}:void 0;return{jid:e.jid,name:e.name,folder:e.folder,isCone:e.isCone,assistantLabel:e.assistantLabel,status:this.scoopStatuses.get(e.jid)??`ready`,...t?{config:t}:{}}}buildStateSnapshot(){let e=this.orchestrator?.getScoops().map(e=>this.toScoopSnapshot(e))??[],t=e.find(e=>e.isCone);return{type:`state-snapshot`,scoops:e,activeScoopJid:this.getActiveScoopJid()??t?.jid??null,trayRuntimeStatus:this.buildTrayRuntimeStatus()}}emitTrayRuntimeStatus(){let e=this.buildTrayRuntimeStatus(),t={type:`tray-runtime-status`,leader:e.leader,follower:e.follower};this.emit(t)}buildTrayRuntimeStatus(){let e=j(),t=ke();return{leader:{state:e.state,session:e.session,error:e.error??null,reconnectAttempts:e.reconnectAttempts??0},follower:{state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime}}}setFollowerSync(e){this.followerSync=e}setActiveScoopJid(e){this.activeScoopJid=e}getActiveScoopJid(){return this.activeScoopJid}onAgentEvent(e){return this.agentEventListeners.add(e),()=>{this.agentEventListeners.delete(e)}}fanOutAgentEvent(e){let{scoopJid:t,eventType:n}=e,r=[],i=()=>{let e=this.fanOutMessageId.get(t);return e||(e=`scoop-${t}-${Ye()}`,this.fanOutMessageId.set(t,e),r.push({type:`message_start`,messageId:e})),e};switch(n){case`text_delta`:{let t=i();r.push({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=i();r.push({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput});break}case`tool_end`:{let n=this.fanOutMessageId.get(t);if(!n)return;r.push({type:`tool_result`,messageId:n,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError});break}case`tool_ui`:{let t=i();r.push({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});break}case`tool_ui_done`:{let n=this.fanOutMessageId.get(t);if(!n)return;r.push({type:`tool_ui_done`,messageId:n,requestId:e.requestId??``});break}case`response_done`:{let e=this.fanOutMessageId.get(t);if(!e)return;r.push({type:`content_done`,messageId:e}),this.fanOutMessageId.delete(t);break}case`turn_end`:this.fanOutMessageId.delete(t);break}for(let e of r)for(let n of this.agentEventListeners)try{n(t,e)}catch(e){qe.error(`onAgentEvent listener threw`,{error:e instanceof Error?e.message:String(e)})}}getMessagesForJid(e){return this.getBuffer(e)}async routeSprinkleLick(e,t,n){if(!this.orchestrator)return;let r=this.orchestrator.getScoops(),i=n?r.find(e=>e.name===n||e.folder===n||e.folder===`${n}-scoop`):void 0;if(i||=r.find(e=>e.isCone),!i)return;let a=`sprinkle-${e}-${Date.now()}`,o=`[Sprinkle Event: ${e}]\n\`\`\`json\n${JSON.stringify(t,null,2)}\n\`\`\``,s={id:a,chatJid:i.jid,senderId:`sprinkle`,senderName:`sprinkle:${e}`,content:o,timestamp:new Date().toISOString(),fromAssistant:!1,channel:`sprinkle`};this.getBuffer(i.jid).push({id:a,role:`user`,content:o,timestamp:Date.now(),source:`lick`,channel:`sprinkle`}),this.persistScoop(i.jid),await this.orchestrator.handleMessage(s)}applyFollowerSnapshot(e){if(!this.orchestrator)return;let t=this.orchestrator.getScoops().find(e=>e.isCone);if(!t)return;let n=e.map(e=>({id:e.id,role:e.role,content:e.content,attachments:e.attachments,timestamp:e.timestamp,source:e.source,channel:e.channel,toolCalls:e.toolCalls?.map(e=>({id:e.id,name:e.name,input:e.input,result:e.result,isError:e.isError})),isStreaming:e.isStreaming}));if(this.messageBuffers.set(t.jid,n),this.currentMessageId.delete(t.jid),this.fanOutMessageId.delete(t.jid),this.sessionStore){let n=t.isCone?`session-cone`:`session-${t.folder}`;this.sessionStore.saveMessages(n,e).catch(e=>{qe.error(`applyFollowerSnapshot persist failed`,{error:e instanceof Error?e.message:String(e)})})}this.emit({type:`scoop-messages-replaced`,scoopJid:t.jid,messages:n})}getConeJid(){return this.orchestrator?.getScoops().find(e=>e.isCone)?.jid??null}emitFollowerAgentEvent(e){let t=this.getConeJid();if(t)switch(e.type){case`content_delta`:this.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:e.text});break;case`content_done`:this.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`});break;case`tool_use_start`:this.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:e.toolName,toolInput:e.toolInput});break;case`tool_result`:this.emit({type:`agent-event`,scoopJid:t,eventType:`tool_end`,toolName:e.toolName,toolResult:e.result,isError:e.isError});break;case`turn_end`:this.emit({type:`agent-event`,scoopJid:t,eventType:`turn_end`});break;case`error`:this.emit({type:`error`,scoopJid:t,error:e.error});break}}emitFollowerIncomingMessage(e,t){let n=this.getConeJid();n&&this.emit({type:`incoming-message`,scoopJid:n,message:{id:e,content:t,channel:`web`,senderName:`User`,fromAssistant:!1,timestamp:new Date().toISOString()}})}emitFollowerStatus(e){let t=this.getConeJid();if(!t)return;let n=e===`processing`?`processing`:`ready`;this.scoopStatuses.set(t,n),this.emit({type:`scoop-status`,scoopJid:t,status:n})}async handleRequestScoopMessages(e){if(!this.orchestrator)return;let t=this.orchestrator.getScoops().find(t=>t.jid===e);if(!t)return;let n=this.messageBuffers.get(e);if(n&&n.length>0){this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:n});return}let r=this.orchestrator.getScoopContext(e);if(r){let{agentMessagesToChatMessages:n}=await import(`./agent-message-to-chat-D-uGBdBr.js`),i=r.getAgentMessages();if(i.length>0){let r=n(i,{source:t.isCone?`cone`:t.name??t.folder}).map(e=>({id:e.id,role:e.role,content:e.content,attachments:e.attachments,timestamp:e.timestamp,source:e.source,channel:e.channel,toolCalls:e.toolCalls?.map(e=>({id:e.id,name:e.name,input:e.input,result:e.result,isError:e.isError})),isStreaming:!1}));this.messageBuffers.set(e,r),this.currentMessageId.delete(e),this.fanOutMessageId.delete(e),this.persistScoop(e),this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:r});return}}if(this.sessionStore){let n=t.isCone?`session-cone`:`session-${t.folder}`;try{let t=(await this.sessionStore.load(n))?.messages??[];t.length>0&&(this.messageBuffers.set(e,t),this.currentMessageId.delete(e),this.fanOutMessageId.delete(e),this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:t}))}catch(e){qe.error(`sessionStore load failed`,{sessionId:n,error:e instanceof Error?e.message:String(e)})}}}persistScoop(e){if(!this.sessionStore||!this.orchestrator)return;let t=this.orchestrator.getScoops().find(t=>t.jid===e);if(!t)return;let n=t.isCone?`session-cone`:`session-${t.folder}`,r=this.messageBuffers.get(e);!r||r.length===0||this.sessionStore.saveMessages(n,r).catch(e=>{qe.error(`persistScoop failed`,{sessionId:n,error:e instanceof Error?e.message:String(e)})})}getBuffer(e){let t=this.messageBuffers.get(e);return t||(t=[],this.messageBuffers.set(e,t)),t}getOrCreateAssistantMsg(e){let t=this.getBuffer(e),n=this.currentMessageId.get(e);if(n){let e=t.find(e=>e.id===n);if(e)return e}n=`scoop-${e}-${Ye()}`,this.currentMessageId.set(e,n);let r=(this.orchestrator?.getScoops()??[]).find(t=>t.jid===e),i=r?.isCone?`cone`:r?.name??`unknown`,a={id:n,role:`assistant`,content:``,timestamp:Date.now(),toolCalls:[],isStreaming:!0,source:i};return t.push(a),a}setupMessageListener(){return this.transport.onMessage(e=>{if(e.source===`panel`){if(e.payload?.type===`sprinkle-op-response`){import(`./sprinkle-proxy-rF3NSOGq.js`).then(({handleSprinkleOpResponse:t})=>{t(e.payload)});return}this.handlePanelMessage(e.payload).catch(t=>{console.error(`[offscreen-bridge] handlePanelMessage error:`,t);let n=e.payload.scoopJid;n&&this.emit({type:`error`,scoopJid:n,error:t instanceof Error?t.message:String(t)})})}})}async handlePanelMessage(e){if(this.orchestrator)switch(e.type){case`user-message`:{if(this.followerSync){this.getBuffer(e.scoopJid).push({id:e.messageId,role:`user`,content:e.text,attachments:e.attachments,timestamp:Date.now()}),this.persistScoop(e.scoopJid),this.followerSync.sendMessage(e.text,e.messageId,e.attachments);break}let t={id:e.messageId,chatJid:e.scoopJid,senderId:`user`,senderName:`User`,content:e.text,attachments:e.attachments,timestamp:new Date().toISOString(),fromAssistant:!1,channel:`web`};this.getBuffer(e.scoopJid).push({id:e.messageId,role:`user`,content:e.text,attachments:e.attachments,timestamp:Date.now()}),this.persistScoop(e.scoopJid),await this.orchestrator.handleMessage(t),this.orchestrator.createScoopTab(e.scoopJid);break}case`cone-create`:{let t={jid:`cone_${Date.now()}`,name:e.name,folder:`cone`,isCone:!0,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()};await this.orchestrator.registerScoop(t),this.emit({type:`scoop-created`,scoop:this.toScoopSnapshot(t)});break}case`scoop-feed`:await this.orchestrator.delegateToScoop(e.scoopJid,e.prompt,`sliccy`);break;case`scoop-drop`:{let t=this.orchestrator.getScoops().find(t=>t.jid===e.scoopJid);if(await this.orchestrator.unregisterScoop(e.scoopJid),this.messageBuffers.delete(e.scoopJid),this.currentMessageId.delete(e.scoopJid),this.fanOutMessageId.delete(e.scoopJid),this.scoopStatuses.delete(e.scoopJid),t&&this.sessionStore){let e=t.isCone?`session-cone`:`session-${t.folder}`;this.sessionStore.delete(e).catch(t=>{console.warn(`[offscreen-bridge] Failed to delete session on scoop drop:`,e,t)})}this.emitScoopList();break}case`abort`:this.orchestrator.stopScoop(e.scoopJid),this.orchestrator.clearQueuedMessages(e.scoopJid).catch(e=>{console.warn(`[offscreen-bridge] Failed to clear queued messages on abort:`,e)});break;case`set-model`:this.orchestrator.updateModel();break;case`request-state`:this.emit(this.buildStateSnapshot());break;case`request-scoop-messages`:await this.handleRequestScoopMessages(e.scoopJid);break;case`clear-chat`:{let t=this.orchestrator.getScoops().find(e=>e.isCone)?.jid;t&&await this.orchestrator.clearScoopMessages(t),this.sessionStore&&await this.sessionStore.delete(`session-cone`),t&&(this.messageBuffers.delete(t),this.currentMessageId.delete(t),this.fanOutMessageId.delete(t)),this.emit({type:`clear-chat-ack`,requestId:e.requestId});break}case`clear-filesystem`:try{await this.orchestrator.resetFilesystem()}catch(e){console.error(`[offscreen-bridge] clear-filesystem failed:`,e)}break;case`refresh-model`:this.orchestrator.updateModel();break;case`set-thinking-level`:{let t=e;try{await this.orchestrator.setScoopThinkingLevel(t.scoopJid,t.level)}catch(e){console.error(`[offscreen-bridge] set-thinking-level failed:`,e)}break}case`sprinkle-lick`:{let t=e;await this.routeSprinkleLick(t.sprinkleName,t.body,t.targetScoop);break}case`lick-webhook-event`:this.orchestrator.handleWebhookEvent(e.webhookId,e.headers,e.body);break;case`reload-skills`:this.orchestrator.reloadAllSkills().catch(e=>{console.warn(`[offscreen-bridge] Skill reload failed:`,e)});break;case`panel-cdp-command`:{let{id:t,method:n,params:r,sessionId:i}=e;if(!this.browserAPI){console.warn(`[offscreen-bridge] Panel CDP command received but BrowserAPI is null`),this.emit({type:`panel-cdp-response`,id:t,error:`BrowserAPI not available`});break}try{let e=await this.browserAPI.getTransport().send(n,r,i);this.emit({type:`panel-cdp-response`,id:t,result:e})}catch(e){this.emit({type:`panel-cdp-response`,id:t,error:e instanceof Error?e.message:String(e)})}break}case`tool-ui-action`:{let{requestId:t,action:n,data:r}=e;try{await Le.handleAction(t,{action:n,data:r})}catch(e){let r=e instanceof Error?e.message:String(e);console.error(`[offscreen-bridge] Tool UI action failed`,{requestId:t,action:n,error:r}),Le.cancel(t,`Action failed: ${r}`)}break}case`local-storage-set`:try{globalThis.localStorage?.setItem(e.key,e.value)}catch(e){console.warn(`[offscreen-bridge] local-storage-set failed:`,e)}break;case`local-storage-remove`:try{globalThis.localStorage?.removeItem(e.key)}catch(e){console.warn(`[offscreen-bridge] local-storage-remove failed:`,e)}break;case`local-storage-clear`:try{globalThis.localStorage?.clear()}catch(e){console.warn(`[offscreen-bridge] local-storage-clear failed:`,e)}break}}emitScoopList(){let e=this.orchestrator?.getScoops().map(e=>this.toScoopSnapshot(e))??[];this.emit({type:`scoop-list`,scoops:e})}emit(e){this.transport.send(e),e.type===`agent-event`&&this.fanOutAgentEvent(e)}};function Ye(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}const Xe=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function Ze(e){return typeof e==`string`&&Xe.includes(e)}var Qe=s((e=>{(function(){var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function n(e){return i(o(e),arguments)}function r(e,t){return n.apply(null,[e].concat(t||[]))}function i(e,r){var i=1,a=e.length,o,s=``,c,l,u,d,f,p,m,h;for(c=0;c<a;c++)if(typeof e[c]==`string`)s+=e[c];else if(typeof e[c]==`object`){if(u=e[c],u.keys)for(o=r[i],l=0;l<u.keys.length;l++){if(o==null)throw Error(n(`[sprintf] Cannot access property "%s" of undefined value "%s"`,u.keys[l],u.keys[l-1]));o=o[u.keys[l]]}else o=u.param_no?r[u.param_no]:r[i++];if(t.not_type.test(u.type)&&t.not_primitive.test(u.type)&&o instanceof Function&&(o=o()),t.numeric_arg.test(u.type)&&typeof o!=`number`&&isNaN(o))throw TypeError(n(`[sprintf] expecting number but found %T`,o));switch(t.number.test(u.type)&&(m=o>=0),u.type){case`b`:o=parseInt(o,10).toString(2);break;case`c`:o=String.fromCharCode(parseInt(o,10));break;case`d`:case`i`:o=parseInt(o,10);break;case`j`:o=JSON.stringify(o,null,u.width?parseInt(u.width):0);break;case`e`:o=u.precision?parseFloat(o).toExponential(u.precision):parseFloat(o).toExponential();break;case`f`:o=u.precision?parseFloat(o).toFixed(u.precision):parseFloat(o);break;case`g`:o=u.precision?String(Number(o.toPrecision(u.precision))):parseFloat(o);break;case`o`:o=(parseInt(o,10)>>>0).toString(8);break;case`s`:o=String(o),o=u.precision?o.substring(0,u.precision):o;break;case`t`:o=String(!!o),o=u.precision?o.substring(0,u.precision):o;break;case`T`:o=Object.prototype.toString.call(o).slice(8,-1).toLowerCase(),o=u.precision?o.substring(0,u.precision):o;break;case`u`:o=parseInt(o,10)>>>0;break;case`v`:o=o.valueOf(),o=u.precision?o.substring(0,u.precision):o;break;case`x`:o=(parseInt(o,10)>>>0).toString(16);break;case`X`:o=(parseInt(o,10)>>>0).toString(16).toUpperCase();break}t.json.test(u.type)?s+=o:(t.number.test(u.type)&&(!m||u.sign)?(h=m?`+`:`-`,o=o.toString().replace(t.sign,``)):h=``,f=u.pad_char?u.pad_char===`0`?`0`:u.pad_char.charAt(1):` `,p=u.width-(h+o).length,d=u.width&&p>0?f.repeat(p):``,s+=u.align?h+o+d:f===`0`?h+d+o:d+h+o)}return s}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var n=e,r,i=[],o=0;n;){if((r=t.text.exec(n))!==null)i.push(r[0]);else if((r=t.modulo.exec(n))!==null)i.push(`%`);else if((r=t.placeholder.exec(n))!==null){if(r[2]){o|=1;var s=[],c=r[2],l=[];if((l=t.key.exec(c))!==null)for(s.push(l[1]);(c=c.substring(l[0].length))!==``;)if((l=t.key_access.exec(c))!==null)s.push(l[1]);else if((l=t.index_access.exec(c))!==null)s.push(l[1]);else throw SyntaxError(`[sprintf] failed to parse named argument key`);else throw SyntaxError(`[sprintf] failed to parse named argument key`);r[2]=s}else o|=2;if(o===3)throw Error(`[sprintf] mixing positional and named placeholders is not (yet) supported`);i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}else throw SyntaxError(`[sprintf] unexpected placeholder`);n=n.substring(r[0].length)}return a[e]=i}e!==void 0&&(e.sprintf=n,e.vsprintf=r),typeof window<`u`&&(window.sprintf=n,window.vsprintf=r,typeof define==`function`&&define.amd&&define(function(){return{sprintf:n,vsprintf:r}}))})()}))();const $e=(e,t,n)=>{let r=e instanceof RegExp?et(e,n):e,i=t instanceof RegExp?et(t,n):t,a=r!==null&&i!=null&&tt(r,i,n);return a&&{start:a[0],end:a[1],pre:n.slice(0,a[0]),body:n.slice(a[0]+r.length,a[1]),post:n.slice(a[1]+i.length)}},et=(e,t)=>{let n=t.match(e);return n?n[0]:null},tt=(e,t,n)=>{let r,i,a,o,s,c=n.indexOf(e),l=n.indexOf(t,c+1),u=c;if(c>=0&&l>0){if(e===t)return[c,l];for(r=[],a=n.length;u>=0&&!s;){if(u===c)r.push(u),c=n.indexOf(e,u+1);else if(r.length===1){let e=r.pop();e!==void 0&&(s=[e,l])}else i=r.pop(),i!==void 0&&i<a&&(a=i,o=l),l=n.indexOf(t,u+1);u=c<l&&c>=0?c:l}r.length&&o!==void 0&&(s=[a,o])}return s},nt=`\0SLASH`+Math.random()+`\0`,rt=`\0OPEN`+Math.random()+`\0`,it=`\0CLOSE`+Math.random()+`\0`,at=`\0COMMA`+Math.random()+`\0`,ot=`\0PERIOD`+Math.random()+`\0`,eee=new RegExp(nt,`g`),tee=new RegExp(rt,`g`),nee=new RegExp(it,`g`),ree=new RegExp(at,`g`),st=new RegExp(ot,`g`),ct=/\\\\/g,iee=/\\{/g,aee=/\\}/g,oee=/\\,/g,see=/\\\./g;function lt(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function cee(e){return e.replace(ct,nt).replace(iee,rt).replace(aee,it).replace(oee,at).replace(see,ot)}function lee(e){return e.replace(eee,`\\`).replace(tee,`{`).replace(nee,`}`).replace(ree,`,`).replace(st,`.`)}function ut(e){if(!e)return[``];let t=[],n=$e(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=ut(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}function uee(e,t={}){if(!e)return[];let{max:n=1e5}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),dt(cee(e),n,!0).map(lee)}function dee(e){return`{`+e+`}`}function fee(e){return/^-?0\d/.test(e)}function pee(e,t){return e<=t}function mee(e,t){return e>=t}function dt(e,t,n){let r=[],i=$e(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?dt(i.post,t,!1):[``];if(/\$$/.test(i.pre))for(let e=0;e<o.length&&e<t;e++){let t=a+`{`+i.body+`}`+o[e];r.push(t)}else{let s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=s||c,u=i.body.indexOf(`,`)>=0;if(!l&&!u)return i.post.match(/,(?!,).*\}/)?(e=i.pre+`{`+i.body+it+i.post,dt(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=ut(i.body),d.length===1&&d[0]!==void 0&&(d=dt(d[0],t,!1).map(dee),d.length===1))return o.map(e=>i.pre+d[0]+e);let f;if(l&&d[0]!==void 0&&d[1]!==void 0){let e=lt(d[0]),t=lt(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.abs(lt(d[2])):1,i=pee;t<e&&(r*=-1,i=mee);let a=d.some(fee);f=[];for(let o=e;i(o,t);o+=r){let e;if(c)e=String.fromCharCode(o),e===`\\`&&(e=``);else if(e=String(o),a){let t=n-e.length;if(t>0){let n=Array(t+1).join(`0`);e=o<0?`-`+n+e.slice(1):n+e}}f.push(e)}}else{f=[];for(let e=0;e<d.length;e++)f.push.apply(f,dt(d[e],t,!1))}for(let e=0;e<f.length;e++)for(let i=0;i<o.length&&r.length<t;i++){let t=a+f[e]+o[i];(!n||l||t)&&r.push(t)}}return r}const ft=e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>65536)throw TypeError(`pattern is too long`)},hee={"[:alnum:]":[`\\p{L}\\p{Nl}\\p{Nd}`,!0],"[:alpha:]":[`\\p{L}\\p{Nl}`,!0],"[:ascii:]":[`\\x00-\\x7f`,!1],"[:blank:]":[`\\p{Zs}\\t`,!0],"[:cntrl:]":[`\\p{Cc}`,!0],"[:digit:]":[`\\p{Nd}`,!0],"[:graph:]":[`\\p{Z}\\p{C}`,!0,!0],"[:lower:]":[`\\p{Ll}`,!0],"[:print:]":[`\\p{C}`,!0],"[:punct:]":[`\\p{P}`,!0],"[:space:]":[`\\p{Z}\\t\\r\\n\\v\\f`,!0],"[:upper:]":[`\\p{Lu}`,!0],"[:word:]":[`\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}`,!0],"[:xdigit:]":[`A-Fa-f0-9`,!1]},pt=e=>e.replace(/[[\]\\-]/g,`\\$&`),gee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),mt=e=>e.join(``),_ee=(e,t)=>{let n=t;if(e.charAt(n)!==`[`)throw Error(`not in a brace expression`);let r=[],i=[],a=n+1,o=!1,s=!1,c=!1,l=!1,u=n,d=``;WHILE:for(;a<e.length;){let t=e.charAt(a);if((t===`!`||t===`^`)&&a===n+1){l=!0,a++;continue}if(t===`]`&&o&&!c){u=a+1;break}if(o=!0,t===`\\`&&!c){c=!0,a++;continue}if(t===`[`&&!c){for(let[t,[o,c,l]]of Object.entries(hee))if(e.startsWith(t,a)){if(d)return[`$.`,!1,e.length-n,!0];a+=t.length,l?i.push(o):r.push(o),s||=c;continue WHILE}}if(c=!1,d){t>d?r.push(pt(d)+`-`+pt(t)):t===d&&r.push(pt(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(pt(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(pt(t)),a++}if(u<a)return[``,!1,0,!1];if(!r.length&&!i.length)return[`$.`,!1,e.length-n,!0];if(i.length===0&&r.length===1&&/^\\?.$/.test(r[0])&&!l)return[gee(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+mt(r)+`]`,p=`[`+(l?``:`^`)+mt(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},ht=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^\/\\])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,`$1$2`).replace(/\\([^\/])/g,`$1`):t?e.replace(/\[([^\/\\{}])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,`$1$2`).replace(/\\([^\/{}])/g,`$1`);var gt;const _t=new Set([`!`,`?`,`+`,`*`,`@`]),vt=e=>_t.has(e),yt=e=>vt(e.type),bt=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),xt=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),vee=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),St=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),Ct=`(?!\\.)`,yee=new Set([`[`,`.`]),bee=new Set([`..`,`.`]),xee=new Set(`().*{}+?[]^$\\!`),See=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),wt=`[^/]`,Tt=wt+`*?`,Et=wt+`+?`;let Cee=0;var Dt=class{type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++Cee;get depth(){return(this.#i?.depth??-1)+1}[Symbol.for(`nodejs.util.inspect.custom`)](){return{"@@type":`AST`,id:this.id,type:this.type,root:this.#e.id,parent:this.#i?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(e,t,n={}){this.type=e,e&&(this.#t=!0),this.#i=t,this.#e=this.#i?this.#i.#e:this,this.#c=this.#e===this?n:this.#e.#c,this.#o=this.#e===this?[]:this.#e.#o,e===`!`&&!this.#e.#s&&this.#o.push(this),this.#a=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let e of this.#r)if(typeof e!=`string`&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#l===void 0?this.type?this.#l=this.type+`(`+this.#r.map(e=>String(e)).join(`|`)+`)`:this.#l=this.#r.map(e=>String(e)).join(``):this.#l}#d(){if(this!==this.#e)throw Error(`should only call on root`);if(this.#s)return this;this.toString(),this.#s=!0;let e;for(;e=this.#o.pop();){if(e.type!==`!`)continue;let t=e,n=t.#i;for(;n;){for(let r=t.#a+1;!n.type&&r<n.#r.length;r++)for(let t of e.#r){if(typeof t==`string`)throw Error(`string part in extglob AST??`);t.copyIn(n.#r[r])}t=n,n=t.#i}}return this}push(...e){for(let t of e)if(t!==``){if(typeof t!=`string`&&!(t instanceof gt&&t.#i===this))throw Error(`invalid part: `+t);this.#r.push(t)}}toJSON(){let e=this.type===null?this.#r.slice().map(e=>typeof e==`string`?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#i?.type===`!`)&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#a===0)return!0;let e=this.#i;for(let t=0;t<this.#a;t++){let n=e.#r[t];if(!(n instanceof gt&&n.type===`!`))return!1}return!0}isEnd(){if(this.#e===this||this.#i?.type===`!`)return!0;if(!this.#i?.isEnd())return!1;if(!this.type)return this.#i?.isEnd();let e=this.#i?this.#i.#r.length:0;return this.#a===e-1}copyIn(e){typeof e==`string`?this.push(e):this.push(e.clone(this))}clone(e){let t=new gt(this.type,e);for(let e of this.#r)t.copyIn(e);return t}static#f(e,t,n,r,i){let a=r.maxExtglobRecursion??2,o=!1,s=!1,c=-1,l=!1;if(t.type===null){let u=n,d=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,d+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),d+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,d+=n;continue}if(!r.noext&&vt(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new gt(n,t);u=gt.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new gt(null,t),f=[],p=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,p+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),p+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,p+=n;continue}if(!r.noext&&vt(n)&&e.charAt(u)===`(`&&(i<=a||t&&t.#h(n))){let a=t&&t.#h(n)?0:1;d.push(p),p=``;let o=new gt(n,d);d.push(o),u=gt.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new gt(null,t);continue}if(n===`)`)return p===``&&t.#r.length===0&&(t.#u=!0),d.push(p),p=``,t.push(...f,d),u;p+=n}return t.type=null,t.#t=void 0,t.#r=[e.substring(n-1)],u}#p(e){return this.#m(e,xt)}#m(e,t=bt){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null)return!1;let n=e.#r[0];return!n||typeof n!=`object`||n.type===null?!1:this.#h(n.type,t)}#h(e,t=vee){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new gt(null,n,this.options);r.#r.push(``),n.push(r),this.#_(e,t)}#_(e,t){let n=e.#r[0];this.#r.splice(t,1,...n.#r);for(let e of n.#r)typeof e==`object`&&(e.#i=this);this.#l=void 0}#v(e){return!!St.get(this.type)?.has(e)}#y(e){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let t=e.#r[0];return!t||typeof t!=`object`||t.type===null?!1:this.#v(t.type)}#b(e){let t=St.get(this.type),n=e.#r[0],r=t?.get(n.type);if(!r)return!1;this.#r=n.#r;for(let e of this.#r)typeof e==`object`&&(e.#i=this);this.type=r,this.#l=void 0,this.#u=!1}static fromGlob(e,t={}){let n=new gt(null,void 0,t);return gt.#f(e,n,0,t,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,n,r,i]=this.toRegExpSource();if(!(r||this.#t||this.#c.nocase&&!this.#c.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return n;let a=(this.#c.nocase?`i`:``)+(i?`u`:``);return Object.assign(RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#c}toRegExpSource(e){let t=e??!!this.#c.dot;if(this.#e===this&&(this.#x(),this.#d()),!yt(this)){let n=this.isStart()&&this.isEnd()&&!this.#r.some(e=>typeof e!=`string`),r=this.#r.map(t=>{let[r,i,a,o]=typeof t==`string`?gt.#C(t,this.#t,n):t.toRegExpSource(e);return this.#t=this.#t||a,this.#n=this.#n||o,r}).join(``),i=``;if(this.isStart()&&typeof this.#r[0]==`string`&&!(this.#r.length===1&&bee.has(this.#r[0]))){let n=yee,a=t&&n.has(r.charAt(0))||r.startsWith(`\\.`)&&n.has(r.charAt(2))||r.startsWith(`\\.\\.`)&&n.has(r.charAt(4)),o=!t&&!e&&n.has(r.charAt(0));i=a?`(?!(?:^|/)\\.\\.?(?:$|/))`:o?Ct:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,ht(r),this.#t=!!this.#t,this.#n]}let n=this.type===`*`||this.type===`+`,r=this.type===`!`?`(?:(?!(?:`:`(?:`,i=this.#S(t);if(this.isStart()&&this.isEnd()&&!i&&this.type!==`!`){let e=this.toString(),t=this;return t.#r=[e],t.type=null,t.#t=void 0,[e,ht(this.toString()),!1,!1]}let a=!n||e||t?``:this.#S(!0);a===i&&(a=``),a&&(i=`(?:${i})(?:${a})*?`);let o=``;if(this.type===`!`&&this.#u)o=(this.isStart()&&!t?Ct:``)+Et;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?Ct:``)+Tt+`)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,ht(i),this.#t=!!this.#t,this.#n]}#x(){if(yt(this)){let e=0,t=!1;do{t=!0;for(let e=0;e<this.#r.length;e++){let n=this.#r[e];typeof n==`object`&&(n.#x(),this.#m(n)?(t=!1,this.#_(n,e)):this.#p(n)?(t=!1,this.#g(n,e)):this.#y(n)&&(t=!1,this.#b(n)))}}while(!t&&++e<10)}else for(let e of this.#r)typeof e==`object`&&e.#x();this.#l=void 0}#S(e){return this.#r.map(t=>{if(typeof t==`string`)throw Error(`string type in extglob ast??`);let[n,r,i,a]=t.toRegExpSource(e);return this.#n=this.#n||a,n}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(`|`)}static#C(e,t,n=!1){let r=!1,i=``,a=!1,o=!1;for(let s=0;s<e.length;s++){let c=e.charAt(s);if(r){r=!1,i+=(xee.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?Et:Tt,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=_ee(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=wt,t=!0;continue}i+=See(c)}return[i,ht(e),!!t,a]}};gt=Dt;const wee=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),Ot=(e,t,n={})=>(ft(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Jt(t,n).match(e)),Tee=/^\*+([^+@!?\*\[\(]*)$/,Eee=e=>t=>!t.startsWith(`.`)&&t.endsWith(e),Dee=e=>t=>t.endsWith(e),Oee=e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),kee=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),Aee=/^\*+\.\*+$/,jee=e=>!e.startsWith(`.`)&&e.includes(`.`),kt=e=>e!==`.`&&e!==`..`&&e.includes(`.`),At=/^\.\*+$/,jt=e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),Mt=/^\*+$/,Nt=e=>e.length!==0&&!e.startsWith(`.`),Pt=e=>e.length!==0&&e!==`.`&&e!==`..`,Ft=/^\?+([^+@!?\*\[\(]*)?$/,It=([e,t=``])=>{let n=Bt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Lt=([e,t=``])=>{let n=Vt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Rt=([e,t=``])=>{let n=Vt([e]);return t?e=>n(e)&&e.endsWith(t):n},zt=([e,t=``])=>{let n=Bt([e]);return t?e=>n(e)&&e.endsWith(t):n},Bt=([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},Vt=([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},Ht=typeof process==`object`&&process?{}.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Ut={win32:{sep:`\\`},posix:{sep:`/`}};Ot.sep=Ht===`win32`?Ut.win32.sep:Ut.posix.sep;const Wt=Symbol(`globstar **`);Ot.GLOBSTAR=Wt,Ot.filter=(e,t={})=>n=>Ot(n,e,t);const Gt=(e,t={})=>Object.assign({},e,t);Ot.defaults=e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return Ot;let t=Ot;return Object.assign((n,r,i={})=>t(n,r,Gt(e,i)),{Minimatch:class extends t.Minimatch{constructor(t,n={}){super(t,Gt(e,n))}static defaults(n){return t.defaults(Gt(e,n)).Minimatch}},AST:class extends t.AST{constructor(t,n,r={}){super(t,n,Gt(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,Gt(e,r))}},unescape:(n,r={})=>t.unescape(n,Gt(e,r)),escape:(n,r={})=>t.escape(n,Gt(e,r)),filter:(n,r={})=>t.filter(n,Gt(e,r)),defaults:n=>t.defaults(Gt(e,n)),makeRe:(n,r={})=>t.makeRe(n,Gt(e,r)),braceExpand:(n,r={})=>t.braceExpand(n,Gt(e,r)),match:(n,r,i={})=>t.match(n,r,Gt(e,i)),sep:t.sep,GLOBSTAR:Wt})};const Kt=(e,t={})=>(ft(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:uee(e,{max:t.braceExpandMax}));Ot.braceExpand=Kt,Ot.makeRe=(e,t={})=>new Jt(e,t).makeRe(),Ot.match=(e,t,n={})=>{let r=new Jt(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e};const qt=/[?*]|[+@!]\(.*?\)|\[|\]/,Mee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`);var Jt=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){ft(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||Ht,this.isWindows=this.platform===`win32`,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,`/`)),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot===void 0?!!(this.isWindows&&this.nocase):t.windowsNoMagicRoot,this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!=`string`)return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)===`#`){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(e=>this.slashSplit(e));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map((e,t,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){let t=e[0]===``&&e[1]===``&&(e[2]===`?`||!qt.test(e[2]))&&!qt.test(e[3]),n=/^[a-z]:/i.test(e[0]);if(t)return[...e.slice(0,4),...e.slice(4).map(e=>this.parse(e))];if(n)return[e[0],...e.slice(1).map(e=>this.parse(e))]}return e.map(e=>this.parse(e))});if(this.debug(this.pattern,r),this.set=r.filter(e=>e.indexOf(!1)===-1),this.isWindows)for(let e=0;e<this.set.length;e++){let t=this.set[e];t[0]===``&&t[1]===``&&this.globParts[e][2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3])&&(t[2]=`?`)}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let t=0;t<e.length;t++)for(let n=0;n<e[t].length;n++)e[t][n]===`**`&&(e[t][n]=`*`);let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):e=t>=1?this.levelOneOptimize(e):this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(e=>{let t=-1;for(;(t=e.indexOf(`**`,t+1))!==-1;){let n=t;for(;e[n+1]===`**`;)n++;n!==t&&e.splice(t,n-t)}return e})}levelOneOptimize(e){return e.map(e=>(e=e.reduce((e,t)=>{let n=e[e.length-1];return t===`**`&&n===`**`?e:t===`..`&&n&&n!==`..`&&n!==`.`&&n!==`**`?(e.pop(),e):(e.push(t),e)},[]),e.length===0?[``]:e))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let n=1;n<e.length-1;n++){let r=e[n];n===1&&r===``&&e[0]===``||(r===`.`||r===``)&&(t=!0,e.splice(n,1),n--)}e[0]===`.`&&e.length===2&&(e[1]===`.`||e[1]===``)&&(t=!0,e.pop())}let n=0;for(;(n=e.indexOf(`..`,n+1))!==-1;){let r=e[n-1];r&&r!==`.`&&r!==`..`&&r!==`**`&&(t=!0,e.splice(n-1,2),n-=2)}}while(t);return e.length===0?[``]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let n of e){let r=-1;for(;(r=n.indexOf(`**`,r+1))!==-1;){let i=r;for(;n[i+1]===`**`;)i++;i>r&&n.splice(r+1,i-r);let a=n[r+1],o=n[r+2],s=n[r+3];if(a!==`..`||!o||o===`.`||o===`..`||!s||s===`.`||s===`..`)continue;t=!0,n.splice(r,1);let c=n.slice(0);c[r]=`**`,e.push(c),r--}if(!this.preserveMultipleSlashes){for(let e=1;e<n.length-1;e++){let r=n[e];e===1&&r===``&&n[0]===``||(r===`.`||r===``)&&(t=!0,n.splice(e,1),e--)}n[0]===`.`&&n.length===2&&(n[1]===`.`||n[1]===``)&&(t=!0,n.pop())}let i=0;for(;(i=n.indexOf(`..`,i+1))!==-1;){let e=n[i-1];if(e&&e!==`.`&&e!==`..`&&e!==`**`){t=!0;let e=i===1&&n[i+1]===`**`?[`.`]:[];n.splice(i-1,2,...e),n.length===0&&n.push(``),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let n=t+1;n<e.length;n++){let r=this.partsMatch(e[t],e[n],!this.preserveMultipleSlashes);if(r){e[t]=[],e[n]=r;break}}return e.filter(e=>e.length)}partsMatch(e,t,n=!1){let r=0,i=0,a=[],o=``;for(;r<e.length&&i<t.length;)if(e[r]===t[i])a.push(o===`b`?t[i]:e[r]),r++,i++;else if(n&&e[r]===`**`&&t[i]===e[r+1])a.push(e[r]),r++;else if(n&&t[i]===`**`&&e[r]===t[i+1])a.push(t[i]),i++;else if(e[r]===`*`&&t[i]&&(this.options.dot||!t[i].startsWith(`.`))&&t[i]!==`**`){if(o===`b`)return!1;o=`a`,a.push(e[r]),r++,i++}else if(t[i]===`*`&&e[r]&&(this.options.dot||!e[r].startsWith(`.`))&&e[r]!==`**`){if(o===`a`)return!1;o=`b`,a.push(t[i]),r++,i++}else return!1;return e.length===t.length&&a}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,n=0;for(let r=0;r<e.length&&e.charAt(r)===`!`;r++)t=!t,n++;n&&(this.pattern=e.slice(n)),this.negate=t}matchOne(e,t,n=!1){let r=0,i=0;if(this.isWindows){let n=typeof e[0]==`string`&&/^[a-z]:$/i.test(e[0]),a=!n&&e[0]===``&&e[1]===``&&e[2]===`?`&&/^[a-z]:$/i.test(e[3]),o=typeof t[0]==`string`&&/^[a-z]:$/i.test(t[0]),s=!o&&t[0]===``&&t[1]===``&&t[2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3]),c=a?3:n?0:void 0,l=s?3:o?0:void 0;if(typeof c==`number`&&typeof l==`number`){let[n,a]=[e[c],t[l]];n.toLowerCase()===a.toLowerCase()&&(t[l]=n,i=l,r=c)}}let{optimizationLevel:a=1}=this.options;return a>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(Wt)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Wt,i),o=t.lastIndexOf(Wt),[s,c,l]=n?[t.slice(i,a),t.slice(a+1),[]]:[t.slice(i,a),t.slice(a+1,o),t.slice(o+1)];if(s.length){let t=e.slice(r,r+s.length);if(!this.#n(t,s,n,0,0))return!1;r+=s.length,i+=s.length}let u=0;if(l.length){if(l.length+r>e.length)return!1;let t=e.length-l.length;if(this.#n(e,l,n,t,0))u=l.length;else{if(e[e.length-1]!==``||r+l.length===e.length||(t--,!this.#n(e,l,n,t,0)))return!1;u=l.length+1}}if(!c.length){let t=!!u;for(let n=r;n<e.length-u;n++){let r=String(e[n]);if(t=!0,r===`.`||r===`..`||!this.options.dot&&r.startsWith(`.`))return!1}return n||t}let d=[[[],0]],f=d[0],p=0,m=[0];for(let e of c)e===Wt?(m.push(p),f=[[],0],d.push(f)):(f[0].push(e),p++);let h=d.length-1,g=e.length-u;for(let e of d)e[1]=g-(m[h--]+e[0].length);return!!this.#t(e,d,r,0,n,0,!!u)}#t(e,t,n,r,i,a,o){let s=t[r];if(!s){for(let t=n;t<e.length;t++){o=!0;let n=e[t];if(n===`.`||n===`..`||!this.options.dot&&n.startsWith(`.`))return!1}return o}let[c,l]=s;for(;n<=l;){if(this.#n(e.slice(0,n+c.length),c,i,n,0)&&a<this.maxGlobstarRecursion){let s=this.#t(e,t,n+c.length,r+1,i,a+1,o);if(s!==!1)return s}let s=e[n];if(s===`.`||s===`..`||!this.options.dot&&s.startsWith(`.`))return!1;n++}return i||null}#n(e,t,n,r,i){let a,o,s,c;for(a=r,o=i,c=e.length,s=t.length;a<c&&o<s;a++,o++){this.debug(`matchOne loop`);let n=t[o],r=e[a];if(this.debug(t,n,r),n===!1||n===Wt)return!1;let i;if(typeof n==`string`?(i=r===n,this.debug(`string match`,n,r,i)):(i=n.test(r),this.debug(`pattern match`,n,r,i)),!i)return!1}if(a===c&&o===s)return!0;if(a===c)return n;if(o===s)return a===c-1&&e[a]===``;throw Error(`wtf?`)}braceExpand(){return Kt(this.pattern,this.options)}parse(e){ft(e);let t=this.options;if(e===`**`)return Wt;if(e===``)return``;let n,r=null;(n=e.match(Mt))?r=t.dot?Pt:Nt:(n=e.match(Tee))?r=(t.nocase?t.dot?kee:Oee:t.dot?Dee:Eee)(n[1]):(n=e.match(Ft))?r=(t.nocase?t.dot?Lt:It:t.dot?Rt:zt)(n):(n=e.match(Aee))?r=t.dot?kt:jee:(n=e.match(At))&&(r=jt);let i=Dt.fromGlob(e,this.options).toMMPattern();return r&&typeof i==`object`&&Reflect.defineProperty(i,`test`,{value:r}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,n=t.noglobstar?`[^/]*?`:t.dot?`(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?`:`(?:(?!(?:\\/|^)\\.).)*?`,r=new Set(t.nocase?[`i`]:[]),i=e.map(e=>{let t=e.map(e=>{if(e instanceof RegExp)for(let t of e.flags.split(``))r.add(t);return typeof e==`string`?Mee(e):e===Wt?Wt:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Wt||a===Wt||(a===void 0?i!==void 0&&i!==Wt?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Wt&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Wt))});let i=t.filter(e=>e!==Wt);if(this.partial&&i.length>=1){let e=[];for(let t=1;t<=i.length;t++)e.push(i.slice(0,t).join(`/`));return`(?:`+e.join(`|`)+`)`}return i.join(`/`)}).join(`|`),[a,o]=e.length>1?[`(?:`,`)`]:[``,``];i=`^`+a+i+o+`$`,this.partial&&(i=`^(?:\\/|`+a+i.slice(1,-1)+o+`)$`),this.negate&&(i=`^(?!`+i+`).+$`);try{this.regexp=new RegExp(i,[...r].join(``))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split(`/`):this.isWindows&&/^\/\/[^\/]+/.test(e)?[``,...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug(`match`,e,this.pattern),this.comment)return!1;if(this.empty)return e===``;if(e===`/`&&t)return!0;let n=this.options;this.isWindows&&(e=e.split(`\\`).join(`/`));let r=this.slashSplit(e);this.debug(this.pattern,`split`,r);let i=this.set;this.debug(this.pattern,`set`,i);let a=r[r.length-1];if(!a)for(let e=r.length-2;!a&&e>=0;e--)a=r[e];for(let e=0;e<i.length;e++){let o=i[e],s=r;if(n.matchBase&&o.length===1&&(s=[a]),this.matchOne(s,o,t))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(e){return Ot.defaults(e).Minimatch}};Ot.AST=Dt,Ot.Minimatch=Jt,Ot.escape=wee,Ot.unescape=ht;const Yt={};function Xt(){throw Error(`gunzipSync is not available in the browser`)}function Zt(){throw Error(`gzipSync is not available in the browser`)}var Qt=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends Qt{};function $t(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function en(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function tn(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function nn(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function rn(e,t){return tn(e,t,``)}function an(e,t){return nn(e,t,``)}function on(e,t){return t.slice(0,Nee(e,t))}function Nee(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function sn(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function cn(e){let t=e.match(/^\s*/);return t?t[0]:``}const ln=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,Pee=RegExp(`[${ln}]+|\\s+|[^${ln}]`,`ug`);new class extends Qt{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=[];for(let t of Array.from(r.segment(e))){let e=t.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}}else n=e.match(Pee)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&un(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&un(n,i,r,null),e}};function un(e,t,n,r){if(t&&n){let i=cn(t.value),a=sn(t.value),o=cn(n.value),s=sn(n.value);if(e){let r=$t(i,o);e.value=nn(e.value,o,r),t.value=rn(t.value,r),n.value=rn(n.value,r)}if(r){let e=en(a,s);r.value=tn(r.value,s,e),t.value=an(t.value,e),n.value=an(n.value,e)}}else if(n){if(e){let e=cn(n.value);n.value=n.value.substring(e.length)}if(r){let e=cn(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=cn(r.value),i=cn(t.value),a=sn(t.value),o=$t(n,i);t.value=rn(t.value,o);let s=en(rn(n,o),a);t.value=an(t.value,s),r.value=tn(r.value,n,s),e.value=nn(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=cn(r.value),n=on(sn(t.value),e);t.value=an(t.value,n)}else if(e){let n=on(sn(e.value),cn(t.value));t.value=rn(t.value,n)}}new class extends Qt{tokenize(e){let t=RegExp(`(\\r?\\n)|[${ln}]+|[^\\S\\n\\r]+|[^${ln}]`,`ug`);return e.match(t)||[]}};const Fee=new class extends Qt{constructor(){super(...arguments),this.tokenize=fn}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
879
+ }`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0)throw Error(`Element with backend node ${e} has no dimensions`);return{x:n.x+n.width/2,y:n.y+n.height/2}}async ensureLocalConnected(){this.localClient.state===`disconnected`&&await this.localClient.connect({url:C()})}async ensureConnected(){this.client.state===`disconnected`&&(this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null,this.client.state===`disconnected`&&await this.connect())}ensureAttached(){if(!this.sessionId)throw Error(`Not attached to a page. Call attachToPage(targetId) first.`)}addDialogListener(e){e.on(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}removeDialogListener(e){e.off(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}setClient(e){this.client!==e&&(this.removeDialogListener(this.client),this.client=e,this.addDialogListener(this.client))}async boundingBox(e){await this.client.send(`DOM.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.getDocument`,{depth:0},this.sessionId)).root.nodeId,n;try{n=(await this.client.send(`DOM.querySelector`,{nodeId:t,selector:e},this.sessionId)).nodeId}catch{return null}if(!n)return null;let r=(await this.client.send(`DOM.getBoxModel`,{nodeId:n},this.sessionId)).model;if(!r)return null;let i=r.content;return{x:i[0],y:i[1],width:r.width,height:r.height}}};function T(e){let t={role:b(e.role,`unknown`),name:b(e.name)},n=b(e.value);n!==``&&(t.value=n);let r=b(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>T(e)).filter(e=>e.role!==`unknown`)),t}function E(e){return e.headers.get(`x-proxy-error`)===`1`}async function ee(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return D(n,t)}function D(e,t){let n;try{n=JSON.parse(e)}catch{return t}if(!n||typeof n!=`object`)return t;let r=n.error;if(typeof r==`string`&&r.length>0)return r;if(r&&typeof r==`object`){let e=r.message;if(typeof e==`string`&&e.length>0)return e;try{return JSON.stringify(r)}catch{return t}}return t}const O={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let te=null;async function ne(){if(te){let e=Object.values(O).every(e=>te.objectStoreNames.contains(e));if(te.version===3&&e)return te;te.close(),te=null}return new Promise((e,t)=>{let n=indexedDB.open(`slicc-groups`,3);n.onupgradeneeded=e=>{let t=e.target.result,n=e.oldVersion;if(n<1){if(!t.objectStoreNames.contains(O.MESSAGES)){let e=t.createObjectStore(O.MESSAGES,{keyPath:`id`});e.createIndex(`chatJid`,`chatJid`),e.createIndex(`timestamp`,`timestamp`),e.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}t.objectStoreNames.contains(O.SESSIONS)||t.createObjectStore(O.SESSIONS,{keyPath:`groupFolder`}),t.objectStoreNames.contains(O.TASKS)||t.createObjectStore(O.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),t.objectStoreNames.contains(O.STATE)||t.createObjectStore(O.STATE,{keyPath:`key`})}if(n<2){let n=e.target.transaction;if(t.objectStoreNames.contains(`groups`)){let e=n.objectStore(`groups`).getAll();e.onsuccess=()=>{let n=e.result;t.deleteObjectStore(`groups`);let r=t.createObjectStore(O.SCOOPS,{keyPath:`jid`});r.createIndex(`type`,`type`);for(let e of n){let t=e.isMain??!1,n={jid:e.jid,name:e.name,folder:e.folder,trigger:t?void 0:e.trigger||`@${e.folder}`,requiresTrigger:!t&&(e.requiresTrigger??!0),isCone:t,type:t?`cone`:`scoop`,assistantLabel:t?`sliccy`:e.config?.assistantName||e.folder,addedAt:e.addedAt,config:e.config?{systemPromptAppend:e.config.systemPromptAppend,timeout:e.config.timeout,assistantName:e.config.assistantName}:void 0};r.put(n)}}}else t.objectStoreNames.contains(O.SCOOPS)||t.createObjectStore(O.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}n<3&&(t.objectStoreNames.contains(O.WEBHOOKS)||t.createObjectStore(O.WEBHOOKS,{keyPath:`id`}),t.objectStoreNames.contains(O.CRONTASKS)||t.createObjectStore(O.CRONTASKS,{keyPath:`id`}))},n.onsuccess=()=>{te=n.result,e(te)},n.onerror=()=>t(n.error)})}async function k(e,t=`readonly`){return(await ne()).transaction(e,t).objectStore(e)}async function re(e){let t=await k(O.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ie(){let e=await k(O.SCOOPS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>{let e={};for(let t of r.result)e[t.jid]=t;t(e)},r.onerror=()=>n(r.error)})}async function ae(e){let t=await k(O.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function oe(){let e=await k(O.MESSAGES,`readwrite`);return new Promise((t,n)=>{let r=e.clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}async function se(e){let t=(await k(O.MESSAGES,`readwrite`)).index(`chatJid_timestamp`),n=IDBKeyRange.bound([e,``],[e,`￿`],!1,!1);return new Promise((e,r)=>{let i=t.openCursor(n);i.onsuccess=()=>{let t=i.result;if(!t){e();return}t.delete(),t.continue()},i.onerror=()=>r(i.error)})}async function ce(e){let t=await k(O.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function le(e){let t=await k(O.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ue(e){let t=(await k(O.MESSAGES)).index(`chatJid_timestamp`),n=IDBKeyRange.bound([e,``],[e,`￿`],!1,!1);return new Promise((e,r)=>{let i=t.getAll(n);i.onsuccess=()=>e(i.result),i.onerror=()=>r(i.error)})}async function de(e,t,n){let r=(await k(O.MESSAGES)).index(`chatJid_timestamp`),i=IDBKeyRange.bound([e,t],[e,`￿`],!0,!1);return new Promise((e,t)=>{let a=r.getAll(i);a.onsuccess=()=>{let t=a.result;n&&(t=t.filter(e=>e.senderName!==n)),e(t)},a.onerror=()=>t(a.error)})}async function fe(e){let t=await k(O.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function pe(e){let t=await k(O.TASKS);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async function me(){let e=await k(O.TASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}async function he(e){let t=await k(O.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ge(e){let t=await k(O.STATE);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result?.value??null),i.onerror=()=>r(i.error)})}async function _e(e,t){let n=await k(O.STATE,`readwrite`);return new Promise((r,i)=>{let a=n.put({key:e,value:t});a.onsuccess=()=>r(),a.onerror=()=>i(a.error)})}async function ve(){await ne()}async function ye(e){let t=await k(O.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function be(){try{let e=await k(O.WEBHOOKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function xe(e){let t=await k(O.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function Se(e){let t=await k(O.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function A(){try{let e=await k(O.CRONTASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function Ce(e){let t=await k(O.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}function we(e){if(!e)return null;try{let t=new URL(e.trim());t.search=``,t.hash=``,t.pathname!==`/`&&(t.pathname=t.pathname.replace(/\/+$/,``)||`/`);let n=t.toString();return n.endsWith(`/`)?n.slice(0,-1):n}catch{return null}}const Te=`slicc.trayWorkerBaseUrl`,Ee=`https://www.sliccy.ai`;_(`tray-leader`);let De={state:`inactive`,session:null,error:null};function j(){return{...De,session:De.session?{...De.session}:null}}const Oe=new Set;function M(e){return Oe.add(e),()=>{Oe.delete(e)}}let N={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function ke(){return{...N}}const Ae=new Set;function je(e){return Ae.add(e),()=>{Ae.delete(e)}}const Me=new Set([`send_message`,`list_scoops`,`list_tasks`]),Ne=`sessions`;function Pe(){return new Promise((e,t)=>{let n=indexedDB.open(`browser-coding-agent`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(Ne)||e.createObjectStore(Ne,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Fe=class{db=null;async init(){this.db=await Pe()}ensureDb(){if(!this.db)throw Error(`SessionStore not initialized. Call init() first.`);return this.db}async save(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readwrite`);i.objectStore(Ne).put(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async load(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readonly`).objectStore(Ne).get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async list(){let e=this.ensureDb();return new Promise((t,n)=>{let r=e.transaction(Ne,`readonly`).objectStore(Ne).getAll();r.onsuccess=()=>{t(r.result.sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>e.id))},r.onerror=()=>n(r.error)})}async delete(e){let t=this.ensureDb();return new Promise((n,r)=>{let i=t.transaction(Ne,`readwrite`);i.objectStore(Ne).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error)})}async saveMessages(e,t){let n=await this.load(e),r=n?{...n,messages:t,updatedAt:Date.now()}:{id:e,messages:t,createdAt:Date.now(),updatedAt:Date.now()};await this.save(r)}};const Ie=_(`tool-ui`),Le=new class{pending=new Map;idCounter=0;generateId(){return`tool-ui-${++this.idCounter}-${Date.now().toString(36)}`}register(e,t,n,r){this.pending.set(e,{request:t,resolve:n,reject:r}),Ie.info(`Tool UI registered`,{id:e})}async handleAction(e,t){let n=this.pending.get(e);if(!n){Ie.warn(`Action for unknown tool UI`,{id:e,action:t.action});return}Ie.info(`Tool UI action`,{id:e,action:t.action});try{let e;e=n.request.onAction?await n.request.onAction(t.action,t.data):t,n.resolve(e)}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.pending.delete(e)}}cancel(e,t=`cancelled`){let n=this.pending.get(e);n&&(n.reject(Error(t)),this.pending.delete(e),Ie.info(`Tool UI cancelled`,{id:e,reason:t}))}cancelAll(e=`cancelled`){let t=this.pending.size;for(let[t,n]of this.pending)n.reject(Error(e));this.pending.clear(),t>0&&Ie.info(`All tool UIs cancelled`,{reason:e,count:t})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function Re(e,t){let n=e.id??Le.generateId(),r,i,a=new Promise((e,t)=>{r=e,i=t});return Le.register(n,e,r,i),t?t({content:[{type:`tool_ui`,requestId:n,html:e.html}]}):Ie.warn(`showToolUI called without onUpdate callback — UI may not render`),a.finally(()=>{t&&t({content:[{type:`tool_ui_done`,requestId:n}]})})}const ze=[];function Be(e){return ze.push(e),e}function Ve(e){let t=ze.lastIndexOf(e);t!==-1&&ze.splice(t,1)}function He(){return ze.length>0?ze[ze.length-1]:null}async function Ue(e){let t=He();return t?Re(e,t.onUpdate):(Ie.warn(`showToolUIFromContext called without execution context`),null)}const We=_(`panel-transport`);function Ge(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function Ke(){return{onMessage:e=>{let t=(t,n,r)=>(Ge(t)&&e(t),!1);return chrome.runtime.onMessage.addListener(t),()=>chrome.runtime.onMessage.removeListener(t)},send:e=>{chrome.runtime.sendMessage({source:`offscreen`,payload:e}).catch(e=>{let t=e instanceof Error?e.message:String(e);/receiving end does not exist/i.test(t)||We.error(`Offscreen → panel transport send failed`,{error:t})})}}}const qe=_(`offscreen-bridge`);var Je=class{orchestrator=null;browserAPI=null;messageBuffers=new Map;currentMessageId=new Map;scoopStatuses=new Map;sessionStore=null;followerSync=null;_transport;transportUnsubscribe=null;activeScoopJid=null;agentEventListeners=new Set;fanOutMessageId=new Map;constructor(e){this._transport=e??null}get transport(){return this._transport||=Ke(),this._transport}async bind(e,t){this.orchestrator=e,this.browserAPI=t??null,this.transportUnsubscribe?.(),this.transportUnsubscribe=this.setupMessageListener();let n=new Fe;await n.init(),this.sessionStore=n}static createCallbacks(e){return{onResponse:(t,n,r)=>{let i=e.getOrCreateAssistantMsg(t);r?i.content+=n:(i.content=n,i.isStreaming=!1),e.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:n})},onResponseDone:t=>{let n=e.currentMessageId.get(t);if(n){let r=e.getBuffer(t).find(e=>e.id===n);r&&(r.isStreaming=!1),e.currentMessageId.delete(t)}e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`})},onSendMessage:(t,n)=>{let r=e.getBuffer(t),i=`msg-${Ye()}`;r.push({id:i,role:`assistant`,content:n,timestamp:Date.now()}),e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:n}),e.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`})},onStatusChange:(t,n)=>{e.scoopStatuses.set(t,n),n===`ready`&&e.currentMessageId.delete(t),e.emit({type:`scoop-status`,scoopJid:t,status:n}),e.emitScoopList()},onCompactionStateChange:(t,n)=>{e.emit({type:`compaction-state`,scoopJid:t,state:n})},onError:(t,n)=>{e.emit({type:`error`,scoopJid:t,error:n})},onToolStart:(t,n,r)=>{if(Me.has(n))return;let i=e.getOrCreateAssistantMsg(t);i.toolCalls||=[],i.toolCalls.push({id:Ye(),name:n,input:r}),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:n,toolInput:r})},onToolEnd:(t,n,r,i)=>{if(Me.has(n))return;let a=e.currentMessageId.get(t);if(a){let o=e.getBuffer(t).find(e=>e.id===a);if(o?.toolCalls){let e=[...o.toolCalls].reverse().find(e=>e.name===n&&e.result===void 0);e&&(e.result=r,e.isError=i)}}e.persistScoop(t),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_end`,toolName:n,toolResult:r,isError:i})},onToolUI:(t,n,r,i)=>{e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_ui`,toolName:n,requestId:r,html:i})},onToolUIDone:(t,n)=>{e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_ui_done`,requestId:n})},onIncomingMessage:(t,n)=>{let r={id:n.id,role:`user`,content:n.channel===`delegation`?`**[Instructions from sliccy]**\n\n${n.content}`:n.content,attachments:n.attachments,timestamp:new Date(n.timestamp).getTime(),source:n.channel===`delegation`?`delegation`:void 0,channel:n.channel};e.getBuffer(t).push(r),e.persistScoop(t),e.notifyPanelIncomingMessage(t,n)}}}notifyPanelIncomingMessage(e,t){this.emit({type:`incoming-message`,scoopJid:e,message:{id:t.id,content:t.content,attachments:t.attachments,channel:t.channel,senderName:t.senderName,fromAssistant:t.fromAssistant,timestamp:t.timestamp}})}toScoopSnapshot(e){let t=e.config&&(e.config.modelId!==void 0||e.config.thinkingLevel!==void 0)?{...e.config.modelId===void 0?{}:{modelId:e.config.modelId},...e.config.thinkingLevel===void 0?{}:{thinkingLevel:e.config.thinkingLevel}}:void 0;return{jid:e.jid,name:e.name,folder:e.folder,isCone:e.isCone,assistantLabel:e.assistantLabel,status:this.scoopStatuses.get(e.jid)??`ready`,...t?{config:t}:{}}}buildStateSnapshot(){let e=this.orchestrator?.getScoops().map(e=>this.toScoopSnapshot(e))??[],t=e.find(e=>e.isCone);return{type:`state-snapshot`,scoops:e,activeScoopJid:this.getActiveScoopJid()??t?.jid??null,trayRuntimeStatus:this.buildTrayRuntimeStatus()}}emitTrayRuntimeStatus(){let e=this.buildTrayRuntimeStatus(),t={type:`tray-runtime-status`,leader:e.leader,follower:e.follower};this.emit(t)}buildTrayRuntimeStatus(){let e=j(),t=ke();return{leader:{state:e.state,session:e.session,error:e.error??null,reconnectAttempts:e.reconnectAttempts??0},follower:{state:t.state,joinUrl:t.joinUrl,trayId:t.trayId,error:t.error,lastError:t.lastError,reconnectAttempts:t.reconnectAttempts,attachAttempts:t.attachAttempts,lastAttachCode:t.lastAttachCode,connectingSince:t.connectingSince,lastPingTime:t.lastPingTime}}}setFollowerSync(e){this.followerSync=e}setActiveScoopJid(e){this.activeScoopJid=e}getActiveScoopJid(){return this.activeScoopJid}onAgentEvent(e){return this.agentEventListeners.add(e),()=>{this.agentEventListeners.delete(e)}}fanOutAgentEvent(e){let{scoopJid:t,eventType:n}=e,r=[],i=()=>{let e=this.fanOutMessageId.get(t);return e||(e=`scoop-${t}-${Ye()}`,this.fanOutMessageId.set(t,e),r.push({type:`message_start`,messageId:e})),e};switch(n){case`text_delta`:{let t=i();r.push({type:`content_delta`,messageId:t,text:e.text??``});break}case`tool_start`:{let t=i();r.push({type:`tool_use_start`,messageId:t,toolName:e.toolName??``,toolInput:e.toolInput});break}case`tool_end`:{let n=this.fanOutMessageId.get(t);if(!n)return;r.push({type:`tool_result`,messageId:n,toolName:e.toolName??``,result:e.toolResult??``,isError:e.isError});break}case`tool_ui`:{let t=i();r.push({type:`tool_ui`,messageId:t,toolName:e.toolName??``,requestId:e.requestId??``,html:e.html??``});break}case`tool_ui_done`:{let n=this.fanOutMessageId.get(t);if(!n)return;r.push({type:`tool_ui_done`,messageId:n,requestId:e.requestId??``});break}case`response_done`:{let e=this.fanOutMessageId.get(t);if(!e)return;r.push({type:`content_done`,messageId:e}),this.fanOutMessageId.delete(t);break}case`turn_end`:this.fanOutMessageId.delete(t);break}for(let e of r)for(let n of this.agentEventListeners)try{n(t,e)}catch(e){qe.error(`onAgentEvent listener threw`,{error:e instanceof Error?e.message:String(e)})}}getMessagesForJid(e){return this.getBuffer(e)}async routeSprinkleLick(e,t,n){if(!this.orchestrator)return;let r=this.orchestrator.getScoops(),i=n?r.find(e=>e.name===n||e.folder===n||e.folder===`${n}-scoop`):void 0;if(i||=r.find(e=>e.isCone),!i)return;let a=`sprinkle-${e}-${Date.now()}`,o=`[Sprinkle Event: ${e}]\n\`\`\`json\n${JSON.stringify(t,null,2)}\n\`\`\``,s={id:a,chatJid:i.jid,senderId:`sprinkle`,senderName:`sprinkle:${e}`,content:o,timestamp:new Date().toISOString(),fromAssistant:!1,channel:`sprinkle`};this.getBuffer(i.jid).push({id:a,role:`user`,content:o,timestamp:Date.now(),source:`lick`,channel:`sprinkle`}),this.persistScoop(i.jid),await this.orchestrator.handleMessage(s)}applyFollowerSnapshot(e){if(!this.orchestrator)return;let t=this.orchestrator.getScoops().find(e=>e.isCone);if(!t)return;let n=e.map(e=>({id:e.id,role:e.role,content:e.content,attachments:e.attachments,timestamp:e.timestamp,source:e.source,channel:e.channel,toolCalls:e.toolCalls?.map(e=>({id:e.id,name:e.name,input:e.input,result:e.result,isError:e.isError})),isStreaming:e.isStreaming}));if(this.messageBuffers.set(t.jid,n),this.currentMessageId.delete(t.jid),this.fanOutMessageId.delete(t.jid),this.sessionStore){let n=t.isCone?`session-cone`:`session-${t.folder}`;this.sessionStore.saveMessages(n,e).catch(e=>{qe.error(`applyFollowerSnapshot persist failed`,{error:e instanceof Error?e.message:String(e)})})}this.emit({type:`scoop-messages-replaced`,scoopJid:t.jid,messages:n})}getConeJid(){return this.orchestrator?.getScoops().find(e=>e.isCone)?.jid??null}emitFollowerAgentEvent(e){let t=this.getConeJid();if(t)switch(e.type){case`content_delta`:this.emit({type:`agent-event`,scoopJid:t,eventType:`text_delta`,text:e.text});break;case`content_done`:this.emit({type:`agent-event`,scoopJid:t,eventType:`response_done`});break;case`tool_use_start`:this.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:e.toolName,toolInput:e.toolInput});break;case`tool_result`:this.emit({type:`agent-event`,scoopJid:t,eventType:`tool_end`,toolName:e.toolName,toolResult:e.result,isError:e.isError});break;case`turn_end`:this.emit({type:`agent-event`,scoopJid:t,eventType:`turn_end`});break;case`error`:this.emit({type:`error`,scoopJid:t,error:e.error});break}}emitFollowerIncomingMessage(e,t){let n=this.getConeJid();n&&this.emit({type:`incoming-message`,scoopJid:n,message:{id:e,content:t,channel:`web`,senderName:`User`,fromAssistant:!1,timestamp:new Date().toISOString()}})}emitFollowerStatus(e){let t=this.getConeJid();if(!t)return;let n=e===`processing`?`processing`:`ready`;this.scoopStatuses.set(t,n),this.emit({type:`scoop-status`,scoopJid:t,status:n})}async handleRequestScoopMessages(e){if(!this.orchestrator)return;let t=this.orchestrator.getScoops().find(t=>t.jid===e);if(!t)return;let n=this.messageBuffers.get(e);if(n&&n.length>0){this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:n});return}let r=this.orchestrator.getScoopContext(e);if(r){let{agentMessagesToChatMessages:n}=await import(`./agent-message-to-chat-BB7XSXm_.js`),i=r.getAgentMessages();if(i.length>0){let r=n(i,{source:t.isCone?`cone`:t.name??t.folder}).map(e=>({id:e.id,role:e.role,content:e.content,attachments:e.attachments,timestamp:e.timestamp,source:e.source,channel:e.channel,toolCalls:e.toolCalls?.map(e=>({id:e.id,name:e.name,input:e.input,result:e.result,isError:e.isError})),isStreaming:!1}));this.messageBuffers.set(e,r),this.currentMessageId.delete(e),this.fanOutMessageId.delete(e),this.persistScoop(e),this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:r});return}}if(this.sessionStore){let n=t.isCone?`session-cone`:`session-${t.folder}`;try{let t=(await this.sessionStore.load(n))?.messages??[];t.length>0&&(this.messageBuffers.set(e,t),this.currentMessageId.delete(e),this.fanOutMessageId.delete(e),this.emit({type:`scoop-messages-replaced`,scoopJid:e,messages:t}))}catch(e){qe.error(`sessionStore load failed`,{sessionId:n,error:e instanceof Error?e.message:String(e)})}}}persistScoop(e){if(!this.sessionStore||!this.orchestrator)return;let t=this.orchestrator.getScoops().find(t=>t.jid===e);if(!t)return;let n=t.isCone?`session-cone`:`session-${t.folder}`,r=this.messageBuffers.get(e);!r||r.length===0||this.sessionStore.saveMessages(n,r).catch(e=>{qe.error(`persistScoop failed`,{sessionId:n,error:e instanceof Error?e.message:String(e)})})}getBuffer(e){let t=this.messageBuffers.get(e);return t||(t=[],this.messageBuffers.set(e,t)),t}getOrCreateAssistantMsg(e){let t=this.getBuffer(e),n=this.currentMessageId.get(e);if(n){let e=t.find(e=>e.id===n);if(e)return e}n=`scoop-${e}-${Ye()}`,this.currentMessageId.set(e,n);let r=(this.orchestrator?.getScoops()??[]).find(t=>t.jid===e),i=r?.isCone?`cone`:r?.name??`unknown`,a={id:n,role:`assistant`,content:``,timestamp:Date.now(),toolCalls:[],isStreaming:!0,source:i};return t.push(a),a}setupMessageListener(){return this.transport.onMessage(e=>{if(e.source===`panel`){if(e.payload?.type===`sprinkle-op-response`){import(`./sprinkle-proxy-rF3NSOGq.js`).then(({handleSprinkleOpResponse:t})=>{t(e.payload)});return}this.handlePanelMessage(e.payload).catch(t=>{console.error(`[offscreen-bridge] handlePanelMessage error:`,t);let n=e.payload.scoopJid;n&&this.emit({type:`error`,scoopJid:n,error:t instanceof Error?t.message:String(t)})})}})}async handlePanelMessage(e){if(this.orchestrator)switch(e.type){case`user-message`:{if(this.followerSync){this.getBuffer(e.scoopJid).push({id:e.messageId,role:`user`,content:e.text,attachments:e.attachments,timestamp:Date.now()}),this.persistScoop(e.scoopJid),this.followerSync.sendMessage(e.text,e.messageId,e.attachments);break}let t={id:e.messageId,chatJid:e.scoopJid,senderId:`user`,senderName:`User`,content:e.text,attachments:e.attachments,timestamp:new Date().toISOString(),fromAssistant:!1,channel:`web`};this.getBuffer(e.scoopJid).push({id:e.messageId,role:`user`,content:e.text,attachments:e.attachments,timestamp:Date.now()}),this.persistScoop(e.scoopJid),await this.orchestrator.handleMessage(t),this.orchestrator.createScoopTab(e.scoopJid);break}case`cone-create`:{let t={jid:`cone_${Date.now()}`,name:e.name,folder:`cone`,isCone:!0,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()};await this.orchestrator.registerScoop(t),this.emit({type:`scoop-created`,scoop:this.toScoopSnapshot(t)});break}case`scoop-feed`:await this.orchestrator.delegateToScoop(e.scoopJid,e.prompt,`sliccy`);break;case`scoop-drop`:{let t=this.orchestrator.getScoops().find(t=>t.jid===e.scoopJid);if(await this.orchestrator.unregisterScoop(e.scoopJid),this.messageBuffers.delete(e.scoopJid),this.currentMessageId.delete(e.scoopJid),this.fanOutMessageId.delete(e.scoopJid),this.scoopStatuses.delete(e.scoopJid),t&&this.sessionStore){let e=t.isCone?`session-cone`:`session-${t.folder}`;this.sessionStore.delete(e).catch(t=>{console.warn(`[offscreen-bridge] Failed to delete session on scoop drop:`,e,t)})}this.emitScoopList();break}case`abort`:this.orchestrator.stopScoop(e.scoopJid),this.orchestrator.clearQueuedMessages(e.scoopJid).catch(e=>{console.warn(`[offscreen-bridge] Failed to clear queued messages on abort:`,e)});break;case`set-model`:this.orchestrator.updateModel();break;case`request-state`:this.emit(this.buildStateSnapshot());break;case`request-scoop-messages`:await this.handleRequestScoopMessages(e.scoopJid);break;case`clear-chat`:{let t=this.orchestrator.getScoops().find(e=>e.isCone)?.jid;t&&await this.orchestrator.clearScoopMessages(t),this.sessionStore&&await this.sessionStore.delete(`session-cone`),t&&(this.messageBuffers.delete(t),this.currentMessageId.delete(t),this.fanOutMessageId.delete(t)),this.emit({type:`clear-chat-ack`,requestId:e.requestId});break}case`clear-filesystem`:try{await this.orchestrator.resetFilesystem()}catch(e){console.error(`[offscreen-bridge] clear-filesystem failed:`,e)}break;case`refresh-model`:this.orchestrator.updateModel();break;case`set-thinking-level`:{let t=e;try{await this.orchestrator.setScoopThinkingLevel(t.scoopJid,t.level)}catch(e){console.error(`[offscreen-bridge] set-thinking-level failed:`,e)}break}case`sprinkle-lick`:{let t=e;await this.routeSprinkleLick(t.sprinkleName,t.body,t.targetScoop);break}case`lick-webhook-event`:this.orchestrator.handleWebhookEvent(e.webhookId,e.headers,e.body);break;case`reload-skills`:this.orchestrator.reloadAllSkills().catch(e=>{console.warn(`[offscreen-bridge] Skill reload failed:`,e)});break;case`panel-cdp-command`:{let{id:t,method:n,params:r,sessionId:i}=e;if(!this.browserAPI){console.warn(`[offscreen-bridge] Panel CDP command received but BrowserAPI is null`),this.emit({type:`panel-cdp-response`,id:t,error:`BrowserAPI not available`});break}try{let e=await this.browserAPI.getTransport().send(n,r,i);this.emit({type:`panel-cdp-response`,id:t,result:e})}catch(e){this.emit({type:`panel-cdp-response`,id:t,error:e instanceof Error?e.message:String(e)})}break}case`tool-ui-action`:{let{requestId:t,action:n,data:r}=e;try{await Le.handleAction(t,{action:n,data:r})}catch(e){let r=e instanceof Error?e.message:String(e);console.error(`[offscreen-bridge] Tool UI action failed`,{requestId:t,action:n,error:r}),Le.cancel(t,`Action failed: ${r}`)}break}case`local-storage-set`:try{globalThis.localStorage?.setItem(e.key,e.value)}catch(e){console.warn(`[offscreen-bridge] local-storage-set failed:`,e)}break;case`local-storage-remove`:try{globalThis.localStorage?.removeItem(e.key)}catch(e){console.warn(`[offscreen-bridge] local-storage-remove failed:`,e)}break;case`local-storage-clear`:try{globalThis.localStorage?.clear()}catch(e){console.warn(`[offscreen-bridge] local-storage-clear failed:`,e)}break}}emitScoopList(){let e=this.orchestrator?.getScoops().map(e=>this.toScoopSnapshot(e))??[];this.emit({type:`scoop-list`,scoops:e})}emit(e){this.transport.send(e),e.type===`agent-event`&&this.fanOutAgentEvent(e)}};function Ye(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}const Xe=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function Ze(e){return typeof e==`string`&&Xe.includes(e)}var Qe=s((e=>{(function(){var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function n(e){return i(o(e),arguments)}function r(e,t){return n.apply(null,[e].concat(t||[]))}function i(e,r){var i=1,a=e.length,o,s=``,c,l,u,d,f,p,m,h;for(c=0;c<a;c++)if(typeof e[c]==`string`)s+=e[c];else if(typeof e[c]==`object`){if(u=e[c],u.keys)for(o=r[i],l=0;l<u.keys.length;l++){if(o==null)throw Error(n(`[sprintf] Cannot access property "%s" of undefined value "%s"`,u.keys[l],u.keys[l-1]));o=o[u.keys[l]]}else o=u.param_no?r[u.param_no]:r[i++];if(t.not_type.test(u.type)&&t.not_primitive.test(u.type)&&o instanceof Function&&(o=o()),t.numeric_arg.test(u.type)&&typeof o!=`number`&&isNaN(o))throw TypeError(n(`[sprintf] expecting number but found %T`,o));switch(t.number.test(u.type)&&(m=o>=0),u.type){case`b`:o=parseInt(o,10).toString(2);break;case`c`:o=String.fromCharCode(parseInt(o,10));break;case`d`:case`i`:o=parseInt(o,10);break;case`j`:o=JSON.stringify(o,null,u.width?parseInt(u.width):0);break;case`e`:o=u.precision?parseFloat(o).toExponential(u.precision):parseFloat(o).toExponential();break;case`f`:o=u.precision?parseFloat(o).toFixed(u.precision):parseFloat(o);break;case`g`:o=u.precision?String(Number(o.toPrecision(u.precision))):parseFloat(o);break;case`o`:o=(parseInt(o,10)>>>0).toString(8);break;case`s`:o=String(o),o=u.precision?o.substring(0,u.precision):o;break;case`t`:o=String(!!o),o=u.precision?o.substring(0,u.precision):o;break;case`T`:o=Object.prototype.toString.call(o).slice(8,-1).toLowerCase(),o=u.precision?o.substring(0,u.precision):o;break;case`u`:o=parseInt(o,10)>>>0;break;case`v`:o=o.valueOf(),o=u.precision?o.substring(0,u.precision):o;break;case`x`:o=(parseInt(o,10)>>>0).toString(16);break;case`X`:o=(parseInt(o,10)>>>0).toString(16).toUpperCase();break}t.json.test(u.type)?s+=o:(t.number.test(u.type)&&(!m||u.sign)?(h=m?`+`:`-`,o=o.toString().replace(t.sign,``)):h=``,f=u.pad_char?u.pad_char===`0`?`0`:u.pad_char.charAt(1):` `,p=u.width-(h+o).length,d=u.width&&p>0?f.repeat(p):``,s+=u.align?h+o+d:f===`0`?h+d+o:d+h+o)}return s}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var n=e,r,i=[],o=0;n;){if((r=t.text.exec(n))!==null)i.push(r[0]);else if((r=t.modulo.exec(n))!==null)i.push(`%`);else if((r=t.placeholder.exec(n))!==null){if(r[2]){o|=1;var s=[],c=r[2],l=[];if((l=t.key.exec(c))!==null)for(s.push(l[1]);(c=c.substring(l[0].length))!==``;)if((l=t.key_access.exec(c))!==null)s.push(l[1]);else if((l=t.index_access.exec(c))!==null)s.push(l[1]);else throw SyntaxError(`[sprintf] failed to parse named argument key`);else throw SyntaxError(`[sprintf] failed to parse named argument key`);r[2]=s}else o|=2;if(o===3)throw Error(`[sprintf] mixing positional and named placeholders is not (yet) supported`);i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}else throw SyntaxError(`[sprintf] unexpected placeholder`);n=n.substring(r[0].length)}return a[e]=i}e!==void 0&&(e.sprintf=n,e.vsprintf=r),typeof window<`u`&&(window.sprintf=n,window.vsprintf=r,typeof define==`function`&&define.amd&&define(function(){return{sprintf:n,vsprintf:r}}))})()}))();const $e=(e,t,n)=>{let r=e instanceof RegExp?et(e,n):e,i=t instanceof RegExp?et(t,n):t,a=r!==null&&i!=null&&tt(r,i,n);return a&&{start:a[0],end:a[1],pre:n.slice(0,a[0]),body:n.slice(a[0]+r.length,a[1]),post:n.slice(a[1]+i.length)}},et=(e,t)=>{let n=t.match(e);return n?n[0]:null},tt=(e,t,n)=>{let r,i,a,o,s,c=n.indexOf(e),l=n.indexOf(t,c+1),u=c;if(c>=0&&l>0){if(e===t)return[c,l];for(r=[],a=n.length;u>=0&&!s;){if(u===c)r.push(u),c=n.indexOf(e,u+1);else if(r.length===1){let e=r.pop();e!==void 0&&(s=[e,l])}else i=r.pop(),i!==void 0&&i<a&&(a=i,o=l),l=n.indexOf(t,u+1);u=c<l&&c>=0?c:l}r.length&&o!==void 0&&(s=[a,o])}return s},nt=`\0SLASH`+Math.random()+`\0`,rt=`\0OPEN`+Math.random()+`\0`,it=`\0CLOSE`+Math.random()+`\0`,at=`\0COMMA`+Math.random()+`\0`,ot=`\0PERIOD`+Math.random()+`\0`,eee=new RegExp(nt,`g`),tee=new RegExp(rt,`g`),nee=new RegExp(it,`g`),ree=new RegExp(at,`g`),st=new RegExp(ot,`g`),ct=/\\\\/g,iee=/\\{/g,aee=/\\}/g,oee=/\\,/g,see=/\\\./g;function lt(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function cee(e){return e.replace(ct,nt).replace(iee,rt).replace(aee,it).replace(oee,at).replace(see,ot)}function lee(e){return e.replace(eee,`\\`).replace(tee,`{`).replace(nee,`}`).replace(ree,`,`).replace(st,`.`)}function ut(e){if(!e)return[``];let t=[],n=$e(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=ut(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}function uee(e,t={}){if(!e)return[];let{max:n=1e5}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),dt(cee(e),n,!0).map(lee)}function dee(e){return`{`+e+`}`}function fee(e){return/^-?0\d/.test(e)}function pee(e,t){return e<=t}function mee(e,t){return e>=t}function dt(e,t,n){let r=[],i=$e(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?dt(i.post,t,!1):[``];if(/\$$/.test(i.pre))for(let e=0;e<o.length&&e<t;e++){let t=a+`{`+i.body+`}`+o[e];r.push(t)}else{let s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=s||c,u=i.body.indexOf(`,`)>=0;if(!l&&!u)return i.post.match(/,(?!,).*\}/)?(e=i.pre+`{`+i.body+it+i.post,dt(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=ut(i.body),d.length===1&&d[0]!==void 0&&(d=dt(d[0],t,!1).map(dee),d.length===1))return o.map(e=>i.pre+d[0]+e);let f;if(l&&d[0]!==void 0&&d[1]!==void 0){let e=lt(d[0]),t=lt(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.abs(lt(d[2])):1,i=pee;t<e&&(r*=-1,i=mee);let a=d.some(fee);f=[];for(let o=e;i(o,t);o+=r){let e;if(c)e=String.fromCharCode(o),e===`\\`&&(e=``);else if(e=String(o),a){let t=n-e.length;if(t>0){let n=Array(t+1).join(`0`);e=o<0?`-`+n+e.slice(1):n+e}}f.push(e)}}else{f=[];for(let e=0;e<d.length;e++)f.push.apply(f,dt(d[e],t,!1))}for(let e=0;e<f.length;e++)for(let i=0;i<o.length&&r.length<t;i++){let t=a+f[e]+o[i];(!n||l||t)&&r.push(t)}}return r}const ft=e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>65536)throw TypeError(`pattern is too long`)},hee={"[:alnum:]":[`\\p{L}\\p{Nl}\\p{Nd}`,!0],"[:alpha:]":[`\\p{L}\\p{Nl}`,!0],"[:ascii:]":[`\\x00-\\x7f`,!1],"[:blank:]":[`\\p{Zs}\\t`,!0],"[:cntrl:]":[`\\p{Cc}`,!0],"[:digit:]":[`\\p{Nd}`,!0],"[:graph:]":[`\\p{Z}\\p{C}`,!0,!0],"[:lower:]":[`\\p{Ll}`,!0],"[:print:]":[`\\p{C}`,!0],"[:punct:]":[`\\p{P}`,!0],"[:space:]":[`\\p{Z}\\t\\r\\n\\v\\f`,!0],"[:upper:]":[`\\p{Lu}`,!0],"[:word:]":[`\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}`,!0],"[:xdigit:]":[`A-Fa-f0-9`,!1]},pt=e=>e.replace(/[[\]\\-]/g,`\\$&`),gee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),mt=e=>e.join(``),_ee=(e,t)=>{let n=t;if(e.charAt(n)!==`[`)throw Error(`not in a brace expression`);let r=[],i=[],a=n+1,o=!1,s=!1,c=!1,l=!1,u=n,d=``;WHILE:for(;a<e.length;){let t=e.charAt(a);if((t===`!`||t===`^`)&&a===n+1){l=!0,a++;continue}if(t===`]`&&o&&!c){u=a+1;break}if(o=!0,t===`\\`&&!c){c=!0,a++;continue}if(t===`[`&&!c){for(let[t,[o,c,l]]of Object.entries(hee))if(e.startsWith(t,a)){if(d)return[`$.`,!1,e.length-n,!0];a+=t.length,l?i.push(o):r.push(o),s||=c;continue WHILE}}if(c=!1,d){t>d?r.push(pt(d)+`-`+pt(t)):t===d&&r.push(pt(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(pt(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(pt(t)),a++}if(u<a)return[``,!1,0,!1];if(!r.length&&!i.length)return[`$.`,!1,e.length-n,!0];if(i.length===0&&r.length===1&&/^\\?.$/.test(r[0])&&!l)return[gee(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+mt(r)+`]`,p=`[`+(l?``:`^`)+mt(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},ht=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^\/\\])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,`$1$2`).replace(/\\([^\/])/g,`$1`):t?e.replace(/\[([^\/\\{}])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,`$1$2`).replace(/\\([^\/{}])/g,`$1`);var gt;const _t=new Set([`!`,`?`,`+`,`*`,`@`]),vt=e=>_t.has(e),yt=e=>vt(e.type),bt=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),xt=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),vee=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),St=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),Ct=`(?!\\.)`,yee=new Set([`[`,`.`]),bee=new Set([`..`,`.`]),xee=new Set(`().*{}+?[]^$\\!`),See=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),wt=`[^/]`,Tt=wt+`*?`,Et=wt+`+?`;let Cee=0;var Dt=class{type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++Cee;get depth(){return(this.#i?.depth??-1)+1}[Symbol.for(`nodejs.util.inspect.custom`)](){return{"@@type":`AST`,id:this.id,type:this.type,root:this.#e.id,parent:this.#i?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(e,t,n={}){this.type=e,e&&(this.#t=!0),this.#i=t,this.#e=this.#i?this.#i.#e:this,this.#c=this.#e===this?n:this.#e.#c,this.#o=this.#e===this?[]:this.#e.#o,e===`!`&&!this.#e.#s&&this.#o.push(this),this.#a=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let e of this.#r)if(typeof e!=`string`&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#l===void 0?this.type?this.#l=this.type+`(`+this.#r.map(e=>String(e)).join(`|`)+`)`:this.#l=this.#r.map(e=>String(e)).join(``):this.#l}#d(){if(this!==this.#e)throw Error(`should only call on root`);if(this.#s)return this;this.toString(),this.#s=!0;let e;for(;e=this.#o.pop();){if(e.type!==`!`)continue;let t=e,n=t.#i;for(;n;){for(let r=t.#a+1;!n.type&&r<n.#r.length;r++)for(let t of e.#r){if(typeof t==`string`)throw Error(`string part in extglob AST??`);t.copyIn(n.#r[r])}t=n,n=t.#i}}return this}push(...e){for(let t of e)if(t!==``){if(typeof t!=`string`&&!(t instanceof gt&&t.#i===this))throw Error(`invalid part: `+t);this.#r.push(t)}}toJSON(){let e=this.type===null?this.#r.slice().map(e=>typeof e==`string`?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#i?.type===`!`)&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#a===0)return!0;let e=this.#i;for(let t=0;t<this.#a;t++){let n=e.#r[t];if(!(n instanceof gt&&n.type===`!`))return!1}return!0}isEnd(){if(this.#e===this||this.#i?.type===`!`)return!0;if(!this.#i?.isEnd())return!1;if(!this.type)return this.#i?.isEnd();let e=this.#i?this.#i.#r.length:0;return this.#a===e-1}copyIn(e){typeof e==`string`?this.push(e):this.push(e.clone(this))}clone(e){let t=new gt(this.type,e);for(let e of this.#r)t.copyIn(e);return t}static#f(e,t,n,r,i){let a=r.maxExtglobRecursion??2,o=!1,s=!1,c=-1,l=!1;if(t.type===null){let u=n,d=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,d+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),d+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,d+=n;continue}if(!r.noext&&vt(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new gt(n,t);u=gt.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new gt(null,t),f=[],p=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,p+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),p+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,p+=n;continue}if(!r.noext&&vt(n)&&e.charAt(u)===`(`&&(i<=a||t&&t.#h(n))){let a=t&&t.#h(n)?0:1;d.push(p),p=``;let o=new gt(n,d);d.push(o),u=gt.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new gt(null,t);continue}if(n===`)`)return p===``&&t.#r.length===0&&(t.#u=!0),d.push(p),p=``,t.push(...f,d),u;p+=n}return t.type=null,t.#t=void 0,t.#r=[e.substring(n-1)],u}#p(e){return this.#m(e,xt)}#m(e,t=bt){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null)return!1;let n=e.#r[0];return!n||typeof n!=`object`||n.type===null?!1:this.#h(n.type,t)}#h(e,t=vee){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new gt(null,n,this.options);r.#r.push(``),n.push(r),this.#_(e,t)}#_(e,t){let n=e.#r[0];this.#r.splice(t,1,...n.#r);for(let e of n.#r)typeof e==`object`&&(e.#i=this);this.#l=void 0}#v(e){return!!St.get(this.type)?.has(e)}#y(e){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let t=e.#r[0];return!t||typeof t!=`object`||t.type===null?!1:this.#v(t.type)}#b(e){let t=St.get(this.type),n=e.#r[0],r=t?.get(n.type);if(!r)return!1;this.#r=n.#r;for(let e of this.#r)typeof e==`object`&&(e.#i=this);this.type=r,this.#l=void 0,this.#u=!1}static fromGlob(e,t={}){let n=new gt(null,void 0,t);return gt.#f(e,n,0,t,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,n,r,i]=this.toRegExpSource();if(!(r||this.#t||this.#c.nocase&&!this.#c.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return n;let a=(this.#c.nocase?`i`:``)+(i?`u`:``);return Object.assign(RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#c}toRegExpSource(e){let t=e??!!this.#c.dot;if(this.#e===this&&(this.#x(),this.#d()),!yt(this)){let n=this.isStart()&&this.isEnd()&&!this.#r.some(e=>typeof e!=`string`),r=this.#r.map(t=>{let[r,i,a,o]=typeof t==`string`?gt.#C(t,this.#t,n):t.toRegExpSource(e);return this.#t=this.#t||a,this.#n=this.#n||o,r}).join(``),i=``;if(this.isStart()&&typeof this.#r[0]==`string`&&!(this.#r.length===1&&bee.has(this.#r[0]))){let n=yee,a=t&&n.has(r.charAt(0))||r.startsWith(`\\.`)&&n.has(r.charAt(2))||r.startsWith(`\\.\\.`)&&n.has(r.charAt(4)),o=!t&&!e&&n.has(r.charAt(0));i=a?`(?!(?:^|/)\\.\\.?(?:$|/))`:o?Ct:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,ht(r),this.#t=!!this.#t,this.#n]}let n=this.type===`*`||this.type===`+`,r=this.type===`!`?`(?:(?!(?:`:`(?:`,i=this.#S(t);if(this.isStart()&&this.isEnd()&&!i&&this.type!==`!`){let e=this.toString(),t=this;return t.#r=[e],t.type=null,t.#t=void 0,[e,ht(this.toString()),!1,!1]}let a=!n||e||t?``:this.#S(!0);a===i&&(a=``),a&&(i=`(?:${i})(?:${a})*?`);let o=``;if(this.type===`!`&&this.#u)o=(this.isStart()&&!t?Ct:``)+Et;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?Ct:``)+Tt+`)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,ht(i),this.#t=!!this.#t,this.#n]}#x(){if(yt(this)){let e=0,t=!1;do{t=!0;for(let e=0;e<this.#r.length;e++){let n=this.#r[e];typeof n==`object`&&(n.#x(),this.#m(n)?(t=!1,this.#_(n,e)):this.#p(n)?(t=!1,this.#g(n,e)):this.#y(n)&&(t=!1,this.#b(n)))}}while(!t&&++e<10)}else for(let e of this.#r)typeof e==`object`&&e.#x();this.#l=void 0}#S(e){return this.#r.map(t=>{if(typeof t==`string`)throw Error(`string type in extglob ast??`);let[n,r,i,a]=t.toRegExpSource(e);return this.#n=this.#n||a,n}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(`|`)}static#C(e,t,n=!1){let r=!1,i=``,a=!1,o=!1;for(let s=0;s<e.length;s++){let c=e.charAt(s);if(r){r=!1,i+=(xee.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?Et:Tt,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=_ee(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=wt,t=!0;continue}i+=See(c)}return[i,ht(e),!!t,a]}};gt=Dt;const wee=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),Ot=(e,t,n={})=>(ft(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Jt(t,n).match(e)),Tee=/^\*+([^+@!?\*\[\(]*)$/,Eee=e=>t=>!t.startsWith(`.`)&&t.endsWith(e),Dee=e=>t=>t.endsWith(e),Oee=e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),kee=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),Aee=/^\*+\.\*+$/,jee=e=>!e.startsWith(`.`)&&e.includes(`.`),kt=e=>e!==`.`&&e!==`..`&&e.includes(`.`),At=/^\.\*+$/,jt=e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),Mt=/^\*+$/,Nt=e=>e.length!==0&&!e.startsWith(`.`),Pt=e=>e.length!==0&&e!==`.`&&e!==`..`,Ft=/^\?+([^+@!?\*\[\(]*)?$/,It=([e,t=``])=>{let n=Bt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Lt=([e,t=``])=>{let n=Vt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Rt=([e,t=``])=>{let n=Vt([e]);return t?e=>n(e)&&e.endsWith(t):n},zt=([e,t=``])=>{let n=Bt([e]);return t?e=>n(e)&&e.endsWith(t):n},Bt=([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},Vt=([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},Ht=typeof process==`object`&&process?{}.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Ut={win32:{sep:`\\`},posix:{sep:`/`}};Ot.sep=Ht===`win32`?Ut.win32.sep:Ut.posix.sep;const Wt=Symbol(`globstar **`);Ot.GLOBSTAR=Wt,Ot.filter=(e,t={})=>n=>Ot(n,e,t);const Gt=(e,t={})=>Object.assign({},e,t);Ot.defaults=e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return Ot;let t=Ot;return Object.assign((n,r,i={})=>t(n,r,Gt(e,i)),{Minimatch:class extends t.Minimatch{constructor(t,n={}){super(t,Gt(e,n))}static defaults(n){return t.defaults(Gt(e,n)).Minimatch}},AST:class extends t.AST{constructor(t,n,r={}){super(t,n,Gt(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,Gt(e,r))}},unescape:(n,r={})=>t.unescape(n,Gt(e,r)),escape:(n,r={})=>t.escape(n,Gt(e,r)),filter:(n,r={})=>t.filter(n,Gt(e,r)),defaults:n=>t.defaults(Gt(e,n)),makeRe:(n,r={})=>t.makeRe(n,Gt(e,r)),braceExpand:(n,r={})=>t.braceExpand(n,Gt(e,r)),match:(n,r,i={})=>t.match(n,r,Gt(e,i)),sep:t.sep,GLOBSTAR:Wt})};const Kt=(e,t={})=>(ft(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:uee(e,{max:t.braceExpandMax}));Ot.braceExpand=Kt,Ot.makeRe=(e,t={})=>new Jt(e,t).makeRe(),Ot.match=(e,t,n={})=>{let r=new Jt(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e};const qt=/[?*]|[+@!]\(.*?\)|\[|\]/,Mee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`);var Jt=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){ft(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||Ht,this.isWindows=this.platform===`win32`,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,`/`)),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot===void 0?!!(this.isWindows&&this.nocase):t.windowsNoMagicRoot,this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!=`string`)return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)===`#`){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(e=>this.slashSplit(e));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map((e,t,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){let t=e[0]===``&&e[1]===``&&(e[2]===`?`||!qt.test(e[2]))&&!qt.test(e[3]),n=/^[a-z]:/i.test(e[0]);if(t)return[...e.slice(0,4),...e.slice(4).map(e=>this.parse(e))];if(n)return[e[0],...e.slice(1).map(e=>this.parse(e))]}return e.map(e=>this.parse(e))});if(this.debug(this.pattern,r),this.set=r.filter(e=>e.indexOf(!1)===-1),this.isWindows)for(let e=0;e<this.set.length;e++){let t=this.set[e];t[0]===``&&t[1]===``&&this.globParts[e][2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3])&&(t[2]=`?`)}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let t=0;t<e.length;t++)for(let n=0;n<e[t].length;n++)e[t][n]===`**`&&(e[t][n]=`*`);let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):e=t>=1?this.levelOneOptimize(e):this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(e=>{let t=-1;for(;(t=e.indexOf(`**`,t+1))!==-1;){let n=t;for(;e[n+1]===`**`;)n++;n!==t&&e.splice(t,n-t)}return e})}levelOneOptimize(e){return e.map(e=>(e=e.reduce((e,t)=>{let n=e[e.length-1];return t===`**`&&n===`**`?e:t===`..`&&n&&n!==`..`&&n!==`.`&&n!==`**`?(e.pop(),e):(e.push(t),e)},[]),e.length===0?[``]:e))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let n=1;n<e.length-1;n++){let r=e[n];n===1&&r===``&&e[0]===``||(r===`.`||r===``)&&(t=!0,e.splice(n,1),n--)}e[0]===`.`&&e.length===2&&(e[1]===`.`||e[1]===``)&&(t=!0,e.pop())}let n=0;for(;(n=e.indexOf(`..`,n+1))!==-1;){let r=e[n-1];r&&r!==`.`&&r!==`..`&&r!==`**`&&(t=!0,e.splice(n-1,2),n-=2)}}while(t);return e.length===0?[``]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let n of e){let r=-1;for(;(r=n.indexOf(`**`,r+1))!==-1;){let i=r;for(;n[i+1]===`**`;)i++;i>r&&n.splice(r+1,i-r);let a=n[r+1],o=n[r+2],s=n[r+3];if(a!==`..`||!o||o===`.`||o===`..`||!s||s===`.`||s===`..`)continue;t=!0,n.splice(r,1);let c=n.slice(0);c[r]=`**`,e.push(c),r--}if(!this.preserveMultipleSlashes){for(let e=1;e<n.length-1;e++){let r=n[e];e===1&&r===``&&n[0]===``||(r===`.`||r===``)&&(t=!0,n.splice(e,1),e--)}n[0]===`.`&&n.length===2&&(n[1]===`.`||n[1]===``)&&(t=!0,n.pop())}let i=0;for(;(i=n.indexOf(`..`,i+1))!==-1;){let e=n[i-1];if(e&&e!==`.`&&e!==`..`&&e!==`**`){t=!0;let e=i===1&&n[i+1]===`**`?[`.`]:[];n.splice(i-1,2,...e),n.length===0&&n.push(``),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let n=t+1;n<e.length;n++){let r=this.partsMatch(e[t],e[n],!this.preserveMultipleSlashes);if(r){e[t]=[],e[n]=r;break}}return e.filter(e=>e.length)}partsMatch(e,t,n=!1){let r=0,i=0,a=[],o=``;for(;r<e.length&&i<t.length;)if(e[r]===t[i])a.push(o===`b`?t[i]:e[r]),r++,i++;else if(n&&e[r]===`**`&&t[i]===e[r+1])a.push(e[r]),r++;else if(n&&t[i]===`**`&&e[r]===t[i+1])a.push(t[i]),i++;else if(e[r]===`*`&&t[i]&&(this.options.dot||!t[i].startsWith(`.`))&&t[i]!==`**`){if(o===`b`)return!1;o=`a`,a.push(e[r]),r++,i++}else if(t[i]===`*`&&e[r]&&(this.options.dot||!e[r].startsWith(`.`))&&e[r]!==`**`){if(o===`a`)return!1;o=`b`,a.push(t[i]),r++,i++}else return!1;return e.length===t.length&&a}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,n=0;for(let r=0;r<e.length&&e.charAt(r)===`!`;r++)t=!t,n++;n&&(this.pattern=e.slice(n)),this.negate=t}matchOne(e,t,n=!1){let r=0,i=0;if(this.isWindows){let n=typeof e[0]==`string`&&/^[a-z]:$/i.test(e[0]),a=!n&&e[0]===``&&e[1]===``&&e[2]===`?`&&/^[a-z]:$/i.test(e[3]),o=typeof t[0]==`string`&&/^[a-z]:$/i.test(t[0]),s=!o&&t[0]===``&&t[1]===``&&t[2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3]),c=a?3:n?0:void 0,l=s?3:o?0:void 0;if(typeof c==`number`&&typeof l==`number`){let[n,a]=[e[c],t[l]];n.toLowerCase()===a.toLowerCase()&&(t[l]=n,i=l,r=c)}}let{optimizationLevel:a=1}=this.options;return a>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(Wt)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Wt,i),o=t.lastIndexOf(Wt),[s,c,l]=n?[t.slice(i,a),t.slice(a+1),[]]:[t.slice(i,a),t.slice(a+1,o),t.slice(o+1)];if(s.length){let t=e.slice(r,r+s.length);if(!this.#n(t,s,n,0,0))return!1;r+=s.length,i+=s.length}let u=0;if(l.length){if(l.length+r>e.length)return!1;let t=e.length-l.length;if(this.#n(e,l,n,t,0))u=l.length;else{if(e[e.length-1]!==``||r+l.length===e.length||(t--,!this.#n(e,l,n,t,0)))return!1;u=l.length+1}}if(!c.length){let t=!!u;for(let n=r;n<e.length-u;n++){let r=String(e[n]);if(t=!0,r===`.`||r===`..`||!this.options.dot&&r.startsWith(`.`))return!1}return n||t}let d=[[[],0]],f=d[0],p=0,m=[0];for(let e of c)e===Wt?(m.push(p),f=[[],0],d.push(f)):(f[0].push(e),p++);let h=d.length-1,g=e.length-u;for(let e of d)e[1]=g-(m[h--]+e[0].length);return!!this.#t(e,d,r,0,n,0,!!u)}#t(e,t,n,r,i,a,o){let s=t[r];if(!s){for(let t=n;t<e.length;t++){o=!0;let n=e[t];if(n===`.`||n===`..`||!this.options.dot&&n.startsWith(`.`))return!1}return o}let[c,l]=s;for(;n<=l;){if(this.#n(e.slice(0,n+c.length),c,i,n,0)&&a<this.maxGlobstarRecursion){let s=this.#t(e,t,n+c.length,r+1,i,a+1,o);if(s!==!1)return s}let s=e[n];if(s===`.`||s===`..`||!this.options.dot&&s.startsWith(`.`))return!1;n++}return i||null}#n(e,t,n,r,i){let a,o,s,c;for(a=r,o=i,c=e.length,s=t.length;a<c&&o<s;a++,o++){this.debug(`matchOne loop`);let n=t[o],r=e[a];if(this.debug(t,n,r),n===!1||n===Wt)return!1;let i;if(typeof n==`string`?(i=r===n,this.debug(`string match`,n,r,i)):(i=n.test(r),this.debug(`pattern match`,n,r,i)),!i)return!1}if(a===c&&o===s)return!0;if(a===c)return n;if(o===s)return a===c-1&&e[a]===``;throw Error(`wtf?`)}braceExpand(){return Kt(this.pattern,this.options)}parse(e){ft(e);let t=this.options;if(e===`**`)return Wt;if(e===``)return``;let n,r=null;(n=e.match(Mt))?r=t.dot?Pt:Nt:(n=e.match(Tee))?r=(t.nocase?t.dot?kee:Oee:t.dot?Dee:Eee)(n[1]):(n=e.match(Ft))?r=(t.nocase?t.dot?Lt:It:t.dot?Rt:zt)(n):(n=e.match(Aee))?r=t.dot?kt:jee:(n=e.match(At))&&(r=jt);let i=Dt.fromGlob(e,this.options).toMMPattern();return r&&typeof i==`object`&&Reflect.defineProperty(i,`test`,{value:r}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,n=t.noglobstar?`[^/]*?`:t.dot?`(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?`:`(?:(?!(?:\\/|^)\\.).)*?`,r=new Set(t.nocase?[`i`]:[]),i=e.map(e=>{let t=e.map(e=>{if(e instanceof RegExp)for(let t of e.flags.split(``))r.add(t);return typeof e==`string`?Mee(e):e===Wt?Wt:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Wt||a===Wt||(a===void 0?i!==void 0&&i!==Wt?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Wt&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Wt))});let i=t.filter(e=>e!==Wt);if(this.partial&&i.length>=1){let e=[];for(let t=1;t<=i.length;t++)e.push(i.slice(0,t).join(`/`));return`(?:`+e.join(`|`)+`)`}return i.join(`/`)}).join(`|`),[a,o]=e.length>1?[`(?:`,`)`]:[``,``];i=`^`+a+i+o+`$`,this.partial&&(i=`^(?:\\/|`+a+i.slice(1,-1)+o+`)$`),this.negate&&(i=`^(?!`+i+`).+$`);try{this.regexp=new RegExp(i,[...r].join(``))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split(`/`):this.isWindows&&/^\/\/[^\/]+/.test(e)?[``,...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug(`match`,e,this.pattern),this.comment)return!1;if(this.empty)return e===``;if(e===`/`&&t)return!0;let n=this.options;this.isWindows&&(e=e.split(`\\`).join(`/`));let r=this.slashSplit(e);this.debug(this.pattern,`split`,r);let i=this.set;this.debug(this.pattern,`set`,i);let a=r[r.length-1];if(!a)for(let e=r.length-2;!a&&e>=0;e--)a=r[e];for(let e=0;e<i.length;e++){let o=i[e],s=r;if(n.matchBase&&o.length===1&&(s=[a]),this.matchOne(s,o,t))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(e){return Ot.defaults(e).Minimatch}};Ot.AST=Dt,Ot.Minimatch=Jt,Ot.escape=wee,Ot.unescape=ht;const Yt={};function Xt(){throw Error(`gunzipSync is not available in the browser`)}function Zt(){throw Error(`gzipSync is not available in the browser`)}var Qt=class{diff(e,t,n={}){let r;typeof n==`function`?(r=n,n={}):`callback`in n&&(r=n.callback);let i=this.castInput(e,n),a=this.castInput(t,n),o=this.removeEmpty(this.tokenize(i,n)),s=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,s,n,r)}diffWithOptionsObj(e,t,n,r){let i=e=>{if(e=this.postProcess(e,n),r){setTimeout(function(){r(e)},0);return}else return e},a=t.length,o=e.length,s=1,c=a+o;n.maxEditLength!=null&&(c=Math.min(c,n.maxEditLength));let l=n.timeout??1/0,u=Date.now()+l,d=[{oldPos:-1,lastComponent:void 0}],f=this.extractCommon(d[0],t,e,0,n);if(d[0].oldPos+1>=o&&f+1>=a)return i(this.buildValues(d[0].lastComponent,t,e));let p=-1/0,m=1/0,h=()=>{for(let r=Math.max(p,-s);r<=Math.min(m,s);r+=2){let s,c=d[r-1],l=d[r+1];c&&(d[r-1]=void 0);let u=!1;if(l){let e=l.oldPos-r;u=l&&0<=e&&e<a}let h=c&&c.oldPos+1<o;if(!u&&!h){d[r]=void 0;continue}if(s=!h||u&&c.oldPos<l.oldPos?this.addToPath(l,!0,!1,0,n):this.addToPath(c,!1,!0,1,n),f=this.extractCommon(s,t,e,r,n),s.oldPos+1>=o&&f+1>=a)return i(this.buildValues(s.lastComponent,t,e))||!0;d[r]=s,s.oldPos+1>=o&&(m=Math.min(m,r-1)),f+1>=a&&(p=Math.max(p,r+1))}s++};if(r)(function e(){setTimeout(function(){if(s>c||Date.now()>u)return r(void 0);h()||e()},0)})();else for(;s<=c&&Date.now()<=u;){let e=h();if(e)return e}}addToPath(e,t,n,r,i){let a=e.lastComponent;return a&&!i.oneChangePerToken&&a.added===t&&a.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:a.count+1,added:t,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:a}}}extractCommon(e,t,n,r,i){let a=t.length,o=n.length,s=e.oldPos,c=s-r,l=0;for(;c+1<a&&s+1<o&&this.equals(n[s+1],t[c+1],i);)c++,s++,l++,i.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,c}equals(e,t,n){return n.comparator?n.comparator(e,t):e===t||!!n.ignoreCase&&e.toLowerCase()===t.toLowerCase()}removeEmpty(e){let t=[];for(let n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t}castInput(e,t){return e}tokenize(e,t){return Array.from(e)}join(e){return e.join(``)}postProcess(e,t){return e}get useLongestToken(){return!1}buildValues(e,t,n){let r=[],i;for(;e;)r.push(e),i=e.previousComponent,delete e.previousComponent,e=i;r.reverse();let a=r.length,o=0,s=0,c=0;for(;o<a;o++){let e=r[o];if(e.removed)e.value=this.join(n.slice(c,c+e.count)),c+=e.count;else{if(!e.added&&this.useLongestToken){let r=t.slice(s,s+e.count);r=r.map(function(e,t){let r=n[c+t];return r.length>e.length?r:e}),e.value=this.join(r)}else e.value=this.join(t.slice(s,s+e.count));s+=e.count,e.added||(c+=e.count)}}return r}};new class extends Qt{};function $t(e,t){let n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function en(e,t){let n;if(!e||!t||e[e.length-1]!=t[t.length-1])return``;for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function tn(e,t,n){if(e.slice(0,t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);return n+e.slice(t.length)}function nn(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);return e.slice(0,-t.length)+n}function rn(e,t){return tn(e,t,``)}function an(e,t){return nn(e,t,``)}function on(e,t){return t.slice(0,Nee(e,t))}function Nee(e,t){let n=0;e.length>t.length&&(n=e.length-t.length);let r=t.length;e.length<t.length&&(r=e.length);let i=Array(r),a=0;i[0]=0;for(let e=1;e<r;e++){for(t[e]==t[a]?i[e]=i[a]:i[e]=a;a>0&&t[e]!=t[a];)a=i[a];t[e]==t[a]&&a++}a=0;for(let r=n;r<e.length;r++){for(;a>0&&e[r]!=t[a];)a=i[a];e[r]==t[a]&&a++}return a}function sn(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function cn(e){let t=e.match(/^\s*/);return t?t[0]:``}const ln=`a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,Pee=RegExp(`[${ln}]+|\\s+|[^${ln}]`,`ug`);new class extends Qt{equals(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()}tokenize(e,t={}){let n;if(t.intlSegmenter){let r=t.intlSegmenter;if(r.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);n=[];for(let t of Array.from(r.segment(e))){let e=t.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(e)?n[n.length-1]+=e:n.push(e)}}else n=e.match(Pee)||[];let r=[],i=null;return n.forEach(e=>{/\s/.test(e)?i==null?r.push(e):r.push(r.pop()+e):i!=null&&/\s/.test(i)?r[r.length-1]==i?r.push(r.pop()+e):r.push(i+e):r.push(e),i=e}),r}join(e){return e.map((e,t)=>t==0?e:e.replace(/^\s+/,``)).join(``)}postProcess(e,t){if(!e||t.oneChangePerToken)return e;let n=null,r=null,i=null;return e.forEach(e=>{e.added?r=e:e.removed?i=e:((r||i)&&un(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&un(n,i,r,null),e}};function un(e,t,n,r){if(t&&n){let i=cn(t.value),a=sn(t.value),o=cn(n.value),s=sn(n.value);if(e){let r=$t(i,o);e.value=nn(e.value,o,r),t.value=rn(t.value,r),n.value=rn(n.value,r)}if(r){let e=en(a,s);r.value=tn(r.value,s,e),t.value=an(t.value,e),n.value=an(n.value,e)}}else if(n){if(e){let e=cn(n.value);n.value=n.value.substring(e.length)}if(r){let e=cn(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=cn(r.value),i=cn(t.value),a=sn(t.value),o=$t(n,i);t.value=rn(t.value,o);let s=en(rn(n,o),a);t.value=an(t.value,s),r.value=tn(r.value,n,s),e.value=nn(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=cn(r.value),n=on(sn(t.value),e);t.value=an(t.value,n)}else if(e){let n=on(sn(e.value),cn(t.value));t.value=rn(t.value,n)}}new class extends Qt{tokenize(e){let t=RegExp(`(\\r?\\n)|[${ln}]+|[^\\S\\n\\r]+|[^${ln}]`,`ug`);return e.match(t)||[]}};const Fee=new class extends Qt{constructor(){super(...arguments),this.tokenize=fn}equals(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(`
880
880
  `))&&(e=e.trim()),(!n.newlineIsToken||!t.includes(`
881
881
  `))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(`
882
882
  `)&&(e=e.slice(0,-1)),t.endsWith(`
@@ -3098,7 +3098,7 @@ If a command name is provided, shows help for that command.
3098
3098
  Otherwise, lists all available commands.
3099
3099
 
3100
3100
  Note: This is an enhanced version of 'help' that shows all custom commands.
3101
- `,stderr:``,exitCode:0};if(t.length>0&&n.exec){let e=t[0];return n.exec(`${e} --help`,{cwd:n.cwd})}return{stdout:qI(n.getRegisteredCommands?.()??[],await e.getJshCommands?.()??[]),stderr:``,exitCode:0}})}const YI={html:`text/html`,htm:`text/html`,css:`text/css`,js:`application/javascript`,mjs:`application/javascript`,json:`application/json`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,avif:`image/avif`,apng:`image/apng`,bmp:`image/bmp`,ico:`image/x-icon`,woff:`font/woff`,woff2:`font/woff2`,ttf:`font/ttf`,mp3:`audio/mpeg`,mp4:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,m4v:`video/x-m4v`,ogv:`video/ogg`,pdf:`application/pdf`,txt:`text/plain`,xml:`application/xml`,wasm:`application/wasm`};function XI(e){return YI[e.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function ZI(e){return e.startsWith(`image/`)}function QI(e){return e.startsWith(`video/`)}function $I(e){return ZI(e)||QI(e)}function eL(e,t){if(typeof t!=`string`||!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(t))throw Error(`${e} must use an exact semver version in package.json`);return t}let tL=null;function nL(e){let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`);return n>=0?t.slice(n+1):t}function rL(e){let t=e.lastIndexOf(`/`);return t<=0?`/`:e.slice(0,t)}function iL(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function aL(e){if(/^(https?:\/\/|about:|file:|chrome:)/i.test(e))return!0;try{return new URL(e).protocol.length>0}catch{return!1}}function oL(e,t){return e===`/`?t.startsWith(`/`):t===e||t.startsWith(`${e}/`)}function sL(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function cL(e){return e==null?``:e instanceof Uint8Array?`x'${sL(e)}'`:String(e)}function lL(e){return XI(e)}function uL(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id,n=`/preview${e}`;return t?chrome.runtime.getURL(n):`${typeof window<`u`&&window.location?.origin?window.location.origin:`http://localhost:5710`}${n}`}function dL(e){return e.length===0||e.startsWith(`/`)?!1:!e.split(`/`).some(e=>e===`..`)}function fL(e,t){return K(`${e}/${t}`)}function pL(e,t){let n=import.meta.resolve;if(typeof n==`function`)try{return new URL(`./`,n(e))}catch{}return new URL(t,import.meta.url)}function mL(){return typeof process<`u`&&!!process.versions?.node}function hL(){return typeof chrome<`u`&&!!chrome?.runtime?.id}async function gL(){return tL||=(async()=>{let e=(await import(`./sql-wasm-rZv93hdK.js`).then(e=>u(e.default,1))).default,t=mL()?pL(`sql.js/dist/sql-wasm.js`,`../../../../../node_modules/sql.js/dist/`).toString():`https://sql.js.org/dist/`;return e({locateFile:e=>`${t}${e}`})})(),tL}var _L=c({MAGICK_WASM_CDN:()=>bL,MIME_TO_MAGICK_FORMAT:()=>vL,getMagick:()=>SL,isExtension:()=>xL});const vL={"image/jpeg":`JPEG`,"image/png":`PNG`,"image/gif":`GIF`,"image/webp":`WEBP`,"image/bmp":`BMP`,"image/tiff":`TIFF`,"image/avif":`AVIF`};let yL=null;const bL=`https://cdn.jsdelivr.net/npm/@imagemagick/magick-wasm@0.0.38/dist/`,xL=typeof chrome<`u`&&!!chrome?.runtime?.id;async function SL(){return yL||=(async()=>{try{let e=await import(`./dist-BrjVVq8c.js`);if(xL){let t=chrome.runtime.getURL(`magick.wasm`),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch magick.wasm: ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());await e.initializeImageMagick(r)}else{let t=mL()?new URL(`/assets/index-BeMnZBAU.js`,``+import.meta.url).toString():bL,n=new URL(`magick.wasm`,t);await e.initializeImageMagick(n)}return e}catch(e){throw yL=null,e}})(),yL}function CL(e){let t=e.toLowerCase();return t.endsWith(`.jpg`)||t.endsWith(`.jpeg`)?`JPEG`:t.endsWith(`.png`)?`PNG`:t.endsWith(`.gif`)?`GIF`:t.endsWith(`.webp`)?`WEBP`:t.endsWith(`.bmp`)?`BMP`:t.endsWith(`.tiff`)||t.endsWith(`.tif`)?`TIFF`:t.endsWith(`.avif`)?`AVIF`:`PNG`}function wL(){return{stdout:`usage: convert [input] [operations...] [output]
3101
+ `,stderr:``,exitCode:0};if(t.length>0&&n.exec){let e=t[0];return n.exec(`${e} --help`,{cwd:n.cwd})}return{stdout:qI(n.getRegisteredCommands?.()??[],await e.getJshCommands?.()??[]),stderr:``,exitCode:0}})}const YI={html:`text/html`,htm:`text/html`,css:`text/css`,js:`application/javascript`,mjs:`application/javascript`,json:`application/json`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,avif:`image/avif`,apng:`image/apng`,bmp:`image/bmp`,ico:`image/x-icon`,woff:`font/woff`,woff2:`font/woff2`,ttf:`font/ttf`,mp3:`audio/mpeg`,mp4:`video/mp4`,webm:`video/webm`,mov:`video/quicktime`,m4v:`video/x-m4v`,ogv:`video/ogg`,pdf:`application/pdf`,txt:`text/plain`,xml:`application/xml`,wasm:`application/wasm`};function XI(e){return YI[e.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function ZI(e){return e.startsWith(`image/`)}function QI(e){return e.startsWith(`video/`)}function $I(e){return ZI(e)||QI(e)}function eL(e,t){if(typeof t!=`string`||!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(t))throw Error(`${e} must use an exact semver version in package.json`);return t}let tL=null;function nL(e){let t=e.length>1&&e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`);return n>=0?t.slice(n+1):t}function rL(e){let t=e.lastIndexOf(`/`);return t<=0?`/`:e.slice(0,t)}function iL(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function aL(e){if(/^(https?:\/\/|about:|file:|chrome:)/i.test(e))return!0;try{return new URL(e).protocol.length>0}catch{return!1}}function oL(e,t){return e===`/`?t.startsWith(`/`):t===e||t.startsWith(`${e}/`)}function sL(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function cL(e){return e==null?``:e instanceof Uint8Array?`x'${sL(e)}'`:String(e)}function lL(e){return XI(e)}function uL(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id,n=`/preview${e}`;return t?chrome.runtime.getURL(n):`${typeof window<`u`&&window.location?.origin?window.location.origin:`http://localhost:5710`}${n}`}function dL(e){return e.length===0||e.startsWith(`/`)?!1:!e.split(`/`).some(e=>e===`..`)}function fL(e,t){return K(`${e}/${t}`)}function pL(e,t){let n=import.meta.resolve;if(typeof n==`function`)try{return new URL(`./`,n(e))}catch{}return new URL(t,import.meta.url)}function mL(){return typeof process<`u`&&!!process.versions?.node}function hL(){return typeof chrome<`u`&&!!chrome?.runtime?.id}async function gL(){return tL||=(async()=>{let e=(await import(`./sql-wasm-CJELqQTk.js`).then(e=>u(e.default,1))).default,t=mL()?pL(`sql.js/dist/sql-wasm.js`,`../../../../../node_modules/sql.js/dist/`).toString():`https://sql.js.org/dist/`;return e({locateFile:e=>`${t}${e}`})})(),tL}var _L=c({MAGICK_WASM_CDN:()=>bL,MIME_TO_MAGICK_FORMAT:()=>vL,getMagick:()=>SL,isExtension:()=>xL});const vL={"image/jpeg":`JPEG`,"image/png":`PNG`,"image/gif":`GIF`,"image/webp":`WEBP`,"image/bmp":`BMP`,"image/tiff":`TIFF`,"image/avif":`AVIF`};let yL=null;const bL=`https://cdn.jsdelivr.net/npm/@imagemagick/magick-wasm@0.0.38/dist/`,xL=typeof chrome<`u`&&!!chrome?.runtime?.id;async function SL(){return yL||=(async()=>{try{let e=await import(`./dist-BrjVVq8c.js`);if(xL){let t=chrome.runtime.getURL(`magick.wasm`),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch magick.wasm: ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());await e.initializeImageMagick(r)}else{let t=mL()?new URL(`/assets/index-BeMnZBAU.js`,``+import.meta.url).toString():bL,n=new URL(`magick.wasm`,t);await e.initializeImageMagick(n)}return e}catch(e){throw yL=null,e}})(),yL}function CL(e){let t=e.toLowerCase();return t.endsWith(`.jpg`)||t.endsWith(`.jpeg`)?`JPEG`:t.endsWith(`.png`)?`PNG`:t.endsWith(`.gif`)?`GIF`:t.endsWith(`.webp`)?`WEBP`:t.endsWith(`.bmp`)?`BMP`:t.endsWith(`.tiff`)||t.endsWith(`.tif`)?`TIFF`:t.endsWith(`.avif`)?`AVIF`:`PNG`}function wL(){return{stdout:`usage: convert [input] [operations...] [output]
3102
3102
 
3103
3103
  Operations:
3104
3104
  -resize WxH resize to width x height
@@ -3145,7 +3145,7 @@ Options:
3145
3145
  `,exitCode:1};if(!e.onMediaPreview)return{stdout:``,stderr:`imgcat: terminal preview is unavailable
3146
3146
  `,exitCode:1};let r=[];for(let e of t){let t=n.fs.resolvePath(n.cwd,e);if(!(await n.fs.stat(t)).isFile)return{stdout:``,stderr:`imgcat: not a file: ${e}\n`,exitCode:1};let i=XI(t);if(!$I(i))return{stdout:``,stderr:`imgcat: unsupported media type: ${e}\n`,exitCode:1};let a=await n.fs.readFileBuffer(t),o=new Uint8Array(a.byteLength);o.set(a),r.push({path:t,mimeType:i,bytes:o})}try{return await e.onMediaPreview(r),{stdout:``,stderr:``,exitCode:0}}catch(e){return{stdout:``,stderr:`imgcat: ${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}})}var GL=c({Gate:()=>KL,ProcessManager:()=>XL}),KL=class{paused=!1;resumePromise=null;resumeResolve=null;released=!1;pause(){this.released||this.paused||(this.paused=!0,this.resumePromise=new Promise(e=>{this.resumeResolve=e}))}resume(){if(!this.paused)return;this.paused=!1;let e=this.resumeResolve;this.resumePromise=null,this.resumeResolve=null,e?.()}wait(){return!this.paused||this.released?Promise.resolve():this.resumePromise}release(){if(this.released)return;this.released=!0,this.paused=!1;let e=this.resumeResolve;this.resumePromise=null,this.resumeResolve=null,e?.()}isPaused(){return this.paused}};const qL=1024,JL=4294967295,YL={SIGINT:130,SIGTERM:143,SIGKILL:137,SIGSTOP:147,SIGCONT:146};var XL=class{processes=new Map;nextPid=qL;listeners={spawn:new Set,exit:new Set};signalListeners=new Set;spawn(e){let t=this.allocatePid(),n=e.adoptAbort??new AbortController,r={pid:t,ppid:e.ppid??1,kind:e.kind,argv:e.argv.slice(),cwd:e.cwd??`/`,env:{...e.env??{}},owner:{...e.owner},abort:n,gate:new KL,startedAt:Date.now(),status:`running`,exitCode:null,terminatedBy:null,finishedAt:null};return this.processes.set(t,r),this.fire(`spawn`,r),r}exit(e,t){let n=this.processes.get(e);n&&(n.status===`exited`||n.status===`killed`||(n.finishedAt=Date.now(),t===null?n.terminatedBy?(n.exitCode=YL[n.terminatedBy],n.status=`killed`):(n.exitCode=0,n.status=`exited`):(n.exitCode=t,n.status=n.terminatedBy?`killed`:`exited`),n.gate.release(),this.fire(`exit`,n)))}signal(e,t){let n=this.processes.get(e);return!n||n.status===`exited`||n.status===`killed`?!1:t===`SIGSTOP`?(n.gate.pause(),this.fireSignal(n,t),!0):t===`SIGCONT`?(n.gate.resume(),this.fireSignal(n,t),!0):(t===`SIGKILL`?n.terminatedBy=`SIGKILL`:n.terminatedBy===null&&(n.terminatedBy=t),n.abort.signal.aborted||n.abort.abort(),n.gate.release(),this.fireSignal(n,t),!0)}list(){return Array.from(this.processes.values())}get(e){return this.processes.get(e)??null}wait(e){let t=this.processes.get(e);return t?t.status===`exited`||t.status===`killed`?Promise.resolve(t):new Promise(t=>{let n=r=>{r.pid===e&&(this.listeners.exit.delete(n),t(r))};this.listeners.exit.add(n)}):Promise.reject(Error(`pm: no such process: ${e}`))}on(e,t){return this.listeners[e].add(t),()=>{this.listeners[e].delete(t)}}onSignal(e){return this.signalListeners.add(e),()=>{this.signalListeners.delete(e)}}allocatePid(){let e=this.nextPid,t=this.processes.size+1,n=e,r=0;for(;r<=t;){if(!this.processes.has(n))return this.nextPid=n+1>JL?qL:n+1,n;if(n=n+1>JL?qL:n+1,r++,n===e)throw Error(`pm: pid space exhausted`)}throw Error(`pm: pid allocation gave up after ${r} probes (table size=${this.processes.size}); the process table is likely corrupt`)}fire(e,t){let n=Array.from(this.listeners[e]);for(let e of n)try{e(t)}catch(e){console.warn(`[pm] listener error`,e)}}fireSignal(e,t){let n=Array.from(this.signalListeners);for(let r of n)try{r(e,t)}catch(e){console.warn(`[pm] signal listener error`,e)}}};function ZL(e){return async function(t,n){let r=t instanceof Request?t:null,i=QL(t),a=(n?.method??r?.method??`GET`).toUpperCase(),o=eR(r?.headers,n?.headers),s,c;if(n&&`body`in n&&n.body!==void 0)s=nR(n.body,a),c=n.body;else if(r&&a!==`GET`&&a!==`HEAD`){let e=await r.arrayBuffer();s=e.byteLength===0?void 0:new TextDecoder(`utf-8`).decode(new Uint8Array(e)),c=void 0}else s=void 0,c=void 0;c instanceof URLSearchParams&&o&&!tR(o,`content-type`)&&(o[`Content-Type`]=`application/x-www-form-urlencoded;charset=UTF-8`);let l=await e(i,{method:a,headers:o,body:s}),u=new Headers;for(let[e,t]of Object.entries(l.headers))try{u.set(e,t)}catch{}let d=l.status===204||l.status===205||l.status===304||!l.body||l.body.byteLength===0?null:l.body,f=new Response(d,{status:l.status,statusText:l.statusText,headers:u});try{Object.defineProperty(f,`url`,{value:l.url||i,writable:!1,configurable:!0,enumerable:!1})}catch{}return f}}function QL(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function $L(e){if(e){if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}if(Array.isArray(e)){let t={};for(let[n,r]of e)t[n]=r;return t}return{...e}}}function eR(e,t){let n={};e&&e.forEach((e,t)=>{n[t]=e});let r=$L(t);if(r)for(let[e,t]of Object.entries(r))n[e]=t;return n}function tR(e,t){let n=t.toLowerCase();for(let t of Object.keys(e))if(t.toLowerCase()===n)return!0;return!1}function nR(e,t){if(e!=null&&!(t===`GET`||t===`HEAD`)){if(typeof e==`string`)return e;if(e instanceof URLSearchParams)return e.toString();if(e instanceof Uint8Array)return new TextDecoder(`utf-8`).decode(e);if(e instanceof ArrayBuffer)return new TextDecoder(`utf-8`).decode(new Uint8Array(e));if(ArrayBuffer.isView(e)){let t=e;return new TextDecoder(`utf-8`).decode(new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}throw typeof Blob<`u`&&e instanceof Blob?Error(`node fetch shim: Blob request bodies are not supported (use a string, Uint8Array, or URLSearchParams)`):typeof FormData<`u`&&e instanceof FormData?Error(`node fetch shim: FormData request bodies are not supported (post raw application/x-www-form-urlencoded with URLSearchParams instead)`):typeof ReadableStream<`u`&&e instanceof ReadableStream?Error(`node fetch shim: ReadableStream request bodies are not supported (collect into a Uint8Array or string before calling fetch)`):Error(`node fetch shim: unsupported request body type (${Object.prototype.toString.call(e)}); use a string, Uint8Array, ArrayBuffer, or URLSearchParams`)}}function rR(e,t){let n=n=>{if(n.data?.type!==`realm-rpc-req`)return;let r=n.data;iR(e,r,t)};e.addEventListener(`message`,n),e.start?.();let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(`message`,n))}}}async function iR(e,t,n){try{let r=await aR(t,n),i={type:`realm-rpc-res`,id:t.id,result:r},a=uR(r);e.postMessage(i,a)}catch(n){let r=n instanceof Error?n.message:String(n),i={type:`realm-rpc-res`,id:t.id,error:r};e.postMessage(i)}}async function aR(e,t){switch(e.channel){case`vfs`:return oR(e.op,e.args,t);case`exec`:return cR(e.op,e.args,t);case`fetch`:return lR(e.op,e.args,t);default:throw Error(`realm-host: unknown channel '${e.channel}'`)}}async function oR(e,t,n){let r=typeof t[0]==`string`?t[0]:null,i=r===null?null:n.fs.resolvePath(n.cwd,r);switch(e){case`readFile`:return n.fs.readFile(i);case`readFileBinary`:return n.fs.readFileBuffer(i);case`writeFile`:return await n.fs.writeFile(i,t[1]),!0;case`writeFileBinary`:return await n.fs.writeFile(i,t[1]),!0;case`readDir`:return n.fs.readdir(i);case`exists`:return n.fs.exists(i);case`stat`:{let e=await n.fs.stat(i);return{isDirectory:e.isDirectory,isFile:e.isFile,size:e.size}}case`mkdir`:return await n.fs.mkdir(i,{recursive:!0}),!0;case`rm`:return await n.fs.rm(i,{recursive:!0}),!0;case`resolvePath`:return n.fs.resolvePath(n.cwd,t[0]);case`walkTree`:{let e=t[1]??{},r=typeof e.maxFileBytes==`number`?e.maxFileBytes:1/0,a=[];return await sR(n,i,r,a),a}case`writeBatch`:{let e=t[0]??{},r=[],i=[];for(let t of e.mkdirs??[]){let e=n.fs.resolvePath(n.cwd,t);try{await n.fs.mkdir(e,{recursive:!0})}catch(e){let n=e instanceof Error?e.message:String(e);/EEXIST/i.test(n)||r.push({path:t,error:n})}}for(let t of e.files??[]){let e=n.fs.resolvePath(n.cwd,t.path);try{await n.fs.writeFile(e,t.content)}catch(e){i.push({path:t.path,error:e instanceof Error?e.message:String(e)})}}return{ok:!0,failedMkdirs:r,failedFiles:i}}default:throw Error(`realm-host: unknown vfs op '${e}'`)}}async function sR(e,t,n,r){let i;try{i=await e.fs.readdir(t)}catch{return}for(let a of i){let i=t===`/`?`/${a}`:`${t}/${a}`,o;try{o=await e.fs.stat(i)}catch{continue}if(o.isDirectory)r.push({path:i,isDir:!0}),await sR(e,i,n,r);else if(o.isFile){if(o.size<=n)try{let t=await e.fs.readFileBuffer(i);r.push({path:i,isDir:!1,size:o.size,content:t});continue}catch{}r.push({path:i,isDir:!1,size:o.size})}}}async function cR(e,t,n){if(e!==`run`)throw Error(`realm-host: unknown exec op '${e}'`);if(!n.exec)throw Error(`exec is not available in this runtime`);let r=t[0],i=await n.exec(r,{cwd:n.cwd});return{stdout:i.stdout,stderr:i.stderr,exitCode:i.exitCode}}async function lR(e,t,n){if(e!==`request`)throw Error(`realm-host: unknown fetch op '${e}'`);let[r,i]=t,a=await(n.fetch?ZL(n.fetch):globalThis.fetch.bind(globalThis))(r,i),o={};a.headers.forEach((e,t)=>{o[t]=e});let s=new Uint8Array(await a.arrayBuffer());return{status:a.status,statusText:a.statusText,headers:o,body:s,url:a.url}}function uR(e){return e instanceof Uint8Array?[e.buffer]:e&&typeof e==`object`&&`body`in e&&e.body instanceof Uint8Array?[e.body.buffer]:[]}async function dR(e){let t=e.procKind??`jsh`,n=e.pm.spawn({kind:t,argv:e.argv,cwd:e.cwd,env:e.env,owner:e.owner,ppid:e.ppid}),r;try{r=await e.realmFactory({kind:e.kind,ctx:e.ctx})}catch(t){let r=t instanceof Error?t.message:String(t);return e.pm.exit(n.pid,1),{stdout:``,stderr:`realm-runner: ${r}\n`,exitCode:1}}let i=rR(r.controlPort,e.ctx);return new Promise(t=>{let a=!1,o=null,s=null,c=null,l=()=>{s&&r.controlPort.removeEventListener(`message`,s),c&&r.removeEventListener&&r.removeEventListener(`error`,c),o?.(),i.dispose()},u=(i,o)=>{if(!a){a=!0,l();try{r.terminate()}catch{}e.pm.exit(n.pid,o),t(i)}};s=e=>{let t=e.data;if(t?.type===`realm-done`){let t=e.data;u({stdout:t.stdout,stderr:t.stderr,exitCode:t.exitCode},t.exitCode)}else if(t?.type===`realm-error`){let t=e.data;u({stdout:``,stderr:t.message+`
3147
3147
  `,exitCode:1},1)}},c=e=>{u({stdout:``,stderr:(e.message??`realm error`)+`
3148
- `,exitCode:1},1)},o=e.pm.onSignal((e,t)=>{e.pid===n.pid&&t===`SIGKILL`&&u({stdout:``,stderr:``,exitCode:137},137)}),r.controlPort.addEventListener(`message`,s),r.addEventListener&&r.addEventListener(`error`,c);let d={type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideSyncDirs:e.pyodideSyncDirs};r.controlPort.postMessage(d)})}async function fR(e,t,n={}){if(typeof document>`u`)throw Error(`createIframeRealm: document is not available in this runtime`);let r=n.sandboxUrl??pR();if(!r)throw Error(`createIframeRealm: sandbox URL not available (extension API missing)`);let i=n.container??document.body,a=n.messageChannelCtor??globalThis.MessageChannel;if(typeof a!=`function`)throw Error(`createIframeRealm: MessageChannel is not available`);let o=new a,s=document.createElement(`iframe`);s.style.display=`none`,s.dataset.realm=`js`,s.src=r,i.appendChild(s),n.onIframeCreated?.(s),await new Promise((e,t)=>{let n=!1,r=r=>{n||(n=!0,window.removeEventListener(`message`,i),r?t(r):e())},i=e=>{e.source===s.contentWindow&&e.data?.type===`realm-iframe-ready`&&(s.contentWindow.postMessage({type:`realm-port-init`},`*`,[o.port2]),r())};window.addEventListener(`message`,i),s.addEventListener(`error`,()=>r(Error(`realm-iframe: iframe failed to load`)),{once:!0})});let c=!1;return{controlPort:o.port1,terminate(){if(!c){c=!0;try{s.remove()}catch{}try{o.port1.close()}catch{}}}}}function pR(){let e=globalThis.chrome;return e?.runtime?.getURL?e.runtime.getURL(`sandbox.html`):null}var mR=class{port;nextId=1;pending=new Map;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{if(e.data?.type!==`realm-rpc-res`)return;let t=e.data,n=this.pending.get(t.id);n&&(this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result))},e.addEventListener(`message`,this.handler),e.start?.()}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear()}};const hR=new Set([`bcrypt`,`better-sqlite3`,`canvas`,`cpu-features`,`fsevents`,`leveldown`,`libxmljs`,`libxmljs2`,`node-gyp-build`,`node-sass`,`puppeteer`,`robotjs`,`sass-embedded`,`sharp`,`snappy`,`sqlite3`,`tree-sitter`,`usb`]),gR={sharp:` Use the built-in 'convert' shell command for image work.`,canvas:` Use the built-in 'convert' / OffscreenCanvas for image work.`,"better-sqlite3":` Use the built-in 'sqlite3' shell command (sql.js WASM).`,sqlite3:` Use the built-in 'sqlite3' shell command (sql.js WASM).`,bcrypt:` Use crypto.subtle.digest() with PBKDF2 / Argon2 in pure JS.`,puppeteer:` Use the built-in browser-automation shell commands.`};function _R(e,t){let n=gR[t]??``;return Error(`require('${e}'): '${t}' is a Node native module (C++ bindings) — it cannot run in the browser sandbox.${n}`)}function vR(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{i(Error(`Timed out after ${t/1e3}s loading ${n}`))},t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}const yR=new Set([`http`,`https`,`net`,`tls`,`dgram`,`dns`,`cluster`,`worker_threads`,`child_process`,`crypto`,`os`,`stream`,`zlib`,`vm`,`v8`,`perf_hooks`,`readline`,`repl`,`tty`,`inspector`]),bR=new Set([`fs`,`process`,`buffer`]);var xR=class extends Error{code;constructor(e){super(`Process exited with code ${e}`),this.code=e,this.name=`NodeExitError`}};function SR(e){let t=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,n=new Set,r;for(;(r=t.exec(e))!==null;)n.add(r[2]);return[...n]}function CR(e){if(typeof e==`string`)return e;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}async function wR(e,t,n=ER){let r=[],i=[],a=e=>{r.push(typeof e==`string`?e:String(e))},o=e=>{i.push(typeof e==`string`?e:String(e))},s={log:(...e)=>a(`${e.map(CR).join(` `)}\n`),info:(...e)=>a(`${e.map(CR).join(` `)}\n`),warn:(...e)=>o(`${e.map(CR).join(` `)}\n`),error:(...e)=>o(`${e.map(CR).join(` `)}\n`)},c=e.stdin??``,l=!1,u={isTTY:!1,read(){return l?null:(l=!0,c)},toString(){return c},[Symbol.asyncIterator](){return{async next(){return l?{value:void 0,done:!0}:(l=!0,{value:c,done:!1})}}}},d={argv:e.argv,env:e.env,cwd:()=>e.cwd,exit:e=>{throw new xR(Number.isFinite(e)?Number(e):0)},stdin:u,stdout:{write:a},stderr:{write:o}},f=new mR(t),p={readFile:e=>f.call(`vfs`,`readFile`,[e]),readFileBinary:e=>f.call(`vfs`,`readFileBinary`,[e]),writeFile:(e,t)=>f.call(`vfs`,`writeFile`,[e,t]),writeFileBinary:(e,t)=>f.call(`vfs`,`writeFileBinary`,[e,t]),readDir:e=>f.call(`vfs`,`readDir`,[e]),exists:e=>f.call(`vfs`,`exists`,[e]),stat:e=>f.call(`vfs`,`stat`,[e]),mkdir:e=>f.call(`vfs`,`mkdir`,[e]),rm:e=>f.call(`vfs`,`rm`,[e]),fetchToFile:async(e,t)=>{let n=await h(e);if(!n.ok)throw Error(`fetch ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());return await f.call(`vfs`,`writeFileBinary`,[t,r]),r.byteLength}},m=e=>f.call(`exec`,`run`,[e]);async function h(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await f.call(`fetch`,`request`,[n,TR(t,e)]),i=r.body.byteLength===0?null:r.body.buffer.slice(r.body.byteOffset,r.body.byteOffset+r.body.byteLength),a=new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers});return Object.defineProperty(a,`url`,{value:r.url||n}),a}let g=SR(e.code).map(e=>e.startsWith(`node:`)?e.slice(5):e).filter(e=>!bR.has(e)&&!yR.has(e)),_=g.filter(e=>hR.has(e)),v=g.filter(e=>!hR.has(e));for(let e of _)o(`Warning: ${_R(e,e).message}\n`);let y=Object.create(null);if(v.length>0){let e=await Promise.allSettled(v.map(async e=>{let t=await vR(n(e),15e3,`require('${e}')`);y[e]=t&&`default`in t?t.default:t}));for(let t=0;t<e.length;t++){let n=e[t];if(n.status===`rejected`){let e=n.reason instanceof Error?n.reason.message:String(n.reason);o(`Warning: failed to pre-load require('${v[t]}'): ${e}\n`)}}}let b=e=>{let t=e.startsWith(`node:`)?e.slice(5):e;if(t===`fs`)return p;if(t===`process`)return d;if(t===`buffer`)return{Buffer:globalThis.Buffer};if(t===`path`){if(`path`in y)return y.path;if(e in y)return y[e];throw Error(`require('${e}'): path module not pre-loaded. Add require('path') as a static import.`)}if(hR.has(t))throw _R(e,t);if(yR.has(t))throw Error(`require('${e}'): Node built-in '${t}' is not available in the browser environment.${{http:` Use fetch() instead.`,https:` Use fetch() instead.`,child_process:` Use exec() which is available as a shell bridge.`,crypto:` Use globalThis.crypto (Web Crypto API) instead.`}[t]||``}`);if(e in y)return y[e];if(t in y)return y[t];throw Error(`require('${e}'): module not pre-loaded. Use a string literal so it can be pre-fetched, or use \`await import('https://esm.sh/${e}')\` directly.`)},x={exports:{},filename:e.filename},S=0;try{let t=Object.getPrototypeOf(async function(){}).constructor;await new t(`fs`,`process`,`console`,`require`,`module`,`exports`,`exec`,`fetch`,`"use strict";\n${e.code}`)(p,d,s,b,x,x.exports,m,h)}catch(e){e instanceof xR?S=e.code:(o(`${e instanceof Error?e.stack??e.message:String(e)}\n`),S=1)}f.dispose();let C={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:S};t.postMessage(C)}function TR(e,t){if(!e&&!(t instanceof Request))return;let n=t instanceof Request?t:null,r=(e?.method??n?.method??`GET`).toUpperCase(),i={};if(e?.headers)if(e.headers instanceof Headers)e.headers.forEach((e,t)=>{i[t]=e});else if(Array.isArray(e.headers))for(let[t,n]of e.headers)i[t]=n;else Object.assign(i,e.headers);else n&&n.headers.forEach((e,t)=>{i[t]=e});let a;return e?.body!==void 0&&e?.body!==null&&e?.body!==``&&(a=typeof e.body==`string`?e.body:String(e.body)),{method:r,headers:i,body:a}}async function ER(e){return await import(`https://esm.sh/`+e)}const DR=`https://cdn.jsdelivr.net/pyodide/v${eL(`pyodide`,`0.29.4`)}/full/`;async function OR(e,t,n=()=>import(`./pyodide-qABm7xCc.js`)){let r=[],i=[],a=new mR(t),o;try{o=await(await n()).loadPyodide({indexURL:e.pyodideIndexURL,fullStdLib:!1})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e.pyodideSyncDirs??[e.cwd,`/tmp`],c=e=>{i.push(`Warning: ${e}\n`)},l={files:new Map,dirs:new Set};try{l=await AR(a,o,s,c)}catch(e){c(`VFS→Pyodide sync failed: ${e instanceof Error?e.message:String(e)}`)}try{o.FS.chdir(e.cwd)}catch{}o.setStdout({batched:e=>r.push(e+`
3148
+ `,exitCode:1},1)},o=e.pm.onSignal((e,t)=>{e.pid===n.pid&&t===`SIGKILL`&&u({stdout:``,stderr:``,exitCode:137},137)}),r.controlPort.addEventListener(`message`,s),r.addEventListener&&r.addEventListener(`error`,c);let d={type:`realm-init`,kind:e.kind,code:e.code,argv:e.realmArgv??e.argv,env:e.env,cwd:e.cwd,filename:e.filename,stdin:e.stdin,pyodideIndexURL:e.pyodideIndexURL,pyodideSyncDirs:e.pyodideSyncDirs};r.controlPort.postMessage(d)})}async function fR(e,t,n={}){if(typeof document>`u`)throw Error(`createIframeRealm: document is not available in this runtime`);let r=n.sandboxUrl??pR();if(!r)throw Error(`createIframeRealm: sandbox URL not available (extension API missing)`);let i=n.container??document.body,a=n.messageChannelCtor??globalThis.MessageChannel;if(typeof a!=`function`)throw Error(`createIframeRealm: MessageChannel is not available`);let o=new a,s=document.createElement(`iframe`);s.style.display=`none`,s.dataset.realm=`js`,s.src=r,i.appendChild(s),n.onIframeCreated?.(s),await new Promise((e,t)=>{let n=!1,r=r=>{n||(n=!0,window.removeEventListener(`message`,i),r?t(r):e())},i=e=>{e.source===s.contentWindow&&e.data?.type===`realm-iframe-ready`&&(s.contentWindow.postMessage({type:`realm-port-init`},`*`,[o.port2]),r())};window.addEventListener(`message`,i),s.addEventListener(`error`,()=>r(Error(`realm-iframe: iframe failed to load`)),{once:!0})});let c=!1;return{controlPort:o.port1,terminate(){if(!c){c=!0;try{s.remove()}catch{}try{o.port1.close()}catch{}}}}}function pR(){let e=globalThis.chrome;return e?.runtime?.getURL?e.runtime.getURL(`sandbox.html`):null}var mR=class{port;nextId=1;pending=new Map;handler;disposed=!1;constructor(e){this.port=e,this.handler=e=>{if(e.data?.type!==`realm-rpc-res`)return;let t=e.data,n=this.pending.get(t.id);n&&(this.pending.delete(t.id),typeof t.error==`string`?n.reject(Error(t.error)):n.resolve(t.result))},e.addEventListener(`message`,this.handler),e.start?.()}call(e,t,n=[]){if(this.disposed)return Promise.reject(Error(`realm-rpc: client disposed`));let r=this.nextId++,i={type:`realm-rpc-req`,id:r,channel:e,op:t,args:n};return new Promise((e,t)=>{this.pending.set(r,{resolve:e,reject:t}),this.port.postMessage(i)})}dispose(){if(this.disposed)return;this.disposed=!0,this.port.removeEventListener(`message`,this.handler);let e=Error(`realm-rpc: client disposed`);for(let t of this.pending.values())t.reject(e);this.pending.clear()}};const hR=new Set([`bcrypt`,`better-sqlite3`,`canvas`,`cpu-features`,`fsevents`,`leveldown`,`libxmljs`,`libxmljs2`,`node-gyp-build`,`node-sass`,`puppeteer`,`robotjs`,`sass-embedded`,`sharp`,`snappy`,`sqlite3`,`tree-sitter`,`usb`]),gR={sharp:` Use the built-in 'convert' shell command for image work.`,canvas:` Use the built-in 'convert' / OffscreenCanvas for image work.`,"better-sqlite3":` Use the built-in 'sqlite3' shell command (sql.js WASM).`,sqlite3:` Use the built-in 'sqlite3' shell command (sql.js WASM).`,bcrypt:` Use crypto.subtle.digest() with PBKDF2 / Argon2 in pure JS.`,puppeteer:` Use the built-in browser-automation shell commands.`};function _R(e,t){let n=gR[t]??``;return Error(`require('${e}'): '${t}' is a Node native module (C++ bindings) — it cannot run in the browser sandbox.${n}`)}function vR(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{i(Error(`Timed out after ${t/1e3}s loading ${n}`))},t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})})}const yR=new Set([`http`,`https`,`net`,`tls`,`dgram`,`dns`,`cluster`,`worker_threads`,`child_process`,`crypto`,`os`,`stream`,`zlib`,`vm`,`v8`,`perf_hooks`,`readline`,`repl`,`tty`,`inspector`]),bR=new Set([`fs`,`process`,`buffer`]);var xR=class extends Error{code;constructor(e){super(`Process exited with code ${e}`),this.code=e,this.name=`NodeExitError`}};function SR(e){let t=/\brequire\s*\(\s*(['"`])([^'"`\s]+)\1\s*\)/g,n=new Set,r;for(;(r=t.exec(e))!==null;)n.add(r[2]);return[...n]}function CR(e){if(typeof e==`string`)return e;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}async function wR(e,t,n=ER){let r=[],i=[],a=e=>{r.push(typeof e==`string`?e:String(e))},o=e=>{i.push(typeof e==`string`?e:String(e))},s={log:(...e)=>a(`${e.map(CR).join(` `)}\n`),info:(...e)=>a(`${e.map(CR).join(` `)}\n`),warn:(...e)=>o(`${e.map(CR).join(` `)}\n`),error:(...e)=>o(`${e.map(CR).join(` `)}\n`)},c=e.stdin??``,l=!1,u={isTTY:!1,read(){return l?null:(l=!0,c)},toString(){return c},[Symbol.asyncIterator](){return{async next(){return l?{value:void 0,done:!0}:(l=!0,{value:c,done:!1})}}}},d={argv:e.argv,env:e.env,cwd:()=>e.cwd,exit:e=>{throw new xR(Number.isFinite(e)?Number(e):0)},stdin:u,stdout:{write:a},stderr:{write:o}},f=new mR(t),p={readFile:e=>f.call(`vfs`,`readFile`,[e]),readFileBinary:e=>f.call(`vfs`,`readFileBinary`,[e]),writeFile:(e,t)=>f.call(`vfs`,`writeFile`,[e,t]),writeFileBinary:(e,t)=>f.call(`vfs`,`writeFileBinary`,[e,t]),readDir:e=>f.call(`vfs`,`readDir`,[e]),exists:e=>f.call(`vfs`,`exists`,[e]),stat:e=>f.call(`vfs`,`stat`,[e]),mkdir:e=>f.call(`vfs`,`mkdir`,[e]),rm:e=>f.call(`vfs`,`rm`,[e]),fetchToFile:async(e,t)=>{let n=await h(e);if(!n.ok)throw Error(`fetch ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());return await f.call(`vfs`,`writeFileBinary`,[t,r]),r.byteLength}},m=e=>f.call(`exec`,`run`,[e]);async function h(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await f.call(`fetch`,`request`,[n,TR(t,e)]),i=r.body.byteLength===0?null:r.body.buffer.slice(r.body.byteOffset,r.body.byteOffset+r.body.byteLength),a=new Response(i,{status:r.status,statusText:r.statusText,headers:r.headers});return Object.defineProperty(a,`url`,{value:r.url||n}),a}let g=SR(e.code).map(e=>e.startsWith(`node:`)?e.slice(5):e).filter(e=>!bR.has(e)&&!yR.has(e)),_=g.filter(e=>hR.has(e)),v=g.filter(e=>!hR.has(e));for(let e of _)o(`Warning: ${_R(e,e).message}\n`);let y=Object.create(null);if(v.length>0){let e=await Promise.allSettled(v.map(async e=>{let t=await vR(n(e),15e3,`require('${e}')`);y[e]=t&&`default`in t?t.default:t}));for(let t=0;t<e.length;t++){let n=e[t];if(n.status===`rejected`){let e=n.reason instanceof Error?n.reason.message:String(n.reason);o(`Warning: failed to pre-load require('${v[t]}'): ${e}\n`)}}}let b=e=>{let t=e.startsWith(`node:`)?e.slice(5):e;if(t===`fs`)return p;if(t===`process`)return d;if(t===`buffer`)return{Buffer:globalThis.Buffer};if(t===`path`){if(`path`in y)return y.path;if(e in y)return y[e];throw Error(`require('${e}'): path module not pre-loaded. Add require('path') as a static import.`)}if(hR.has(t))throw _R(e,t);if(yR.has(t))throw Error(`require('${e}'): Node built-in '${t}' is not available in the browser environment.${{http:` Use fetch() instead.`,https:` Use fetch() instead.`,child_process:` Use exec() which is available as a shell bridge.`,crypto:` Use globalThis.crypto (Web Crypto API) instead.`}[t]||``}`);if(e in y)return y[e];if(t in y)return y[t];throw Error(`require('${e}'): module not pre-loaded. Use a string literal so it can be pre-fetched, or use \`await import('https://esm.sh/${e}')\` directly.`)},x={exports:{},filename:e.filename},S=0;try{let t=Object.getPrototypeOf(async function(){}).constructor;await new t(`fs`,`process`,`console`,`require`,`module`,`exports`,`exec`,`fetch`,`"use strict";\n${e.code}`)(p,d,s,b,x,x.exports,m,h)}catch(e){e instanceof xR?S=e.code:(o(`${e instanceof Error?e.stack??e.message:String(e)}\n`),S=1)}f.dispose();let C={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:S};t.postMessage(C)}function TR(e,t){if(!e&&!(t instanceof Request))return;let n=t instanceof Request?t:null,r=(e?.method??n?.method??`GET`).toUpperCase(),i={};if(e?.headers)if(e.headers instanceof Headers)e.headers.forEach((e,t)=>{i[t]=e});else if(Array.isArray(e.headers))for(let[t,n]of e.headers)i[t]=n;else Object.assign(i,e.headers);else n&&n.headers.forEach((e,t)=>{i[t]=e});let a;return e?.body!==void 0&&e?.body!==null&&e?.body!==``&&(a=typeof e.body==`string`?e.body:String(e.body)),{method:r,headers:i,body:a}}async function ER(e){return await import(`https://esm.sh/`+e)}const DR=`https://cdn.jsdelivr.net/pyodide/v${eL(`pyodide`,`0.29.4`)}/full/`;async function OR(e,t,n=()=>import(`./pyodide-_MetQICr.js`)){let r=[],i=[],a=new mR(t),o;try{o=await(await n()).loadPyodide({indexURL:e.pyodideIndexURL,fullStdLib:!1})}catch(e){a.dispose();let n={type:`realm-error`,message:`loadPyodide: ${e instanceof Error?e.message:String(e)}`};t.postMessage(n);return}let s=e.pyodideSyncDirs??[e.cwd,`/tmp`],c=e=>{i.push(`Warning: ${e}\n`)},l={files:new Map,dirs:new Set};try{l=await AR(a,o,s,c)}catch(e){c(`VFS→Pyodide sync failed: ${e instanceof Error?e.message:String(e)}`)}try{o.FS.chdir(e.cwd)}catch{}o.setStdout({batched:e=>r.push(e+`
3149
3149
  `)}),o.setStderr({batched:e=>i.push(e+`
3150
3150
  `)});let u=!1;o.setStdin({stdin:()=>u||!e.stdin?null:(u=!0,e.stdin)}),o.globals.set(`__slicc_code`,e.code),o.globals.set(`__slicc_filename`,e.filename),o.globals.set(`__slicc_argv`,e.argv);let d;try{await o.runPythonAsync(`
3151
3151
  import sys
@@ -3185,7 +3185,7 @@ except BaseException:
3185
3185
  `,exitCode:1};let n;try{n=await t.fs.stat(i)}catch{return{stdout:``,stderr:`open: no such file: ${e}\n`,exitCode:1}}if(!n.isFile)return{stdout:``,stderr:`open: not a file: ${e}\n`,exitCode:1};let r;try{r=await t.fs.readFileBuffer(i)}catch{return{stdout:``,stderr:`open: failed to read: ${e}\n`,exitCode:1}}let a=new Uint8Array(r.byteLength);a.set(r);let s=new Blob([a.buffer],{type:lL(i)}),c=URL.createObjectURL(s),l=document.createElement(`a`);l.href=c,l.download=nL(i)||`download`,l.style.display=`none`,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(c),0),u.push(`downloaded ${i}`)}else{if(!c)return{stdout:``,stderr:`open: browser APIs are unavailable in this environment
3186
3186
  `,exitCode:1};let e=uL(i);try{await l(e)}catch(e){return{stdout:``,stderr:`${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}u.push(`opened ${i} → ${e}`)}}return{stdout:u.join(`
3187
3187
  `)+`
3188
- `,stderr:``,exitCode:0}})}let tz=null,nz=null;async function rz(){return tz||=import(`./es-3DUxOu76.js`),tz}async function iz(){return nz||=import(`./dist-EkY3RL7q.js`),nz}function az(e){return e.endsWith(`right`)?{range:e.slice(0,-5),rotation:90}:e.endsWith(`left`)?{range:e.slice(0,-4),rotation:270}:e.endsWith(`down`)?{range:e.slice(0,-4),rotation:180}:{range:e}}function oz(e){let{range:t,rotation:n}=az(e);if(/^\d+$/.test(t)){let e=parseInt(t,10);return{start:e,end:e,rotation:n}}let r=t.match(/^(\d+)-(\d+|end)$/);if(r)return{start:parseInt(r[1],10),end:r[2]===`end`?`end`:parseInt(r[2],10),rotation:n};throw Error(`Invalid page range: ${e}`)}function sz(e,t){let n=e.start,r=e.end;if(n<1||n>t)throw Error(`Page ${n} out of range (1-${t})`);let i=r===`end`?t:r;if(i<1||i>t)throw Error(`Page ${i} out of range (1-${t})`);if(i<n)throw Error(`Invalid range: ${n}-${i}`);let a=[];for(let e=n;e<=i;e++)a.push(e);return a}function cz(){return{stdout:`usage: pdftk <input.pdf> <operation> [args...]
3188
+ `,stderr:``,exitCode:0}})}let tz=null,nz=null;async function rz(){return tz||=import(`./es-BUJ3s4sB.js`),tz}async function iz(){return nz||=import(`./dist-EkY3RL7q.js`),nz}function az(e){return e.endsWith(`right`)?{range:e.slice(0,-5),rotation:90}:e.endsWith(`left`)?{range:e.slice(0,-4),rotation:270}:e.endsWith(`down`)?{range:e.slice(0,-4),rotation:180}:{range:e}}function oz(e){let{range:t,rotation:n}=az(e);if(/^\d+$/.test(t)){let e=parseInt(t,10);return{start:e,end:e,rotation:n}}let r=t.match(/^(\d+)-(\d+|end)$/);if(r)return{start:parseInt(r[1],10),end:r[2]===`end`?`end`:parseInt(r[2],10),rotation:n};throw Error(`Invalid page range: ${e}`)}function sz(e,t){let n=e.start,r=e.end;if(n<1||n>t)throw Error(`Page ${n} out of range (1-${t})`);let i=r===`end`?t:r;if(i<1||i>t)throw Error(`Page ${i} out of range (1-${t})`);if(i<n)throw Error(`Invalid range: ${n}-${i}`);let a=[];for(let e=n;e<=i;e++)a.push(e);return a}function cz(){return{stdout:`usage: pdftk <input.pdf> <operation> [args...]
3189
3189
 
3190
3190
  Operations:
3191
3191
  dump_data Print metadata (page count, title, author, etc.)
@@ -3377,7 +3377,7 @@ self.onmessage = async ({ data: { id, type, data: _data }, }) => {
3377
3377
  };
3378
3378
  `;const Cz=`0.12.10`,wz=`https://unpkg.com/@ffmpeg/core@${Cz}/dist/esm/`,Tz=`slicc-ffmpeg-${Cz}`;let Ez=null;async function Dz(e={}){return Ez||=Oz(e.onProgress).catch(e=>{throw Ez=null,e}),Ez}async function Oz(e){let t=e??(()=>{}),n=new bz,r=await kz(t);return t(`initializing ffmpeg-core...`),await n.load({coreURL:r.coreURL,wasmURL:r.wasmURL,...r.classWorkerURL?{classWorkerURL:r.classWorkerURL}:{}}),t(`ffmpeg ready`),n}async function kz(e){let t=`${wz}ffmpeg-core.js`,n=`${wz}ffmpeg-core.wasm`;if(!hL())return await Promise.all([Az(t,e),Az(n,e)]),{coreURL:t,wasmURL:n};e(`downloading ffmpeg-core (cached after first run)...`);let[r,i]=await Promise.all([jz(t,`application/javascript`,e),jz(n,`application/wasm`,e)]);return{coreURL:Mz(r,`application/javascript`),wasmURL:Mz(i,`application/wasm`),classWorkerURL:Nz(Sz,`application/javascript`)}}async function Az(e,t){if(!(typeof caches>`u`))try{let n=await caches.open(Tz);if(await n.match(e))return;t(`fetching ${Pz(e)}...`);let r=await fetch(e);if(!r.ok)throw Error(`ffmpeg-core fetch ${e} failed: HTTP ${r.status}`);await n.put(e,r.clone())}catch(e){t(`cache preload failed (${e instanceof Error?e.message:String(e)})`)}}async function jz(e,t,n){if(typeof caches<`u`)try{let t=await(await caches.open(Tz)).match(e);if(t)return new Uint8Array(await t.arrayBuffer())}catch{}n(`fetching ${Pz(e)}...`);let r=await fetch(e);if(!r.ok)throw Error(`ffmpeg asset fetch ${e} failed: HTTP ${r.status}`);let i=new Uint8Array(await r.arrayBuffer());if(typeof caches<`u`)try{let n=await caches.open(Tz),r=new Response(i,{headers:{"content-type":t}});await n.put(e,r)}catch{}return i}function Mz(e,t){let n=new ArrayBuffer(e.byteLength);return new Uint8Array(n).set(e),URL.createObjectURL(new Blob([n],{type:t}))}function Nz(e,t){return URL.createObjectURL(new Blob([e],{type:t}))}function Pz(e){return e.replace(/^https?:\/\//,``).slice(0,64)}const Fz={assign:0,create:0,clone:0,discard:0,update:0};function Iz(e,t){return Fz.assign+=1,{...e,...t}}function Lz(e,t,n){return e>=t&&e<=n}function Rz(e){return Lz(e,127462,127487)}function zz(e){return Lz(e,65024,65039)}function Bz(e){return Lz(e,768,879)||Lz(e,6832,6911)||Lz(e,7616,7679)||Lz(e,65056,65071)}function Vz(e){return e>65535?2:1}function Hz(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Bz(n)||zz(n))t+=Vz(n);else break}return t}function Uz(e,t){let n=e.codePointAt(t),r=t+Vz(n);for(r=Hz(e,r);r<e.length-1&&e[r]===`‍`;){let t=e.codePointAt(r+1);r+=1+Vz(t),r=Hz(e,r)}return Rz(n)&&r<e.length&&Rz(e.codePointAt(r))&&(r+=Vz(e.codePointAt(r))),r}function Wz(e){return Lz(e,55296,56319)||Lz(e,768,879)||e===8205}function Gz(e){let t=0,n=0;for(;n<e.length;)n=Uz(e,n),t++;return t}function Kz(e,t){if(t===0)return!0;let n=0,r=0;for(;r<e.length;)if(r=Uz(e,r),n++,n>=t)return!0;return!1}function qz(e,t){let n=0,r=0;for(;r<e.length;)if(r=Uz(e,r),n++,n>t)return!1;return!0}function Jz(e,t){if(t===0)return!0;let n=0;for(;n<e.length;){if(Wz(e.charCodeAt(n)))return Kz(e,t);if(n++,n>=t)return!0}return!1}function Yz(e,t){let n=0;for(;n<e.length;){if(Wz(e.charCodeAt(n)))return qz(e,t);if(n++,n>t)return!1}return!0}var Xz=c({Entries:()=>EB,EntriesRegExp:()=>TB,Every:()=>SB,EveryAll:()=>CB,GraphemeCount:()=>yB,HasPropertyKey:()=>Z,IsArray:()=>Zz,IsAsyncIterator:()=>Qz,IsBigInt:()=>$z,IsBoolean:()=>eB,IsClassInstance:()=>_B,IsConstructor:()=>tB,IsDeepEqual:()=>MB,IsEqual:()=>X,IsFunction:()=>nB,IsGreaterEqualThan:()=>hB,IsGreaterThan:()=>fB,IsInteger:()=>rB,IsIterator:()=>iB,IsLessEqualThan:()=>mB,IsLessThan:()=>pB,IsMaxLength:()=>bB,IsMinLength:()=>xB,IsMultipleOf:()=>gB,IsNull:()=>aB,IsNumber:()=>oB,IsObject:()=>cB,IsObjectNotArray:()=>sB,IsString:()=>lB,IsSymbol:()=>uB,IsUndefined:()=>dB,IsValueLike:()=>vB,Keys:()=>DB,Symbols:()=>OB,TakeLeft:()=>wB,Values:()=>kB});function Zz(e){return Array.isArray(e)}function Qz(e){return cB(e)&&Symbol.asyncIterator in e}function $z(e){return X(typeof e,`bigint`)}function eB(e){return X(typeof e,`boolean`)}function tB(e){if(dB(e)||!nB(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function nB(e){return X(typeof e,`function`)}function rB(e){return Number.isInteger(e)}function iB(e){return cB(e)&&Symbol.iterator in e}function aB(e){return X(e,null)}function oB(e){return Number.isFinite(e)}function sB(e){return cB(e)&&!Zz(e)}function cB(e){return X(typeof e,`object`)&&!aB(e)}function lB(e){return X(typeof e,`string`)}function uB(e){return X(typeof e,`symbol`)}function dB(e){return X(e,void 0)}function X(e,t){return e===t}function fB(e,t){return e>t}function pB(e,t){return e<t}function mB(e,t){return e<=t}function hB(e,t){return e>=t}function gB(e,t){if($z(e)||$z(t))return BigInt(e)%BigInt(t)===0n;if(!oB(e)||rB(e)&&1/t%1==0)return!0;let n=e%t;return Math.min(Math.abs(n),Math.abs(n-t))<1e-10}function _B(e){if(!cB(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return aB(t)?!1:X(typeof t.constructor,`function`)&&!(X(t.constructor,globalThis.Object)||X(t.constructor.name,`Object`))}function vB(e){return $z(e)||eB(e)||aB(e)||oB(e)||lB(e)||dB(e)}function yB(e){return Gz(e)}function bB(e,t){return Yz(e,t)}function xB(e,t){return Jz(e,t)}function SB(e,t,n){for(let r=t;r<e.length;r++)if(!n(e[r],r))return!1;return!0}function CB(e,t,n){let r=!0;for(let i=t;i<e.length;i++)n(e[i],i)||(r=!1);return r}function wB(e,t,n){return X(e.length,0)?n():t(e[0],e.slice(1))}function Z(e,t){return X(t,`__proto__`)||X(t,`constructor`)?Object.prototype.hasOwnProperty.call(e,t):t in e}function TB(e){return DB(e).map(t=>[RegExp(`^${t}$`),e[t]])}function EB(e){return Object.entries(e)}function DB(e){return Object.getOwnPropertyNames(e)}function OB(e){return Object.getOwnPropertySymbols(e)}function kB(e){return Object.values(e)}function AB(e,t){if(!cB(t))return!1;let n=DB(e);return X(n.length,DB(t).length)&&n.every(n=>MB(e[n],t[n]))}function jB(e,t){return Zz(t)&&X(e.length,t.length)&&e.every((n,r)=>MB(e[r],t[r]))}function MB(e,t){return Zz(e)?jB(e,t):cB(e)?AB(e,t):X(e,t)}const NB=/^[\p{ID_Start}_$][\p{ID_Continue}_$\u200C\u200D]*$/u;function PB(e){return NB.test(e)}function FB(e,t){return`(${e} && ${t})`}function IB(e,t){return`(${e} || ${t})`}function LB(e){return`!(${e})`}function RB(e){return`Array.isArray(${e})`}function zB(e){return`Guard.IsAsyncIterator(${e})`}function BB(e){return`typeof ${e} === "bigint"`}function VB(e){return`typeof ${e} === "boolean"`}function HB(e){return`Number.isInteger(${e})`}function UB(e){return`Guard.IsIterator(${e})`}function WB(e){return`${e} === null`}function GB(e){return`Number.isFinite(${e})`}function KB(e){return FB(qB(e),LB(RB(e)))}function qB(e){return`typeof ${e} === "object" && ${e} !== null`}function JB(e){return`typeof ${e} === "string"`}function YB(e){return`typeof ${e} === "symbol"`}function XB(e){return`${e} === undefined`}function ZB(e){return`typeof ${e} === "function"`}function QB(e){return`Guard.IsConstructor(${e})`}function $B(e,t){return`${e} === ${t}`}function eV(e,t){return`${e} > ${t}`}function tV(e,t){return`${e} < ${t}`}function nV(e,t){return`${e} <= ${t}`}function rV(e,t){return`${e} >= ${t}`}function iV(e,t){return`Guard.IsMinLength(${e}, ${t})`}function aV(e,t){return`Guard.IsMaxLength(${e}, ${t})`}function oV(e,t,n,r){return X(t,`0`)?`${e}.every((${n[0]}, ${n[1]}) => ${r})`:`((value, callback) => { for(let index = ${t}; index < value.length; index++) if (!callback(value[index], index)) return false; return true })(${e}, (${n[0]}, ${n[1]}) => ${r})`}function sV(e){return`Object.entries(${e})`}function cV(e){return`Object.getOwnPropertyNames(${e})`}function lV(e,t){return X(t,`"__proto__"`)||X(t,`"constructor"`)?`Object.prototype.hasOwnProperty.call(${e}, ${t})`:`${t} in ${e}`}function uV(e,t){return`Guard.IsDeepEqual(${e}, ${t})`}function dV(e){return`[${e.join(`, `)}]`}function fV(e,t){return`((${e.join(`, `)}) => ${t})`}function pV(e,t){return`${e}(${t.join(`, `)})`}function mV(e,t){return`new ${e}(${t.join(`, `)})`}function hV(e,t){return`${e}${PB(t)?`.${t}`:`[${gV(t)}]`}`}function gV(e){return lB(e)?JSON.stringify(e):`${e}`}function _V(e,t,n){return`(${e} ? ${t} : ${n})`}function vV(e){return`{ ${e.join(`; `)}; }`}function yV(e,t){return`const ${e} = ${t}`}function bV(e,t){return`if(${e}) { ${t} }`}function xV(e){return`return ${e}`}function SV(e){return X(e.length,0)?`true`:e.reduce((e,t)=>FB(e,t))}function CV(e){return X(e.length,0)?`false`:e.reduce((e,t)=>IB(e,t))}function wV(e){return`++${e}`}function TV(e,t){return`Guard.IsMultipleOf(${e}, ${t})`}function EV(e){return e instanceof Boolean}function DV(e){return e instanceof Number}function OV(e){return e instanceof String}function kV(e){return globalThis.ArrayBuffer.isView(e)}function AV(e){return e instanceof globalThis.RegExp}function jV(e){return e instanceof globalThis.Date}function MV(e){return e instanceof globalThis.Set}function NV(e){return e instanceof globalThis.Map}function PV(e){return cB(e)&&Z(e,`~guard`)}function FV(e){return e}function IV(e){return e.map(e=>BV(e))}function LV(e){let t={},n=Object.getOwnPropertyDescriptors(e);for(let e of Object.keys(n)){let r=n[e];Z(r,`value`)&&Object.defineProperty(t,e,{...r,value:BV(r.value)})}return t}function RV(e){return new RegExp(e.source,e.flags)}function zV(e){return e}function BV(e){return e instanceof RegExp?RV(e):PV(e)?FV(e):Zz(e)?IV(e):cB(e)?LV(e):zV(e)}function VV(e){return Fz.clone+=1,BV(e)}const HV={immutableTypes:!1,maxErrors:8,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1};function UV(){return HV}function WV(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 GV(e,t){return{...e,...t}}function KV(e,t,n={}){Fz.create+=1;let r=UV(),i=GV(t,n),a=r.enumerableKind?GV(i,e):WV(i,e);return r.immutableTypes?Object.freeze(a):a}function qV(e,t){Fz.discard+=1;let n={},r=Object.getOwnPropertyDescriptors(VV(e)),i=new Set(t);for(let e of Object.keys(r))i.has(e)||Object.defineProperty(n,e,r[e]);return n}function JV(e,t,n){Fz.update+=1;let r=UV(),i=VV(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 YV(e,t){return cB(e)&&Z(e,`~kind`)&&X(e[`~kind`],t)}function XV(e){return cB(e)}function ZV(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`OptionalAddAction`)&&XV(e.type)}function QV(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`OptionalRemoveAction`)&&XV(e.type)}function $V(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`ReadonlyAddAction`)&&XV(e.type)}function eH(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`ReadonlyRemoveAction`)&&XV(e.type)}function tH(e,t,n){return KV({"~kind":`Deferred`},{action:e,parameters:t,options:n},{})}function nH(e){return YV(e,`Deferred`)}function rH(e,t){return KV({"~kind":`Promise`},{type:`promise`,item:e},t)}function iH(e){return YV(e,`Promise`)}function aH(e){return qV(e,[`~kind`,`type`,`item`])}function oH(e){return JV(e,{"~immutable":!0},{})}function sH(e){return oH(e)}function cH(e){return XV(e)&&Z(e,`~immutable`)}function lH(e){return qV(e,[`~optional`])}function uH(e){return JV(e,{"~optional":!0},{})}function dH(e){return uH(e)}function fH(e){return XV(e)&&Z(e,`~optional`)}function pH(e){return qV(e,[`~readonly`])}function mH(e){return JV(e,{"~readonly":!0},{})}function hH(e){return mH(e)}function gH(e){return XV(e)&&Z(e,`~readonly`)}function _H(e){return{enumerable:UV().enumerableKind,writable:!1,configurable:!1,value:e}}var vH=class{constructor(){globalThis.Object.defineProperty(this,`~kind`,_H(`Base`)),globalThis.Object.defineProperty(this,`~guard`,_H({check:e=>this.Check(e),errors:e=>this.Errors(e)}))}Check(e){return!0}Errors(e){return[]}Convert(e){return e}Clean(e){return e}Default(e){return e}Create(){throw Error(`Create not implemented`)}Clone(){throw Error(`Clone not implemented`)}};function yH(e){return YV(e,`Base`)}function bH(e,t){return KV({"~kind":`Array`},{type:`array`,items:e},t)}function xH(e){return YV(e,`Array`)}function SH(e){return qV(e,[`~kind`,`type`,`items`])}function CH(e,t){return KV({"~kind":`AsyncIterator`},{type:`asyncIterator`,iteratorItems:e},t)}function wH(e){return YV(e,`AsyncIterator`)}function TH(e){return qV(e,[`~kind`,`type`,`iteratorItems`])}function EH(e,t,n={}){return KV({"~kind":`Constructor`},{type:`constructor`,parameters:e,instanceType:t},n)}function DH(e){return YV(e,`Constructor`)}function OH(e){return qV(e,[`~kind`,`type`,`parameters`,`instanceType`])}function kH(e,t,n={}){return KV({"~kind":`Function`},{type:`function`,parameters:e,returnType:t},n)}function AH(e){return YV(e,`Function`)}function jH(e){return qV(e,[`~kind`,`type`,`parameters`,`returnType`])}function MH(e,t){return KV({"~kind":`Ref`},{$ref:e},t)}function NH(e){return YV(e,`Ref`)}function PH(e,t){return KV({"~kind":`Generic`},{type:`generic`,parameters:e,expression:t})}function FH(e){return YV(e,`Generic`)}function IH(e){return KV({"~kind":`Any`},{},e)}function LH(e){return YV(e,`Any`)}function RH(e){return KV({"~kind":`Never`},{not:{}},e)}function zH(e){return YV(e,`Never`)}function BH(e){return DB(e).filter(t=>!fH(e[t]))}function VH(e){return DB(e)}function HH(e){return kB(e)}function UH(e,t={}){let n=BH(e);return KV({"~kind":`Object`},{type:`object`,...n.length>0?{required:n}:{},properties:e},t)}function WH(e){return YV(e,`Object`)}function GH(e){return qV(e,[`~kind`,`type`,`properties`,`required`])}function KH(e,t={}){return KV({"~kind":`Union`},{anyOf:e},t)}function qH(e){return YV(e,`Union`)}function JH(e){return qV(e,[`~kind`,`anyOf`])}function YH(e){return KV({"~kind":`Unknown`},{},e)}function XH(e){return YV(e,`Unknown`)}function ZH(e,t,n){return KV({"~kind":`Cyclic`},{$defs:DB(e).reduce((t,n)=>({...t,[n]:JV(e[n],{},{$id:n})}),{}),$ref:t},n)}function QH(e){return YV(e,`Cyclic`)}function $H(e){return sB(e)&&Z(e,`~unsafe`)&&aB(e[`~unsafe`])}function eU(e,t){return t[e.length]?.(...e)??(()=>{throw Error(`Invalid Arguments`)})()}function tU(e){return YV(e,`Infer`)}function nU(e){return YV(e,`Enum`)}function rU(e,t={}){return KV({"~kind":`Intersect`},{allOf:e},t)}function iU(e){return YV(e,`Intersect`)}function aU(e){return qV(e,[`~kind`,`allOf`])}let oU;function sU(){try{return lU(`null`)(),!0}catch{return!1}}function cU(){return dB(oU)&&(oU=sU()),oU&&UV().useAcceleration}function lU(...e){return new globalThis.Function(...e)}function uU(){throw Error(`Unreachable`)}var dU=c({Hash:()=>BU,HashCode:()=>zU});function fU(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 pU(e){return typeof e==`number`}var mU;(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`})(mU||={});let hU=BigInt(`14695981039346656037`);const[gU,_U]=[BigInt(`1099511628211`),BigInt(`18446744073709551616`)],vU=Array.from({length:256}).map((e,t)=>BigInt(t)),yU=new Float64Array(1),bU=new DataView(yU.buffer),xU=new Uint8Array(yU.buffer);function SU(e){hU^=vU[e],hU=hU*gU%_U}function CU(e){SU(mU.Array);for(let t of e)RU(t)}function wU(e){SU(mU.BigInt),bU.setBigInt64(0,e);for(let e of xU)SU(e)}function TU(e){SU(mU.Boolean),SU(+!!e)}function EU(e){SU(mU.Constructor),RU(e.toString())}function DU(e){SU(mU.Date),RU(e.getTime())}function OU(e){SU(mU.Function),RU(e.toString())}function kU(e){SU(mU.Null)}function AU(e){SU(mU.Number),bU.setFloat64(0,e,!0);for(let e of xU)SU(e)}function jU(e){SU(mU.Object);for(let t of fU(e).sort())RU(t),RU(e[t])}function MU(e){SU(mU.RegExp),PU(e.toString())}const NU=new TextEncoder;function PU(e){SU(mU.String);for(let t of NU.encode(e))SU(t)}function FU(e){SU(mU.Symbol),RU(e.toString())}function IU(e){SU(mU.TypeArray);let t=new Uint8Array(e.buffer);for(let e=0;e<t.length;e++)SU(t[e])}function LU(e){return SU(mU.Undefined)}function RU(e){return kV(e)?IU(e):jV(e)?DU(e):AV(e)?MU(e):EV(e)?TU(e.valueOf()):OV(e)?PU(e.valueOf()):DV(e)?AU(e.valueOf()):pU(e)?AU(e):Zz(e)?CU(e):eB(e)?TU(e):$z(e)?wU(e):tB(e)?EU(e):aB(e)?kU(e):cB(e)?jU(e):lB(e)?PU(e):uB(e)?FU(e):dB(e)?LU(e):nB(e)?OU(e):uU()}function zU(e){return hU=BigInt(`14695981039346656037`),RU(e),hU}function BU(e){return zU(e).toString(16).padStart(16,`0`)}function VU(e){switch(e.keyword){case`additionalProperties`:return`must not have additional properties`;case`anyOf`:return`must match a schema in anyOf`;case`boolean`:return`schema is false`;case`const`:return`must be equal to constant`;case`contains`:return`must contain at least 1 valid item`;case`dependencies`:return`must have properties ${e.params.dependencies.join(`, `)} when property ${e.params.property} is present`;case`dependentRequired`:return`must have properties ${e.params.dependencies.join(`, `)} when property ${e.params.property} is present`;case`enum`:return`must be equal to one of the allowed values`;case`exclusiveMaximum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`exclusiveMinimum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`format`:return`must match format "${e.params.format}"`;case`if`:return`must match "${e.params.failingKeyword}" schema`;case`maxItems`:return`must not have more than ${e.params.limit} items`;case`maxLength`:return`must not have more than ${e.params.limit} characters`;case`maxProperties`:return`must not have more than ${e.params.limit} properties`;case`maximum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`minItems`:return`must not have fewer than ${e.params.limit} items`;case`minLength`:return`must not have fewer than ${e.params.limit} characters`;case`minProperties`:return`must not have fewer than ${e.params.limit} properties`;case`minimum`:return`must be ${e.params.comparison} ${e.params.limit}`;case`multipleOf`:return`must be multiple of ${e.params.multipleOf}`;case`not`:return`must not be valid`;case`oneOf`:return`must match exactly one schema in oneOf`;case`pattern`:return`must match pattern "${e.params.pattern}"`;case`propertyNames`:return`property names ${e.params.propertyNames.join(`, `)} are invalid`;case`required`:return`must have required properties ${e.params.requiredProperties.join(`, `)}`;case`type`:return typeof e.params.type==`string`?`must be ${e.params.type}`:`must be either ${e.params.type.join(` or `)}`;case`unevaluatedItems`:return`must not have unevaluated items`;case`unevaluatedProperties`:return`must not have unevaluated properties`;case`uniqueItems`:return`must not have duplicate items`;case`~guard`:return`must match check function`;case`~refine`:return e.params.message;default:return`an unknown validation error occurred`}}let HU=VU;function UU(){return HU}function WU(e){return XV(e)&&Z(e,`~codec`)&&cB(e[`~codec`])&&Z(e[`~codec`],`encode`)&&Z(e[`~codec`],`decode`)}function GU(e){return KV({"~kind":`BigInt`},{type:`bigint`},e)}function KU(e){return YV(e,`BigInt`)}function qU(e){return YV(e,`Boolean`)}const JU=`-?(?:0|[1-9][0-9]*)`;function YU(e){return KV({"~kind":`Integer`},{type:`integer`},e)}function XU(e){return YV(e,`Integer`)}function ZU(e,t){return KV({"~kind":`Iterator`},{type:`iterator`,iteratorItems:e},t)}function QU(e){return YV(e,`Iterator`)}function $U(e){return qV(e,[`~kind`,`type`,`iteratorItems`])}var eW=class extends Error{constructor(e){super(`Invalid Literal value`),Object.defineProperty(this,`cause`,{value:{value:e},writable:!1,configurable:!1,enumerable:!1})}};function tW(e){return $z(e)?`bigint`:eB(e)?`boolean`:oB(e)?`number`:lB(e)?`string`:(()=>{throw new eW(e)})()}function nW(e,t){return KV({"~kind":`Literal`},{type:tW(e),const:e},t)}function rW(e){return $z(e)||eB(e)||oB(e)||lB(e)}function iW(e){return cW(e)&&$z(e.const)}function aW(e){return cW(e)&&eB(e.const)}function oW(e){return cW(e)&&oB(e.const)}function sW(e){return cW(e)&&lB(e.const)}function cW(e){return YV(e,`Literal`)}function lW(e){return KV({"~kind":`Null`},{type:`null`},e)}function uW(e){return YV(e,`Null`)}const dW=`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`;function fW(e){return KV({"~kind":`Number`},{type:`number`},e)}function pW(e){return YV(e,`Number`)}function mW(e){return KV({"~kind":`Symbol`},{type:`symbol`},e)}function hW(e){return YV(e,`Symbol`)}function gW(e){return KV({"~kind":`String`},{type:`string`},e)}function _W(e){return YV(e,`String`)}function vW(e){let t=MK(e);return X(t.length,2)?t[0]:[]}function yW(e){return!0}function bW(e){return wB(e,(e,t)=>SW(e)?bW(t):!1,()=>!0)}function xW(e){return X(e.length,0)?!1:bW(e)}function SW(e){return qH(e)?xW(e.anyOf):cW(e)?yW(e.const):!1}function CW(e){return xW(e)}function wW(e){return KV({"~kind":`TemplateLiteral`},{type:`string`,pattern:e},{})}function TW(e,t,n=[]){return wB(e,(e,r)=>TW(r,t,[...n,`${e}${t}`]),()=>n)}function EW(e,t){return X(e.length,0)?[`${t}`]:TW(e,t)}function DW(e,t,n=[]){return wB(t,(t,r)=>DW(e,r,[...n,...OW(e,t)]),()=>n)}function OW(e,t){return qH(t)?DW(e,t.anyOf):cW(t)?EW(e,t.const):uU()}function kW(e,t){return wB(t,(t,n)=>kW(OW(e,t),n),()=>e)}function AW(e){return e.map(e=>nW(e))}function jW(e){return KH(AW(kW([],e)))}function MW(e){return X(e.length,0)?uU():X(e.length,1)&&cW(e[0])?e[0]:jW(e)}function NW(e){let t=vW(e);return X(t.length,0)?gW():CW(t)?MW(t):wW(e)}function PW(e){let t=NW(e);return $K(t)?gW():t}function FW(e,t){return KV({"~kind":`Record`},{type:`object`,patternProperties:{[e]:t}})}function IW(e){return FW(AG,e)}function LW(e){return UH({true:e,false:e})}function RW(e){return lB(e)||oB(e)?nW(e):aB(e)?lW():RH()}function zW(e){return e.map(e=>RW(e))}function BW(e){return KH(zW(e))}function VW(e){return BW(e.enum)}function HW(e,t){return TG(BW(e),t)}function UW(e,t){return FW(OG,t)}function WW(e,t={}){let[n,r,i]=[e,e.length,!1];return KV({"~kind":`Tuple`},{type:`array`,additionalItems:i,items:n,minItems:r},t)}function GW(e){return YV(e,`Tuple`)}function KW(e){return qV(e,[`~kind`,`type`,`items`,`minItems`,`additionalItems`])}function qW(e){return e.reduceRight((e,t,n)=>({[n]:t,...e}),{})}function JW(e){return UH(qW(e.items))}function YW(e,t){return gH(e)?!!gH(t):!1}function XW(e,t){return fH(e)?!!fH(t):!1}function ZW(e,t){let n=YW(e,t),r=XW(e,t),i=pH(lH(lG([e,t])));return n&&r?mH(uH(i)):n&&!r?mH(i):!n&&r?uH(i):i}function QW(e,t,n){return n in e?n in t?ZW(e[n],t[n]):e[n]:n in t?t[n]:RH()}function $W(e,t){return[...new Set([...DB(t),...DB(e)])].reduce((n,r)=>({...n,[r]:QW(e,t,r)}),{})}function eG(e){return WH(e)?e.properties:GW(e)?qW(e.items):uU()}function tG(e,t){return UH($W(eG(e),eG(t)))}function nG(e,t){let n=QJ(e,t);return X(n,`left-inside`)?e:X(n,`right-inside`)||X(n,`equal`)?t:RH()}function rG(e){return WH(e)||GW(e)}function iG(e,t){let n=qH(e),r=qH(t);return n||r}function aG(e,t){let n=dG(e),r=dG(t),i=iG(n,r),a=rG(n),o=rG(r);return i?lG([n,r]):a&&o?tG(n,r):a&&!o?n:!a&&o?r:nG(n,r)}function oG(e,t,n=[]){return wB(t,(t,r)=>oG(e,r,[...n,aG(e,t)]),()=>X(n.length,0)?[e]:n)}function sG(e,t,n=[]){return wB(e,(e,r)=>sG(r,t,[...n,...cG([e],t)]),()=>n)}function cG(e,t=[]){return wB(e,(e,n)=>qH(e)?cG(n,sG(e.anyOf,t)):cG(n,oG(e,t)),()=>t)}function lG(e){return rY(cG(e))}function uG(e){return rY(e)}function dG(e){return iU(e)?lG(e.allOf):qH(e)?uG(e.anyOf):e}function fG(e){return X(e.length,1)?e[0]:X(e.length,0)?RH():KH(e)}function pG(e,t){return TG(lG(e),t)}function mG(e,t){return lB(e)||oB(e)?UH({[e]:t}):X(e,!1)?UH({false:t}):X(e,!0)?UH({true:t}):UH({})}function hG(e,t){return FW(kG,t)}function gG(e,t){return Z(e,`pattern`)&&(lB(e.pattern)||e.pattern instanceof RegExp)?FW(e.pattern.toString(),t):FW(AG,t)}function _G(e,t){return CW(vW(e))?TG(PW(e),t):FW(e,t)}function vG(e){return qH(e)?yG(e.anyOf):[e]}function yG(e){return e.reduce((e,t)=>[...e,...vG(t)],[])}function bG(e){return e.some(e=>_W(e)||pW(e)||XU(e))}function xG(e,t){return X(bG(e),!0)?FW(AG,t):void 0}function SG(e,t){return e.reduce((e,n)=>cW(n)&&(lB(n.const)||oB(n.const))?{...e,[n.const]:t}:e,{})}function CG(e,t){return UH(SG(e,t))}function wG(e,t){let n=yG(e),r=xG(n,t);return XV(r)?r:CG(n,t)}function TG(e,t){return LH(e)?IW(t):qU(e)?LW(t):nU(e)?HW(e.enum,t):XU(e)?UW(e,t):iU(e)?pG(e.allOf,t):cW(e)?mG(e.const,t):pW(e)?hG(e,t):qH(e)?wG(e.anyOf,t):_W(e)?gG(e,t):$K(e)?_G(e.pattern,t):UH({})}function EG(e,t,n){return sX([e])?JV(TG(e,t),{},n):jG(e,t,n)}function DG(e,t,n,r,i){return EG(fX(e,t,n),fX(e,t,r),i)}const OG=`^${JU}$`,kG=`^${dW}$`,AG=`^.*$`;function jG(e,t,n={}){return tH(`Record`,[e,t],n)}function MG(e,t,n={}){return EG(e,t,n)}function NG(e,t){return FW(e,t)}function PG(e){return DB(e.patternProperties)[0]}function FG(e){let t=PG(e);return X(t,AG)?gW():X(t,OG)?YU():X(t,kG)?fW():NW(t)}function IG(e){return e.patternProperties[PG(e)]}function LG(e){return YV(e,`Record`)}function RG(e){return KV({"~kind":`Rest`},{type:`rest`,items:e},{})}function zG(e){return YV(e,`Rest`)}function BG(e){return YV(e,`This`)}function VG(e){return KV({"~kind":`Undefined`},{type:`undefined`},e)}function HG(e){return YV(e,`Undefined`)}function UG(e){return YV(e,`Void`)}function WG(e){return GU()}function GG(e){return gW()}function KG(e){return fW()}function qG(e){return YU()}function JG(e){return RH()}function YG(e){return nW(e)}function XG(e){return e}function ZG(e){return KH(e[1])}function QG(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function $G(e){return[e[0],...e[1]]}function eK(e){return e}function tK(e){return e[1]}function nK(e){return X(e.length,2)}function rK(e,t,n){return nK(e)?t(e[0],e[1]):n()}function iK(e,t){return X(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function aK(e,t){for(let n=0;n<e.length;n++){let r=iK(e[n],t);if(nK(r))return r}return[]}function oK(e,t){return Array.from({length:t-e+1},(t,n)=>String.fromCharCode(e+n))}const sK=[...oK(97,122),...oK(65,90)],cK=[`0`,...oK(49,57)];function lK(e){let t=e.indexOf(`*/`);return X(t,-1)?``:e.slice(t+2)}function uK(e){let t=e.indexOf(`
3379
3379
  `);return X(t,-1)?``:e.slice(t)}function dK(e){return e.replace(/^[ \t\r\f\v]+/,``)}function fK(e){let t=dK(e);return t.startsWith(`/*`)?fK(lK(t.slice(2))):t.startsWith(`//`)?fK(uK(t.slice(2))):t}function pK(e){let t=e.trimStart();return t.startsWith(`/*`)?pK(lK(t.slice(2))):t.startsWith(`//`)?pK(uK(t.slice(2))):t}[...cK];function mK(e,t){return aK([e],t)}function hK(e,t){return X(e,``)?[``,t]:e.startsWith(`
3380
- `)?mK(e,fK(t)):e.startsWith(` `)?mK(e,t):mK(e,pK(t))}[...sK,...cK],[...cK];function gK(e){return X(e,``)?[]:[e.slice(0,1),e.slice(1)]}function _K(e,t){let[n,...r]=e;return lB(n)?t.startsWith(n)?!0:_K(r,t):!1}function vK(e,t,n=``){return rK(gK(t),(r,i)=>_K(e,t)?[n,t]:vK(e,i,`${n}${r}`),()=>[])}function yK(e,t){return rK(vK(e,t),(e,t)=>X(e,``)?[]:[e,t],()=>[])}const bK=(e,t,n=()=>[])=>e.length===2?t(e):n(),xK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[WG(e),t]),SK=e=>bK(hK(`.*`,e),([e,t])=>[GG(e),t]),CK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[KG(e),t]),wK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[qG(e),t]),TK=e=>bK(hK(`(?!)`,e),([e,t])=>[JG(e),t]),EK=e=>bK(yK([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[YG(e),t]),DK=e=>bK(bK(xK(e),([e,t])=>[e,t],()=>bK(SK(e),([e,t])=>[e,t],()=>bK(CK(e),([e,t])=>[e,t],()=>bK(wK(e),([e,t])=>[e,t],()=>bK(TK(e),([e,t])=>[e,t],()=>bK(OK(e),([e,t])=>[e,t],()=>bK(EK(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[XG(e),t]),OK=e=>bK(bK(hK(`(`,e),([e,t])=>bK(jK(t),([t,n])=>bK(hK(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[ZG(e),t]),kK=e=>bK(bK(bK(AK(e),([e,t])=>bK(hK(`|`,t),([t,n])=>bK(kK(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>bK(bK(AK(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>bK([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[QG(e),t]),AK=e=>bK(bK(DK(e),([e,t])=>bK(jK(t),([t,n])=>[[e,t],n])),([e,t])=>[$G(e),t]),jK=e=>bK(bK(kK(e),([e,t])=>[e,t],()=>bK(AK(e),([e,t])=>[e,t],()=>[])),([e,t])=>[eK(e),t]),MK=e=>bK(bK(hK(`^`,e),([e,t])=>bK(jK(t),([t,n])=>bK(hK(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[tK(e),t]);function NK(e){return e.join(`|`)}function PK(e){return e.slice(1,e.length-1)}function FK(e,t,n){return KK(t,`${n}${e}`)}function IK(e,t){return KK(e,`${t}-?(?:0|[1-9][0-9]*)n`)}function LK(e,t){return KK(e,`${t}${JU}`)}function RK(e,t){return KK(e,`${t}${dW}`)}function zK(e,t){return GK(KH([nW(`false`),nW(`true`)]),e,t)}function BK(e,t){return KK(e,`${t}.*`)}function VK(e,t,n){return KK(t,`${n}${PK(e)}`)}function HK(e,t,n){return GK(YK(e,{}),t,n)}function UK(e,t,n){return WK(zW(e),t,n)}function WK(e,t,n,r=[]){return wB(e,(e,i)=>WK(i,t,n,[...r,GK(e,[],``)]),()=>KK(t,`${n}(${NK(r)})`))}function GK(e,t,n){return nU(e)?UK(e.enum,t,n):XU(e)?LK(t,n):cW(e)?FK(e.const,t,n):KU(e)?IK(t,n):qU(e)?zK(t,n):pW(e)?RK(t,n):_W(e)?BK(t,n):$K(e)?VK(e.pattern,t,n):QK(e)?HK(e.parameters[0],t,n):qH(e)?WK(e.anyOf,t,n):`(?!)`}function KK(e,t){return wB(e,(e,n)=>GK(e,n,t),()=>t)}function qK(e){return`^${KK(e,``)}$`}function JK(e){return wW(qK(e))}function YK(e,t){return sX(e)?JV(JK(e),{},t):ZK(e,t)}function XK(e,t,n,r){return YK(dX(e,t,n),r)}function ZK(e,t={}){return tH(`TemplateLiteral`,[e],t)}function QK(e){return XV(e)&&Z(e,`action`)&&X(e.action,`TemplateLiteral`)}function $K(e){return YV(e,`TemplateLiteral`)}function eq(e){return KV({"~kind":`ExtendsUnion`},{inferred:e})}function tq(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsUnion`)&&cB(e.inferred)}function nq(e){return KV({"~kind":`ExtendsTrue`},{inferred:e})}function rq(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsTrue`)&&cB(e.inferred)}function iq(){return KV({"~kind":`ExtendsFalse`},{})}function aq(e){return cB(e)&&Z(e,`~kind`)&&X(e[`~kind`],`ExtendsFalse`)}function oq(e){return tq(e)||rq(e)}function sq(e,t,n){return oq(e)?t(e.inferred):n()}function cq(e,t,n,r){return sq(xJ(e,n,r),r=>nq(Iz(Iz(e,r),{[t]:n})),()=>iq())}function lq(e,t){return nq(e)}function uq(e,t,n){return xJ(e,t,BW(n))}function dq(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>dq(e,t,r),()=>iq()),()=>nq(e))}function fq(e,t,n){return xJ(e,t,PW(n))}function pq(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>nq(e),()=>pq(e,t,r)),()=>iq())}function mq(e,t,n){return LH(n)?lq(e,t):nU(n)?uq(e,t,n.enum):tU(n)?cq(e,n.name,t,n.extends):iU(n)?dq(e,t,n.allOf):$K(n)?fq(e,t,n.pattern):qH(n)?pq(e,t,n.anyOf):XH(n)?nq(e):iq()}function hq(e,t,n){return tU(n)?mq(e,t,n):LH(n)||XH(n)?nq(e):eq(e)}function gq(e,t){let n=cH(e),r=cH(t);return n&&r||!n&&r?!0:!(n&&!r)}function _q(e,t,n,r){return xH(r)?gq(t,r)?xJ(e,n,r.items):iq():mq(e,t,r)}function vq(e,t,n){return wH(n)?xJ(e,t,n.iteratorItems):mq(e,CH(t),n)}function yq(e,t,n){return KU(n)?nq(e):mq(e,t,n)}function bq(e,t,n){return qU(n)?nq(e):mq(e,t,n)}function xq(e,t,n,r,i){let a=tU(r)?t:r,o=tU(r)?r:t,s=fH(t),c=fH(r);return!s&&c?iq():sq(xJ(e,a,o),e=>wq(e,n,i),()=>iq())}function Sq(e,t,n,r){return wB(r,(r,i)=>xq(e,t,n,r,i),()=>fH(t)?nq(e):iq())}function Cq(e,t,n){return wB(t,(t,r)=>Sq(e,t,r,n),()=>nq(e))}function wq(e,t,n){return Cq(e,t,n)}function Tq(e,t,n){return UG(n)?nq(e):xJ(e,t,n)}function Eq(e,t,n,r){return LH(r)||XH(r)?nq(e):DH(r)?sq(wq(e,t,r.parameters),e=>Tq(e,n,r.instanceType),()=>iq()):iq()}function Dq(e,t,n){return xJ(e,VW(t),n)}function Oq(e,t,n,r){return LH(r)||XH(r)?nq(e):AH(r)?sq(wq(e,t,r.parameters),e=>Tq(e,n,r.returnType),()=>iq()):iq()}function kq(e,t,n){return XU(n)||pW(n)?nq(e):mq(e,t,n)}function Aq(e,t,n){return xJ(e,lG(t),n)}function jq(e,t,n){return QU(n)?xJ(e,t,n.iteratorItems):mq(e,ZU(t),n)}function Mq(e,t,n){return t===n?nq(e):iq()}function Nq(e,t,n){return cW(n)?Mq(e,t,n.const):KU(n)?nq(e):mq(e,nW(t),n)}function Pq(e,t,n){return cW(n)?Mq(e,t,n.const):qU(n)?nq(e):mq(e,nW(t),n)}function Fq(e,t,n){return cW(n)?Mq(e,t,n.const):pW(n)?nq(e):mq(e,nW(t),n)}function Iq(e,t,n){return cW(n)?Mq(e,t,n.const):_W(n)?nq(e):mq(e,nW(t),n)}function Lq(e,t,n){return $z(t.const)?Nq(e,t.const,n):eB(t.const)?Pq(e,t.const,n):oB(t.const)?Fq(e,t.const,n):lB(t.const)?Iq(e,t.const,n):uU()}function Rq(e,t,n){return tU(n)?mq(e,t,n):nq(e)}function zq(e,t,n){return uW(n)?nq(e):mq(e,t,n)}function Bq(e,t,n){return pW(n)?nq(e):mq(e,t,n)}function Vq(e,t,n){return fH(t)?fH(n)?nq(e):iq():nq(e)}function Hq(e,t,n){return tU(n)&&zH(n.extends)?iq():sq(xJ(e,t,n),e=>Vq(e,t,n),()=>iq())}function Uq(e,t){return e.reduce((e,n)=>n in t&&oq(t[n])?{...e,...t[n].inferred}:uU(),{})}function Wq(e,t,n){let r={};for(let i of DB(n))r[i]=i in t?Hq({},t[i],n[i]):fH(n[i])?tU(n[i])?nq(Iz(e,{[n[i].name]:n[i].extends})):nq(e):iq();let i=kB(r).every(e=>oq(e)),a=i?Uq(DB(r),r):{};return i?nq(a):iq()}function Gq(e,t,n){let r=Wq(e,t,n);return oq(r)?nq(Iz(e,r.inferred)):iq()}function Kq(e,t,n){return Gq(e,t,n)}function qq(e,t,n){return WH(n)?Kq(e,t,n.properties):mq(e,UH(t),n)}function Jq(e,t,n){return iH(n)?xJ(e,t,n.item):mq(e,rH(t),n)}function Yq(e,t,n){return _W(n)?nq(e):mq(e,t,n)}function Xq(e,t,n){return hW(n)?nq(e):mq(e,t,n)}function Zq(e,t,n){return xJ(e,PW(t),n)}function Qq(e,t){return KV({"~kind":`Inferrable`},{name:e,type:t},{})}function $q(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`name`)&&Z(e,`type`)&&X(e[`~kind`],`Inferrable`)&&lB(e.name)&&cB(e.type)}function eJ(e){return zG(e)?tU(e.items)?xH(e.items.extends)?Qq(e.items.name,e.items.extends.items):XH(e.items.extends)?Qq(e.items.name,e.items.extends):void 0:uU():void 0}function tJ(e){return tU(e)?Qq(e.name,e.extends):void 0}function nJ(e,t,n=[]){return wB(e,(e,r)=>sq(xJ({},e,t),()=>nJ(r,t,[...n,e]),()=>void 0),()=>n)}function rJ(e,t,n,r){let i=nJ(n,r);return Zz(i)?nq(Iz(e,{[t]:WW(i)})):iq()}function iJ(e,t,n,r){let i=nJ(n,r);return Zz(i)?nq(Iz(e,{[t]:KH(i)})):iq()}function aJ(e){return[...e].reverse()}function oJ(e,t){return t?aJ(e):e}function sJ(e){let t=e.length>0?e[0]:void 0;return XV(XV(t)?eJ(t):void 0)}function cJ(e,t,n,r,i,a){return sq(xJ(e,n,i),e=>dJ(e,t,r,a),()=>iq())}function lJ(e,t,n,r,i){let a=eJ(r);return $q(a)?rJ(e,a.name,oJ(n,t),a.type):wB(n,(n,a)=>cJ(e,t,n,a,r,i),()=>iq())}function uJ(e,t,n,r){return wB(r,(r,i)=>lJ(e,t,n,r,i),()=>X(n.length,0)?nq(e):iq())}function dJ(e,t,n,r){return uJ(e,t,n,r)}function fJ(e,t,n){let r=uX(e,{callstack:[]},n),i=sJ(r);return dJ(e,i,oJ(t,i),oJ(r,i))}function pJ(e,t,n){let r=tJ(n);return $q(r)?iJ(e,r.name,t,r.type):wB(t,(t,r)=>sq(xJ(e,t,n),e=>pJ(e,r,n),()=>iq()),()=>nq(e))}function mJ(e,t,n){let r=uX(e,{callstack:[]},t);return GW(n)?fJ(e,r,n.items):xH(n)?pJ(e,r,n.items):mq(e,WW(r),n)}function hJ(e,t,n){return UG(n)||HG(n)?nq(e):mq(e,t,n)}function gJ(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>nq(e),()=>gJ(e,t,r)),()=>iq())}function _J(e,t,n){return wB(t,(t,r)=>sq(gJ(e,t,n),e=>_J(e,r,n),()=>iq()),()=>nq(e))}function vJ(e,t,n){let r=tJ(n);return $q(r)?iJ(e,r.name,t,r.type):qH(n)?_J(e,t,n.anyOf):_J(e,t,[n])}function yJ(e,t,n){return tU(n)?mq(e,t,n):LH(n)||XH(n)?nq(e):iq()}function bJ(e,t,n){return UG(n)?nq(e):mq(e,t,n)}function xJ(e,t,n){return LH(t)?hq(e,t,n):xH(t)?_q(e,t,t.items,n):wH(t)?vq(e,t.iteratorItems,n):KU(t)?yq(e,t,n):qU(t)?bq(e,t,n):DH(t)?Eq(e,t.parameters,t.instanceType,n):nU(t)?Dq(e,t,n):AH(t)?Oq(e,t.parameters,t.returnType,n):XU(t)?kq(e,t,n):iU(t)?Aq(e,t.allOf,n):QU(t)?jq(e,t.iteratorItems,n):cW(t)?Lq(e,t,n):zH(t)?Rq(e,t,n):uW(t)?zq(e,t,n):pW(t)?Bq(e,t,n):WH(t)?qq(e,t.properties,n):iH(t)?Jq(e,t.item,n):_W(t)?Yq(e,t,n):hW(t)?Xq(e,t,n):$K(t)?Zq(e,t.pattern,n):GW(t)?mJ(e,t.items,n):HG(t)?hJ(e,t,n):qH(t)?vJ(e,t.anyOf,n):XH(t)?yJ(e,t,n):UG(t)?bJ(e,t,n):iq()}function SJ(e,t){return lG([...e,UH(t)])}function CJ(e,t,n){return sX(e)?JV(SJ(e,t),{},n):TJ(e,t,n)}function wJ(e,t,n,r,i){return CJ(dX(e,t,n),lX(e,t,r),i)}function TJ(e,t,n={}){return tH(`Interface`,[e,t],n)}function EJ(e){return XV(e)&&Z(e,`action`)&&X(e.action,`Interface`)}function DJ(e,t,n){return e.includes(n)?!0:AJ([...e,n],t,t[n])}function OJ(e,t,n){return kJ(e,t,HH(n))}function kJ(e,t,n){return wB(n,(n,r)=>AJ(e,t,n)?!0:kJ(e,t,r),()=>!1)}function AJ(e,t,n){return NH(n)?DJ(e,t,n.$ref):xH(n)?AJ(e,t,n.items):wH(n)?AJ(e,t,n.iteratorItems):DH(n)?kJ(e,t,[...n.parameters,n.instanceType]):AH(n)?kJ(e,t,[...n.parameters,n.returnType]):EJ(n)?OJ(e,t,n.parameters[1]):iU(n)?kJ(e,t,n.allOf):QU(n)?AJ(e,t,n.iteratorItems):WH(n)?OJ(e,t,n.properties):iH(n)?AJ(e,t,n.item):qH(n)?kJ(e,t,n.anyOf):GW(n)?kJ(e,t,n.items):LG(n)?AJ(e,t,IG(n)):!1}function jJ(e,t,n){return AJ(e,t,n)}function MJ(e,t){return t.reduce((t,n)=>n in e?jJ([n],e,e[n])?[...t,n]:t:uU(),[])}function NJ(e){return MJ(e,VH(e))}function PJ(e,t,n){return n.includes(t)?n:t in e?LJ(e,e[t],[...n,t]):uU()}function FJ(e,t,n){return IJ(e,HH(t),n)}function IJ(e,t,n){return t.reduce((t,n)=>LJ(e,n,t),n)}function LJ(e,t,n){return NH(t)?PJ(e,t.$ref,n):xH(t)?LJ(e,t.items,n):wH(t)?LJ(e,t.iteratorItems,n):DH(t)?IJ(e,[...t.parameters,t.instanceType],n):AH(t)?IJ(e,[...t.parameters,t.returnType],n):EJ(t)?FJ(e,t.parameters[1],n):iU(t)?IJ(e,t.allOf,n):QU(t)?LJ(e,t.iteratorItems,n):WH(t)?FJ(e,t.properties,n):iH(t)?LJ(e,t.item,n):qH(t)?IJ(e,t.anyOf,n):GW(t)?IJ(e,t.items,n):LG(t)?LJ(e,IG(t),n):n}function RJ(e,t,n){return LJ(e,n,[t])}function zJ(e){return IH()}function BJ(e){return DB(e).reduce((t,n)=>({...t,[n]:HJ(e[n])}),{})}function VJ(e){return e.reduce((e,t)=>[...e,HJ(t)],[])}function HJ(e){return NH(e)?zJ(e.$ref):xH(e)?bH(HJ(e.items),SH(e)):wH(e)?CH(HJ(e.iteratorItems)):DH(e)?EH(VJ(e.parameters),HJ(e.instanceType)):AH(e)?kH(VJ(e.parameters),HJ(e.returnType)):iU(e)?rU(VJ(e.allOf)):QU(e)?ZU(HJ(e.iteratorItems)):WH(e)?UH(BJ(e.properties)):iH(e)?rH(HJ(e.item)):LG(e)?MG(FG(e),HJ(IG(e))):qH(e)?KH(VJ(e.anyOf)):GW(e)?WW(VJ(e.items)):e}function UJ(e,t){return t in e?HJ(e[t]):YH()}function WJ(e){return UJ(e.$defs,e.$ref)}function GJ(e,t,n){let r=dX(e,{callstack:[]},t),i=lX({},{callstack:[]},n);return lG([...r,UH(i)])}function KJ(e,t){return DB(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=EJ(r)?GJ(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function qJ(e,t,n){return ZH(KJ(e,RJ(e,t,n)),t)}function JJ(e,t){return t in e?NH(e[t])?JJ(e,e[t].$ref):e[t]:RH()}function YJ(e,t){return JJ(e,t)}function XJ(e){return QH(e)?WJ(e):$H(e)?YH():e}function ZJ(e,t,n){return xJ(e,XJ(t),XJ(n))}function QJ(e,t){let n=[XH(e)?iq():ZJ({},e,t),XH(e)?nq({}):ZJ({},t,e)];return oq(n[0])&&oq(n[1])?`equal`:oq(n[0])&&aq(n[1])?`left-inside`:aq(n[0])&&oq(n[1])?`right-inside`:`disjoint`}function $J(e,t){return t.filter(t=>QJ(e,t)!==`right-inside`)}function eY(e,t){return X(t.some(t=>{let n=QJ(e,t);return X(n,`left-inside`)||X(n,`equal`)}),!1)}function tY(e,t){let n=dG(e);return LH(n)?[n]:eY(n,t)?[...$J(n,t),n]:t}function nY(e){return e.reduce((e,t)=>WH(t)?[...e,t]:zH(t)?e:tY(t,e),[])}function rY(e){let t=yG(nY(e));return t.length===0?RH():t.length===1?t[0]:KH(t)}function iY(e,t){return JV(dG(e),{},t)}function aY(e,t,n,r){return iY(fX(e,t,n),r)}function oY(e,t=[]){return nH(e)&&X(e.action,`Conditional`)?NH(e.parameters[0])?oY(e.parameters[2],oY(e.parameters[3],[...t,e.parameters[0].$ref])):oY(e.parameters[2],oY(e.parameters[3],t)):nH(e)&&X(e.action,`Mapped`)&&nH(e.parameters[1])&&X(e.parameters[1].action,`KeyOf`)&&NH(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function sY(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function cY(e,t,n=[]){let[r,...i]=e,[a,...o]=t;return fB(e.length,0)&&fB(t.length,0)?cY(i,o,[...n,[a,r]]):n}function lY(e){return qH(e)?[...e.anyOf]:[e]}function uY(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function dY(e,t){return t.reduce((t,n)=>[...t,...uY(e,n)],[])}function fY(e){return e.reduce((e,t)=>X(t[0],!0)?dY(e,lY(t[1])):dY(e,[t[1]]),[[]])}function pY(e,t,n){let r=cY(t,sY(e,oY(n)));return nH(n)&&X(n.action,`Conditional`)||nH(n)&&X(n.action,`Mapped`)?fY(r):[t]}function mY(){return[`(not-resolvable)`,RH()]}function hY(){return[`(not-generic)`,RH()]}function gY(e,t,n){return[e,PH(t,n)]}function _Y(e,t,n){return t in e?vY(e,t,e[t],n):mY()}function vY(e,t,n,r){return FH(n)?gY(t,n.parameters,n.expression):NH(n)?_Y(e,n.$ref,r):hY()}function yY(e,t,n){return vY(e,`(anonymous)`,t,n)}function bY(e,t,n){if(tU(t)||jY(t)||oq(ZJ({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function xY(e,t,n,r,i){let a=fX(e,t,i);return bY(n,a,r),Iz(e,{[n]:a})}function SY(e,t,n,r,i){let a=fX(e,t,n.extends),o=fX(e,t,n.equals);return wB(i,(i,o)=>CY(xY(e,t,n.name,a,i),t,r,o),()=>CY(xY(e,t,n.name,a,o),t,r,[]))}function CY(e,t,n,r){return wB(n,(n,i)=>SY(e,t,n,i,r),()=>e)}function wY(e,t,n,r){return CY(e,t,n,r)}function TY(e){return fB(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function EY(e,t){return X(TY(e),t)}function DY(e,t,n,r,i,a){return fX(e,t,fX(wY(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function OY(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,DY(e,t,n,r,i,o)],[])}function kY(e,t,n,r,i,a){let o=OY(e,t,n,r,i,pY(r,a,i));return X(o.length,1)?o[0]:uG(o)}function Dme(e,t,n,r){let i=dX(e,t,r),a=yY(e,n,r),o=a[0],s=a[1];return FH(s)?EY(t,o)?AY(MH(o),i):kY(e,t,MH(o),s.parameters,s.expression,i):AY(n,i)}function AY(e,t){return KV({"~kind":`Call`},{target:e,arguments:t},{})}function jY(e){return YV(e,`Call`)}function Ome(e,t){return e(t)}function kme(e,t){return lB(t)?nW(Ome(e,t)):nW(t)}function Ame(e,t){return MY(e,PW(t))}function jme(e,t){return KH(t.map(t=>MY(e,t)))}function MY(e,t){return cW(t)?kme(e,t.const):$K(t)?Ame(e,t.pattern):qH(t)?jme(e,t.anyOf):t}function Mme(e,t={}){return tH(`Capitalize`,[e],t)}function Nme(e,t={}){return tH(`Lowercase`,[e],t)}function Pme(e,t={}){return tH(`Uncapitalize`,[e],t)}function Fme(e,t={}){return tH(`Uppercase`,[e],t)}const Ime=e=>e[0].toUpperCase()+e.slice(1),Lme=e=>e.toLowerCase(),Rme=e=>e[0].toLowerCase()+e.slice(1),zme=e=>e.toUpperCase();function Bme(e,t){return sX([e])?JV(MY(Ime,e),{},t):Mme(e,t)}function Vme(e,t){return sX([e])?JV(MY(Lme,e),{},t):Nme(e,t)}function Hme(e,t){return sX([e])?JV(MY(Rme,e),{},t):Pme(e,t)}function Ume(e,t){return sX([e])?JV(MY(zme,e),{},t):Fme(e,t)}function Wme(e,t,n,r){return Bme(fX(e,t,n),r)}function Gme(e,t,n,r){return Vme(fX(e,t,n),r)}function Kme(e,t,n,r){return Hme(fX(e,t,n),r)}function qme(e,t,n,r){return Ume(fX(e,t,n),r)}function Jme(e,t,n,r,i={}){return tH(`Conditional`,[e,t,n,r],i)}function Yme(e,t,n,r,i,a){let o=ZJ(e,n,r);return tq(o)?KH([fX(o.inferred,t,i),fX(e,t,a)]):rq(o)?fX(o.inferred,t,i):fX(e,t,a)}function Xme(e,t,n,r,i,a,o){return sX([n,r])?JV(Yme(e,t,n,r,i,a),{},o):Jme(n,r,i,a,o)}function Zme(e,t,n,r,i,a,o){return Xme(e,t,fX(e,t,n),fX(e,t,r),i,a,o)}function Qme(e,t={}){return tH(`ConstructorParameters`,[e],t)}function $me(e){return WW(uX({},{callstack:[]},DH(e)?e.parameters:[]))}function ehe(e,t){return sX([e])?JV($me(e),{},t):Qme(e,t)}function the(e,t,n,r){return ehe(fX(e,t,n),r)}function nhe(e,t,n={}){return tH(`Exclude`,[e,t],n)}function NY(e,t){return e.reduce((e,n)=>[...e,...PY(n,t)],[])}function PY(e,t){return oq(ZJ({},e,t))?[]:[e]}function rhe(e,t){return uG(nU(e)?NY(zW(e.enum),t):qH(e)?NY(yG(e.anyOf),t):PY(e,t))}function FY(e,t,n){return sX([e,t])?JV(rhe(e,t),{},n):nhe(e,t,n)}function ihe(e,t,n,r,i){return FY(fX(e,t,n),fX(e,t,r),i)}function ahe(e,t,n={}){return tH(`Extract`,[e,t],n)}function IY(e,t){return e.reduce((e,n)=>[...e,...LY(n,t)],[])}function LY(e,t){return oq(ZJ({},e,t))?[e]:[]}function ohe(e,t){return uG(nU(e)?IY(zW(e.enum),t):qH(e)?IY(yG(e.anyOf),t):LY(e,t))}function she(e,t,n){return sX([e,t])?JV(ohe(e,t),{},n):ahe(e,t,n)}function che(e,t,n,r,i){return she(fX(e,t,n),fX(e,t,r),i)}function lhe(e,t,n={}){return tH(`Index`,[e,t],n)}function uhe(e,t){return zY(YJ(e,t))}function dhe(e,t){let n=DB(e).filter(e=>!Z(t,e)),r=DB(t).filter(t=>!Z(e,t)),i=DB(e).filter(e=>Z(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]:lG([e[r],t[r]])}),{});return Iz(Iz(a,o),s)}function fhe(e){return e.reduce((e,t)=>dhe(e,zY(t)),{})}function phe(e){return e}function mhe(e){return zY(JW(WW(e)))}function hhe(e,t){return DB(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:uG([e[r],t[r]])}),{})}function RY(e,t){return wB(e,(e,n)=>RY(n,hhe(t,zY(e))),()=>t)}function ghe(e){return wB(e,(e,t)=>RY(t,zY(e)),()=>uU())}function zY(e){return QH(e)?uhe(e.$defs,e.$ref):iU(e)?fhe(e.allOf):qH(e)?ghe(e.anyOf):GW(e)?mhe(e.items):WH(e)?phe(e.properties):{}}function BY(e){return UH(zY(e))}const _he=RegExp(`^(?:0|[1-9][0-9]*)$`);function VY(e){let t=`${e}`;return _he.test(t)?parseInt(t):e}function vhe(e){return nW(VY(e))}function HY(e){return e.map(e=>UY(e))}function UY(e){return iU(e)?rU(HY(e.allOf)):qH(e)?KH(HY(e.anyOf)):cW(e)?vhe(e.const):e}function yhe(e,t){return oq(ZJ({},UY(t),fW()))?e:cW(t)&&X(t.const,`length`)?fW():RH()}function bhe(e,t){return GY(YJ(e,t))}function WY(e){return e.reduce((e,t)=>[...e,...GY(t)],[])}function xhe(e){return WY(zW(e))}function She(e){return GY(lG(e))}function Che(e){return[`${e}`]}function whe(e){return GY(PW(e))}function GY(e){return QH(e)?bhe(e.$defs,e.$ref):nU(e)?xhe(e.enum):iU(e)?She(e.allOf):cW(e)?Che(e.const):$K(e)?whe(e.pattern):qH(e)?WY(e.anyOf):[]}function KY(e){return GY(e)}function qY(e,t){return t.map(t=>JY(e,t))}function JY(e,t){return xH(t)?bH(JY(e,t.items)):wH(t)?CH(JY(e,t.iteratorItems)):DH(t)?EH(qY(e,t.parameters),JY(e,t.instanceType)):AH(t)?kH(qY(e,t.parameters),JY(e,t.returnType)):QU(t)?ZU(JY(e,t.iteratorItems)):iH(t)?rH(JY(e,t.item)):GW(t)?WW(qY(e,t.items)):qH(t)?KH(qY(e,t.anyOf)):iU(t)?rU(qY(e,t.allOf)):BG(t)?UH(e):t}function The(e,t){return JY(e,t)}function Ehe(e,t){return The(e,t in e?e[t]:RH())}function YY(e,t){return t.reduce((t,n)=>[...t,Ehe(e,n)],[])}function Dhe(e,t){return uG(YY(e,KY(t)))}const Ohe=new RegExp(OG);function khe(e){return e.filter(e=>Ohe.test(e))}function Ahe(e){return uG(YY(e,khe(VH(e))))}function jhe(e,t){return pW(t)?Ahe(e):Dhe(e,t)}function Mhe(e){return nW(VY(e))}function XY(e){return e.map(e=>ZY(e))}function ZY(e){return iU(e)?rU(XY(e.allOf)):qH(e)?KH(XY(e.anyOf)):cW(e)?Mhe(e.const):e}function Nhe(e,t){return e.reduceRight((e,n,r)=>oq(ZJ({},nW(r),t))?[n,...e]:e,[])}function Phe(e,t){return fG(Nhe(e,ZY(t)))}function Fhe(e){return fG(e)}function Ihe(e,t){return cW(t)&&X(t.const,`length`)?nW(e.length):pW(t)||XU(t)?Fhe(e):Phe(e,t)}function Lhe(e,t){return xH(e)?yhe(e.items,t):WH(e)?jhe(e.properties,t):GW(e)?Ihe(e.items,t):RH()}function Rhe(e){return QH(e)||iU(e)||qH(e)?BY(e):e}function zhe(e,t,n){return sX([e,t])?JV(Lhe(Rhe(e),t),{},n):lhe(e,t,n)}function Bhe(e,t,n,r,i){return zhe(fX(e,t,n),fX(e,t,r),i)}function Vhe(e,t={}){return tH(`InstanceType`,[e],t)}function Hhe(e){return DH(e)?e.instanceType:RH()}function Uhe(e,t){return sX([e])?JV(Hhe(e),{},t):Vhe(e,t)}function Whe(e,t,n,r={}){return Uhe(fX(e,t,n),r)}function Ghe(e,t={}){return tH(`KeyOf`,[e],t)}function Khe(){return KH([fW(),gW(),mW()])}function qhe(e){return fW()}function Jhe(e){return e.reduce((e,t)=>rW(t)?[...e,nW(VY(t))]:uU(),[])}function Yhe(e){return fG(Jhe(DB(e)))}function Xhe(e){return FG(e)}function Zhe(e){return fG(e.map((e,t)=>nW(t)))}function Qhe(e){return LH(e)?Khe():xH(e)?qhe(e.items):WH(e)?Yhe(e.properties):LG(e)?Xhe(e):GW(e)?Zhe(e.items):RH()}function $he(e){return QH(e)||iU(e)||qH(e)?BY(e):e}function ege(e,t){return sX([e])?JV(Qhe($he(e)),{},t):Ghe(e,t)}function tge(e,t,n,r){return ege(fX(e,t,n),r)}function nge(e,t,n,r,i={}){return tH(`Mapped`,[e,t,n,r],i)}function rge(e){return $Y(PW(e))}function QY(e){return e.reduce((e,t)=>[...e,...$Y(t)],[])}function ige(e){return oB(e)?[nW(`${e}`)]:[nW(e)]}function $Y(e){return nU(e)?QY(zW(e.enum)):cW(e)?ige(e.const):$K(e)?rge(e.pattern):qH(e)?QY(e.anyOf):[e]}function age(e){return $Y(e)}function oge(e){return $K(e)?PW(e.pattern):e}function sge(e,t,n,r,i,a){let o=Iz(e,{[n.name]:r}),s=oge(fX(o,t,i)),c=fX(o,t,a);return oW(s)||sW(s)?{[s.const]:c}:{}}function cge(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,sge(e,t,n,o,i,a)],[])}function lge(e){return e.reduce((e,t)=>[...e,UH(t)],[])}function uge(e,t,n,r,i,a){return lG(lge(cge(e,t,n,age(r),i,a)))}function dge(e,t,n,r,i,a,o){return sX([r])?JV(uge(e,t,n,r,i,a),{},o):nge(n,r,i,a,o)}function fge(e,t,n,r,i,a,o){return dge(e,t,n,fX(e,t,r),i,a,o)}function pge(e,t){return DB(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:qJ(e,n,e[n])}),{})}function mge(e,t){return DB(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:fX(e,{callstack:[]},e[n])}),{})}function hge(e,t){let n=NJ(e),r=pge(e,n),i=mge(e,n);return JV({...r,...i},{},t)}function gge(e,t,n,r){return hge(Iz(e,n),r)}function _ge(e,t={}){return tH(`NonNullable`,[e],t)}function vge(e){return FY(e,KH([lW(),VG()]),{})}function yge(e,t){return sX([e])?JV(vge(e),{},t):_ge(e,t)}function bge(e,t,n,r){return yge(fX(e,t,n),r)}function xge(e,t,n={}){return tH(`Omit`,[e,t],n)}function eX(e){let t=BY(e);return WH(t)?t.properties:uU()}function tX(e,t){return DB(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Sge(e,t){return UH(tX(eX(e),KY(t)))}function Cge(e,t,n){return sX([e,t])?JV(Sge(e,t),{},n):xge(e,t,n)}function wge(e,t,n,r,i){return Cge(fX(e,t,n),fX(e,t,r),i)}function Tge(e,t){return tH(`Options`,[e,t],{})}function Ege(e,t){return nX(e,t)}function nX(e,t){return sX([e])?JV(e,{},t):Tge(e,t)}function Dge(e,t,n,r){return nX(fX(e,t,n),r)}function Oge(e,t={}){return tH(`Parameters`,[e],t)}function kge(e){return WW(uX({},{callstack:[]},AH(e)?e.parameters:[]))}function Age(e,t){return sX([e])?JV(kge(e),{},t):Oge(e,t)}function jge(e,t,n,r){return Age(fX(e,t,n),r)}function Mge(e,t={}){return tH(`Partial`,[e],t)}function Nge(e,t){let n=rX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function Pge(e){return lG(e.map(e=>rX(e)))}function Fge(e){return KH(e.map(e=>rX(e)))}function Ige(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:dH(e[n])}),{}))}function rX(e){return QH(e)?Nge(e.$defs,e.$ref):iU(e)?Pge(e.allOf):qH(e)?Fge(e.anyOf):WH(e)?Ige(e.properties):UH({})}function Lge(e,t){return sX([e])?JV(rX(e),{},t):Mge(e,t)}function Rge(e,t,n,r){return Lge(fX(e,t,n),r)}function zge(e,t,n={}){return tH(`Pick`,[e,t],n)}function Bge(e,t){return DB(e).reduce((n,r)=>t.includes(r)?Iz(n,{[r]:e[r]}):n,{})}function Vge(e,t){return UH(Bge(eX(e),KY(t)))}function Hge(e,t,n){return sX([e,t])?JV(Vge(e,t),{},n):zge(e,t,n)}function Uge(e,t,n,r,i){return Hge(fX(e,t,n),fX(e,t,r),i)}function Wge(e,t={}){return tH(`ReadonlyObject`,[e],t)}function Gge(e){return sH(bH(e))}function Kge(e,t){let n=iX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function qge(e){return lG(e.map(e=>iX(e)))}function Jge(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:hH(e[n])}),{}))}function Yge(e){return sH(WW(e))}function Xge(e){return KH(e.map(e=>iX(e)))}function iX(e){return xH(e)?Gge(e.items):QH(e)?Kge(e.$defs,e.$ref):iU(e)?qge(e.allOf):WH(e)?Jge(e.properties):GW(e)?Yge(e.items):qH(e)?Xge(e.anyOf):e}function Zge(e,t){return sX([e])?JV(iX(e),{},t):Wge(e)}function Qge(e,t,n,r){return Zge(fX(e,t,n),r)}function $ge(e,t,n,r){return r in e?jJ([r],e,e[r])?n:fX(e,t,e[r]):n}function e_e(e,t){let n=aX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function t_e(e){return lG(e.map(e=>aX(e)))}function n_e(e){return KH(e.map(e=>aX(e)))}function r_e(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:lH(e[n])}),{}))}function aX(e){return QH(e)?e_e(e.$defs,e.$ref):iU(e)?t_e(e.allOf):qH(e)?n_e(e.anyOf):WH(e)?r_e(e.properties):UH({})}function i_e(e,t={}){return tH(`Required`,[e],t)}function a_e(e,t){return sX([e])?JV(aX(e),{},t):i_e(e,t)}function o_e(e,t,n,r){return a_e(fX(e,t,n),r)}function s_e(e,t={}){return tH(`ReturnType`,[e],t)}function c_e(e){return AH(e)?e.returnType:RH()}function l_e(e,t){return sX([e])?JV(c_e(e),{},t):s_e(e,t)}function u_e(e,t,n,r={}){return l_e(fX(e,t,n),r)}function d_e(e){return zG(e)?GW(e.items)?oX(e.items.items):tU(e.items)||NH(e.items)?[e]:[RH()]:[e]}function oX(e){return e.reduce((e,t)=>[...e,...d_e(t)],[])}function sX(e){return wB(e,(e,t)=>NH(e)?!1:sX(t),()=>!0)}function cX(e,t,n){return eH(e)?cX(e.type,`remove`,n):QV(e)?cX(e.type,t,`remove`):$V(e)?cX(e.type,`add`,n):ZV(e)?cX(e.type,t,`add`):[e,t,n]}function f_e(e,t){return X(e,`remove`)?pH(t):X(e,`add`)?mH(t):t}function p_e(e,t){return X(e,`remove`)?lH(t):X(e,`add`)?uH(t):t}function lX(e,t,n){return DB(n).reduce((r,i)=>({...r,[i]:fX(e,t,n[i])}),{})}function uX(e,t,n){return oX(dX(e,t,n))}function dX(e,t,n){return n.map(n=>fX(e,t,n))}function m_e(e,t,n,r,i){return X(n,`Awaited`)?g_e(e,t,r[0],i):X(n,`Capitalize`)?Wme(e,t,r[0],i):X(n,`Conditional`)?Zme(e,t,r[0],r[1],r[2],r[3],i):X(n,`ConstructorParameters`)?the(e,t,r[0],i):X(n,`Evaluate`)?aY(e,t,r[0],i):X(n,`Exclude`)?ihe(e,t,r[0],r[1],i):X(n,`Extract`)?che(e,t,r[0],r[1],i):X(n,`Index`)?Bhe(e,t,r[0],r[1],i):X(n,`InstanceType`)?Whe(e,t,r[0],i):X(n,`Interface`)?wJ(e,t,r[0],r[1],i):X(n,`KeyOf`)?tge(e,t,r[0],i):X(n,`Lowercase`)?Gme(e,t,r[0],i):X(n,`Mapped`)?fge(e,t,r[0],r[1],r[2],r[3],i):X(n,`Module`)?gge(e,t,r[0],i):X(n,`NonNullable`)?bge(e,t,r[0],i):X(n,`Pick`)?Uge(e,t,r[0],r[1],i):X(n,`Options`)?Dge(e,t,r[0],r[1]):X(n,`Parameters`)?jge(e,t,r[0],i):X(n,`Partial`)?Rge(e,t,r[0],i):X(n,`Omit`)?wge(e,t,r[0],r[1],i):X(n,`ReadonlyObject`)?Qge(e,t,r[0],i):X(n,`Record`)?DG(e,t,r[0],r[1],i):X(n,`Required`)?o_e(e,t,r[0],i):X(n,`ReturnType`)?u_e(e,t,r[0],i):X(n,`TemplateLiteral`)?XK(e,t,r[0],i):X(n,`Uncapitalize`)?Kme(e,t,r[0],i):X(n,`Uppercase`)?qme(e,t,r[0],i):tH(n,r,i)}function fX(e,t,n){let r=cH(n),i=cX(n,gH(n)?`add`:`none`,fH(n)?`add`:`none`),a=yH(i[0])?i[0].Clone():i[0],o=NH(a)?$ge(e,t,a,a.$ref):xH(a)?bH(fX(e,t,a.items),SH(a)):wH(a)?CH(fX(e,t,a.iteratorItems),TH(a)):jY(a)?Dme(e,t,a.target,a.arguments):DH(a)?EH(dX(e,t,a.parameters),fX(e,t,a.instanceType),OH(a)):nH(a)?m_e(e,t,a.action,a.parameters,a.options):AH(a)?kH(dX(e,t,a.parameters),fX(e,t,a.returnType),jH(a)):iU(a)?rU(dX(e,t,a.allOf),aU(a)):QU(a)?ZU(fX(e,t,a.iteratorItems),$U(a)):WH(a)?UH(lX(e,t,a.properties),GH(a)):iH(a)?rH(fX(e,t,a.item),aH(a)):LG(a)?NG(PG(a),fX(e,t,IG(a))):zG(a)?RG(fX(e,t,a.items)):GW(a)?WW(uX(e,t,a.items),KW(a)):qH(a)?KH(dX(e,t,a.anyOf),JH(a)):a,s=r?sH(o):o;return f_e(i[1],p_e(i[2],s))}function pX(e,t){return fX(e,{callstack:[]},t)}function mX(e){return iH(e)?mX(e.item):e}function h_e(e,t){return sX([e])?JV(mX(e),{},t):__e(e,t)}function g_e(e,t,n,r){return h_e(fX(e,t,n),r)}function __e(e,t={}){return tH(`Awaited`,[e],t)}function hX(e,t={}){return iY(e,t)}const gX=new Map;function v_e(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function y_e(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function _X(e,t){gX.set(e.api,{provider:{api:e.api,stream:v_e(e.api,e.stream),streamSimple:y_e(e.api,e.streamSimple)},sourceId:t})}function b_e(e){return gX.get(e)?.provider}var vX=s(((e,t)=>{t.exports={}}));let yX=null,bX=null,xX=null;const SX=e=>import(e);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(SX(`node:fs`).then(e=>{yX=e.existsSync}),SX(`node:os`).then(e=>{bX=e.homedir}),SX(`node:path`).then(e=>{xX=e.join}));let CX=null;function wX(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(CX===null){CX=new Map;try{let{readFileSync:e}=vX(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&CX.set(e.slice(0,t),e.slice(t+1))}}catch{}}return CX.get(e)}}let TX=null;function x_e(){if(TX===null){if(!yX||!bX||!xX)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(TX=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||wX(`GOOGLE_APPLICATION_CREDENTIALS`);TX=yX(e||xX(bX(),`.config`,`gcloud`,`application_default_credentials.json`))}return TX}function S_e(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`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`}[e];return t?[t]:void 0}function C_e(e){let t=S_e(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!wX(e));return n.length>0?n:void 0}function EX(e){let t=C_e(e);if(t?.[0])return{}[t[0]]||wX(t[0]);if(e===`google-vertex`){let e=x_e(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||wX(`GOOGLE_CLOUD_PROJECT`)||wX(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||wX(`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||wX(`AWS_PROFILE`)||wX(`AWS_ACCESS_KEY_ID`)&&wX(`AWS_SECRET_ACCESS_KEY`)||wX(`AWS_BEARER_TOKEN_BEDROCK`)||wX(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||wX(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||wX(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}const w_e={"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,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}},"cloudflare-ai-gateway":{"claude-3-5-haiku":{id:`claude-3-5-haiku`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-haiku":{id:`claude-3-haiku`,name:`Claude Haiku 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3-opus":{id:`claude-3-opus`,name:`Claude Opus 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:4096},"claude-3-sonnet":{id:`claude-3-sonnet`,name:`Claude Sonnet 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3.5-haiku":{id:`claude-3.5-haiku`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3.5-sonnet":{id:`claude-3.5-sonnet`,name:`Claude Sonnet 3.5 v2`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4":{id:`claude-opus-4`,name:`Claude Opus 4 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,thinkingLevelMap:{xhigh:`max`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,thinkingLevelMap:{xhigh:`xhigh`},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 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"workers-ai/@cf/moonshotai/kimi-k2.5":{id:`workers-ai/@cf/moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/moonshotai/kimi-k2.6":{id:`workers-ai/@cf/moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{id:`workers-ai/@cf/nvidia/nemotron-3-120b-a12b`,name:`Nemotron 3 Super 120B`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/zai-org/glm-4.7-flash":{id:`workers-ai/@cf/zai-org/glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.06,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072}},"cloudflare-workers-ai":{"@cf/google/gemma-4-26b-a4b-it":{id:`@cf/google/gemma-4-26b-a4b-it`,name:`Gemma 4 26B A4B IT`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:16384},"@cf/meta/llama-4-scout-17b-16e-instruct":{id:`@cf/meta/llama-4-scout-17b-16e-instruct`,name:`Llama 4 Scout 17B 16E Instruct`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!1,input:[`text`,`image`],cost:{input:.27,output:.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/moonshotai/kimi-k2.5":{id:`@cf/moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/moonshotai/kimi-k2.6":{id:`@cf/moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/nvidia/nemotron-3-120b-a12b":{id:`@cf/nvidia/nemotron-3-120b-a12b`,name:`Nemotron 3 Super 120B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/openai/gpt-oss-120b":{id:`@cf/openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.35,output:.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/openai/gpt-oss-20b":{id:`@cf/openai/gpt-oss-20b`,name:`GPT OSS 20B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.2,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/zai-org/glm-4.7-flash":{id:`@cf/zai-org/glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.06,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072}},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`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},input:[`text`],cost:{input:.435,output:.87,cacheRead:.003625,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/deepseek-v4-pro":{id:`accounts/fireworks/models/deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.15,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"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`,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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:`MINIMAL`,low:null,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:`MINIMAL`,low:null,medium:null,high:`HIGH`},input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192}},"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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`default`},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":{"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-2604":{id:`mistral-medium-2604`,name:`Mistral Medium 3.5`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-3.5":{id:`mistral-medium-3.5`,name:`Mistral Medium 3.5`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,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:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"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}},moonshotai:{"kimi-k2-0711-preview":{id:`kimi-k2-0711-preview`,name:`Kimi K2 0711`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:16384},"kimi-k2-0905-preview":{id:`kimi-k2-0905-preview`,name:`Kimi K2 0905`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking-turbo":{id:`kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-turbo-preview":{id:`kimi-k2-turbo-preview`,name:`Kimi K2 Turbo`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:2.4,output:10,cacheRead:.6,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144}},"moonshotai-cn":{"kimi-k2-0711-preview":{id:`kimi-k2-0711-preview`,name:`Kimi K2 0711`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:16384},"kimi-k2-0905-preview":{id:`kimi-k2-0905-preview`,name:`Kimi K2 0905`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking-turbo":{id:`kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-turbo-preview":{id:`kimi-k2-turbo-preview`,name:`Kimi K2 Turbo`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:2.4,output:10,cacheRead:.6,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144}},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,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,thinkingLevelMap:{minimal:`medium`,low:`medium`,medium:`medium`,high:`high`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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},"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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:202752,maxTokens:32768},"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:202752,maxTokens:32768},"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`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:65536},"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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{thinkingFormat:`qwen`},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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{thinkingFormat:`qwen`},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},"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:64e3},"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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/cobuddy:free":{id:`baidu/cobuddy:free`,name:`Baidu Qianfan: CoBuddy (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:65536},"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:.27,output:.95,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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:1048576,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},"ibm-granite/granite-4.1-8b":{id:`ibm-granite/granite-4.1-8b`,name:`IBM: Granite 4.1 8B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.049999999999999996,output:.09999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:131072,maxTokens:131072},"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":{id:`inclusionai/ling-2.6-1t`,name:`inclusionAI: Ling-2.6-1T`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:2.5,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ling-2.6-flash":{id:`inclusionai/ling-2.6-flash`,name:`inclusionAI: Ling-2.6-flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.08,output:.24,cacheRead:.016,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.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-5":{id:`mistralai/mistral-medium-3-5`,name:`Mistral: Mistral Medium 3.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,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:.03,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"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/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:.75,output:3.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:16384},"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-nano-omni-30b-a3b-reasoning:free":{id:`nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`,name:`NVIDIA: Nemotron 3 Nano Omni (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:256e3,maxTokens:65536},"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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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-chat-latest":{id:`openai/gpt-chat-latest`,name:`OpenAI: GPT Chat Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"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:.18,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"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},"openrouter/owl-alpha":{id:`openrouter/owl-alpha`,name:`Owl Alpha`,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:1048756,maxTokens:262144},"poolside/laguna-m.1:free":{id:`poolside/laguna-m.1:free`,name:`Poolside: Laguna M.1 (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},"poolside/laguna-xs.2:free":{id:`poolside/laguna-xs.2:free`,name:`Poolside: Laguna XS.2 (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},"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:.09,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:2e4},"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:.11,output:.7999999999999999,cacheRead:.07,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:.14,output:1,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:81920},"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:.04,output:.15,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920},"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:.32,output:3.1999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920},"qwen/qwen3.6-35b-a3b":{id:`qwen/qwen3.6-35b-a3b`,name:`Qwen: Qwen3.6 35B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:1,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:262144},"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.04,output:6.24,cacheRead:0,cacheWrite:1.3},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},"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:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"x-ai/grok-4.3":{id:`x-ai/grok-4.3`,name:`xAI: Grok 4.3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,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:4096},"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:.75,output:3.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:16384},"~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 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-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-27b":{id:`alibaba/qwen3.6-27b`,name:`Qwen 3.6 27B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3.5999999999999996,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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:!1,input:[`text`],cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"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:.0028,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-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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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},"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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.3":{id:`xai/grok-4.3`,name:`Grok 4.3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:1e6},"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},"xiaomi/mimo-v2.5":{id:`xiaomi/mimo-v2.5`,name:`MiMo M2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:105e4,maxTokens:131100},"xiaomi/mimo-v2.5-pro":{id:`xiaomi/mimo-v2.5-pro`,name:`MiMo V2.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:105e4,maxTokens:131e3},"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-4.3":{id:`grok-4.3`,name:`Grok 4.3`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0},contextWindow:1e6,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}},xiaomi:{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-ams":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-cn":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-sgp":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},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},"glm-5v-turbo":{id:`glm-5v-turbo`,name:`GLM-5V-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`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072}}},DX=new Map;for(let[e,t]of Object.entries(w_e)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);DX.set(e,n)}function T_e(e,t){return DX.get(e)?.get(t)}function OX(){return Array.from(DX.keys())}function kX(e){let t=DX.get(e);return t?Array.from(t.values()):[]}function AX(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}const jX=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function MX(e){return e.reasoning?jX.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`?n!==void 0:!0}):[`off`]}function NX(e,t){let n=MX(e);if(n.includes(t))return t;let r=jX.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<jX.length;e++){let t=jX[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=jX[e];if(n.includes(t))return t}return n[0]??`off`}var E_e=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}},PX=class extends E_e{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`)})}};function FX(){return new PX}const D_e=e=>import(e);let IX,LX,RX,zX,BX,VX,HX,UX,WX;function GX(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function KX(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 qX(e){return(t,n,r)=>{let i=new PX;return e().then(e=>{GX(i,e.stream(t,n,r))}).catch(e=>{let n=KX(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function JX(e){return(t,n,r)=>{let i=new PX;return e().then(e=>{GX(i,e.streamSimple(t,n,r))}).catch(e=>{let n=KX(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function YX(){return IX||=import(`./anthropic-CpMf0Lbf.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),IX}function XX(){return LX||=import(`./azure-openai-responses-CkJGWdYm.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),LX}function ZX(){return RX||=import(`./google-BMVsxTG7.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),RX}function QX(){return zX||=import(`./google-vertex-Cbjs5cnT.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),zX}function $X(){return BX||=import(`./mistral-BevEK6OI.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),BX}function eZ(){return VX||=import(`./openai-codex-responses-D2f5kBKJ.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),VX}function tZ(){return HX||=Promise.resolve().then(()=>nke).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),HX}function nZ(){return UX||=import(`./openai-responses-s57fcmKx.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),UX}function rZ(){return WX||=D_e(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),WX}const iZ=qX(YX),aZ=JX(YX),O_e=qX(XX),k_e=JX(XX),A_e=qX(ZX),j_e=JX(ZX),M_e=qX(QX),N_e=JX(QX),P_e=qX($X),F_e=JX($X),I_e=qX(eZ),L_e=JX(eZ),oZ=qX(tZ),sZ=JX(tZ),cZ=qX(nZ),lZ=JX(nZ),R_e=qX(rZ),z_e=JX(rZ);function B_e(){_X({api:`anthropic-messages`,stream:iZ,streamSimple:aZ}),_X({api:`openai-completions`,stream:oZ,streamSimple:sZ}),_X({api:`mistral-conversations`,stream:P_e,streamSimple:F_e}),_X({api:`openai-responses`,stream:cZ,streamSimple:lZ}),_X({api:`azure-openai-responses`,stream:O_e,streamSimple:k_e}),_X({api:`openai-codex-responses`,stream:I_e,streamSimple:L_e}),_X({api:`google-generative-ai`,stream:A_e,streamSimple:j_e}),_X({api:`google-vertex`,stream:M_e,streamSimple:N_e}),_X({api:`bedrock-converse-stream`,stream:R_e,streamSimple:z_e})}B_e();const uZ=new Set;function V_e(e){return uZ.add(e),()=>{uZ.delete(e)}}function H_e(e){let t=b_e(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function dZ(e,t,n){return H_e(e.api).streamSimple(e,t,n)}async function U_e(e,t,n){return dZ(e,t,n).result()}function fZ(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function W_e(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:fZ(e)};let t=e.code;return{name:e.name||void 0,message:e.message||e.name,stack:e.stack,code:typeof t==`string`||typeof t==`number`?t:void 0}}function G_e(e,t,n){return{type:e,timestamp:Date.now(),error:W_e(t),details:n}}function K_e(e,t){e.diagnostics=[...e.diagnostics??[],t]}var pZ=s((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})),mZ=s((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;let r=pZ();Object.defineProperty(e,`Allow`,{enumerable:!0,get:function(){return r.Allow}}),n(pZ(),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;let 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&&`
3380
+ `)?mK(e,fK(t)):e.startsWith(` `)?mK(e,t):mK(e,pK(t))}[...sK,...cK],[...cK];function gK(e){return X(e,``)?[]:[e.slice(0,1),e.slice(1)]}function _K(e,t){let[n,...r]=e;return lB(n)?t.startsWith(n)?!0:_K(r,t):!1}function vK(e,t,n=``){return rK(gK(t),(r,i)=>_K(e,t)?[n,t]:vK(e,i,`${n}${r}`),()=>[])}function yK(e,t){return rK(vK(e,t),(e,t)=>X(e,``)?[]:[e,t],()=>[])}const bK=(e,t,n=()=>[])=>e.length===2?t(e):n(),xK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[WG(e),t]),SK=e=>bK(hK(`.*`,e),([e,t])=>[GG(e),t]),CK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[KG(e),t]),wK=e=>bK(hK(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[qG(e),t]),TK=e=>bK(hK(`(?!)`,e),([e,t])=>[JG(e),t]),EK=e=>bK(yK([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[YG(e),t]),DK=e=>bK(bK(xK(e),([e,t])=>[e,t],()=>bK(SK(e),([e,t])=>[e,t],()=>bK(CK(e),([e,t])=>[e,t],()=>bK(wK(e),([e,t])=>[e,t],()=>bK(TK(e),([e,t])=>[e,t],()=>bK(OK(e),([e,t])=>[e,t],()=>bK(EK(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[XG(e),t]),OK=e=>bK(bK(hK(`(`,e),([e,t])=>bK(jK(t),([t,n])=>bK(hK(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[ZG(e),t]),kK=e=>bK(bK(bK(AK(e),([e,t])=>bK(hK(`|`,t),([t,n])=>bK(kK(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>bK(bK(AK(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>bK([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[QG(e),t]),AK=e=>bK(bK(DK(e),([e,t])=>bK(jK(t),([t,n])=>[[e,t],n])),([e,t])=>[$G(e),t]),jK=e=>bK(bK(kK(e),([e,t])=>[e,t],()=>bK(AK(e),([e,t])=>[e,t],()=>[])),([e,t])=>[eK(e),t]),MK=e=>bK(bK(hK(`^`,e),([e,t])=>bK(jK(t),([t,n])=>bK(hK(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[tK(e),t]);function NK(e){return e.join(`|`)}function PK(e){return e.slice(1,e.length-1)}function FK(e,t,n){return KK(t,`${n}${e}`)}function IK(e,t){return KK(e,`${t}-?(?:0|[1-9][0-9]*)n`)}function LK(e,t){return KK(e,`${t}${JU}`)}function RK(e,t){return KK(e,`${t}${dW}`)}function zK(e,t){return GK(KH([nW(`false`),nW(`true`)]),e,t)}function BK(e,t){return KK(e,`${t}.*`)}function VK(e,t,n){return KK(t,`${n}${PK(e)}`)}function HK(e,t,n){return GK(YK(e,{}),t,n)}function UK(e,t,n){return WK(zW(e),t,n)}function WK(e,t,n,r=[]){return wB(e,(e,i)=>WK(i,t,n,[...r,GK(e,[],``)]),()=>KK(t,`${n}(${NK(r)})`))}function GK(e,t,n){return nU(e)?UK(e.enum,t,n):XU(e)?LK(t,n):cW(e)?FK(e.const,t,n):KU(e)?IK(t,n):qU(e)?zK(t,n):pW(e)?RK(t,n):_W(e)?BK(t,n):$K(e)?VK(e.pattern,t,n):QK(e)?HK(e.parameters[0],t,n):qH(e)?WK(e.anyOf,t,n):`(?!)`}function KK(e,t){return wB(e,(e,n)=>GK(e,n,t),()=>t)}function qK(e){return`^${KK(e,``)}$`}function JK(e){return wW(qK(e))}function YK(e,t){return sX(e)?JV(JK(e),{},t):ZK(e,t)}function XK(e,t,n,r){return YK(dX(e,t,n),r)}function ZK(e,t={}){return tH(`TemplateLiteral`,[e],t)}function QK(e){return XV(e)&&Z(e,`action`)&&X(e.action,`TemplateLiteral`)}function $K(e){return YV(e,`TemplateLiteral`)}function eq(e){return KV({"~kind":`ExtendsUnion`},{inferred:e})}function tq(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsUnion`)&&cB(e.inferred)}function nq(e){return KV({"~kind":`ExtendsTrue`},{inferred:e})}function rq(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsTrue`)&&cB(e.inferred)}function iq(){return KV({"~kind":`ExtendsFalse`},{})}function aq(e){return cB(e)&&Z(e,`~kind`)&&X(e[`~kind`],`ExtendsFalse`)}function oq(e){return tq(e)||rq(e)}function sq(e,t,n){return oq(e)?t(e.inferred):n()}function cq(e,t,n,r){return sq(xJ(e,n,r),r=>nq(Iz(Iz(e,r),{[t]:n})),()=>iq())}function lq(e,t){return nq(e)}function uq(e,t,n){return xJ(e,t,BW(n))}function dq(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>dq(e,t,r),()=>iq()),()=>nq(e))}function fq(e,t,n){return xJ(e,t,PW(n))}function pq(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>nq(e),()=>pq(e,t,r)),()=>iq())}function mq(e,t,n){return LH(n)?lq(e,t):nU(n)?uq(e,t,n.enum):tU(n)?cq(e,n.name,t,n.extends):iU(n)?dq(e,t,n.allOf):$K(n)?fq(e,t,n.pattern):qH(n)?pq(e,t,n.anyOf):XH(n)?nq(e):iq()}function hq(e,t,n){return tU(n)?mq(e,t,n):LH(n)||XH(n)?nq(e):eq(e)}function gq(e,t){let n=cH(e),r=cH(t);return n&&r||!n&&r?!0:!(n&&!r)}function _q(e,t,n,r){return xH(r)?gq(t,r)?xJ(e,n,r.items):iq():mq(e,t,r)}function vq(e,t,n){return wH(n)?xJ(e,t,n.iteratorItems):mq(e,CH(t),n)}function yq(e,t,n){return KU(n)?nq(e):mq(e,t,n)}function bq(e,t,n){return qU(n)?nq(e):mq(e,t,n)}function xq(e,t,n,r,i){let a=tU(r)?t:r,o=tU(r)?r:t,s=fH(t),c=fH(r);return!s&&c?iq():sq(xJ(e,a,o),e=>wq(e,n,i),()=>iq())}function Sq(e,t,n,r){return wB(r,(r,i)=>xq(e,t,n,r,i),()=>fH(t)?nq(e):iq())}function Cq(e,t,n){return wB(t,(t,r)=>Sq(e,t,r,n),()=>nq(e))}function wq(e,t,n){return Cq(e,t,n)}function Tq(e,t,n){return UG(n)?nq(e):xJ(e,t,n)}function Eq(e,t,n,r){return LH(r)||XH(r)?nq(e):DH(r)?sq(wq(e,t,r.parameters),e=>Tq(e,n,r.instanceType),()=>iq()):iq()}function Dq(e,t,n){return xJ(e,VW(t),n)}function Oq(e,t,n,r){return LH(r)||XH(r)?nq(e):AH(r)?sq(wq(e,t,r.parameters),e=>Tq(e,n,r.returnType),()=>iq()):iq()}function kq(e,t,n){return XU(n)||pW(n)?nq(e):mq(e,t,n)}function Aq(e,t,n){return xJ(e,lG(t),n)}function jq(e,t,n){return QU(n)?xJ(e,t,n.iteratorItems):mq(e,ZU(t),n)}function Mq(e,t,n){return t===n?nq(e):iq()}function Nq(e,t,n){return cW(n)?Mq(e,t,n.const):KU(n)?nq(e):mq(e,nW(t),n)}function Pq(e,t,n){return cW(n)?Mq(e,t,n.const):qU(n)?nq(e):mq(e,nW(t),n)}function Fq(e,t,n){return cW(n)?Mq(e,t,n.const):pW(n)?nq(e):mq(e,nW(t),n)}function Iq(e,t,n){return cW(n)?Mq(e,t,n.const):_W(n)?nq(e):mq(e,nW(t),n)}function Lq(e,t,n){return $z(t.const)?Nq(e,t.const,n):eB(t.const)?Pq(e,t.const,n):oB(t.const)?Fq(e,t.const,n):lB(t.const)?Iq(e,t.const,n):uU()}function Rq(e,t,n){return tU(n)?mq(e,t,n):nq(e)}function zq(e,t,n){return uW(n)?nq(e):mq(e,t,n)}function Bq(e,t,n){return pW(n)?nq(e):mq(e,t,n)}function Vq(e,t,n){return fH(t)?fH(n)?nq(e):iq():nq(e)}function Hq(e,t,n){return tU(n)&&zH(n.extends)?iq():sq(xJ(e,t,n),e=>Vq(e,t,n),()=>iq())}function Uq(e,t){return e.reduce((e,n)=>n in t&&oq(t[n])?{...e,...t[n].inferred}:uU(),{})}function Wq(e,t,n){let r={};for(let i of DB(n))r[i]=i in t?Hq({},t[i],n[i]):fH(n[i])?tU(n[i])?nq(Iz(e,{[n[i].name]:n[i].extends})):nq(e):iq();let i=kB(r).every(e=>oq(e)),a=i?Uq(DB(r),r):{};return i?nq(a):iq()}function Gq(e,t,n){let r=Wq(e,t,n);return oq(r)?nq(Iz(e,r.inferred)):iq()}function Kq(e,t,n){return Gq(e,t,n)}function qq(e,t,n){return WH(n)?Kq(e,t,n.properties):mq(e,UH(t),n)}function Jq(e,t,n){return iH(n)?xJ(e,t,n.item):mq(e,rH(t),n)}function Yq(e,t,n){return _W(n)?nq(e):mq(e,t,n)}function Xq(e,t,n){return hW(n)?nq(e):mq(e,t,n)}function Zq(e,t,n){return xJ(e,PW(t),n)}function Qq(e,t){return KV({"~kind":`Inferrable`},{name:e,type:t},{})}function $q(e){return cB(e)&&Z(e,`~kind`)&&Z(e,`name`)&&Z(e,`type`)&&X(e[`~kind`],`Inferrable`)&&lB(e.name)&&cB(e.type)}function eJ(e){return zG(e)?tU(e.items)?xH(e.items.extends)?Qq(e.items.name,e.items.extends.items):XH(e.items.extends)?Qq(e.items.name,e.items.extends):void 0:uU():void 0}function tJ(e){return tU(e)?Qq(e.name,e.extends):void 0}function nJ(e,t,n=[]){return wB(e,(e,r)=>sq(xJ({},e,t),()=>nJ(r,t,[...n,e]),()=>void 0),()=>n)}function rJ(e,t,n,r){let i=nJ(n,r);return Zz(i)?nq(Iz(e,{[t]:WW(i)})):iq()}function iJ(e,t,n,r){let i=nJ(n,r);return Zz(i)?nq(Iz(e,{[t]:KH(i)})):iq()}function aJ(e){return[...e].reverse()}function oJ(e,t){return t?aJ(e):e}function sJ(e){let t=e.length>0?e[0]:void 0;return XV(XV(t)?eJ(t):void 0)}function cJ(e,t,n,r,i,a){return sq(xJ(e,n,i),e=>dJ(e,t,r,a),()=>iq())}function lJ(e,t,n,r,i){let a=eJ(r);return $q(a)?rJ(e,a.name,oJ(n,t),a.type):wB(n,(n,a)=>cJ(e,t,n,a,r,i),()=>iq())}function uJ(e,t,n,r){return wB(r,(r,i)=>lJ(e,t,n,r,i),()=>X(n.length,0)?nq(e):iq())}function dJ(e,t,n,r){return uJ(e,t,n,r)}function fJ(e,t,n){let r=uX(e,{callstack:[]},n),i=sJ(r);return dJ(e,i,oJ(t,i),oJ(r,i))}function pJ(e,t,n){let r=tJ(n);return $q(r)?iJ(e,r.name,t,r.type):wB(t,(t,r)=>sq(xJ(e,t,n),e=>pJ(e,r,n),()=>iq()),()=>nq(e))}function mJ(e,t,n){let r=uX(e,{callstack:[]},t);return GW(n)?fJ(e,r,n.items):xH(n)?pJ(e,r,n.items):mq(e,WW(r),n)}function hJ(e,t,n){return UG(n)||HG(n)?nq(e):mq(e,t,n)}function gJ(e,t,n){return wB(n,(n,r)=>sq(xJ(e,t,n),e=>nq(e),()=>gJ(e,t,r)),()=>iq())}function _J(e,t,n){return wB(t,(t,r)=>sq(gJ(e,t,n),e=>_J(e,r,n),()=>iq()),()=>nq(e))}function vJ(e,t,n){let r=tJ(n);return $q(r)?iJ(e,r.name,t,r.type):qH(n)?_J(e,t,n.anyOf):_J(e,t,[n])}function yJ(e,t,n){return tU(n)?mq(e,t,n):LH(n)||XH(n)?nq(e):iq()}function bJ(e,t,n){return UG(n)?nq(e):mq(e,t,n)}function xJ(e,t,n){return LH(t)?hq(e,t,n):xH(t)?_q(e,t,t.items,n):wH(t)?vq(e,t.iteratorItems,n):KU(t)?yq(e,t,n):qU(t)?bq(e,t,n):DH(t)?Eq(e,t.parameters,t.instanceType,n):nU(t)?Dq(e,t,n):AH(t)?Oq(e,t.parameters,t.returnType,n):XU(t)?kq(e,t,n):iU(t)?Aq(e,t.allOf,n):QU(t)?jq(e,t.iteratorItems,n):cW(t)?Lq(e,t,n):zH(t)?Rq(e,t,n):uW(t)?zq(e,t,n):pW(t)?Bq(e,t,n):WH(t)?qq(e,t.properties,n):iH(t)?Jq(e,t.item,n):_W(t)?Yq(e,t,n):hW(t)?Xq(e,t,n):$K(t)?Zq(e,t.pattern,n):GW(t)?mJ(e,t.items,n):HG(t)?hJ(e,t,n):qH(t)?vJ(e,t.anyOf,n):XH(t)?yJ(e,t,n):UG(t)?bJ(e,t,n):iq()}function SJ(e,t){return lG([...e,UH(t)])}function CJ(e,t,n){return sX(e)?JV(SJ(e,t),{},n):TJ(e,t,n)}function wJ(e,t,n,r,i){return CJ(dX(e,t,n),lX(e,t,r),i)}function TJ(e,t,n={}){return tH(`Interface`,[e,t],n)}function EJ(e){return XV(e)&&Z(e,`action`)&&X(e.action,`Interface`)}function DJ(e,t,n){return e.includes(n)?!0:AJ([...e,n],t,t[n])}function OJ(e,t,n){return kJ(e,t,HH(n))}function kJ(e,t,n){return wB(n,(n,r)=>AJ(e,t,n)?!0:kJ(e,t,r),()=>!1)}function AJ(e,t,n){return NH(n)?DJ(e,t,n.$ref):xH(n)?AJ(e,t,n.items):wH(n)?AJ(e,t,n.iteratorItems):DH(n)?kJ(e,t,[...n.parameters,n.instanceType]):AH(n)?kJ(e,t,[...n.parameters,n.returnType]):EJ(n)?OJ(e,t,n.parameters[1]):iU(n)?kJ(e,t,n.allOf):QU(n)?AJ(e,t,n.iteratorItems):WH(n)?OJ(e,t,n.properties):iH(n)?AJ(e,t,n.item):qH(n)?kJ(e,t,n.anyOf):GW(n)?kJ(e,t,n.items):LG(n)?AJ(e,t,IG(n)):!1}function jJ(e,t,n){return AJ(e,t,n)}function MJ(e,t){return t.reduce((t,n)=>n in e?jJ([n],e,e[n])?[...t,n]:t:uU(),[])}function NJ(e){return MJ(e,VH(e))}function PJ(e,t,n){return n.includes(t)?n:t in e?LJ(e,e[t],[...n,t]):uU()}function FJ(e,t,n){return IJ(e,HH(t),n)}function IJ(e,t,n){return t.reduce((t,n)=>LJ(e,n,t),n)}function LJ(e,t,n){return NH(t)?PJ(e,t.$ref,n):xH(t)?LJ(e,t.items,n):wH(t)?LJ(e,t.iteratorItems,n):DH(t)?IJ(e,[...t.parameters,t.instanceType],n):AH(t)?IJ(e,[...t.parameters,t.returnType],n):EJ(t)?FJ(e,t.parameters[1],n):iU(t)?IJ(e,t.allOf,n):QU(t)?LJ(e,t.iteratorItems,n):WH(t)?FJ(e,t.properties,n):iH(t)?LJ(e,t.item,n):qH(t)?IJ(e,t.anyOf,n):GW(t)?IJ(e,t.items,n):LG(t)?LJ(e,IG(t),n):n}function RJ(e,t,n){return LJ(e,n,[t])}function zJ(e){return IH()}function BJ(e){return DB(e).reduce((t,n)=>({...t,[n]:HJ(e[n])}),{})}function VJ(e){return e.reduce((e,t)=>[...e,HJ(t)],[])}function HJ(e){return NH(e)?zJ(e.$ref):xH(e)?bH(HJ(e.items),SH(e)):wH(e)?CH(HJ(e.iteratorItems)):DH(e)?EH(VJ(e.parameters),HJ(e.instanceType)):AH(e)?kH(VJ(e.parameters),HJ(e.returnType)):iU(e)?rU(VJ(e.allOf)):QU(e)?ZU(HJ(e.iteratorItems)):WH(e)?UH(BJ(e.properties)):iH(e)?rH(HJ(e.item)):LG(e)?MG(FG(e),HJ(IG(e))):qH(e)?KH(VJ(e.anyOf)):GW(e)?WW(VJ(e.items)):e}function UJ(e,t){return t in e?HJ(e[t]):YH()}function WJ(e){return UJ(e.$defs,e.$ref)}function GJ(e,t,n){let r=dX(e,{callstack:[]},t),i=lX({},{callstack:[]},n);return lG([...r,UH(i)])}function KJ(e,t){return DB(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=EJ(r)?GJ(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function qJ(e,t,n){return ZH(KJ(e,RJ(e,t,n)),t)}function JJ(e,t){return t in e?NH(e[t])?JJ(e,e[t].$ref):e[t]:RH()}function YJ(e,t){return JJ(e,t)}function XJ(e){return QH(e)?WJ(e):$H(e)?YH():e}function ZJ(e,t,n){return xJ(e,XJ(t),XJ(n))}function QJ(e,t){let n=[XH(e)?iq():ZJ({},e,t),XH(e)?nq({}):ZJ({},t,e)];return oq(n[0])&&oq(n[1])?`equal`:oq(n[0])&&aq(n[1])?`left-inside`:aq(n[0])&&oq(n[1])?`right-inside`:`disjoint`}function $J(e,t){return t.filter(t=>QJ(e,t)!==`right-inside`)}function eY(e,t){return X(t.some(t=>{let n=QJ(e,t);return X(n,`left-inside`)||X(n,`equal`)}),!1)}function tY(e,t){let n=dG(e);return LH(n)?[n]:eY(n,t)?[...$J(n,t),n]:t}function nY(e){return e.reduce((e,t)=>WH(t)?[...e,t]:zH(t)?e:tY(t,e),[])}function rY(e){let t=yG(nY(e));return t.length===0?RH():t.length===1?t[0]:KH(t)}function iY(e,t){return JV(dG(e),{},t)}function aY(e,t,n,r){return iY(fX(e,t,n),r)}function oY(e,t=[]){return nH(e)&&X(e.action,`Conditional`)?NH(e.parameters[0])?oY(e.parameters[2],oY(e.parameters[3],[...t,e.parameters[0].$ref])):oY(e.parameters[2],oY(e.parameters[3],t)):nH(e)&&X(e.action,`Mapped`)&&nH(e.parameters[1])&&X(e.parameters[1].action,`KeyOf`)&&NH(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function sY(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function cY(e,t,n=[]){let[r,...i]=e,[a,...o]=t;return fB(e.length,0)&&fB(t.length,0)?cY(i,o,[...n,[a,r]]):n}function lY(e){return qH(e)?[...e.anyOf]:[e]}function uY(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function dY(e,t){return t.reduce((t,n)=>[...t,...uY(e,n)],[])}function fY(e){return e.reduce((e,t)=>X(t[0],!0)?dY(e,lY(t[1])):dY(e,[t[1]]),[[]])}function pY(e,t,n){let r=cY(t,sY(e,oY(n)));return nH(n)&&X(n.action,`Conditional`)||nH(n)&&X(n.action,`Mapped`)?fY(r):[t]}function mY(){return[`(not-resolvable)`,RH()]}function hY(){return[`(not-generic)`,RH()]}function gY(e,t,n){return[e,PH(t,n)]}function _Y(e,t,n){return t in e?vY(e,t,e[t],n):mY()}function vY(e,t,n,r){return FH(n)?gY(t,n.parameters,n.expression):NH(n)?_Y(e,n.$ref,r):hY()}function yY(e,t,n){return vY(e,`(anonymous)`,t,n)}function bY(e,t,n){if(tU(t)||jY(t)||oq(ZJ({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function xY(e,t,n,r,i){let a=fX(e,t,i);return bY(n,a,r),Iz(e,{[n]:a})}function SY(e,t,n,r,i){let a=fX(e,t,n.extends),o=fX(e,t,n.equals);return wB(i,(i,o)=>CY(xY(e,t,n.name,a,i),t,r,o),()=>CY(xY(e,t,n.name,a,o),t,r,[]))}function CY(e,t,n,r){return wB(n,(n,i)=>SY(e,t,n,i,r),()=>e)}function wY(e,t,n,r){return CY(e,t,n,r)}function TY(e){return fB(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function EY(e,t){return X(TY(e),t)}function DY(e,t,n,r,i,a){return fX(e,t,fX(wY(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function OY(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,DY(e,t,n,r,i,o)],[])}function kY(e,t,n,r,i,a){let o=OY(e,t,n,r,i,pY(r,a,i));return X(o.length,1)?o[0]:uG(o)}function Dme(e,t,n,r){let i=dX(e,t,r),a=yY(e,n,r),o=a[0],s=a[1];return FH(s)?EY(t,o)?AY(MH(o),i):kY(e,t,MH(o),s.parameters,s.expression,i):AY(n,i)}function AY(e,t){return KV({"~kind":`Call`},{target:e,arguments:t},{})}function jY(e){return YV(e,`Call`)}function Ome(e,t){return e(t)}function kme(e,t){return lB(t)?nW(Ome(e,t)):nW(t)}function Ame(e,t){return MY(e,PW(t))}function jme(e,t){return KH(t.map(t=>MY(e,t)))}function MY(e,t){return cW(t)?kme(e,t.const):$K(t)?Ame(e,t.pattern):qH(t)?jme(e,t.anyOf):t}function Mme(e,t={}){return tH(`Capitalize`,[e],t)}function Nme(e,t={}){return tH(`Lowercase`,[e],t)}function Pme(e,t={}){return tH(`Uncapitalize`,[e],t)}function Fme(e,t={}){return tH(`Uppercase`,[e],t)}const Ime=e=>e[0].toUpperCase()+e.slice(1),Lme=e=>e.toLowerCase(),Rme=e=>e[0].toLowerCase()+e.slice(1),zme=e=>e.toUpperCase();function Bme(e,t){return sX([e])?JV(MY(Ime,e),{},t):Mme(e,t)}function Vme(e,t){return sX([e])?JV(MY(Lme,e),{},t):Nme(e,t)}function Hme(e,t){return sX([e])?JV(MY(Rme,e),{},t):Pme(e,t)}function Ume(e,t){return sX([e])?JV(MY(zme,e),{},t):Fme(e,t)}function Wme(e,t,n,r){return Bme(fX(e,t,n),r)}function Gme(e,t,n,r){return Vme(fX(e,t,n),r)}function Kme(e,t,n,r){return Hme(fX(e,t,n),r)}function qme(e,t,n,r){return Ume(fX(e,t,n),r)}function Jme(e,t,n,r,i={}){return tH(`Conditional`,[e,t,n,r],i)}function Yme(e,t,n,r,i,a){let o=ZJ(e,n,r);return tq(o)?KH([fX(o.inferred,t,i),fX(e,t,a)]):rq(o)?fX(o.inferred,t,i):fX(e,t,a)}function Xme(e,t,n,r,i,a,o){return sX([n,r])?JV(Yme(e,t,n,r,i,a),{},o):Jme(n,r,i,a,o)}function Zme(e,t,n,r,i,a,o){return Xme(e,t,fX(e,t,n),fX(e,t,r),i,a,o)}function Qme(e,t={}){return tH(`ConstructorParameters`,[e],t)}function $me(e){return WW(uX({},{callstack:[]},DH(e)?e.parameters:[]))}function ehe(e,t){return sX([e])?JV($me(e),{},t):Qme(e,t)}function the(e,t,n,r){return ehe(fX(e,t,n),r)}function nhe(e,t,n={}){return tH(`Exclude`,[e,t],n)}function NY(e,t){return e.reduce((e,n)=>[...e,...PY(n,t)],[])}function PY(e,t){return oq(ZJ({},e,t))?[]:[e]}function rhe(e,t){return uG(nU(e)?NY(zW(e.enum),t):qH(e)?NY(yG(e.anyOf),t):PY(e,t))}function FY(e,t,n){return sX([e,t])?JV(rhe(e,t),{},n):nhe(e,t,n)}function ihe(e,t,n,r,i){return FY(fX(e,t,n),fX(e,t,r),i)}function ahe(e,t,n={}){return tH(`Extract`,[e,t],n)}function IY(e,t){return e.reduce((e,n)=>[...e,...LY(n,t)],[])}function LY(e,t){return oq(ZJ({},e,t))?[e]:[]}function ohe(e,t){return uG(nU(e)?IY(zW(e.enum),t):qH(e)?IY(yG(e.anyOf),t):LY(e,t))}function she(e,t,n){return sX([e,t])?JV(ohe(e,t),{},n):ahe(e,t,n)}function che(e,t,n,r,i){return she(fX(e,t,n),fX(e,t,r),i)}function lhe(e,t,n={}){return tH(`Index`,[e,t],n)}function uhe(e,t){return zY(YJ(e,t))}function dhe(e,t){let n=DB(e).filter(e=>!Z(t,e)),r=DB(t).filter(t=>!Z(e,t)),i=DB(e).filter(e=>Z(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]:lG([e[r],t[r]])}),{});return Iz(Iz(a,o),s)}function fhe(e){return e.reduce((e,t)=>dhe(e,zY(t)),{})}function phe(e){return e}function mhe(e){return zY(JW(WW(e)))}function hhe(e,t){return DB(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:uG([e[r],t[r]])}),{})}function RY(e,t){return wB(e,(e,n)=>RY(n,hhe(t,zY(e))),()=>t)}function ghe(e){return wB(e,(e,t)=>RY(t,zY(e)),()=>uU())}function zY(e){return QH(e)?uhe(e.$defs,e.$ref):iU(e)?fhe(e.allOf):qH(e)?ghe(e.anyOf):GW(e)?mhe(e.items):WH(e)?phe(e.properties):{}}function BY(e){return UH(zY(e))}const _he=RegExp(`^(?:0|[1-9][0-9]*)$`);function VY(e){let t=`${e}`;return _he.test(t)?parseInt(t):e}function vhe(e){return nW(VY(e))}function HY(e){return e.map(e=>UY(e))}function UY(e){return iU(e)?rU(HY(e.allOf)):qH(e)?KH(HY(e.anyOf)):cW(e)?vhe(e.const):e}function yhe(e,t){return oq(ZJ({},UY(t),fW()))?e:cW(t)&&X(t.const,`length`)?fW():RH()}function bhe(e,t){return GY(YJ(e,t))}function WY(e){return e.reduce((e,t)=>[...e,...GY(t)],[])}function xhe(e){return WY(zW(e))}function She(e){return GY(lG(e))}function Che(e){return[`${e}`]}function whe(e){return GY(PW(e))}function GY(e){return QH(e)?bhe(e.$defs,e.$ref):nU(e)?xhe(e.enum):iU(e)?She(e.allOf):cW(e)?Che(e.const):$K(e)?whe(e.pattern):qH(e)?WY(e.anyOf):[]}function KY(e){return GY(e)}function qY(e,t){return t.map(t=>JY(e,t))}function JY(e,t){return xH(t)?bH(JY(e,t.items)):wH(t)?CH(JY(e,t.iteratorItems)):DH(t)?EH(qY(e,t.parameters),JY(e,t.instanceType)):AH(t)?kH(qY(e,t.parameters),JY(e,t.returnType)):QU(t)?ZU(JY(e,t.iteratorItems)):iH(t)?rH(JY(e,t.item)):GW(t)?WW(qY(e,t.items)):qH(t)?KH(qY(e,t.anyOf)):iU(t)?rU(qY(e,t.allOf)):BG(t)?UH(e):t}function The(e,t){return JY(e,t)}function Ehe(e,t){return The(e,t in e?e[t]:RH())}function YY(e,t){return t.reduce((t,n)=>[...t,Ehe(e,n)],[])}function Dhe(e,t){return uG(YY(e,KY(t)))}const Ohe=new RegExp(OG);function khe(e){return e.filter(e=>Ohe.test(e))}function Ahe(e){return uG(YY(e,khe(VH(e))))}function jhe(e,t){return pW(t)?Ahe(e):Dhe(e,t)}function Mhe(e){return nW(VY(e))}function XY(e){return e.map(e=>ZY(e))}function ZY(e){return iU(e)?rU(XY(e.allOf)):qH(e)?KH(XY(e.anyOf)):cW(e)?Mhe(e.const):e}function Nhe(e,t){return e.reduceRight((e,n,r)=>oq(ZJ({},nW(r),t))?[n,...e]:e,[])}function Phe(e,t){return fG(Nhe(e,ZY(t)))}function Fhe(e){return fG(e)}function Ihe(e,t){return cW(t)&&X(t.const,`length`)?nW(e.length):pW(t)||XU(t)?Fhe(e):Phe(e,t)}function Lhe(e,t){return xH(e)?yhe(e.items,t):WH(e)?jhe(e.properties,t):GW(e)?Ihe(e.items,t):RH()}function Rhe(e){return QH(e)||iU(e)||qH(e)?BY(e):e}function zhe(e,t,n){return sX([e,t])?JV(Lhe(Rhe(e),t),{},n):lhe(e,t,n)}function Bhe(e,t,n,r,i){return zhe(fX(e,t,n),fX(e,t,r),i)}function Vhe(e,t={}){return tH(`InstanceType`,[e],t)}function Hhe(e){return DH(e)?e.instanceType:RH()}function Uhe(e,t){return sX([e])?JV(Hhe(e),{},t):Vhe(e,t)}function Whe(e,t,n,r={}){return Uhe(fX(e,t,n),r)}function Ghe(e,t={}){return tH(`KeyOf`,[e],t)}function Khe(){return KH([fW(),gW(),mW()])}function qhe(e){return fW()}function Jhe(e){return e.reduce((e,t)=>rW(t)?[...e,nW(VY(t))]:uU(),[])}function Yhe(e){return fG(Jhe(DB(e)))}function Xhe(e){return FG(e)}function Zhe(e){return fG(e.map((e,t)=>nW(t)))}function Qhe(e){return LH(e)?Khe():xH(e)?qhe(e.items):WH(e)?Yhe(e.properties):LG(e)?Xhe(e):GW(e)?Zhe(e.items):RH()}function $he(e){return QH(e)||iU(e)||qH(e)?BY(e):e}function ege(e,t){return sX([e])?JV(Qhe($he(e)),{},t):Ghe(e,t)}function tge(e,t,n,r){return ege(fX(e,t,n),r)}function nge(e,t,n,r,i={}){return tH(`Mapped`,[e,t,n,r],i)}function rge(e){return $Y(PW(e))}function QY(e){return e.reduce((e,t)=>[...e,...$Y(t)],[])}function ige(e){return oB(e)?[nW(`${e}`)]:[nW(e)]}function $Y(e){return nU(e)?QY(zW(e.enum)):cW(e)?ige(e.const):$K(e)?rge(e.pattern):qH(e)?QY(e.anyOf):[e]}function age(e){return $Y(e)}function oge(e){return $K(e)?PW(e.pattern):e}function sge(e,t,n,r,i,a){let o=Iz(e,{[n.name]:r}),s=oge(fX(o,t,i)),c=fX(o,t,a);return oW(s)||sW(s)?{[s.const]:c}:{}}function cge(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,sge(e,t,n,o,i,a)],[])}function lge(e){return e.reduce((e,t)=>[...e,UH(t)],[])}function uge(e,t,n,r,i,a){return lG(lge(cge(e,t,n,age(r),i,a)))}function dge(e,t,n,r,i,a,o){return sX([r])?JV(uge(e,t,n,r,i,a),{},o):nge(n,r,i,a,o)}function fge(e,t,n,r,i,a,o){return dge(e,t,n,fX(e,t,r),i,a,o)}function pge(e,t){return DB(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:qJ(e,n,e[n])}),{})}function mge(e,t){return DB(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:fX(e,{callstack:[]},e[n])}),{})}function hge(e,t){let n=NJ(e),r=pge(e,n),i=mge(e,n);return JV({...r,...i},{},t)}function gge(e,t,n,r){return hge(Iz(e,n),r)}function _ge(e,t={}){return tH(`NonNullable`,[e],t)}function vge(e){return FY(e,KH([lW(),VG()]),{})}function yge(e,t){return sX([e])?JV(vge(e),{},t):_ge(e,t)}function bge(e,t,n,r){return yge(fX(e,t,n),r)}function xge(e,t,n={}){return tH(`Omit`,[e,t],n)}function eX(e){let t=BY(e);return WH(t)?t.properties:uU()}function tX(e,t){return DB(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Sge(e,t){return UH(tX(eX(e),KY(t)))}function Cge(e,t,n){return sX([e,t])?JV(Sge(e,t),{},n):xge(e,t,n)}function wge(e,t,n,r,i){return Cge(fX(e,t,n),fX(e,t,r),i)}function Tge(e,t){return tH(`Options`,[e,t],{})}function Ege(e,t){return nX(e,t)}function nX(e,t){return sX([e])?JV(e,{},t):Tge(e,t)}function Dge(e,t,n,r){return nX(fX(e,t,n),r)}function Oge(e,t={}){return tH(`Parameters`,[e],t)}function kge(e){return WW(uX({},{callstack:[]},AH(e)?e.parameters:[]))}function Age(e,t){return sX([e])?JV(kge(e),{},t):Oge(e,t)}function jge(e,t,n,r){return Age(fX(e,t,n),r)}function Mge(e,t={}){return tH(`Partial`,[e],t)}function Nge(e,t){let n=rX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function Pge(e){return lG(e.map(e=>rX(e)))}function Fge(e){return KH(e.map(e=>rX(e)))}function Ige(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:dH(e[n])}),{}))}function rX(e){return QH(e)?Nge(e.$defs,e.$ref):iU(e)?Pge(e.allOf):qH(e)?Fge(e.anyOf):WH(e)?Ige(e.properties):UH({})}function Lge(e,t){return sX([e])?JV(rX(e),{},t):Mge(e,t)}function Rge(e,t,n,r){return Lge(fX(e,t,n),r)}function zge(e,t,n={}){return tH(`Pick`,[e,t],n)}function Bge(e,t){return DB(e).reduce((n,r)=>t.includes(r)?Iz(n,{[r]:e[r]}):n,{})}function Vge(e,t){return UH(Bge(eX(e),KY(t)))}function Hge(e,t,n){return sX([e,t])?JV(Vge(e,t),{},n):zge(e,t,n)}function Uge(e,t,n,r,i){return Hge(fX(e,t,n),fX(e,t,r),i)}function Wge(e,t={}){return tH(`ReadonlyObject`,[e],t)}function Gge(e){return sH(bH(e))}function Kge(e,t){let n=iX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function qge(e){return lG(e.map(e=>iX(e)))}function Jge(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:hH(e[n])}),{}))}function Yge(e){return sH(WW(e))}function Xge(e){return KH(e.map(e=>iX(e)))}function iX(e){return xH(e)?Gge(e.items):QH(e)?Kge(e.$defs,e.$ref):iU(e)?qge(e.allOf):WH(e)?Jge(e.properties):GW(e)?Yge(e.items):qH(e)?Xge(e.anyOf):e}function Zge(e,t){return sX([e])?JV(iX(e),{},t):Wge(e)}function Qge(e,t,n,r){return Zge(fX(e,t,n),r)}function $ge(e,t,n,r){return r in e?jJ([r],e,e[r])?n:fX(e,t,e[r]):n}function e_e(e,t){let n=aX(YJ(e,t));return ZH(Iz(e,{[t]:n}),t)}function t_e(e){return lG(e.map(e=>aX(e)))}function n_e(e){return KH(e.map(e=>aX(e)))}function r_e(e){return UH(DB(e).reduce((t,n)=>({...t,[n]:lH(e[n])}),{}))}function aX(e){return QH(e)?e_e(e.$defs,e.$ref):iU(e)?t_e(e.allOf):qH(e)?n_e(e.anyOf):WH(e)?r_e(e.properties):UH({})}function i_e(e,t={}){return tH(`Required`,[e],t)}function a_e(e,t){return sX([e])?JV(aX(e),{},t):i_e(e,t)}function o_e(e,t,n,r){return a_e(fX(e,t,n),r)}function s_e(e,t={}){return tH(`ReturnType`,[e],t)}function c_e(e){return AH(e)?e.returnType:RH()}function l_e(e,t){return sX([e])?JV(c_e(e),{},t):s_e(e,t)}function u_e(e,t,n,r={}){return l_e(fX(e,t,n),r)}function d_e(e){return zG(e)?GW(e.items)?oX(e.items.items):tU(e.items)||NH(e.items)?[e]:[RH()]:[e]}function oX(e){return e.reduce((e,t)=>[...e,...d_e(t)],[])}function sX(e){return wB(e,(e,t)=>NH(e)?!1:sX(t),()=>!0)}function cX(e,t,n){return eH(e)?cX(e.type,`remove`,n):QV(e)?cX(e.type,t,`remove`):$V(e)?cX(e.type,`add`,n):ZV(e)?cX(e.type,t,`add`):[e,t,n]}function f_e(e,t){return X(e,`remove`)?pH(t):X(e,`add`)?mH(t):t}function p_e(e,t){return X(e,`remove`)?lH(t):X(e,`add`)?uH(t):t}function lX(e,t,n){return DB(n).reduce((r,i)=>({...r,[i]:fX(e,t,n[i])}),{})}function uX(e,t,n){return oX(dX(e,t,n))}function dX(e,t,n){return n.map(n=>fX(e,t,n))}function m_e(e,t,n,r,i){return X(n,`Awaited`)?g_e(e,t,r[0],i):X(n,`Capitalize`)?Wme(e,t,r[0],i):X(n,`Conditional`)?Zme(e,t,r[0],r[1],r[2],r[3],i):X(n,`ConstructorParameters`)?the(e,t,r[0],i):X(n,`Evaluate`)?aY(e,t,r[0],i):X(n,`Exclude`)?ihe(e,t,r[0],r[1],i):X(n,`Extract`)?che(e,t,r[0],r[1],i):X(n,`Index`)?Bhe(e,t,r[0],r[1],i):X(n,`InstanceType`)?Whe(e,t,r[0],i):X(n,`Interface`)?wJ(e,t,r[0],r[1],i):X(n,`KeyOf`)?tge(e,t,r[0],i):X(n,`Lowercase`)?Gme(e,t,r[0],i):X(n,`Mapped`)?fge(e,t,r[0],r[1],r[2],r[3],i):X(n,`Module`)?gge(e,t,r[0],i):X(n,`NonNullable`)?bge(e,t,r[0],i):X(n,`Pick`)?Uge(e,t,r[0],r[1],i):X(n,`Options`)?Dge(e,t,r[0],r[1]):X(n,`Parameters`)?jge(e,t,r[0],i):X(n,`Partial`)?Rge(e,t,r[0],i):X(n,`Omit`)?wge(e,t,r[0],r[1],i):X(n,`ReadonlyObject`)?Qge(e,t,r[0],i):X(n,`Record`)?DG(e,t,r[0],r[1],i):X(n,`Required`)?o_e(e,t,r[0],i):X(n,`ReturnType`)?u_e(e,t,r[0],i):X(n,`TemplateLiteral`)?XK(e,t,r[0],i):X(n,`Uncapitalize`)?Kme(e,t,r[0],i):X(n,`Uppercase`)?qme(e,t,r[0],i):tH(n,r,i)}function fX(e,t,n){let r=cH(n),i=cX(n,gH(n)?`add`:`none`,fH(n)?`add`:`none`),a=yH(i[0])?i[0].Clone():i[0],o=NH(a)?$ge(e,t,a,a.$ref):xH(a)?bH(fX(e,t,a.items),SH(a)):wH(a)?CH(fX(e,t,a.iteratorItems),TH(a)):jY(a)?Dme(e,t,a.target,a.arguments):DH(a)?EH(dX(e,t,a.parameters),fX(e,t,a.instanceType),OH(a)):nH(a)?m_e(e,t,a.action,a.parameters,a.options):AH(a)?kH(dX(e,t,a.parameters),fX(e,t,a.returnType),jH(a)):iU(a)?rU(dX(e,t,a.allOf),aU(a)):QU(a)?ZU(fX(e,t,a.iteratorItems),$U(a)):WH(a)?UH(lX(e,t,a.properties),GH(a)):iH(a)?rH(fX(e,t,a.item),aH(a)):LG(a)?NG(PG(a),fX(e,t,IG(a))):zG(a)?RG(fX(e,t,a.items)):GW(a)?WW(uX(e,t,a.items),KW(a)):qH(a)?KH(dX(e,t,a.anyOf),JH(a)):a,s=r?sH(o):o;return f_e(i[1],p_e(i[2],s))}function pX(e,t){return fX(e,{callstack:[]},t)}function mX(e){return iH(e)?mX(e.item):e}function h_e(e,t){return sX([e])?JV(mX(e),{},t):__e(e,t)}function g_e(e,t,n,r){return h_e(fX(e,t,n),r)}function __e(e,t={}){return tH(`Awaited`,[e],t)}function hX(e,t={}){return iY(e,t)}const gX=new Map;function v_e(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function y_e(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function _X(e,t){gX.set(e.api,{provider:{api:e.api,stream:v_e(e.api,e.stream),streamSimple:y_e(e.api,e.streamSimple)},sourceId:t})}function b_e(e){return gX.get(e)?.provider}var vX=s(((e,t)=>{t.exports={}}));let yX=null,bX=null,xX=null;const SX=e=>import(e);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(SX(`node:fs`).then(e=>{yX=e.existsSync}),SX(`node:os`).then(e=>{bX=e.homedir}),SX(`node:path`).then(e=>{xX=e.join}));let CX=null;function wX(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(CX===null){CX=new Map;try{let{readFileSync:e}=vX(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&CX.set(e.slice(0,t),e.slice(t+1))}}catch{}}return CX.get(e)}}let TX=null;function x_e(){if(TX===null){if(!yX||!bX||!xX)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(TX=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||wX(`GOOGLE_APPLICATION_CREDENTIALS`);TX=yX(e||xX(bX(),`.config`,`gcloud`,`application_default_credentials.json`))}return TX}function S_e(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`,moonshotai:`MOONSHOT_API_KEY`,"moonshotai-cn":`MOONSHOT_API_KEY`,huggingface:`HF_TOKEN`,fireworks:`FIREWORKS_API_KEY`,opencode:`OPENCODE_API_KEY`,"opencode-go":`OPENCODE_API_KEY`,"kimi-coding":`KIMI_API_KEY`,"cloudflare-workers-ai":`CLOUDFLARE_API_KEY`,"cloudflare-ai-gateway":`CLOUDFLARE_API_KEY`,xiaomi:`XIAOMI_API_KEY`,"xiaomi-token-plan-cn":`XIAOMI_TOKEN_PLAN_CN_API_KEY`,"xiaomi-token-plan-ams":`XIAOMI_TOKEN_PLAN_AMS_API_KEY`,"xiaomi-token-plan-sgp":`XIAOMI_TOKEN_PLAN_SGP_API_KEY`}[e];return t?[t]:void 0}function C_e(e){let t=S_e(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!wX(e));return n.length>0?n:void 0}function EX(e){let t=C_e(e);if(t?.[0])return{}[t[0]]||wX(t[0]);if(e===`google-vertex`){let e=x_e(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||wX(`GOOGLE_CLOUD_PROJECT`)||wX(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||wX(`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||wX(`AWS_PROFILE`)||wX(`AWS_ACCESS_KEY_ID`)&&wX(`AWS_SECRET_ACCESS_KEY`)||wX(`AWS_BEARER_TOKEN_BEDROCK`)||wX(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||wX(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||wX(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}const w_e={"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`azure-openai-responses`,provider:`azure-openai-responses`,baseUrl:``,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,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}},"cloudflare-ai-gateway":{"claude-3-5-haiku":{id:`claude-3-5-haiku`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3-haiku":{id:`claude-3-haiku`,name:`Claude Haiku 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3-opus":{id:`claude-3-opus`,name:`Claude Opus 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},contextWindow:2e5,maxTokens:4096},"claude-3-sonnet":{id:`claude-3-sonnet`,name:`Claude Sonnet 3`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},contextWindow:2e5,maxTokens:4096},"claude-3.5-haiku":{id:`claude-3.5-haiku`,name:`Claude Haiku 3.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},contextWindow:2e5,maxTokens:8192},"claude-3.5-sonnet":{id:`claude-3.5-sonnet`,name:`Claude Sonnet 3.5 v2`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!1,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:2e5,maxTokens:8192},"claude-haiku-4-5":{id:`claude-haiku-4-5`,name:`Claude Haiku 4.5 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},contextWindow:2e5,maxTokens:64e3},"claude-opus-4":{id:`claude-opus-4`,name:`Claude Opus 4 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,thinkingLevelMap:{xhigh:`max`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,thinkingLevelMap:{xhigh:`xhigh`},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 (latest)`,api:`anthropic-messages`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},contextWindow:1e6,maxTokens:64e3},"gpt-4":{id:`gpt-4`,name:`GPT-4`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!1,input:[`text`,`image`],cost:{input:10,output:30,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:4096},"gpt-4o":{id:`gpt-4o`,name:`GPT-4o`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!1,input:[`text`,`image`],cost:{input:.15,output:.6,cacheRead:.08,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"gpt-5.1":{id:`gpt-5.1`,name:`GPT-5.1`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.13,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.1-codex":{id:`gpt-5.1-codex`,name:`GPT-5.1 Codex`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:1.25,output:10,cacheRead:.125,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"gpt-5.2":{id:`gpt-5.2`,name:`GPT-5.2`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:2.5,output:15,cacheRead:.25,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},"gpt-5.5":{id:`gpt-5.5`,name:`GPT-5.5`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:105e4,maxTokens:128e3},o1:{id:`o1`,name:`o1`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:15,output:60,cacheRead:7.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},o3:{id:`o3`,name:`o3`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:2,output:8,cacheRead:.5,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"o3-mini":{id:`o3-mini`,name:`o3-mini`,api:`openai-responses`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,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:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.1,output:4.4,cacheRead:.28,cacheWrite:0},contextWindow:2e5,maxTokens:1e5},"workers-ai/@cf/moonshotai/kimi-k2.5":{id:`workers-ai/@cf/moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/moonshotai/kimi-k2.6":{id:`workers-ai/@cf/moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{id:`workers-ai/@cf/nvidia/nemotron-3-120b-a12b`,name:`Nemotron 3 Super 120B`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"workers-ai/@cf/zai-org/glm-4.7-flash":{id:`workers-ai/@cf/zai-org/glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`cloudflare-ai-gateway`,baseUrl:`https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.06,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072}},"cloudflare-workers-ai":{"@cf/google/gemma-4-26b-a4b-it":{id:`@cf/google/gemma-4-26b-a4b-it`,name:`Gemma 4 26B A4B IT`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.1,output:.3,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:16384},"@cf/meta/llama-4-scout-17b-16e-instruct":{id:`@cf/meta/llama-4-scout-17b-16e-instruct`,name:`Llama 4 Scout 17B 16E Instruct`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!1,input:[`text`,`image`],cost:{input:.27,output:.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/moonshotai/kimi-k2.5":{id:`@cf/moonshotai/kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/moonshotai/kimi-k2.6":{id:`@cf/moonshotai/kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/nvidia/nemotron-3-120b-a12b":{id:`@cf/nvidia/nemotron-3-120b-a12b`,name:`Nemotron 3 Super 120B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.5,output:1.5,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"@cf/openai/gpt-oss-120b":{id:`@cf/openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.35,output:.75,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/openai/gpt-oss-20b":{id:`@cf/openai/gpt-oss-20b`,name:`GPT OSS 20B`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.2,output:.3,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16384},"@cf/zai-org/glm-4.7-flash":{id:`@cf/zai-org/glm-4.7-flash`,name:`GLM-4.7-Flash`,api:`openai-completions`,provider:`cloudflare-workers-ai`,baseUrl:`https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1`,compat:{sendSessionAffinityHeaders:!0},reasoning:!0,input:[`text`],cost:{input:.06,output:.4,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072}},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`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:`deepseek`,baseUrl:`https://api.deepseek.com`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},input:[`text`],cost:{input:.435,output:.87,cacheRead:.003625,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/deepseek-v4-pro":{id:`accounts/fireworks/models/deepseek-v4-pro`,name:`DeepSeek V4 Pro`,api:`anthropic-messages`,provider:`fireworks`,baseUrl:`https://api.fireworks.ai/inference`,reasoning:!0,input:[`text`],cost:{input:1.74,output:3.48,cacheRead:.15,cacheWrite:0},contextWindow:1e6,maxTokens:384e3},"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`,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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:`MINIMAL`,low:null,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:`MINIMAL`,low:null,medium:null,high:`HIGH`},input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:8192}},"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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`default`},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":{"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-2604":{id:`mistral-medium-2604`,name:`Mistral Medium 3.5`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"mistral-medium-3.5":{id:`mistral-medium-3.5`,name:`Mistral Medium 3.5`,api:`mistral-conversations`,provider:`mistral`,baseUrl:`https://api.mistral.ai`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,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:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"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}},moonshotai:{"kimi-k2-0711-preview":{id:`kimi-k2-0711-preview`,name:`Kimi K2 0711`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:16384},"kimi-k2-0905-preview":{id:`kimi-k2-0905-preview`,name:`Kimi K2 0905`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking-turbo":{id:`kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-turbo-preview":{id:`kimi-k2-turbo-preview`,name:`Kimi K2 Turbo`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:2.4,output:10,cacheRead:.6,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`moonshotai`,baseUrl:`https://api.moonshot.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144}},"moonshotai-cn":{"kimi-k2-0711-preview":{id:`kimi-k2-0711-preview`,name:`Kimi K2 0711`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:131072,maxTokens:16384},"kimi-k2-0905-preview":{id:`kimi-k2-0905-preview`,name:`Kimi K2 0905`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking":{id:`kimi-k2-thinking`,name:`Kimi K2 Thinking`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:.6,output:2.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-thinking-turbo":{id:`kimi-k2-thinking-turbo`,name:`Kimi K2 Thinking Turbo`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`],cost:{input:1.15,output:8,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2-turbo-preview":{id:`kimi-k2-turbo-preview`,name:`Kimi K2 Turbo`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!1,input:[`text`],cost:{input:2.4,output:10,cacheRead:.6,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.5":{id:`kimi-k2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3,cacheRead:.1,cacheWrite:0},contextWindow:262144,maxTokens:262144},"kimi-k2.6":{id:`kimi-k2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`moonshotai-cn`,baseUrl:`https://api.moonshot.cn/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1},reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:262144}},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:272e3,maxTokens:128e3},"gpt-5.5-pro":{id:`gpt-5.5-pro`,name:`GPT-5.5 Pro`,api:`openai-responses`,provider:`openai`,baseUrl:`https://api.openai.com/v1`,reasoning:!0,thinkingLevelMap:{off:null,xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:180,cacheRead:0,cacheWrite:0},contextWindow:105e4,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,thinkingLevelMap:{minimal:`medium`,low:`medium`,medium:`medium`,high:`high`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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,thinkingLevelMap:{xhigh:`xhigh`,minimal:`low`},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:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,minimal:null,low:`LOW`,medium:null,high:`HIGH`},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},input:[`text`,`image`],cost:{input:.05,output:.4,cacheRead:.005,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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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,thinkingLevelMap:{off:null,xhigh:`xhigh`},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},"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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:202752,maxTokens:32768},"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:202752,maxTokens:32768},"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`,api:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.95,output:4,cacheRead:.16,cacheWrite:0},contextWindow:262144,maxTokens:65536},"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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{thinkingFormat:`qwen`},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:`openai-completions`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go/v1`,compat:{thinkingFormat:`qwen`},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},"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:64e3},"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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/cobuddy:free":{id:`baidu/cobuddy:free`,name:`Baidu Qianfan: CoBuddy (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:65536},"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:.27,output:.95,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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},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:1048576,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},"ibm-granite/granite-4.1-8b":{id:`ibm-granite/granite-4.1-8b`,name:`IBM: Granite 4.1 8B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.049999999999999996,output:.09999999999999999,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:131072,maxTokens:131072},"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":{id:`inclusionai/ling-2.6-1t`,name:`inclusionAI: Ling-2.6-1T`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.3,output:2.5,cacheRead:.06,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ling-2.6-flash":{id:`inclusionai/ling-2.6-flash`,name:`inclusionAI: Ling-2.6-flash`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`],cost:{input:.08,output:.24,cacheRead:.016,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.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-5":{id:`mistralai/mistral-medium-3-5`,name:`Mistral: Mistral Medium 3.5`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.5,output:7.5,cacheRead:0,cacheWrite:0},contextWindow:262144,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:.03,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"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/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:.75,output:3.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:16384},"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-nano-omni-30b-a3b-reasoning:free":{id:`nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free`,name:`NVIDIA: Nemotron 3 Nano Omni (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:256e3,maxTokens:65536},"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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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-chat-latest":{id:`openai/gpt-chat-latest`,name:`OpenAI: GPT Chat Latest`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!1,input:[`text`,`image`],cost:{input:5,output:30,cacheRead:.5,cacheWrite:0},contextWindow:4e5,maxTokens:128e3},"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:.18,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:4096},"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},"openrouter/owl-alpha":{id:`openrouter/owl-alpha`,name:`Owl Alpha`,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:1048756,maxTokens:262144},"poolside/laguna-m.1:free":{id:`poolside/laguna-m.1:free`,name:`Poolside: Laguna M.1 (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},"poolside/laguna-xs.2:free":{id:`poolside/laguna-xs.2:free`,name:`Poolside: Laguna XS.2 (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},"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:.09,output:.44999999999999996,cacheRead:0,cacheWrite:0},contextWindow:40960,maxTokens:2e4},"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:.11,output:.7999999999999999,cacheRead:.07,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:.14,output:1,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:81920},"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:.04,output:.15,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920},"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:.32,output:3.1999999999999997,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:81920},"qwen/qwen3.6-35b-a3b":{id:`qwen/qwen3.6-35b-a3b`,name:`Qwen: Qwen3.6 35B A3B`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:.15,output:1,cacheRead:.049999999999999996,cacheWrite:0},contextWindow:262144,maxTokens:262144},"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.04,output:6.24,cacheRead:0,cacheWrite:1.3},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},"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:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:4096},"x-ai/grok-4.3":{id:`x-ai/grok-4.3`,name:`xAI: Grok 4.3`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,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:4096},"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:.75,output:3.5,cacheRead:.15,cacheWrite:0},contextWindow:262144,maxTokens:16384},"~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 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-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-27b":{id:`alibaba/qwen3.6-27b`,name:`Qwen 3.6 27B`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.6,output:3.5999999999999996,cacheRead:0,cacheWrite:0},contextWindow:256e3,maxTokens:256e3},"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,thinkingLevelMap:{xhigh:`max`},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,thinkingLevelMap:{xhigh:`xhigh`},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:!1,input:[`text`],cost:{input:.62,output:1.85,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:8e3},"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:.0028,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-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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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,thinkingLevelMap:{xhigh:`xhigh`},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},"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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,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:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:2e6,maxTokens:2e6},"xai/grok-4.3":{id:`xai/grok-4.3`,name:`Grok 4.3`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:1e6,maxTokens:1e6},"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},"xiaomi/mimo-v2.5":{id:`xiaomi/mimo-v2.5`,name:`MiMo M2.5`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:.39999999999999997,output:2,cacheRead:.08,cacheWrite:0},contextWindow:105e4,maxTokens:131100},"xiaomi/mimo-v2.5-pro":{id:`xiaomi/mimo-v2.5-pro`,name:`MiMo V2.5 Pro`,api:`anthropic-messages`,provider:`vercel-ai-gateway`,baseUrl:`https://ai-gateway.vercel.sh`,reasoning:!0,input:[`text`,`image`],cost:{input:1,output:3,cacheRead:.19999999999999998,cacheWrite:0},contextWindow:105e4,maxTokens:131e3},"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-4.3":{id:`grok-4.3`,name:`Grok 4.3`,api:`openai-completions`,provider:`xai`,baseUrl:`https://api.x.ai/v1`,reasoning:!0,input:[`text`,`image`],cost:{input:1.25,output:2.5,cacheRead:.2,cacheWrite:0},contextWindow:1e6,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}},xiaomi:{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-ams":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-cn":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},"xiaomi-token-plan-sgp":{"mimo-v2-flash":{id:`mimo-v2-flash`,name:`MiMo-V2-Flash`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:.1,output:.3,cacheRead:.01,cacheWrite:0},contextWindow:262144,maxTokens:65536},"mimo-v2-omni":{id:`mimo-v2-omni`,name:`MiMo-V2-Omni`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:262144,maxTokens:131072},"mimo-v2-pro":{id:`mimo-v2-pro`,name:`MiMo-V2-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5":{id:`mimo-v2.5`,name:`MiMo-V2.5`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`,`image`],cost:{input:.4,output:2,cacheRead:.08,cacheWrite:0},contextWindow:1048576,maxTokens:131072},"mimo-v2.5-pro":{id:`mimo-v2.5-pro`,name:`MiMo-V2.5-Pro`,api:`anthropic-messages`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/anthropic`,reasoning:!0,input:[`text`],cost:{input:1,output:3,cacheRead:.2,cacheWrite:0},contextWindow:1048576,maxTokens:131072}},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},"glm-5v-turbo":{id:`glm-5v-turbo`,name:`GLM-5V-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`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:131072}}},DX=new Map;for(let[e,t]of Object.entries(w_e)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);DX.set(e,n)}function T_e(e,t){return DX.get(e)?.get(t)}function OX(){return Array.from(DX.keys())}function kX(e){let t=DX.get(e);return t?Array.from(t.values()):[]}function AX(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}const jX=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function MX(e){return e.reasoning?jX.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`?n!==void 0:!0}):[`off`]}function NX(e,t){let n=MX(e);if(n.includes(t))return t;let r=jX.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<jX.length;e++){let t=jX[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=jX[e];if(n.includes(t))return t}return n[0]??`off`}var E_e=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}},PX=class extends E_e{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`)})}};function FX(){return new PX}const D_e=e=>import(e);let IX,LX,RX,zX,BX,VX,HX,UX,WX;function GX(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function KX(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 qX(e){return(t,n,r)=>{let i=new PX;return e().then(e=>{GX(i,e.stream(t,n,r))}).catch(e=>{let n=KX(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function JX(e){return(t,n,r)=>{let i=new PX;return e().then(e=>{GX(i,e.streamSimple(t,n,r))}).catch(e=>{let n=KX(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function YX(){return IX||=import(`./anthropic-OisNnXAs.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),IX}function XX(){return LX||=import(`./azure-openai-responses-Dkyfu7sH.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),LX}function ZX(){return RX||=import(`./google-Dd5CRihX.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),RX}function QX(){return zX||=import(`./google-vertex-DwbFrPFr.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),zX}function $X(){return BX||=import(`./mistral-vXl92WrJ.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),BX}function eZ(){return VX||=import(`./openai-codex-responses-MkWPZpWx.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),VX}function tZ(){return HX||=Promise.resolve().then(()=>nke).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),HX}function nZ(){return UX||=import(`./openai-responses-DS_dvwyT.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),UX}function rZ(){return WX||=D_e(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),WX}const iZ=qX(YX),aZ=JX(YX),O_e=qX(XX),k_e=JX(XX),A_e=qX(ZX),j_e=JX(ZX),M_e=qX(QX),N_e=JX(QX),P_e=qX($X),F_e=JX($X),I_e=qX(eZ),L_e=JX(eZ),oZ=qX(tZ),sZ=JX(tZ),cZ=qX(nZ),lZ=JX(nZ),R_e=qX(rZ),z_e=JX(rZ);function B_e(){_X({api:`anthropic-messages`,stream:iZ,streamSimple:aZ}),_X({api:`openai-completions`,stream:oZ,streamSimple:sZ}),_X({api:`mistral-conversations`,stream:P_e,streamSimple:F_e}),_X({api:`openai-responses`,stream:cZ,streamSimple:lZ}),_X({api:`azure-openai-responses`,stream:O_e,streamSimple:k_e}),_X({api:`openai-codex-responses`,stream:I_e,streamSimple:L_e}),_X({api:`google-generative-ai`,stream:A_e,streamSimple:j_e}),_X({api:`google-vertex`,stream:M_e,streamSimple:N_e}),_X({api:`bedrock-converse-stream`,stream:R_e,streamSimple:z_e})}B_e();const uZ=new Set;function V_e(e){return uZ.add(e),()=>{uZ.delete(e)}}function H_e(e){let t=b_e(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function dZ(e,t,n){return H_e(e.api).streamSimple(e,t,n)}async function U_e(e,t,n){return dZ(e,t,n).result()}function fZ(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function W_e(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:fZ(e)};let t=e.code;return{name:e.name||void 0,message:e.message||e.name,stack:e.stack,code:typeof t==`string`||typeof t==`number`?t:void 0}}function G_e(e,t,n){return{type:e,timestamp:Date.now(),error:W_e(t),details:n}}function K_e(e,t){e.diagnostics=[...e.diagnostics??[],t]}var pZ=s((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})),mZ=s((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;let r=pZ();Object.defineProperty(e,`Allow`,{enumerable:!0,get:function(){return r.Allow}}),n(pZ(),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;let 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&&`
3381
3381
  \r `.includes(e[o]);)o++};return l()};e.parse=o}))();const q_e=new Set([`"`,`\\`,`/`,`b`,`f`,`n`,`r`,`t`,`u`]);function J_e(e){let t=e.codePointAt(0);return t!==void 0&&t>=0&&t<=31}function Y_e(e){switch(e){case`\b`:return`\\b`;case`\f`:return`\\f`;case`
3382
3382
  `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;default:return`\\u${e.codePointAt(0)?.toString(16).padStart(4,`0`)??`0000`}`}}function hZ(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(q_e.has(n)){t+=`\\${n}`,r+=1;continue}t+=`\\\\`;continue}t+=J_e(i)?Y_e(i):i}return t}function gZ(e){try{return JSON.parse(e)}catch(t){let n=hZ(e);if(n!==e)return JSON.parse(n);throw t}}function _Z(e){if(!e||e.trim()===``)return{};try{return gZ(e)}catch{try{return(0,mZ.parse)(e)??{}}catch{try{return(0,mZ.parse)(hZ(e))??{}}catch{return{}}}}}const X_e=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/input token count.*exceeds the maximum/i,/maximum prompt length is \d+/i,/reduce the length of the messages/i,/maximum context length is \d+ tokens/i,/exceeds the limit of \d+/i,/exceeds the available context size/i,/greater than the context length/i,/context window exceeds limit/i,/exceeded model token limit/i,/too large for model with \d+ maximum context length/i,/model_context_window_exceeded/i,/prompt too long; exceeded (?:max )?context length/i,/context[_ ]length[_ ]exceeded/i,/too many tokens/i,/token limit exceeded/i,/^4(?:00|13)\s*(?:status code)?\s*\(no body\)/i],Z_e=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function Q_e(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&!Z_e.some(t=>t.test(e.errorMessage))&&X_e.some(t=>t.test(e.errorMessage))||t&&e.stopReason===`stop`&&e.usage.input+e.usage.cacheRead>t||t&&e.stopReason===`length`&&e.usage.output===0&&e.usage.input+e.usage.cacheRead>=t*.99)}function $_e(e){return cB(e)&&Z(e,`check`)&&Z(e,`errors`)&&nB(e.check)&&nB(e.errors)}function vZ(e){return Z(e,`~guard`)&&$_e(e[`~guard`])}function yZ(e){return Z(e,`~refine`)&&Zz(e[`~refine`])&&SB(e[`~refine`],0,e=>cB(e)&&Z(e,`check`)&&Z(e,`error`)&&nB(e.check)&&nB(e.error))}function bZ(e){return cB(e)&&!Zz(e)}function xZ(e){return eB(e)}function SZ(e){return bZ(e)||xZ(e)}function CZ(e){return Z(e,`additionalItems`)&&SZ(e.additionalItems)}function wZ(e){return Z(e,`additionalProperties`)&&SZ(e.additionalProperties)}function TZ(e){return Z(e,`allOf`)&&Zz(e.allOf)&&e.allOf.every(e=>SZ(e))}function EZ(e){return Z(e,`$anchor`)&&lB(e.$anchor)}function DZ(e){return Z(e,`anyOf`)&&Zz(e.anyOf)&&e.anyOf.every(e=>SZ(e))}function OZ(e){return Z(e,`const`)}function kZ(e){return Z(e,`contains`)&&SZ(e.contains)}function AZ(e){return Z(e,`default`)}function jZ(e){return Z(e,`dependencies`)&&cB(e.dependencies)&&Object.values(e.dependencies).every(e=>SZ(e)||Zz(e)&&e.every(e=>lB(e)))}function MZ(e){return Z(e,`dependentRequired`)&&cB(e.dependentRequired)&&Object.values(e.dependentRequired).every(e=>Zz(e)&&e.every(e=>lB(e)))}function NZ(e){return Z(e,`dependentSchemas`)&&cB(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(e=>SZ(e))}function PZ(e){return Z(e,`$dynamicAnchor`)&&lB(e.$dynamicAnchor)}function FZ(e){return Z(e,`$dynamicRef`)&&lB(e.$dynamicRef)}function IZ(e){return Z(e,`else`)&&SZ(e.else)}function LZ(e){return Z(e,`enum`)&&Zz(e.enum)}function RZ(e){return Z(e,`exclusiveMaximum`)&&(oB(e.exclusiveMaximum)||$z(e.exclusiveMaximum))}function zZ(e){return Z(e,`exclusiveMinimum`)&&(oB(e.exclusiveMinimum)||$z(e.exclusiveMinimum))}function BZ(e){return Z(e,`format`)&&lB(e.format)}function VZ(e){return Z(e,`$id`)&&lB(e.$id)}function HZ(e){return Z(e,`if`)&&SZ(e.if)}function UZ(e){return Z(e,`items`)&&(SZ(e.items)||Zz(e.items)&&e.items.every(e=>SZ(e)))}function WZ(e){return UZ(e)&&Zz(e.items)}function GZ(e){return Z(e,`maximum`)&&(oB(e.maximum)||$z(e.maximum))}function KZ(e){return Z(e,`maxContains`)&&oB(e.maxContains)}function qZ(e){return Z(e,`maxItems`)&&oB(e.maxItems)}function JZ(e){return Z(e,`maxLength`)&&oB(e.maxLength)}function YZ(e){return Z(e,`maxProperties`)&&oB(e.maxProperties)}function XZ(e){return Z(e,`minimum`)&&(oB(e.minimum)||$z(e.minimum))}function ZZ(e){return Z(e,`minContains`)&&oB(e.minContains)}function QZ(e){return Z(e,`minItems`)&&oB(e.minItems)}function $Z(e){return Z(e,`minLength`)&&oB(e.minLength)}function eQ(e){return Z(e,`minProperties`)&&oB(e.minProperties)}function tQ(e){return Z(e,`multipleOf`)&&(oB(e.multipleOf)||$z(e.multipleOf))}function nQ(e){return Z(e,`not`)&&SZ(e.not)}function rQ(e){return Z(e,`oneOf`)&&Zz(e.oneOf)&&e.oneOf.every(e=>SZ(e))}function iQ(e){return Z(e,`pattern`)&&(lB(e.pattern)||e.pattern instanceof RegExp)}function aQ(e){return Z(e,`patternProperties`)&&cB(e.patternProperties)&&Object.values(e.patternProperties).every(e=>SZ(e))}function oQ(e){return Z(e,`prefixItems`)&&Zz(e.prefixItems)&&e.prefixItems.every(e=>SZ(e))}function sQ(e){return Z(e,`properties`)&&cB(e.properties)&&Object.values(e.properties).every(e=>SZ(e))}function cQ(e){return Z(e,`propertyNames`)&&(cB(e.propertyNames)||SZ(e.propertyNames))}function eve(e){return Z(e,`$recursiveAnchor`)&&eB(e.$recursiveAnchor)}function lQ(e){return eve(e)&&X(e.$recursiveAnchor,!0)}function uQ(e){return Z(e,`$recursiveRef`)&&lB(e.$recursiveRef)}function dQ(e){return Z(e,`$ref`)&&lB(e.$ref)}function fQ(e){return Z(e,`required`)&&Zz(e.required)&&e.required.every(e=>lB(e))}function pQ(e){return Z(e,`then`)&&SZ(e.then)}function mQ(e){return Z(e,`type`)&&(lB(e.type)||Zz(e.type)&&e.type.every(e=>lB(e)))}function hQ(e){return Z(e,`uniqueItems`)&&eB(e.uniqueItems)}function gQ(e){return Z(e,`unevaluatedItems`)&&SZ(e.unevaluatedItems)}function _Q(e){return Z(e,`unevaluatedProperties`)&&SZ(e.unevaluatedProperties)}function tve(e){return gQ(e)||_Q(e)||DB(e).some(t=>vQ(e[t]))}function nve(e){return e.some(e=>vQ(e))}function vQ(e){return Zz(e)?nve(e):cB(e)?tve(e):!1}function rve(e,t){return vQ(t)||DB(e).some(t=>vQ(e[t]))}var ive=class{constructor(e){this.hasUnevaluated=e}UseUnevaluated(){return this.hasUnevaluated}Push(){return pV(hV(`context`,`Push`),[])}Pop(){return pV(hV(`context`,`Pop`),[])}AddIndex(e){return pV(hV(`context`,`AddIndex`),[e])}AddKey(e){return pV(hV(`context`,`AddKey`),[e])}Merge(e){return pV(hV(`context`,`Merge`),[e])}},yQ=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}},bQ=class extends yQ{constructor(e){super(),this.callback=e}AddError(e){return this.callback(e),!1}},xQ=class extends bQ{constructor(){super(e=>this.errors.push(e)),this.errors=[]}AddError(e){return this.errors.push(e),!1}GetErrors(){return this.errors}};const SQ={identifier:`External`,variables:[]};function CQ(e){let t=`External[${SQ.variables.length}]`;return SQ.variables.push(e),t}function ave(){SQ.variables=[]}function ove(){return{...SQ}}function sve(e,t,n,r){return pV(hV(hV(CQ(n),`~guard`),`check`),[r])}function cve(e,t,n,r){return n[`~guard`].check(r)}function lve(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 uve(e,t,n,r){return oV(CQ(n[`~refine`].map(e=>e)),gV(0),[`refinement`,`_`],pV(hV(`refinement`,`check`),[r]))}function dve(e,t,n,r){return SB(n[`~refine`],0,(e,t)=>e.check(r))}function fve(e,t,n,r,i,a){return CB(i[`~refine`],0,(e,i)=>e.check(a)||t.AddError({keyword:`~refine`,schemaPath:n,instancePath:r,params:{index:i,message:e.error(a)}}))}let pve=0;function wQ(){return`var_${pve++}`}function TQ(e){return UZ(e)&&Zz(e.items)}function mve(e,t,n,r){if(!TQ(n))return gV(!0);let[i,a]=[wQ(),wQ()],o=z$(e,t,n.additionalItems,i),s=tV(a,gV(n.items.length)),c=t.AddIndex(a),l=t.UseUnevaluated()?IB(s,FB(o,c)):IB(s,o);return pV(hV(r,`every`),[fV([i,a],l)])}function hve(e,t,n,r){return TQ(n)?r.every((r,i)=>pB(i,n.items.length)||V$(e,t,n.additionalItems,r)&&t.AddIndex(i)):!0}function gve(e,t,n,r,i,a){return TQ(i)?a.every((a,o)=>{let s=`${n}/additionalItems`,c=`${r}/${o}`;return pB(o,i.items.length)||U$(e,t,s,c,i.additionalItems,a)&&t.AddIndex(o)}):!0}function _ve(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}$`}function EQ(e){let t=[];return aQ(e)&&t.push(...DB(e.patternProperties)),sQ(e)&&t.push(...DB(e.properties).map(_ve)),X(t.length,0)?`(?!)`:`(${t.join(`|`)})`}function vve(e,t,n){return fQ(t)&&sQ(t)&&!aQ(t)&&X(t.additionalProperties,!1)&&X(DB(t.properties).length,t.required.length)}function yve(e,t,n){return $B(hV(pV(hV(`Object`,`getOwnPropertyNames`),[n]),`length`),gV(t.required.length))}function bve(e,t,n,r){let[i,a]=[wQ(),wQ()],o=CQ(new RegExp(EQ(n))),s=z$(e,t,n.additionalProperties,`${r}[${i}]`),c=pV(hV(o,`test`),[i]),l=t.AddKey(i),u=t.UseUnevaluated()?IB(c,FB(s,l)):IB(c,s);return oV(cV(r),gV(0),[i,a],u)}function xve(e,t,n,r){return vve(t,n,r)?yve(t,n,r):bve(e,t,n,r)}function Sve(e,t,n,r){let i=new RegExp(EQ(n));return SB(DB(r),0,(a,o)=>i.test(a)||V$(e,t,n.additionalProperties,r[a])&&t.AddKey(a))}function Cve(e,t,n,r,i,a){let o=new RegExp(EQ(i)),s=[];return CB(DB(a),0,(c,l)=>{let u=`${n}/additionalProperties`,d=`${r}/${c}`,f=new xQ,p=o.test(c)||U$(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 DQ(e,t,n,r,i){let a=yV(`results`,`[]`),o=n.map((e,t)=>yV(`context_${t}`,mV(`CheckContext`,[]))),s=n.map((n,i)=>yV(`condition_${i}`,pV(fV([`context`],B$(e,t,n,r)),[`context_${i}`]))),c=n.map((e,t)=>bV(`condition_${t}`,pV(hV(`results`,`push`),[`context_${t}`]))),l=xV(FB(i,t.Merge(`results`)));return pV(fV([],vV([a,...o,...s,...c,l])),[])}function wve(e,t,n,r){return DQ(e,t,n.allOf,r,$B(hV(`results`,`length`),gV(n.allOf.length)))}function Tve(e,t,n,r){return SV(n.allOf.map(n=>B$(e,t,n,r)))}function Eve(e,t,n,r){return t.UseUnevaluated()?wve(e,t,n,r):Tve(e,t,n,r)}function Dve(e,t,n,r){let i=n.allOf.reduce((t,n)=>{let i=new yQ;return H$(e,i,n,r)?[...t,i]:t},[]);return X(i.length,n.allOf.length)&&t.Merge(i)}function Ove(e,t,n,r,i,a){let o=[],s=i.allOf.reduce((t,i,s)=>{let c=`${n}/allOf/${s}`,l=new xQ,u=W$(e,l,c,r,i,a);return u||o.push(l),u?[...t,l]:t},[]),c=X(s.length,i.allOf.length)&&t.Merge(s);return c||o.forEach(e=>e.GetErrors().forEach(e=>t.AddError(e))),c}function kve(e,t,n,r){return DQ(e,t,n.anyOf,r,eV(hV(`results`,`length`),gV(0)))}function Ave(e,t,n,r){return CV(n.anyOf.map(n=>B$(e,t,n,r)))}function jve(e,t,n,r){return t.UseUnevaluated()?kve(e,t,n,r):Ave(e,t,n,r)}function Mve(e,t,n,r){let i=n.anyOf.reduce((t,n)=>{let i=new yQ;return H$(e,i,n,r)?[...t,i]:t},[]);return fB(i.length,0)&&t.Merge(i)}function Nve(e,t,n,r,i,a){let o=[],s=i.anyOf.reduce((t,i,s)=>{let c=new xQ,l=W$(e,c,`${n}/anyOf/${s}`,r,i,a);return l||o.push(c),l?[...t,c]:t},[]),c=fB(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 Pve(e,t,n,r){return gV(!!n)}function OQ(e,t,n,r){return n}function Fve(e,t,n,r,i,a){return OQ(e,t,i,a)||t.AddError({keyword:`boolean`,schemaPath:n,instancePath:r,params:{}})}function Ive(e,t,n,r){return vB(n.const)?$B(r,gV(n.const)):uV(r,CQ(n.const))}function kQ(e,t,n,r){return vB(n.const)?X(r,n.const):MB(r,n.const)}function Lve(e,t,n,r,i,a){return kQ(e,t,i,a)||t.AddError({keyword:`const`,schemaPath:n,instancePath:r,params:{allowedValue:i.const}})}function AQ(e){return!(ZZ(e)&&X(e.minContains,0))}function Rve(e,t,n,r){if(!AQ(n))return gV(!0);let i=wQ();return FB(LB($B(hV(r,`length`),gV(0))),pV(hV(r,`some`),[fV([i],B$(e,t,n.contains,i))]))}function jQ(e,t,n,r){return AQ(n)?!X(r.length,0)&&r.some(r=>H$(e,t,n.contains,r)):!0}function zve(e,t,n,r,i,a){return jQ(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:1}})}function Bve(e,t,n,r){return IB($B(hV(cV(r),`length`),gV(0)),SV(EB(n.dependencies).map(([n,i])=>{let a=LB(lV(r,gV(n))),o=B$(e,t,i,r);return IB(a,Zz(i)?(e=>SV(e.map(e=>lV(r,gV(e)))))(i):o)})))}function Vve(e,t,n,r){let i=X(DB(r).length,0),a=SB(EB(n.dependencies),0,([n,i])=>!Z(r,n)||(Zz(i)?i.every(e=>Z(r,e)):H$(e,t,i,r)));return i||a}function Hve(e,t,n,r,i,a){let o=X(DB(a).length,0),s=CB(EB(i.dependencies),0,([i,o])=>{let s=`${n}/dependencies/${i}`;return!Z(a,i)||(Zz(o)?o.every(e=>Z(a,e)||t.AddError({keyword:`dependencies`,schemaPath:n,instancePath:r,params:{property:i,dependencies:o}})):W$(e,t,s,r,o,a))});return o||s}function Uve(e,t,n,r){return IB($B(hV(cV(r),`length`),gV(0)),SV(EB(n.dependentRequired).map(([e,t])=>IB(LB(lV(r,gV(e))),SV(t.map(e=>lV(r,gV(e))))))))}function Wve(e,t,n,r){let i=X(DB(r).length,0),a=SB(EB(n.dependentRequired),0,([e,t])=>!Z(r,e)||t.every(e=>Z(r,e)));return i||a}function Gve(e,t,n,r,i,a){let o=X(DB(a).length,0),s=CB(EB(i.dependentRequired),0,([e,i])=>!Z(a,e)||CB(i,0,o=>Z(a,o)||t.AddError({keyword:`dependentRequired`,schemaPath:n,instancePath:r,params:{property:e,dependencies:i}})));return o||s}function Kve(e,t,n,r){return IB($B(hV(cV(r),`length`),gV(0)),SV(EB(n.dependentSchemas).map(([n,i])=>IB(LB(lV(r,gV(n))),B$(e,t,i,r)))))}function qve(e,t,n,r){let i=X(DB(r).length,0),a=SB(EB(n.dependentSchemas),0,([n,i])=>!Z(r,n)||H$(e,t,i,r));return i||a}function Jve(e,t,n,r,i,a){let o=X(DB(a).length,0),s=CB(EB(i.dependentSchemas),0,([i,o])=>{let s=`${n}/dependentSchemas/${i}`;return!Z(a,i)||W$(e,t,s,r,o,a)});return o||s}function Yve(e,t,n,r){return K$(e,t,e.DynamicRef(n)??!1,r)}function Xve(e,t,n,r){let i=e.DynamicRef(n)??!1;return SZ(i)&&H$(e,t,i,r)}function Zve(e,t,n,r,i,a){let o=e.DynamicRef(i)??!1;return SZ(o)&&W$(e,t,`#`,r,o,a)}function Qve(e,t,n,r){return CV(n.enum.map(e=>vB(e)?$B(r,gV(e)):uV(r,CQ(e))))}function MQ(e,t,n,r){return n.enum.some(e=>vB(e)?X(r,e):MB(r,e))}function $ve(e,t,n,r,i,a){return MQ(e,t,i,a)||t.AddError({keyword:`enum`,schemaPath:n,instancePath:r,params:{allowedValues:i.enum}})}function eye(e,t,n,r){return tV(r,gV(n.exclusiveMaximum))}function NQ(e,t,n,r){return pB(r,n.exclusiveMaximum)}function tye(e,t,n,r,i,a){return NQ(e,t,i,a)||t.AddError({keyword:`exclusiveMaximum`,schemaPath:n,instancePath:r,params:{comparison:`<`,limit:i.exclusiveMaximum}})}function nye(e,t,n,r){return eV(r,gV(n.exclusiveMinimum))}function PQ(e,t,n,r){return fB(r,n.exclusiveMinimum)}function rye(e,t,n,r,i,a){return PQ(e,t,i,a)||t.AddError({keyword:`exclusiveMinimum`,schemaPath:n,instancePath:r,params:{comparison:`>`,limit:i.exclusiveMinimum}})}const iye=[0,31,28,31,30,31,30,31,31,30,31,30,31],aye=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function oye(e){return e%4==0&&(e%100!=0||e%400==0)}function FQ(e){let t=aye.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&&oye(n)?29:iye[r])}const sye=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function IQ(e,t=!0){let n=sye.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 LQ(e,t=!0){let n=e.split(/T/i);return n.length===2&&FQ(n[0])&&IQ(n[1],t)}const cye=/^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 RQ(e){return cye.test(e)}const lye=/^(?!.*\.\.)[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 zQ(e){return lye.test(e)}function uye(e,t,n){e=n?Math.floor(e/700):e>>1,e+=Math.floor(e/t);let r=0;for(;e>455;)e=Math.floor(e/35),r+=36;return r+Math.floor(36*e/(e+38))}function dye(e){let t=[],n=128,r=0,i=72,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=36;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?1:c>=i+26?26:c-i;if(n<a)break;s*=36-a,c+=36}let l=t.length+1;i=uye(r-a,l,a===0),n+=Math.floor(r/l),r%=l,t.splice(r,0,n),r++}return globalThis.String.fromCodePoint(...t)}function fye(e){return/\p{Mn}/u.test(String.fromCodePoint(e))}function pye(e){return/\p{Mc}/u.test(String.fromCodePoint(e))}function mye(e){return/\p{Me}/u.test(String.fromCodePoint(e))}function hye(e){return fye(e)||pye(e)||mye(e)}const gye=new Set([1600,2042,12334,12335,12337,12338,12339,12340,12341,12347]),_ye=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 vye(e){return/\p{Script=Greek}/u.test(String.fromCodePoint(e))}function yye(e){return/\p{Script=Hebrew}/u.test(String.fromCodePoint(e))}function bye(e){return/\p{Script=Hiragana}/u.test(String.fromCodePoint(e))}function xye(e){return/\p{Script=Katakana}/u.test(String.fromCodePoint(e))}function Sye(e){return/\p{Script=Han}/u.test(String.fromCodePoint(e))}function Cye(e){return e>=1632&&e<=1641}function wye(e){return e>=1776&&e<=1785}function Tye(e){return _ye.has(e)}function BQ(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||hye(t[0]))return!1;let r=!1,i=!1,a=!1;for(let e=0;e<n;e++){let n=t[e];if(gye.has(n))return!1;(bye(n)||xye(n)||Sye(n))&&(r=!0),Cye(n)&&(i=!0),wye(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||!vye(s))return!1;break;case 1523:case 1524:if(o===void 0||!yye(o))return!1;break;case 8205:if(o===void 0||!Tye(o))return!1;break;case 12539:break}}return!(e.includes(`・`)&&!r||i&&a)}function Eye(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 VQ(e){return e.toLowerCase().startsWith(`xn--`)}function HQ(e){try{return BQ(dye(e.slice(4)))}catch{return!1}}function Dye(e){return e.length===0||e.length>63?!1:VQ(e)?HQ(e):BQ(e)}function Oye(e){return e.length===0||e.length>63?!1:VQ(e)?HQ(e):Eye(e)}function UQ(e){if(e.length===0||e.length>253||e.charCodeAt(e.length-1)===46)return!1;for(let t of e.split(`.`))if(!Oye(t))return!1;return!0}const kye=/^(?!.*\.\.)[\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 WQ(e){return kye.test(e)}function GQ(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(!Dye(e))return!1;return!0}function KQ(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 qQ(e){return KQ(e,0,e.length)}function Aye(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function JQ(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&&Aye(e.charCodeAt(i));)i++,a++;if(a===0)return!1;let s=e.charCodeAt(i);if(s===46){if(!KQ(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 YQ(e){try{return new URL(e,`http://example.com`),!0}catch{return!1}}function XQ(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))?YQ(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:YQ(e)}function ZQ(e){try{return new URL(e),!0}catch{return!1}}const jye=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function QQ(e){return jye.test(e)}const Mye=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function $Q(e){return Mye.test(e)}function e$(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}const Nye=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function t$(e){return Nye.test(e)}const Pye=/^(?!.*[^\x00-\x7F])(?!.*\\)(?:(?:[a-z][a-z0-9+\-.]*:)?(?:\/\/[^\s[\]{}<>^`|]*)?|[^\s[\]{}<>^`|]*)(?:\?[^\s[\]{}<>^`|]*)?(?:#[^\s[\]{}<>^`|]*)?$/i;function n$(e){return Pye.test(e)}const Fye=/^(?:(?:[^\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 r$(e){return Fye.test(e)}function i$(e){return e>=97&&e<=122||e>=65&&e<=90}function a$(e){return i$(e)||e>=48&&e<=57}function o$(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Iye(e){return a$(e)||e===43||e===45||e===46}function s$(e){return a$(e)||e===45||e===46||e===95||e===126}function c$(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 Lye(e){return s$(e)||c$(e)||e===58||e===64}function l$(e){let t=e.length;if(t===0||!i$(e.charCodeAt(0)))return!1;let n=1;for(;n<t;){let t=e.charCodeAt(n);if(t===58)break;if(!Iye(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||!o$(e.charCodeAt(t+1))||!o$(e.charCodeAt(t+2)))return!1;t+=2}else if(!s$(n)&&!c$(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&&!s$(t)&&!c$(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||!o$(e.charCodeAt(n+1))||!o$(e.charCodeAt(n+2)))return!1;n+=2}else if(r>127)return!1;else if(!(Lye(r)||r===47||r===63||r===35))return!1;n++}return!0}const Rye=/^(?: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 u$(e){return Rye.test(e)}const zye=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function d$(e){return zye.test(e)}const f$=new Map;function p$(){f$.clear()}function Bye(){return[...f$.entries()]}function Vye(e,t){f$.set(e,t)}function Hye(e){return f$.has(e)}function Uye(e){return f$.get(e)}function m$(e,t){return f$.get(e)?.(t)??!0}function h$(){p$(),f$.set(`date-time`,LQ),f$.set(`date`,FQ),f$.set(`duration`,RQ),f$.set(`email`,zQ),f$.set(`hostname`,UQ),f$.set(`idn-email`,WQ),f$.set(`idn-hostname`,GQ),f$.set(`ipv4`,qQ),f$.set(`ipv6`,JQ),f$.set(`iri-reference`,XQ),f$.set(`iri`,ZQ),f$.set(`json-pointer-uri-fragment`,QQ),f$.set(`json-pointer`,$Q),f$.set(`regex`,e$),f$.set(`relative-json-pointer`,t$),f$.set(`time`,IQ),f$.set(`uri-reference`,n$),f$.set(`uri-template`,r$),f$.set(`uri`,l$),f$.set(`url`,u$),f$.set(`uuid`,d$)}h$();var Wye=c({Clear:()=>p$,Entries:()=>Bye,Get:()=>Uye,Has:()=>Hye,IsDate:()=>FQ,IsDateTime:()=>LQ,IsDuration:()=>RQ,IsEmail:()=>zQ,IsHostname:()=>UQ,IsIPv4:()=>qQ,IsIPv6:()=>JQ,IsIdnEmail:()=>WQ,IsIdnHostname:()=>GQ,IsIri:()=>ZQ,IsIriReference:()=>XQ,IsJsonPointer:()=>$Q,IsJsonPointerUriFragment:()=>QQ,IsRegex:()=>e$,IsRelativeJsonPointer:()=>t$,IsTime:()=>IQ,IsUri:()=>l$,IsUriReference:()=>n$,IsUriTemplate:()=>r$,IsUrl:()=>u$,IsUuid:()=>d$,Reset:()=>h$,Set:()=>Vye,Test:()=>m$});function Gye(e,t,n,r){return pV(hV(`Format`,`Test`),[gV(n.format),r])}function g$(e,t,n,r){return m$(n.format,r)}function Kye(e,t,n,r,i,a){return g$(e,t,i,a)||t.AddError({keyword:`format`,schemaPath:n,instancePath:r,params:{format:i.format}})}function qye(e,t,n,r){let i=pQ(n)?n.then:!0,a=IZ(n)?n.else:!0;return _V(B$(e,t,n.if,r),B$(e,t,i,r),B$(e,t,a,r))}function Jye(e,t,n,r){let i=pQ(n)?n.then:!0,a=IZ(n)?n.else:!0;return H$(e,t,n.if,r)?H$(e,t,i,r):H$(e,t,a,r)}function Yye(e,t,n,r,i,a){let o=pQ(i)?i.then:!0,s=IZ(i)?i.else:!0,c=new xQ,l=W$(e,c,`${n}/if`,r,i.if,a)?W$(e,c,`${n}/then`,r,o,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`then`}}):W$(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 Xye(e,t,n,r){return SV(n.items.map((n,i)=>{let a=nV(hV(r,`length`),gV(i)),o=z$(e,t,n,`${r}[${i}]`),s=t.AddIndex(gV(i));return IB(a,t.UseUnevaluated()?FB(o,s):o)}))}function Zye(e,t,n,r){return SB(n.items,0,(n,i)=>mB(r.length,i)||V$(e,t,n,r[i])&&t.AddIndex(i))}function Qye(e,t,n,r,i,a){return CB(i.items,0,(i,o)=>{let s=`${n}/items/${o}`,c=`${r}/${o}`;return mB(a.length,o)||U$(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function $ye(e,t,n,r){let i=oQ(n)?n.prefixItems.length:0,a=z$(e,t,n.items,`element`),o=t.AddIndex(`index`),s=t.UseUnevaluated()?FB(a,o):a;return oV(r,gV(i),[`element`,`index`],s)}function ebe(e,t,n,r){return SB(r,oQ(n)?n.prefixItems.length:0,(r,i)=>V$(e,t,n.items,r)&&t.AddIndex(i))}function tbe(e,t,n,r,i,a){return CB(a,oQ(i)?i.prefixItems.length:0,(a,o)=>U$(e,t,`${n}/items`,`${r}/${o}`,i.items,a)&&t.AddIndex(o))}function nbe(e,t,n,r){return WZ(n)?Xye(e,t,n,r):$ye(e,t,n,r)}function rbe(e,t,n,r){return WZ(n)?Zye(e,t,n,r):ebe(e,t,n,r)}function ibe(e,t,n,r,i,a){return WZ(i)?Qye(e,t,n,r,i,a):tbe(e,t,n,r,i,a)}function _$(e){return kZ(e)}function abe(e,t,n,r){if(!_$(n))return gV(!0);let[i,a]=[wQ(),wQ()];return nV(pV(hV(r,`reduce`),[fV([i,a],_V(B$(e,t,n.contains,a),wV(i),i)),gV(0)]),gV(n.maxContains))}function v$(e,t,n,r){return _$(n)?mB(r.reduce((r,i)=>H$(e,t,n.contains,i)?++r:r,0),n.maxContains):!0}function obe(e,t,n,r,i,a){let o=ZZ(i)?i.minContains:1;return v$(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:o,maxContains:i.maxContains}})}function sbe(e,t,n,r){return nV(r,gV(n.maximum))}function y$(e,t,n,r){return mB(r,n.maximum)}function cbe(e,t,n,r,i,a){return y$(e,t,i,a)||t.AddError({keyword:`maximum`,schemaPath:n,instancePath:r,params:{comparison:`<=`,limit:i.maximum}})}function lbe(e,t,n,r){return nV(hV(r,`length`),gV(n.maxItems))}function b$(e,t,n,r){return mB(r.length,n.maxItems)}function ube(e,t,n,r,i,a){return b$(e,t,i,a)||t.AddError({keyword:`maxItems`,schemaPath:n,instancePath:r,params:{limit:i.maxItems}})}function dbe(e,t,n,r){return aV(r,gV(n.maxLength))}function x$(e,t,n,r){return bB(r,n.maxLength)}function fbe(e,t,n,r,i,a){return x$(e,t,i,a)||t.AddError({keyword:`maxLength`,schemaPath:n,instancePath:r,params:{limit:i.maxLength}})}function pbe(e,t,n,r){return nV(hV(cV(r),`length`),gV(n.maxProperties))}function S$(e,t,n,r){return mB(DB(r).length,n.maxProperties)}function mbe(e,t,n,r,i,a){return S$(e,t,i,a)||t.AddError({keyword:`maxProperties`,schemaPath:n,instancePath:r,params:{limit:i.maxProperties}})}function C$(e){return kZ(e)}function hbe(e,t,n,r){if(!C$(n))return gV(!0);let[i,a]=[wQ(),wQ()];return rV(pV(hV(r,`reduce`),[fV([i,a],_V(B$(e,t,n.contains,a),wV(i),i)),gV(0)]),gV(n.minContains))}function w$(e,t,n,r){return C$(n)?hB(r.reduce((r,i)=>H$(e,t,n.contains,i)?++r:r,0),n.minContains):!0}function gbe(e,t,n,r,i,a){return w$(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:i.minContains}})}function _be(e,t,n,r){return rV(r,gV(n.minimum))}function T$(e,t,n,r){return hB(r,n.minimum)}function vbe(e,t,n,r,i,a){return T$(e,t,i,a)||t.AddError({keyword:`minimum`,schemaPath:n,instancePath:r,params:{comparison:`>=`,limit:i.minimum}})}function ybe(e,t,n,r){return rV(hV(r,`length`),gV(n.minItems))}function E$(e,t,n,r){return hB(r.length,n.minItems)}function bbe(e,t,n,r,i,a){return E$(e,t,i,a)||t.AddError({keyword:`minItems`,schemaPath:n,instancePath:r,params:{limit:i.minItems}})}function xbe(e,t,n,r){return iV(r,gV(n.minLength))}function D$(e,t,n,r){return xB(r,n.minLength)}function Sbe(e,t,n,r,i,a){return D$(e,t,i,a)||t.AddError({keyword:`minLength`,schemaPath:n,instancePath:r,params:{limit:i.minLength}})}function Cbe(e,t,n,r){return rV(hV(cV(r),`length`),gV(n.minProperties))}function O$(e,t,n,r){return hB(DB(r).length,n.minProperties)}function wbe(e,t,n,r,i,a){return O$(e,t,i,a)||t.AddError({keyword:`minProperties`,schemaPath:n,instancePath:r,params:{limit:i.minProperties}})}function Tbe(e,t,n,r){return TV(r,gV(n.multipleOf))}function k$(e,t,n,r){return gB(r,n.multipleOf)}function Ebe(e,t,n,r,i,a){return k$(e,t,i,a)||t.AddError({keyword:`multipleOf`,schemaPath:n,instancePath:r,params:{multipleOf:i.multipleOf}})}function Dbe(e,t,n,r){return DQ(e,t,[n.not],r,LB($B(hV(`results`,`length`),gV(1))))}function Obe(e,t,n,r){return LB(B$(e,t,n.not,r))}function kbe(e,t,n,r){return t.UseUnevaluated()?Dbe(e,t,n,r):Obe(e,t,n,r)}function A$(e,t,n,r){let i=new yQ;return!H$(e,i,n.not,r)&&t.Merge([i])}function Abe(e,t,n,r,i,a){return A$(e,t,i,a)||t.AddError({keyword:`not`,schemaPath:n,instancePath:r,params:{}})}function jbe(e,t,n,r){return DQ(e,t,n.oneOf,r,$B(hV(`results`,`length`),gV(1)))}function Mbe(e,t,n,r){return $B(pV(hV(dV(n.oneOf.map(n=>B$(e,t,n,r))),`reduce`),[fV([`count`,`result`],_V($B(`result`,gV(!0)),wV(`count`),`count`)),gV(0)]),gV(1))}function Nbe(e,t,n,r){return t.UseUnevaluated()?jbe(e,t,n,r):Mbe(e,t,n,r)}function Pbe(e,t,n,r){let i=n.oneOf.reduce((t,n)=>{let i=new yQ;return H$(e,i,n,r)?[...t,i]:t},[]);return X(i.length,1)&&t.Merge(i)}function Fbe(e,t,n,r,i,a){let o=[],s=[],c=i.oneOf.reduce((t,i,c)=>{let l=new xQ,u=W$(e,l,`${n}/oneOf/${c}`,r,i,a);return u&&s.push(c),u||o.push(l),u?[...t,l]:t},[]),l=X(c.length,1)&&t.Merge(c);return!l&&X(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 Ibe(e,t,n,r){return pV(hV(CQ(lB(n.pattern)?new RegExp(n.pattern,`u`):n.pattern),`test`),[r])}function j$(e,t,n,r){return(lB(n.pattern)?new RegExp(n.pattern,`u`):n.pattern).test(r)}function Lbe(e,t,n,r,i,a){return j$(e,t,i,a)||t.AddError({keyword:`pattern`,schemaPath:n,instancePath:r,params:{pattern:i.pattern}})}function Rbe(e,t,n,r){return SV(EB(n.patternProperties).map(([n,i])=>{let[a,o]=[wQ(),wQ()],s=LB(pV(hV(CQ(new RegExp(n,`u`)),`test`),[a])),c=z$(e,t,i,o),l=t.AddKey(a),u=t.UseUnevaluated()?IB(s,FB(c,l)):IB(s,c);return oV(sV(r),gV(0),[`[${a}, ${o}]`,`_`],u)}))}function zbe(e,t,n,r){return SB(EB(n.patternProperties),0,([n,i])=>{let a=new RegExp(n,`u`);return SB(EB(r),0,([n,r])=>!a.test(n)||V$(e,t,i,r)&&t.AddKey(n))})}function Bbe(e,t,n,r,i,a){return CB(EB(i.patternProperties),0,([i,o])=>{let s=`${n}/patternProperties/${i}`,c=new RegExp(i,`u`);return CB(EB(a),0,([n,i])=>{let a=`${r}/${n}`;return!c.test(n)||U$(e,t,s,a,o,i)&&t.AddKey(n)})})}function Vbe(e,t,n,r){return SV(n.prefixItems.map((n,i)=>{let a=nV(hV(r,`length`),gV(i)),o=z$(e,t,n,`${r}[${i}]`),s=t.AddIndex(gV(i));return IB(a,t.UseUnevaluated()?FB(o,s):o)}))}function Hbe(e,t,n,r){return X(r.length,0)||SB(n.prefixItems,0,(n,i)=>mB(r.length,i)||V$(e,t,n,r[i])&&t.AddIndex(i))}function Ube(e,t,n,r,i,a){return X(a.length,0)||CB(i.prefixItems,0,(i,o)=>{let s=`${n}/prefixItems/${o}`,c=`${r}/${o}`;return mB(a.length,o)||U$(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function M$(e,t){return e.includes(t)||UV().exactOptionalPropertyTypes}function Wbe(e,t){return XB(hV(e,t))}function N$(e,t){return dB(e[t])}function Gbe(e,t,n,r){let i=fQ(n)?n.required:[];return SV(EB(n.properties).map(([n,a])=>{let o=LB(lV(r,gV(n))),s=z$(e,t,a,hV(r,n)),c=t.AddKey(gV(n)),l=t.UseUnevaluated()?FB(s,c):s,u=i.includes(n)?l:IB(o,l);return M$(i,n)?u:IB(Wbe(r,n),u)}))}function Kbe(e,t,n,r){let i=fQ(n)?n.required:[];return SB(EB(n.properties),0,([n,a])=>{let o=!Z(r,n)||V$(e,t,a,r[n])&&t.AddKey(n);return M$(i,n)?o:N$(r,n)||o})}function qbe(e,t,n,r,i,a){let o=fQ(i)?i.required:[];return CB(EB(i.properties),0,([i,s])=>{let c=`${n}/properties/${i}`,l=`${r}/${i}`,u=()=>!Z(a,i)||U$(e,t,c,l,s,a[i])&&t.AddKey(i);return M$(o,i)?u():N$(a,i)||u()})}function Jbe(e,t,n,r){let[i,a]=[wQ(),wQ()];return oV(cV(r),gV(0),[i,a],B$(e,t,n.propertyNames,i))}function Ybe(e,t,n,r){return SB(DB(r),0,(r,i)=>H$(e,t,n.propertyNames,r))}function Xbe(e,t,n,r,i,a){let o=[];return CB(DB(a),0,(t,a)=>{let s=`${r}/${t}`,c=`${n}/propertyNames`,l=W$(e,new xQ,c,s,i.propertyNames,t);return l||o.push(t),l})||t.AddError({keyword:`propertyNames`,schemaPath:n,instancePath:r,params:{propertyNames:o}})}function Zbe(e,t,n,r){return K$(e,t,e.RecursiveRef(n)??!1,r)}function Qbe(e,t,n,r){let i=e.RecursiveRef(n)??!1;return SZ(i)&&H$(e,t,i,r)}function $be(e,t,n,r,i,a){let o=e.RecursiveRef(i)??!1;return SZ(o)&&W$(e,t,`#`,r,o,a)}function exe(e,t,n,r){let i=fV([`context`,`value`],K$(e,t,n,`value`));return pV(fV([`context`,`value`],vV([yV(`nextContext`,mV(`CheckContext`,[])),yV(`result`,pV(i,[`nextContext`,`value`])),bV(`result`,t.Merge(`[nextContext]`)),xV(`result`)])),[`context`,r])}function txe(e,t,n,r){return K$(e,t,n,r)}function nxe(e,t,n,r){let i=e.Ref(n)??!1;return t.UseUnevaluated()?exe(e,t,i,r):txe(e,t,i,r)}function rxe(e,t,n,r){let i=e.Ref(n)??!1,a=new yQ,o=SZ(i)&&H$(e,a,i,r);return o&&t.Merge([a]),o}function ixe(e,t,n,r,i,a){let o=e.Ref(i)??!1,s=new xQ,c=SZ(o)&&W$(e,s,`#`,r,o,a);return c&&t.Merge([s]),c||s.GetErrors().forEach(e=>t.AddError(e)),c}function axe(e,t,n,r){return SV(n.required.map(e=>lV(r,gV(e))))}function oxe(e,t,n,r){return SB(n.required,0,e=>Z(r,e))}function sxe(e,t,n,r,i,a){let o=[];return CB(i.required,0,e=>{let t=Z(a,e);return t||o.push(e),t})||t.AddError({keyword:`required`,schemaPath:n,instancePath:r,params:{requiredProperties:o}})}function P$(e,t,n,r){return X(n,`object`)?KB(r):X(n,`array`)?RB(r):X(n,`boolean`)?VB(r):X(n,`integer`)?HB(r):X(n,`number`)?GB(r):X(n,`null`)?WB(r):X(n,`string`)?JB(r):X(n,`asyncIterator`)?zB(r):X(n,`bigint`)?BB(r):X(n,`constructor`)?QB(r):X(n,`function`)?ZB(r):X(n,`iterator`)?UB(r):X(n,`symbol`)?YB(r):X(n,`undefined`)||X(n,`void`)?XB(r):gV(!0)}function F$(e,t,n,r,i){return X(n,`object`)?sB(i):X(n,`array`)?Zz(i):X(n,`boolean`)?eB(i):X(n,`integer`)?rB(i):X(n,`number`)?oB(i):X(n,`null`)?aB(i):X(n,`string`)?lB(i):X(n,`asyncIterator`)?Qz(i):X(n,`bigint`)?$z(i):X(n,`constructor`)?tB(i):X(n,`function`)?nB(i):X(n,`iterator`)?iB(i):X(n,`symbol`)?uB(i):X(n,`undefined`)||X(n,`void`)?dB(i):!0}function cxe(e,t,n,r){return CV(n.map(n=>P$(e,t,n,r)))}function I$(e,t,n,r,i){return n.some(n=>F$(e,t,n,r,i))}function lxe(e,t,n,r){return Zz(n.type)?cxe(e,t,n.type,r):P$(e,t,n.type,r)}function uxe(e,t,n,r){return Zz(n.type)?I$(e,t,n.type,n,r):F$(e,t,n.type,n,r)}function dxe(e,t,n,r,i,a){return(Zz(i.type)?I$(e,t,i.type,i,a):F$(e,t,i.type,i,a))||t.AddError({keyword:`type`,schemaPath:n,instancePath:r,params:{type:i.type}})}function fxe(e,t,n,r){let[i,a]=[wQ(),wQ()],o=pV(hV(`context`,`GetIndices`),[]),s=pV(hV(`indices`,`has`),[i]),c=B$(e,t,n.unevaluatedItems,a),l=pV(hV(`context`,`AddIndex`),[i]),u=oV(r,gV(0),[a,i],FB(IB(s,c),l));return pV(fV([`context`],vV([yV(`indices`,o),xV(u)])),[`context`])}function pxe(e,t,n,r){let i=t.GetIndices();return SB(r,0,(r,a)=>(i.has(a)||H$(e,t,n.unevaluatedItems,r))&&t.AddIndex(a))}function mxe(e,t,n,r,i,a){let o=t.GetIndices(),s=[];return CB(a,0,(a,c)=>{let l=new xQ,u=(o.has(c)||W$(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 hxe(e,t,n,r){let[i,a]=[wQ(),wQ()],o=pV(hV(`context`,`GetKeys`),[]),s=pV(hV(`keys`,`has`),[i]),c=pV(hV(`context`,`AddKey`),[i]),l=B$(e,t,n.unevaluatedProperties,a),u=oV(sV(r),gV(0),[`[${i}, ${a}]`,`_`],IB(s,FB(l,c)));return pV(fV([`context`],vV([yV(`keys`,o),xV(u)])),[`context`])}function gxe(e,t,n,r){let i=t.GetKeys();return SB(EB(r),0,([r,a])=>i.has(r)||H$(e,t,n.unevaluatedProperties,a)&&t.AddKey(r))}function _xe(e,t,n,r,i,a){let o=t.GetKeys(),s=[];return CB(EB(a),0,([a,c])=>{let l=new xQ,u=o.has(a)||W$(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 L$(e){return!X(e.uniqueItems,!1)}function vxe(e,t,n,r){return L$(n)?$B(hV(mV(`Set`,[pV(hV(r,`map`),[hV(`Hashing`,`Hash`)])]),`size`),hV(r,`length`)):gV(!0)}function yxe(e,t,n,r){if(!L$(n))return!0;let i=new Set(r.map(BU)).size,a=r.length;return X(i,a)}function bxe(e,t,n,r,i,a){if(!L$(i))return!0;let o=new Set,s=a.reduce((e,t,n)=>{let r=BU(t);return o.has(r)?[...e,n]:(o.add(r),e)},[]);return X(s.length,0)||t.AddError({keyword:`uniqueItems`,schemaPath:n,instancePath:r,params:{duplicateItems:s}})}function R$(e,t){return mQ(e)&&(Zz(e.type)&&e.type.includes(t)||X(e.type,t))}function xxe(e){return R$(e,`object`)}function Sxe(e){return bZ(e)&&(wZ(e)||jZ(e)||MZ(e)||NZ(e)||sQ(e)||aQ(e)||cQ(e)||eQ(e)||YZ(e)||fQ(e)||_Q(e))}function Cxe(e){return R$(e,`array`)}function wxe(e){return bZ(e)&&(CZ(e)||UZ(e)||kZ(e)||KZ(e)||qZ(e)||ZZ(e)||QZ(e)||oQ(e)||gQ(e)||hQ(e))}function Txe(e){return R$(e,`string`)}function Exe(e){return bZ(e)&&($Z(e)||JZ(e)||BZ(e)||iQ(e))}function Dxe(e){return R$(e,`number`)||R$(e,`bigint`)}function Oxe(e){return bZ(e)&&(XZ(e)||GZ(e)||RZ(e)||zZ(e)||tQ(e))}function z$(e,t,n,r){return t.UseUnevaluated()?FB(FB(t.Push(),B$(e,t,n,r)),t.Pop()):B$(e,t,n,r)}function B$(e,t,n,r){e.Push(n);let i=[];if(xZ(n))return Pve(e,t,n,r);if(mQ(n)&&i.push(lxe(e,t,n,r)),Sxe(n)){let a=[];fQ(n)&&a.push(axe(e,t,n,r)),wZ(n)&&a.push(xve(e,t,n,r)),jZ(n)&&a.push(Bve(e,t,n,r)),MZ(n)&&a.push(Uve(e,t,n,r)),NZ(n)&&a.push(Kve(e,t,n,r)),aQ(n)&&a.push(Rbe(e,t,n,r)),sQ(n)&&a.push(Gbe(e,t,n,r)),cQ(n)&&a.push(Jbe(e,t,n,r)),eQ(n)&&a.push(Cbe(e,t,n,r)),YZ(n)&&a.push(pbe(e,t,n,r));let o=SV(a),s=IB(LB(KB(r)),o);i.push(xxe(n)?o:s)}if(wxe(n)){let a=[];CZ(n)&&a.push(mve(e,t,n,r)),kZ(n)&&a.push(Rve(e,t,n,r)),UZ(n)&&a.push(nbe(e,t,n,r)),KZ(n)&&a.push(abe(e,t,n,r)),qZ(n)&&a.push(lbe(e,t,n,r)),ZZ(n)&&a.push(hbe(e,t,n,r)),QZ(n)&&a.push(ybe(e,t,n,r)),oQ(n)&&a.push(Vbe(e,t,n,r)),hQ(n)&&a.push(vxe(e,t,n,r));let o=SV(a),s=IB(LB(RB(r)),o);i.push(Cxe(n)?o:s)}if(Exe(n)){let a=[];JZ(n)&&a.push(dbe(e,t,n,r)),$Z(n)&&a.push(xbe(e,t,n,r)),BZ(n)&&a.push(Gye(e,t,n,r)),iQ(n)&&a.push(Ibe(e,t,n,r));let o=SV(a),s=IB(LB(JB(r)),o);i.push(Txe(n)?o:s)}if(Oxe(n)){let a=[];RZ(n)&&a.push(eye(e,t,n,r)),zZ(n)&&a.push(nye(e,t,n,r)),GZ(n)&&a.push(sbe(e,t,n,r)),XZ(n)&&a.push(_be(e,t,n,r)),tQ(n)&&a.push(Tbe(e,t,n,r));let o=SV(a),s=IB(LB(IB(GB(r),BB(r))),o);i.push(Dxe(n)?o:s)}dQ(n)&&i.push(nxe(e,t,n,r)),uQ(n)&&i.push(Zbe(e,t,n,r)),FZ(n)&&i.push(Yve(e,t,n,r)),vZ(n)&&i.push(sve(e,t,n,r)),OZ(n)&&i.push(Ive(e,t,n,r)),LZ(n)&&i.push(Qve(e,t,n,r)),HZ(n)&&i.push(qye(e,t,n,r)),nQ(n)&&i.push(kbe(e,t,n,r)),TZ(n)&&i.push(Eve(e,t,n,r)),DZ(n)&&i.push(jve(e,t,n,r)),rQ(n)&&i.push(Nbe(e,t,n,r)),gQ(n)&&i.push(IB(LB(RB(r)),fxe(e,t,n,r))),_Q(n)&&i.push(IB(LB(qB(r)),hxe(e,t,n,r))),yZ(n)&&i.push(uve(e,t,n,r));let a=SV(i);return e.Pop(n),a}function V$(e,t,n,r){return t.Push()&&H$(e,t,n,r)&&t.Pop()}function H$(e,t,n,r){e.Push(n);let i=xZ(n)?OQ(e,t,n,r):(!mQ(n)||uxe(e,t,n,r))&&(!(cB(r)&&!Zz(r))||(!fQ(n)||oxe(e,t,n,r))&&(!wZ(n)||Sve(e,t,n,r))&&(!jZ(n)||Vve(e,t,n,r))&&(!MZ(n)||Wve(e,t,n,r))&&(!NZ(n)||qve(e,t,n,r))&&(!aQ(n)||zbe(e,t,n,r))&&(!sQ(n)||Kbe(e,t,n,r))&&(!cQ(n)||Ybe(e,t,n,r))&&(!eQ(n)||O$(e,t,n,r))&&(!YZ(n)||S$(e,t,n,r)))&&(!Zz(r)||(!CZ(n)||hve(e,t,n,r))&&(!kZ(n)||jQ(e,t,n,r))&&(!UZ(n)||rbe(e,t,n,r))&&(!KZ(n)||v$(e,t,n,r))&&(!qZ(n)||b$(e,t,n,r))&&(!ZZ(n)||w$(e,t,n,r))&&(!QZ(n)||E$(e,t,n,r))&&(!oQ(n)||Hbe(e,t,n,r))&&(!hQ(n)||yxe(e,t,n,r)))&&(!lB(r)||(!JZ(n)||x$(e,t,n,r))&&(!$Z(n)||D$(e,t,n,r))&&(!BZ(n)||g$(e,t,n,r))&&(!iQ(n)||j$(e,t,n,r)))&&(!(oB(r)||$z(r))||(!RZ(n)||NQ(e,t,n,r))&&(!zZ(n)||PQ(e,t,n,r))&&(!GZ(n)||y$(e,t,n,r))&&(!XZ(n)||T$(e,t,n,r))&&(!tQ(n)||k$(e,t,n,r)))&&(!dQ(n)||rxe(e,t,n,r))&&(!uQ(n)||Qbe(e,t,n,r))&&(!FZ(n)||Xve(e,t,n,r))&&(!vZ(n)||cve(e,t,n,r))&&(!OZ(n)||kQ(e,t,n,r))&&(!LZ(n)||MQ(e,t,n,r))&&(!HZ(n)||Jye(e,t,n,r))&&(!nQ(n)||A$(e,t,n,r))&&(!TZ(n)||Dve(e,t,n,r))&&(!DZ(n)||Mve(e,t,n,r))&&(!rQ(n)||Pbe(e,t,n,r))&&(!gQ(n)||!Zz(r)||pxe(e,t,n,r))&&(!_Q(n)||!cB(r)||gxe(e,t,n,r))&&(!yZ(n)||dve(e,t,n,r));return e.Pop(n),i}function U$(e,t,n,r,i,a){return t.Push()&&W$(e,t,n,r,i,a)&&t.Pop()}function W$(e,t,n,r,i,a){e.Push(i);let o=xZ(i)?Fve(e,t,n,r,i,a):!!((!mQ(i)||dxe(e,t,n,r,i,a))&+(!(cB(a)&&!Zz(a))||!!((!fQ(i)||sxe(e,t,n,r,i,a))&+(!wZ(i)||Cve(e,t,n,r,i,a))&(!jZ(i)||Hve(e,t,n,r,i,a))&(!MZ(i)||Gve(e,t,n,r,i,a))&(!NZ(i)||Jve(e,t,n,r,i,a))&(!aQ(i)||Bbe(e,t,n,r,i,a))&(!sQ(i)||qbe(e,t,n,r,i,a))&(!cQ(i)||Xbe(e,t,n,r,i,a))&(!eQ(i)||wbe(e,t,n,r,i,a))&(!YZ(i)||mbe(e,t,n,r,i,a))))&(!Zz(a)||!!((!CZ(i)||gve(e,t,n,r,i,a))&+(!kZ(i)||zve(e,t,n,r,i,a))&(!UZ(i)||ibe(e,t,n,r,i,a))&(!KZ(i)||obe(e,t,n,r,i,a))&(!qZ(i)||ube(e,t,n,r,i,a))&(!ZZ(i)||gbe(e,t,n,r,i,a))&(!QZ(i)||bbe(e,t,n,r,i,a))&(!oQ(i)||Ube(e,t,n,r,i,a))&(!hQ(i)||bxe(e,t,n,r,i,a))))&(!lB(a)||!!((!JZ(i)||fbe(e,t,n,r,i,a))&+(!$Z(i)||Sbe(e,t,n,r,i,a))&(!BZ(i)||Kye(e,t,n,r,i,a))&(!iQ(i)||Lbe(e,t,n,r,i,a))))&(!(oB(a)||$z(a))||!!((!RZ(i)||tye(e,t,n,r,i,a))&+(!zZ(i)||rye(e,t,n,r,i,a))&(!GZ(i)||cbe(e,t,n,r,i,a))&(!XZ(i)||vbe(e,t,n,r,i,a))&(!tQ(i)||Ebe(e,t,n,r,i,a))))&(!dQ(i)||ixe(e,t,n,r,i,a))&(!uQ(i)||$be(e,t,n,r,i,a))&(!FZ(i)||Zve(e,t,n,r,i,a))&(!vZ(i)||lve(e,t,n,r,i,a))&(!OZ(i)||Lve(e,t,n,r,i,a))&(!LZ(i)||$ve(e,t,n,r,i,a))&(!HZ(i)||Yye(e,t,n,r,i,a))&(!nQ(i)||Abe(e,t,n,r,i,a))&(!TZ(i)||Ove(e,t,n,r,i,a))&(!DZ(i)||Nve(e,t,n,r,i,a))&(!rQ(i)||Fbe(e,t,n,r,i,a))&(!gQ(i)||!Zz(a)||mxe(e,t,n,r,i,a))&(!_Q(i)||!cB(a)||_xe(e,t,n,r,i,a)))&&(!yZ(i)||fve(e,t,n,r,i,a));return e.Pop(i),o}const G$=new Map;function kxe(e,t,n,r){return e.UseUnevaluated()?pV(`check_${n}`,[`context`,r]):pV(`check_${n}`,[r])}function Axe(e,t,n,r){let i=B$(e,t,n,`value`);return t.UseUnevaluated()?yV(`check_${r}`,fV([`context`,`value`],i)):yV(`check_${r}`,fV([`value`],i))}function jxe(){G$.clear()}function Mxe(){return[...G$.values()]}function K$(e,t,n,r){let i=bZ(n)?BU({__baseURL:e.BaseURL().href,...n}):BU(n),a=kxe(t,n,i,r);return G$.has(i)?a:(G$.set(i,``),G$.set(i,Axe(e,t,n,i)),a)}function Nxe(e,t){return cB(t)?t[e]:void 0}function Pxe(e,t){return e.reduce((e,t)=>Nxe(t,e),t)}function Fxe(e){if(X(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 Ixe(e,t){return Pxe(Fxe(t),e)}function Lxe(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(X(r.pathname,i.pathname))return n.hash.startsWith(`#`)?q$(e,t,n):e}function Rxe(e,t,n){let r=new URL(`#${e.$anchor}`,t.href),i=new URL(n.href,t.href);return X(r.href,i.href)?e:void 0}function zxe(e,t,n){let r=new URL(`#${e.$dynamicAnchor}`,t.href),i=new URL(n.href,t.href);return X(r.href,i.href)?e:void 0}function q$(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 Ixe(e,r)}function Bxe(e,t,n){if(VZ(e)){let r=Lxe(e,t,n);if(!dB(r))return r}if(EZ(e)){let r=Rxe(e,t,n);if(!dB(r))return r}if(PZ(e)){let r=zxe(e,t,n);if(!dB(r))return r}return q$(e,t,n)}function Vxe(e,t,n){return e.reduce((e,r)=>{let i=J$(r,t,n);return dB(i)?e:i},void 0)}function Hxe(e,t,n){return DB(e).reduce((r,i)=>{let a=J$(e[i],t,n);return dB(a)?r:a},void 0)}function J$(e,t,n){let r=bZ(e)&&VZ(e)?new URL(e.$id,t.href):t;if(bZ(e)){let t=Bxe(e,r,n);if(!dB(t))return t}if(Zz(e))return Vxe(e,r,n);if(cB(e))return Hxe(e,r,n)}function Y$(e,t){let n=new URL(`http://unknown/`),r=VZ(e)?new URL(e.$id,n.href):n;return J$(e,r,new URL(t,r.href))}function Uxe(e,t,n,r){let i=n.$dynamicRef.startsWith(`#`)?Y$(t,n.$dynamicRef):Y$(e,n.$dynamicRef);if(!dB(i))return!bZ(i)||!PZ(i)||new URL(n.$dynamicRef,`http://unknown/`).hash.startsWith(`#/`)?i:r.find(e=>e.$dynamicAnchor===i.$dynamicAnchor)??i}var X$=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)},Z$,Q$,$$,e1,t1,n1=class{constructor(e,t){Z$.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){bZ(e)&&(VZ(e)&&(this.ids.push(e),X$(this,Z$,`m`,Q$).call(this,e)),EZ(e)&&this.anchors.push(e),lQ(e)&&this.recursiveAnchors.push(e),PZ(e)&&this.dynamicAnchors.push(e))}Pop(e){bZ(e)&&(VZ(e)&&(this.ids.pop(),X$(this,Z$,`m`,$$).call(this,e)),EZ(e)&&this.anchors.pop(),lQ(e)&&this.recursiveAnchors.pop(),PZ(e)&&this.dynamicAnchors.pop())}Ref(e){return X$(this,Z$,`m`,e1).call(this,e)??X$(this,Z$,`m`,t1).call(this,e)}RecursiveRef(e){return lQ(this.Base())?Y$(this.recursiveAnchors[0],e.$recursiveRef):Y$(this.Base(),e.$recursiveRef)}DynamicRef(e){let t=this.schema;return Uxe(t,this.Base(),e,this.dynamicAnchors)}};Z$=new WeakSet,Q$=function e(t,n=!0){if(!bZ(t))return;let r=t;if(!(!n&&VZ(r))){!n&&PZ(r)&&this.dynamicAnchors.push(r);for(let t of DB(r))X$(this,Z$,`m`,e).call(this,r[t],!1)}},$$=function e(t,n=!0){if(!bZ(t))return;let r=t;if(!(!n&&VZ(r))){!n&&PZ(r)&&this.dynamicAnchors.pop();for(let t of DB(r))X$(this,Z$,`m`,e).call(this,r[t],!1)}},e1=function(e){return Z(this.context,e.$ref)?this.context[e.$ref]:void 0},t1=function(e){let t=this.schema;return e.$ref.startsWith(`#`)?Y$(this.Base(),e.$ref):Y$(t,e.$ref)};function Wxe(e){return`${e.Functions().join(`;
3383
3383
  `)}; return (value) => { ${(e.UseUnevaluated()?[`const context = new CheckContext({}, {})`,`return ${e.Call()}`]:[`return ${e.Call()}`]).join(`; `)} }`}function Gxe(e,t){return lU(`CheckContext`,`Guard`,`Format`,`Hashing`,e.External().identifier,t)(yQ,Xz,Wye,dU,e.External().variables)}function Kxe(e){let t=new n1(e.Context(),e.Schema()),n=new yQ;return r=>H$(t,n,e.Schema(),r)}function qxe(e,t){return cU()?Gxe(e,t):Kxe(e)}var Jxe=class{constructor(e,t,n,r,i,a){this.context=e,this.schema=t,this.external=n,this.functions=r,this.call=i,this.useUnevaluated=a}Context(){return this.context}Schema(){return this.schema}UseUnevaluated(){return this.useUnevaluated}External(){return this.external}Functions(){return this.functions}Call(){return this.call}Evaluate(){let e=Wxe(this),t=qxe(this,e);return{IsAccelerated:cU(),Code:e,Check:t}}};function Yxe(...e){let[t,n]=eU(e,{2:(e,t)=>[e,t],1:e=>[{},e]});ave(),jxe();let r=new n1(t,n),i=new ive(rve(t,n)),a=K$(r,i,n,`value`),o=Mxe();return new Jxe(t,n,ove(),o,a,i.UseUnevaluated())}function Xxe(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),i=UV(),a=UU(),o=[];return[W$(new n1(t,n),new bQ(e=>{if(!hB(o.length,i.maxErrors))return o.push({...e,message:a(e)})}),`#`,``,n,r),o]}function Zxe(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return H$(new n1(t,n),new yQ,n,r)}function r1(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return Zxe(t,n,r)}function i1(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),[i,a]=Xxe(t,n,r);return a}var a1=class extends Error{constructor(e,t,n){super(e),Object.defineProperty(this,`cause`,{value:{source:e,errors:n,value:t},writable:!1,configurable:!1,enumerable:!1})}};function Qxe(e,t,n){return Zz(n)?n.map(n=>u1(e,t.items,n)):n}function $xe(e,t,n){return t.Clean(n)}function eSe(e,t,n){return u1({...e,...t.$defs},MH(t.$ref),n)}function tSe(e,t){let n=Z(t,`unevaluatedProperties`)?{additionalProperties:t.unevaluatedProperties}:{},r=hX(pX(e,t));return WH(r)?Ege(r,n):r}function nSe(e,t,n){return u1(e,tSe(e,t),n)}function o1(e){return Z(e,`additionalProperties`)?e.additionalProperties:void 0}function rSe(e,t,n){if(!cB(n)||Zz(n))return n;let r=o1(t);for(let i of DB(n)){if(Z(t.properties,i)){n[i]=u1(e,t.properties[i],n[i]);continue}if(eB(r)&&X(r,!0)||XV(r)&&r1(e,r,n[i])){n[i]=u1(e,r,n[i]);continue}delete n[i]}return n}function iSe(e,t,n){if(!cB(n))return n;let r=o1(t),[i,a]=[new RegExp(PG(t)),IG(t)];for(let t of DB(n)){if(i.test(t)){n[t]=u1(e,a,n[t]);continue}if(eB(r)&&X(r,!0)||XV(r)&&r1(e,r,n[t])){n[t]=u1(e,r,n[t]);continue}delete n[t]}return n}function aSe(e,t,n){return Z(e,t.$ref)?u1(e,e[t.$ref],n):n}function oSe(e,t,n){if(!Zz(n))return n;let r=Math.min(n.length,t.items.length);for(let i=0;i<r;i++)n[i]=u1(e,t.items[i],n[i]);return fB(n.length,r)?n.slice(0,r):n}function sSe(e){return e}function cSe(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=s1(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=s1(e[n]);return t}function lSe(e){return _B(e)?sSe(e):cSe(e)}function uSe(e){return e.map(e=>s1(e))}function dSe(e){return e.slice()}function fSe(e){return new Map(s1([...e.entries()]))}function pSe(e){return new Set(s1([...e.values()]))}function mSe(e){return e}function s1(e){return kV(e)?dSe(e):NV(e)?fSe(e):MV(e)?pSe(e):Zz(e)?uSe(e):cB(e)?lSe(e):mSe(e)}function c1(e,t){return JSON.stringify(e).localeCompare(JSON.stringify(t))}function l1(e,t=1){return e.sort((e,n)=>{let r=QJ(e,n);return(X(r,`disjoint`)?c1(e,n):X(r,`right-inside`)?1:X(r,`left-inside`)?-1:c1(e,n))*t})}function hSe(e,t,n){for(let r of l1(t.anyOf)){let t=u1(e,r,s1(n));if(r1(e,r,t))return t}return n}function u1(e,t,n){return xH(t)?Qxe(e,t,n):yH(t)?$xe(e,t,n):QH(t)?eSe(e,t,n):iU(t)?nSe(e,t,n):WH(t)?rSe(e,t,n):LG(t)?iSe(e,t,n):NH(t)?aSe(e,t,n):GW(t)?oSe(e,t,n):qH(t)?hSe(e,t,n):n}function d1(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return u1(t,n,r)}function f1(e){return cB(e)&&Z(e,`value`)}function p1(e){return{value:e}}function gSe(e){return Zz(e)?p1(e):p1([e])}function _Se(e){return X(e,!0)?p1(BigInt(1)):p1(BigInt(0))}const vSe=/^-?(0|[1-9]\d*)n$/,ySe=/^-?(0|[1-9]\d*)\.\d+$/,bSe=/^-?(0|[1-9]\d*)$/;function xSe(e){return vSe.test(e)}function SSe(e){return ySe.test(e)}function CSe(e){return bSe.test(e)}function wSe(e){let t=e.toLowerCase();return xSe(e)?p1(BigInt(e.slice(0,e.length-1))):SSe(e)?p1(BigInt(e.split(`.`)[0])):CSe(e)?p1(BigInt(e)):X(t,`false`)?p1(BigInt(0)):X(t,`true`)?p1(BigInt(1)):void 0}function m1(e){return $z(e)?p1(e):eB(e)?_Se(e):oB(e)?p1(BigInt(Math.trunc(e))):aB(e)?p1(BigInt(0)):lB(e)?wSe(e):dB(e)?p1(BigInt(0)):void 0}function TSe(e){return X(e,BigInt(0))?p1(!1):X(e,BigInt(1))?p1(!0):void 0}function ESe(e){return X(e,0)?p1(!1):X(e,1)?p1(!0):void 0}function DSe(e){return X(e.toLowerCase(),`false`)?p1(!1):X(e.toLowerCase(),`true`)?p1(!0):X(e,`0`)?p1(!1):X(e,`1`)?p1(!0):void 0}function h1(e){return $z(e)?TSe(e):eB(e)?p1(e):oB(e)?ESe(e):aB(e)?p1(!1):lB(e)?DSe(e):dB(e)?p1(!1):void 0}function OSe(e){return X(e,BigInt(0))?p1(null):void 0}function kSe(e){return X(e,!1)?p1(null):void 0}function ASe(e){return X(e,0)?p1(null):void 0}function jSe(e){let t=e.toLowerCase();return X(t,`undefined`)||X(t,`null`)||X(e,``)||X(e,`0`)?p1(null):void 0}function MSe(e){return $z(e)?OSe(e):eB(e)?kSe(e):oB(e)?ASe(e):aB(e)?p1(null):lB(e)?jSe(e):dB(e)?p1(null):void 0}const g1=BigInt(2**53-1),_1=BigInt(-(2**53-1));function NSe(e){return e<=g1&&e>=_1?p1(Number(e)):void 0}function PSe(e){return p1(+!!e)}function FSe(e){let t=+e;if(oB(t))return p1(t);let n=e.toLowerCase();if(X(n,`false`))return p1(0);if(X(n,`true`))return p1(1);let r=m1(e);if(f1(r))return r.value<=g1&&r.value>=_1?p1(Number(r.value)):void 0}function v1(e){return $z(e)?NSe(e):eB(e)?PSe(e):oB(e)?p1(e):aB(e)?p1(0):lB(e)?FSe(e):dB(e)?p1(0):void 0}function y1(e){return $z(e)||eB(e)||oB(e)?p1(e.toString()):aB(e)?p1(`null`):lB(e)?p1(e):dB(e)?p1(``):void 0}function ISe(e){return X(e,BigInt(0))?p1(void 0):void 0}function LSe(e){return X(e,!1)?p1(void 0):void 0}function RSe(e){return X(e,0)?p1(void 0):void 0}function zSe(e){let t=e.toLowerCase();return X(t,`undefined`)||X(t,`null`)||X(e,``)||X(e,`0`)?p1(void 0):void 0}function b1(e){return $z(e)?ISe(e):eB(e)?LSe(e):oB(e)?RSe(e):aB(e)?p1(void 0):lB(e)?zSe(e):dB(e)?p1(e):void 0}function BSe(e,t,n){return gSe(n).value.map(n=>w1(e,t.items,n))}function VSe(e,t,n){return t.Convert(n)}function HSe(e,t,n){let r=m1(n);return f1(r)?r.value:n}function USe(e,t,n){let r=h1(n);return f1(r)?r.value:n}function WSe(e,t,n){return w1({...e,...t.$defs},MH(t.$ref),n)}function x1(e,t,n){if(t.anyOf.some(t=>r1(e,t,n)))return n;let r=t.anyOf.map(t=>w1(e,t,s1(n))).find(n=>r1(e,t,n));return dB(r)?n:r}function GSe(e,t,n){return x1(e,VW(t),n)}function KSe(e,t,n){let r=v1(n);return f1(r)?Math.trunc(r.value):n}function qSe(e,t,n){return w1(e,hX(pX(e,t)),n)}function JSe(e,t,n){let r=m1(n);return f1(r)&&X(t.const,r.value)?r.value:n}function YSe(e,t,n){let r=h1(n);return f1(r)&&X(t.const,r.value)?r.value:n}function XSe(e,t,n){let r=v1(n);return f1(r)&&X(t.const,r.value)?r.value:n}function ZSe(e,t,n){let r=y1(n);return f1(r)&&X(t.const,r.value)?r.value:n}function QSe(e,t,n){return X(t.const,n)?n:iW(t)?JSe(e,t,n):aW(t)?YSe(e,t,n):oW(t)?XSe(e,t,n):sW(t)?ZSe(e,t,n):uU()}function $Se(e,t,n){let r=MSe(n);return f1(r)?r.value:n}function eCe(e,t,n){let r=v1(n);return f1(r)?r.value:n}function S1(e,t,n,r){let i=DB(r);for(let[a,o]of t)for(let t of i)a.test(t)||(r[t]=w1(e,n,r[t]));return r}function C1(e,t,n){return fH(e)&&dB(n[t])}function tCe(e,t,n){let r=TB(t.properties),i=DB(n);for(let[t,a]of r)for(let r of i)!t.test(r)||C1(a,r,n)||(n[r]=w1(e,a,n[r]));return Z(t,`additionalProperties`)&&cB(t.additionalProperties)?S1(e,r,t.additionalProperties,n):n}function nCe(e,t,n){return sB(n)?tCe(e,t,n):n}function rCe(e,t,n){let r=TB(t.patternProperties),i=DB(n);for(let[t,a]of r)for(let r of i)t.test(r)&&(n[r]=w1(e,a,n[r]));return Z(t,`additionalProperties`)&&cB(t.additionalProperties)?S1(e,r,t.additionalProperties,n):n}function iCe(e,t,n){return sB(n)?rCe(e,t,n):n}function aCe(e,t,n){return Z(e,t.$ref)?w1(e,e[t.$ref],n):n}function oCe(e,t,n){let r=y1(n);return f1(r)?r.value:n}function sCe(e,t,n){return w1(e,PW(t.pattern),n)}function cCe(e,t,n){if(!Zz(n))return n;for(let r=0;r<Math.min(t.items.length,n.length);r++)n[r]=w1(e,t.items[r],n[r]);return n}function lCe(e,t,n){let r=b1(n);return f1(r)?r.value:n}function uCe(e,t,n){return f1(b1(n))?void 0:n}function w1(e,t,n){return xH(t)?BSe(e,t,n):yH(t)?VSe(e,t,n):KU(t)?HSe(e,t,n):qU(t)?USe(e,t,n):QH(t)?WSe(e,t,n):nU(t)?GSe(e,t,n):XU(t)?KSe(e,t,n):iU(t)?qSe(e,t,n):cW(t)?QSe(e,t,n):uW(t)?$Se(e,t,n):pW(t)?eCe(e,t,n):WH(t)?nCe(e,t,n):LG(t)?iCe(e,t,n):NH(t)?aCe(e,t,n):_W(t)?oCe(e,t,n):$K(t)?sCe(e,t,n):GW(t)?cCe(e,t,n):HG(t)?lCe(e,t,n):qH(t)?x1(e,t,n):UG(t)?uCe(e,t,n):n}function T1(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return w1(t,n,r)}function dCe(e,t,n){if(!Zz(n))return n;for(let r=0;r<n.length;r++)n[r]=E1(e,t.items,n[r]);return n}function fCe(e,t,n){return t.Default(n)}function pCe(e,t,n){return E1({...e,...t.$defs},MH(t.$ref),n)}function mCe(e,t){return dB(t)?nB(e.default)?e.default():s1(e.default):t}function hCe(e,t,n){return E1(e,hX(pX(e,t)),n)}function gCe(e,t,n){if(!cB(n))return n;let r=DB(t.properties);for(let i of r)dB(E1(e,t.properties[i],n[i]))&&(fH(t.properties[i])||!Z(t.properties[i],`default`))||(n[i]=E1(e,t.properties[i],n[i]));if(!wZ(t)||eB(t.additionalProperties))return n;for(let i of DB(n))r.includes(i)||(n[i]=E1(e,t.additionalProperties,n[i]));return n}function _Ce(e,t,n){if(!cB(n))return n;let[r,i]=[new RegExp(PG(t)),IG(t)];for(let t of DB(n))r.test(t)&&AZ(i)&&(n[t]=E1(e,i,n[t]));if(!wZ(t))return n;for(let i of DB(n))r.test(i)||(n[i]=E1(e,t.additionalProperties,n[i]));return n}function vCe(e,t,n){return Z(e,t.$ref)?E1(e,e[t.$ref],n):n}function yCe(e,t,n){if(!Zz(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]=E1(e,r[t],n[t]));return n}function bCe(e,t,n){for(let r of t.anyOf){let t=E1(e,r,s1(n));if(r1(e,r,t))return t}return n}function E1(e,t,n){let r=AZ(t)?mCe(t,n):n;return xH(t)?dCe(e,t,r):yH(t)?fCe(e,t,r):QH(t)?pCe(e,t,r):iU(t)?hCe(e,t,r):WH(t)?gCe(e,t,r):LG(t)?_Ce(e,t,r):NH(t)?vCe(e,t,r):GW(t)?yCe(e,t,r):qH(t)?bCe(e,t,r):r}function D1(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return E1(t,n,r)}function O1(e){return(...t)=>{let[n,r,i]=eU(t,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return e.reduce((e,t)=>t(n,r,e),i)}}function xCe(e,t,n){return t[`~codec`].decode(n)}function SCe(e,t,n){return t[`~codec`].encode(n)}function k1(e,t,n,r){return WU(n)?X(e,`Decode`)?xCe(t,n,r):SCe(t,n,r):r}function CCe(e,t,n,r){if(!Zz(r))return uU();for(let i=0;i<r.length;i++)r[i]=N1(e,t,n.items,r[i]);return k1(e,t,n,r)}function wCe(e,t,n,r){let i=k1(e,t,n,r);if(!Zz(i))return i;for(let r=0;r<i.length;r++)i[r]=N1(e,t,n.items,i[r]);return i}function TCe(e,t,n,r){return X(e,`Decode`)?CCe(e,t,n,r):wCe(e,t,n,r)}function ECe(e,t,n,r){return r=N1(e,{...t,...n.$defs},MH(n.$ref),r),k1(e,t,n,r)}function A1(e){return e.reduce((e,t)=>({...e,...t}),{})}function j1(e,t){for(let n of t)if(!MB(e,n))return n;return e}function DCe(e,t,n,r){if(X(n.allOf.length,0))return k1(e,t,n,r);let i=n.allOf.map(n=>N1(e,t,n,d1(n,s1(r))));return k1(e,t,n,i.every(e=>cB(e))?A1(i):j1(r,i))}function OCe(e,t,n,r){if(X(n.allOf.length,0))return k1(e,t,n,r);let i=k1(e,t,n,r),a=n.allOf.map(n=>N1(e,t,n,d1(n,s1(i))));return a.every(e=>cB(e))?A1(a):j1(i,a)}function kCe(e,t,n,r){return X(e,`Decode`)?DCe(e,t,n,r):OCe(e,t,n,r)}function ACe(e,t,n,r){if(!sB(r))return uU();for(let i of DB(n.properties))!Z(r,i)||C1(n.properties[i],i,r)||(r[i]=N1(e,t,n.properties[i],r[i]));return k1(e,t,n,r)}function jCe(e,t,n,r){let i=k1(e,t,n,r);if(!sB(i))return i;for(let r of DB(n.properties))!Z(i,r)||C1(n.properties[r],r,i)||(i[r]=N1(e,t,n.properties[r],i[r]));return i}function MCe(e,t,n,r){return X(e,`Decode`)?ACe(e,t,n,r):jCe(e,t,n,r)}function NCe(e,t,n,r){if(!sB(r))return uU();let i=new RegExp(PG(n));for(let a of DB(r))i.test(a)||uU(),r[a]=N1(e,t,IG(n),r[a]);return k1(e,t,n,r)}function PCe(e,t,n,r){let i=k1(e,t,n,r);if(!sB(i))return i;let a=new RegExp(PG(n));for(let r of DB(i))a.test(r)&&(i[r]=N1(e,t,IG(n),i[r]));return i}function FCe(e,t,n,r){return X(e,`Decode`)?NCe(e,t,n,r):PCe(e,t,n,r)}function M1(e,t,n,r){return Z(t,n.$ref)?N1(e,t,t[n.$ref],r):r}function ICe(e,t,n,r){return X(e,`Decode`)?k1(e,t,n,M1(e,t,n,r)):M1(e,t,n,k1(e,t,n,r))}function LCe(e,t,n,r){if(!Zz(r))return uU();for(let i=0;i<Math.min(n.items.length,r.length);i++)r[i]=N1(e,t,n.items[i],r[i]);return k1(e,t,n,r)}function RCe(e,t,n,r){let i=k1(e,t,n,r);if(!Zz(i))return r;for(let r=0;r<Math.min(n.items.length,i.length);r++)i[r]=N1(e,t,n.items[r],i[r]);return i}function zCe(e,t,n,r){return X(e,`Decode`)?LCe(e,t,n,r):RCe(e,t,n,r)}function BCe(e,t,n,r){for(let i of l1(n.anyOf,1))if(r1(t,i,r))return k1(e,t,n,N1(e,t,i,r));return r}function VCe(e,t,n,r){let i=k1(e,t,n,r);for(let r of l1(n.anyOf,-1)){let n=N1(e,t,r,s1(i));if(r1(t,r,n))return n}return i}function HCe(e,t,n,r){return X(e,`Decode`)?BCe(e,t,n,r):VCe(e,t,n,r)}function N1(e,t,n,r){return xH(n)?TCe(e,t,n,r):QH(n)?ECe(e,t,n,r):iU(n)?kCe(e,t,n,r):WH(n)?MCe(e,t,n,r):LG(n)?FCe(e,t,n,r):NH(n)?ICe(e,t,n,r):GW(n)?zCe(e,t,n,r):qH(n)?HCe(e,t,n,r):k1(e,t,n,r)}var UCe=class extends a1{constructor(e,t){super(`Decode`,e,t)}};function WCe(e,t,n){if(!r1(e,t,n))throw new UCe(n,i1(e,t,n));return n}function GCe(e,t,n){return N1(`Decode`,e,t,n)}const KCe=O1([(e,t,n)=>s1(n),(e,t,n)=>D1(e,t,n),(e,t,n)=>T1(e,t,n),(e,t,n)=>d1(e,t,n),(e,t,n)=>WCe(e,t,n),(e,t,n)=>GCe(e,t,n)]);function qCe(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return KCe(t,n,r)}var JCe=class extends a1{constructor(e,t){super(`Encode`,e,t)}};function YCe(e,t,n){if(!r1(e,t,n))throw new JCe(n,i1(e,t,n));return n}function XCe(e,t,n){return N1(`Encode`,e,t,n)}const ZCe=O1([(e,t,n)=>s1(n),(e,t,n)=>XCe(e,t,n),(e,t,n)=>D1(e,t,n),(e,t,n)=>T1(e,t,n),(e,t,n)=>d1(e,t,n),(e,t,n)=>YCe(e,t,n)]);function QCe(...e){let[t,n,r]=eU(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return ZCe(t,n,r)}function $Ce(e,t){return WU(t)||F1(e,t.items)}function ewe(e,t){return WU(t)||P1({...e,...t.$defs},MH(t.$ref))}function twe(e,t){return WU(t)||t.allOf.some(t=>F1(e,t))}function nwe(e,t){return WU(t)||DB(t.properties).some(n=>F1(e,t.properties[n]))}function rwe(e,t){return WU(t)||F1(e,IG(t))}function P1(e,t){return I1.has(t.$ref)?!1:(I1.add(t.$ref),WU(t)||Z(e,t.$ref)&&F1(e,e[t.$ref]))}function iwe(e,t){return WU(t)||t.items.some(t=>F1(e,t))}function awe(e,t){return WU(t)||t.anyOf.some(t=>F1(e,t))}function F1(e,t){return xH(t)?$Ce(e,t):QH(t)?ewe(e,t):iU(t)?twe(e,t):WH(t)?nwe(e,t):LG(t)?rwe(e,t):NH(t)?P1(e,t):GW(t)?iwe(e,t):qH(t)?awe(e,t):WU(t)}const I1=new Set;function owe(...e){let[t,n]=eU(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return I1.clear(),F1(t,n)}var L1=class extends Error{constructor(e,t){super(t),this.type=e}};function swe(e,t){return nB(t.default)?t.default(t):cB(t.default)?s1(t.default):t.default}function cwe(e,t){if(hQ(t)&&!AZ(t))throw new L1(t,`Arrays with uniqueItems constraints must specify a default annotation`);let n=QZ(t)?t.minItems:0;return Array.from({length:n},()=>R1(e,t.items))}async function*lwe(){}function uwe(e,t){return lwe()}function dwe(e,t){return t.Create()}function fwe(e,t){return zZ(t)?BigInt(t.exclusiveMinimum)+BigInt(1):XZ(t)?BigInt(t.minimum):BigInt(0)}function pwe(e,t){return!1}function mwe(e,t){let n=R1(e,t.instanceType);return class{constructor(){Object.assign(this,n)}}}function hwe(e,t){return R1({...e,...t.$defs},MH(t.$ref))}function gwe(e,t){return R1(e,VW(t))}function _we(e,t){let n=R1(e,t.returnType);return()=>n}function vwe(e,t){return zZ(t)&&oB(t.exclusiveMinimum)?t.exclusiveMinimum+1:XZ(t)?t.minimum:0}function ywe(e,t){return R1(e,hX(pX(e,t)))}function*bwe(){}function xwe(e,t){return bwe()}function Swe(e,t){return t.const}function Cwe(e,t){throw new L1(t,`Cannot create TNever types`)}function wwe(e,t){return null}function Twe(e,t){return zZ(t)&&oB(t.exclusiveMinimum)?t.exclusiveMinimum+1:XZ(t)?t.minimum:0}function Ewe(e,t){return(dB(t.required)?[]:t.required).reduce((n,r)=>({...n,[r]:R1(e,t.properties[r])}),{})}function Dwe(e,t){return Promise.resolve(R1(e,t.item))}function Owe(e,t){if(eQ(t)&&!AZ(t))throw new L1(t,`Record with the minProperties constraint must have a default annotation`);return{}}function kwe(e,t){return Z(e,t.$ref)?R1(e,e[t.$ref]):(()=>{throw new L1(t,`Unable to deref Ref`)})()}function Awe(e,t){if((iQ(t)||BZ(t))&&!AZ(t))throw Error(`Strings with format or pattern constraints must specify default`);let n=$Z(t)?t.minLength:0;return``.padEnd(n)}function jwe(e,t){return Symbol()}function Mwe(e,t){let n=PW(t.pattern);if(_W(n))throw new L1(t,`Unable to create TemplateLiteral due to infinite type expansion`);return R1(e,n)}function Nwe(e,t){return Array.from({length:t.minItems},(n,r)=>R1(e,t.items[r]))}function Pwe(e,t){if(X(t.anyOf.length,0))throw Error(`Unable to create Union with no variants`);return R1(e,t.anyOf[0])}function R1(e,t){return AZ(t)?swe(e,t):xH(t)?cwe(e,t):wH(t)?uwe(e,t):yH(t)?dwe(e,t):KU(t)?fwe(e,t):qU(t)?pwe(e,t):DH(t)?mwe(e,t):QH(t)?hwe(e,t):nU(t)?gwe(e,t):AH(t)?_we(e,t):XU(t)?vwe(e,t):iU(t)?ywe(e,t):QU(t)?xwe(e,t):cW(t)?Swe(e,t):zH(t)?Cwe(e,t):uW(t)?wwe(e,t):pW(t)?Twe(e,t):WH(t)?Ewe(e,t):iH(t)?Dwe(e,t):LG(t)?Owe(e,t):NH(t)?kwe(e,t):_W(t)?Awe(e,t):hW(t)?jwe(e,t):$K(t)?Mwe(e,t):GW(t)?Nwe(e,t):HG(t)?void 0:qH(t)?Pwe(e,t):(UG(t),void 0)}function Fwe(...e){let[t,n]=eU(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return R1(t,n)}var z1=class extends a1{constructor(e,t){super(`Parse`,e,t)}};function Iwe(e,t,n){if(!r1(e,t,n))throw new z1(n,i1(e,t,n));return n}const Lwe=O1([(e,t,n)=>s1(n),(e,t,n)=>D1(e,t,n),(e,t,n)=>T1(e,t,n),(e,t,n)=>d1(e,t,n),(e,t,n)=>Iwe(e,t,n)]);KH([UH({type:nW(`insert`),path:gW(),value:YH()}),Object({type:nW(`update`),path:gW(),value:YH()}),UH({type:nW(`delete`),path:gW()})]);var Rwe=class e extends vH{constructor(...e){super();let t=eU(e,{6:(e,t,n,r,i,a)=>[e,t,n,r,i,a],2:(e,t)=>[e,t]});if(t.length===6){let[e,n,r,i,a,o]=t;this.context=e,this.type=n,this.isAccelerated=r,this.hasCodec=i,this.code=a,this.check=o}else{let[e,n]=t,r=Yxe(e,n).Evaluate();this.hasCodec=owe(e,n),this.context=e,this.type=n,this.isAccelerated=r.IsAccelerated,this.code=r.Code,this.check=r.Check}}IsAccelerated(){return this.isAccelerated}Context(){return this.context}Type(){return this.type}Code(){return this.code}Check(e){return this.check(e)}Errors(e){return cU()&&this.check(e)?[]:i1(this.context,this.type,e)}Clean(e){return d1(this.context,this.type,e)}Convert(e){return T1(this.context,this.type,e)}Create(){return Fwe(this.context,this.type)}Default(e){return D1(this.context,this.type,e)}Clone(){return new e(this.context,this.type,this.isAccelerated,this.hasCodec,this.code,this.check)}Parse(e){if(this.Check(e))return e;if(UV().correctiveParse)return Lwe(this.context,this.type,e);throw new z1(e,this.Errors(e))}Decode(e){return this.hasCodec?qCe(this.context,this.type,e):this.Parse(e)}Encode(e){return this.hasCodec?QCe(this.context,this.type,e):this.Parse(e)}};function zwe(...e){let[t,n]=eU(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return new Rwe(t,n)}const B1=new WeakMap,Bwe=Symbol.for(`TypeBox.Kind`);function V1(e){return typeof e==`object`&&!!e}function H1(e){return V1(e)}function Vwe(e){return V1(e)&&Object.getOwnPropertySymbols(e).includes(Bwe)}function Hwe(e){return typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type.filter(e=>typeof e==`string`):[]}function Uwe(e,t){switch(t){case`number`:return typeof e==`number`;case`integer`:return typeof e==`number`&&Number.isInteger(e);case`boolean`:return typeof e==`boolean`;case`string`:return typeof e==`string`;case`null`:return e===null;case`array`:return Array.isArray(e);case`object`:return V1(e)&&!Array.isArray(e);default:return!1}}function Wwe(e){return V1(e)}function Gwe(e){if(Wwe(e))try{return G1(e)}catch{return}}function Kwe(e,t){switch(t){case`number`:if(e===null)return 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isFinite(t))return t}return typeof e==`boolean`?+!!e:e;case`integer`:if(e===null)return 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);if(Number.isInteger(t))return t}return typeof e==`boolean`?+!!e:e;case`boolean`:if(e===null)return!1;if(typeof e==`string`){if(e===`true`)return!0;if(e===`false`)return!1}if(typeof e==`number`){if(e===1)return!0;if(e===0)return!1}return e;case`string`:return e===null?``:typeof e==`number`||typeof e==`boolean`?String(e):e;case`null`:return e===``||e===0||e===!1?null:e;default:return e}}function qwe(e,t){let n=t.properties,r=new Set(n?Object.keys(n):[]);if(n)for(let[t,r]of Object.entries(n))t in e&&(e[t]=W1(e[t],r));if(t.additionalProperties&&H1(t.additionalProperties))for(let[n,i]of Object.entries(e))r.has(n)||(e[n]=W1(i,t.additionalProperties))}function Jwe(e,t){if(Array.isArray(t.items)){for(let n=0;n<e.length;n++){let r=t.items[n];r&&(e[n]=W1(e[n],r))}return}if(H1(t.items))for(let n=0;n<e.length;n++)e[n]=W1(e[n],t.items)}function U1(e,t){for(let n of t){let t=W1(structuredClone(e),n);if(Gwe(n)?.Check(t))return t}return e}function W1(e,t){let n=e;if(Array.isArray(t.allOf))for(let e of t.allOf)n=W1(n,e);Array.isArray(t.anyOf)&&(n=U1(n,t.anyOf)),Array.isArray(t.oneOf)&&(n=U1(n,t.oneOf));let r=Hwe(t),i=r.length>1&&r.some(e=>Uwe(n,e));if(r.length>0&&!i)for(let e of r){let t=Kwe(n,e);if(t!==n){n=t;break}}return r.includes(`object`)&&V1(n)&&!Array.isArray(n)&&qwe(n,t),r.includes(`array`)&&Array.isArray(n)&&Jwe(n,t),n}function G1(e){let t=e,n=B1.get(t);if(n)return n;let r=zwe(e);return B1.set(t,r),r}function Ywe(e){if(e.keyword===`required`){let t=e.params.requiredProperties?.[0];if(t){let n=e.instancePath.replace(/^\//,``).replace(/\//g,`.`);return n?`${n}.${t}`:t}}return e.instancePath.replace(/^\//,``).replace(/\//g,`.`)||`root`}function Xwe(e,t){let n=structuredClone(t.arguments);T1(e.parameters,n);let r=G1(e.parameters);if(!Vwe(e.parameters)&&H1(e.parameters)){let t=W1(n,e.parameters);if(t!==n)if(V1(n)&&V1(t)){for(let e of Object.keys(n))delete n[e];Object.assign(n,t)}else return r.Check(t)?t:n}if(r.Check(n))return n;let i=r.Errors(n).map(e=>` - ${Ywe(e)}: ${e.message}`).join(`
@@ -3443,7 +3443,7 @@ Otherwise, output ONLY a markdown bullet list (one bullet per memory), no header
3443
3443
 
3444
3444
  `)}`:n.join(`
3445
3445
 
3446
- `)}function OTe(e){return e?.length?e.filter(e=>e.kind===`image`&&e.data).map(e=>({type:`image`,data:e.data,mimeType:e.mimeType})):[]}var kTe={include:[`*`],exclude:[]},m0=c({getRegisteredProviderConfig:()=>y0,getRegisteredProviderIds:()=>b0,registerProviderConfig:()=>x0,registerProviders:()=>v0,shouldIncludeProvider:()=>h0,unregisterProviderConfig:()=>S0});const ATe=Object.assign({"/packages/dev-tools/providers.build.json":kTe})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function h0(e){let{include:t,exclude:n}=ATe;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const jTe=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-1pnZpxAJ.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-CA1mxD3H.js`),"./built-in/bedrock-camp.ts":()=>Promise.resolve().then(()=>PTe),"./built-in/local-llm.ts":()=>Promise.resolve().then(()=>R5)}),MTe=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-CjwUvUUz.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-TbpFfs-O.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-WbFsMZum.js`),"/packages/webapp/providers/xai-grok-models.ts":()=>import(`./xai-grok-models-cvcIXmNM.js`),"/packages/webapp/providers/xai-grok-sanitize.ts":()=>import(`./xai-grok-sanitize-BeI8rdV5.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-BuLwklR4.js`)}),g0=new Map;let _0=null;function v0(){return _0||(_0=(async()=>{for(let[e,t]of Object.entries(jTe)){let e=await t();e.config&&h0(e.config.id)&&(g0.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(MTe)){let e=await t();e.config&&(g0.set(e.config.id,e.config),e.register?.())}})(),_0)}function y0(e){return g0.get(e)}function b0(){return[...g0.keys()]}function x0(e){g0.set(e.id,e)}function S0(e){return g0.delete(e)}function C0(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function NTe(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:C0(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:C0(e.content,`(tool image omitted: model does not support images)`)}:e)}function w0(e,t,n){let r=new Map,i=NTe(e,t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}function T0(e,t,n){return{temperature:t?.temperature,maxTokens:t?.maxTokens??(e.maxTokens>0?Math.min(e.maxTokens,32e3):void 0),signal:t?.signal,apiKey:n||t?.apiKey,transport:t?.transport,cacheRetention:t?.cacheRetention,sessionId:t?.sessionId,headers:t?.headers,onPayload:t?.onPayload,onResponse:t?.onResponse,timeoutMs:t?.timeoutMs,maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,metadata:t?.metadata}}function E0(e){return e===`xhigh`?`high`:e}function D0(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[E0(n)],a=Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}var PTe=c({bedrockCampRegionFromBaseUrl:()=>O0,config:()=>FTe,isBedrockCampCompatible:()=>k0,register:()=>iEe,streamBedrockCamp:()=>R0,streamSimpleBedrockCamp:()=>z0});const FTe={id:`bedrock-camp`,name:`AWS Bedrock (CAMP)`,description:`Claude on AWS Bedrock via CAMP Bearer token`,requiresApiKey:!0,apiKeyPlaceholder:`ABSK...`,apiKeyEnvVar:`BEDROCK_CAMP_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://bedrock-runtime.us-west-2.amazonaws.com`,baseUrlDescription:`Bedrock runtime endpoint from CAMP portal`,defaultModelId:`claude-sonnet-4-6`},ITe=/^(us|eu|global|apac)\./,LTe=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,RTe=/bedrock-runtime(?:-fips)?\.([a-z0-9-]+)\.amazonaws\.com(?:\.cn)?$/i;function O0(e){if(!e)return null;try{let{hostname:t}=new URL(e);return t.toLowerCase().match(RTe)?.[1]??null}catch{return null}}function zTe(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function k0(e,t){if(!ITe.test(e.id)||!LTe.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return zTe(n,t)}function BTe(e,t){return!j0(e,t,[`claude-opus-4-7`,`opus-4-7`])}function VTe(e){return{onPayload:e.onPayload,onResponse:e.onResponse,toolChoice:e.toolChoice,thinkingDisplay:e.thinkingDisplay,interleavedThinking:e.interleavedThinking,requestMetadata:e.requestMetadata}}function A0(e,t){return(t?[e,t]:[e]).flatMap(e=>{let t=e.toLowerCase();return[t,t.replace(/[\s_.:]+/g,`-`)]})}function j0(e,t,n){return A0(e,t).some(e=>n.some(t=>e.includes(t)))}function HTe(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function M0(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function UTe(e,t,n){let r=[],i=w0(e.messages,t,HTe);for(let e=0;e<i.length;e++){let n=i[e];switch(n.role){case`user`:r.push({role:`user`,content:typeof n.content==`string`?[{text:M0(n.content)}]:n.content.map(e=>{if(e.type===`text`)return{text:M0(e.text)};if(e.type===`image`)return{image:N0(e.mimeType,e.data)};throw Error(`Unknown user content type: ${e.type}`)})});break;case`assistant`:{if(n.content.length===0)continue;let e=[];for(let r of n.content)switch(r.type){case`text`:if(r.text.trim().length===0)continue;e.push({text:M0(r.text)});break;case`toolCall`:e.push({toolUse:{toolUseId:r.id,name:r.name,input:r.arguments}});break;case`thinking`:if(r.thinking.trim().length===0)continue;GTe(t)?!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({text:M0(r.thinking)}):e.push({reasoningContent:{reasoningText:{text:M0(r.thinking),signature:r.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:M0(r.thinking)}}});break}if(e.length===0)continue;r.push({role:`assistant`,content:e});break}case`toolResult`:{let t=[];t.push({toolResult:{toolUseId:n.toolCallId,content:n.content.map(e=>e.type===`image`?{image:N0(e.mimeType,e.data)}:{text:M0(e.text??e.json??JSON.stringify(e))}),status:n.isError?`error`:`success`}});let a=e+1;for(;a<i.length&&i[a].role===`toolResult`;){let e=i[a];t.push({toolResult:{toolUseId:e.toolCallId,content:e.content.map(e=>e.type===`image`?{image:N0(e.mimeType,e.data)}:{text:M0(e.text??e.json??JSON.stringify(e))}),status:e.isError?`error`:`success`}}),a++}e=a-1,r.push({role:`user`,content:t});break}}}if(n!==`none`&&I0(t)&&r.length>0){let e=r[r.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push(L0(n))}return r}function N0(e,t){return{source:{bytes:t},format:WTe(e)}}function WTe(e){switch(e){case`image/jpeg`:case`image/jpg`:return`jpeg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:throw Error(`Unsupported image MIME type: ${e}`)}}function GTe(e){return F0(e)}function P0(e,t){return j0(e,t,[`opus-4-6`,`opus-4-7`,`sonnet-4-6`])}function KTe(e,t){return j0(e,t,[`opus-4-7`])}function qTe(e,t){return j0(e,t,[`opus-4-6`])}function JTe(e,t){if(!e?.length||t===`none`)return;let n=e.map(e=>({toolSpec:{name:e.name,description:e.description,inputSchema:{json:e.parameters}}})),r;switch(t){case`auto`:r={auto:{}};break;case`any`:r={any:{}};break;default:t&&typeof t==`object`&&t.type===`tool`&&(r={tool:{name:t.name}})}return{tools:n,toolChoice:r}}function YTe(e,t,n){if(e===`xhigh`&&KTe(t,n))return`xhigh`;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return qTe(t,n)?`max`:`high`;default:return`high`}}function XTe(e){if(O0(e.baseUrl)?.toLowerCase().startsWith(`us-gov-`))return!0;let t=e.id.toLowerCase();return t.startsWith(`us-gov.`)||t.startsWith(`arn:aws-us-gov:`)}function ZTe(e,t){if(!t.reasoning||!e.reasoning||!F0(e))return;let n=XTe(e)?void 0:t.thinkingDisplay??`summarized`;if(P0(e.id,e.name))return{thinking:{type:`adaptive`,...n===void 0?{}:{display:n}},output_config:{effort:YTe(t.reasoning,e.id,e.name)}};let r={minimal:1024,low:2048,medium:8192,high:16384,xhigh:16384},i=t.reasoning===`xhigh`?`high`:t.reasoning,a={thinking:{type:`enabled`,budget_tokens:t.thinkingBudgets?.[i]??r[t.reasoning],...n===void 0?{}:{display:n}}};return(t.interleavedThinking??!0)&&(a.anthropic_beta=[`interleaved-thinking-2025-05-14`]),a}function F0(e){let t=e.id.toLowerCase(),n=e.name?.toLowerCase()??``;return t.includes(`anthropic.claude`)||t.includes(`anthropic/claude`)||n.includes(`anthropic.claude`)||n.includes(`anthropic/claude`)||n.includes(`claude`)}function I0(e){let t=A0(e.id,e.name);return t.some(e=>e.includes(`claude`))?!!(t.some(e=>e.includes(`-4-`))||t.some(e=>e.includes(`claude-3-7-sonnet`))||t.some(e=>e.includes(`claude-3-5-haiku`))):!1}function L0(e){return{cachePoint:{type:`default`,...e===`long`?{ttl:`1h`}:{}}}}function QTe(e,t,n){if(!e)return;let r=[{text:M0(e)}];return n!==`none`&&I0(t)&&r.push(L0(n)),r}function $Te(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`max_tokens`:case`model_context_window_exceeded`:return`length`;case`tool_use`:return`toolUse`;default:return`error`}}function eEe(e,t){let n=`Bedrock CAMP API error (${e})`;return e===429?n=`Throttling error: ${n}`:e===503?n=`Service unavailable: ${n}`:e===502||e===504||e>=500?n=`Internal server error: ${n}`:e===400&&(n=`Validation error: ${n}`),`${n}: ${t}`}function tEe(e,t,n,r){r.push({type:`start`,partial:n});let i=e.output?.message;if(i?.content)for(let e=0;e<i.content.length;e++){let t=i.content[e];if(t.text!==void 0){let e={type:`text`,text:t.text};n.content.push(e);let i=n.content.length-1;r.push({type:`text_start`,contentIndex:i,partial:n}),r.push({type:`text_delta`,contentIndex:i,delta:t.text,partial:n}),r.push({type:`text_end`,contentIndex:i,content:t.text,partial:n})}else if(t.toolUse){let e={type:`toolCall`,id:t.toolUse.toolUseId||``,name:t.toolUse.name||``,arguments:t.toolUse.input||{}};n.content.push(e);let i=n.content.length-1;r.push({type:`toolcall_start`,contentIndex:i,partial:n}),r.push({type:`toolcall_end`,contentIndex:i,toolCall:e,partial:n})}else if(t.reasoningContent?.reasoningText){let e={type:`thinking`,thinking:t.reasoningContent.reasoningText.text||``,thinkingSignature:t.reasoningContent.reasoningText.signature||``};n.content.push(e);let i=n.content.length-1;r.push({type:`thinking_start`,contentIndex:i,partial:n}),r.push({type:`thinking_delta`,contentIndex:i,delta:e.thinking,partial:n}),r.push({type:`thinking_end`,contentIndex:i,content:e.thinking,partial:n})}}e.usage&&(n.usage.input=e.usage.inputTokens||0,n.usage.output=e.usage.outputTokens||0,n.usage.cacheRead=e.usage.cacheReadInputTokens||0,n.usage.cacheWrite=e.usage.cacheWriteInputTokens||0,n.usage.totalTokens=e.usage.totalTokens||n.usage.input+n.usage.output,AX(t,n.usage)),n.stopReason=$Te(e.stopReason||`end_turn`)}function nEe(e){return e??`short`}function rEe(e){let t={};return e.headers.forEach((e,n)=>{t[n.toLowerCase()]=e}),t}const R0=(e,t,n={})=>{let r=FX();return(async()=>{let i={role:`assistant`,content:[],api:`bedrock-camp-converse`,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:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`API key is required for Bedrock CAMP`);let o=e.baseUrl;if(!o)throw Error(`Base URL is required for Bedrock CAMP`);let s=nEe(n.cacheRetention),c={};n.maxTokens!==void 0&&(c.maxTokens=n.maxTokens),n.temperature!==void 0&&BTe(e.id,e.name)&&(c.temperature=n.temperature);let l={modelId:e.id,messages:UTe(t,e,s),system:QTe(t.systemPrompt,e,s),inferenceConfig:c,toolConfig:JTe(t.tools,n.toolChoice),additionalModelRequestFields:ZTe(e,n),...n.requestMetadata===void 0?{}:{requestMetadata:n.requestMetadata}};if(l.system||delete l.system,l.toolConfig||delete l.toolConfig,l.additionalModelRequestFields||delete l.additionalModelRequestFields,n.onPayload){let t=await n.onPayload(l,e);t!==void 0&&(l=t)}let u=`${o.replace(/\/$/,``)}/model/${e.id}/converse`,d={"Content-Type":`application/json`,Authorization:`Bearer ${a}`,...n.headers??{}},f=await fetch(u,{method:`POST`,headers:d,body:JSON.stringify(l),signal:n.signal});if(n.onResponse&&await n.onResponse({status:f.status,headers:rEe(f)},e),!f.ok){let e=await f.text();throw Error(eEe(f.status,e))}if(tEe(await f.json(),e,i,r),i.stopReason===`error`||i.stopReason===`aborted`)throw Error(`An unknown error occurred`);r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialJson;i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},z0=(e,t,n)=>{let r=T0(e,n,void 0),i=n?VTe(n):{};if(!n?.reasoning)return R0(e,t,{...r,...i,reasoning:void 0});if(F0(e)){if(P0(e.id,e.name))return R0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let a=D0(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return R0(e,t,{...r,...i,maxTokens:a.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[E0(n.reasoning)]:a.budgetTokens}})}return R0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function iEe(){_X({api:`bedrock-camp-converse`,stream:R0,streamSimple:z0})}[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);function aEe(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===`*`)return!0;if(!n.startsWith(`*.`))return n===r;let i=n.slice(1);return r.length>i.length&&r.endsWith(i)}function oEe(e,t){return e.some(e=>aEe(e,t))}const B0=`slicc_oauth_extra_domains`;function V0(e){try{let t=e.getItem(B0);if(!t)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n||Array.isArray(n))return{};let r={};for(let[e,t]of Object.entries(n)){if(typeof e!=`string`||!Array.isArray(t))continue;let n=t.filter(e=>typeof e==`string`&&e.length>0);n.length>0&&(r[e]=n)}return r}catch{return{}}}function H0(e,t){try{e.setItem(B0,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}var U0=c({addAccount:()=>mEe,getAccounts:()=>n2,getAllAvailableModels:()=>t2,getAllExtraOAuthDomains:()=>pEe,getApiKey:()=>m2,getApiKeyForProvider:()=>c2,getApiVersionForProvider:()=>d2,getAvailableProviders:()=>lEe,getBaseUrlForProvider:()=>l2,getDeploymentForProvider:()=>u2,getExtraOAuthDomains:()=>r2,getOAuthAccountInfo:()=>Q0,getProviderConfig:()=>Y0,getProviderModels:()=>Z0,getRawApiKeyForProvider:()=>gEe,getSelectedModelId:()=>f2,getSelectedProvider:()=>p2,isModelHiddenFromPicker:()=>e2,removeAccount:()=>hEe,resolveCurrentModel:()=>g2,resolveModelById:()=>h2,saveOAuthAccount:()=>s2,setExtraOAuthDomains:()=>i2,setExtraOAuthDomainsAsync:()=>fEe});const W0=T_e,G0=kX,K0=`slicc_accounts`,q0=`selected-model`,sEe=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`];let J0=!1;function cEe(){if(!J0){J0=!0;for(let e of sEe)try{localStorage.removeItem(e)}catch{}}}function lEe(){let e=OX().filter(h0),t=b0();return[...new Set([...e,...t])]}function Y0(e){return y0(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function X0(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),t.compat!==void 0&&(e.compat={...e.compat??{},...t.compat})}function Z0(e){try{if(e===`bedrock-camp`){let e=O0(l2(`bedrock-camp`));return G0(`amazon-bedrock`).filter(t=>k0(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=Y0(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return $0.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of OX())try{for(let t of G0(e))r.set(t.id,t)}catch{}return n.map(n=>{let i=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=r.get(n.id),o=a?{...a,api:i,provider:e}:{id:n.id,name:n.name??n.id,provider:e,api:i,baseUrl:``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0},s=t.modelOverrides?.[n.id];return s&&X0(o,s),X0(o,n),o})}if(t.isOAuth){let n=G0(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&X0(i,a),i})}return G0(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return $0.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function Q0(e){let t=n2().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,maskedValue:t.maskedValue,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}Object.assign({})[`/packages/webapp/providers.json`];const $0=_(`provider-settings`),uEe=[/haiku/i];function e2(e){return uEe.some(t=>t.test(e))}function dEe(e){return e.filter(e=>!e2(e.id))}function t2(){let e=n2();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=dEe(Z0(n.providerId));if(e.length===0)continue;let r=Y0(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function n2(){cEe();let e=localStorage.getItem(K0);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function r2(e){return V0(localStorage)[e]??[]}function i2(e,t){let n=V0(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,H0(localStorage,n)}async function fEe(e,t){if(kP()){i2(e,t);return}let n=OP();if(!n)throw Error(`setExtraOAuthDomainsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let{storeAfter:r}=await n.call(`oauth-extras-set`,{providerId:e,domains:t});try{H0(localStorage,r)}catch(t){$0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function pEe(){return V0(localStorage)}function a2(e){localStorage.setItem(K0,JSON.stringify(e))}async function o2(e){if(kP()){a2(e);return}let t=OP();if(!t)throw Error(`saveAccountsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let n=JSON.stringify(e),{storedJson:r}=await t.call(`save-oauth-accounts`,{accountsJson:n});try{localStorage.setItem(K0,r)}catch(e){$0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function mEe(e,t,n,r,i){let a=n2().filter(t=>t.providerId!==e),o={providerId:e,apiKey:t};n&&(o.baseUrl=n),r&&(o.deployment=r),i&&(o.apiVersion=i),a.push(o),a2(a)}async function hEe(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(t)await chrome.storage.local.remove([`oauth.${e}.token`,`oauth.${e}.token_DOMAINS`]);else{let t=await fetch(`/api/secrets/oauth/${e}`,{method:`DELETE`});!t.ok&&t.status!==404&&$0.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){$0.error(`OAuth replica removal failed`,{providerId:e,isExtension:t,error:n instanceof Error?n.message:String(n)})}await o2(n2().filter(t=>t.providerId!==e));let n=localStorage.getItem(q0)??``,r=n.indexOf(`:`);r>0&&n.slice(0,r)===e&&localStorage.removeItem(q0)}async function s2(e){let t=n2().find(t=>t.providerId===e.providerId),n=n2().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),await o2(n);let r=Y0(e.providerId)?.oauthTokenDomains??[],i=r2(e.providerId),a=new Set,o=[];for(let e of[...r,...i]){let t=e.toLowerCase();a.has(t)||(a.add(t),o.push(e))}if(o.length===0)return;let s=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(s){await chrome.storage.local.set({[`oauth.${e.providerId}.token`]:e.accessToken,[`oauth.${e.providerId}.token_DOMAINS`]:o.join(`,`)});let t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.mask-oauth-token`,providerId:e.providerId},n=>{chrome.runtime.lastError&&$0.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message}),t(n??{})})});if(t.error&&$0.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t.maskedValue){let n=n2(),r=n.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=t.maskedValue,await o2(n))}}else{let t=await fetch(`/api/secrets/oauth-update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({providerId:e.providerId,accessToken:e.accessToken,domains:o})});if(t.ok){let n=await t.json(),r=n2(),i=r.find(t=>t.providerId===e.providerId);i&&typeof n.maskedValue==`string`&&(i.maskedValue=n.maskedValue,await o2(r))}else $0.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){$0.error(`OAuth replica sync failed`,{providerId:e.providerId,isExtension:s,error:t instanceof Error?t.message:String(t)})}}function gEe(e){let t=n2().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function c2(e){let t=n2().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(Y0(e).optionalApiKey?`local`:null):null}function l2(e){return n2().find(t=>t.providerId===e)?.baseUrl??null}function u2(e){return n2().find(t=>t.providerId===e)?.deployment??null}function d2(e){return n2().find(t=>t.providerId===e)?.apiVersion??null}function f2(){let e=localStorage.getItem(q0)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function _Ee(){return localStorage.getItem(q0)||``}function p2(){let e=_Ee(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=n2();return n.length>0?n[0].providerId:`anthropic`}function m2(){return c2(p2())}function h2(e){if(!e)return g2();let t=p2(),n=l2(t);try{let r=Y0(t),i=W0(r.isOAuth||t===`azure-ai-foundry`?`anthropic`:t===`bedrock-camp`?`amazon-bedrock`:t,e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;return r.isOAuth?a=Z0(t).find(t=>t.id===e)||{...a,api:`${t}-anthropic`,provider:t}:t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(a={...a,baseUrl:n}),a}catch{return g2()}}function g2(){let e=p2(),t=f2(),n=l2(e),r=Z0(e),i=Y0(e),a=i.defaultModelId?r.find(e=>e.id.toLowerCase().includes(i.defaultModelId.toLowerCase()))?.id:void 0,o=t||a||r[0]?.id||`claude-sonnet-4-6`;try{let t=Y0(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=W0(i,o);if(!a?.id)throw Error(`Model ${o} not found in ${i} registry`);let s=a;return t.isOAuth?s=r.find(e=>e.id===o)||{...s,api:`${e}-anthropic`,provider:e}:e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===o);return e?n?{...e,baseUrl:n}:e:W0(`anthropic`,`claude-sonnet-4-0`)}}async function vEe(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await yEe({wantVideo:t,videoDeviceId:t?await _2(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await _2(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??1500;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>e.stop())}}async function _2(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function yEe(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?e.audioDeviceId?{deviceId:{exact:e.audioDeviceId}}:!0:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function bEe(){return{stdout:`ffmpeg - WASM build, downloaded on demand
3446
+ `)}function OTe(e){return e?.length?e.filter(e=>e.kind===`image`&&e.data).map(e=>({type:`image`,data:e.data,mimeType:e.mimeType})):[]}var kTe={include:[`*`],exclude:[]},m0=c({getRegisteredProviderConfig:()=>y0,getRegisteredProviderIds:()=>b0,registerProviderConfig:()=>x0,registerProviders:()=>v0,shouldIncludeProvider:()=>h0,unregisterProviderConfig:()=>S0});const ATe=Object.assign({"/packages/dev-tools/providers.build.json":kTe})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function h0(e){let{include:t,exclude:n}=ATe;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const jTe=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-1pnZpxAJ.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-BJpO12vj.js`),"./built-in/bedrock-camp.ts":()=>Promise.resolve().then(()=>PTe),"./built-in/local-llm.ts":()=>Promise.resolve().then(()=>R5)}),MTe=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-OW6qDMdx.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-BySyEply.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-WbFsMZum.js`),"/packages/webapp/providers/xai-grok-models.ts":()=>import(`./xai-grok-models-cvcIXmNM.js`),"/packages/webapp/providers/xai-grok-sanitize.ts":()=>import(`./xai-grok-sanitize-BeI8rdV5.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-Balk6g5j.js`)}),g0=new Map;let _0=null;function v0(){return _0||(_0=(async()=>{for(let[e,t]of Object.entries(jTe)){let e=await t();e.config&&h0(e.config.id)&&(g0.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(MTe)){let e=await t();e.config&&(g0.set(e.config.id,e.config),e.register?.())}})(),_0)}function y0(e){return g0.get(e)}function b0(){return[...g0.keys()]}function x0(e){g0.set(e.id,e)}function S0(e){return g0.delete(e)}function C0(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function NTe(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:C0(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:C0(e.content,`(tool image omitted: model does not support images)`)}:e)}function w0(e,t,n){let r=new Map,i=NTe(e,t).map(e=>{if(e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){c();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):(t.role===`user`&&c(),a.push(t))}return c(),a}function T0(e,t,n){return{temperature:t?.temperature,maxTokens:t?.maxTokens??(e.maxTokens>0?Math.min(e.maxTokens,32e3):void 0),signal:t?.signal,apiKey:n||t?.apiKey,transport:t?.transport,cacheRetention:t?.cacheRetention,sessionId:t?.sessionId,headers:t?.headers,onPayload:t?.onPayload,onResponse:t?.onResponse,timeoutMs:t?.timeoutMs,maxRetries:t?.maxRetries,maxRetryDelayMs:t?.maxRetryDelayMs,metadata:t?.metadata}}function E0(e){return e===`xhigh`?`high`:e}function D0(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[E0(n)],a=Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}var PTe=c({bedrockCampRegionFromBaseUrl:()=>O0,config:()=>FTe,isBedrockCampCompatible:()=>k0,register:()=>iEe,streamBedrockCamp:()=>R0,streamSimpleBedrockCamp:()=>z0});const FTe={id:`bedrock-camp`,name:`AWS Bedrock (CAMP)`,description:`Claude on AWS Bedrock via CAMP Bearer token`,requiresApiKey:!0,apiKeyPlaceholder:`ABSK...`,apiKeyEnvVar:`BEDROCK_CAMP_API_KEY`,requiresBaseUrl:!0,baseUrlPlaceholder:`https://bedrock-runtime.us-west-2.amazonaws.com`,baseUrlDescription:`Bedrock runtime endpoint from CAMP portal`,defaultModelId:`claude-sonnet-4-6`},ITe=/^(us|eu|global|apac)\./,LTe=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,RTe=/bedrock-runtime(?:-fips)?\.([a-z0-9-]+)\.amazonaws\.com(?:\.cn)?$/i;function O0(e){if(!e)return null;try{let{hostname:t}=new URL(e);return t.toLowerCase().match(RTe)?.[1]??null}catch{return null}}function zTe(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function k0(e,t){if(!ITe.test(e.id)||!LTe.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return zTe(n,t)}function BTe(e,t){return!j0(e,t,[`claude-opus-4-7`,`opus-4-7`])}function VTe(e){return{onPayload:e.onPayload,onResponse:e.onResponse,toolChoice:e.toolChoice,thinkingDisplay:e.thinkingDisplay,interleavedThinking:e.interleavedThinking,requestMetadata:e.requestMetadata}}function A0(e,t){return(t?[e,t]:[e]).flatMap(e=>{let t=e.toLowerCase();return[t,t.replace(/[\s_.:]+/g,`-`)]})}function j0(e,t,n){return A0(e,t).some(e=>n.some(t=>e.includes(t)))}function HTe(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function M0(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function UTe(e,t,n){let r=[],i=w0(e.messages,t,HTe);for(let e=0;e<i.length;e++){let n=i[e];switch(n.role){case`user`:r.push({role:`user`,content:typeof n.content==`string`?[{text:M0(n.content)}]:n.content.map(e=>{if(e.type===`text`)return{text:M0(e.text)};if(e.type===`image`)return{image:N0(e.mimeType,e.data)};throw Error(`Unknown user content type: ${e.type}`)})});break;case`assistant`:{if(n.content.length===0)continue;let e=[];for(let r of n.content)switch(r.type){case`text`:if(r.text.trim().length===0)continue;e.push({text:M0(r.text)});break;case`toolCall`:e.push({toolUse:{toolUseId:r.id,name:r.name,input:r.arguments}});break;case`thinking`:if(r.thinking.trim().length===0)continue;GTe(t)?!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({text:M0(r.thinking)}):e.push({reasoningContent:{reasoningText:{text:M0(r.thinking),signature:r.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:M0(r.thinking)}}});break}if(e.length===0)continue;r.push({role:`assistant`,content:e});break}case`toolResult`:{let t=[];t.push({toolResult:{toolUseId:n.toolCallId,content:n.content.map(e=>e.type===`image`?{image:N0(e.mimeType,e.data)}:{text:M0(e.text??e.json??JSON.stringify(e))}),status:n.isError?`error`:`success`}});let a=e+1;for(;a<i.length&&i[a].role===`toolResult`;){let e=i[a];t.push({toolResult:{toolUseId:e.toolCallId,content:e.content.map(e=>e.type===`image`?{image:N0(e.mimeType,e.data)}:{text:M0(e.text??e.json??JSON.stringify(e))}),status:e.isError?`error`:`success`}}),a++}e=a-1,r.push({role:`user`,content:t});break}}}if(n!==`none`&&I0(t)&&r.length>0){let e=r[r.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push(L0(n))}return r}function N0(e,t){return{source:{bytes:t},format:WTe(e)}}function WTe(e){switch(e){case`image/jpeg`:case`image/jpg`:return`jpeg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:throw Error(`Unsupported image MIME type: ${e}`)}}function GTe(e){return F0(e)}function P0(e,t){return j0(e,t,[`opus-4-6`,`opus-4-7`,`sonnet-4-6`])}function KTe(e,t){return j0(e,t,[`opus-4-7`])}function qTe(e,t){return j0(e,t,[`opus-4-6`])}function JTe(e,t){if(!e?.length||t===`none`)return;let n=e.map(e=>({toolSpec:{name:e.name,description:e.description,inputSchema:{json:e.parameters}}})),r;switch(t){case`auto`:r={auto:{}};break;case`any`:r={any:{}};break;default:t&&typeof t==`object`&&t.type===`tool`&&(r={tool:{name:t.name}})}return{tools:n,toolChoice:r}}function YTe(e,t,n){if(e===`xhigh`&&KTe(t,n))return`xhigh`;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return qTe(t,n)?`max`:`high`;default:return`high`}}function XTe(e){if(O0(e.baseUrl)?.toLowerCase().startsWith(`us-gov-`))return!0;let t=e.id.toLowerCase();return t.startsWith(`us-gov.`)||t.startsWith(`arn:aws-us-gov:`)}function ZTe(e,t){if(!t.reasoning||!e.reasoning||!F0(e))return;let n=XTe(e)?void 0:t.thinkingDisplay??`summarized`;if(P0(e.id,e.name))return{thinking:{type:`adaptive`,...n===void 0?{}:{display:n}},output_config:{effort:YTe(t.reasoning,e.id,e.name)}};let r={minimal:1024,low:2048,medium:8192,high:16384,xhigh:16384},i=t.reasoning===`xhigh`?`high`:t.reasoning,a={thinking:{type:`enabled`,budget_tokens:t.thinkingBudgets?.[i]??r[t.reasoning],...n===void 0?{}:{display:n}}};return(t.interleavedThinking??!0)&&(a.anthropic_beta=[`interleaved-thinking-2025-05-14`]),a}function F0(e){let t=e.id.toLowerCase(),n=e.name?.toLowerCase()??``;return t.includes(`anthropic.claude`)||t.includes(`anthropic/claude`)||n.includes(`anthropic.claude`)||n.includes(`anthropic/claude`)||n.includes(`claude`)}function I0(e){let t=A0(e.id,e.name);return t.some(e=>e.includes(`claude`))?!!(t.some(e=>e.includes(`-4-`))||t.some(e=>e.includes(`claude-3-7-sonnet`))||t.some(e=>e.includes(`claude-3-5-haiku`))):!1}function L0(e){return{cachePoint:{type:`default`,...e===`long`?{ttl:`1h`}:{}}}}function QTe(e,t,n){if(!e)return;let r=[{text:M0(e)}];return n!==`none`&&I0(t)&&r.push(L0(n)),r}function $Te(e){switch(e){case`end_turn`:case`stop_sequence`:return`stop`;case`max_tokens`:case`model_context_window_exceeded`:return`length`;case`tool_use`:return`toolUse`;default:return`error`}}function eEe(e,t){let n=`Bedrock CAMP API error (${e})`;return e===429?n=`Throttling error: ${n}`:e===503?n=`Service unavailable: ${n}`:e===502||e===504||e>=500?n=`Internal server error: ${n}`:e===400&&(n=`Validation error: ${n}`),`${n}: ${t}`}function tEe(e,t,n,r){r.push({type:`start`,partial:n});let i=e.output?.message;if(i?.content)for(let e=0;e<i.content.length;e++){let t=i.content[e];if(t.text!==void 0){let e={type:`text`,text:t.text};n.content.push(e);let i=n.content.length-1;r.push({type:`text_start`,contentIndex:i,partial:n}),r.push({type:`text_delta`,contentIndex:i,delta:t.text,partial:n}),r.push({type:`text_end`,contentIndex:i,content:t.text,partial:n})}else if(t.toolUse){let e={type:`toolCall`,id:t.toolUse.toolUseId||``,name:t.toolUse.name||``,arguments:t.toolUse.input||{}};n.content.push(e);let i=n.content.length-1;r.push({type:`toolcall_start`,contentIndex:i,partial:n}),r.push({type:`toolcall_end`,contentIndex:i,toolCall:e,partial:n})}else if(t.reasoningContent?.reasoningText){let e={type:`thinking`,thinking:t.reasoningContent.reasoningText.text||``,thinkingSignature:t.reasoningContent.reasoningText.signature||``};n.content.push(e);let i=n.content.length-1;r.push({type:`thinking_start`,contentIndex:i,partial:n}),r.push({type:`thinking_delta`,contentIndex:i,delta:e.thinking,partial:n}),r.push({type:`thinking_end`,contentIndex:i,content:e.thinking,partial:n})}}e.usage&&(n.usage.input=e.usage.inputTokens||0,n.usage.output=e.usage.outputTokens||0,n.usage.cacheRead=e.usage.cacheReadInputTokens||0,n.usage.cacheWrite=e.usage.cacheWriteInputTokens||0,n.usage.totalTokens=e.usage.totalTokens||n.usage.input+n.usage.output,AX(t,n.usage)),n.stopReason=$Te(e.stopReason||`end_turn`)}function nEe(e){return e??`short`}function rEe(e){let t={};return e.headers.forEach((e,n)=>{t[n.toLowerCase()]=e}),t}const R0=(e,t,n={})=>{let r=FX();return(async()=>{let i={role:`assistant`,content:[],api:`bedrock-camp-converse`,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:`stop`,timestamp:Date.now()};try{let a=n.apiKey;if(!a)throw Error(`API key is required for Bedrock CAMP`);let o=e.baseUrl;if(!o)throw Error(`Base URL is required for Bedrock CAMP`);let s=nEe(n.cacheRetention),c={};n.maxTokens!==void 0&&(c.maxTokens=n.maxTokens),n.temperature!==void 0&&BTe(e.id,e.name)&&(c.temperature=n.temperature);let l={modelId:e.id,messages:UTe(t,e,s),system:QTe(t.systemPrompt,e,s),inferenceConfig:c,toolConfig:JTe(t.tools,n.toolChoice),additionalModelRequestFields:ZTe(e,n),...n.requestMetadata===void 0?{}:{requestMetadata:n.requestMetadata}};if(l.system||delete l.system,l.toolConfig||delete l.toolConfig,l.additionalModelRequestFields||delete l.additionalModelRequestFields,n.onPayload){let t=await n.onPayload(l,e);t!==void 0&&(l=t)}let u=`${o.replace(/\/$/,``)}/model/${e.id}/converse`,d={"Content-Type":`application/json`,Authorization:`Bearer ${a}`,...n.headers??{}},f=await fetch(u,{method:`POST`,headers:d,body:JSON.stringify(l),signal:n.signal});if(n.onResponse&&await n.onResponse({status:f.status,headers:rEe(f)},e),!f.ok){let e=await f.text();throw Error(eEe(f.status,e))}if(tEe(await f.json(),e,i,r),i.stopReason===`error`||i.stopReason===`aborted`)throw Error(`An unknown error occurred`);r.push({type:`done`,reason:i.stopReason,message:i}),r.end()}catch(e){for(let e of i.content)delete e.index,delete e.partialJson;i.stopReason=n.signal?.aborted?`aborted`:`error`,i.errorMessage=e instanceof Error?e.message:JSON.stringify(e),r.push({type:`error`,reason:i.stopReason,error:i}),r.end()}})(),r},z0=(e,t,n)=>{let r=T0(e,n,void 0),i=n?VTe(n):{};if(!n?.reasoning)return R0(e,t,{...r,...i,reasoning:void 0});if(F0(e)){if(P0(e.id,e.name))return R0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let a=D0(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return R0(e,t,{...r,...i,maxTokens:a.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[E0(n.reasoning)]:a.budgetTokens}})}return R0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function iEe(){_X({api:`bedrock-camp-converse`,stream:R0,streamSimple:z0})}[`ghp_`,`gho_`,`ghu_`,`ghs_`,`ghr_`,`github_pat_`,`sk-`,`pk-`,`xoxb-`,`xoxp-`,`xoxa-`,`xoxs-`,`AKIA`,`ABIA`,`ACCA`,`ASIA`,`sk-ant-`,`Bearer `].sort((e,t)=>t.length-e.length);function aEe(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===`*`)return!0;if(!n.startsWith(`*.`))return n===r;let i=n.slice(1);return r.length>i.length&&r.endsWith(i)}function oEe(e,t){return e.some(e=>aEe(e,t))}const B0=`slicc_oauth_extra_domains`;function V0(e){try{let t=e.getItem(B0);if(!t)return{};let n=JSON.parse(t);if(typeof n!=`object`||!n||Array.isArray(n))return{};let r={};for(let[e,t]of Object.entries(n)){if(typeof e!=`string`||!Array.isArray(t))continue;let n=t.filter(e=>typeof e==`string`&&e.length>0);n.length>0&&(r[e]=n)}return r}catch{return{}}}function H0(e,t){try{e.setItem(B0,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}var U0=c({addAccount:()=>mEe,getAccounts:()=>n2,getAllAvailableModels:()=>t2,getAllExtraOAuthDomains:()=>pEe,getApiKey:()=>m2,getApiKeyForProvider:()=>c2,getApiVersionForProvider:()=>d2,getAvailableProviders:()=>lEe,getBaseUrlForProvider:()=>l2,getDeploymentForProvider:()=>u2,getExtraOAuthDomains:()=>r2,getOAuthAccountInfo:()=>Q0,getProviderConfig:()=>Y0,getProviderModels:()=>Z0,getRawApiKeyForProvider:()=>gEe,getSelectedModelId:()=>f2,getSelectedProvider:()=>p2,isModelHiddenFromPicker:()=>e2,removeAccount:()=>hEe,resolveCurrentModel:()=>g2,resolveModelById:()=>h2,saveOAuthAccount:()=>s2,setExtraOAuthDomains:()=>i2,setExtraOAuthDomainsAsync:()=>fEe});const W0=T_e,G0=kX,K0=`slicc_accounts`,q0=`selected-model`,sEe=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`];let J0=!1;function cEe(){if(!J0){J0=!0;for(let e of sEe)try{localStorage.removeItem(e)}catch{}}}function lEe(){let e=OX().filter(h0),t=b0();return[...new Set([...e,...t])]}function Y0(e){return y0(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function X0(e,t){t.context_window!==void 0&&(e.contextWindow=t.context_window),t.max_tokens!==void 0&&(e.maxTokens=t.max_tokens),t.reasoning!==void 0&&(e.reasoning=t.reasoning),t.input!==void 0&&(e.input=t.input),t.compat!==void 0&&(e.compat={...e.compat??{},...t.compat})}function Z0(e){try{if(e===`bedrock-camp`){let e=O0(l2(`bedrock-camp`));return G0(`amazon-bedrock`).filter(t=>k0(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=Y0(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return $0.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of OX())try{for(let t of G0(e))r.set(t.id,t)}catch{}return n.map(n=>{let i=`${e}-${n.api===`openai`?`openai`:`anthropic`}`,a=r.get(n.id),o=a?{...a,api:i,provider:e}:{id:n.id,name:n.name??n.id,provider:e,api:i,baseUrl:``,contextWindow:2e5,maxTokens:16384,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},inputCost:0,outputCost:0,cacheReadCost:0,cacheWriteCost:0,reasoning:!0},s=t.modelOverrides?.[n.id];return s&&X0(o,s),X0(o,n),o})}if(t.isOAuth){let n=G0(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&X0(i,a),i})}return G0(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return $0.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function Q0(e){let t=n2().find(t=>t.providerId===e);if(!t?.accessToken)return null;let n=!!t.tokenExpiresAt&&Date.now()>t.tokenExpiresAt-6e4;return{token:t.accessToken,maskedValue:t.maskedValue,expiresAt:t.tokenExpiresAt,userName:t.userName,userAvatar:t.userAvatar,expired:n}}Object.assign({})[`/packages/webapp/providers.json`];const $0=_(`provider-settings`),uEe=[/haiku/i];function e2(e){return uEe.some(t=>t.test(e))}function dEe(e){return e.filter(e=>!e2(e.id))}function t2(){let e=n2();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=dEe(Z0(n.providerId));if(e.length===0)continue;let r=Y0(n.providerId),i={providerId:n.providerId,providerName:r.name,models:e};t.set(n.providerId,i)}return[...t.values()]}function n2(){cEe();let e=localStorage.getItem(K0);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.providerId==`string`&&typeof e.apiKey==`string`):[]}catch{return[]}}function r2(e){return V0(localStorage)[e]??[]}function i2(e,t){let n=V0(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,H0(localStorage,n)}async function fEe(e,t){if(kP()){i2(e,t);return}let n=OP();if(!n)throw Error(`setExtraOAuthDomainsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let{storeAfter:r}=await n.call(`oauth-extras-set`,{providerId:e,domains:t});try{H0(localStorage,r)}catch(t){$0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function pEe(){return V0(localStorage)}function a2(e){localStorage.setItem(K0,JSON.stringify(e))}async function o2(e){if(kP()){a2(e);return}let t=OP();if(!t)throw Error(`saveAccountsAsync: no DOM and no panel-rpc client — cannot persist to page localStorage`);let n=JSON.stringify(e),{storedJson:r}=await t.call(`save-oauth-accounts`,{accountsJson:n});try{localStorage.setItem(K0,r)}catch(e){$0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function mEe(e,t,n,r,i){let a=n2().filter(t=>t.providerId!==e),o={providerId:e,apiKey:t};n&&(o.baseUrl=n),r&&(o.deployment=r),i&&(o.apiVersion=i),a.push(o),a2(a)}async function hEe(e){let t=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(t)await chrome.storage.local.remove([`oauth.${e}.token`,`oauth.${e}.token_DOMAINS`]);else{let t=await fetch(`/api/secrets/oauth/${e}`,{method:`DELETE`});!t.ok&&t.status!==404&&$0.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){$0.error(`OAuth replica removal failed`,{providerId:e,isExtension:t,error:n instanceof Error?n.message:String(n)})}await o2(n2().filter(t=>t.providerId!==e));let n=localStorage.getItem(q0)??``,r=n.indexOf(`:`);r>0&&n.slice(0,r)===e&&localStorage.removeItem(q0)}async function s2(e){let t=n2().find(t=>t.providerId===e.providerId),n=n2().filter(t=>t.providerId!==e.providerId);n.push({providerId:e.providerId,apiKey:``,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenExpiresAt:e.tokenExpiresAt,userName:e.userName,userAvatar:e.userAvatar,baseUrl:e.baseUrl??t?.baseUrl}),await o2(n);let r=Y0(e.providerId)?.oauthTokenDomains??[],i=r2(e.providerId),a=new Set,o=[];for(let e of[...r,...i]){let t=e.toLowerCase();a.has(t)||(a.add(t),o.push(e))}if(o.length===0)return;let s=typeof chrome<`u`&&!!chrome?.runtime?.id;try{if(s){await chrome.storage.local.set({[`oauth.${e.providerId}.token`]:e.accessToken,[`oauth.${e.providerId}.token_DOMAINS`]:o.join(`,`)});let t=await new Promise(t=>{chrome.runtime.sendMessage({type:`secrets.mask-oauth-token`,providerId:e.providerId},n=>{chrome.runtime.lastError&&$0.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message}),t(n??{})})});if(t.error&&$0.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t.maskedValue){let n=n2(),r=n.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=t.maskedValue,await o2(n))}}else{let t=await fetch(`/api/secrets/oauth-update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({providerId:e.providerId,accessToken:e.accessToken,domains:o})});if(t.ok){let n=await t.json(),r=n2(),i=r.find(t=>t.providerId===e.providerId);i&&typeof n.maskedValue==`string`&&(i.maskedValue=n.maskedValue,await o2(r))}else $0.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){$0.error(`OAuth replica sync failed`,{providerId:e.providerId,isExtension:s,error:t instanceof Error?t.message:String(t)})}}function gEe(e){let t=n2().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function c2(e){let t=n2().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(Y0(e).optionalApiKey?`local`:null):null}function l2(e){return n2().find(t=>t.providerId===e)?.baseUrl??null}function u2(e){return n2().find(t=>t.providerId===e)?.deployment??null}function d2(e){return n2().find(t=>t.providerId===e)?.apiVersion??null}function f2(){let e=localStorage.getItem(q0)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function _Ee(){return localStorage.getItem(q0)||``}function p2(){let e=_Ee(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=n2();return n.length>0?n[0].providerId:`anthropic`}function m2(){return c2(p2())}function h2(e){if(!e)return g2();let t=p2(),n=l2(t);try{let r=Y0(t),i=W0(r.isOAuth||t===`azure-ai-foundry`?`anthropic`:t===`bedrock-camp`?`amazon-bedrock`:t,e);if(!i?.id)throw Error(`Model ${e} not found`);let a=i;return r.isOAuth?a=Z0(t).find(t=>t.id===e)||{...a,api:`${t}-anthropic`,provider:t}:t===`bedrock-camp`&&(a={...a,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(a={...a,baseUrl:n}),a}catch{return g2()}}function g2(){let e=p2(),t=f2(),n=l2(e),r=Z0(e),i=Y0(e),a=i.defaultModelId?r.find(e=>e.id.toLowerCase().includes(i.defaultModelId.toLowerCase()))?.id:void 0,o=t||a||r[0]?.id||`claude-sonnet-4-6`;try{let t=Y0(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=W0(i,o);if(!a?.id)throw Error(`Model ${o} not found in ${i} registry`);let s=a;return t.isOAuth?s=r.find(e=>e.id===o)||{...s,api:`${e}-anthropic`,provider:e}:e===`bedrock-camp`&&(s={...s,api:`bedrock-camp-converse`,provider:`bedrock-camp`}),n&&(s={...s,baseUrl:n}),s}catch{let e=r.find(e=>e.id===o);return e?n?{...e,baseUrl:n}:e:W0(`anthropic`,`claude-sonnet-4-0`)}}async function vEe(e){if(!navigator.mediaDevices?.getUserMedia)throw Error(`getUserMedia is not supported in this browser`);let t=e.mode===`photo`||e.captureVideo!==!1,n=!!e.captureAudio&&e.mode===`video`;if(!t&&!n)throw Error(`camera capture: at least one of video or audio must be requested`);let r=await yEe({wantVideo:t,videoDeviceId:t?await _2(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await _2(e.audioDeviceId,`audioinput`):void 0,wantAudio:n,width:e.width,height:e.height,frameRate:e.frameRate,exact:!!e.exactSize});try{let n=null,i=0,a=0;if(t){n=document.createElement(`video`),n.srcObject=r,n.muted=!0,n.playsInline=!0;let e=n;await new Promise((t,n)=>{e.onloadedmetadata=()=>e.play().then(()=>t()).catch(n),e.onerror=()=>n(Error(`Failed to load camera stream`))}),await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e())),i=e.videoWidth,a=e.videoHeight}if(e.mode===`photo`){if(!n)throw Error(`photo capture requires a video track`);let t=e.warmupMs??1500;t>0&&await new Promise(e=>setTimeout(e,t));let r=document.createElement(`canvas`);r.width=i,r.height=a;let o=r.getContext(`2d`);if(!o)throw Error(`Failed to get canvas context`);o.drawImage(n,0,0,i,a);let s=await new Promise((t,n)=>{r.toBlob(e=>e?t(e):n(Error(`Failed to encode photo`)),e.mimeType,e.quality)});return{bytes:await s.arrayBuffer(),mimeType:s.type||e.mimeType,width:i,height:a}}let o=Math.max(100,Math.min(e.durationMs??5e3,6e4)),s=typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported(e.mimeType)?e.mimeType:`video/webm`,c=new MediaRecorder(r,{mimeType:s}),l=[];c.ondataavailable=e=>{e.data&&e.data.size>0&&l.push(e.data)};let u=new Promise(e=>{c.onstop=()=>e()});c.start(),await new Promise(e=>setTimeout(e,o)),c.stop(),await u;let d=new Blob(l,{type:s});return{bytes:await d.arrayBuffer(),mimeType:d.type||s,width:i,height:a,durationMs:o}}finally{r.getTracks().forEach(e=>e.stop())}}async function _2(e,t){if(e===void 0||e===``)return;if(!/^\d+$/.test(e))return e;if(!navigator.mediaDevices?.enumerateDevices)return;let n=parseInt(e,10);return(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===t)[n]?.deviceId}async function yEe(e){let t=t=>{if(!e.wantVideo)return!1;let n={};return e.videoDeviceId&&(n.deviceId={exact:e.videoDeviceId}),e.width&&(n.width=t===`exact`?{exact:e.width}:{ideal:e.width}),e.height&&(n.height=t===`exact`?{exact:e.height}:{ideal:e.height}),e.frameRate&&(n.frameRate=t===`exact`?{exact:e.frameRate}:{ideal:e.frameRate}),Object.keys(n).length>0?n:!0},n=()=>e.wantAudio?e.audioDeviceId?{deviceId:{exact:e.audioDeviceId}}:!0:!1;try{return await navigator.mediaDevices.getUserMedia({video:t(e.exact?`exact`:`ideal`),audio:n()})}catch(r){let i=r?.name;if(!e.exact||i!==`OverconstrainedError`&&i!==`NotReadableError`)throw r;return console.warn(`panel-rpc:capture-camera: exact ${e.width??`?`}x${e.height??`?`}@${e.frameRate??`?`} unmet, falling back to ideal`),await navigator.mediaDevices.getUserMedia({video:t(`ideal`),audio:n()})}}function bEe(){return{stdout:`ffmpeg - WASM build, downloaded on demand
3447
3447
 
3448
3448
  Usage:
3449
3449
  ffmpeg [global-opts] -i input [input-opts] ... output [output-opts]
@@ -3662,20 +3662,20 @@ authorization-code flow, stores the access token, and retries.
3662
3662
  On success, the server is persisted to /workspace/.mcp/servers.json and
3663
3663
  an alias shim is written to /workspace/.mcp/aliases/<name>.jsh so the
3664
3664
  short name resolves on the PATH.
3665
- `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return q2(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return q2(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_\-]*$/.test(i))return q2(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-DuyeqtSu.js`).then(e=>e.r);if(await a(i,t.fs))return q2(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>R2),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await uDe(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>X2(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await ODe(i,t);let m=await Q2(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-yeAVK7Ac.js`);e({name:i,serverUrl:r,auth:u})}return K2([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${G2}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
3665
+ `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return q2(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return q2(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_\-]*$/.test(i))return q2(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-BLIW0xe0.js`).then(e=>e.r);if(await a(i,t.fs))return q2(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>R2),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await uDe(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>X2(i)}),await l.initialize()}let d=await l.toolsList(),f=await l.appsList(),p=new Date().toISOString();await o(i,{url:r,tools:d,apps:f,addedAt:p,lastRefreshedAt:p,...u?{auth:u}:{}},t.fs),await ODe(i,t);let m=await Q2(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-Dv9mviVN.js`);e({name:i,serverUrl:r,auth:u})}return K2([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${G2}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
3666
3666
  `)+`
3667
- `)}async function uDe(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-pEdtO0n-.js`),{saveOAuthAccount:s}=await Promise.resolve().then(()=>U0),c=await EDe(r.oauthFetchImpl),l=r.oauthLauncher??await wDe(),u=await i(e,n,c);W2.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await TDe(),f=await a(u,d,c),p=u.supportedScopes&&u.supportedScopes.length>0?u.supportedScopes.join(` `):void 0,m=await o({asMetadata:u,clientId:f.clientId,scope:p,redirectUri:d,launcher:l,fetchImpl:c}),h=`mcp:${t}`;return await s({providerId:h,accessToken:m.accessToken,refreshToken:m.refreshToken,tokenExpiresAt:m.expiresAt}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function dDe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return K2(`usage: mcp list
3668
- `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-yeAVK7Ac.js`);await n();let{listServers:r}=await import(`./store-DuyeqtSu.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return K2("No MCP servers configured. Use `mcp add <url> <name>`.\n");let o=[[`NAME`,`URL`,`AUTH`,`TOOLS`,`APPS`,`ADDED`]];for(let e of a){let t=i[e];o.push([e,t.url,t.auth?`yes`:`no`,String(t.tools?.length??0),String(t.apps?.length??0),t.addedAt?t.addedAt.slice(0,10):`-`])}return K2(J2(o))}function J2(e){let t=e[0].map((t,n)=>e.reduce((e,t)=>Math.max(e,(t[n]??``).length),0));return e.map(e=>e.map((e,n)=>e.padEnd(t[n])).join(` `).trimEnd()).join(`
3667
+ `)}async function uDe(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-C1zT34i5.js`),{saveOAuthAccount:s}=await Promise.resolve().then(()=>U0),c=await EDe(r.oauthFetchImpl),l=r.oauthLauncher??await wDe(),u=await i(e,n,c);W2.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await TDe(),f=await a(u,d,c),p=u.supportedScopes&&u.supportedScopes.length>0?u.supportedScopes.join(` `):void 0,m=await o({asMetadata:u,clientId:f.clientId,scope:p,redirectUri:d,launcher:l,fetchImpl:c}),h=`mcp:${t}`;return await s({providerId:h,accessToken:m.accessToken,refreshToken:m.refreshToken,tokenExpiresAt:m.expiresAt}),{providerId:h,authorizationServer:u.issuer,clientId:f.clientId,scope:m.scope??p,registrationClientUri:f.registrationClientUri}}async function dDe(e,t){if(e.includes(`--help`)||e.includes(`-h`))return K2(`usage: mcp list
3668
+ `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-Dv9mviVN.js`);await n();let{listServers:r}=await import(`./store-BLIW0xe0.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return K2("No MCP servers configured. Use `mcp add <url> <name>`.\n");let o=[[`NAME`,`URL`,`AUTH`,`TOOLS`,`APPS`,`ADDED`]];for(let e of a){let t=i[e];o.push([e,t.url,t.auth?`yes`:`no`,String(t.tools?.length??0),String(t.apps?.length??0),t.addedAt?t.addedAt.slice(0,10):`-`])}return K2(J2(o))}function J2(e){let t=e[0].map((t,n)=>e.reduce((e,t)=>Math.max(e,(t[n]??``).length),0));return e.map(e=>e.map((e,n)=>e.padEnd(t[n])).join(` `).trimEnd()).join(`
3669
3669
  `)+`
3670
3670
  `}async function fDe(e,t){if(e[0]===`--help`||e[0]===`-h`)return K2(`usage: mcp search <query>
3671
3671
 
3672
3672
  Case-insensitive substring search across the cached tools of every
3673
3673
  registered MCP server. Matches tool name OR description and prints a
3674
3674
  table of (server, tool, description, match-field) rows.
3675
- `);if(e.length===0)return q2(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-yeAVK7Ac.js`);await i();let{listServers:a}=await import(`./store-DuyeqtSu.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return K2("No MCP servers configured. Use `mcp add <url> <name>`.\n");let c=[];for(let e of s){let t=o[e].tools??[];for(let n of t){let t=n.description??``,i=n.name.toLowerCase().includes(r),a=t.toLowerCase().includes(r);if(!i&&!a)continue;let o=i&&a?`name+description`:i?`name`:`description`;c.push({server:e,tool:n.name,description:t,match:o})}}if(c.length===0)return K2(`No tools matched "${n}".\n`);c.sort((e,t)=>e.server===t.server?e.tool.localeCompare(t.tool):e.server.localeCompare(t.server));let l=[[`SERVER`,`TOOL`,`DESCRIPTION`,`MATCH`]];for(let e of c)l.push([e.server,e.tool,pDe(e.description),e.match]);return K2(J2(l))}function pDe(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function mDe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?q2(`mcp delete: expected <name>`):K2(`usage: mcp delete <name>
3676
- `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-yeAVK7Ac.js`);await r(n);let{deleteServer:a}=await import(`./store-DuyeqtSu.js`).then(e=>e.r),o=await a(n,t.fs);await kDe(n,t),await ADe(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await Promise.resolve().then(()=>U0);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){W2.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?q2(`mcp delete: no server, alias, or account found for "${n}"`):K2([`Removed MCP server "${n}"`,` servers.json: ${o?`removed`:`not present`}`,` alias: cleaned`,` sprinkles: cleaned`,` oauth: ${c?`removed`:`not present`}`,` provider: ${l?`unregistered`:`not registered`}`].join(`
3675
+ `);if(e.length===0)return q2(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-Dv9mviVN.js`);await i();let{listServers:a}=await import(`./store-BLIW0xe0.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return K2("No MCP servers configured. Use `mcp add <url> <name>`.\n");let c=[];for(let e of s){let t=o[e].tools??[];for(let n of t){let t=n.description??``,i=n.name.toLowerCase().includes(r),a=t.toLowerCase().includes(r);if(!i&&!a)continue;let o=i&&a?`name+description`:i?`name`:`description`;c.push({server:e,tool:n.name,description:t,match:o})}}if(c.length===0)return K2(`No tools matched "${n}".\n`);c.sort((e,t)=>e.server===t.server?e.tool.localeCompare(t.tool):e.server.localeCompare(t.server));let l=[[`SERVER`,`TOOL`,`DESCRIPTION`,`MATCH`]];for(let e of c)l.push([e.server,e.tool,pDe(e.description),e.match]);return K2(J2(l))}function pDe(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function mDe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?q2(`mcp delete: expected <name>`):K2(`usage: mcp delete <name>
3676
+ `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-Dv9mviVN.js`);await r(n);let{deleteServer:a}=await import(`./store-BLIW0xe0.js`).then(e=>e.r),o=await a(n,t.fs);await kDe(n,t),await ADe(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await Promise.resolve().then(()=>U0);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){W2.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?q2(`mcp delete: no server, alias, or account found for "${n}"`):K2([`Removed MCP server "${n}"`,` servers.json: ${o?`removed`:`not present`}`,` alias: cleaned`,` sprinkles: cleaned`,` oauth: ${c?`removed`:`not present`}`,` provider: ${l?`unregistered`:`not registered`}`].join(`
3677
3677
  `)+`
3678
- `)}async function hDe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?q2(`mcp invoke: expected <name>`):K2(_De());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-yeAVK7Ac.js`);await i(n);let{getServer:a}=await import(`./store-DuyeqtSu.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return q2(`mcp invoke: unknown server "${n}" (run \`mcp add <url> ${n}\` first)`);let s=o.tools??[];if(r.length===0||r[0]===`--help`||r[0]===`-h`)return K2(vDe(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return q2(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=gDe(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return K2(yDe(n,l));let p=bDe(d,l.inputSchema);if(!p.ok)return q2(`mcp invoke: ${p.error}`);let{McpClient:m}=await Promise.resolve().then(()=>R2),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>X2(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=SDe(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function gDe(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=Y2(a.slice(10));e.ok?r=e.value:n.push(e.error),i+=1;continue}if(a===`--timeout`){let t=e[i+1];if(t===void 0||t.startsWith(`--`)){n.push(`mcp invoke: --timeout requires a value (got ${t===void 0?`nothing`:`"${t}"`}); using default.`),i+=1;continue}let a=Y2(t);a.ok?r=a.value:n.push(a.error),i+=2;continue}t.push(a),i+=1}return{timeoutMs:r,remaining:t,warnings:n}}function Y2(e){if(!/^-?\d+$/.test(e))return{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (expected positive integer seconds); using default.`};let t=Number(e);return!Number.isFinite(t)||t<1?{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (must be >= 1 second); using default.`}:{ok:!0,value:t*1e3}}function _De(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
3678
+ `)}async function hDe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?q2(`mcp invoke: expected <name>`):K2(_De());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-Dv9mviVN.js`);await i(n);let{getServer:a}=await import(`./store-BLIW0xe0.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return q2(`mcp invoke: unknown server "${n}" (run \`mcp add <url> ${n}\` first)`);let s=o.tools??[];if(r.length===0||r[0]===`--help`||r[0]===`-h`)return K2(vDe(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return q2(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=gDe(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return K2(yDe(n,l));let p=bDe(d,l.inputSchema);if(!p.ok)return q2(`mcp invoke: ${p.error}`);let{McpClient:m}=await Promise.resolve().then(()=>R2),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>X2(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=SDe(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function gDe(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=Y2(a.slice(10));e.ok?r=e.value:n.push(e.error),i+=1;continue}if(a===`--timeout`){let t=e[i+1];if(t===void 0||t.startsWith(`--`)){n.push(`mcp invoke: --timeout requires a value (got ${t===void 0?`nothing`:`"${t}"`}); using default.`),i+=1;continue}let a=Y2(t);a.ok?r=a.value:n.push(a.error),i+=2;continue}t.push(a),i+=1}return{timeoutMs:r,remaining:t,warnings:n}}function Y2(e){if(!/^-?\d+$/.test(e))return{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (expected positive integer seconds); using default.`};let t=Number(e);return!Number.isFinite(t)||t<1?{ok:!1,error:`mcp invoke: invalid --timeout value "${e}" (must be >= 1 second); using default.`}:{ok:!0,value:t*1e3}}function _De(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
3679
3679
 
3680
3680
  mcp invoke <name> List tools on <name>.
3681
3681
  mcp invoke <name> <tool> --help Show flags for <tool>.
@@ -3702,7 +3702,7 @@ Arguments are coerced according to the tool's JSON Schema:
3702
3702
  `),a=i.endsWith(`
3703
3703
  `)?``:`
3704
3704
  `;return t.isError?{stdout:``,stderr:(i||`(tool reported error)`)+a,exitCode:1}:{stdout:i+(i?a:``),stderr:``,exitCode:0}}async function CDe(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?q2(`mcp refresh: expected <name>`):K2(`usage: mcp refresh <name>
3705
- `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-yeAVK7Ac.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-DuyeqtSu.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return q2(`mcp refresh: unknown server "${n}"`);let{McpClient:s}=await Promise.resolve().then(()=>R2),c=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>X2(n):void 0});await c.initialize();let l=await c.toolsList(),u=await c.appsList();await a(n,{...o,sessionId:void 0,tools:l,apps:u,lastRefreshedAt:new Date().toISOString()},t.fs);let d=await Q2(n,u,t);return K2(`Refreshed "${n}" — tools: ${l.length}, apps: ${u.length} (${d} sprinkle${d===1?``:`s`})\n`)}async function X2(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await Promise.resolve().then(()=>U0),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await Promise.resolve().then(()=>m0),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){W2.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function wDe(){let{createOAuthLauncher:e}=await import(`./oauth-service-E487CG2S.js`);return e()}async function TDe(){let e=typeof chrome<`u`?chrome:void 0;if(e?.runtime?.id)return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime.id}.chromiumapp.org/mcp-callback`;let{getOAuthPageOrigin:t}=await import(`./oauth-service-E487CG2S.js`),{origin:n}=await t();return`${n}/auth/callback`}async function EDe(e){if(e)return e;let{createProxiedFetch:t}=await Promise.resolve().then(()=>eP),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function Z2(e){if(e)return e;let{VirtualFS:t}=await Promise.resolve().then(()=>Yk),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>YN);return await t.create({dbName:n})}function DDe(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
3705
+ `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-Dv9mviVN.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-BLIW0xe0.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return q2(`mcp refresh: unknown server "${n}"`);let{McpClient:s}=await Promise.resolve().then(()=>R2),c=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>X2(n):void 0});await c.initialize();let l=await c.toolsList(),u=await c.appsList();await a(n,{...o,sessionId:void 0,tools:l,apps:u,lastRefreshedAt:new Date().toISOString()},t.fs);let d=await Q2(n,u,t);return K2(`Refreshed "${n}" — tools: ${l.length}, apps: ${u.length} (${d} sprinkle${d===1?``:`s`})\n`)}async function X2(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await Promise.resolve().then(()=>U0),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await Promise.resolve().then(()=>m0),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){W2.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function wDe(){let{createOAuthLauncher:e}=await import(`./oauth-service-BfUBqpue.js`);return e()}async function TDe(){let e=typeof chrome<`u`?chrome:void 0;if(e?.runtime?.id)return e.identity?.getRedirectURL?.(`mcp-callback`)??`https://${e.runtime.id}.chromiumapp.org/mcp-callback`;let{getOAuthPageOrigin:t}=await import(`./oauth-service-BfUBqpue.js`),{origin:n}=await t();return`${n}/auth/callback`}async function EDe(e){if(e)return e;let{createProxiedFetch:t}=await Promise.resolve().then(()=>eP),n=t();return async(e,t)=>{let r=await n(e,{method:t?.method,headers:t?.headers,body:t?.body}),i=new TextDecoder().decode(r.body);return{ok:r.status>=200&&r.status<300,status:r.status,statusText:r.statusText,text:async()=>i,json:async()=>JSON.parse(i),headers:{get:e=>r.headers[e.toLowerCase()]??null}}}}async function Z2(e){if(e)return e;let{VirtualFS:t}=await Promise.resolve().then(()=>Yk),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>YN);return await t.create({dbName:n})}function DDe(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
3706
3706
  // Auto-generated by \`mcp add ${e}\`; do not edit by hand.
3707
3707
  const argv = Array.isArray(process.argv) ? process.argv.slice(2) : [];
3708
3708
  const escape = (s) => {
@@ -3716,7 +3716,7 @@ const r = await exec(cmd);
3716
3716
  if (r.stdout) process.stdout.write(r.stdout);
3717
3717
  if (r.stderr) process.stderr.write(r.stderr);
3718
3718
  process.exit(r.exitCode || 0);
3719
- `}async function ODe(e,t){let n=await Z2(t.fs);await n.mkdir(G2,{recursive:!0}),await n.writeFile(`${G2}/${e}.jsh`,DDe(e)),t.scriptCatalog?.invalidateJsh()}async function kDe(e,t){let n=await Z2(t.fs),r=`${G2}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){W2.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function ADe(e,t){let{removeAppSprinkles:n}=await import(`./apps-DHjHDFp8.js`);await n(e,t.fs)}async function Q2(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-DHjHDFp8.js`);return(await r(e,t,n.fs)).length}catch(t){return W2.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const $2=new Map;let jDe=0;function MDe(){return HC(`fswatch`,async e=>{let t=e[0];if(!t||t===`--help`)return{stdout:`usage: fswatch <command> [options]
3719
+ `}async function ODe(e,t){let n=await Z2(t.fs);await n.mkdir(G2,{recursive:!0}),await n.writeFile(`${G2}/${e}.jsh`,DDe(e)),t.scriptCatalog?.invalidateJsh()}async function kDe(e,t){let n=await Z2(t.fs),r=`${G2}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){W2.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function ADe(e,t){let{removeAppSprinkles:n}=await import(`./apps-Ejwl_4gp.js`);await n(e,t.fs)}async function Q2(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-Ejwl_4gp.js`);return(await r(e,t,n.fs)).length}catch(t){return W2.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const $2=new Map;let jDe=0;function MDe(){return HC(`fswatch`,async e=>{let t=e[0];if(!t||t===`--help`)return{stdout:`usage: fswatch <command> [options]
3720
3720
 
3721
3721
  Commands:
3722
3722
  create --path <path> --pattern <glob> [--scoop <name>] [--name <name>] Watch for file changes
@@ -3811,8 +3811,8 @@ Examples:
3811
3811
  `}function VDe(){return HC(`oauth-token`,async e=>{let{getOAuthAccountInfo:t,getSelectedProvider:n,getAccounts:r}=await Promise.resolve().then(()=>U0),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await Promise.resolve().then(()=>m0);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:BDe(),stderr:``,exitCode:0};if(e.includes(`--list`))return UDe(r,a,i,t);if(e.includes(`--from-file`)||e.includes(`--intercept`))return HDe(e);let o,s=e.indexOf(`--scope`);if(s>=0){if(o=e[s+1]?.trim(),!o||o.startsWith(`-`))return{stdout:``,stderr:`oauth-token: --scope requires a value
3812
3812
  `,exitCode:1};e.splice(s,2)}let c,l=e.indexOf(`--provider`);if(l>=0){if(c=e[l+1],!c)return{stdout:``,stderr:`oauth-token: --provider requires a value
3813
3813
  `,exitCode:1}}else if(e.length>0)c=e[0];else{let e=n(),t=i(e);if(t?.isOAuth&&(t.onOAuthLogin||t.onOAuthLoginIntercepted))c=e;else if(c=a().find(e=>{let t=i(e);return t?.isOAuth&&(t.onOAuthLogin||t.onOAuthLoginIntercepted)}),!c)return{stdout:``,stderr:`oauth-token: no OAuth providers configured
3814
- `,exitCode:1}}let u=i(c);if(!u)return{stdout:``,stderr:`oauth-token: unknown provider "${c}"\n`,exitCode:1};if(!u.isOAuth||!u.onOAuthLogin&&!u.onOAuthLoginIntercepted)return{stdout:``,stderr:`oauth-token: provider "${c}" is not an OAuth provider\n`,exitCode:1};if(!o){let e=t(c);if(e&&!e.expired){let t=e.maskedValue;return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:{stdout:``,stderr:`oauth-token: no masked value for ${c} (try logging in again)\n`,exitCode:1}}}try{if(u.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-E487CG2S.js`),t=await e();if(!t)return{stdout:``,stderr:`oauth-token: provider "${c}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.\n`,exitCode:1};await u.onOAuthLoginIntercepted(t,()=>{},o?{scopes:o}:void 0)}else if(u.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-E487CG2S.js`),t=e();await u.onOAuthLogin(t,()=>{},o?{scopes:o}:void 0)}else return{stdout:``,stderr:`oauth-token: provider "${c}" has no OAuth login hook\n`,exitCode:1};let e=t(c);if(e&&e.token){let t=e.maskedValue;return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:{stdout:``,stderr:`oauth-token: no masked value for ${c} (try logging in again)\n`,exitCode:1}}return console.error(`[oauth-token] Provider ${c}: login completed but no token was saved`),{stdout:``,stderr:`oauth-token: login completed but no token was saved
3815
- `,exitCode:1}}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`[oauth-token] Provider ${c}: login failed:`,t),{stdout:``,stderr:`oauth-token: login failed: ${t}\n`,exitCode:1}}})}async function HDe(e){let{parseInterceptOAuthConfig:t}=await import(`./intercepted-oauth-5XrS3zi4.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-E487CG2S.js`),r,i=e.indexOf(`--from-file`);if(i>=0){let t=e[i+1];if(!t)return i4(`oauth-token: --from-file requires a path`);try{let{VirtualFS:e}=await Promise.resolve().then(()=>Yk),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>YN),i=await(await e.create({dbName:n})).readFile(t);r=JSON.parse(typeof i==`string`?i:new TextDecoder().decode(i))}catch(e){return i4(`oauth-token: failed to read ${t}: ${e instanceof Error?e.message:String(e)}`)}}else{let t=r4(e,`--authorize-url`),n=r4(e,`--redirect-pattern`);if(!t)return i4(`oauth-token: --authorize-url is required`);if(!n)return i4(`oauth-token: --redirect-pattern is required`);let i=[];for(let t=0;t<e.length;t++){if(e[t]!==`--rewrite`)continue;let n=e[t+1];if(!n)return i4(`oauth-token: --rewrite requires a value`);let r=n.split(`=`);if(r.length<3)return i4(`oauth-token: --rewrite "${n}" must be "<match>=<key>=<value>"`);let[a,o,...s]=r;i.push({match:a,appendParams:{[o]:s.join(`=`)}})}r={authorizeUrl:t,redirectUriPattern:n,onCapture:e.includes(`--leave-tab`)?`leave`:`close`,...i.length>0?{rewrite:i}:{}}}let a=t(r);if(!a.ok)return i4(`oauth-token: invalid intercept config: ${a.error}`);let o=await n();if(!o)return i4(`oauth-token: no CDP transport available in this runtime; --intercept needs the controlled browser.`);let s=await o(a.config);return s?{stdout:`${s}\n`,stderr:``,exitCode:0}:i4(`oauth-token: intercept timed out or was cancelled`)}function r4(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function i4(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function UDe(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
3814
+ `,exitCode:1}}let u=i(c);if(!u)return{stdout:``,stderr:`oauth-token: unknown provider "${c}"\n`,exitCode:1};if(!u.isOAuth||!u.onOAuthLogin&&!u.onOAuthLoginIntercepted)return{stdout:``,stderr:`oauth-token: provider "${c}" is not an OAuth provider\n`,exitCode:1};if(!o){let e=t(c);if(e&&!e.expired){let t=e.maskedValue;return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:{stdout:``,stderr:`oauth-token: no masked value for ${c} (try logging in again)\n`,exitCode:1}}}try{if(u.onOAuthLoginIntercepted){let{createInterceptingOAuthLauncherForCurrentRuntime:e}=await import(`./oauth-service-BfUBqpue.js`),t=await e();if(!t)return{stdout:``,stderr:`oauth-token: provider "${c}" needs the controlled-browser interceptor, but no CDP transport is available in this runtime.\n`,exitCode:1};await u.onOAuthLoginIntercepted(t,()=>{},o?{scopes:o}:void 0)}else if(u.onOAuthLogin){let{createOAuthLauncher:e}=await import(`./oauth-service-BfUBqpue.js`),t=e();await u.onOAuthLogin(t,()=>{},o?{scopes:o}:void 0)}else return{stdout:``,stderr:`oauth-token: provider "${c}" has no OAuth login hook\n`,exitCode:1};let e=t(c);if(e&&e.token){let t=e.maskedValue;return t?{stdout:`${t}\n`,stderr:``,exitCode:0}:{stdout:``,stderr:`oauth-token: no masked value for ${c} (try logging in again)\n`,exitCode:1}}return console.error(`[oauth-token] Provider ${c}: login completed but no token was saved`),{stdout:``,stderr:`oauth-token: login completed but no token was saved
3815
+ `,exitCode:1}}catch(e){let t=e instanceof Error?e.message:String(e);return console.error(`[oauth-token] Provider ${c}: login failed:`,t),{stdout:``,stderr:`oauth-token: login failed: ${t}\n`,exitCode:1}}})}async function HDe(e){let{parseInterceptOAuthConfig:t}=await import(`./intercepted-oauth-BVMYx7J_.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-BfUBqpue.js`),r,i=e.indexOf(`--from-file`);if(i>=0){let t=e[i+1];if(!t)return i4(`oauth-token: --from-file requires a path`);try{let{VirtualFS:e}=await Promise.resolve().then(()=>Yk),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>YN),i=await(await e.create({dbName:n})).readFile(t);r=JSON.parse(typeof i==`string`?i:new TextDecoder().decode(i))}catch(e){return i4(`oauth-token: failed to read ${t}: ${e instanceof Error?e.message:String(e)}`)}}else{let t=r4(e,`--authorize-url`),n=r4(e,`--redirect-pattern`);if(!t)return i4(`oauth-token: --authorize-url is required`);if(!n)return i4(`oauth-token: --redirect-pattern is required`);let i=[];for(let t=0;t<e.length;t++){if(e[t]!==`--rewrite`)continue;let n=e[t+1];if(!n)return i4(`oauth-token: --rewrite requires a value`);let r=n.split(`=`);if(r.length<3)return i4(`oauth-token: --rewrite "${n}" must be "<match>=<key>=<value>"`);let[a,o,...s]=r;i.push({match:a,appendParams:{[o]:s.join(`=`)}})}r={authorizeUrl:t,redirectUriPattern:n,onCapture:e.includes(`--leave-tab`)?`leave`:`close`,...i.length>0?{rewrite:i}:{}}}let a=t(r);if(!a.ok)return i4(`oauth-token: invalid intercept config: ${a.error}`);let o=await n();if(!o)return i4(`oauth-token: no CDP transport available in this runtime; --intercept needs the controlled browser.`);let s=await o(a.config);return s?{stdout:`${s}\n`,stderr:``,exitCode:0}:i4(`oauth-token: intercept timed out or was cancelled`)}function r4(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function i4(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function UDe(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
3816
3816
  `,stderr:``,exitCode:0};let a=[];for(let e of i){let t=r(e);if(!t)a.push(`${e} (no token)`);else if(t.expired){let n=t.userName?` as ${t.userName}`:``;a.push(`${e} (expired${n})`)}else{let n=[];if(t.userName?n.push(`logged in as ${t.userName}`):n.push(`logged in`),t.expiresAt){let e=t.expiresAt-Date.now();if(e>0){let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4);t>0?n.push(`expires in ${t}h`):n.push(`expires in ${r}m`)}}a.push(`${e} (${n.join(`, `)})`)}}return{stdout:a.join(`
3817
3817
  `)+`
3818
3818
  `,stderr:``,exitCode:0}}function a4(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function Q(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)}let o4=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return o4=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))};function s4(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}const c4=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};var l4=class extends Error{},u4=class e extends l4{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new f4({message:r,cause:c4(n)});let a=n?.error;return t===400?new m4(t,a,r,i):t===401?new h4(t,a,r,i):t===403?new g4(t,a,r,i):t===404?new _4(t,a,r,i):t===409?new v4(t,a,r,i):t===422?new y4(t,a,r,i):t===429?new b4(t,a,r,i):t>=500?new x4(t,a,r,i):new e(t,a,r,i)}},d4=class extends u4{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},f4=class extends u4{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},p4=class extends f4{constructor({message:e}={}){super({message:e??`Request timed out.`})}},m4=class extends u4{},h4=class extends u4{},g4=class extends u4{},_4=class extends u4{},v4=class extends u4{},y4=class extends u4{},b4=class extends u4{},x4=class extends u4{},S4=class extends l4{constructor(){super(`Could not parse response content as the length limit was reached`)}},C4=class extends l4{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},w4=class extends Error{constructor(e){super(e)}};const WDe=/^[a-z][a-z0-9+.-]*:/i,GDe=e=>WDe.test(e);let T4=e=>(T4=Array.isArray,T4(e)),E4=T4;function D4(e){return typeof e==`object`?e??{}:{}}function KDe(e){if(!e)return!0;for(let t in e)return!1;return!0}function qDe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O4(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const JDe=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new l4(`${e} must be an integer`);if(t<0)throw new l4(`${e} must be a positive integer`);return t},YDe=e=>{try{return JSON.parse(e)}catch{return}},k4=e=>new Promise(t=>setTimeout(t,e)),A4=`6.26.0`,XDe=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`;function ZDe(){return typeof Deno<`u`&&Deno.build!=null?`deno`:typeof EdgeRuntime<`u`?`edge`:Object.prototype.toString.call(globalThis.process===void 0?0:globalThis.process)===`[object process]`?`node`:`unknown`}const QDe=()=>{let e=ZDe();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":A4,"X-Stainless-OS":M4(Deno.build.os),"X-Stainless-Arch":j4(Deno.build.arch),"X-Stainless-Runtime":`deno`,"X-Stainless-Runtime-Version":typeof Deno.version==`string`?Deno.version:Deno.version?.deno??`unknown`};if(typeof EdgeRuntime<`u`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":A4,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":`edge`,"X-Stainless-Runtime-Version":globalThis.process.version};if(e===`node`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":A4,"X-Stainless-OS":M4(globalThis.process.platform??`unknown`),"X-Stainless-Arch":j4(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=$De();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":A4,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":A4,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}};function $De(){if(typeof navigator>`u`||!navigator)return null;for(let{key:e,pattern:t}of[{key:`edge`,pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`chrome`,pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`firefox`,pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`safari`,pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let n=t.exec(navigator.userAgent);if(n)return{browser:e,version:`${n[1]||0}.${n[2]||0}.${n[3]||0}`}}return null}const j4=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,M4=e=>(e=e.toLowerCase(),e.includes(`ios`)?`iOS`:e===`android`?`Android`:e===`darwin`?`MacOS`:e===`win32`?`Windows`:e===`freebsd`?`FreeBSD`:e===`openbsd`?`OpenBSD`:e===`linux`?`Linux`:e?`Other:${e}`:`Unknown`);let eOe;const tOe=()=>eOe??=QDe();function nOe(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function N4(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function P4(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return N4({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function F4(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function rOe(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}const iOe=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)}),I4=`RFC3986`,L4=e=>String(e),R4={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:L4};let z4=(e,t)=>(z4=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),z4(e,t));const B4=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),V4=1024,aOe=(e,t,n,r,i)=>{if(e.length===0)return e;let a=e;if(typeof e==`symbol`?a=Symbol.prototype.toString.call(e):typeof e!=`string`&&(a=String(e)),n===`iso-8859-1`)return escape(a).replace(/%u[0-9a-f]{4}/gi,function(e){return`%26%23`+parseInt(e.slice(2),16)+`%3B`});let o=``;for(let e=0;e<a.length;e+=V4){let t=a.length>=V4?a.slice(e,e+V4):a,n=[];for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r===45||r===46||r===95||r===126||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||i===`RFC1738`&&(r===40||r===41)){n[n.length]=t.charAt(e);continue}if(r<128){n[n.length]=B4[r];continue}if(r<2048){n[n.length]=B4[192|r>>6]+B4[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=B4[224|r>>12]+B4[128|r>>6&63]+B4[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=B4[240|r>>18]+B4[128|r>>12&63]+B4[128|r>>6&63]+B4[128|r&63]}o+=n.join(``)}return o};function oOe(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function H4(e,t){if(T4(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const U4={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},W4=function(e,t){Array.prototype.push.apply(e,T4(t)?t:[t])};let sOe;const G4={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:aOe,encodeValuesOnly:!1,format:I4,formatter:L4,indices:!1,serializeDate(e){return(sOe??=Function.prototype.call.bind(Date.prototype.toISOString))(e)},skipNulls:!1,strictNullHandling:!1};function cOe(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}const K4={};function q4(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=e,y=_,b=0,x=!1;for(;(y=y.get(K4))!==void 0&&!x;){let t=y.get(e);if(b+=1,t!==void 0){if(t===b)throw RangeError(`Cyclic object value`);x=!0}y.get(K4)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&T4(v)&&(v=H4(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,G4.encoder,g,`key`,p):t;v=``}if(cOe(v)||oOe(v)){if(c){let e=h?t:c(t,G4.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,G4.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let C;if(n===`comma`&&T4(v))h&&c&&(v=H4(v,c)),C=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(T4(l))C=l;else{let e=Object.keys(v);C=u?e.sort(u):e}let w=s?String(t).replace(/\./g,`%2E`):String(t),T=r&&T4(v)&&v.length===1?w+`[]`:w;if(i&&T4(v)&&v.length===0)return T+`[]`;for(let t=0;t<C.length;++t){let y=C[t],x=typeof y==`object`&&y.value!==void 0?y.value:v[y];if(o&&x===null)continue;let w=d&&s?y.replace(/\./g,`%2E`):y,E=T4(v)?typeof n==`function`?n(T,w):T:T+(d?`.`+w:`[`+w+`]`);_.set(e,b);let ee=new WeakMap;ee.set(K4,_),W4(S,q4(x,E,n,r,i,a,o,s,n===`comma`&&h&&T4(v)?null:c,l,u,d,f,p,m,h,g,ee))}return S}function lOe(e=G4){if(e.allowEmptyArrays!==void 0&&typeof e.allowEmptyArrays!=`boolean`)throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(e.encodeDotInKeys!==void 0&&typeof e.encodeDotInKeys!=`boolean`)throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&e.encoder!==void 0&&typeof e.encoder!=`function`)throw TypeError(`Encoder has to be a function.`);let t=e.charset||G4.charset;if(e.charset!==void 0&&e.charset!==`utf-8`&&e.charset!==`iso-8859-1`)throw TypeError(`The charset option must be either utf-8, iso-8859-1, or undefined`);let n=I4;if(e.format!==void 0){if(!z4(R4,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=R4[n],i=G4.filter;(typeof e.filter==`function`||T4(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in U4?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:G4.arrayFormat,`commaRoundTrip`in e&&typeof e.commaRoundTrip!=`boolean`)throw TypeError("`commaRoundTrip` must be a boolean, or absent");let o=e.allowDots===void 0?e.encodeDotInKeys?!0:G4.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:G4.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:G4.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:G4.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?G4.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:G4.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:G4.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:G4.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:G4.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:G4.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:G4.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:G4.strictNullHandling}}function uOe(e,t={}){let n=e,r=lOe(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):T4(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=U4[r.arrayFormat],c=s===`comma`&&r.commaRoundTrip;i||=Object.keys(n),r.sort&&i.sort(r.sort);let l=new WeakMap;for(let e=0;e<i.length;++e){let t=i[e];r.skipNulls&&n[t]===null||W4(o,q4(n[t],t,s,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,l))}let u=o.join(r.delimiter),d=r.addQueryPrefix===!0?`?`:``;return r.charsetSentinel&&(r.charset===`iso-8859-1`?d+=`utf8=%26%2310003%3B&`:d+=`utf8=%E2%9C%93&`),u.length>0?d+u:``}function dOe(e){return uOe(e,{arrayFormat:`brackets`})}function fOe(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}let pOe;function J4(e){let t;return(pOe??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}let mOe;function Y4(e){let t;return(mOe??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var X4,Z4,Q4=class{constructor(){X4.set(this,void 0),Z4.set(this,void 0),a4(this,X4,new Uint8Array,`f`),a4(this,Z4,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?J4(e):e;a4(this,X4,fOe([Q(this,X4,`f`),t]),`f`);let n=[],r;for(;(r=hOe(Q(this,X4,`f`),Q(this,Z4,`f`)))!=null;){if(r.carriage&&Q(this,Z4,`f`)==null){a4(this,Z4,r.index,`f`);continue}if(Q(this,Z4,`f`)!=null&&(r.index!==Q(this,Z4,`f`)+1||r.carriage)){n.push(Y4(Q(this,X4,`f`).subarray(0,Q(this,Z4,`f`)-1))),a4(this,X4,Q(this,X4,`f`).subarray(Q(this,Z4,`f`)),`f`),a4(this,Z4,null,`f`);continue}let e=Q(this,Z4,`f`)===null?r.preceding:r.preceding-1,t=Y4(Q(this,X4,`f`).subarray(0,e));n.push(t),a4(this,X4,Q(this,X4,`f`).subarray(r.index),`f`),a4(this,Z4,null,`f`)}return n}flush(){return Q(this,X4,`f`).length?this.decode(`
@@ -7741,4 +7741,4 @@ ${t}
7741
7741
  `)+`
7742
7742
  `;case`cmdline`:return`kernel-host\0`;case`cwd`:return`/
7743
7743
  `;case`stat`:return`1 (kernel-host) R 0 - 0 -
7744
- `}}function uNe(e,{orchestrator:t,log:n}){let r=qMe(e);if(r===null){n.debug?.(`dropping lick event with no renderable content`,{type:e.type});return}let i=e.type===`webhook`,a=e.type===`sprinkle`,o=e.type===`fswatch`,s=e.type===`navigate`,c=e.type===`upgrade`,l=e.type===`session-reload`,u=i?e.webhookName:a?e.sprinkleName:o?e.fswatchName:s?e.navigateUrl:c?`${e.upgradeFromVersion??`unknown`}→${e.upgradeToVersion??`unknown`}`:l?`mount-recovery`:e.cronName,d=i?e.webhookId:a?e.sprinkleName:o?e.fswatchId:s?e.navigateUrl:c?`upgrade-${e.upgradeToVersion??`unknown`}`:l?`session-reload-${e.timestamp}`:e.cronId,f=e.type,p=t.getScoops(),m;if(m=e.targetScoop?p.find(t=>t.name===e.targetScoop||t.folder===e.targetScoop||t.folder===`${e.targetScoop}-scoop`):p.find(e=>e.isCone),!m){n.warn(`Lick target scoop not found`,e.targetScoop);return}let h={id:`${f}-${d}-${Date.now()}`,chatJid:m.jid,senderId:f,senderName:`${f}:${u}`,content:r.content,timestamp:e.timestamp,fromAssistant:!1,channel:f};t.handleMessage(h)}async function dNe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1,isExtension:o=!1}=e,s=e.logger??console,c=new XL,l=new YMe(t,{...i,getBrowserAPI:()=>n});l.setProcessManager(c),globalThis.__slicc_pm=c,globalThis.__slicc_browser=n,await r.bind(l,n);let u=M(()=>r.emitTrayRuntimeStatus()),d=je(()=>r.emitTrayRuntimeStatus());await l.init();let f=l.getSharedFS();if(f?ZMe(l,f,l.getSessionStore()):s.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new rNe(c))}catch(e){s.warn(`Failed to mount /proc`,e)}let{registerSessionCostsProvider:p}=await Promise.resolve().then(()=>TAe);p(()=>l.getSessionCosts());let{getLickManager:m}=await Promise.resolve().then(()=>VMe),h=m();await h.init(),l.setLickManager(h);let g=e.lickEventHandler??uNe,_={orchestrator:l,lickManager:h,log:s};h.setEventHandler(e=>g(e,_)),globalThis.__slicc_lickManager=h;let v=null;if(!o)try{let{startLickWsBridge:e}=await import(`./lick-ws-bridge-DCpPUoqH.js`);v=e(h,{locationHref:self.location.href}).stop}catch(e){(s.error?.bind(s)??s.warn.bind(s)??((e,t)=>console.error(`[lick-ws-bridge]`,e,t)))(`Failed to start lick-ws bridge — webhook / crontask / handoff lick delivery is non-functional in this session`,{error:e instanceof Error?e.message:String(e)})}let y=null;if(!o)try{let e=new _pe(n.getTransport(),e=>{let t={url:e.url,verb:e.verb,target:e.target};e.instruction!=null&&(t.instruction=e.instruction),e.branch!=null&&(t.branch=e.branch),e.path!=null&&(t.path=e.path),e.title!=null&&(t.title=e.title),h.emitEvent({type:`navigate`,navigateUrl:e.url,targetScoop:void 0,timestamp:new Date().toISOString(),body:t})});e.start(),y=()=>e.stop()}catch(e){s.warn(`Failed to start NavigationWatcher`,e)}f&&(async()=>{try{let{getAllMountEntries:e}=await Promise.resolve().then(()=>Tk),{recoverMounts:t}=await Promise.resolve().then(()=>UMe),n=await e();if(n.length===0)return;let{needsRecovery:r}=await t(n,f,s);if(r.length===0)return;h.emitEvent({type:`session-reload`,targetScoop:void 0,timestamp:new Date().toISOString(),body:{reason:`mount-recovery`,mounts:r}})}catch(e){s.warn(`mount recovery failed`,e)}})(),a||l.getScoops().some(e=>e.isCone)||await l.registerScoop({jid:`cone_${Date.now()}`,name:`Cone`,folder:`cone`,isCone:!0,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()}),f&&(async()=>{try{let{detectUpgrade:e,recordVersionSeen:t}=await import(`./upgrade-detection-CHpPmVNQ.js`),n=await e();if(!n.isUpgrade||n.lastSeen===null)return;h.emitEvent({type:`upgrade`,targetScoop:void 0,timestamp:new Date().toISOString(),upgradeFromVersion:n.lastSeen,upgradeToVersion:n.bundled.version,body:{from:n.lastSeen,to:n.bundled.version,releasedAt:n.bundled.releasedAt}}),await t(n.bundled.version)}catch(e){s.warn(`Upgrade detection failed`,e)}})();let b=null,x=null;if(f)try{let{BshWatchdog:e}=await import(`./bsh-watchdog-Cp3gNbYH.js`),{ScriptCatalog:t}=await Promise.resolve().then(()=>Nje),r=new t({jshFs:f,bshFs:f,watcher:f.getWatcher()}),i=new e({browserAPI:n,scriptCatalog:r,fs:f});i.start(),b=()=>i.stop(),x=()=>r.dispose()}catch(e){s.warn(`Failed to start BSH watchdog`,e)}let S=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:h,sharedFs:f??null,processManager:c,async dispose(){if(!S){if(S=!0,u?.(),d?.(),b?.(),x?.(),v?.(),y)try{await y()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(f)try{await f.unmountInternal(`/proc`)}catch{}fNe({processManager:c,lickManager:h,browser:n})}}}}function fNe(e){let t=globalThis;t.__slicc_pm===e.processManager&&delete t.__slicc_pm,t.__slicc_lickManager===e.lickManager&&delete t.__slicc_lickManager,e.browser&&t.__slicc_browser===e.browser&&delete t.__slicc_browser}function Y9(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function pNe(e){let t=Y9(e);return{onMessage:e=>t.onMessage(e),send:e=>{t.send({source:`offscreen`,payload:e})}}}var mNe=class extends ipe{constructor(e){let t=Y9(e);super({label:`WorkerCdpProxy`,buildCommandEnvelope:(e,t,n,r)=>({type:`cdp-cmd`,id:e,method:t,params:n,sessionId:r}),sendEnvelope:e=>(t.send(e),Promise.resolve()),subscribeIncoming:e=>t.onMessage(e),parseResponse:e=>{let t=e;if(t?.type!==`cdp-response`)return null;if(typeof t.id!=`number`||!Number.isFinite(t.id))return console.warn(`[WorkerCdpProxy] dropping cdp-response with invalid id`,t),null;let n=e;return{id:n.id,result:n.result,error:n.error}},parseEvent:e=>{let t=e;if(t?.type!==`cdp-event`)return null;if(typeof t.method!=`string`)return console.warn(`[WorkerCdpProxy] dropping cdp-event with invalid method`,t),null;let n=e;return{method:n.method,params:n.params}},onSubscribeEvent:e=>{t.send({type:`cdp-subscribe`,event:e})},onUnsubscribeEvent:e=>{t.send({type:`cdp-unsubscribe`,event:e})}})}},hNe=class{transport;createShell;log;pm;defaultOwner;sessions=new Map;unsubscribe=null;constructor(e){this.transport=e.transport,this.createShell=e.createShell,this.log=e.logger??console,this.pm=e.processManager??null,this.defaultOwner=e.defaultOwner??{kind:`system`}}start(){return this.unsubscribe||=this.transport.onMessage(e=>{if(!gNe(e)||e.source!==`panel`)return;let t=e.payload;vNe(t)&&this.handleControl(t).catch(e=>{this.log.warn(`[terminal-session-host] handler error`,e)})}),()=>this.dispose()}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,e]of this.sessions)e.currentProcess&&this.pm?(this.pm.signal(e.currentProcess.pid,`SIGTERM`),this.pm.exit(e.currentProcess.pid,null)):e.currentExec?.abort(),e.shell.dispose?.();this.sessions.clear()}async handleControl(e){switch(e.type){case`terminal-open`:return this.handleOpen(e);case`terminal-close`:return this.handleClose(e);case`terminal-exec`:return this.handleExec(e);case`terminal-signal`:return this.handleSignal(e);case`terminal-stdin`:case`terminal-resize`:return}}async handleOpen(e){if(this.sessions.has(e.sid)){this.emitStatus(e.sid,`error`,`session already open`);return}try{let t=this.createShell(e.sid,{cwd:e.cwd,env:e.env});this.sessions.set(e.sid,{shell:t,currentExec:null,currentProcess:null}),this.emitStatus(e.sid,`opened`)}catch(t){this.emitStatus(e.sid,`error`,t instanceof Error?t.message:String(t))}}async handleClose(e){let t=this.sessions.get(e.sid);t&&(t.currentProcess&&this.pm?(this.pm.signal(t.currentProcess.pid,`SIGTERM`),this.pm.exit(t.currentProcess.pid,null)):t.currentExec?.abort(),t.shell.dispose?.(),this.sessions.delete(e.sid),this.emitStatus(e.sid,`closed`))}async handleExec(e){let t=this.sessions.get(e.sid);if(!t){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:127}),this.log.warn(`[terminal-session-host] exec on unknown session`,e.sid);return}if(t.currentExec){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:130});return}let n=new AbortController;t.currentExec=n;let r=this.pm?this.pm.spawn({kind:`shell`,argv:[e.command],cwd:t.shell.getCwd?.()??void 0,owner:this.defaultOwner,adoptAbort:n}):null;t.currentProcess=r;try{let i=await t.shell.executeCommand(e.command,n.signal),a=n.signal.aborted?130:i.exitCode;n.signal.aborted||(r&&await r.gate.wait(),i.stdout&&this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stdout`,data:i.stdout}),i.stderr&&this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stderr`,data:i.stderr})),this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:a}),r&&this.pm&&this.pm.exit(r.pid,n.signal.aborted?null:i.exitCode)}catch(t){if(n.signal.aborted){let t=_Ne(r?.terminatedBy??`SIGINT`);this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:t}),r&&this.pm&&this.pm.exit(r.pid,null)}else{let n=t instanceof Error?t.message:String(t);this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stderr`,data:`Error: ${n}\n`}),this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:1}),r&&this.pm&&this.pm.exit(r.pid,1)}}finally{t.currentExec===n&&(t.currentExec=null,t.currentProcess=null)}}async handleSignal(e){let t=this.sessions.get(e.sid);if(!t){this.log.warn(`[terminal-session-host] signal on unknown session`,e.sid);return}(e.signal===`SIGINT`||e.signal===`SIGTERM`||e.signal===`SIGKILL`)&&(t.currentProcess&&this.pm?this.pm.signal(t.currentProcess.pid,e.signal):t.currentExec?.abort())}emit(e){this.transport.send(e)}emitStatus(e,t,n){let r=n?{type:`terminal-status`,sid:e,state:t,error:n}:{type:`terminal-status`,sid:e,state:t};this.emit(r)}};function gNe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function _Ne(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function vNe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`terminal-open`||t===`terminal-close`||t===`terminal-exec`||t===`terminal-signal`||t===`terminal-stdin`||t===`terminal-resize`}function yNe(e){let{transport:t,fs:n,browser:r,processManager:i}=e,a=new hNe({transport:t,processManager:i,createShell:(e,t)=>new Z7({fs:n,cwd:t.cwd,env:t.env,browserAPI:r,processManager:i,processOwner:{kind:`system`}}),logger:e.logger??console});return{host:a,stop:a.start()}}function bNe(e,t={}){let n=t.onError??(e=>console.error(`[kernel-worker] boot failed`,e)),r=t.onDuplicate??(()=>console.warn(`[kernel-worker] received duplicate kernel-worker-init; ignoring`)),i=!1;return{handle(t){if(i){r();return}i=!0,e(t).catch(e=>{i=!1,n(e)})},isInitialized(){return i}}}const X9=`x-bypass-llm-proxy`;function xNe(e,t){return t?(n,r)=>{if(!SNe(n,t))return e(n,r);let i=new Headers(r?.headers);return i.has(X9)||i.set(X9,`1`),e(n,{...r,headers:i})}:e}function SNe(e,t){let n;n=typeof e==`string`?e:e instanceof URL?e.href:e.url;try{return new URL(n,t).origin===t}catch{return!0}}function CNe(){let e=globalThis.fetch;if(!e)return;let t=typeof self<`u`&&self.location?self.location.origin:void 0;globalThis.fetch=xNe(e.bind(globalThis),t)}function wNe(e){let t=new Map(Object.entries(e));Object.defineProperty(globalThis,`localStorage`,{value:{get length(){return t.size},key(e){return Array.from(t.keys())[e]??null},getItem(e){return t.has(e)?t.get(e):null},setItem(e,n){t.set(e,n)},removeItem(e){t.delete(e)},clear(){t.clear()}},configurable:!0,writable:!0})}let Z9=null,Q9=null,$9=null;const TNe=bNe(e=>ENe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&TNe.handle(e.data)});async function ENe(e){CNe(),wNe(e.localStorageSeed??{}),await v0();let t=pNe(e.kernelPort),n=new Je(t),r=Je.createCallbacks(n),i=new mNe(e.cdpPort);await i.connect();let a=new w(i);Z9=await dNe({container:{},browser:a,bridge:n,callbacks:r,logger:console});let{createSprinkleManagerProxyOverChannel:o}=await import(`./sprinkle-bridge-channel-DojIojh7.js`);globalThis.__slicc_sprinkleManager=o({instanceId:e.instanceId});let{createPanelRpcClient:s}=await Promise.resolve().then(()=>vpe);$9=s({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9;let c=Z9.processManager,l=Z9.sharedFs;l?Q9=yNe({transport:t,fs:l,browser:a,processManager:c,logger:console}).stop:console.warn(`[kernel-worker] shared FS unavailable; terminal sessions will fail to open`),e.kernelPort.postMessage({type:`kernel-worker-ready`})}self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-shutdown`&&(Q9?.(),Q9=null,$9?.dispose(),$9=null,Z9?.dispose())});export{Te as $,V_e as A,NX as B,x0 as C,K_e as D,_Z as E,sZ as F,_X as G,OX as H,lZ as I,OA as J,OP as K,PX as L,oZ as M,cZ as N,G_e as O,aZ as P,Ee as Q,FX as R,y0 as S,gZ as T,EX as U,kX as V,vX as W,Me as X,G as Y,j as Z,Q0 as _,D5 as a,f as at,T0 as b,$Oe as c,C2 as d,ge as et,S2 as f,u2 as g,l2 as h,E5 as i,c as it,iZ as j,fZ as k,C5 as l,d2 as m,k5 as n,_ as nt,T5 as o,u as ot,n2 as p,XN as q,O5 as r,s as rt,w5 as s,y9 as t,_e as tt,WEe as u,s2 as v,S0 as w,w0 as x,D0 as y,AX as z};
7744
+ `}}function uNe(e,{orchestrator:t,log:n}){let r=qMe(e);if(r===null){n.debug?.(`dropping lick event with no renderable content`,{type:e.type});return}let i=e.type===`webhook`,a=e.type===`sprinkle`,o=e.type===`fswatch`,s=e.type===`navigate`,c=e.type===`upgrade`,l=e.type===`session-reload`,u=i?e.webhookName:a?e.sprinkleName:o?e.fswatchName:s?e.navigateUrl:c?`${e.upgradeFromVersion??`unknown`}→${e.upgradeToVersion??`unknown`}`:l?`mount-recovery`:e.cronName,d=i?e.webhookId:a?e.sprinkleName:o?e.fswatchId:s?e.navigateUrl:c?`upgrade-${e.upgradeToVersion??`unknown`}`:l?`session-reload-${e.timestamp}`:e.cronId,f=e.type,p=t.getScoops(),m;if(m=e.targetScoop?p.find(t=>t.name===e.targetScoop||t.folder===e.targetScoop||t.folder===`${e.targetScoop}-scoop`):p.find(e=>e.isCone),!m){n.warn(`Lick target scoop not found`,e.targetScoop);return}let h={id:`${f}-${d}-${Date.now()}`,chatJid:m.jid,senderId:f,senderName:`${f}:${u}`,content:r.content,timestamp:e.timestamp,fromAssistant:!1,channel:f};t.handleMessage(h)}async function dNe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1,isExtension:o=!1}=e,s=e.logger??console,c=new XL,l=new YMe(t,{...i,getBrowserAPI:()=>n});l.setProcessManager(c),globalThis.__slicc_pm=c,globalThis.__slicc_browser=n,await r.bind(l,n);let u=M(()=>r.emitTrayRuntimeStatus()),d=je(()=>r.emitTrayRuntimeStatus());await l.init();let f=l.getSharedFS();if(f?ZMe(l,f,l.getSessionStore()):s.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new rNe(c))}catch(e){s.warn(`Failed to mount /proc`,e)}let{registerSessionCostsProvider:p}=await Promise.resolve().then(()=>TAe);p(()=>l.getSessionCosts());let{getLickManager:m}=await Promise.resolve().then(()=>VMe),h=m();await h.init(),l.setLickManager(h);let g=e.lickEventHandler??uNe,_={orchestrator:l,lickManager:h,log:s};h.setEventHandler(e=>g(e,_)),globalThis.__slicc_lickManager=h;let v=null;if(!o)try{let{startLickWsBridge:e}=await import(`./lick-ws-bridge-CVH1mgXb.js`);v=e(h,{locationHref:self.location.href}).stop}catch(e){(s.error?.bind(s)??s.warn.bind(s)??((e,t)=>console.error(`[lick-ws-bridge]`,e,t)))(`Failed to start lick-ws bridge — webhook / crontask / handoff lick delivery is non-functional in this session`,{error:e instanceof Error?e.message:String(e)})}let y=null;if(!o)try{let e=new _pe(n.getTransport(),e=>{let t={url:e.url,verb:e.verb,target:e.target};e.instruction!=null&&(t.instruction=e.instruction),e.branch!=null&&(t.branch=e.branch),e.path!=null&&(t.path=e.path),e.title!=null&&(t.title=e.title),h.emitEvent({type:`navigate`,navigateUrl:e.url,targetScoop:void 0,timestamp:new Date().toISOString(),body:t})});e.start(),y=()=>e.stop()}catch(e){s.warn(`Failed to start NavigationWatcher`,e)}f&&(async()=>{try{let{getAllMountEntries:e}=await Promise.resolve().then(()=>Tk),{recoverMounts:t}=await Promise.resolve().then(()=>UMe),n=await e();if(n.length===0)return;let{needsRecovery:r}=await t(n,f,s);if(r.length===0)return;h.emitEvent({type:`session-reload`,targetScoop:void 0,timestamp:new Date().toISOString(),body:{reason:`mount-recovery`,mounts:r}})}catch(e){s.warn(`mount recovery failed`,e)}})(),a||l.getScoops().some(e=>e.isCone)||await l.registerScoop({jid:`cone_${Date.now()}`,name:`Cone`,folder:`cone`,isCone:!0,type:`cone`,requiresTrigger:!1,assistantLabel:`sliccy`,addedAt:new Date().toISOString()}),f&&(async()=>{try{let{detectUpgrade:e,recordVersionSeen:t}=await import(`./upgrade-detection-D292gqpK.js`),n=await e();if(!n.isUpgrade||n.lastSeen===null)return;h.emitEvent({type:`upgrade`,targetScoop:void 0,timestamp:new Date().toISOString(),upgradeFromVersion:n.lastSeen,upgradeToVersion:n.bundled.version,body:{from:n.lastSeen,to:n.bundled.version,releasedAt:n.bundled.releasedAt}}),await t(n.bundled.version)}catch(e){s.warn(`Upgrade detection failed`,e)}})();let b=null,x=null;if(f)try{let{BshWatchdog:e}=await import(`./bsh-watchdog-Bf2N4JJz.js`),{ScriptCatalog:t}=await Promise.resolve().then(()=>Nje),r=new t({jshFs:f,bshFs:f,watcher:f.getWatcher()}),i=new e({browserAPI:n,scriptCatalog:r,fs:f});i.start(),b=()=>i.stop(),x=()=>r.dispose()}catch(e){s.warn(`Failed to start BSH watchdog`,e)}let S=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:h,sharedFs:f??null,processManager:c,async dispose(){if(!S){if(S=!0,u?.(),d?.(),b?.(),x?.(),v?.(),y)try{await y()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(f)try{await f.unmountInternal(`/proc`)}catch{}fNe({processManager:c,lickManager:h,browser:n})}}}}function fNe(e){let t=globalThis;t.__slicc_pm===e.processManager&&delete t.__slicc_pm,t.__slicc_lickManager===e.lickManager&&delete t.__slicc_lickManager,e.browser&&t.__slicc_browser===e.browser&&delete t.__slicc_browser}function Y9(e){let t=!1,n=()=>{t||(t=!0,typeof e.start==`function`&&e.start())};return{onMessage:t=>{let r=e=>{t(e.data)};return e.addEventListener(`message`,r),n(),()=>{e.removeEventListener(`message`,r)}},send:t=>{e.postMessage(t)}}}function pNe(e){let t=Y9(e);return{onMessage:e=>t.onMessage(e),send:e=>{t.send({source:`offscreen`,payload:e})}}}var mNe=class extends ipe{constructor(e){let t=Y9(e);super({label:`WorkerCdpProxy`,buildCommandEnvelope:(e,t,n,r)=>({type:`cdp-cmd`,id:e,method:t,params:n,sessionId:r}),sendEnvelope:e=>(t.send(e),Promise.resolve()),subscribeIncoming:e=>t.onMessage(e),parseResponse:e=>{let t=e;if(t?.type!==`cdp-response`)return null;if(typeof t.id!=`number`||!Number.isFinite(t.id))return console.warn(`[WorkerCdpProxy] dropping cdp-response with invalid id`,t),null;let n=e;return{id:n.id,result:n.result,error:n.error}},parseEvent:e=>{let t=e;if(t?.type!==`cdp-event`)return null;if(typeof t.method!=`string`)return console.warn(`[WorkerCdpProxy] dropping cdp-event with invalid method`,t),null;let n=e;return{method:n.method,params:n.params}},onSubscribeEvent:e=>{t.send({type:`cdp-subscribe`,event:e})},onUnsubscribeEvent:e=>{t.send({type:`cdp-unsubscribe`,event:e})}})}},hNe=class{transport;createShell;log;pm;defaultOwner;sessions=new Map;unsubscribe=null;constructor(e){this.transport=e.transport,this.createShell=e.createShell,this.log=e.logger??console,this.pm=e.processManager??null,this.defaultOwner=e.defaultOwner??{kind:`system`}}start(){return this.unsubscribe||=this.transport.onMessage(e=>{if(!gNe(e)||e.source!==`panel`)return;let t=e.payload;vNe(t)&&this.handleControl(t).catch(e=>{this.log.warn(`[terminal-session-host] handler error`,e)})}),()=>this.dispose()}dispose(){this.unsubscribe?.(),this.unsubscribe=null;for(let[,e]of this.sessions)e.currentProcess&&this.pm?(this.pm.signal(e.currentProcess.pid,`SIGTERM`),this.pm.exit(e.currentProcess.pid,null)):e.currentExec?.abort(),e.shell.dispose?.();this.sessions.clear()}async handleControl(e){switch(e.type){case`terminal-open`:return this.handleOpen(e);case`terminal-close`:return this.handleClose(e);case`terminal-exec`:return this.handleExec(e);case`terminal-signal`:return this.handleSignal(e);case`terminal-stdin`:case`terminal-resize`:return}}async handleOpen(e){if(this.sessions.has(e.sid)){this.emitStatus(e.sid,`error`,`session already open`);return}try{let t=this.createShell(e.sid,{cwd:e.cwd,env:e.env});this.sessions.set(e.sid,{shell:t,currentExec:null,currentProcess:null}),this.emitStatus(e.sid,`opened`)}catch(t){this.emitStatus(e.sid,`error`,t instanceof Error?t.message:String(t))}}async handleClose(e){let t=this.sessions.get(e.sid);t&&(t.currentProcess&&this.pm?(this.pm.signal(t.currentProcess.pid,`SIGTERM`),this.pm.exit(t.currentProcess.pid,null)):t.currentExec?.abort(),t.shell.dispose?.(),this.sessions.delete(e.sid),this.emitStatus(e.sid,`closed`))}async handleExec(e){let t=this.sessions.get(e.sid);if(!t){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:127}),this.log.warn(`[terminal-session-host] exec on unknown session`,e.sid);return}if(t.currentExec){this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:130});return}let n=new AbortController;t.currentExec=n;let r=this.pm?this.pm.spawn({kind:`shell`,argv:[e.command],cwd:t.shell.getCwd?.()??void 0,owner:this.defaultOwner,adoptAbort:n}):null;t.currentProcess=r;try{let i=await t.shell.executeCommand(e.command,n.signal),a=n.signal.aborted?130:i.exitCode;n.signal.aborted||(r&&await r.gate.wait(),i.stdout&&this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stdout`,data:i.stdout}),i.stderr&&this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stderr`,data:i.stderr})),this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:a}),r&&this.pm&&this.pm.exit(r.pid,n.signal.aborted?null:i.exitCode)}catch(t){if(n.signal.aborted){let t=_Ne(r?.terminatedBy??`SIGINT`);this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:t}),r&&this.pm&&this.pm.exit(r.pid,null)}else{let n=t instanceof Error?t.message:String(t);this.emit({type:`terminal-output`,sid:e.sid,execId:e.execId,stream:`stderr`,data:`Error: ${n}\n`}),this.emit({type:`terminal-exit`,sid:e.sid,execId:e.execId,exitCode:1}),r&&this.pm&&this.pm.exit(r.pid,1)}}finally{t.currentExec===n&&(t.currentExec=null,t.currentProcess=null)}}async handleSignal(e){let t=this.sessions.get(e.sid);if(!t){this.log.warn(`[terminal-session-host] signal on unknown session`,e.sid);return}(e.signal===`SIGINT`||e.signal===`SIGTERM`||e.signal===`SIGKILL`)&&(t.currentProcess&&this.pm?this.pm.signal(t.currentProcess.pid,e.signal):t.currentExec?.abort())}emit(e){this.transport.send(e)}emitStatus(e,t,n){let r=n?{type:`terminal-status`,sid:e,state:t,error:n}:{type:`terminal-status`,sid:e,state:t};this.emit(r)}};function gNe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function _Ne(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function vNe(e){if(typeof e!=`object`||!e)return!1;let t=e.type;return t===`terminal-open`||t===`terminal-close`||t===`terminal-exec`||t===`terminal-signal`||t===`terminal-stdin`||t===`terminal-resize`}var yNe=class extends Z7{sid;transport;constructor(e,t,n){super(n),this.sid=e,this.transport=t}async renderMediaPreview(e){for(let t of e){let e=``,n=t.bytes,r=8192;for(let t=0;t<n.length;t+=r)e+=String.fromCharCode(...n.subarray(t,t+r));let i={type:`terminal-media-preview`,sid:this.sid,path:t.path,mediaType:t.mimeType,data:btoa(e)};this.transport.send(i)}}};function bNe(e){let{transport:t,fs:n,browser:r,processManager:i}=e,a=new hNe({transport:t,processManager:i,createShell:(e,a)=>new yNe(e,t,{fs:n,cwd:a.cwd,env:a.env,browserAPI:r,processManager:i,processOwner:{kind:`system`}}),logger:e.logger??console});return{host:a,stop:a.start()}}function xNe(e,t={}){let n=t.onError??(e=>console.error(`[kernel-worker] boot failed`,e)),r=t.onDuplicate??(()=>console.warn(`[kernel-worker] received duplicate kernel-worker-init; ignoring`)),i=!1;return{handle(t){if(i){r();return}i=!0,e(t).catch(e=>{i=!1,n(e)})},isInitialized(){return i}}}const X9=`x-bypass-llm-proxy`;function SNe(e,t){return t?(n,r)=>{if(!CNe(n,t))return e(n,r);let i=new Headers(r?.headers);return i.has(X9)||i.set(X9,`1`),e(n,{...r,headers:i})}:e}function CNe(e,t){let n;n=typeof e==`string`?e:e instanceof URL?e.href:e.url;try{return new URL(n,t).origin===t}catch{return!0}}function wNe(){let e=globalThis.fetch;if(!e)return;let t=typeof self<`u`&&self.location?self.location.origin:void 0;globalThis.fetch=SNe(e.bind(globalThis),t)}function TNe(e){let t=new Map(Object.entries(e));Object.defineProperty(globalThis,`localStorage`,{value:{get length(){return t.size},key(e){return Array.from(t.keys())[e]??null},getItem(e){return t.has(e)?t.get(e):null},setItem(e,n){t.set(e,n)},removeItem(e){t.delete(e)},clear(){t.clear()}},configurable:!0,writable:!0})}let Z9=null,Q9=null,$9=null;const ENe=xNe(e=>DNe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&ENe.handle(e.data)});async function DNe(e){wNe(),TNe(e.localStorageSeed??{}),await v0();let t=pNe(e.kernelPort),n=new Je(t),r=Je.createCallbacks(n),i=new mNe(e.cdpPort);await i.connect();let a=new w(i);Z9=await dNe({container:{},browser:a,bridge:n,callbacks:r,logger:console});let{createSprinkleManagerProxyOverChannel:o}=await import(`./sprinkle-bridge-channel-DojIojh7.js`);globalThis.__slicc_sprinkleManager=o({instanceId:e.instanceId});let{createPanelRpcClient:s}=await Promise.resolve().then(()=>vpe);$9=s({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9;let c=Z9.processManager,l=Z9.sharedFs;l?Q9=bNe({transport:t,fs:l,browser:a,processManager:c,logger:console}).stop:console.warn(`[kernel-worker] shared FS unavailable; terminal sessions will fail to open`),e.kernelPort.postMessage({type:`kernel-worker-ready`})}self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-shutdown`&&(Q9?.(),Q9=null,$9?.dispose(),$9=null,Z9?.dispose())});export{Te as $,V_e as A,NX as B,x0 as C,K_e as D,_Z as E,sZ as F,_X as G,OX as H,lZ as I,OA as J,OP as K,PX as L,oZ as M,cZ as N,G_e as O,aZ as P,Ee as Q,FX as R,y0 as S,gZ as T,EX as U,kX as V,vX as W,Me as X,G as Y,j as Z,Q0 as _,D5 as a,f as at,T0 as b,$Oe as c,C2 as d,ge as et,S2 as f,u2 as g,l2 as h,E5 as i,c as it,iZ as j,fZ as k,C5 as l,d2 as m,k5 as n,_ as nt,T5 as o,u as ot,n2 as p,XN as q,O5 as r,s as rt,w5 as s,y9 as t,_e as tt,WEe as u,s2 as v,S0 as w,w0 as x,D0 as y,AX as z};