sliccy 3.16.0 → 3.17.0

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 (82) hide show
  1. package/dist/ui/assets/{adobe-Ao50jPgP.js → adobe-X0NFxs5L.js} +2 -2
  2. package/dist/ui/assets/{adobe-CE1Bs7rN.js → adobe-uKGa5Psy.js} +1 -1
  3. package/dist/ui/assets/{agent-bridge-BBzAl1L_.js → agent-bridge-_c6J6Roe.js} +1 -1
  4. package/dist/ui/assets/{agent-message-to-chat-DRR_n3Cd.js → agent-message-to-chat-CwzwhYwI.js} +1 -1
  5. package/dist/ui/assets/{anthropic-Dpnd1zvp.js → anthropic-DVg1WB3P.js} +1 -1
  6. package/dist/ui/assets/{anthropic-BOzXuoM3.js → anthropic-DuyYNsVy.js} +1 -1
  7. package/dist/ui/assets/{apps-CFqoQvbx.js → apps-D4QHJqIo.js} +1 -1
  8. package/dist/ui/assets/{azure-openai-CDpywqUS.js → azure-openai-BBwxYCqK.js} +1 -1
  9. package/dist/ui/assets/{azure-openai-cgi4Kkfa.js → azure-openai-CCocZQqr.js} +1 -1
  10. package/dist/ui/assets/{azure-openai-responses-Be1SnJhA.js → azure-openai-responses-1KMjp9lB.js} +1 -1
  11. package/dist/ui/assets/{azure-openai-responses-DGyHiI9b.js → azure-openai-responses-U_OhjIft.js} +1 -1
  12. package/dist/ui/assets/{biome_wasm-CCl4-by8.js → biome_wasm-CW46ywCD.js} +1 -1
  13. package/dist/ui/assets/{bsh-watchdog-CtN1RuOo.js → bsh-watchdog-DjxcEQC3.js} +1 -1
  14. package/dist/ui/assets/{cdp-B2PbN6cJ.js → cdp-BYJmkq3Z.js} +3 -3
  15. package/dist/ui/assets/{cdp-ws-page-bridge-BLnWRj3d.js → cdp-ws-page-bridge-6V6vk0DI.js} +1 -1
  16. package/dist/ui/assets/{common-D0tS4JvG.js → common-BYdyBvXA.js} +1 -1
  17. package/dist/ui/assets/cost-command-JHIeIZ1F.js +1 -0
  18. package/dist/ui/assets/{es-CSl2NTTK.js → es-BHP3e8lV.js} +1 -1
  19. package/dist/ui/assets/{follower-sprinkle-bridge-CdcQ2GYa.js → follower-sprinkle-bridge-FDnGzaUj.js} +1 -1
  20. package/dist/ui/assets/{github-CsLVmRjl.js → github-D9sn99MA.js} +2 -2
  21. package/dist/ui/assets/{github-DBqo8Qbh.js → github-DDaiVse9.js} +1 -1
  22. package/dist/ui/assets/{github-copilot-BhCBOl5C.js → github-copilot-6mF9XfuS.js} +2 -2
  23. package/dist/ui/assets/{github-copilot-DnyK8Sst.js → github-copilot-BXb0hqex.js} +1 -1
  24. package/dist/ui/assets/{google-DVlDjlsv.js → google-BxN-4hiG.js} +1 -1
  25. package/dist/ui/assets/{google-Yi7CN08j.js → google-CBf6hEVr.js} +1 -1
  26. package/dist/ui/assets/{google-shared-WXij02uY.js → google-shared-B4aYlVPY.js} +1 -1
  27. package/dist/ui/assets/{google-shared-DdWQkQdM.js → google-shared-SOpeE19C.js} +1 -1
  28. package/dist/ui/assets/{google-vertex-BLJOblZE.js → google-vertex-BV9T7ZAt.js} +1 -1
  29. package/dist/ui/assets/{google-vertex-B6bpaSVL.js → google-vertex-BWfTxcsR.js} +1 -1
  30. package/dist/ui/assets/{intercepted-oauth-B6zxgQQV.js → intercepted-oauth-C7d7QQVI.js} +1 -1
  31. package/dist/ui/assets/{kernel-worker-B_VVPiix.js → kernel-worker-CyCJs40A.js} +20 -20
  32. package/dist/ui/assets/{lick-ws-bridge-nuf5FOHB.js → lick-ws-bridge-CB_xyzpN.js} +1 -1
  33. package/dist/ui/assets/{local-llm-DGirMEN6.js → local-llm-DA2-MaH8.js} +1 -1
  34. package/dist/ui/assets/{magick-wasm-CC7NYyop.js → magick-wasm-DZd7eWMi.js} +1 -1
  35. package/dist/ui/assets/{main-QvcnxvtS.js → main-BJ2uTMm6.js} +8 -8
  36. package/dist/ui/assets/{mistral-Bh1GJbf4.js → mistral-W4QJJdzV.js} +1 -1
  37. package/dist/ui/assets/{mistral-CaxcS-53.js → mistral-e9m8_s5P.js} +1 -1
  38. package/dist/ui/assets/{nodejs-BV7kLKbo.js → nodejs-5irR1LHy.js} +1 -1
  39. package/dist/ui/assets/{nuke-command-BLiX1He8.js → nuke-command-CVzJkwfv.js} +1 -1
  40. package/dist/ui/assets/{oauth-DDRapyi2.js → oauth-3qcxsbc2.js} +1 -1
  41. package/dist/ui/assets/{oauth-bootstrap-BfMlMOez.js → oauth-bootstrap-Brizx1sU.js} +2 -2
  42. package/dist/ui/assets/{oauth-service-BIFoyZr9.js → oauth-service-BMa6Ij6L.js} +1 -1
  43. package/dist/ui/assets/{oauth-service-DbDCWx7N.js → oauth-service-DzqMSub-.js} +1 -1
  44. package/dist/ui/assets/{offscreen-client-j2kdvCUZ.js → offscreen-client-5busJoPt.js} +1 -1
  45. package/dist/ui/assets/{onboarding-orchestrator-Bf46cpkt.js → onboarding-orchestrator-C91Mlf5j.js} +1 -1
  46. package/dist/ui/assets/{openai-codex-D6S4-dHf.js → openai-codex--Yp7-7Z5.js} +1 -1
  47. package/dist/ui/assets/{openai-codex-BJyWKtaP.js → openai-codex-C-AjuizZ.js} +1 -1
  48. package/dist/ui/assets/{openai-codex-responses-B3W7YrEb.js → openai-codex-responses-Bm_0qhvH.js} +1 -1
  49. package/dist/ui/assets/{openai-codex-responses-CObQU668.js → openai-codex-responses-W4HAflF-.js} +1 -1
  50. package/dist/ui/assets/{openai-completions-flDaecKI.js → openai-completions-Cw8_L8Xr.js} +1 -1
  51. package/dist/ui/assets/{openai-responses-I8H7uEaU.js → openai-responses-D3iDP_oI.js} +1 -1
  52. package/dist/ui/assets/{openai-responses-Ds-HVP9y.js → openai-responses-ZzUTala8.js} +1 -1
  53. package/dist/ui/assets/{openai-responses-shared-CCsAMrca.js → openai-responses-shared-BX6tnqpi.js} +1 -1
  54. package/dist/ui/assets/{openai-responses-shared-Bm2eSiHi.js → openai-responses-shared-DYLu2Zp0.js} +1 -1
  55. package/dist/ui/assets/{openrouter-BgKegqZJ.js → openrouter-BzZrnZGs.js} +1 -1
  56. package/dist/ui/assets/{openrouter-DBnJ7Lgv.js → openrouter-jEmgHPS4.js} +1 -1
  57. package/dist/ui/assets/{panel-rpc-handlers-BefCNYz6.js → panel-rpc-handlers-D5gl8OCN.js} +1 -1
  58. package/dist/ui/assets/{provider-DGgbt705.js → provider-C-jyIoxd.js} +1 -1
  59. package/dist/ui/assets/{provider-CK0z722U.js → provider-Cr5grONL.js} +2 -2
  60. package/dist/ui/assets/provider-store-access-BYWbG4Fv.js +1 -0
  61. package/dist/ui/assets/provider-store-access-BylhffW_.js +1 -0
  62. package/dist/ui/assets/{proxied-fetch-duisWF6F.js → proxied-fetch-BfAfPAb8.js} +1 -1
  63. package/dist/ui/assets/{pyodide-DMuot7oT.js → pyodide-wtFIlZhs.js} +2 -2
  64. package/dist/ui/assets/{remote-terminal-view-BTeU52uN.js → remote-terminal-view-TV-7yccw.js} +1 -1
  65. package/dist/ui/assets/{secret-env-DiKtpIpU.js → secret-env-ATAFK-l7.js} +1 -1
  66. package/dist/ui/assets/{slicc-editor-C19_5HZS.js → slicc-editor--10xc_r8.js} +1 -1
  67. package/dist/ui/assets/{spawn-DhHtj4w1.js → spawn-DUGV5yTf.js} +1 -1
  68. package/dist/ui/assets/{sql-wasm-BhN2AaSY.js → sql-wasm-D-F3Sver.js} +1 -1
  69. package/dist/ui/assets/{store-DHtr0thS.js → store-UGcMsrpW.js} +1 -1
  70. package/dist/ui/assets/{tray-leave-runtime-CL5BI1fS.js → tray-leave-runtime-C1SGBu3D.js} +1 -1
  71. package/dist/ui/assets/{typescript-D-sYRkTp.js → typescript-VVTdKuA_.js} +1 -1
  72. package/dist/ui/assets/{upgrade-detection-Cd14niwX.js → upgrade-detection-DC3-8klG.js} +1 -1
  73. package/dist/ui/assets/{web-D-HTAm7L.js → web-Dg3d8ZUx.js} +1 -1
  74. package/dist/ui/assets/{ws-subscribers-BEnP0PDu.js → ws-subscribers-CwfxO1ZU.js} +1 -1
  75. package/dist/ui/assets/{xai-grok-CnXU8B16.js → xai-grok-B-1r34dF.js} +1 -1
  76. package/dist/ui/assets/{xai-grok-Dw7pEkZb.js → xai-grok-qazFMvH6.js} +1 -1
  77. package/dist/ui/index.html +1 -1
  78. package/dist/ui/packages/webapp/index.html +1 -1
  79. package/package.json +1 -1
  80. package/dist/ui/assets/cost-command-CVFVVo3Y.js +0 -1
  81. package/dist/ui/assets/provider-store-access-CCLf7kRi.js +0 -1
  82. package/dist/ui/assets/provider-store-access-CPQLutIJ.js +0 -1
@@ -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:w()})}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 E(e){let t={role:x(e.role,`unknown`),name:x(e.name)},n=x(e.value);n!==``&&(t.value=n);let r=x(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>E(e)).filter(e=>e.role!==`unknown`)),t}function D(e){return e.headers.get(`x-proxy-error`)===`1`}async function O(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return ee(n,t)}function ee(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 k={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let te=null;async function A(){if(te){let e=Object.values(k).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(k.MESSAGES)){let e=t.createObjectStore(k.MESSAGES,{keyPath:`id`});e.createIndex(`chatJid`,`chatJid`),e.createIndex(`timestamp`,`timestamp`),e.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}t.objectStoreNames.contains(k.SESSIONS)||t.createObjectStore(k.SESSIONS,{keyPath:`groupFolder`}),t.objectStoreNames.contains(k.TASKS)||t.createObjectStore(k.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),t.objectStoreNames.contains(k.STATE)||t.createObjectStore(k.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(k.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(k.SCOOPS)||t.createObjectStore(k.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}n<3&&(t.objectStoreNames.contains(k.WEBHOOKS)||t.createObjectStore(k.WEBHOOKS,{keyPath:`id`}),t.objectStoreNames.contains(k.CRONTASKS)||t.createObjectStore(k.CRONTASKS,{keyPath:`id`}))},n.onsuccess=()=>{te=n.result,e(te)},n.onerror=()=>t(n.error)})}async function j(e,t=`readonly`){return(await A()).transaction(e,t).objectStore(e)}async function ne(e){let t=await j(k.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function re(){let e=await j(k.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 ie(e){let t=await j(k.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ae(){let e=await j(k.MESSAGES,`readwrite`);return new Promise((t,n)=>{let r=e.clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}async function oe(e){let t=(await j(k.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 se(e){let t=await j(k.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ce(e){let t=await j(k.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function le(e){let t=(await j(k.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 ue(e,t,n){let r=(await j(k.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 M(e){let t=await j(k.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function de(e){let t=await j(k.TASKS);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async function fe(){let e=await j(k.TASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}async function pe(e){let t=await j(k.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function me(e){let t=await j(k.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 he(e,t){let n=await j(k.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 ge(){await A()}async function _e(e){let t=await j(k.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ve(){try{let e=await j(k.WEBHOOKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function ye(e){let t=await j(k.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function N(e){let t=await j(k.CRONTASKS,`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 j(k.CRONTASKS);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 j(k.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}function Se(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 Ce=`slicc.trayWorkerBaseUrl`,we=`https://www.sliccy.ai`;v(`tray-leader`);let P={state:`inactive`,session:null,error:null};function Te(){return{...P,session:P.session?{...P.session}:null}}const F=new Set;function I(e){return F.add(e),()=>{F.delete(e)}}let Ee={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function De(){return{...Ee}}const Oe=new Set;function ke(e){return Oe.add(e),()=>{Oe.delete(e)}}const Ae=new Set([`send_message`,`list_scoops`,`list_tasks`]),je=`sessions`;function Me(){return new Promise((e,t)=>{let n=indexedDB.open(`browser-coding-agent`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(je)||e.createObjectStore(je,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Ne=class{db=null;async init(){this.db=await Me()}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(je,`readwrite`);i.objectStore(je).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(je,`readonly`).objectStore(je).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(je,`readonly`).objectStore(je).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(je,`readwrite`);i.objectStore(je).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 Pe=v(`tool-ui`),Fe=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}),Pe.info(`Tool UI registered`,{id:e})}async handleAction(e,t){let n=this.pending.get(e);if(!n){Pe.warn(`Action for unknown tool UI`,{id:e,action:t.action});return}Pe.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),Pe.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&&Pe.info(`All tool UIs cancelled`,{reason:e,count:t})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function Ie(e,t){let n=e.id??Fe.generateId(),r,i,a=new Promise((e,t)=>{r=e,i=t});return Fe.register(n,e,r,i),t?t({content:[{type:`tool_ui`,requestId:n,html:e.html}]}):Pe.warn(`showToolUI called without onUpdate callback — UI may not render`),a.finally(()=>{t&&t({content:[{type:`tool_ui_done`,requestId:n}]})})}const Le=[];function Re(e){return Le.push(e),e}function ze(e){let t=Le.lastIndexOf(e);t!==-1&&Le.splice(t,1)}function Be(){return Le.length>0?Le[Le.length-1]:null}async function Ve(e){let t=Be();return t?Ie(e,t.onUpdate):(Pe.warn(`showToolUIFromContext called without execution context`),null)}const He=v(`panel-transport`);function Ue(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function We(){return{onMessage:e=>{let t=(t,n,r)=>(Ue(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)||He.error(`Offscreen → panel transport send failed`,{error:t})})}}}const Ge=v(`offscreen-bridge`);var Ke=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||=We(),this._transport}async bind(e,t){this.orchestrator=e,this.browserAPI=t??null,this.transportUnsubscribe?.(),this.transportUnsubscribe=this.setupMessageListener();let n=new Ne;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-${qe()}`;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(Ae.has(n))return;let i=e.getOrCreateAssistantMsg(t);i.toolCalls||=[],i.toolCalls.push({id:qe(),name:n,input:r}),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:n,toolInput:r})},onToolEnd:(t,n,r,i)=>{if(Ae.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=Te(),t=De();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}-${qe()}`,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){Ge.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=>{Ge.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-DRR_n3Cd.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){Ge.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=>{Ge.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}-${qe()}`,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-B4nH2NxC.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 Fe.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}),Fe.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 qe(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}const Je=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function Ye(e){return typeof e==`string`&&Je.includes(e)}var Xe=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 Ze=(e,t,n)=>{let r=e instanceof RegExp?Qe(e,n):e,i=t instanceof RegExp?Qe(t,n):t,a=r!==null&&i!=null&&eee(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)}},Qe=(e,t)=>{let n=t.match(e);return n?n[0]:null},eee=(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},$e=`\0SLASH`+Math.random()+`\0`,et=`\0OPEN`+Math.random()+`\0`,tt=`\0CLOSE`+Math.random()+`\0`,nt=`\0COMMA`+Math.random()+`\0`,rt=`\0PERIOD`+Math.random()+`\0`,tee=new RegExp($e,`g`),it=new RegExp(et,`g`),at=new RegExp(tt,`g`),ot=new RegExp(nt,`g`),st=new RegExp(rt,`g`),ct=/\\\\/g,lt=/\\{/g,ut=/\\}/g,dt=/\\,/g,nee=/\\\./g;function ft(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function ree(e){return e.replace(ct,$e).replace(lt,et).replace(ut,tt).replace(dt,nt).replace(nee,rt)}function iee(e){return e.replace(tee,`\\`).replace(it,`{`).replace(at,`}`).replace(ot,`,`).replace(st,`.`)}function pt(e){if(!e)return[``];let t=[],n=Ze(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=pt(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}function aee(e,t={}){if(!e)return[];let{max:n=1e5}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),gt(ree(e),n,!0).map(iee)}function oee(e){return`{`+e+`}`}function see(e){return/^-?0\d/.test(e)}function mt(e,t){return e<=t}function ht(e,t){return e>=t}function gt(e,t,n){let r=[],i=Ze(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?gt(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+tt+i.post,gt(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=pt(i.body),d.length===1&&d[0]!==void 0&&(d=gt(d[0],t,!1).map(oee),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=ft(d[0]),t=ft(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.abs(ft(d[2])):1,i=mt;t<e&&(r*=-1,i=ht);let a=d.some(see);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,gt(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 _t=e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>65536)throw TypeError(`pattern is too long`)},vt={"[: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]},yt=e=>e.replace(/[[\]\\-]/g,`\\$&`),bt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),xt=e=>e.join(``),St=(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(vt))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(yt(d)+`-`+yt(t)):t===d&&r.push(yt(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(yt(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(yt(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[bt(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+xt(r)+`]`,p=`[`+(l?``:`^`)+xt(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},Ct=(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 wt;const Tt=new Set([`!`,`?`,`+`,`*`,`@`]),Et=e=>Tt.has(e),Dt=e=>Et(e.type),Ot=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),cee=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),lee=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),kt=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),At=`(?!\\.)`,uee=new Set([`[`,`.`]),dee=new Set([`..`,`.`]),fee=new Set(`().*{}+?[]^$\\!`),pee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),jt=`[^/]+?`;let mee=0;var Mt=class{type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++mee;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 wt&&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 wt&&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 wt(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&&Et(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new wt(n,t);u=wt.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new wt(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&&Et(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 wt(n,d);d.push(o),u=wt.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new wt(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,cee)}#m(e,t=Ot){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=lee){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new wt(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!!kt.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=kt.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 wt(null,void 0,t);return wt.#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()),!Dt(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`?wt.#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&&dee.has(this.#r[0]))){let n=uee,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?At:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,Ct(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,Ct(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?At:``)+jt;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?At:``)+`[^/]*?)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,Ct(i),this.#t=!!this.#t,this.#n]}#x(){if(Dt(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+=(fee.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?jt:`[^/]*?`,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=St(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=`[^/]`,t=!0;continue}i+=pee(c)}return[i,Ct(e),!!t,a]}};wt=Mt;const hee=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),Nt=(e,t,n={})=>(_t(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Ut(t,n).match(e)),gee=/^\*+([^+@!?\*\[\(]*)$/,_ee=e=>t=>!t.startsWith(`.`)&&t.endsWith(e),vee=e=>t=>t.endsWith(e),yee=e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),bee=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),xee=/^\*+\.\*+$/,See=e=>!e.startsWith(`.`)&&e.includes(`.`),Cee=e=>e!==`.`&&e!==`..`&&e.includes(`.`),wee=/^\.\*+$/,Tee=e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),Eee=/^\*+$/,Dee=e=>e.length!==0&&!e.startsWith(`.`),Oee=e=>e.length!==0&&e!==`.`&&e!==`..`,kee=/^\?+([^+@!?\*\[\(]*)?$/,Aee=([e,t=``])=>{let n=Pt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},jee=([e,t=``])=>{let n=Ft([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Mee=([e,t=``])=>{let n=Ft([e]);return t?e=>n(e)&&e.endsWith(t):n},Nee=([e,t=``])=>{let n=Pt([e]);return t?e=>n(e)&&e.endsWith(t):n},Pt=([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},Ft=([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},It=typeof process==`object`&&process?{}.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Lt={win32:{sep:`\\`},posix:{sep:`/`}};Nt.sep=It===`win32`?Lt.win32.sep:Lt.posix.sep;const Rt=Symbol(`globstar **`);Nt.GLOBSTAR=Rt,Nt.filter=(e,t={})=>n=>Nt(n,e,t);const zt=(e,t={})=>Object.assign({},e,t);Nt.defaults=e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return Nt;let t=Nt;return Object.assign((n,r,i={})=>t(n,r,zt(e,i)),{Minimatch:class extends t.Minimatch{constructor(t,n={}){super(t,zt(e,n))}static defaults(n){return t.defaults(zt(e,n)).Minimatch}},AST:class extends t.AST{constructor(t,n,r={}){super(t,n,zt(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,zt(e,r))}},unescape:(n,r={})=>t.unescape(n,zt(e,r)),escape:(n,r={})=>t.escape(n,zt(e,r)),filter:(n,r={})=>t.filter(n,zt(e,r)),defaults:n=>t.defaults(zt(e,n)),makeRe:(n,r={})=>t.makeRe(n,zt(e,r)),braceExpand:(n,r={})=>t.braceExpand(n,zt(e,r)),match:(n,r,i={})=>t.match(n,r,zt(e,i)),sep:t.sep,GLOBSTAR:Rt})};const Bt=(e,t={})=>(_t(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:aee(e,{max:t.braceExpandMax}));Nt.braceExpand=Bt,Nt.makeRe=(e,t={})=>new Ut(e,t).makeRe(),Nt.match=(e,t,n={})=>{let r=new Ut(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e};const Vt=/[?*]|[+@!]\(.*?\)|\[|\]/,Ht=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`);var Ut=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){_t(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||It,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]===`?`||!Vt.test(e[2]))&&!Vt.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(Rt)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Rt,i),o=t.lastIndexOf(Rt),[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===Rt?(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===Rt)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 Bt(this.pattern,this.options)}parse(e){_t(e);let t=this.options;if(e===`**`)return Rt;if(e===``)return``;let n,r=null;(n=e.match(Eee))?r=t.dot?Oee:Dee:(n=e.match(gee))?r=(t.nocase?t.dot?bee:yee:t.dot?vee:_ee)(n[1]):(n=e.match(kee))?r=(t.nocase?t.dot?jee:Aee:t.dot?Mee:Nee)(n):(n=e.match(xee))?r=t.dot?Cee:See:(n=e.match(wee))&&(r=Tee);let i=Mt.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`?Ht(e):e===Rt?Rt:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Rt||a===Rt||(a===void 0?i!==void 0&&i!==Rt?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Rt&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Rt))});let i=t.filter(e=>e!==Rt);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 Nt.defaults(e).Minimatch}};Nt.AST=Mt,Nt.Minimatch=Ut,Nt.escape=hee,Nt.unescape=Ct;const Wt={};function Gt(){throw Error(`gunzipSync is not available in the browser`)}function Kt(){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 Jt(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 Yt(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 Xt(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 Zt(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 Qt(e,t){return Xt(e,t,``)}function $t(e,t){return Zt(e,t,``)}function en(e,t){return t.slice(0,Pee(e,t))}function Pee(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 tn(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function nn(e){let t=e.match(/^\s*/);return t?t[0]:``}const rn=`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}`,Fee=RegExp(`[${rn}]+|\\s+|[^${rn}]`,`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(Fee)||[];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)&&an(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&an(n,i,r,null),e}};function an(e,t,n,r){if(t&&n){let i=nn(t.value),a=tn(t.value),o=nn(n.value),s=tn(n.value);if(e){let r=Jt(i,o);e.value=Zt(e.value,o,r),t.value=Qt(t.value,r),n.value=Qt(n.value,r)}if(r){let e=Yt(a,s);r.value=Xt(r.value,s,e),t.value=$t(t.value,e),n.value=$t(n.value,e)}}else if(n){if(e){let e=nn(n.value);n.value=n.value.substring(e.length)}if(r){let e=nn(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=nn(r.value),i=nn(t.value),a=tn(t.value),o=Jt(n,i);t.value=Qt(t.value,o);let s=Yt(Qt(n,o),a);t.value=$t(t.value,s),r.value=Xt(r.value,n,s),e.value=Zt(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=nn(r.value),n=en(tn(t.value),e);t.value=$t(t.value,n)}else if(e){let n=en(tn(e.value),nn(t.value));t.value=Qt(t.value,n)}}new class extends qt{tokenize(e){let t=RegExp(`(\\r?\\n)|[${rn}]+|[^\\S\\n\\r]+|[^${rn}]`,`ug`);return e.match(t)||[]}};const Iee=new class extends qt{constructor(){super(...arguments),this.tokenize=sn}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:w()})}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 E(e){let t={role:x(e.role,`unknown`),name:x(e.name)},n=x(e.value);n!==``&&(t.value=n);let r=x(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>E(e)).filter(e=>e.role!==`unknown`)),t}function D(e){return e.headers.get(`x-proxy-error`)===`1`}async function O(e){let t=`Proxy error ${e.status}`,n;try{n=await e.text()}catch{return t}return ee(n,t)}function ee(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 k={SCOOPS:`scoops`,MESSAGES:`messages`,SESSIONS:`sessions`,TASKS:`tasks`,STATE:`state`,WEBHOOKS:`webhooks`,CRONTASKS:`crontasks`};let te=null;async function A(){if(te){let e=Object.values(k).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(k.MESSAGES)){let e=t.createObjectStore(k.MESSAGES,{keyPath:`id`});e.createIndex(`chatJid`,`chatJid`),e.createIndex(`timestamp`,`timestamp`),e.createIndex(`chatJid_timestamp`,[`chatJid`,`timestamp`])}t.objectStoreNames.contains(k.SESSIONS)||t.createObjectStore(k.SESSIONS,{keyPath:`groupFolder`}),t.objectStoreNames.contains(k.TASKS)||t.createObjectStore(k.TASKS,{keyPath:`id`}).createIndex(`groupFolder`,`groupFolder`),t.objectStoreNames.contains(k.STATE)||t.createObjectStore(k.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(k.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(k.SCOOPS)||t.createObjectStore(k.SCOOPS,{keyPath:`jid`}).createIndex(`type`,`type`)}n<3&&(t.objectStoreNames.contains(k.WEBHOOKS)||t.createObjectStore(k.WEBHOOKS,{keyPath:`id`}),t.objectStoreNames.contains(k.CRONTASKS)||t.createObjectStore(k.CRONTASKS,{keyPath:`id`}))},n.onsuccess=()=>{te=n.result,e(te)},n.onerror=()=>t(n.error)})}async function j(e,t=`readonly`){return(await A()).transaction(e,t).objectStore(e)}async function ne(e){let t=await j(k.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function re(){let e=await j(k.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 ie(e){let t=await j(k.SCOOPS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ae(){let e=await j(k.MESSAGES,`readwrite`);return new Promise((t,n)=>{let r=e.clear();r.onsuccess=()=>t(),r.onerror=()=>n(r.error)})}async function oe(e){let t=(await j(k.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 se(e){let t=await j(k.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ce(e){let t=await j(k.MESSAGES,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function le(e){let t=(await j(k.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 ue(e,t,n){let r=(await j(k.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 M(e){let t=await j(k.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function de(e){let t=await j(k.TASKS);return new Promise((n,r)=>{let i=t.get(e);i.onsuccess=()=>n(i.result??null),i.onerror=()=>r(i.error)})}async function fe(){let e=await j(k.TASKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}async function pe(e){let t=await j(k.TASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function me(e){let t=await j(k.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 he(e,t){let n=await j(k.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 ge(){await A()}async function _e(e){let t=await j(k.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.put(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function ve(){try{let e=await j(k.WEBHOOKS);return new Promise((t,n)=>{let r=e.getAll();r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})}catch{return[]}}async function ye(e){let t=await j(k.WEBHOOKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}async function N(e){let t=await j(k.CRONTASKS,`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 j(k.CRONTASKS);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 j(k.CRONTASKS,`readwrite`);return new Promise((n,r)=>{let i=t.delete(e);i.onsuccess=()=>n(),i.onerror=()=>r(i.error)})}function Se(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 Ce=`slicc.trayWorkerBaseUrl`,we=`https://www.sliccy.ai`;v(`tray-leader`);let P={state:`inactive`,session:null,error:null};function Te(){return{...P,session:P.session?{...P.session}:null}}const F=new Set;function I(e){return F.add(e),()=>{F.delete(e)}}let Ee={state:`inactive`,joinUrl:null,trayId:null,error:null,lastPingTime:null,reconnectAttempts:0,attachAttempts:0,lastAttachCode:null,connectingSince:null,lastError:null};function De(){return{...Ee}}const Oe=new Set;function ke(e){return Oe.add(e),()=>{Oe.delete(e)}}const Ae=new Set([`send_message`,`list_scoops`,`list_tasks`]),je=`sessions`;function Me(){return new Promise((e,t)=>{let n=indexedDB.open(`browser-coding-agent`,1);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(je)||e.createObjectStore(je,{keyPath:`id`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Ne=class{db=null;async init(){this.db=await Me()}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(je,`readwrite`);i.objectStore(je).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(je,`readonly`).objectStore(je).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(je,`readonly`).objectStore(je).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(je,`readwrite`);i.objectStore(je).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 Pe=v(`tool-ui`),Fe=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}),Pe.info(`Tool UI registered`,{id:e})}async handleAction(e,t){let n=this.pending.get(e);if(!n){Pe.warn(`Action for unknown tool UI`,{id:e,action:t.action});return}Pe.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),Pe.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&&Pe.info(`All tool UIs cancelled`,{reason:e,count:t})}isPending(e){return this.pending.has(e)}getPendingIds(){return[...this.pending.keys()]}};async function Ie(e,t){let n=e.id??Fe.generateId(),r,i,a=new Promise((e,t)=>{r=e,i=t});return Fe.register(n,e,r,i),t?t({content:[{type:`tool_ui`,requestId:n,html:e.html}]}):Pe.warn(`showToolUI called without onUpdate callback — UI may not render`),a.finally(()=>{t&&t({content:[{type:`tool_ui_done`,requestId:n}]})})}const Le=[];function Re(e){return Le.push(e),e}function ze(e){let t=Le.lastIndexOf(e);t!==-1&&Le.splice(t,1)}function Be(){return Le.length>0?Le[Le.length-1]:null}async function Ve(e){let t=Be();return t?Ie(e,t.onUpdate):(Pe.warn(`showToolUIFromContext called without execution context`),null)}const He=v(`panel-transport`);function Ue(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function We(){return{onMessage:e=>{let t=(t,n,r)=>(Ue(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)||He.error(`Offscreen → panel transport send failed`,{error:t})})}}}const Ge=v(`offscreen-bridge`);var Ke=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||=We(),this._transport}async bind(e,t){this.orchestrator=e,this.browserAPI=t??null,this.transportUnsubscribe?.(),this.transportUnsubscribe=this.setupMessageListener();let n=new Ne;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-${qe()}`;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(Ae.has(n))return;let i=e.getOrCreateAssistantMsg(t);i.toolCalls||=[],i.toolCalls.push({id:qe(),name:n,input:r}),e.emit({type:`agent-event`,scoopJid:t,eventType:`tool_start`,toolName:n,toolInput:r})},onToolEnd:(t,n,r,i)=>{if(Ae.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=Te(),t=De();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}-${qe()}`,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){Ge.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=>{Ge.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-CwzwhYwI.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){Ge.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=>{Ge.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}-${qe()}`,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-B4nH2NxC.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 Fe.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}),Fe.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 qe(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}const Je=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function Ye(e){return typeof e==`string`&&Je.includes(e)}var Xe=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 Ze=(e,t,n)=>{let r=e instanceof RegExp?Qe(e,n):e,i=t instanceof RegExp?Qe(t,n):t,a=r!==null&&i!=null&&eee(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)}},Qe=(e,t)=>{let n=t.match(e);return n?n[0]:null},eee=(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},$e=`\0SLASH`+Math.random()+`\0`,et=`\0OPEN`+Math.random()+`\0`,tt=`\0CLOSE`+Math.random()+`\0`,nt=`\0COMMA`+Math.random()+`\0`,rt=`\0PERIOD`+Math.random()+`\0`,tee=new RegExp($e,`g`),it=new RegExp(et,`g`),at=new RegExp(tt,`g`),ot=new RegExp(nt,`g`),st=new RegExp(rt,`g`),ct=/\\\\/g,lt=/\\{/g,ut=/\\}/g,dt=/\\,/g,nee=/\\\./g;function ft(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function ree(e){return e.replace(ct,$e).replace(lt,et).replace(ut,tt).replace(dt,nt).replace(nee,rt)}function iee(e){return e.replace(tee,`\\`).replace(it,`{`).replace(at,`}`).replace(ot,`,`).replace(st,`.`)}function pt(e){if(!e)return[``];let t=[],n=Ze(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=pt(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}function aee(e,t={}){if(!e)return[];let{max:n=1e5}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),gt(ree(e),n,!0).map(iee)}function oee(e){return`{`+e+`}`}function see(e){return/^-?0\d/.test(e)}function mt(e,t){return e<=t}function ht(e,t){return e>=t}function gt(e,t,n){let r=[],i=Ze(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?gt(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+tt+i.post,gt(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=pt(i.body),d.length===1&&d[0]!==void 0&&(d=gt(d[0],t,!1).map(oee),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=ft(d[0]),t=ft(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.abs(ft(d[2])):1,i=mt;t<e&&(r*=-1,i=ht);let a=d.some(see);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,gt(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 _t=e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>65536)throw TypeError(`pattern is too long`)},vt={"[: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]},yt=e=>e.replace(/[[\]\\-]/g,`\\$&`),bt=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),xt=e=>e.join(``),St=(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(vt))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(yt(d)+`-`+yt(t)):t===d&&r.push(yt(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(yt(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(yt(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[bt(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+xt(r)+`]`,p=`[`+(l?``:`^`)+xt(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},Ct=(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 wt;const Tt=new Set([`!`,`?`,`+`,`*`,`@`]),Et=e=>Tt.has(e),Dt=e=>Et(e.type),Ot=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),cee=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),lee=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),kt=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),At=`(?!\\.)`,uee=new Set([`[`,`.`]),dee=new Set([`..`,`.`]),fee=new Set(`().*{}+?[]^$\\!`),pee=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),jt=`[^/]+?`;let mee=0;var Mt=class{type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++mee;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 wt&&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 wt&&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 wt(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&&Et(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new wt(n,t);u=wt.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new wt(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&&Et(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 wt(n,d);d.push(o),u=wt.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new wt(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,cee)}#m(e,t=Ot){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=lee){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new wt(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!!kt.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=kt.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 wt(null,void 0,t);return wt.#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()),!Dt(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`?wt.#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&&dee.has(this.#r[0]))){let n=uee,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?At:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,Ct(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,Ct(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?At:``)+jt;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?At:``)+`[^/]*?)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,Ct(i),this.#t=!!this.#t,this.#n]}#x(){if(Dt(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+=(fee.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?jt:`[^/]*?`,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=St(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=`[^/]`,t=!0;continue}i+=pee(c)}return[i,Ct(e),!!t,a]}};wt=Mt;const hee=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),Nt=(e,t,n={})=>(_t(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Ut(t,n).match(e)),gee=/^\*+([^+@!?\*\[\(]*)$/,_ee=e=>t=>!t.startsWith(`.`)&&t.endsWith(e),vee=e=>t=>t.endsWith(e),yee=e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),bee=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),xee=/^\*+\.\*+$/,See=e=>!e.startsWith(`.`)&&e.includes(`.`),Cee=e=>e!==`.`&&e!==`..`&&e.includes(`.`),wee=/^\.\*+$/,Tee=e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),Eee=/^\*+$/,Dee=e=>e.length!==0&&!e.startsWith(`.`),Oee=e=>e.length!==0&&e!==`.`&&e!==`..`,kee=/^\?+([^+@!?\*\[\(]*)?$/,Aee=([e,t=``])=>{let n=Pt([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},jee=([e,t=``])=>{let n=Ft([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},Mee=([e,t=``])=>{let n=Ft([e]);return t?e=>n(e)&&e.endsWith(t):n},Nee=([e,t=``])=>{let n=Pt([e]);return t?e=>n(e)&&e.endsWith(t):n},Pt=([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},Ft=([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},It=typeof process==`object`&&process?{}.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Lt={win32:{sep:`\\`},posix:{sep:`/`}};Nt.sep=It===`win32`?Lt.win32.sep:Lt.posix.sep;const Rt=Symbol(`globstar **`);Nt.GLOBSTAR=Rt,Nt.filter=(e,t={})=>n=>Nt(n,e,t);const zt=(e,t={})=>Object.assign({},e,t);Nt.defaults=e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return Nt;let t=Nt;return Object.assign((n,r,i={})=>t(n,r,zt(e,i)),{Minimatch:class extends t.Minimatch{constructor(t,n={}){super(t,zt(e,n))}static defaults(n){return t.defaults(zt(e,n)).Minimatch}},AST:class extends t.AST{constructor(t,n,r={}){super(t,n,zt(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,zt(e,r))}},unescape:(n,r={})=>t.unescape(n,zt(e,r)),escape:(n,r={})=>t.escape(n,zt(e,r)),filter:(n,r={})=>t.filter(n,zt(e,r)),defaults:n=>t.defaults(zt(e,n)),makeRe:(n,r={})=>t.makeRe(n,zt(e,r)),braceExpand:(n,r={})=>t.braceExpand(n,zt(e,r)),match:(n,r,i={})=>t.match(n,r,zt(e,i)),sep:t.sep,GLOBSTAR:Rt})};const Bt=(e,t={})=>(_t(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:aee(e,{max:t.braceExpandMax}));Nt.braceExpand=Bt,Nt.makeRe=(e,t={})=>new Ut(e,t).makeRe(),Nt.match=(e,t,n={})=>{let r=new Ut(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e};const Vt=/[?*]|[+@!]\(.*?\)|\[|\]/,Ht=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`);var Ut=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){_t(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||It,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]===`?`||!Vt.test(e[2]))&&!Vt.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(Rt)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Rt,i),o=t.lastIndexOf(Rt),[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===Rt?(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===Rt)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 Bt(this.pattern,this.options)}parse(e){_t(e);let t=this.options;if(e===`**`)return Rt;if(e===``)return``;let n,r=null;(n=e.match(Eee))?r=t.dot?Oee:Dee:(n=e.match(gee))?r=(t.nocase?t.dot?bee:yee:t.dot?vee:_ee)(n[1]):(n=e.match(kee))?r=(t.nocase?t.dot?jee:Aee:t.dot?Mee:Nee)(n):(n=e.match(xee))?r=t.dot?Cee:See:(n=e.match(wee))&&(r=Tee);let i=Mt.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`?Ht(e):e===Rt?Rt:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Rt||a===Rt||(a===void 0?i!==void 0&&i!==Rt?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Rt&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Rt))});let i=t.filter(e=>e!==Rt);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 Nt.defaults(e).Minimatch}};Nt.AST=Mt,Nt.Minimatch=Ut,Nt.escape=hee,Nt.unescape=Ct;const Wt={};function Gt(){throw Error(`gunzipSync is not available in the browser`)}function Kt(){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 Jt(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 Yt(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 Xt(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 Zt(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 Qt(e,t){return Xt(e,t,``)}function $t(e,t){return Zt(e,t,``)}function en(e,t){return t.slice(0,Pee(e,t))}function Pee(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 tn(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function nn(e){let t=e.match(/^\s*/);return t?t[0]:``}const rn=`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}`,Fee=RegExp(`[${rn}]+|\\s+|[^${rn}]`,`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(Fee)||[];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)&&an(n,i,r,e),n=e,r=null,i=null)}),(r||i)&&an(n,i,r,null),e}};function an(e,t,n,r){if(t&&n){let i=nn(t.value),a=tn(t.value),o=nn(n.value),s=tn(n.value);if(e){let r=Jt(i,o);e.value=Zt(e.value,o,r),t.value=Qt(t.value,r),n.value=Qt(n.value,r)}if(r){let e=Yt(a,s);r.value=Xt(r.value,s,e),t.value=$t(t.value,e),n.value=$t(n.value,e)}}else if(n){if(e){let e=nn(n.value);n.value=n.value.substring(e.length)}if(r){let e=nn(r.value);r.value=r.value.substring(e.length)}}else if(e&&r){let n=nn(r.value),i=nn(t.value),a=tn(t.value),o=Jt(n,i);t.value=Qt(t.value,o);let s=Yt(Qt(n,o),a);t.value=$t(t.value,s),r.value=Xt(r.value,n,s),e.value=Zt(e.value,n,n.slice(0,n.length-s.length))}else if(r){let e=nn(r.value),n=en(tn(t.value),e);t.value=$t(t.value,n)}else if(e){let n=en(tn(e.value),nn(t.value));t.value=Qt(t.value,n)}}new class extends qt{tokenize(e){let t=RegExp(`(\\r?\\n)|[${rn}]+|[^\\S\\n\\r]+|[^${rn}]`,`ug`);return e.match(t)||[]}};const Iee=new class extends qt{constructor(){super(...arguments),this.tokenize=sn}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:Khe(n.getRegisteredCommands?.()??[],await e.getJshCommands?.()??[]),stderr:``,exitCode:0}})}const Jhe={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 MF(e){return Jhe[e.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function Yhe(e){return e.startsWith(`image/`)}function Xhe(e){return e.startsWith(`video/`)}function Zhe(e){return Yhe(e)||Xhe(e)}function NF(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 PF=null,FF=null;function IF(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 LF(e){let t=e.lastIndexOf(`/`);return t<=0?`/`:e.slice(0,t)}function RF(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function zF(e){if(/^(https?:\/\/|about:|file:|chrome:)/i.test(e))return!0;try{return new URL(e).protocol.length>0}catch{return!1}}function Qhe(e,t){return e===`/`?t.startsWith(`/`):t===e||t.startsWith(`${e}/`)}function $he(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function ege(e){return e==null?``:e instanceof Uint8Array?`x'${$he(e)}'`:String(e)}function BF(e){return MF(e)}function VF(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 tge(e){return e.length===0||e.startsWith(`/`)?!1:!e.split(`/`).some(e=>e===`..`)}function nge(e,t){return q(`${e}/${t}`)}function HF(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 UF(){return typeof process<`u`&&!!process.versions?.node}function WF(){return typeof chrome<`u`&&!!chrome?.runtime?.id}async function rge(){return PF||=(async()=>{let e=(await import(`./sql-wasm-BhN2AaSY.js`).then(e=>u(e.default,1))).default,t=UF()?HF(`sql.js/dist/sql-wasm.js`,`../../../../../node_modules/sql.js/dist/`).toString():`https://sql.js.org/dist/`;return e({locateFile:e=>`${t}${e}`})})(),PF}async function GF(){return FF||=(async()=>{let e=await import(`./typescript-D-sYRkTp.js`).then(e=>u(e.default,1));return e.default??e})(),FF}var KF=c({MAGICK_WASM_CDN:()=>JF,MIME_TO_MAGICK_FORMAT:()=>ige,getMagick:()=>XF,isExtension:()=>YF});const ige={"image/jpeg":`JPEG`,"image/png":`PNG`,"image/gif":`GIF`,"image/webp":`WEBP`,"image/bmp":`BMP`,"image/tiff":`TIFF`,"image/avif":`AVIF`};let qF=null;const JF=`https://cdn.jsdelivr.net/npm/@imagemagick/magick-wasm@0.0.38/dist/`,YF=typeof chrome<`u`&&!!chrome?.runtime?.id;async function XF(){return qF||=(async()=>{try{let e=await import(`./dist-DElqKLgF.js`);if(YF){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=UF()?new URL(`/assets/index-BeMnZBAU.js`,``+import.meta.url).toString():JF,n=new URL(`magick.wasm`,t);await e.initializeImageMagick(n)}return e}catch(e){throw qF=null,e}})(),qF}function age(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 oge(){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:Khe(n.getRegisteredCommands?.()??[],await e.getJshCommands?.()??[]),stderr:``,exitCode:0}})}const Jhe={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 MF(e){return Jhe[e.split(`.`).pop()?.toLowerCase()??``]??`application/octet-stream`}function Yhe(e){return e.startsWith(`image/`)}function Xhe(e){return e.startsWith(`video/`)}function Zhe(e){return Yhe(e)||Xhe(e)}function NF(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 PF=null,FF=null;function IF(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 LF(e){let t=e.lastIndexOf(`/`);return t<=0?`/`:e.slice(0,t)}function RF(e,t){return e===`/`?`/${t}`:`${e}/${t}`}function zF(e){if(/^(https?:\/\/|about:|file:|chrome:)/i.test(e))return!0;try{return new URL(e).protocol.length>0}catch{return!1}}function Qhe(e,t){return e===`/`?t.startsWith(`/`):t===e||t.startsWith(`${e}/`)}function $he(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function ege(e){return e==null?``:e instanceof Uint8Array?`x'${$he(e)}'`:String(e)}function BF(e){return MF(e)}function VF(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 tge(e){return e.length===0||e.startsWith(`/`)?!1:!e.split(`/`).some(e=>e===`..`)}function nge(e,t){return q(`${e}/${t}`)}function HF(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 UF(){return typeof process<`u`&&!!process.versions?.node}function WF(){return typeof chrome<`u`&&!!chrome?.runtime?.id}async function rge(){return PF||=(async()=>{let e=(await import(`./sql-wasm-D-F3Sver.js`).then(e=>u(e.default,1))).default,t=UF()?HF(`sql.js/dist/sql-wasm.js`,`../../../../../node_modules/sql.js/dist/`).toString():`https://sql.js.org/dist/`;return e({locateFile:e=>`${t}${e}`})})(),PF}async function GF(){return FF||=(async()=>{let e=await import(`./typescript-VVTdKuA_.js`).then(e=>u(e.default,1));return e.default??e})(),FF}var KF=c({MAGICK_WASM_CDN:()=>JF,MIME_TO_MAGICK_FORMAT:()=>ige,getMagick:()=>XF,isExtension:()=>YF});const ige={"image/jpeg":`JPEG`,"image/png":`PNG`,"image/gif":`GIF`,"image/webp":`WEBP`,"image/bmp":`BMP`,"image/tiff":`TIFF`,"image/avif":`AVIF`};let qF=null;const JF=`https://cdn.jsdelivr.net/npm/@imagemagick/magick-wasm@0.0.38/dist/`,YF=typeof chrome<`u`&&!!chrome?.runtime?.id;async function XF(){return qF||=(async()=>{try{let e=await import(`./dist-DElqKLgF.js`);if(YF){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=UF()?new URL(`/assets/index-BeMnZBAU.js`,``+import.meta.url).toString():JF,n=new URL(`magick.wasm`,t);await e.initializeImageMagick(n)}return e}catch(e){throw qF=null,e}})(),qF}function age(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 oge(){return{stdout:`usage: convert [input] [operations...] [output]
3102
3102
 
3103
3103
  Operations:
3104
3104
  -resize WxH resize to width x height
@@ -3149,7 +3149,7 @@ Options:
3149
3149
  `),r}async function s(t){if(typeof t!=`string`||!t.trim())throw TypeError(`skill.token(providerId): providerId must be a non-empty string`);let n=`oauth-token ${_I(t)}`,{stdout:r,stderr:i,exitCode:a}=await e.exec(n);if(a!==0){let e=i.trim()||`oauth-token exited with code ${a}`;throw Error(`skill.token('${t}'): ${e}`)}return r.replace(/\r?\n+$/,``)}return Object.freeze({dir:t,refs:n,assets:r,config:o,token:s})}var bI=class extends Error{status;statusText;url;body;constructor(e,t,n,r){let i=typeof r==`string`&&r?`: ${r.slice(0,200)}`:r&&typeof r==`object`?`: ${xI(r).slice(0,200)}`:``;super(`HTTP ${e} ${t} ${n}${i}`),this.status=e,this.statusText=t,this.url=n,this.body=r,this.name=`HttpError`}};function xI(e){try{return JSON.stringify(e)}catch{return String(e)}}function SI(e){return new Promise(t=>setTimeout(t,e))}function CI(e,t,n){let r;if(r=/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:e?`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`:t,!n)return r;let i=[];for(let[e,t]of Object.entries(n))if(t!=null)if(Array.isArray(t))for(let n of t)n!=null&&i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`);else i.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(t))}`);return i.length===0?r:r+(r.includes(`?`)?`&`:`?`)+i.join(`&`)}function wI(e,t){let n={};if(e)for(let[t,r]of Object.entries(e))n[t]=r;if(t)for(let[e,r]of Object.entries(t))n[e]=r;return n}function TI(e){if(!e)return!1;let t=e.toLowerCase();return t.startsWith(`application/json`)||/[+/]json(;|$|\s)/.test(t)}function EI(e){if(!e)return null;let t=e.trim();if(!t)return null;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(Number.isFinite(e)&&e>=0)return Math.round(e*1e3)}let n=Date.parse(t);if(Number.isFinite(n)){let e=n-Date.now();return e>0?e:0}return null}async function DI(e){if(TI(e.headers.get(`content-type`))){let t=await e.text();if(!t)return null;try{return JSON.parse(t)}catch{return t}}return e.text()}function OI(e,t){if(e!=null)return typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof Blob<`u`&&e instanceof Blob||typeof FormData<`u`&&e instanceof FormData||typeof URLSearchParams<`u`&&e instanceof URLSearchParams||typeof ReadableStream<`u`&&e instanceof ReadableStream?e:typeof e==`object`?(Object.keys(t).some(e=>e.toLowerCase()===`content-type`)||(t[`Content-Type`]=`application/json`),JSON.stringify(e)):String(e)}function kI(e){let t=e.sleep??SI;function n(n){let r=new Set(n.retry?.on??[]),i=Math.max(1,Math.trunc(n.retry?.maxAttempts??1));async function a(a,o,s={}){let c=CI(n.baseUrl,o,s.params),l=wI(n.headers,s.headers);if(n.token){let e=await n.token({method:a,path:o,url:c});e&&(Object.keys(l).some(e=>e.toLowerCase()===`authorization`)||(l.Authorization=`Bearer ${e}`))}let u=OI(s.body,l),d={method:a,headers:l};u!==void 0&&(d.body=u);let f=null;for(let a=0;a<i;a++){let o=n.timeoutMs?new AbortController:null,l=o?setTimeout(()=>o.abort(Error(`timeout`)),n.timeoutMs):null,u=s.signal&&o?.signal?AbortSignal.any([s.signal,o.signal]):s.signal??o?.signal,p=u?{...d,signal:u}:d,m;try{m=await e.fetch(c,p)}finally{l!==null&&clearTimeout(l)}if(f=m,m.ok){let e=await DI(m);return s.raw?{body:e,headers:Object.fromEntries(m.headers.entries()),status:m.status}:e}if(!(a+1<i&&r.has(m.status))){let e=await DI(m).catch(()=>null);throw new bI(m.status,m.statusText,c,e)}let h=EI(m.headers.get(`retry-after`)),g=500*2**a;await t(h===null?g:h)}if(f){let e=await DI(f).catch(()=>null);throw new bI(f.status,f.statusText,c,e)}throw Error(`http: no attempts made for ${a} ${c}`)}return Object.freeze({get:((e,t)=>a(`GET`,e,t)),post:((e,t)=>a(`POST`,e,t)),put:((e,t)=>a(`PUT`,e,t)),delete:((e,t)=>a(`DELETE`,e,t))})}return Object.freeze({client:n})}function AI(e){let t=[],n={},r=[],i=(e,t)=>{if(e in n){let r=n[e];Array.isArray(r)?r.push(String(t)):n[e]=[String(r),String(t)]}else n[e]=t},a=2;for(;a<e.length;){let n=e[a];if(n===`--`){r.push(...e.slice(a+1));break}if(n.startsWith(`--`)){let t=n.slice(2),r=t.indexOf(`=`);if(r!==-1){i(t.slice(0,r),t.slice(r+1)),a++;continue}let o=e[a+1];if(o!==void 0&&!o.startsWith(`-`)){i(t,o),a+=2;continue}i(t,!0),a++;continue}if(n.startsWith(`-`)&&n.length>1){for(let e of n.slice(1))i(e,!0);a++;continue}t.push(n),a++}return{positional:t,flags:n,subcommand:t.length>0&&/^[a-z][\w-]*$/i.test(t[0])?t[0]:null,passthrough:r}}function jI(e){let t=[...e];return Object.defineProperty(t,"parseFlags",{value:()=>AI(t),enumerable:!1,writable:!1,configurable:!1}),t}function MI(e){let t=e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},n=(e,t,n)=>t===void 0?`${e(`Error:`)} ${n}\n`:t===``?`${e(n)}\n`:`${e(`${t}:`)} ${n}\n`,r=(t,n)=>t===void 0?`${e.color.yellow(`Warning:`)} ${n}\n`:t===``?`${e.color.yellow(n)}\n`:`${e.color.yellow(`${t}:`)} ${n}\n`;return{die(r,i){let a=typeof i==`number`?i:i?.exitCode??1,o=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0,s=t(r);throw e.writeStderr(n(e.color.red,o,s)),e.exit(a),Error(`unreachable`)},out(t){if(typeof t==`string`){e.writeStdout(t.endsWith(`
3150
3150
  `)?t:`${t}\n`);return}try{e.writeStdout(`${JSON.stringify(t,null,2)}\n`)}catch{e.writeStdout(`${String(t)}\n`)}},warn(n,i){let a=typeof i==`object`&&i&&`prefix`in i?i.prefix:void 0;e.writeStderr(r(a,t(n)))},help(t){throw e.writeStdout(t.endsWith(`
3151
3151
  `)?t:`${t}\n`),e.exit(0),Error(`unreachable`)}}}const NI={reset:`\x1B[0m`,green:`\x1B[32m`,red:`\x1B[31m`,yellow:`\x1B[33m`,gray:`\x1B[90m`,bold:`\x1B[1m`,cyan:`\x1B[36m`,dim:`\x1B[2m`};function PI(e){let t=e.isTTY&&!e.noColor,n=e=>n=>t?`${e}${n}${NI.reset}`:String(n);return{enabled:t,green:n(NI.green),red:n(NI.red),yellow:n(NI.yellow),gray:n(NI.gray),bold:n(NI.bold),cyan:n(NI.cyan),dim:n(NI.dim)}}const FI={ms:1,s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,M:26298e5,y:315576e5};function II(e){if(typeof e==`number`&&Number.isFinite(e))return Math.trunc(e);if(typeof e!=`string`)throw TypeError(`time.parseDuration: spec must be string or number`);let t=e.trim(),n=/^([0-9]+(?:\.[0-9]+)?)\s*(ms|s|m|h|d|w|M|y)?$/.exec(t);if(!n)throw RangeError(`time.parseDuration: unrecognized spec "${e}"`);let r=Number(n[1]),i=n[2]??`ms`;return Math.trunc(r*FI[i])}function LI(e){return e<10?`0${e}`:String(e)}const RI={parseDuration:II,ago(e,t=new Date){return new Date(t.getTime()-II(e))},range(e,t=new Date){let n=new Date(t.getTime());return{start:new Date(n.getTime()-II(e)),end:n}},future(e,t=new Date){let n=new Date(t.getTime());return{start:n,end:new Date(n.getTime()+II(e))}},gmailDate(e,t=new Date){let n=new Date(t.getTime()-II(e));return`${n.getFullYear()}/${LI(n.getMonth()+1)}/${LI(n.getDate())}`}},zI=/\u001b\[[0-9;]*m/g;function BI(e){return e.replace(zI,``)}function VI(e){return BI(e).length}function HI(e,t){let n=String(e??``);return t<=0?``:VI(n)<=t?n:t<=1?n.slice(0,t):`${BI(n).slice(0,t-1)}…`}function UI(e,t){let n=String(e??``),r=VI(n);return r===t?n:r>t?HI(n,t):n+` `.repeat(t-r)}function WI(e,t){if(!e.length)return``;let n=Math.max(...e.map(e=>e.length)),r=[];for(let i=0;i<n;i++)if(t&&t[i]!==void 0)r[i]=t[i];else{let t=0;for(let n of e){let e=i<n.length?String(n[i]??``):``;t=Math.max(t,VI(e))}r[i]=t}return e.map(e=>r.map((t,n)=>UI(n<e.length?String(e[n]??``):``,t)).join(` `).replace(/\s+$/,``)).join(`
3152
- `)}function GI(e){return e instanceof Date?e:new Date(e)}function KI(e,t=`short`){let n=GI(e);if(Number.isNaN(n.getTime()))return String(e);if(t===`iso`)return n.toISOString();if(t===`locale`)return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`}).format(n);if(t===`human`){let e=Date.now()-n.getTime(),t=Math.abs(e);if(t<6e4)return e>=0?`just now`:`in a moment`;let r=(t,n)=>e>=0?`${t} ${n}${t===1?``:`s`} ago`:`in ${t} ${n}${t===1?``:`s`}`;return t<36e5?r(Math.round(t/6e4),`minute`):t<864e5?r(Math.round(t/36e5),`hour`):t<26298e5?r(Math.round(t/864e5),`day`):t<315576e5?r(Math.round(t/26298e5),`month`):r(Math.round(t/315576e5),`year`)}return`${n.getFullYear()}-${LI(n.getMonth()+1)}-${LI(n.getDate())}`}const qI={trunc:HI,col:UI,table:WI,date:KI},JI=async(e,t,n)=>{let r=Math.max(1,Math.trunc(e)||1),i=Array(t.length),a=0,o=[],s=async()=>{for(;;){let e=a++;if(e>=t.length)return;i[e]=await n(t[e],e)}};for(let e=0;e<Math.min(r,t.length);e++)o.push(s());return await Promise.all(o),i},YI=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`]),XI=new Set([`fs`,`process`,`buffer`]);var ZI=class extends Error{code;constructor(e){super(`Process exited with code ${e}`),this.code=e,this.name=`NodeExitError`}};function QI(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 $I(e){if(typeof e==`string`)return e;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}async function eL(e,t,n=nL){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($I).join(` `)}\n`),info:(...e)=>a(`${e.map($I).join(` `)}\n`),warn:(...e)=>o(`${e.map($I).join(` `)}\n`),error:(...e)=>o(`${e.map($I).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=jI(e.argv),f=!!e.env?.NO_COLOR,p={argv:d,env:e.env,cwd:()=>e.cwd,exit:e=>{throw new ZI(Number.isFinite(e)?Number(e):0)},stdin:u,stdout:{write:a,isTTY:!f},stderr:{write:o,isTTY:!f}},m=PI({isTTY:!f,noColor:f}),h=MI({writeStdout:a,writeStderr:o,exit:e=>{throw new ZI(e)},color:m}),g=new pI(t),_={readFile:e=>g.call(`vfs`,`readFile`,[e]),readFileBinary:e=>g.call(`vfs`,`readFileBinary`,[e]),writeFile:(e,t)=>g.call(`vfs`,`writeFile`,[e,t]),writeFileBinary:(e,t)=>g.call(`vfs`,`writeFileBinary`,[e,t]),readDir:e=>g.call(`vfs`,`readDir`,[e]),exists:e=>g.call(`vfs`,`exists`,[e]),stat:e=>g.call(`vfs`,`stat`,[e]),mkdir:e=>g.call(`vfs`,`mkdir`,[e]),rm:e=>g.call(`vfs`,`rm`,[e]),fetchToFile:async(e,t)=>{let n=await S(e);if(!n.ok)throw Error(`fetch ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());return await g.call(`vfs`,`writeFileBinary`,[t,r]),r.byteLength}},v=Object.assign(e=>g.call(`exec`,`run`,[e]),{spawn:e=>g.call(`exec`,`spawn`,[e])}),y=yI({argv:e.argv,fs:_,exec:v}),b={findTab:e=>g.call(`browser`,`findTab`,[oL(e)]),ensureTab:(e,t={})=>g.call(`browser`,`ensureTab`,[e,sL(t)]),eval:(e,t)=>g.call(`browser`,`eval`,[rL(e),iL(t,!1)]),evalAsync:(e,t)=>g.call(`browser`,`evalAsync`,[rL(e),iL(t,!0)]),cookie:(e,t)=>g.call(`browser`,`cookie`,[rL(e),t]),localStorage:(e,t)=>g.call(`browser`,`localStorage`,[rL(e),t]),fetch:(e,t,n={})=>g.call(`browser`,`evalAsync`,[rL(e),aL(t,n)]),websocket:cL(g)},x=kI({fetch:S});async function S(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await g.call(`fetch`,`request`,[n,tL(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 C=QI(e.code).map(e=>e.startsWith(`node:`)?e.slice(5):e).filter(e=>!XI.has(e)&&!YI.has(e)),w=C.filter(e=>mI.has(e)),T=C.filter(e=>!mI.has(e));for(let e of w)o(`Warning: ${hI(e,e).message}\n`);let E=Object.create(null);if(T.length>0){let e=await Promise.allSettled(T.map(async e=>{let t=await Jge(n(e),15e3,`require('${e}')`);E[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('${T[t]}'): ${e}\n`)}}}let D=e=>{let t=e.startsWith(`node:`)?e.slice(5):e;if(t===`fs`)return _;if(t===`process`)return p;if(t===`buffer`)return{Buffer:globalThis.Buffer};if(t===`path`){if(`path`in E)return E.path;if(e in E)return E[e];throw Error(`require('${e}'): path module not pre-loaded. Add require('path') as a static import.`)}if(mI.has(t))throw hI(e,t);if(YI.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 E)return E[e];if(t in E)return E[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.`)},O={exports:{},filename:e.filename},ee=0;try{let t=Object.getPrototypeOf(async function(){}).constructor;await new t(`fs`,`process`,`console`,`require`,`module`,`exports`,`exec`,`fetch`,`skill`,`http`,`browser`,`cli`,`c`,`time`,`fmt`,`pool`,`"use strict";\n${e.code}`)(_,p,s,D,O,O.exports,v,S,y,x,b,h,m,RI,qI,JI)}catch(e){e instanceof ZI?ee=e.code:(o(`${e instanceof Error?e.stack??e.message:String(e)}\n`),ee=1)}g.dispose();let k={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:ee};t.postMessage(k)}function tL(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 nL(e){return await import(`https://esm.sh/`+e)}function rL(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.targetId==`string`)return e.targetId;throw TypeError(`browser: expected a tab handle or targetId string`)}function iL(e,t){if(typeof e==`function`)return`(${e.toString()})()`;if(typeof e==`string`)return e;throw TypeError(`browser.eval/evalAsync: source must be a function or string`)}function aL(e,t={}){let n={},r=t.headers??{};for(let[e,t]of Object.entries(r))typeof t==`string`&&(n[e]=t);let i=typeof t.method==`string`?t.method:`GET`,a=t.credentials===`same-origin`||t.credentials===`omit`?t.credentials:`include`,o;t.body!==void 0&&t.body!==null&&(typeof t.body==`string`?o=t.body:(o=JSON.stringify(t.body),Object.keys(n).some(e=>e.toLowerCase()===`content-type`)||(n[`Content-Type`]=`application/json`)));let s={method:i,credentials:a,headers:n};o!==void 0&&(s.body=o);for(let e of[`mode`,`cache`,`redirect`,`referrer`,`referrerPolicy`,`integrity`,`keepalive`]){let n=t[e];n!==void 0&&(s[e]=n)}return`(async () => {const r = await fetch(`+JSON.stringify(e)+`, `+JSON.stringify(s)+`);const h = {};r.headers.forEach((v, k) => { h[k] = v; });const ct = r.headers.get('content-type') || '';let b;if (ct.indexOf('application/json') !== -1) {try { b = await r.json(); } catch (e) { b = await r.text(); }} else { b = await r.text(); }return { ok: r.ok, status: r.status, headers: h, body: b };})()`}function oL(e){let t={};return e.domain!==void 0&&(t.domain=e.domain),e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch instanceof RegExp?e.urlMatch.source:e.urlMatch),t}function sL(e){return e.matchUrl===void 0?{}:{matchUrl:e.matchUrl instanceof RegExp?e.matchUrl.source:e.matchUrl}}function cL(e){function t(t){return{...t,async update(n){let r={};return n.urlMatch!==void 0&&(r.urlMatch=n.urlMatch===null?null:n.urlMatch instanceof RegExp?n.urlMatch.source:n.urlMatch),n.filter!==void 0&&(r.filter=n.filter),e.call(`browser`,`wsUpdate`,[t.id,r])},async close(){return e.call(`browser`,`wsClose`,[t.id])}}}return{on(n,r={}){let i=rL(n),a=r.urlMatch===void 0?void 0:r.urlMatch instanceof RegExp?r.urlMatch.source:r.urlMatch,o,s={filter(e){if(typeof e==`function`||typeof e==`string`)throw TypeError(`browser.websocket: filter must be a declarative JSON object, not a function or string`);return o=e,s},async forward(n){return t(await e.call(`browser`,`wsObserve`,[{targetId:i,urlMatch:a,filter:o,forward:n}]))}};return s},async list(){return e.call(`browser`,`wsList`,[])}}}const lL=`https://cdn.jsdelivr.net/pyodide/v${NF(`pyodide`,`0.29.4`)}/full/`;async function uL(e,t,n=()=>import(`./pyodide-DMuot7oT.js`)){let r=[],i=[],a=new pI(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 fL(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+`
3152
+ `)}function GI(e){return e instanceof Date?e:new Date(e)}function KI(e,t=`short`){let n=GI(e);if(Number.isNaN(n.getTime()))return String(e);if(t===`iso`)return n.toISOString();if(t===`locale`)return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`}).format(n);if(t===`human`){let e=Date.now()-n.getTime(),t=Math.abs(e);if(t<6e4)return e>=0?`just now`:`in a moment`;let r=(t,n)=>e>=0?`${t} ${n}${t===1?``:`s`} ago`:`in ${t} ${n}${t===1?``:`s`}`;return t<36e5?r(Math.round(t/6e4),`minute`):t<864e5?r(Math.round(t/36e5),`hour`):t<26298e5?r(Math.round(t/864e5),`day`):t<315576e5?r(Math.round(t/26298e5),`month`):r(Math.round(t/315576e5),`year`)}return`${n.getFullYear()}-${LI(n.getMonth()+1)}-${LI(n.getDate())}`}const qI={trunc:HI,col:UI,table:WI,date:KI},JI=async(e,t,n)=>{let r=Math.max(1,Math.trunc(e)||1),i=Array(t.length),a=0,o=[],s=async()=>{for(;;){let e=a++;if(e>=t.length)return;i[e]=await n(t[e],e)}};for(let e=0;e<Math.min(r,t.length);e++)o.push(s());return await Promise.all(o),i},YI=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`]),XI=new Set([`fs`,`process`,`buffer`]);var ZI=class extends Error{code;constructor(e){super(`Process exited with code ${e}`),this.code=e,this.name=`NodeExitError`}};function QI(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 $I(e){if(typeof e==`string`)return e;if(e==null)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}async function eL(e,t,n=nL){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($I).join(` `)}\n`),info:(...e)=>a(`${e.map($I).join(` `)}\n`),warn:(...e)=>o(`${e.map($I).join(` `)}\n`),error:(...e)=>o(`${e.map($I).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=jI(e.argv),f=!!e.env?.NO_COLOR,p={argv:d,env:e.env,cwd:()=>e.cwd,exit:e=>{throw new ZI(Number.isFinite(e)?Number(e):0)},stdin:u,stdout:{write:a,isTTY:!f},stderr:{write:o,isTTY:!f}},m=PI({isTTY:!f,noColor:f}),h=MI({writeStdout:a,writeStderr:o,exit:e=>{throw new ZI(e)},color:m}),g=new pI(t),_={readFile:e=>g.call(`vfs`,`readFile`,[e]),readFileBinary:e=>g.call(`vfs`,`readFileBinary`,[e]),writeFile:(e,t)=>g.call(`vfs`,`writeFile`,[e,t]),writeFileBinary:(e,t)=>g.call(`vfs`,`writeFileBinary`,[e,t]),readDir:e=>g.call(`vfs`,`readDir`,[e]),exists:e=>g.call(`vfs`,`exists`,[e]),stat:e=>g.call(`vfs`,`stat`,[e]),mkdir:e=>g.call(`vfs`,`mkdir`,[e]),rm:e=>g.call(`vfs`,`rm`,[e]),fetchToFile:async(e,t)=>{let n=await S(e);if(!n.ok)throw Error(`fetch ${n.status} ${n.statusText}`);let r=new Uint8Array(await n.arrayBuffer());return await g.call(`vfs`,`writeFileBinary`,[t,r]),r.byteLength}},v=Object.assign(e=>g.call(`exec`,`run`,[e]),{spawn:e=>g.call(`exec`,`spawn`,[e])}),y=yI({argv:e.argv,fs:_,exec:v}),b={findTab:e=>g.call(`browser`,`findTab`,[oL(e)]),ensureTab:(e,t={})=>g.call(`browser`,`ensureTab`,[e,sL(t)]),eval:(e,t)=>g.call(`browser`,`eval`,[rL(e),iL(t,!1)]),evalAsync:(e,t)=>g.call(`browser`,`evalAsync`,[rL(e),iL(t,!0)]),cookie:(e,t)=>g.call(`browser`,`cookie`,[rL(e),t]),localStorage:(e,t)=>g.call(`browser`,`localStorage`,[rL(e),t]),fetch:(e,t,n={})=>g.call(`browser`,`evalAsync`,[rL(e),aL(t,n)]),websocket:cL(g)},x=kI({fetch:S});async function S(e,t){let n=e instanceof Request?e.url:e instanceof URL?e.toString():String(e),r=await g.call(`fetch`,`request`,[n,tL(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 C=QI(e.code).map(e=>e.startsWith(`node:`)?e.slice(5):e).filter(e=>!XI.has(e)&&!YI.has(e)),w=C.filter(e=>mI.has(e)),T=C.filter(e=>!mI.has(e));for(let e of w)o(`Warning: ${hI(e,e).message}\n`);let E=Object.create(null);if(T.length>0){let e=await Promise.allSettled(T.map(async e=>{let t=await Jge(n(e),15e3,`require('${e}')`);E[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('${T[t]}'): ${e}\n`)}}}let D=e=>{let t=e.startsWith(`node:`)?e.slice(5):e;if(t===`fs`)return _;if(t===`process`)return p;if(t===`buffer`)return{Buffer:globalThis.Buffer};if(t===`path`){if(`path`in E)return E.path;if(e in E)return E[e];throw Error(`require('${e}'): path module not pre-loaded. Add require('path') as a static import.`)}if(mI.has(t))throw hI(e,t);if(YI.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 E)return E[e];if(t in E)return E[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.`)},O={exports:{},filename:e.filename},ee=0;try{let t=Object.getPrototypeOf(async function(){}).constructor;await new t(`fs`,`process`,`console`,`require`,`module`,`exports`,`exec`,`fetch`,`skill`,`http`,`browser`,`cli`,`c`,`time`,`fmt`,`pool`,`"use strict";\n${e.code}`)(_,p,s,D,O,O.exports,v,S,y,x,b,h,m,RI,qI,JI)}catch(e){e instanceof ZI?ee=e.code:(o(`${e instanceof Error?e.stack??e.message:String(e)}\n`),ee=1)}g.dispose();let k={type:`realm-done`,stdout:r.join(``),stderr:i.join(``),exitCode:ee};t.postMessage(k)}function tL(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 nL(e){return await import(`https://esm.sh/`+e)}function rL(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.targetId==`string`)return e.targetId;throw TypeError(`browser: expected a tab handle or targetId string`)}function iL(e,t){if(typeof e==`function`)return`(${e.toString()})()`;if(typeof e==`string`)return e;throw TypeError(`browser.eval/evalAsync: source must be a function or string`)}function aL(e,t={}){let n={},r=t.headers??{};for(let[e,t]of Object.entries(r))typeof t==`string`&&(n[e]=t);let i=typeof t.method==`string`?t.method:`GET`,a=t.credentials===`same-origin`||t.credentials===`omit`?t.credentials:`include`,o;t.body!==void 0&&t.body!==null&&(typeof t.body==`string`?o=t.body:(o=JSON.stringify(t.body),Object.keys(n).some(e=>e.toLowerCase()===`content-type`)||(n[`Content-Type`]=`application/json`)));let s={method:i,credentials:a,headers:n};o!==void 0&&(s.body=o);for(let e of[`mode`,`cache`,`redirect`,`referrer`,`referrerPolicy`,`integrity`,`keepalive`]){let n=t[e];n!==void 0&&(s[e]=n)}return`(async () => {const r = await fetch(`+JSON.stringify(e)+`, `+JSON.stringify(s)+`);const h = {};r.headers.forEach((v, k) => { h[k] = v; });const ct = r.headers.get('content-type') || '';let b;if (ct.indexOf('application/json') !== -1) {try { b = await r.json(); } catch (e) { b = await r.text(); }} else { b = await r.text(); }return { ok: r.ok, status: r.status, headers: h, body: b };})()`}function oL(e){let t={};return e.domain!==void 0&&(t.domain=e.domain),e.urlMatch!==void 0&&(t.urlMatch=e.urlMatch instanceof RegExp?e.urlMatch.source:e.urlMatch),t}function sL(e){return e.matchUrl===void 0?{}:{matchUrl:e.matchUrl instanceof RegExp?e.matchUrl.source:e.matchUrl}}function cL(e){function t(t){return{...t,async update(n){let r={};return n.urlMatch!==void 0&&(r.urlMatch=n.urlMatch===null?null:n.urlMatch instanceof RegExp?n.urlMatch.source:n.urlMatch),n.filter!==void 0&&(r.filter=n.filter),e.call(`browser`,`wsUpdate`,[t.id,r])},async close(){return e.call(`browser`,`wsClose`,[t.id])}}}return{on(n,r={}){let i=rL(n),a=r.urlMatch===void 0?void 0:r.urlMatch instanceof RegExp?r.urlMatch.source:r.urlMatch,o,s={filter(e){if(typeof e==`function`||typeof e==`string`)throw TypeError(`browser.websocket: filter must be a declarative JSON object, not a function or string`);return o=e,s},async forward(n){return t(await e.call(`browser`,`wsObserve`,[{targetId:i,urlMatch:a,filter:o,forward:n}]))}};return s},async list(){return e.call(`browser`,`wsList`,[])}}}const lL=`https://cdn.jsdelivr.net/pyodide/v${NF(`pyodide`,`0.29.4`)}/full/`;async function uL(e,t,n=()=>import(`./pyodide-wtFIlZhs.js`)){let r=[],i=[],a=new pI(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 fL(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+`
3153
3153
  `)}),o.setStderr({batched:e=>i.push(e+`
3154
3154
  `)});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(`
3155
3155
  import sys
@@ -3201,7 +3201,7 @@ except BaseException:
3201
3201
  `,exitCode:1};let r;try{r=await t.fs.stat(n)}catch{return{stdout:``,stderr:`open: no such file: ${e}\n`,exitCode:1}}if(!r.isFile)return{stdout:``,stderr:`open: not a file: ${e}\n`,exitCode:1};let i;try{i=await t.fs.readFileBuffer(n)}catch{return{stdout:``,stderr:`open: failed to read: ${e}\n`,exitCode:1}}let a=new Uint8Array(i.byteLength);a.set(i);let o=new Blob([a.buffer],{type:BF(n)}),s=URL.createObjectURL(o),l=document.createElement(`a`);l.href=s,l.download=IF(n)||`download`,l.style.display=`none`,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(s),0),f.push(`downloaded ${n}`)}else{if(!u)return{stdout:``,stderr:`open: browser APIs are unavailable in this environment
3202
3202
  `,exitCode:1};let e=VF(n);try{await d(e)}catch(e){return{stdout:``,stderr:`${e instanceof Error?e.message:String(e)}\n`,exitCode:1}}f.push(`opened ${n} → ${e}`)}}return{stdout:f.join(`
3203
3203
  `)+`
3204
- `,stderr:``,exitCode:0}})}let KL=null,qL=null;async function JL(){return KL||=import(`./es-CSl2NTTK.js`),KL}async function YL(){return qL||=import(`./dist-CrC-F8vu.js`),qL}function XL(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 ZL(e){let{range:t,rotation:n}=XL(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 QL(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 $L(){return{stdout:`usage: pdftk <input.pdf> <operation> [args...]
3204
+ `,stderr:``,exitCode:0}})}let KL=null,qL=null;async function JL(){return KL||=import(`./es-BHP3e8lV.js`),KL}async function YL(){return qL||=import(`./dist-CrC-F8vu.js`),qL}function XL(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 ZL(e){let{range:t,rotation:n}=XL(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 QL(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 $L(){return{stdout:`usage: pdftk <input.pdf> <operation> [args...]
3205
3205
 
3206
3206
  Operations:
3207
3207
  dump_data Print metadata (page count, title, author, etc.)
@@ -4116,7 +4116,7 @@ self.onmessage = async ({ data: { id, type, data: _data }, }) => {
4116
4116
  };
4117
4117
  `;const IR=`0.12.10`,LR=`https://unpkg.com/@ffmpeg/core@${IR}/dist/esm/`,RR=`slicc-ffmpeg-${IR}`;let zR=null;async function BR(e={}){return zR||=VR(e.onProgress).catch(e=>{throw zR=null,e}),zR}async function VR(e){let t=e??(()=>{}),n=new NR,r=await HR(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 HR(e){let t=`${LR}ffmpeg-core.js`,n=`${LR}ffmpeg-core.wasm`;if(!WF())return await Promise.all([UR(t,e),UR(n,e)]),{coreURL:t,wasmURL:n};e(`downloading ffmpeg-core (cached after first run)...`);let[r,i]=await Promise.all([WR(t,`application/javascript`,e),WR(n,`application/wasm`,e)]);return{coreURL:GR(r,`application/javascript`),wasmURL:GR(i,`application/wasm`),classWorkerURL:KR(FR,`application/javascript`)}}async function UR(e,t){if(!(typeof caches>`u`))try{let n=await caches.open(RR);if(await n.match(e))return;t(`fetching ${qR(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 WR(e,t,n){if(typeof caches<`u`)try{let t=await(await caches.open(RR)).match(e);if(t)return new Uint8Array(await t.arrayBuffer())}catch{}n(`fetching ${qR(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(RR),r=new Response(i,{headers:{"content-type":t}});await n.put(e,r)}catch{}return i}function GR(e,t){let n=new ArrayBuffer(e.byteLength);return new Uint8Array(n).set(e),URL.createObjectURL(new Blob([n],{type:t}))}function KR(e,t){return URL.createObjectURL(new Blob([e],{type:t}))}function qR(e){return e.replace(/^https?:\/\//,``).slice(0,64)}const JR={assign:0,create:0,clone:0,discard:0,update:0};function YR(e,t){return JR.assign+=1,{...e,...t}}function XR(e,t,n){return e>=t&&e<=n}function ZR(e){return XR(e,127462,127487)}function QR(e){return XR(e,65024,65039)}function $R(e){return XR(e,768,879)||XR(e,6832,6911)||XR(e,7616,7679)||XR(e,65056,65071)}function ez(e){return e>65535?2:1}function tz(e,t){for(;t<e.length;){let n=e.codePointAt(t);if($R(n)||QR(n))t+=ez(n);else break}return t}function nz(e,t){let n=e.codePointAt(t),r=t+ez(n);for(r=tz(e,r);r<e.length-1&&e[r]===`‍`;){let t=e.codePointAt(r+1);r+=1+ez(t),r=tz(e,r)}return ZR(n)&&r<e.length&&ZR(e.codePointAt(r))&&(r+=ez(e.codePointAt(r))),r}function rz(e){return XR(e,55296,56319)||XR(e,768,879)||e===8205}function iz(e){let t=0,n=0;for(;n<e.length;)n=nz(e,n),t++;return t}function az(e,t){if(t===0)return!0;let n=0,r=0;for(;r<e.length;)if(r=nz(e,r),n++,n>=t)return!0;return!1}function oz(e,t){let n=0,r=0;for(;r<e.length;)if(r=nz(e,r),n++,n>t)return!1;return!0}function sz(e,t){if(t===0)return!0;let n=0;for(;n<e.length;){if(rz(e.charCodeAt(n)))return az(e,t);if(n++,n>=t)return!0}return!1}function cz(e,t){let n=0;for(;n<e.length;){if(rz(e.charCodeAt(n)))return oz(e,t);if(n++,n>t)return!1}return!0}var lz=c({Entries:()=>zz,EntriesRegExp:()=>Rz,Every:()=>Fz,EveryAll:()=>Iz,GraphemeCount:()=>Mz,HasPropertyKey:()=>Z,IsArray:()=>uz,IsAsyncIterator:()=>dz,IsBigInt:()=>fz,IsBoolean:()=>pz,IsClassInstance:()=>Az,IsConstructor:()=>mz,IsDeepEqual:()=>Gz,IsEqual:()=>X,IsFunction:()=>hz,IsGreaterEqualThan:()=>Oz,IsGreaterThan:()=>Tz,IsInteger:()=>gz,IsIterator:()=>_z,IsLessEqualThan:()=>Dz,IsLessThan:()=>Ez,IsMaxLength:()=>Nz,IsMinLength:()=>Pz,IsMultipleOf:()=>kz,IsNull:()=>vz,IsNumber:()=>yz,IsObject:()=>xz,IsObjectNotArray:()=>bz,IsString:()=>Sz,IsSymbol:()=>Cz,IsUndefined:()=>wz,IsValueLike:()=>jz,Keys:()=>Bz,Symbols:()=>Vz,TakeLeft:()=>Lz,Values:()=>Hz});function uz(e){return Array.isArray(e)}function dz(e){return xz(e)&&Symbol.asyncIterator in e}function fz(e){return X(typeof e,`bigint`)}function pz(e){return X(typeof e,`boolean`)}function mz(e){if(wz(e)||!hz(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function hz(e){return X(typeof e,`function`)}function gz(e){return Number.isInteger(e)}function _z(e){return xz(e)&&Symbol.iterator in e}function vz(e){return X(e,null)}function yz(e){return Number.isFinite(e)}function bz(e){return xz(e)&&!uz(e)}function xz(e){return X(typeof e,`object`)&&!vz(e)}function Sz(e){return X(typeof e,`string`)}function Cz(e){return X(typeof e,`symbol`)}function wz(e){return X(e,void 0)}function X(e,t){return e===t}function Tz(e,t){return e>t}function Ez(e,t){return e<t}function Dz(e,t){return e<=t}function Oz(e,t){return e>=t}function kz(e,t){if(fz(e)||fz(t))return BigInt(e)%BigInt(t)===0n;if(!yz(e)||gz(e)&&1/t%1==0)return!0;let n=e%t;return Math.min(Math.abs(n),Math.abs(n-t))<1e-10}function Az(e){if(!xz(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return vz(t)?!1:X(typeof t.constructor,`function`)&&!(X(t.constructor,globalThis.Object)||X(t.constructor.name,`Object`))}function jz(e){return fz(e)||pz(e)||vz(e)||yz(e)||Sz(e)||wz(e)}function Mz(e){return iz(e)}function Nz(e,t){return cz(e,t)}function Pz(e,t){return sz(e,t)}function Fz(e,t,n){for(let r=t;r<e.length;r++)if(!n(e[r],r))return!1;return!0}function Iz(e,t,n){let r=!0;for(let i=t;i<e.length;i++)n(e[i],i)||(r=!1);return r}function Lz(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 Rz(e){return Bz(e).map(t=>[RegExp(`^${t}$`),e[t]])}function zz(e){return Object.entries(e)}function Bz(e){return Object.getOwnPropertyNames(e)}function Vz(e){return Object.getOwnPropertySymbols(e)}function Hz(e){return Object.values(e)}function Uz(e,t){if(!xz(t))return!1;let n=Bz(e);return X(n.length,Bz(t).length)&&n.every(n=>Gz(e[n],t[n]))}function Wz(e,t){return uz(t)&&X(e.length,t.length)&&e.every((n,r)=>Gz(e[r],t[r]))}function Gz(e,t){return uz(e)?Wz(e,t):xz(e)?Uz(e,t):X(e,t)}const Kz=/^[\p{ID_Start}_$][\p{ID_Continue}_$\u200C\u200D]*$/u;function qz(e){return Kz.test(e)}function Jz(e,t){return`(${e} && ${t})`}function Yz(e,t){return`(${e} || ${t})`}function Xz(e){return`!(${e})`}function Zz(e){return`Array.isArray(${e})`}function Qz(e){return`Guard.IsAsyncIterator(${e})`}function $z(e){return`typeof ${e} === "bigint"`}function eB(e){return`typeof ${e} === "boolean"`}function tB(e){return`Number.isInteger(${e})`}function nB(e){return`Guard.IsIterator(${e})`}function rB(e){return`${e} === null`}function iB(e){return`Number.isFinite(${e})`}function aB(e){return Jz(oB(e),Xz(Zz(e)))}function oB(e){return`typeof ${e} === "object" && ${e} !== null`}function sB(e){return`typeof ${e} === "string"`}function cB(e){return`typeof ${e} === "symbol"`}function lB(e){return`${e} === undefined`}function uB(e){return`typeof ${e} === "function"`}function dB(e){return`Guard.IsConstructor(${e})`}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){return`${e} >= ${t}`}function _B(e,t){return`Guard.IsMinLength(${e}, ${t})`}function vB(e,t){return`Guard.IsMaxLength(${e}, ${t})`}function yB(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 bB(e){return`Object.entries(${e})`}function xB(e){return`Object.getOwnPropertyNames(${e})`}function SB(e,t){return X(t,`"__proto__"`)||X(t,`"constructor"`)?`Object.prototype.hasOwnProperty.call(${e}, ${t})`:`${t} in ${e}`}function CB(e,t){return`Guard.IsDeepEqual(${e}, ${t})`}function wB(e){return`[${e.join(`, `)}]`}function TB(e,t){return`((${e.join(`, `)}) => ${t})`}function EB(e,t){return`${e}(${t.join(`, `)})`}function DB(e,t){return`new ${e}(${t.join(`, `)})`}function OB(e,t){return`${e}${qz(t)?`.${t}`:`[${kB(t)}]`}`}function kB(e){return Sz(e)?JSON.stringify(e):`${e}`}function AB(e,t,n){return`(${e} ? ${t} : ${n})`}function jB(e){return`{ ${e.join(`; `)}; }`}function MB(e,t){return`const ${e} = ${t}`}function NB(e,t){return`if(${e}) { ${t} }`}function PB(e){return`return ${e}`}function FB(e){return X(e.length,0)?`true`:e.reduce((e,t)=>Jz(e,t))}function IB(e){return X(e.length,0)?`false`:e.reduce((e,t)=>Yz(e,t))}function LB(e){return`++${e}`}function RB(e,t){return`Guard.IsMultipleOf(${e}, ${t})`}function zB(e){return e instanceof Boolean}function BB(e){return e instanceof Number}function VB(e){return e instanceof String}function HB(e){return globalThis.ArrayBuffer.isView(e)}function UB(e){return e instanceof globalThis.RegExp}function WB(e){return e instanceof globalThis.Date}function GB(e){return e instanceof globalThis.Set}function KB(e){return e instanceof globalThis.Map}function qB(e){return xz(e)&&Z(e,`~guard`)}function JB(e){return e}function YB(e){return e.map(e=>$B(e))}function XB(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:$B(r.value)})}return t}function ZB(e){return new RegExp(e.source,e.flags)}function QB(e){return e}function $B(e){return e instanceof RegExp?ZB(e):qB(e)?JB(e):uz(e)?YB(e):xz(e)?XB(e):QB(e)}function eV(e){return JR.clone+=1,$B(e)}const tV={immutableTypes:!1,maxErrors:8,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1};function nV(){return tV}function rV(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 iV(e,t){return{...e,...t}}function aV(e,t,n={}){JR.create+=1;let r=nV(),i=iV(t,n),a=r.enumerableKind?iV(i,e):rV(i,e);return r.immutableTypes?Object.freeze(a):a}function oV(e,t){JR.discard+=1;let n={},r=Object.getOwnPropertyDescriptors(eV(e)),i=new Set(t);for(let e of Object.keys(r))i.has(e)||Object.defineProperty(n,e,r[e]);return n}function sV(e,t,n){JR.update+=1;let r=nV(),i=eV(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 cV(e,t){return xz(e)&&Z(e,`~kind`)&&X(e[`~kind`],t)}function lV(e){return xz(e)}function uV(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`OptionalAddAction`)&&lV(e.type)}function dV(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`OptionalRemoveAction`)&&lV(e.type)}function fV(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`ReadonlyAddAction`)&&lV(e.type)}function pV(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`type`)&&X(e[`~kind`],`ReadonlyRemoveAction`)&&lV(e.type)}function mV(e,t,n){return aV({"~kind":`Deferred`},{action:e,parameters:t,options:n},{})}function hV(e){return cV(e,`Deferred`)}function gV(e,t){return aV({"~kind":`Promise`},{type:`promise`,item:e},t)}function _V(e){return cV(e,`Promise`)}function vV(e){return oV(e,[`~kind`,`type`,`item`])}function yV(e){return sV(e,{"~immutable":!0},{})}function bV(e){return yV(e)}function xV(e){return lV(e)&&Z(e,`~immutable`)}function SV(e){return oV(e,[`~optional`])}function CV(e){return sV(e,{"~optional":!0},{})}function wV(e){return CV(e)}function TV(e){return lV(e)&&Z(e,`~optional`)}function EV(e){return oV(e,[`~readonly`])}function DV(e){return sV(e,{"~readonly":!0},{})}function OV(e){return DV(e)}function kV(e){return lV(e)&&Z(e,`~readonly`)}function AV(e){return{enumerable:nV().enumerableKind,writable:!1,configurable:!1,value:e}}var jV=class{constructor(){globalThis.Object.defineProperty(this,`~kind`,AV(`Base`)),globalThis.Object.defineProperty(this,`~guard`,AV({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 MV(e){return cV(e,`Base`)}function NV(e,t){return aV({"~kind":`Array`},{type:`array`,items:e},t)}function PV(e){return cV(e,`Array`)}function FV(e){return oV(e,[`~kind`,`type`,`items`])}function IV(e,t){return aV({"~kind":`AsyncIterator`},{type:`asyncIterator`,iteratorItems:e},t)}function LV(e){return cV(e,`AsyncIterator`)}function RV(e){return oV(e,[`~kind`,`type`,`iteratorItems`])}function zV(e,t,n={}){return aV({"~kind":`Constructor`},{type:`constructor`,parameters:e,instanceType:t},n)}function BV(e){return cV(e,`Constructor`)}function VV(e){return oV(e,[`~kind`,`type`,`parameters`,`instanceType`])}function HV(e,t,n={}){return aV({"~kind":`Function`},{type:`function`,parameters:e,returnType:t},n)}function UV(e){return cV(e,`Function`)}function WV(e){return oV(e,[`~kind`,`type`,`parameters`,`returnType`])}function GV(e,t){return aV({"~kind":`Ref`},{$ref:e},t)}function KV(e){return cV(e,`Ref`)}function qV(e,t){return aV({"~kind":`Generic`},{type:`generic`,parameters:e,expression:t})}function JV(e){return cV(e,`Generic`)}function YV(e){return aV({"~kind":`Any`},{},e)}function XV(e){return cV(e,`Any`)}function ZV(e){return aV({"~kind":`Never`},{not:{}},e)}function QV(e){return cV(e,`Never`)}function $V(e){return Bz(e).filter(t=>!TV(e[t]))}function eH(e){return Bz(e)}function tH(e){return Hz(e)}function nH(e,t={}){let n=$V(e);return aV({"~kind":`Object`},{type:`object`,...n.length>0?{required:n}:{},properties:e},t)}function rH(e){return cV(e,`Object`)}function iH(e){return oV(e,[`~kind`,`type`,`properties`,`required`])}function aH(e,t={}){return aV({"~kind":`Union`},{anyOf:e},t)}function oH(e){return cV(e,`Union`)}function sH(e){return oV(e,[`~kind`,`anyOf`])}function cH(e){return aV({"~kind":`Unknown`},{},e)}function lH(e){return cV(e,`Unknown`)}function uH(e,t,n){return aV({"~kind":`Cyclic`},{$defs:Bz(e).reduce((t,n)=>({...t,[n]:sV(e[n],{},{$id:n})}),{}),$ref:t},n)}function dH(e){return cV(e,`Cyclic`)}function fH(e){return bz(e)&&Z(e,`~unsafe`)&&vz(e[`~unsafe`])}function pH(e,t){return t[e.length]?.(...e)??(()=>{throw Error(`Invalid Arguments`)})()}function mH(e){return cV(e,`Infer`)}function hH(e){return cV(e,`Enum`)}function gH(e,t={}){return aV({"~kind":`Intersect`},{allOf:e},t)}function _H(e){return cV(e,`Intersect`)}function vH(e){return oV(e,[`~kind`,`allOf`])}let yH;function bH(){try{return SH(`null`)(),!0}catch{return!1}}function xH(){return wz(yH)&&(yH=bH()),yH&&nV().useAcceleration}function SH(...e){return new globalThis.Function(...e)}function CH(){throw Error(`Unreachable`)}var wH=c({Hash:()=>$H,HashCode:()=>QH});function TH(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 EH(e){return typeof e==`number`}var DH;(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`})(DH||={});let OH=BigInt(`14695981039346656037`);const[kH,AH]=[BigInt(`1099511628211`),BigInt(`18446744073709551616`)],jH=Array.from({length:256}).map((e,t)=>BigInt(t)),MH=new Float64Array(1),NH=new DataView(MH.buffer),PH=new Uint8Array(MH.buffer);function FH(e){OH^=jH[e],OH=OH*kH%AH}function IH(e){FH(DH.Array);for(let t of e)ZH(t)}function LH(e){FH(DH.BigInt),NH.setBigInt64(0,e);for(let e of PH)FH(e)}function RH(e){FH(DH.Boolean),FH(+!!e)}function zH(e){FH(DH.Constructor),ZH(e.toString())}function BH(e){FH(DH.Date),ZH(e.getTime())}function VH(e){FH(DH.Function),ZH(e.toString())}function HH(e){FH(DH.Null)}function UH(e){FH(DH.Number),NH.setFloat64(0,e,!0);for(let e of PH)FH(e)}function WH(e){FH(DH.Object);for(let t of TH(e).sort())ZH(t),ZH(e[t])}function GH(e){FH(DH.RegExp),qH(e.toString())}const KH=new TextEncoder;function qH(e){FH(DH.String);for(let t of KH.encode(e))FH(t)}function JH(e){FH(DH.Symbol),ZH(e.toString())}function YH(e){FH(DH.TypeArray);let t=new Uint8Array(e.buffer);for(let e=0;e<t.length;e++)FH(t[e])}function XH(e){return FH(DH.Undefined)}function ZH(e){return HB(e)?YH(e):WB(e)?BH(e):UB(e)?GH(e):zB(e)?RH(e.valueOf()):VB(e)?qH(e.valueOf()):BB(e)?UH(e.valueOf()):EH(e)?UH(e):uz(e)?IH(e):pz(e)?RH(e):fz(e)?LH(e):mz(e)?zH(e):vz(e)?HH(e):xz(e)?WH(e):Sz(e)?qH(e):Cz(e)?JH(e):wz(e)?XH(e):hz(e)?VH(e):CH()}function QH(e){return OH=BigInt(`14695981039346656037`),ZH(e),OH}function $H(e){return QH(e).toString(16).padStart(16,`0`)}function eU(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 tU=eU;function nU(){return tU}function rU(e){return lV(e)&&Z(e,`~codec`)&&xz(e[`~codec`])&&Z(e[`~codec`],`encode`)&&Z(e[`~codec`],`decode`)}function iU(e){return aV({"~kind":`BigInt`},{type:`bigint`},e)}function aU(e){return cV(e,`BigInt`)}function oU(e){return cV(e,`Boolean`)}const sU=`-?(?:0|[1-9][0-9]*)`;function cU(e){return aV({"~kind":`Integer`},{type:`integer`},e)}function lU(e){return cV(e,`Integer`)}function uU(e,t){return aV({"~kind":`Iterator`},{type:`iterator`,iteratorItems:e},t)}function dU(e){return cV(e,`Iterator`)}function fU(e){return oV(e,[`~kind`,`type`,`iteratorItems`])}var pU=class extends Error{constructor(e){super(`Invalid Literal value`),Object.defineProperty(this,"cause",{value:{value:e},writable:!1,configurable:!1,enumerable:!1})}};function mU(e){return fz(e)?`bigint`:pz(e)?`boolean`:yz(e)?`number`:Sz(e)?`string`:(()=>{throw new pU(e)})()}function hU(e,t){return aV({"~kind":`Literal`},{type:mU(e),const:e},t)}function gU(e){return fz(e)||pz(e)||yz(e)||Sz(e)}function _U(e){return xU(e)&&fz(e.const)}function vU(e){return xU(e)&&pz(e.const)}function yU(e){return xU(e)&&yz(e.const)}function bU(e){return xU(e)&&Sz(e.const)}function xU(e){return cV(e,`Literal`)}function SU(e){return aV({"~kind":`Null`},{type:`null`},e)}function CU(e){return cV(e,`Null`)}const wU=`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`;function TU(e){return aV({"~kind":`Number`},{type:`number`},e)}function EU(e){return cV(e,`Number`)}function DU(e){return aV({"~kind":`Symbol`},{type:`symbol`},e)}function OU(e){return cV(e,`Symbol`)}function kU(e){return aV({"~kind":`String`},{type:`string`},e)}function AU(e){return cV(e,`String`)}function jU(e){let t=GG(e);return X(t.length,2)?t[0]:[]}function MU(e){return!0}function NU(e){return Lz(e,(e,t)=>FU(e)?NU(t):!1,()=>!0)}function PU(e){return X(e.length,0)?!1:NU(e)}function FU(e){return oH(e)?PU(e.anyOf):xU(e)?MU(e.const):!1}function IU(e){return PU(e)}function LU(e){return aV({"~kind":`TemplateLiteral`},{type:`string`,pattern:e},{})}function RU(e,t,n=[]){return Lz(e,(e,r)=>RU(r,t,[...n,`${e}${t}`]),()=>n)}function zU(e,t){return X(e.length,0)?[`${t}`]:RU(e,t)}function BU(e,t,n=[]){return Lz(t,(t,r)=>BU(e,r,[...n,...VU(e,t)]),()=>n)}function VU(e,t){return oH(t)?BU(e,t.anyOf):xU(t)?zU(e,t.const):CH()}function HU(e,t){return Lz(t,(t,n)=>HU(VU(e,t),n),()=>e)}function UU(e){return e.map(e=>hU(e))}function WU(e){return aH(UU(HU([],e)))}function GU(e){return X(e.length,0)?CH():X(e.length,1)&&xU(e[0])?e[0]:WU(e)}function KU(e){let t=jU(e);return X(t.length,0)?kU():IU(t)?GU(t):LU(e)}function qU(e){let t=KU(e);return fK(t)?kU():t}function JU(e,t){return aV({"~kind":`Record`},{type:`object`,patternProperties:{[e]:t}})}function YU(e){return JU(UW,e)}function XU(e){return nH({true:e,false:e})}function ZU(e){return Sz(e)||yz(e)?hU(e):vz(e)?SU():ZV()}function QU(e){return e.map(e=>ZU(e))}function $U(e){return aH(QU(e))}function eW(e){return $U(e.enum)}function tW(e,t){return RW($U(e),t)}function nW(e,t){return JU(VW,t)}function rW(e,t={}){let[n,r,i]=[e,e.length,!1];return aV({"~kind":`Tuple`},{type:`array`,additionalItems:i,items:n,minItems:r},t)}function iW(e){return cV(e,`Tuple`)}function aW(e){return oV(e,[`~kind`,`type`,`items`,`minItems`,`additionalItems`])}function oW(e){return e.reduceRight((e,t,n)=>({[n]:t,...e}),{})}function sW(e){return nH(oW(e.items))}function cW(e,t){return kV(e)?!!kV(t):!1}function lW(e,t){return TV(e)?!!TV(t):!1}function uW(e,t){let n=cW(e,t),r=lW(e,t),i=EV(SV(SW([e,t])));return n&&r?DV(CV(i)):n&&!r?DV(i):!n&&r?CV(i):i}function dW(e,t,n){return n in e?n in t?uW(e[n],t[n]):e[n]:n in t?t[n]:ZV()}function fW(e,t){return[...new Set([...Bz(t),...Bz(e)])].reduce((n,r)=>({...n,[r]:dW(e,t,r)}),{})}function pW(e){return rH(e)?e.properties:iW(e)?oW(e.items):CH()}function mW(e,t){return nH(fW(pW(e),pW(t)))}function hW(e,t){let n=Pq(e,t);return X(n,`left-inside`)?e:X(n,`right-inside`)||X(n,`equal`)?t:ZV()}function gW(e){return rH(e)||iW(e)}function _W(e,t){let n=oH(e),r=oH(t);return n||r}function vW(e,t){let n=wW(e),r=wW(t),i=_W(n,r),a=gW(n),o=gW(r);return i?SW([n,r]):a&&o?mW(n,r):a&&!o?n:!a&&o?r:hW(n,r)}function yW(e,t,n=[]){return Lz(t,(t,r)=>yW(e,r,[...n,vW(e,t)]),()=>X(n.length,0)?[e]:n)}function bW(e,t,n=[]){return Lz(e,(e,r)=>bW(r,t,[...n,...xW([e],t)]),()=>n)}function xW(e,t=[]){return Lz(e,(e,n)=>oH(e)?xW(n,bW(e.anyOf,t)):xW(n,yW(e,t)),()=>t)}function SW(e){return Fq(xW(e))}function CW(e){return Fq(e)}function wW(e){return _H(e)?SW(e.allOf):oH(e)?CW(e.anyOf):e}function TW(e){return X(e.length,1)?e[0]:X(e.length,0)?ZV():aH(e)}function EW(e,t){return RW(SW(e),t)}function DW(e,t){return Sz(e)||yz(e)?nH({[e]:t}):X(e,!1)?nH({false:t}):X(e,!0)?nH({true:t}):nH({})}function OW(e,t){return JU(HW,t)}function kW(e,t){return Z(e,`pattern`)&&(Sz(e.pattern)||e.pattern instanceof RegExp)?JU(e.pattern.toString(),t):JU(UW,t)}function AW(e,t){return IU(jU(e))?RW(qU(e),t):JU(e,t)}function jW(e){return oH(e)?MW(e.anyOf):[e]}function MW(e){return e.reduce((e,t)=>[...e,...jW(t)],[])}function NW(e){return e.some(e=>AU(e)||EU(e)||lU(e))}function PW(e,t){return X(NW(e),!0)?JU(UW,t):void 0}function FW(e,t){return e.reduce((e,n)=>xU(n)&&(Sz(n.const)||yz(n.const))?{...e,[n.const]:t}:e,{})}function IW(e,t){return nH(FW(e,t))}function LW(e,t){let n=MW(e),r=PW(n,t);return lV(r)?r:IW(n,t)}function RW(e,t){return XV(e)?YU(t):oU(e)?XU(t):hH(e)?tW(e.enum,t):lU(e)?nW(e,t):_H(e)?EW(e.allOf,t):xU(e)?DW(e.const,t):EU(e)?OW(e,t):oH(e)?LW(e.anyOf,t):AU(e)?kW(e,t):fK(e)?AW(e.pattern,t):nH({})}function zW(e,t,n){return yJ([e])?sV(RW(e,t),{},n):WW(e,t,n)}function BW(e,t,n,r,i){return zW(wJ(e,t,n),wJ(e,t,r),i)}const VW=`^${sU}$`,HW=`^${wU}$`,UW=`^.*$`;function WW(e,t,n={}){return mV(`Record`,[e,t],n)}function GW(e,t,n={}){return zW(e,t,n)}function KW(e,t){return JU(e,t)}function qW(e){return Bz(e.patternProperties)[0]}function JW(e){let t=qW(e);return X(t,UW)?kU():X(t,VW)?cU():X(t,HW)?TU():KU(t)}function YW(e){return e.patternProperties[qW(e)]}function XW(e){return cV(e,`Record`)}function ZW(e){return aV({"~kind":`Rest`},{type:`rest`,items:e},{})}function QW(e){return cV(e,`Rest`)}function $W(e){return cV(e,`This`)}function eG(e){return aV({"~kind":`Undefined`},{type:`undefined`},e)}function tG(e){return cV(e,`Undefined`)}function nG(e){return cV(e,`Void`)}function rG(e){return iU()}function iG(e){return kU()}function aG(e){return TU()}function oG(e){return cU()}function sG(e){return ZV()}function cG(e){return hU(e)}function lG(e){return e}function uG(e){return aH(e[1])}function dG(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function fG(e){return[e[0],...e[1]]}function pG(e){return e}function mG(e){return e[1]}function hG(e){return X(e.length,2)}function gG(e,t,n){return hG(e)?t(e[0],e[1]):n()}function _G(e,t){return X(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function vG(e,t){for(let n=0;n<e.length;n++){let r=_G(e[n],t);if(hG(r))return r}return[]}function yG(e,t){return Array.from({length:t-e+1},(t,n)=>String.fromCharCode(e+n))}const bG=[...yG(97,122),...yG(65,90)],xG=[`0`,...yG(49,57)];function SG(e){let t=e.indexOf(`*/`);return X(t,-1)?``:e.slice(t+2)}function CG(e){let t=e.indexOf(`
4118
4118
  `);return X(t,-1)?``:e.slice(t)}function wG(e){return e.replace(/^[ \t\r\f\v]+/,``)}function TG(e){let t=wG(e);return t.startsWith(`/*`)?TG(SG(t.slice(2))):t.startsWith(`//`)?TG(CG(t.slice(2))):t}function EG(e){let t=e.trimStart();return t.startsWith(`/*`)?EG(SG(t.slice(2))):t.startsWith(`//`)?EG(CG(t.slice(2))):t}[...xG];function DG(e,t){return vG([e],t)}function OG(e,t){return X(e,``)?[``,t]:e.startsWith(`
4119
- `)?DG(e,TG(t)):e.startsWith(` `)?DG(e,t):DG(e,EG(t))}[...bG,...xG],[...xG];function kG(e){return X(e,``)?[]:[e.slice(0,1),e.slice(1)]}function AG(e,t){let[n,...r]=e;return Sz(n)?t.startsWith(n)?!0:AG(r,t):!1}function jG(e,t,n=``){return gG(kG(t),(r,i)=>AG(e,t)?[n,t]:jG(e,i,`${n}${r}`),()=>[])}function MG(e,t){return gG(jG(e,t),(e,t)=>X(e,``)?[]:[e,t],()=>[])}const NG=(e,t,n=()=>[])=>e.length===2?t(e):n(),PG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[rG(e),t]),FG=e=>NG(OG(`.*`,e),([e,t])=>[iG(e),t]),IG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[aG(e),t]),LG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[oG(e),t]),RG=e=>NG(OG(`(?!)`,e),([e,t])=>[sG(e),t]),zG=e=>NG(MG([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[cG(e),t]),BG=e=>NG(NG(PG(e),([e,t])=>[e,t],()=>NG(FG(e),([e,t])=>[e,t],()=>NG(IG(e),([e,t])=>[e,t],()=>NG(LG(e),([e,t])=>[e,t],()=>NG(RG(e),([e,t])=>[e,t],()=>NG(VG(e),([e,t])=>[e,t],()=>NG(zG(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[lG(e),t]),VG=e=>NG(NG(OG(`(`,e),([e,t])=>NG(WG(t),([t,n])=>NG(OG(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[uG(e),t]),HG=e=>NG(NG(NG(UG(e),([e,t])=>NG(OG(`|`,t),([t,n])=>NG(HG(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>NG(NG(UG(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>NG([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[dG(e),t]),UG=e=>NG(NG(BG(e),([e,t])=>NG(WG(t),([t,n])=>[[e,t],n])),([e,t])=>[fG(e),t]),WG=e=>NG(NG(HG(e),([e,t])=>[e,t],()=>NG(UG(e),([e,t])=>[e,t],()=>[])),([e,t])=>[pG(e),t]),GG=e=>NG(NG(OG(`^`,e),([e,t])=>NG(WG(t),([t,n])=>NG(OG(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[mG(e),t]);function KG(e){return e.join(`|`)}function qG(e){return e.slice(1,e.length-1)}function JG(e,t,n){return aK(t,`${n}${e}`)}function YG(e,t){return aK(e,`${t}-?(?:0|[1-9][0-9]*)n`)}function XG(e,t){return aK(e,`${t}${sU}`)}function ZG(e,t){return aK(e,`${t}${wU}`)}function QG(e,t){return iK(aH([hU(`false`),hU(`true`)]),e,t)}function $G(e,t){return aK(e,`${t}.*`)}function eK(e,t,n){return aK(t,`${n}${qG(e)}`)}function tK(e,t,n){return iK(cK(e,{}),t,n)}function nK(e,t,n){return rK(QU(e),t,n)}function rK(e,t,n,r=[]){return Lz(e,(e,i)=>rK(i,t,n,[...r,iK(e,[],``)]),()=>aK(t,`${n}(${KG(r)})`))}function iK(e,t,n){return hH(e)?nK(e.enum,t,n):lU(e)?XG(t,n):xU(e)?JG(e.const,t,n):aU(e)?YG(t,n):oU(e)?QG(t,n):EU(e)?ZG(t,n):AU(e)?$G(t,n):fK(e)?eK(e.pattern,t,n):dK(e)?tK(e.parameters[0],t,n):oH(e)?rK(e.anyOf,t,n):`(?!)`}function aK(e,t){return Lz(e,(e,n)=>iK(e,n,t),()=>t)}function oK(e){return`^${aK(e,``)}$`}function sK(e){return LU(oK(e))}function cK(e,t){return yJ(e)?sV(sK(e),{},t):uK(e,t)}function lK(e,t,n,r){return cK(CJ(e,t,n),r)}function uK(e,t={}){return mV(`TemplateLiteral`,[e],t)}function dK(e){return lV(e)&&Z(e,`action`)&&X(e.action,`TemplateLiteral`)}function fK(e){return cV(e,`TemplateLiteral`)}function pK(e){return aV({"~kind":`ExtendsUnion`},{inferred:e})}function mK(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsUnion`)&&xz(e.inferred)}function hK(e){return aV({"~kind":`ExtendsTrue`},{inferred:e})}function gK(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsTrue`)&&xz(e.inferred)}function _K(){return aV({"~kind":`ExtendsFalse`},{})}function vK(e){return xz(e)&&Z(e,`~kind`)&&X(e[`~kind`],`ExtendsFalse`)}function yK(e){return mK(e)||gK(e)}function bK(e,t,n){return yK(e)?t(e.inferred):n()}function xK(e,t,n,r){return bK(yq(e,n,r),r=>hK(YR(YR(e,r),{[t]:n})),()=>_K())}function SK(e,t){return hK(e)}function CK(e,t,n){return yq(e,t,$U(n))}function wK(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>wK(e,t,r),()=>_K()),()=>hK(e))}function TK(e,t,n){return yq(e,t,qU(n))}function EK(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>hK(e),()=>EK(e,t,r)),()=>_K())}function DK(e,t,n){return XV(n)?SK(e,t):hH(n)?CK(e,t,n.enum):mH(n)?xK(e,n.name,t,n.extends):_H(n)?wK(e,t,n.allOf):fK(n)?TK(e,t,n.pattern):oH(n)?EK(e,t,n.anyOf):lH(n)?hK(e):_K()}function OK(e,t,n){return mH(n)?DK(e,t,n):XV(n)||lH(n)?hK(e):pK(e)}function kK(e,t){let n=xV(e),r=xV(t);return n&&r||!n&&r?!0:!(n&&!r)}function AK(e,t,n,r){return PV(r)?kK(t,r)?yq(e,n,r.items):_K():DK(e,t,r)}function jK(e,t,n){return LV(n)?yq(e,t,n.iteratorItems):DK(e,IV(t),n)}function MK(e,t,n){return aU(n)?hK(e):DK(e,t,n)}function NK(e,t,n){return oU(n)?hK(e):DK(e,t,n)}function PK(e,t,n,r,i){let a=mH(r)?t:r,o=mH(r)?r:t,s=TV(t),c=TV(r);return!s&&c?_K():bK(yq(e,a,o),e=>LK(e,n,i),()=>_K())}function FK(e,t,n,r){return Lz(r,(r,i)=>PK(e,t,n,r,i),()=>TV(t)?hK(e):_K())}function IK(e,t,n){return Lz(t,(t,r)=>FK(e,t,r,n),()=>hK(e))}function LK(e,t,n){return IK(e,t,n)}function RK(e,t,n){return nG(n)?hK(e):yq(e,t,n)}function zK(e,t,n,r){return XV(r)||lH(r)?hK(e):BV(r)?bK(LK(e,t,r.parameters),e=>RK(e,n,r.instanceType),()=>_K()):_K()}function BK(e,t,n){return yq(e,eW(t),n)}function VK(e,t,n,r){return XV(r)||lH(r)?hK(e):UV(r)?bK(LK(e,t,r.parameters),e=>RK(e,n,r.returnType),()=>_K()):_K()}function HK(e,t,n){return lU(n)||EU(n)?hK(e):DK(e,t,n)}function UK(e,t,n){return yq(e,SW(t),n)}function WK(e,t,n){return dU(n)?yq(e,t,n.iteratorItems):DK(e,uU(t),n)}function GK(e,t,n){return t===n?hK(e):_K()}function KK(e,t,n){return xU(n)?GK(e,t,n.const):aU(n)?hK(e):DK(e,hU(t),n)}function qK(e,t,n){return xU(n)?GK(e,t,n.const):oU(n)?hK(e):DK(e,hU(t),n)}function JK(e,t,n){return xU(n)?GK(e,t,n.const):EU(n)?hK(e):DK(e,hU(t),n)}function YK(e,t,n){return xU(n)?GK(e,t,n.const):AU(n)?hK(e):DK(e,hU(t),n)}function XK(e,t,n){return fz(t.const)?KK(e,t.const,n):pz(t.const)?qK(e,t.const,n):yz(t.const)?JK(e,t.const,n):Sz(t.const)?YK(e,t.const,n):CH()}function ZK(e,t,n){return mH(n)?DK(e,t,n):hK(e)}function QK(e,t,n){return CU(n)?hK(e):DK(e,t,n)}function $K(e,t,n){return EU(n)?hK(e):DK(e,t,n)}function eq(e,t,n){return TV(t)?TV(n)?hK(e):_K():hK(e)}function tq(e,t,n){return mH(n)&&QV(n.extends)?_K():bK(yq(e,t,n),e=>eq(e,t,n),()=>_K())}function nq(e,t){return e.reduce((e,n)=>n in t&&yK(t[n])?{...e,...t[n].inferred}:CH(),{})}function rq(e,t,n){let r={};for(let i of Bz(n))r[i]=i in t?tq({},t[i],n[i]):TV(n[i])?mH(n[i])?hK(YR(e,{[n[i].name]:n[i].extends})):hK(e):_K();let i=Hz(r).every(e=>yK(e)),a=i?nq(Bz(r),r):{};return i?hK(a):_K()}function iq(e,t,n){let r=rq(e,t,n);return yK(r)?hK(YR(e,r.inferred)):_K()}function aq(e,t,n){return iq(e,t,n)}function oq(e,t,n){return rH(n)?aq(e,t,n.properties):DK(e,nH(t),n)}function sq(e,t,n){return _V(n)?yq(e,t,n.item):DK(e,gV(t),n)}function Yge(e,t,n){return AU(n)?hK(e):DK(e,t,n)}function Xge(e,t,n){return OU(n)?hK(e):DK(e,t,n)}function Zge(e,t,n){return yq(e,qU(t),n)}function cq(e,t){return aV({"~kind":`Inferrable`},{name:e,type:t},{})}function lq(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`name`)&&Z(e,`type`)&&X(e[`~kind`],`Inferrable`)&&Sz(e.name)&&xz(e.type)}function uq(e){return QW(e)?mH(e.items)?PV(e.items.extends)?cq(e.items.name,e.items.extends.items):lH(e.items.extends)?cq(e.items.name,e.items.extends):void 0:CH():void 0}function dq(e){return mH(e)?cq(e.name,e.extends):void 0}function fq(e,t,n=[]){return Lz(e,(e,r)=>bK(yq({},e,t),()=>fq(r,t,[...n,e]),()=>void 0),()=>n)}function Qge(e,t,n,r){let i=fq(n,r);return uz(i)?hK(YR(e,{[t]:rW(i)})):_K()}function pq(e,t,n,r){let i=fq(n,r);return uz(i)?hK(YR(e,{[t]:aH(i)})):_K()}function $ge(e){return[...e].reverse()}function mq(e,t){return t?$ge(e):e}function e_e(e){let t=e.length>0?e[0]:void 0;return lV(lV(t)?uq(t):void 0)}function t_e(e,t,n,r,i,a){return bK(yq(e,n,i),e=>hq(e,t,r,a),()=>_K())}function n_e(e,t,n,r,i){let a=uq(r);return lq(a)?Qge(e,a.name,mq(n,t),a.type):Lz(n,(n,a)=>t_e(e,t,n,a,r,i),()=>_K())}function r_e(e,t,n,r){return Lz(r,(r,i)=>n_e(e,t,n,r,i),()=>X(n.length,0)?hK(e):_K())}function hq(e,t,n,r){return r_e(e,t,n,r)}function i_e(e,t,n){let r=SJ(e,{callstack:[]},n),i=e_e(r);return hq(e,i,mq(t,i),mq(r,i))}function gq(e,t,n){let r=dq(n);return lq(r)?pq(e,r.name,t,r.type):Lz(t,(t,r)=>bK(yq(e,t,n),e=>gq(e,r,n),()=>_K()),()=>hK(e))}function a_e(e,t,n){let r=SJ(e,{callstack:[]},t);return iW(n)?i_e(e,r,n.items):PV(n)?gq(e,r,n.items):DK(e,rW(r),n)}function o_e(e,t,n){return nG(n)||tG(n)?hK(e):DK(e,t,n)}function _q(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>hK(e),()=>_q(e,t,r)),()=>_K())}function vq(e,t,n){return Lz(t,(t,r)=>bK(_q(e,t,n),e=>vq(e,r,n),()=>_K()),()=>hK(e))}function s_e(e,t,n){let r=dq(n);return lq(r)?pq(e,r.name,t,r.type):oH(n)?vq(e,t,n.anyOf):vq(e,t,[n])}function c_e(e,t,n){return mH(n)?DK(e,t,n):XV(n)||lH(n)?hK(e):_K()}function l_e(e,t,n){return nG(n)?hK(e):DK(e,t,n)}function yq(e,t,n){return XV(t)?OK(e,t,n):PV(t)?AK(e,t,t.items,n):LV(t)?jK(e,t.iteratorItems,n):aU(t)?MK(e,t,n):oU(t)?NK(e,t,n):BV(t)?zK(e,t.parameters,t.instanceType,n):hH(t)?BK(e,t,n):UV(t)?VK(e,t.parameters,t.returnType,n):lU(t)?HK(e,t,n):_H(t)?UK(e,t.allOf,n):dU(t)?WK(e,t.iteratorItems,n):xU(t)?XK(e,t,n):QV(t)?ZK(e,t,n):CU(t)?QK(e,t,n):EU(t)?$K(e,t,n):rH(t)?oq(e,t.properties,n):_V(t)?sq(e,t.item,n):AU(t)?Yge(e,t,n):OU(t)?Xge(e,t,n):fK(t)?Zge(e,t.pattern,n):iW(t)?a_e(e,t.items,n):tG(t)?o_e(e,t,n):oH(t)?s_e(e,t.anyOf,n):lH(t)?c_e(e,t,n):nG(t)?l_e(e,t,n):_K()}function u_e(e,t){return SW([...e,nH(t)])}function d_e(e,t,n){return yJ(e)?sV(u_e(e,t),{},n):p_e(e,t,n)}function f_e(e,t,n,r,i){return d_e(CJ(e,t,n),xJ(e,t,r),i)}function p_e(e,t,n={}){return mV(`Interface`,[e,t],n)}function bq(e){return lV(e)&&Z(e,`action`)&&X(e.action,`Interface`)}function m_e(e,t,n){return e.includes(n)?!0:Cq([...e,n],t,t[n])}function xq(e,t,n){return Sq(e,t,tH(n))}function Sq(e,t,n){return Lz(n,(n,r)=>Cq(e,t,n)?!0:Sq(e,t,r),()=>!1)}function Cq(e,t,n){return KV(n)?m_e(e,t,n.$ref):PV(n)?Cq(e,t,n.items):LV(n)?Cq(e,t,n.iteratorItems):BV(n)?Sq(e,t,[...n.parameters,n.instanceType]):UV(n)?Sq(e,t,[...n.parameters,n.returnType]):bq(n)?xq(e,t,n.parameters[1]):_H(n)?Sq(e,t,n.allOf):dU(n)?Cq(e,t,n.iteratorItems):rH(n)?xq(e,t,n.properties):_V(n)?Cq(e,t,n.item):oH(n)?Sq(e,t,n.anyOf):iW(n)?Sq(e,t,n.items):XW(n)?Cq(e,t,YW(n)):!1}function wq(e,t,n){return Cq(e,t,n)}function h_e(e,t){return t.reduce((t,n)=>n in e?wq([n],e,e[n])?[...t,n]:t:CH(),[])}function g_e(e){return h_e(e,eH(e))}function __e(e,t,n){return n.includes(t)?n:t in e?Dq(e,e[t],[...n,t]):CH()}function Tq(e,t,n){return Eq(e,tH(t),n)}function Eq(e,t,n){return t.reduce((t,n)=>Dq(e,n,t),n)}function Dq(e,t,n){return KV(t)?__e(e,t.$ref,n):PV(t)?Dq(e,t.items,n):LV(t)?Dq(e,t.iteratorItems,n):BV(t)?Eq(e,[...t.parameters,t.instanceType],n):UV(t)?Eq(e,[...t.parameters,t.returnType],n):bq(t)?Tq(e,t.parameters[1],n):_H(t)?Eq(e,t.allOf,n):dU(t)?Dq(e,t.iteratorItems,n):rH(t)?Tq(e,t.properties,n):_V(t)?Dq(e,t.item,n):oH(t)?Eq(e,t.anyOf,n):iW(t)?Eq(e,t.items,n):XW(t)?Dq(e,YW(t),n):n}function v_e(e,t,n){return Dq(e,n,[t])}function y_e(e){return YV()}function b_e(e){return Bz(e).reduce((t,n)=>({...t,[n]:kq(e[n])}),{})}function Oq(e){return e.reduce((e,t)=>[...e,kq(t)],[])}function kq(e){return KV(e)?y_e(e.$ref):PV(e)?NV(kq(e.items),FV(e)):LV(e)?IV(kq(e.iteratorItems)):BV(e)?zV(Oq(e.parameters),kq(e.instanceType)):UV(e)?HV(Oq(e.parameters),kq(e.returnType)):_H(e)?gH(Oq(e.allOf)):dU(e)?uU(kq(e.iteratorItems)):rH(e)?nH(b_e(e.properties)):_V(e)?gV(kq(e.item)):XW(e)?GW(JW(e),kq(YW(e))):oH(e)?aH(Oq(e.anyOf)):iW(e)?rW(Oq(e.items)):e}function x_e(e,t){return t in e?kq(e[t]):cH()}function S_e(e){return x_e(e.$defs,e.$ref)}function C_e(e,t,n){let r=CJ(e,{callstack:[]},t),i=xJ({},{callstack:[]},n);return SW([...r,nH(i)])}function w_e(e,t){return Bz(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=bq(r)?C_e(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function T_e(e,t,n){return uH(w_e(e,v_e(e,t,n)),t)}function Aq(e,t){return t in e?KV(e[t])?Aq(e,e[t].$ref):e[t]:ZV()}function jq(e,t){return Aq(e,t)}function Mq(e){return dH(e)?S_e(e):fH(e)?cH():e}function Nq(e,t,n){return yq(e,Mq(t),Mq(n))}function Pq(e,t){let n=[lH(e)?_K():Nq({},e,t),lH(e)?hK({}):Nq({},t,e)];return yK(n[0])&&yK(n[1])?`equal`:yK(n[0])&&vK(n[1])?`left-inside`:vK(n[0])&&yK(n[1])?`right-inside`:`disjoint`}function E_e(e,t){return t.filter(t=>Pq(e,t)!==`right-inside`)}function D_e(e,t){return X(t.some(t=>{let n=Pq(e,t);return X(n,`left-inside`)||X(n,`equal`)}),!1)}function O_e(e,t){let n=wW(e);return XV(n)?[n]:D_e(n,t)?[...E_e(n,t),n]:t}function k_e(e){return e.reduce((e,t)=>rH(t)?[...e,t]:QV(t)?e:O_e(t,e),[])}function Fq(e){let t=MW(k_e(e));return t.length===0?ZV():t.length===1?t[0]:aH(t)}function Iq(e,t){return sV(wW(e),{},t)}function A_e(e,t,n,r){return Iq(wJ(e,t,n),r)}function Lq(e,t=[]){return hV(e)&&X(e.action,`Conditional`)?KV(e.parameters[0])?Lq(e.parameters[2],Lq(e.parameters[3],[...t,e.parameters[0].$ref])):Lq(e.parameters[2],Lq(e.parameters[3],t)):hV(e)&&X(e.action,`Mapped`)&&hV(e.parameters[1])&&X(e.parameters[1].action,`KeyOf`)&&KV(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function j_e(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function Rq(e,t,n=[]){let[r,...i]=e,[a,...o]=t;return Tz(e.length,0)&&Tz(t.length,0)?Rq(i,o,[...n,[a,r]]):n}function M_e(e){return oH(e)?[...e.anyOf]:[e]}function N_e(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function zq(e,t){return t.reduce((t,n)=>[...t,...N_e(e,n)],[])}function P_e(e){return e.reduce((e,t)=>X(t[0],!0)?zq(e,M_e(t[1])):zq(e,[t[1]]),[[]])}function F_e(e,t,n){let r=Rq(t,j_e(e,Lq(n)));return hV(n)&&X(n.action,`Conditional`)||hV(n)&&X(n.action,`Mapped`)?P_e(r):[t]}function I_e(){return[`(not-resolvable)`,ZV()]}function L_e(){return[`(not-generic)`,ZV()]}function R_e(e,t,n){return[e,qV(t,n)]}function z_e(e,t,n){return t in e?Bq(e,t,e[t],n):I_e()}function Bq(e,t,n,r){return JV(n)?R_e(t,n.parameters,n.expression):KV(n)?z_e(e,n.$ref,r):L_e()}function B_e(e,t,n){return Bq(e,`(anonymous)`,t,n)}function V_e(e,t,n){if(mH(t)||Wq(t)||yK(Nq({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function Vq(e,t,n,r,i){let a=wJ(e,t,i);return V_e(n,a,r),YR(e,{[n]:a})}function H_e(e,t,n,r,i){let a=wJ(e,t,n.extends),o=wJ(e,t,n.equals);return Lz(i,(i,o)=>Hq(Vq(e,t,n.name,a,i),t,r,o),()=>Hq(Vq(e,t,n.name,a,o),t,r,[]))}function Hq(e,t,n,r){return Lz(n,(n,i)=>H_e(e,t,n,i,r),()=>e)}function U_e(e,t,n,r){return Hq(e,t,n,r)}function W_e(e){return Tz(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function G_e(e,t){return X(W_e(e),t)}function K_e(e,t,n,r,i,a){return wJ(e,t,wJ(U_e(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function q_e(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,K_e(e,t,n,r,i,o)],[])}function J_e(e,t,n,r,i,a){let o=q_e(e,t,n,r,i,F_e(r,a,i));return X(o.length,1)?o[0]:CW(o)}function Y_e(e,t,n,r){let i=CJ(e,t,r),a=B_e(e,n,r),o=a[0],s=a[1];return JV(s)?G_e(t,o)?Uq(GV(o),i):J_e(e,t,GV(o),s.parameters,s.expression,i):Uq(n,i)}function Uq(e,t){return aV({"~kind":`Call`},{target:e,arguments:t},{})}function Wq(e){return cV(e,`Call`)}function X_e(e,t){return e(t)}function Z_e(e,t){return Sz(t)?hU(X_e(e,t)):hU(t)}function Q_e(e,t){return Gq(e,qU(t))}function $_e(e,t){return aH(t.map(t=>Gq(e,t)))}function Gq(e,t){return xU(t)?Z_e(e,t.const):fK(t)?Q_e(e,t.pattern):oH(t)?$_e(e,t.anyOf):t}function eve(e,t={}){return mV(`Capitalize`,[e],t)}function tve(e,t={}){return mV(`Lowercase`,[e],t)}function nve(e,t={}){return mV(`Uncapitalize`,[e],t)}function rve(e,t={}){return mV(`Uppercase`,[e],t)}const ive=e=>e[0].toUpperCase()+e.slice(1),ave=e=>e.toLowerCase(),ove=e=>e[0].toLowerCase()+e.slice(1),sve=e=>e.toUpperCase();function cve(e,t){return yJ([e])?sV(Gq(ive,e),{},t):eve(e,t)}function lve(e,t){return yJ([e])?sV(Gq(ave,e),{},t):tve(e,t)}function uve(e,t){return yJ([e])?sV(Gq(ove,e),{},t):nve(e,t)}function dve(e,t){return yJ([e])?sV(Gq(sve,e),{},t):rve(e,t)}function fve(e,t,n,r){return cve(wJ(e,t,n),r)}function pve(e,t,n,r){return lve(wJ(e,t,n),r)}function mve(e,t,n,r){return uve(wJ(e,t,n),r)}function hve(e,t,n,r){return dve(wJ(e,t,n),r)}function gve(e,t,n,r,i={}){return mV(`Conditional`,[e,t,n,r],i)}function _ve(e,t,n,r,i,a){let o=Nq(e,n,r);return mK(o)?aH([wJ(o.inferred,t,i),wJ(e,t,a)]):gK(o)?wJ(o.inferred,t,i):wJ(e,t,a)}function vve(e,t,n,r,i,a,o){return yJ([n,r])?sV(_ve(e,t,n,r,i,a),{},o):gve(n,r,i,a,o)}function yve(e,t,n,r,i,a,o){return vve(e,t,wJ(e,t,n),wJ(e,t,r),i,a,o)}function bve(e,t={}){return mV(`ConstructorParameters`,[e],t)}function xve(e){return rW(SJ({},{callstack:[]},BV(e)?e.parameters:[]))}function Sve(e,t){return yJ([e])?sV(xve(e),{},t):bve(e,t)}function Cve(e,t,n,r){return Sve(wJ(e,t,n),r)}function wve(e,t,n={}){return mV(`Exclude`,[e,t],n)}function Kq(e,t){return e.reduce((e,n)=>[...e,...qq(n,t)],[])}function qq(e,t){return yK(Nq({},e,t))?[]:[e]}function Tve(e,t){return CW(hH(e)?Kq(QU(e.enum),t):oH(e)?Kq(MW(e.anyOf),t):qq(e,t))}function Jq(e,t,n){return yJ([e,t])?sV(Tve(e,t),{},n):wve(e,t,n)}function Eve(e,t,n,r,i){return Jq(wJ(e,t,n),wJ(e,t,r),i)}function Dve(e,t,n={}){return mV(`Extract`,[e,t],n)}function Yq(e,t){return e.reduce((e,n)=>[...e,...Xq(n,t)],[])}function Xq(e,t){return yK(Nq({},e,t))?[e]:[]}function Ove(e,t){return CW(hH(e)?Yq(QU(e.enum),t):oH(e)?Yq(MW(e.anyOf),t):Xq(e,t))}function kve(e,t,n){return yJ([e,t])?sV(Ove(e,t),{},n):Dve(e,t,n)}function Ave(e,t,n,r,i){return kve(wJ(e,t,n),wJ(e,t,r),i)}function jve(e,t,n={}){return mV(`Index`,[e,t],n)}function Mve(e,t){return Qq(jq(e,t))}function Nve(e,t){let n=Bz(e).filter(e=>!Z(t,e)),r=Bz(t).filter(t=>!Z(e,t)),i=Bz(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]:SW([e[r],t[r]])}),{});return YR(YR(a,o),s)}function Pve(e){return e.reduce((e,t)=>Nve(e,Qq(t)),{})}function Fve(e){return e}function Ive(e){return Qq(sW(rW(e)))}function Lve(e,t){return Bz(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:CW([e[r],t[r]])}),{})}function Zq(e,t){return Lz(e,(e,n)=>Zq(n,Lve(t,Qq(e))),()=>t)}function Rve(e){return Lz(e,(e,t)=>Zq(t,Qq(e)),()=>CH())}function Qq(e){return dH(e)?Mve(e.$defs,e.$ref):_H(e)?Pve(e.allOf):oH(e)?Rve(e.anyOf):iW(e)?Ive(e.items):rH(e)?Fve(e.properties):{}}function $q(e){return nH(Qq(e))}const zve=RegExp(`^(?:0|[1-9][0-9]*)$`);function eJ(e){let t=`${e}`;return zve.test(t)?parseInt(t):e}function Bve(e){return hU(eJ(e))}function tJ(e){return e.map(e=>nJ(e))}function nJ(e){return _H(e)?gH(tJ(e.allOf)):oH(e)?aH(tJ(e.anyOf)):xU(e)?Bve(e.const):e}function Vve(e,t){return yK(Nq({},nJ(t),TU()))?e:xU(t)&&X(t.const,`length`)?TU():ZV()}function Hve(e,t){return iJ(jq(e,t))}function rJ(e){return e.reduce((e,t)=>[...e,...iJ(t)],[])}function Uve(e){return rJ(QU(e))}function Wve(e){return iJ(SW(e))}function Gve(e){return[`${e}`]}function Kve(e){return iJ(qU(e))}function iJ(e){return dH(e)?Hve(e.$defs,e.$ref):hH(e)?Uve(e.enum):_H(e)?Wve(e.allOf):xU(e)?Gve(e.const):fK(e)?Kve(e.pattern):oH(e)?rJ(e.anyOf):[]}function aJ(e){return iJ(e)}function oJ(e,t){return t.map(t=>sJ(e,t))}function sJ(e,t){return PV(t)?NV(sJ(e,t.items)):LV(t)?IV(sJ(e,t.iteratorItems)):BV(t)?zV(oJ(e,t.parameters),sJ(e,t.instanceType)):UV(t)?HV(oJ(e,t.parameters),sJ(e,t.returnType)):dU(t)?uU(sJ(e,t.iteratorItems)):_V(t)?gV(sJ(e,t.item)):iW(t)?rW(oJ(e,t.items)):oH(t)?aH(oJ(e,t.anyOf)):_H(t)?gH(oJ(e,t.allOf)):$W(t)?nH(e):t}function qve(e,t){return sJ(e,t)}function Jve(e,t){return qve(e,t in e?e[t]:ZV())}function cJ(e,t){return t.reduce((t,n)=>[...t,Jve(e,n)],[])}function Yve(e,t){return CW(cJ(e,aJ(t)))}const Xve=new RegExp(VW);function Zve(e){return e.filter(e=>Xve.test(e))}function Qve(e){return CW(cJ(e,Zve(eH(e))))}function $ve(e,t){return EU(t)?Qve(e):Yve(e,t)}function eye(e){return hU(eJ(e))}function lJ(e){return e.map(e=>uJ(e))}function uJ(e){return _H(e)?gH(lJ(e.allOf)):oH(e)?aH(lJ(e.anyOf)):xU(e)?eye(e.const):e}function tye(e,t){return e.reduceRight((e,n,r)=>yK(Nq({},hU(r),t))?[n,...e]:e,[])}function nye(e,t){return TW(tye(e,uJ(t)))}function rye(e){return TW(e)}function iye(e,t){return xU(t)&&X(t.const,`length`)?hU(e.length):EU(t)||lU(t)?rye(e):nye(e,t)}function aye(e,t){return PV(e)?Vve(e.items,t):rH(e)?$ve(e.properties,t):iW(e)?iye(e.items,t):ZV()}function oye(e){return dH(e)||_H(e)||oH(e)?$q(e):e}function sye(e,t,n){return yJ([e,t])?sV(aye(oye(e),t),{},n):jve(e,t,n)}function cye(e,t,n,r,i){return sye(wJ(e,t,n),wJ(e,t,r),i)}function lye(e,t={}){return mV(`InstanceType`,[e],t)}function uye(e){return BV(e)?e.instanceType:ZV()}function dye(e,t){return yJ([e])?sV(uye(e),{},t):lye(e,t)}function fye(e,t,n,r={}){return dye(wJ(e,t,n),r)}function pye(e,t={}){return mV(`KeyOf`,[e],t)}function mye(){return aH([TU(),kU(),DU()])}function hye(e){return TU()}function gye(e){return e.reduce((e,t)=>gU(t)?[...e,hU(eJ(t))]:CH(),[])}function _ye(e){return TW(gye(Bz(e)))}function vye(e){return JW(e)}function yye(e){return TW(e.map((e,t)=>hU(t)))}function bye(e){return XV(e)?mye():PV(e)?hye(e.items):rH(e)?_ye(e.properties):XW(e)?vye(e):iW(e)?yye(e.items):ZV()}function xye(e){return dH(e)||_H(e)||oH(e)?$q(e):e}function Sye(e,t){return yJ([e])?sV(bye(xye(e)),{},t):pye(e,t)}function Cye(e,t,n,r){return Sye(wJ(e,t,n),r)}function wye(e,t,n,r,i={}){return mV(`Mapped`,[e,t,n,r],i)}function Tye(e){return fJ(qU(e))}function dJ(e){return e.reduce((e,t)=>[...e,...fJ(t)],[])}function Eye(e){return yz(e)?[hU(`${e}`)]:[hU(e)]}function fJ(e){return hH(e)?dJ(QU(e.enum)):xU(e)?Eye(e.const):fK(e)?Tye(e.pattern):oH(e)?dJ(e.anyOf):[e]}function Dye(e){return fJ(e)}function Oye(e){return fK(e)?qU(e.pattern):e}function kye(e,t,n,r,i,a){let o=YR(e,{[n.name]:r}),s=Oye(wJ(o,t,i)),c=wJ(o,t,a);return yU(s)||bU(s)?{[s.const]:c}:{}}function Aye(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,kye(e,t,n,o,i,a)],[])}function jye(e){return e.reduce((e,t)=>[...e,nH(t)],[])}function Mye(e,t,n,r,i,a){return SW(jye(Aye(e,t,n,Dye(r),i,a)))}function Nye(e,t,n,r,i,a,o){return yJ([r])?sV(Mye(e,t,n,r,i,a),{},o):wye(n,r,i,a,o)}function Pye(e,t,n,r,i,a,o){return Nye(e,t,n,wJ(e,t,r),i,a,o)}function Fye(e,t){return Bz(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:T_e(e,n,e[n])}),{})}function Iye(e,t){return Bz(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:wJ(e,{callstack:[]},e[n])}),{})}function Lye(e,t){let n=g_e(e),r=Fye(e,n),i=Iye(e,n);return sV({...r,...i},{},t)}function Rye(e,t,n,r){return Lye(YR(e,n),r)}function zye(e,t={}){return mV(`NonNullable`,[e],t)}function Bye(e){return Jq(e,aH([SU(),eG()]),{})}function Vye(e,t){return yJ([e])?sV(Bye(e),{},t):zye(e,t)}function Hye(e,t,n,r){return Vye(wJ(e,t,n),r)}function Uye(e,t,n={}){return mV(`Omit`,[e,t],n)}function pJ(e){let t=$q(e);return rH(t)?t.properties:CH()}function Wye(e,t){return Bz(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Gye(e,t){return nH(Wye(pJ(e),aJ(t)))}function Kye(e,t,n){return yJ([e,t])?sV(Gye(e,t),{},n):Uye(e,t,n)}function qye(e,t,n,r,i){return Kye(wJ(e,t,n),wJ(e,t,r),i)}function Jye(e,t){return mV(`Options`,[e,t],{})}function Yye(e,t){return mJ(e,t)}function mJ(e,t){return yJ([e])?sV(e,{},t):Jye(e,t)}function Xye(e,t,n,r){return mJ(wJ(e,t,n),r)}function Zye(e,t={}){return mV(`Parameters`,[e],t)}function Qye(e){return rW(SJ({},{callstack:[]},UV(e)?e.parameters:[]))}function $ye(e,t){return yJ([e])?sV(Qye(e),{},t):Zye(e,t)}function ebe(e,t,n,r){return $ye(wJ(e,t,n),r)}function tbe(e,t={}){return mV(`Partial`,[e],t)}function nbe(e,t){let n=hJ(jq(e,t));return uH(YR(e,{[t]:n}),t)}function rbe(e){return SW(e.map(e=>hJ(e)))}function ibe(e){return aH(e.map(e=>hJ(e)))}function abe(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:wV(e[n])}),{}))}function hJ(e){return dH(e)?nbe(e.$defs,e.$ref):_H(e)?rbe(e.allOf):oH(e)?ibe(e.anyOf):rH(e)?abe(e.properties):nH({})}function obe(e,t){return yJ([e])?sV(hJ(e),{},t):tbe(e,t)}function sbe(e,t,n,r){return obe(wJ(e,t,n),r)}function cbe(e,t,n={}){return mV(`Pick`,[e,t],n)}function lbe(e,t){return Bz(e).reduce((n,r)=>t.includes(r)?YR(n,{[r]:e[r]}):n,{})}function ube(e,t){return nH(lbe(pJ(e),aJ(t)))}function dbe(e,t,n){return yJ([e,t])?sV(ube(e,t),{},n):cbe(e,t,n)}function fbe(e,t,n,r,i){return dbe(wJ(e,t,n),wJ(e,t,r),i)}function pbe(e,t={}){return mV(`ReadonlyObject`,[e],t)}function mbe(e){return bV(NV(e))}function hbe(e,t){let n=gJ(jq(e,t));return uH(YR(e,{[t]:n}),t)}function gbe(e){return SW(e.map(e=>gJ(e)))}function _be(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:OV(e[n])}),{}))}function vbe(e){return bV(rW(e))}function ybe(e){return aH(e.map(e=>gJ(e)))}function gJ(e){return PV(e)?mbe(e.items):dH(e)?hbe(e.$defs,e.$ref):_H(e)?gbe(e.allOf):rH(e)?_be(e.properties):iW(e)?vbe(e.items):oH(e)?ybe(e.anyOf):e}function bbe(e,t){return yJ([e])?sV(gJ(e),{},t):pbe(e)}function xbe(e,t,n,r){return bbe(wJ(e,t,n),r)}function Sbe(e,t,n,r){return r in e?wq([r],e,e[r])?n:wJ(e,t,e[r]):n}function Cbe(e,t){let n=_J(jq(e,t));return uH(YR(e,{[t]:n}),t)}function wbe(e){return SW(e.map(e=>_J(e)))}function Tbe(e){return aH(e.map(e=>_J(e)))}function Ebe(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:SV(e[n])}),{}))}function _J(e){return dH(e)?Cbe(e.$defs,e.$ref):_H(e)?wbe(e.allOf):oH(e)?Tbe(e.anyOf):rH(e)?Ebe(e.properties):nH({})}function Dbe(e,t={}){return mV(`Required`,[e],t)}function Obe(e,t){return yJ([e])?sV(_J(e),{},t):Dbe(e,t)}function kbe(e,t,n,r){return Obe(wJ(e,t,n),r)}function Abe(e,t={}){return mV(`ReturnType`,[e],t)}function jbe(e){return UV(e)?e.returnType:ZV()}function Mbe(e,t){return yJ([e])?sV(jbe(e),{},t):Abe(e,t)}function Nbe(e,t,n,r={}){return Mbe(wJ(e,t,n),r)}function Pbe(e){return QW(e)?iW(e.items)?vJ(e.items.items):mH(e.items)||KV(e.items)?[e]:[ZV()]:[e]}function vJ(e){return e.reduce((e,t)=>[...e,...Pbe(t)],[])}function yJ(e){return Lz(e,(e,t)=>KV(e)?!1:yJ(t),()=>!0)}function bJ(e,t,n){return pV(e)?bJ(e.type,`remove`,n):dV(e)?bJ(e.type,t,`remove`):fV(e)?bJ(e.type,`add`,n):uV(e)?bJ(e.type,t,`add`):[e,t,n]}function Fbe(e,t){return X(e,`remove`)?EV(t):X(e,`add`)?DV(t):t}function Ibe(e,t){return X(e,`remove`)?SV(t):X(e,`add`)?CV(t):t}function xJ(e,t,n){return Bz(n).reduce((r,i)=>({...r,[i]:wJ(e,t,n[i])}),{})}function SJ(e,t,n){return vJ(CJ(e,t,n))}function CJ(e,t,n){return n.map(n=>wJ(e,t,n))}function Lbe(e,t,n,r,i){return X(n,`Awaited`)?zbe(e,t,r[0],i):X(n,`Capitalize`)?fve(e,t,r[0],i):X(n,`Conditional`)?yve(e,t,r[0],r[1],r[2],r[3],i):X(n,`ConstructorParameters`)?Cve(e,t,r[0],i):X(n,`Evaluate`)?A_e(e,t,r[0],i):X(n,`Exclude`)?Eve(e,t,r[0],r[1],i):X(n,`Extract`)?Ave(e,t,r[0],r[1],i):X(n,`Index`)?cye(e,t,r[0],r[1],i):X(n,`InstanceType`)?fye(e,t,r[0],i):X(n,`Interface`)?f_e(e,t,r[0],r[1],i):X(n,`KeyOf`)?Cye(e,t,r[0],i):X(n,`Lowercase`)?pve(e,t,r[0],i):X(n,`Mapped`)?Pye(e,t,r[0],r[1],r[2],r[3],i):X(n,`Module`)?Rye(e,t,r[0],i):X(n,`NonNullable`)?Hye(e,t,r[0],i):X(n,`Pick`)?fbe(e,t,r[0],r[1],i):X(n,`Options`)?Xye(e,t,r[0],r[1]):X(n,`Parameters`)?ebe(e,t,r[0],i):X(n,`Partial`)?sbe(e,t,r[0],i):X(n,`Omit`)?qye(e,t,r[0],r[1],i):X(n,`ReadonlyObject`)?xbe(e,t,r[0],i):X(n,`Record`)?BW(e,t,r[0],r[1],i):X(n,`Required`)?kbe(e,t,r[0],i):X(n,`ReturnType`)?Nbe(e,t,r[0],i):X(n,`TemplateLiteral`)?lK(e,t,r[0],i):X(n,`Uncapitalize`)?mve(e,t,r[0],i):X(n,`Uppercase`)?hve(e,t,r[0],i):mV(n,r,i)}function wJ(e,t,n){let r=xV(n),i=bJ(n,kV(n)?`add`:`none`,TV(n)?`add`:`none`),a=MV(i[0])?i[0].Clone():i[0],o=KV(a)?Sbe(e,t,a,a.$ref):PV(a)?NV(wJ(e,t,a.items),FV(a)):LV(a)?IV(wJ(e,t,a.iteratorItems),RV(a)):Wq(a)?Y_e(e,t,a.target,a.arguments):BV(a)?zV(CJ(e,t,a.parameters),wJ(e,t,a.instanceType),VV(a)):hV(a)?Lbe(e,t,a.action,a.parameters,a.options):UV(a)?HV(CJ(e,t,a.parameters),wJ(e,t,a.returnType),WV(a)):_H(a)?gH(CJ(e,t,a.allOf),vH(a)):dU(a)?uU(wJ(e,t,a.iteratorItems),fU(a)):rH(a)?nH(xJ(e,t,a.properties),iH(a)):_V(a)?gV(wJ(e,t,a.item),vV(a)):XW(a)?KW(qW(a),wJ(e,t,YW(a))):QW(a)?ZW(wJ(e,t,a.items)):iW(a)?rW(SJ(e,t,a.items),aW(a)):oH(a)?aH(CJ(e,t,a.anyOf),sH(a)):a,s=r?bV(o):o;return Fbe(i[1],Ibe(i[2],s))}function TJ(e,t){return wJ(e,{callstack:[]},t)}function EJ(e){return _V(e)?EJ(e.item):e}function Rbe(e,t){return yJ([e])?sV(EJ(e),{},t):Bbe(e,t)}function zbe(e,t,n,r){return Rbe(wJ(e,t,n),r)}function Bbe(e,t={}){return mV(`Awaited`,[e],t)}function DJ(e,t={}){return Iq(e,t)}const OJ=new Map;function Vbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function Hbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function kJ(e,t){OJ.set(e.api,{provider:{api:e.api,stream:Vbe(e.api,e.stream),streamSimple:Hbe(e.api,e.streamSimple)},sourceId:t})}function Ube(e){return OJ.get(e)?.provider}var AJ=s(((e,t)=>{t.exports={}}));let jJ=null,MJ=null,NJ=null;const PJ=e=>import(e);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(PJ(`node:fs`).then(e=>{jJ=e.existsSync}),PJ(`node:os`).then(e=>{MJ=e.homedir}),PJ(`node:path`).then(e=>{NJ=e.join}));let FJ=null;function IJ(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(FJ===null){FJ=new Map;try{let{readFileSync:e}=AJ(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&FJ.set(e.slice(0,t),e.slice(t+1))}}catch{}}return FJ.get(e)}}let LJ=null;function Wbe(){if(LJ===null){if(!jJ||!MJ||!NJ)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(LJ=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||IJ(`GOOGLE_APPLICATION_CREDENTIALS`);LJ=jJ(e||NJ(MJ(),`.config`,`gcloud`,`application_default_credentials.json`))}return LJ}function Gbe(e){if(e===`github-copilot`)return[`COPILOT_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`,together:`TOGETHER_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 Kbe(e){let t=Gbe(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!IJ(e));return n.length>0?n:void 0}function RJ(e){let t=Kbe(e);if(t?.[0])return{}[t[0]]||IJ(t[0]);if(e===`google-vertex`){let e=Wbe(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||IJ(`GOOGLE_CLOUD_PROJECT`)||IJ(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||IJ(`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||IJ(`AWS_PROFILE`)||IJ(`AWS_ACCESS_KEY_ID`)&&IJ(`AWS_SECRET_ACCESS_KEY`)||IJ(`AWS_BEARER_TOKEN_BEDROCK`)||IJ(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||IJ(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||IJ(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}const qbe={openrouter:{"black-forest-labs/flux.2-flex":{id:`black-forest-labs/flux.2-flex`,name:`Black Forest Labs: FLUX.2 Flex`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-klein-4b":{id:`black-forest-labs/flux.2-klein-4b`,name:`Black Forest Labs: FLUX.2 Klein 4B`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-max":{id:`black-forest-labs/flux.2-max`,name:`Black Forest Labs: FLUX.2 Max`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-pro":{id:`black-forest-labs/flux.2-pro`,name:`Black Forest Labs: FLUX.2 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-4.5":{id:`bytedance-seed/seedream-4.5`,name:`ByteDance Seed: Seedream 4.5`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"google/gemini-2.5-flash-image":{id:`google/gemini-2.5-flash-image`,name:`Google: Nano Banana (Gemini 2.5 Flash Image)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.08333333333333334}},"google/gemini-3-pro-image-preview":{id:`google/gemini-3-pro-image-preview`,name:`Google: Nano Banana Pro (Gemini 3 Pro Image Preview)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3.1-flash-image-preview":{id:`google/gemini-3.1-flash-image-preview`,name:`Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"openai/gpt-5-image":{id:`openai/gpt-5-image`,name:`OpenAI: GPT-5 Image`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-5-image-mini":{id:`openai/gpt-5-image-mini`,name:`OpenAI: GPT-5 Image Mini`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:2.5,output:2,cacheRead:.25,cacheWrite:0}},"openai/gpt-5.4-image-2":{id:`openai/gpt-5.4-image-2`,name:`OpenAI: GPT-5.4 Image 2`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:8,output:15,cacheRead:2,cacheWrite:0}},"openrouter/auto":{id:`openrouter/auto`,name:`Auto Router`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`text`,`image`],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"recraft/recraft-v3":{id:`recraft/recraft-v3`,name:`Recraft: Recraft V3`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4":{id:`recraft/recraft-v4`,name:`Recraft: Recraft V4`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro":{id:`recraft/recraft-v4-pro`,name:`Recraft: Recraft V4 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro-vector":{id:`recraft/recraft-v4-pro-vector`,name:`Recraft: Recraft V4 Pro Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-vector":{id:`recraft/recraft-v4-vector`,name:`Recraft: Recraft V4 Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1":{id:`recraft/recraft-v4.1`,name:`Recraft: Recraft V4.1`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro":{id:`recraft/recraft-v4.1-pro`,name:`Recraft: Recraft V4.1 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro-vector":{id:`recraft/recraft-v4.1-pro-vector`,name:`Recraft: Recraft V4.1 Pro Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility":{id:`recraft/recraft-v4.1-utility`,name:`Recraft: Recraft V4.1 Utility`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility-pro":{id:`recraft/recraft-v4.1-utility-pro`,name:`Recraft: Recraft V4.1 Utility Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-vector":{id:`recraft/recraft-v4.1-vector`,name:`Recraft: Recraft V4.1 Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast":{id:`sourceful/riverflow-v2-fast`,name:`Sourceful: Riverflow V2 Fast`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast-preview":{id:`sourceful/riverflow-v2-fast-preview`,name:`Sourceful: Riverflow V2 Fast Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-max-preview":{id:`sourceful/riverflow-v2-max-preview`,name:`Sourceful: Riverflow V2 Max Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-pro":{id:`sourceful/riverflow-v2-pro`,name:`Sourceful: Riverflow V2 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-standard-preview":{id:`sourceful/riverflow-v2-standard-preview`,name:`Sourceful: Riverflow V2 Standard Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}}}},Jbe=new Map;for(let[e,t]of Object.entries(qbe)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);Jbe.set(e,n)}const Ybe=new Map;function Xbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function Zbe(e,t){Ybe.set(e.api,{provider:{api:e.api,generateImages:Xbe(e.api,e.generateImages)},sourceId:t})}let zJ;function Qbe(e,t){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function $be(){return zJ||=import(`./openrouter-BgKegqZJ.js`).then(e=>e),zJ}const exe=async(e,t,n)=>{try{return await(await $be()).generateImagesOpenRouter(e,t,n)}catch(t){return Qbe(e,t)}};function txe(){Zbe({api:`openrouter-images`,generateImages:exe})}txe();const nxe={"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-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-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-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-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-haiku-4-5-20251001-v1:0":{id:`au.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (AU)`,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},"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-5-20250929-v1:0":{id:`au.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (AU)`,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},"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-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-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},"jp.anthropic.claude-opus-4-7":{id:`jp.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (JP)`,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},"jp.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`jp.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (JP)`,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},"jp.anthropic.claude-sonnet-4-6":{id:`jp.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (JP)`,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},"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-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:16384},"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:16384},"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:16384},"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:16384},"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-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-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},"us.deepseek.r1-v1:0":{id:`us.deepseek.r1-v1:0`,name:`DeepSeek-R1 (US)`,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},"us.meta.llama4-maverick-17b-instruct-v1:0":{id:`us.meta.llama4-maverick-17b-instruct-v1:0`,name:`Llama 4 Maverick 17B Instruct (US)`,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},"us.meta.llama4-scout-17b-instruct-v1:0":{id:`us.meta.llama4-scout-17b-instruct-v1:0`,name:`Llama 4 Scout 17B Instruct (US)`,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},"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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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.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.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-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,minimal:`low`},input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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:.01,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":{id:`gemini-3.1-flash-lite`,name:`Gemini 3.1 Flash Lite`,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:0},contextWindow:1048576,maxTokens:65536},"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:0},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:`none`},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:`none`,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:`none`,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:`none`,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:`none`,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:`none`,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:`none`,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.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.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:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,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},"deepseek-v4-flash-free":{id:`deepseek-v4-flash-free`,name:`DeepSeek V4 Flash Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"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},"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},"qwen3.6-plus-free":{id:`qwen3.6-plus-free`,name:`Qwen3.6 Plus Free`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},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:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,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-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-opus-4.7-fast":{id:`anthropic/claude-opus-4.7-fast`,name:`Anthropic: Claude Opus 4.7 (Fast)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,thinkingLevelMap:{xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:150,cacheRead:3,cacheWrite:37.5},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-large-thinking:free":{id:`arcee-ai/trinity-large-thinking:free`,name:`Arcee AI: Trinity Large Thinking (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:8e4},"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:131072,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:131072,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:.21,output:.7899999999999999,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:32768},"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:163840,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:.112,output:.224,cacheRead:.022,cacheWrite:0},contextWindow:1048576,maxTokens:4096},"deepseek/deepseek-v4-flash:free":{id:`deepseek/deepseek-v4-flash:free`,name:`DeepSeek: DeepSeek V4 Flash (free)`,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:0,output:0,cacheRead:0,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":{id:`google/gemini-3.1-flash-lite`,name:`Google: Gemini 3.1 Flash Lite`,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-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:1048756,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:.12,output:.37,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,thinkingLevelMap:{off:null},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:.01,output:.03,cacheRead:.002,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ring-2.6-1t":{id:`inclusionai/ring-2.6-1t`,name:`inclusionAI: Ring-2.6-1T`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.625,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:65536},"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:131072,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:131072,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:1e7,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:204800,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:204800,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:0,cacheWrite:0},contextWindow:204800,maxTokens:196608},"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:204800,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:.27899999999999997,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"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/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:.6,output:2.5,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:0,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:.73,output:3.49,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:262142},"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.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:1e6,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:1e6,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:131072,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:131072,maxTokens:32768},"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/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:.09999999999999999,output:.24,cacheRead:0,cacheWrite:0},contextWindow:131702,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:262144,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:131072,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:.28,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"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:131072,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:1048576,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:1048576,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:262144,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:262144,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:262144,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:256e3,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:256e3,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:.3,output:1.7999999999999998,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:.1875,output:1.125,cacheRead:0,cacheWrite:.234375},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":{id:`tencent/hy3-preview`,name:`Tencent: Hy3 preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06599999999999999,output:.26,cacheRead:.029,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},"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-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},"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:.09999999999999999,output:.3,cacheRead:.01,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:16384},"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:.43,output:1.74,cacheRead:.08,cacheWrite:0},contextWindow:202752,maxTokens:131072},"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:.39999999999999997,output:1.75,cacheRead:.08,cacheWrite:0},contextWindow:202752,maxTokens:131072},"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:.98,output:3.08,cacheRead:.182,cacheWrite:0},contextWindow:202752,maxTokens:4096},"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:.73,output:3.49,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:262142},"~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}},together:{"MiniMaxAI/MiniMax-M2.5":{id:`MiniMaxAI/MiniMax-M2.5`,name:`MiniMax-M2.5`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null},input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.7":{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null},input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:202752,maxTokens:131072},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{id:`Qwen/Qwen3-235B-A22B-Instruct-2507-tput`,name:`Qwen3 235B A22B Instruct 2507 FP8`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`,name:`Qwen3 Coder 480B A35B Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:2,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3-Coder-Next-FP8":{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3.5-397B-A17B":{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:13e4},"Qwen/Qwen3.6-Plus":{id:`Qwen/Qwen3.6-Plus`,name:`Qwen3.6 Plus`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:5e5},"deepseek-ai/DeepSeek-V3":{id:`deepseek-ai/DeepSeek-V3`,name:`DeepSeek V3`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:1.25,output:1.25,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"deepseek-ai/DeepSeek-V3-1":{id:`deepseek-ai/DeepSeek-V3-1`,name:`DeepSeek V3.1`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.6,output:1.7,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"deepseek-ai/DeepSeek-V4-Pro":{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:null},input:[`text`],cost:{input:2.1,output:4.4,cacheRead:.2,cacheWrite:0},contextWindow:512e3,maxTokens:384e3},"essentialai/Rnj-1-Instruct":{id:`essentialai/Rnj-1-Instruct`,name:`Rnj-1 Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"google/gemma-4-31B-it":{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{id:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,name:`Llama 3.3 70B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:.88,output:.88,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"moonshotai/Kimi-K2.5":{id:`moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.5,output:2.8,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.6":{id:`moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:1.2,output:4.5,cacheRead:.2,cacheWrite:0},contextWindow:262144,maxTokens:131e3},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`openai`},reasoning:!0,thinkingLevelMap:{off:null,minimal:null},input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"zai-org/GLM-5.1":{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:131072}},"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-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":{id:`google/gemini-3.1-flash-lite`,name:`Gemini 3.1 Flash Lite`,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-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 20B`,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-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:1e6,maxTokens:1e6},"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:1e6,maxTokens:1e6},"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},"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-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:!1,input:[`text`],cost:{input:.2,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:32768,maxTokens:8192},"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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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}}},BJ=new Map;for(let[e,t]of Object.entries(nxe)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);BJ.set(e,n)}function VJ(e,t){return BJ.get(e)?.get(t)}function HJ(){return Array.from(BJ.keys())}function UJ(e){let t=BJ.get(e);return t?Array.from(t.values()):[]}function WJ(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 GJ=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function KJ(e){return e.reasoning?GJ.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`?n!==void 0:!0}):[`off`]}function qJ(e,t){let n=KJ(e);if(n.includes(t))return t;let r=GJ.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<GJ.length;e++){let t=GJ[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=GJ[e];if(n.includes(t))return t}return n[0]??`off`}var rxe=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}},JJ=class extends rxe{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 YJ(){return new JJ}const ixe=e=>import(e);let XJ,ZJ,QJ,$J,eY,tY,nY,rY,iY;function aY(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function oY(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 sY(e){return(t,n,r)=>{let i=new JJ;return e().then(e=>{aY(i,e.stream(t,n,r))}).catch(e=>{let n=oY(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function cY(e){return(t,n,r)=>{let i=new JJ;return e().then(e=>{aY(i,e.streamSimple(t,n,r))}).catch(e=>{let n=oY(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function lY(){return XJ||=import(`./anthropic-BOzXuoM3.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),XJ}function uY(){return ZJ||=import(`./azure-openai-responses-Be1SnJhA.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),ZJ}function dY(){return QJ||=import(`./google-Yi7CN08j.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),QJ}function fY(){return $J||=import(`./google-vertex-BLJOblZE.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),$J}function pY(){return eY||=import(`./mistral-Bh1GJbf4.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),eY}function mY(){return tY||=import(`./openai-codex-responses-B3W7YrEb.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),tY}function hY(){return nY||=Promise.resolve().then(()=>TNe).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),nY}function gY(){return rY||=import(`./openai-responses-Ds-HVP9y.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),rY}function _Y(){return iY||=ixe(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),iY}const vY=sY(lY),yY=cY(lY),axe=sY(uY),oxe=cY(uY),sxe=sY(dY),cxe=cY(dY),lxe=sY(fY),uxe=cY(fY),dxe=sY(pY),fxe=cY(pY),bY=sY(mY),xY=cY(mY),SY=sY(hY),CY=cY(hY),wY=sY(gY),TY=cY(gY),pxe=sY(_Y),mxe=cY(_Y);function hxe(){kJ({api:`anthropic-messages`,stream:vY,streamSimple:yY}),kJ({api:`openai-completions`,stream:SY,streamSimple:CY}),kJ({api:`mistral-conversations`,stream:dxe,streamSimple:fxe}),kJ({api:`openai-responses`,stream:wY,streamSimple:TY}),kJ({api:`azure-openai-responses`,stream:axe,streamSimple:oxe}),kJ({api:`openai-codex-responses`,stream:bY,streamSimple:xY}),kJ({api:`google-generative-ai`,stream:sxe,streamSimple:cxe}),kJ({api:`google-vertex`,stream:lxe,streamSimple:uxe}),kJ({api:`bedrock-converse-stream`,stream:pxe,streamSimple:mxe})}hxe();const EY=new Set;function gxe(e){return EY.add(e),()=>{EY.delete(e)}}function _xe(e){let t=Ube(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function DY(e,t,n){return _xe(e.api).streamSimple(e,t,n)}async function OY(e,t,n){return DY(e,t,n).result()}function kY(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function vxe(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:kY(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 yxe(e,t,n){return{type:e,timestamp:Date.now(),error:vxe(t),details:n}}function bxe(e,t){e.diagnostics=[...e.diagnostics??[],t]}var AY=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})),jY=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=AY();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return r.Allow}}),n(AY(),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&&`
4119
+ `)?DG(e,TG(t)):e.startsWith(` `)?DG(e,t):DG(e,EG(t))}[...bG,...xG],[...xG];function kG(e){return X(e,``)?[]:[e.slice(0,1),e.slice(1)]}function AG(e,t){let[n,...r]=e;return Sz(n)?t.startsWith(n)?!0:AG(r,t):!1}function jG(e,t,n=``){return gG(kG(t),(r,i)=>AG(e,t)?[n,t]:jG(e,i,`${n}${r}`),()=>[])}function MG(e,t){return gG(jG(e,t),(e,t)=>X(e,``)?[]:[e,t],()=>[])}const NG=(e,t,n=()=>[])=>e.length===2?t(e):n(),PG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)n`,e),([e,t])=>[rG(e),t]),FG=e=>NG(OG(`.*`,e),([e,t])=>[iG(e),t]),IG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,e),([e,t])=>[aG(e),t]),LG=e=>NG(OG(`-?(?:0|[1-9][0-9]*)`,e),([e,t])=>[oG(e),t]),RG=e=>NG(OG(`(?!)`,e),([e,t])=>[sG(e),t]),zG=e=>NG(MG([`-?(?:0|[1-9][0-9]*)n`,`.*`,`-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?`,`-?(?:0|[1-9][0-9]*)`,`(?!)`,`(`,`)`,`$`,`|`],e),([e,t])=>[cG(e),t]),BG=e=>NG(NG(PG(e),([e,t])=>[e,t],()=>NG(FG(e),([e,t])=>[e,t],()=>NG(IG(e),([e,t])=>[e,t],()=>NG(LG(e),([e,t])=>[e,t],()=>NG(RG(e),([e,t])=>[e,t],()=>NG(VG(e),([e,t])=>[e,t],()=>NG(zG(e),([e,t])=>[e,t],()=>[]))))))),([e,t])=>[lG(e),t]),VG=e=>NG(NG(OG(`(`,e),([e,t])=>NG(WG(t),([t,n])=>NG(OG(`)`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[uG(e),t]),HG=e=>NG(NG(NG(UG(e),([e,t])=>NG(OG(`|`,t),([t,n])=>NG(HG(n),([n,r])=>[[e,t,n],r]))),([e,t])=>[e,t],()=>NG(NG(UG(e),([e,t])=>[[e],t]),([e,t])=>[e,t],()=>NG([[],e],([e,t])=>[e,t],()=>[]))),([e,t])=>[dG(e),t]),UG=e=>NG(NG(BG(e),([e,t])=>NG(WG(t),([t,n])=>[[e,t],n])),([e,t])=>[fG(e),t]),WG=e=>NG(NG(HG(e),([e,t])=>[e,t],()=>NG(UG(e),([e,t])=>[e,t],()=>[])),([e,t])=>[pG(e),t]),GG=e=>NG(NG(OG(`^`,e),([e,t])=>NG(WG(t),([t,n])=>NG(OG(`$`,n),([n,r])=>[[e,t,n],r]))),([e,t])=>[mG(e),t]);function KG(e){return e.join(`|`)}function qG(e){return e.slice(1,e.length-1)}function JG(e,t,n){return aK(t,`${n}${e}`)}function YG(e,t){return aK(e,`${t}-?(?:0|[1-9][0-9]*)n`)}function XG(e,t){return aK(e,`${t}${sU}`)}function ZG(e,t){return aK(e,`${t}${wU}`)}function QG(e,t){return iK(aH([hU(`false`),hU(`true`)]),e,t)}function $G(e,t){return aK(e,`${t}.*`)}function eK(e,t,n){return aK(t,`${n}${qG(e)}`)}function tK(e,t,n){return iK(cK(e,{}),t,n)}function nK(e,t,n){return rK(QU(e),t,n)}function rK(e,t,n,r=[]){return Lz(e,(e,i)=>rK(i,t,n,[...r,iK(e,[],``)]),()=>aK(t,`${n}(${KG(r)})`))}function iK(e,t,n){return hH(e)?nK(e.enum,t,n):lU(e)?XG(t,n):xU(e)?JG(e.const,t,n):aU(e)?YG(t,n):oU(e)?QG(t,n):EU(e)?ZG(t,n):AU(e)?$G(t,n):fK(e)?eK(e.pattern,t,n):dK(e)?tK(e.parameters[0],t,n):oH(e)?rK(e.anyOf,t,n):`(?!)`}function aK(e,t){return Lz(e,(e,n)=>iK(e,n,t),()=>t)}function oK(e){return`^${aK(e,``)}$`}function sK(e){return LU(oK(e))}function cK(e,t){return yJ(e)?sV(sK(e),{},t):uK(e,t)}function lK(e,t,n,r){return cK(CJ(e,t,n),r)}function uK(e,t={}){return mV(`TemplateLiteral`,[e],t)}function dK(e){return lV(e)&&Z(e,`action`)&&X(e.action,`TemplateLiteral`)}function fK(e){return cV(e,`TemplateLiteral`)}function pK(e){return aV({"~kind":`ExtendsUnion`},{inferred:e})}function mK(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsUnion`)&&xz(e.inferred)}function hK(e){return aV({"~kind":`ExtendsTrue`},{inferred:e})}function gK(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`inferred`)&&X(e[`~kind`],`ExtendsTrue`)&&xz(e.inferred)}function _K(){return aV({"~kind":`ExtendsFalse`},{})}function vK(e){return xz(e)&&Z(e,`~kind`)&&X(e[`~kind`],`ExtendsFalse`)}function yK(e){return mK(e)||gK(e)}function bK(e,t,n){return yK(e)?t(e.inferred):n()}function xK(e,t,n,r){return bK(yq(e,n,r),r=>hK(YR(YR(e,r),{[t]:n})),()=>_K())}function SK(e,t){return hK(e)}function CK(e,t,n){return yq(e,t,$U(n))}function wK(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>wK(e,t,r),()=>_K()),()=>hK(e))}function TK(e,t,n){return yq(e,t,qU(n))}function EK(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>hK(e),()=>EK(e,t,r)),()=>_K())}function DK(e,t,n){return XV(n)?SK(e,t):hH(n)?CK(e,t,n.enum):mH(n)?xK(e,n.name,t,n.extends):_H(n)?wK(e,t,n.allOf):fK(n)?TK(e,t,n.pattern):oH(n)?EK(e,t,n.anyOf):lH(n)?hK(e):_K()}function OK(e,t,n){return mH(n)?DK(e,t,n):XV(n)||lH(n)?hK(e):pK(e)}function kK(e,t){let n=xV(e),r=xV(t);return n&&r||!n&&r?!0:!(n&&!r)}function AK(e,t,n,r){return PV(r)?kK(t,r)?yq(e,n,r.items):_K():DK(e,t,r)}function jK(e,t,n){return LV(n)?yq(e,t,n.iteratorItems):DK(e,IV(t),n)}function MK(e,t,n){return aU(n)?hK(e):DK(e,t,n)}function NK(e,t,n){return oU(n)?hK(e):DK(e,t,n)}function PK(e,t,n,r,i){let a=mH(r)?t:r,o=mH(r)?r:t,s=TV(t),c=TV(r);return!s&&c?_K():bK(yq(e,a,o),e=>LK(e,n,i),()=>_K())}function FK(e,t,n,r){return Lz(r,(r,i)=>PK(e,t,n,r,i),()=>TV(t)?hK(e):_K())}function IK(e,t,n){return Lz(t,(t,r)=>FK(e,t,r,n),()=>hK(e))}function LK(e,t,n){return IK(e,t,n)}function RK(e,t,n){return nG(n)?hK(e):yq(e,t,n)}function zK(e,t,n,r){return XV(r)||lH(r)?hK(e):BV(r)?bK(LK(e,t,r.parameters),e=>RK(e,n,r.instanceType),()=>_K()):_K()}function BK(e,t,n){return yq(e,eW(t),n)}function VK(e,t,n,r){return XV(r)||lH(r)?hK(e):UV(r)?bK(LK(e,t,r.parameters),e=>RK(e,n,r.returnType),()=>_K()):_K()}function HK(e,t,n){return lU(n)||EU(n)?hK(e):DK(e,t,n)}function UK(e,t,n){return yq(e,SW(t),n)}function WK(e,t,n){return dU(n)?yq(e,t,n.iteratorItems):DK(e,uU(t),n)}function GK(e,t,n){return t===n?hK(e):_K()}function KK(e,t,n){return xU(n)?GK(e,t,n.const):aU(n)?hK(e):DK(e,hU(t),n)}function qK(e,t,n){return xU(n)?GK(e,t,n.const):oU(n)?hK(e):DK(e,hU(t),n)}function JK(e,t,n){return xU(n)?GK(e,t,n.const):EU(n)?hK(e):DK(e,hU(t),n)}function YK(e,t,n){return xU(n)?GK(e,t,n.const):AU(n)?hK(e):DK(e,hU(t),n)}function XK(e,t,n){return fz(t.const)?KK(e,t.const,n):pz(t.const)?qK(e,t.const,n):yz(t.const)?JK(e,t.const,n):Sz(t.const)?YK(e,t.const,n):CH()}function ZK(e,t,n){return mH(n)?DK(e,t,n):hK(e)}function QK(e,t,n){return CU(n)?hK(e):DK(e,t,n)}function $K(e,t,n){return EU(n)?hK(e):DK(e,t,n)}function eq(e,t,n){return TV(t)?TV(n)?hK(e):_K():hK(e)}function tq(e,t,n){return mH(n)&&QV(n.extends)?_K():bK(yq(e,t,n),e=>eq(e,t,n),()=>_K())}function nq(e,t){return e.reduce((e,n)=>n in t&&yK(t[n])?{...e,...t[n].inferred}:CH(),{})}function rq(e,t,n){let r={};for(let i of Bz(n))r[i]=i in t?tq({},t[i],n[i]):TV(n[i])?mH(n[i])?hK(YR(e,{[n[i].name]:n[i].extends})):hK(e):_K();let i=Hz(r).every(e=>yK(e)),a=i?nq(Bz(r),r):{};return i?hK(a):_K()}function iq(e,t,n){let r=rq(e,t,n);return yK(r)?hK(YR(e,r.inferred)):_K()}function aq(e,t,n){return iq(e,t,n)}function oq(e,t,n){return rH(n)?aq(e,t,n.properties):DK(e,nH(t),n)}function sq(e,t,n){return _V(n)?yq(e,t,n.item):DK(e,gV(t),n)}function Yge(e,t,n){return AU(n)?hK(e):DK(e,t,n)}function Xge(e,t,n){return OU(n)?hK(e):DK(e,t,n)}function Zge(e,t,n){return yq(e,qU(t),n)}function cq(e,t){return aV({"~kind":`Inferrable`},{name:e,type:t},{})}function lq(e){return xz(e)&&Z(e,`~kind`)&&Z(e,`name`)&&Z(e,`type`)&&X(e[`~kind`],`Inferrable`)&&Sz(e.name)&&xz(e.type)}function uq(e){return QW(e)?mH(e.items)?PV(e.items.extends)?cq(e.items.name,e.items.extends.items):lH(e.items.extends)?cq(e.items.name,e.items.extends):void 0:CH():void 0}function dq(e){return mH(e)?cq(e.name,e.extends):void 0}function fq(e,t,n=[]){return Lz(e,(e,r)=>bK(yq({},e,t),()=>fq(r,t,[...n,e]),()=>void 0),()=>n)}function Qge(e,t,n,r){let i=fq(n,r);return uz(i)?hK(YR(e,{[t]:rW(i)})):_K()}function pq(e,t,n,r){let i=fq(n,r);return uz(i)?hK(YR(e,{[t]:aH(i)})):_K()}function $ge(e){return[...e].reverse()}function mq(e,t){return t?$ge(e):e}function e_e(e){let t=e.length>0?e[0]:void 0;return lV(lV(t)?uq(t):void 0)}function t_e(e,t,n,r,i,a){return bK(yq(e,n,i),e=>hq(e,t,r,a),()=>_K())}function n_e(e,t,n,r,i){let a=uq(r);return lq(a)?Qge(e,a.name,mq(n,t),a.type):Lz(n,(n,a)=>t_e(e,t,n,a,r,i),()=>_K())}function r_e(e,t,n,r){return Lz(r,(r,i)=>n_e(e,t,n,r,i),()=>X(n.length,0)?hK(e):_K())}function hq(e,t,n,r){return r_e(e,t,n,r)}function i_e(e,t,n){let r=SJ(e,{callstack:[]},n),i=e_e(r);return hq(e,i,mq(t,i),mq(r,i))}function gq(e,t,n){let r=dq(n);return lq(r)?pq(e,r.name,t,r.type):Lz(t,(t,r)=>bK(yq(e,t,n),e=>gq(e,r,n),()=>_K()),()=>hK(e))}function a_e(e,t,n){let r=SJ(e,{callstack:[]},t);return iW(n)?i_e(e,r,n.items):PV(n)?gq(e,r,n.items):DK(e,rW(r),n)}function o_e(e,t,n){return nG(n)||tG(n)?hK(e):DK(e,t,n)}function _q(e,t,n){return Lz(n,(n,r)=>bK(yq(e,t,n),e=>hK(e),()=>_q(e,t,r)),()=>_K())}function vq(e,t,n){return Lz(t,(t,r)=>bK(_q(e,t,n),e=>vq(e,r,n),()=>_K()),()=>hK(e))}function s_e(e,t,n){let r=dq(n);return lq(r)?pq(e,r.name,t,r.type):oH(n)?vq(e,t,n.anyOf):vq(e,t,[n])}function c_e(e,t,n){return mH(n)?DK(e,t,n):XV(n)||lH(n)?hK(e):_K()}function l_e(e,t,n){return nG(n)?hK(e):DK(e,t,n)}function yq(e,t,n){return XV(t)?OK(e,t,n):PV(t)?AK(e,t,t.items,n):LV(t)?jK(e,t.iteratorItems,n):aU(t)?MK(e,t,n):oU(t)?NK(e,t,n):BV(t)?zK(e,t.parameters,t.instanceType,n):hH(t)?BK(e,t,n):UV(t)?VK(e,t.parameters,t.returnType,n):lU(t)?HK(e,t,n):_H(t)?UK(e,t.allOf,n):dU(t)?WK(e,t.iteratorItems,n):xU(t)?XK(e,t,n):QV(t)?ZK(e,t,n):CU(t)?QK(e,t,n):EU(t)?$K(e,t,n):rH(t)?oq(e,t.properties,n):_V(t)?sq(e,t.item,n):AU(t)?Yge(e,t,n):OU(t)?Xge(e,t,n):fK(t)?Zge(e,t.pattern,n):iW(t)?a_e(e,t.items,n):tG(t)?o_e(e,t,n):oH(t)?s_e(e,t.anyOf,n):lH(t)?c_e(e,t,n):nG(t)?l_e(e,t,n):_K()}function u_e(e,t){return SW([...e,nH(t)])}function d_e(e,t,n){return yJ(e)?sV(u_e(e,t),{},n):p_e(e,t,n)}function f_e(e,t,n,r,i){return d_e(CJ(e,t,n),xJ(e,t,r),i)}function p_e(e,t,n={}){return mV(`Interface`,[e,t],n)}function bq(e){return lV(e)&&Z(e,`action`)&&X(e.action,`Interface`)}function m_e(e,t,n){return e.includes(n)?!0:Cq([...e,n],t,t[n])}function xq(e,t,n){return Sq(e,t,tH(n))}function Sq(e,t,n){return Lz(n,(n,r)=>Cq(e,t,n)?!0:Sq(e,t,r),()=>!1)}function Cq(e,t,n){return KV(n)?m_e(e,t,n.$ref):PV(n)?Cq(e,t,n.items):LV(n)?Cq(e,t,n.iteratorItems):BV(n)?Sq(e,t,[...n.parameters,n.instanceType]):UV(n)?Sq(e,t,[...n.parameters,n.returnType]):bq(n)?xq(e,t,n.parameters[1]):_H(n)?Sq(e,t,n.allOf):dU(n)?Cq(e,t,n.iteratorItems):rH(n)?xq(e,t,n.properties):_V(n)?Cq(e,t,n.item):oH(n)?Sq(e,t,n.anyOf):iW(n)?Sq(e,t,n.items):XW(n)?Cq(e,t,YW(n)):!1}function wq(e,t,n){return Cq(e,t,n)}function h_e(e,t){return t.reduce((t,n)=>n in e?wq([n],e,e[n])?[...t,n]:t:CH(),[])}function g_e(e){return h_e(e,eH(e))}function __e(e,t,n){return n.includes(t)?n:t in e?Dq(e,e[t],[...n,t]):CH()}function Tq(e,t,n){return Eq(e,tH(t),n)}function Eq(e,t,n){return t.reduce((t,n)=>Dq(e,n,t),n)}function Dq(e,t,n){return KV(t)?__e(e,t.$ref,n):PV(t)?Dq(e,t.items,n):LV(t)?Dq(e,t.iteratorItems,n):BV(t)?Eq(e,[...t.parameters,t.instanceType],n):UV(t)?Eq(e,[...t.parameters,t.returnType],n):bq(t)?Tq(e,t.parameters[1],n):_H(t)?Eq(e,t.allOf,n):dU(t)?Dq(e,t.iteratorItems,n):rH(t)?Tq(e,t.properties,n):_V(t)?Dq(e,t.item,n):oH(t)?Eq(e,t.anyOf,n):iW(t)?Eq(e,t.items,n):XW(t)?Dq(e,YW(t),n):n}function v_e(e,t,n){return Dq(e,n,[t])}function y_e(e){return YV()}function b_e(e){return Bz(e).reduce((t,n)=>({...t,[n]:kq(e[n])}),{})}function Oq(e){return e.reduce((e,t)=>[...e,kq(t)],[])}function kq(e){return KV(e)?y_e(e.$ref):PV(e)?NV(kq(e.items),FV(e)):LV(e)?IV(kq(e.iteratorItems)):BV(e)?zV(Oq(e.parameters),kq(e.instanceType)):UV(e)?HV(Oq(e.parameters),kq(e.returnType)):_H(e)?gH(Oq(e.allOf)):dU(e)?uU(kq(e.iteratorItems)):rH(e)?nH(b_e(e.properties)):_V(e)?gV(kq(e.item)):XW(e)?GW(JW(e),kq(YW(e))):oH(e)?aH(Oq(e.anyOf)):iW(e)?rW(Oq(e.items)):e}function x_e(e,t){return t in e?kq(e[t]):cH()}function S_e(e){return x_e(e.$defs,e.$ref)}function C_e(e,t,n){let r=CJ(e,{callstack:[]},t),i=xJ({},{callstack:[]},n);return SW([...r,nH(i)])}function w_e(e,t){return Bz(e).filter(e=>t.includes(e)).reduce((t,n)=>{let r=e[n],i=bq(r)?C_e(e,r.parameters[0],r.parameters[1]):r;return{...t,[n]:i}},{})}function T_e(e,t,n){return uH(w_e(e,v_e(e,t,n)),t)}function Aq(e,t){return t in e?KV(e[t])?Aq(e,e[t].$ref):e[t]:ZV()}function jq(e,t){return Aq(e,t)}function Mq(e){return dH(e)?S_e(e):fH(e)?cH():e}function Nq(e,t,n){return yq(e,Mq(t),Mq(n))}function Pq(e,t){let n=[lH(e)?_K():Nq({},e,t),lH(e)?hK({}):Nq({},t,e)];return yK(n[0])&&yK(n[1])?`equal`:yK(n[0])&&vK(n[1])?`left-inside`:vK(n[0])&&yK(n[1])?`right-inside`:`disjoint`}function E_e(e,t){return t.filter(t=>Pq(e,t)!==`right-inside`)}function D_e(e,t){return X(t.some(t=>{let n=Pq(e,t);return X(n,`left-inside`)||X(n,`equal`)}),!1)}function O_e(e,t){let n=wW(e);return XV(n)?[n]:D_e(n,t)?[...E_e(n,t),n]:t}function k_e(e){return e.reduce((e,t)=>rH(t)?[...e,t]:QV(t)?e:O_e(t,e),[])}function Fq(e){let t=MW(k_e(e));return t.length===0?ZV():t.length===1?t[0]:aH(t)}function Iq(e,t){return sV(wW(e),{},t)}function A_e(e,t,n,r){return Iq(wJ(e,t,n),r)}function Lq(e,t=[]){return hV(e)&&X(e.action,`Conditional`)?KV(e.parameters[0])?Lq(e.parameters[2],Lq(e.parameters[3],[...t,e.parameters[0].$ref])):Lq(e.parameters[2],Lq(e.parameters[3],t)):hV(e)&&X(e.action,`Mapped`)&&hV(e.parameters[1])&&X(e.parameters[1].action,`KeyOf`)&&KV(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function j_e(e,t){return e.reduce((e,n)=>[...e,t.includes(n.name)],[])}function Rq(e,t,n=[]){let[r,...i]=e,[a,...o]=t;return Tz(e.length,0)&&Tz(t.length,0)?Rq(i,o,[...n,[a,r]]):n}function M_e(e){return oH(e)?[...e.anyOf]:[e]}function N_e(e,t){return e.reduce((e,n)=>[...e,[...n,t]],[])}function zq(e,t){return t.reduce((t,n)=>[...t,...N_e(e,n)],[])}function P_e(e){return e.reduce((e,t)=>X(t[0],!0)?zq(e,M_e(t[1])):zq(e,[t[1]]),[[]])}function F_e(e,t,n){let r=Rq(t,j_e(e,Lq(n)));return hV(n)&&X(n.action,`Conditional`)||hV(n)&&X(n.action,`Mapped`)?P_e(r):[t]}function I_e(){return[`(not-resolvable)`,ZV()]}function L_e(){return[`(not-generic)`,ZV()]}function R_e(e,t,n){return[e,qV(t,n)]}function z_e(e,t,n){return t in e?Bq(e,t,e[t],n):I_e()}function Bq(e,t,n,r){return JV(n)?R_e(t,n.parameters,n.expression):KV(n)?z_e(e,n.$ref,r):L_e()}function B_e(e,t,n){return Bq(e,`(anonymous)`,t,n)}function V_e(e,t,n){if(mH(t)||Wq(t)||yK(Nq({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function Vq(e,t,n,r,i){let a=wJ(e,t,i);return V_e(n,a,r),YR(e,{[n]:a})}function H_e(e,t,n,r,i){let a=wJ(e,t,n.extends),o=wJ(e,t,n.equals);return Lz(i,(i,o)=>Hq(Vq(e,t,n.name,a,i),t,r,o),()=>Hq(Vq(e,t,n.name,a,o),t,r,[]))}function Hq(e,t,n,r){return Lz(n,(n,i)=>H_e(e,t,n,i,r),()=>e)}function U_e(e,t,n,r){return Hq(e,t,n,r)}function W_e(e){return Tz(e.callstack.length,0)?e.callstack[e.callstack.length-1]:``}function G_e(e,t){return X(W_e(e),t)}function K_e(e,t,n,r,i,a){return wJ(e,t,wJ(U_e(e,t,r,a),{callstack:[...t.callstack,n.$ref]},i))}function q_e(e,t,n,r,i,a){return a.reduce((a,o)=>[...a,K_e(e,t,n,r,i,o)],[])}function J_e(e,t,n,r,i,a){let o=q_e(e,t,n,r,i,F_e(r,a,i));return X(o.length,1)?o[0]:CW(o)}function Y_e(e,t,n,r){let i=CJ(e,t,r),a=B_e(e,n,r),o=a[0],s=a[1];return JV(s)?G_e(t,o)?Uq(GV(o),i):J_e(e,t,GV(o),s.parameters,s.expression,i):Uq(n,i)}function Uq(e,t){return aV({"~kind":`Call`},{target:e,arguments:t},{})}function Wq(e){return cV(e,`Call`)}function X_e(e,t){return e(t)}function Z_e(e,t){return Sz(t)?hU(X_e(e,t)):hU(t)}function Q_e(e,t){return Gq(e,qU(t))}function $_e(e,t){return aH(t.map(t=>Gq(e,t)))}function Gq(e,t){return xU(t)?Z_e(e,t.const):fK(t)?Q_e(e,t.pattern):oH(t)?$_e(e,t.anyOf):t}function eve(e,t={}){return mV(`Capitalize`,[e],t)}function tve(e,t={}){return mV(`Lowercase`,[e],t)}function nve(e,t={}){return mV(`Uncapitalize`,[e],t)}function rve(e,t={}){return mV(`Uppercase`,[e],t)}const ive=e=>e[0].toUpperCase()+e.slice(1),ave=e=>e.toLowerCase(),ove=e=>e[0].toLowerCase()+e.slice(1),sve=e=>e.toUpperCase();function cve(e,t){return yJ([e])?sV(Gq(ive,e),{},t):eve(e,t)}function lve(e,t){return yJ([e])?sV(Gq(ave,e),{},t):tve(e,t)}function uve(e,t){return yJ([e])?sV(Gq(ove,e),{},t):nve(e,t)}function dve(e,t){return yJ([e])?sV(Gq(sve,e),{},t):rve(e,t)}function fve(e,t,n,r){return cve(wJ(e,t,n),r)}function pve(e,t,n,r){return lve(wJ(e,t,n),r)}function mve(e,t,n,r){return uve(wJ(e,t,n),r)}function hve(e,t,n,r){return dve(wJ(e,t,n),r)}function gve(e,t,n,r,i={}){return mV(`Conditional`,[e,t,n,r],i)}function _ve(e,t,n,r,i,a){let o=Nq(e,n,r);return mK(o)?aH([wJ(o.inferred,t,i),wJ(e,t,a)]):gK(o)?wJ(o.inferred,t,i):wJ(e,t,a)}function vve(e,t,n,r,i,a,o){return yJ([n,r])?sV(_ve(e,t,n,r,i,a),{},o):gve(n,r,i,a,o)}function yve(e,t,n,r,i,a,o){return vve(e,t,wJ(e,t,n),wJ(e,t,r),i,a,o)}function bve(e,t={}){return mV(`ConstructorParameters`,[e],t)}function xve(e){return rW(SJ({},{callstack:[]},BV(e)?e.parameters:[]))}function Sve(e,t){return yJ([e])?sV(xve(e),{},t):bve(e,t)}function Cve(e,t,n,r){return Sve(wJ(e,t,n),r)}function wve(e,t,n={}){return mV(`Exclude`,[e,t],n)}function Kq(e,t){return e.reduce((e,n)=>[...e,...qq(n,t)],[])}function qq(e,t){return yK(Nq({},e,t))?[]:[e]}function Tve(e,t){return CW(hH(e)?Kq(QU(e.enum),t):oH(e)?Kq(MW(e.anyOf),t):qq(e,t))}function Jq(e,t,n){return yJ([e,t])?sV(Tve(e,t),{},n):wve(e,t,n)}function Eve(e,t,n,r,i){return Jq(wJ(e,t,n),wJ(e,t,r),i)}function Dve(e,t,n={}){return mV(`Extract`,[e,t],n)}function Yq(e,t){return e.reduce((e,n)=>[...e,...Xq(n,t)],[])}function Xq(e,t){return yK(Nq({},e,t))?[e]:[]}function Ove(e,t){return CW(hH(e)?Yq(QU(e.enum),t):oH(e)?Yq(MW(e.anyOf),t):Xq(e,t))}function kve(e,t,n){return yJ([e,t])?sV(Ove(e,t),{},n):Dve(e,t,n)}function Ave(e,t,n,r,i){return kve(wJ(e,t,n),wJ(e,t,r),i)}function jve(e,t,n={}){return mV(`Index`,[e,t],n)}function Mve(e,t){return Qq(jq(e,t))}function Nve(e,t){let n=Bz(e).filter(e=>!Z(t,e)),r=Bz(t).filter(t=>!Z(e,t)),i=Bz(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]:SW([e[r],t[r]])}),{});return YR(YR(a,o),s)}function Pve(e){return e.reduce((e,t)=>Nve(e,Qq(t)),{})}function Fve(e){return e}function Ive(e){return Qq(sW(rW(e)))}function Lve(e,t){return Bz(e).filter(e=>e in t).reduce((n,r)=>({...n,[r]:CW([e[r],t[r]])}),{})}function Zq(e,t){return Lz(e,(e,n)=>Zq(n,Lve(t,Qq(e))),()=>t)}function Rve(e){return Lz(e,(e,t)=>Zq(t,Qq(e)),()=>CH())}function Qq(e){return dH(e)?Mve(e.$defs,e.$ref):_H(e)?Pve(e.allOf):oH(e)?Rve(e.anyOf):iW(e)?Ive(e.items):rH(e)?Fve(e.properties):{}}function $q(e){return nH(Qq(e))}const zve=RegExp(`^(?:0|[1-9][0-9]*)$`);function eJ(e){let t=`${e}`;return zve.test(t)?parseInt(t):e}function Bve(e){return hU(eJ(e))}function tJ(e){return e.map(e=>nJ(e))}function nJ(e){return _H(e)?gH(tJ(e.allOf)):oH(e)?aH(tJ(e.anyOf)):xU(e)?Bve(e.const):e}function Vve(e,t){return yK(Nq({},nJ(t),TU()))?e:xU(t)&&X(t.const,`length`)?TU():ZV()}function Hve(e,t){return iJ(jq(e,t))}function rJ(e){return e.reduce((e,t)=>[...e,...iJ(t)],[])}function Uve(e){return rJ(QU(e))}function Wve(e){return iJ(SW(e))}function Gve(e){return[`${e}`]}function Kve(e){return iJ(qU(e))}function iJ(e){return dH(e)?Hve(e.$defs,e.$ref):hH(e)?Uve(e.enum):_H(e)?Wve(e.allOf):xU(e)?Gve(e.const):fK(e)?Kve(e.pattern):oH(e)?rJ(e.anyOf):[]}function aJ(e){return iJ(e)}function oJ(e,t){return t.map(t=>sJ(e,t))}function sJ(e,t){return PV(t)?NV(sJ(e,t.items)):LV(t)?IV(sJ(e,t.iteratorItems)):BV(t)?zV(oJ(e,t.parameters),sJ(e,t.instanceType)):UV(t)?HV(oJ(e,t.parameters),sJ(e,t.returnType)):dU(t)?uU(sJ(e,t.iteratorItems)):_V(t)?gV(sJ(e,t.item)):iW(t)?rW(oJ(e,t.items)):oH(t)?aH(oJ(e,t.anyOf)):_H(t)?gH(oJ(e,t.allOf)):$W(t)?nH(e):t}function qve(e,t){return sJ(e,t)}function Jve(e,t){return qve(e,t in e?e[t]:ZV())}function cJ(e,t){return t.reduce((t,n)=>[...t,Jve(e,n)],[])}function Yve(e,t){return CW(cJ(e,aJ(t)))}const Xve=new RegExp(VW);function Zve(e){return e.filter(e=>Xve.test(e))}function Qve(e){return CW(cJ(e,Zve(eH(e))))}function $ve(e,t){return EU(t)?Qve(e):Yve(e,t)}function eye(e){return hU(eJ(e))}function lJ(e){return e.map(e=>uJ(e))}function uJ(e){return _H(e)?gH(lJ(e.allOf)):oH(e)?aH(lJ(e.anyOf)):xU(e)?eye(e.const):e}function tye(e,t){return e.reduceRight((e,n,r)=>yK(Nq({},hU(r),t))?[n,...e]:e,[])}function nye(e,t){return TW(tye(e,uJ(t)))}function rye(e){return TW(e)}function iye(e,t){return xU(t)&&X(t.const,`length`)?hU(e.length):EU(t)||lU(t)?rye(e):nye(e,t)}function aye(e,t){return PV(e)?Vve(e.items,t):rH(e)?$ve(e.properties,t):iW(e)?iye(e.items,t):ZV()}function oye(e){return dH(e)||_H(e)||oH(e)?$q(e):e}function sye(e,t,n){return yJ([e,t])?sV(aye(oye(e),t),{},n):jve(e,t,n)}function cye(e,t,n,r,i){return sye(wJ(e,t,n),wJ(e,t,r),i)}function lye(e,t={}){return mV(`InstanceType`,[e],t)}function uye(e){return BV(e)?e.instanceType:ZV()}function dye(e,t){return yJ([e])?sV(uye(e),{},t):lye(e,t)}function fye(e,t,n,r={}){return dye(wJ(e,t,n),r)}function pye(e,t={}){return mV(`KeyOf`,[e],t)}function mye(){return aH([TU(),kU(),DU()])}function hye(e){return TU()}function gye(e){return e.reduce((e,t)=>gU(t)?[...e,hU(eJ(t))]:CH(),[])}function _ye(e){return TW(gye(Bz(e)))}function vye(e){return JW(e)}function yye(e){return TW(e.map((e,t)=>hU(t)))}function bye(e){return XV(e)?mye():PV(e)?hye(e.items):rH(e)?_ye(e.properties):XW(e)?vye(e):iW(e)?yye(e.items):ZV()}function xye(e){return dH(e)||_H(e)||oH(e)?$q(e):e}function Sye(e,t){return yJ([e])?sV(bye(xye(e)),{},t):pye(e,t)}function Cye(e,t,n,r){return Sye(wJ(e,t,n),r)}function wye(e,t,n,r,i={}){return mV(`Mapped`,[e,t,n,r],i)}function Tye(e){return fJ(qU(e))}function dJ(e){return e.reduce((e,t)=>[...e,...fJ(t)],[])}function Eye(e){return yz(e)?[hU(`${e}`)]:[hU(e)]}function fJ(e){return hH(e)?dJ(QU(e.enum)):xU(e)?Eye(e.const):fK(e)?Tye(e.pattern):oH(e)?dJ(e.anyOf):[e]}function Dye(e){return fJ(e)}function Oye(e){return fK(e)?qU(e.pattern):e}function kye(e,t,n,r,i,a){let o=YR(e,{[n.name]:r}),s=Oye(wJ(o,t,i)),c=wJ(o,t,a);return yU(s)||bU(s)?{[s.const]:c}:{}}function Aye(e,t,n,r,i,a){return r.reduce((r,o)=>[...r,kye(e,t,n,o,i,a)],[])}function jye(e){return e.reduce((e,t)=>[...e,nH(t)],[])}function Mye(e,t,n,r,i,a){return SW(jye(Aye(e,t,n,Dye(r),i,a)))}function Nye(e,t,n,r,i,a,o){return yJ([r])?sV(Mye(e,t,n,r,i,a),{},o):wye(n,r,i,a,o)}function Pye(e,t,n,r,i,a,o){return Nye(e,t,n,wJ(e,t,r),i,a,o)}function Fye(e,t){return Bz(e).filter(e=>t.includes(e)).reduce((t,n)=>({...t,[n]:T_e(e,n,e[n])}),{})}function Iye(e,t){return Bz(e).filter(e=>!t.includes(e)).reduce((t,n)=>({...t,[n]:wJ(e,{callstack:[]},e[n])}),{})}function Lye(e,t){let n=g_e(e),r=Fye(e,n),i=Iye(e,n);return sV({...r,...i},{},t)}function Rye(e,t,n,r){return Lye(YR(e,n),r)}function zye(e,t={}){return mV(`NonNullable`,[e],t)}function Bye(e){return Jq(e,aH([SU(),eG()]),{})}function Vye(e,t){return yJ([e])?sV(Bye(e),{},t):zye(e,t)}function Hye(e,t,n,r){return Vye(wJ(e,t,n),r)}function Uye(e,t,n={}){return mV(`Omit`,[e,t],n)}function pJ(e){let t=$q(e);return rH(t)?t.properties:CH()}function Wye(e,t){return Bz(e).reduce((n,r)=>t.includes(r)?n:{...n,[r]:e[r]},{})}function Gye(e,t){return nH(Wye(pJ(e),aJ(t)))}function Kye(e,t,n){return yJ([e,t])?sV(Gye(e,t),{},n):Uye(e,t,n)}function qye(e,t,n,r,i){return Kye(wJ(e,t,n),wJ(e,t,r),i)}function Jye(e,t){return mV(`Options`,[e,t],{})}function Yye(e,t){return mJ(e,t)}function mJ(e,t){return yJ([e])?sV(e,{},t):Jye(e,t)}function Xye(e,t,n,r){return mJ(wJ(e,t,n),r)}function Zye(e,t={}){return mV(`Parameters`,[e],t)}function Qye(e){return rW(SJ({},{callstack:[]},UV(e)?e.parameters:[]))}function $ye(e,t){return yJ([e])?sV(Qye(e),{},t):Zye(e,t)}function ebe(e,t,n,r){return $ye(wJ(e,t,n),r)}function tbe(e,t={}){return mV(`Partial`,[e],t)}function nbe(e,t){let n=hJ(jq(e,t));return uH(YR(e,{[t]:n}),t)}function rbe(e){return SW(e.map(e=>hJ(e)))}function ibe(e){return aH(e.map(e=>hJ(e)))}function abe(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:wV(e[n])}),{}))}function hJ(e){return dH(e)?nbe(e.$defs,e.$ref):_H(e)?rbe(e.allOf):oH(e)?ibe(e.anyOf):rH(e)?abe(e.properties):nH({})}function obe(e,t){return yJ([e])?sV(hJ(e),{},t):tbe(e,t)}function sbe(e,t,n,r){return obe(wJ(e,t,n),r)}function cbe(e,t,n={}){return mV(`Pick`,[e,t],n)}function lbe(e,t){return Bz(e).reduce((n,r)=>t.includes(r)?YR(n,{[r]:e[r]}):n,{})}function ube(e,t){return nH(lbe(pJ(e),aJ(t)))}function dbe(e,t,n){return yJ([e,t])?sV(ube(e,t),{},n):cbe(e,t,n)}function fbe(e,t,n,r,i){return dbe(wJ(e,t,n),wJ(e,t,r),i)}function pbe(e,t={}){return mV(`ReadonlyObject`,[e],t)}function mbe(e){return bV(NV(e))}function hbe(e,t){let n=gJ(jq(e,t));return uH(YR(e,{[t]:n}),t)}function gbe(e){return SW(e.map(e=>gJ(e)))}function _be(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:OV(e[n])}),{}))}function vbe(e){return bV(rW(e))}function ybe(e){return aH(e.map(e=>gJ(e)))}function gJ(e){return PV(e)?mbe(e.items):dH(e)?hbe(e.$defs,e.$ref):_H(e)?gbe(e.allOf):rH(e)?_be(e.properties):iW(e)?vbe(e.items):oH(e)?ybe(e.anyOf):e}function bbe(e,t){return yJ([e])?sV(gJ(e),{},t):pbe(e)}function xbe(e,t,n,r){return bbe(wJ(e,t,n),r)}function Sbe(e,t,n,r){return r in e?wq([r],e,e[r])?n:wJ(e,t,e[r]):n}function Cbe(e,t){let n=_J(jq(e,t));return uH(YR(e,{[t]:n}),t)}function wbe(e){return SW(e.map(e=>_J(e)))}function Tbe(e){return aH(e.map(e=>_J(e)))}function Ebe(e){return nH(Bz(e).reduce((t,n)=>({...t,[n]:SV(e[n])}),{}))}function _J(e){return dH(e)?Cbe(e.$defs,e.$ref):_H(e)?wbe(e.allOf):oH(e)?Tbe(e.anyOf):rH(e)?Ebe(e.properties):nH({})}function Dbe(e,t={}){return mV(`Required`,[e],t)}function Obe(e,t){return yJ([e])?sV(_J(e),{},t):Dbe(e,t)}function kbe(e,t,n,r){return Obe(wJ(e,t,n),r)}function Abe(e,t={}){return mV(`ReturnType`,[e],t)}function jbe(e){return UV(e)?e.returnType:ZV()}function Mbe(e,t){return yJ([e])?sV(jbe(e),{},t):Abe(e,t)}function Nbe(e,t,n,r={}){return Mbe(wJ(e,t,n),r)}function Pbe(e){return QW(e)?iW(e.items)?vJ(e.items.items):mH(e.items)||KV(e.items)?[e]:[ZV()]:[e]}function vJ(e){return e.reduce((e,t)=>[...e,...Pbe(t)],[])}function yJ(e){return Lz(e,(e,t)=>KV(e)?!1:yJ(t),()=>!0)}function bJ(e,t,n){return pV(e)?bJ(e.type,`remove`,n):dV(e)?bJ(e.type,t,`remove`):fV(e)?bJ(e.type,`add`,n):uV(e)?bJ(e.type,t,`add`):[e,t,n]}function Fbe(e,t){return X(e,`remove`)?EV(t):X(e,`add`)?DV(t):t}function Ibe(e,t){return X(e,`remove`)?SV(t):X(e,`add`)?CV(t):t}function xJ(e,t,n){return Bz(n).reduce((r,i)=>({...r,[i]:wJ(e,t,n[i])}),{})}function SJ(e,t,n){return vJ(CJ(e,t,n))}function CJ(e,t,n){return n.map(n=>wJ(e,t,n))}function Lbe(e,t,n,r,i){return X(n,`Awaited`)?zbe(e,t,r[0],i):X(n,`Capitalize`)?fve(e,t,r[0],i):X(n,`Conditional`)?yve(e,t,r[0],r[1],r[2],r[3],i):X(n,`ConstructorParameters`)?Cve(e,t,r[0],i):X(n,`Evaluate`)?A_e(e,t,r[0],i):X(n,`Exclude`)?Eve(e,t,r[0],r[1],i):X(n,`Extract`)?Ave(e,t,r[0],r[1],i):X(n,`Index`)?cye(e,t,r[0],r[1],i):X(n,`InstanceType`)?fye(e,t,r[0],i):X(n,`Interface`)?f_e(e,t,r[0],r[1],i):X(n,`KeyOf`)?Cye(e,t,r[0],i):X(n,`Lowercase`)?pve(e,t,r[0],i):X(n,`Mapped`)?Pye(e,t,r[0],r[1],r[2],r[3],i):X(n,`Module`)?Rye(e,t,r[0],i):X(n,`NonNullable`)?Hye(e,t,r[0],i):X(n,`Pick`)?fbe(e,t,r[0],r[1],i):X(n,`Options`)?Xye(e,t,r[0],r[1]):X(n,`Parameters`)?ebe(e,t,r[0],i):X(n,`Partial`)?sbe(e,t,r[0],i):X(n,`Omit`)?qye(e,t,r[0],r[1],i):X(n,`ReadonlyObject`)?xbe(e,t,r[0],i):X(n,`Record`)?BW(e,t,r[0],r[1],i):X(n,`Required`)?kbe(e,t,r[0],i):X(n,`ReturnType`)?Nbe(e,t,r[0],i):X(n,`TemplateLiteral`)?lK(e,t,r[0],i):X(n,`Uncapitalize`)?mve(e,t,r[0],i):X(n,`Uppercase`)?hve(e,t,r[0],i):mV(n,r,i)}function wJ(e,t,n){let r=xV(n),i=bJ(n,kV(n)?`add`:`none`,TV(n)?`add`:`none`),a=MV(i[0])?i[0].Clone():i[0],o=KV(a)?Sbe(e,t,a,a.$ref):PV(a)?NV(wJ(e,t,a.items),FV(a)):LV(a)?IV(wJ(e,t,a.iteratorItems),RV(a)):Wq(a)?Y_e(e,t,a.target,a.arguments):BV(a)?zV(CJ(e,t,a.parameters),wJ(e,t,a.instanceType),VV(a)):hV(a)?Lbe(e,t,a.action,a.parameters,a.options):UV(a)?HV(CJ(e,t,a.parameters),wJ(e,t,a.returnType),WV(a)):_H(a)?gH(CJ(e,t,a.allOf),vH(a)):dU(a)?uU(wJ(e,t,a.iteratorItems),fU(a)):rH(a)?nH(xJ(e,t,a.properties),iH(a)):_V(a)?gV(wJ(e,t,a.item),vV(a)):XW(a)?KW(qW(a),wJ(e,t,YW(a))):QW(a)?ZW(wJ(e,t,a.items)):iW(a)?rW(SJ(e,t,a.items),aW(a)):oH(a)?aH(CJ(e,t,a.anyOf),sH(a)):a,s=r?bV(o):o;return Fbe(i[1],Ibe(i[2],s))}function TJ(e,t){return wJ(e,{callstack:[]},t)}function EJ(e){return _V(e)?EJ(e.item):e}function Rbe(e,t){return yJ([e])?sV(EJ(e),{},t):Bbe(e,t)}function zbe(e,t,n,r){return Rbe(wJ(e,t,n),r)}function Bbe(e,t={}){return mV(`Awaited`,[e],t)}function DJ(e,t={}){return Iq(e,t)}const OJ=new Map;function Vbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function Hbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function kJ(e,t){OJ.set(e.api,{provider:{api:e.api,stream:Vbe(e.api,e.stream),streamSimple:Hbe(e.api,e.streamSimple)},sourceId:t})}function Ube(e){return OJ.get(e)?.provider}var AJ=s(((e,t)=>{t.exports={}}));let jJ=null,MJ=null,NJ=null;const PJ=e=>import(e);typeof process<`u`&&(process.versions?.node||process.versions?.bun)&&(PJ(`node:fs`).then(e=>{jJ=e.existsSync}),PJ(`node:os`).then(e=>{MJ=e.homedir}),PJ(`node:path`).then(e=>{NJ=e.join}));let FJ=null;function IJ(e){if(process.versions?.bun&&!(typeof process>`u`)&&!(Object.keys({}).length>0)){if(FJ===null){FJ=new Map;try{let{readFileSync:e}=AJ(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&FJ.set(e.slice(0,t),e.slice(t+1))}}catch{}}return FJ.get(e)}}let LJ=null;function Wbe(){if(LJ===null){if(!jJ||!MJ||!NJ)return typeof process<`u`&&(process.versions?.node||process.versions?.bun)||(LJ=!1),!1;let e={}.GOOGLE_APPLICATION_CREDENTIALS||IJ(`GOOGLE_APPLICATION_CREDENTIALS`);LJ=jJ(e||NJ(MJ(),`.config`,`gcloud`,`application_default_credentials.json`))}return LJ}function Gbe(e){if(e===`github-copilot`)return[`COPILOT_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`,together:`TOGETHER_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 Kbe(e){let t=Gbe(e);if(!t)return;let n=t.filter(e=>!!{}[e]||!!IJ(e));return n.length>0?n:void 0}function RJ(e){let t=Kbe(e);if(t?.[0])return{}[t[0]]||IJ(t[0]);if(e===`google-vertex`){let e=Wbe(),t=!!({}.GOOGLE_CLOUD_PROJECT||{}.GCLOUD_PROJECT||IJ(`GOOGLE_CLOUD_PROJECT`)||IJ(`GCLOUD_PROJECT`)),n=!!({}.GOOGLE_CLOUD_LOCATION||IJ(`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||IJ(`AWS_PROFILE`)||IJ(`AWS_ACCESS_KEY_ID`)&&IJ(`AWS_SECRET_ACCESS_KEY`)||IJ(`AWS_BEARER_TOKEN_BEDROCK`)||IJ(`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`)||IJ(`AWS_CONTAINER_CREDENTIALS_FULL_URI`)||IJ(`AWS_WEB_IDENTITY_TOKEN_FILE`)))return`<authenticated>`}const qbe={openrouter:{"black-forest-labs/flux.2-flex":{id:`black-forest-labs/flux.2-flex`,name:`Black Forest Labs: FLUX.2 Flex`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-klein-4b":{id:`black-forest-labs/flux.2-klein-4b`,name:`Black Forest Labs: FLUX.2 Klein 4B`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-max":{id:`black-forest-labs/flux.2-max`,name:`Black Forest Labs: FLUX.2 Max`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"black-forest-labs/flux.2-pro":{id:`black-forest-labs/flux.2-pro`,name:`Black Forest Labs: FLUX.2 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"bytedance-seed/seedream-4.5":{id:`bytedance-seed/seedream-4.5`,name:`ByteDance Seed: Seedream 4.5`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"google/gemini-2.5-flash-image":{id:`google/gemini-2.5-flash-image`,name:`Google: Nano Banana (Gemini 2.5 Flash Image)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:.3,output:2.5,cacheRead:.03,cacheWrite:.08333333333333334}},"google/gemini-3-pro-image-preview":{id:`google/gemini-3-pro-image-preview`,name:`Google: Nano Banana Pro (Gemini 3 Pro Image Preview)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:2,output:12,cacheRead:.19999999999999998,cacheWrite:.375}},"google/gemini-3.1-flash-image-preview":{id:`google/gemini-3.1-flash-image-preview`,name:`Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0}},"openai/gpt-5-image":{id:`openai/gpt-5-image`,name:`OpenAI: GPT-5 Image`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:10,output:10,cacheRead:1.25,cacheWrite:0}},"openai/gpt-5-image-mini":{id:`openai/gpt-5-image-mini`,name:`OpenAI: GPT-5 Image Mini`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:2.5,output:2,cacheRead:.25,cacheWrite:0}},"openai/gpt-5.4-image-2":{id:`openai/gpt-5.4-image-2`,name:`OpenAI: GPT-5.4 Image 2`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`image`,`text`],output:[`image`,`text`],cost:{input:8,output:15,cacheRead:2,cacheWrite:0}},"openrouter/auto":{id:`openrouter/auto`,name:`Auto Router`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`text`,`image`],cost:{input:-1e6,output:-1e6,cacheRead:0,cacheWrite:0}},"recraft/recraft-v3":{id:`recraft/recraft-v3`,name:`Recraft: Recraft V3`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4":{id:`recraft/recraft-v4`,name:`Recraft: Recraft V4`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro":{id:`recraft/recraft-v4-pro`,name:`Recraft: Recraft V4 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-pro-vector":{id:`recraft/recraft-v4-pro-vector`,name:`Recraft: Recraft V4 Pro Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4-vector":{id:`recraft/recraft-v4-vector`,name:`Recraft: Recraft V4 Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1":{id:`recraft/recraft-v4.1`,name:`Recraft: Recraft V4.1`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro":{id:`recraft/recraft-v4.1-pro`,name:`Recraft: Recraft V4.1 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-pro-vector":{id:`recraft/recraft-v4.1-pro-vector`,name:`Recraft: Recraft V4.1 Pro Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility":{id:`recraft/recraft-v4.1-utility`,name:`Recraft: Recraft V4.1 Utility`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-utility-pro":{id:`recraft/recraft-v4.1-utility-pro`,name:`Recraft: Recraft V4.1 Utility Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"recraft/recraft-v4.1-vector":{id:`recraft/recraft-v4.1-vector`,name:`Recraft: Recraft V4.1 Vector`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast":{id:`sourceful/riverflow-v2-fast`,name:`Sourceful: Riverflow V2 Fast`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-fast-preview":{id:`sourceful/riverflow-v2-fast-preview`,name:`Sourceful: Riverflow V2 Fast Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-max-preview":{id:`sourceful/riverflow-v2-max-preview`,name:`Sourceful: Riverflow V2 Max Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-pro":{id:`sourceful/riverflow-v2-pro`,name:`Sourceful: Riverflow V2 Pro`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}},"sourceful/riverflow-v2-standard-preview":{id:`sourceful/riverflow-v2-standard-preview`,name:`Sourceful: Riverflow V2 Standard Preview`,api:`openrouter-images`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,input:[`text`,`image`],output:[`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0}}}},Jbe=new Map;for(let[e,t]of Object.entries(qbe)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);Jbe.set(e,n)}const Ybe=new Map;function Xbe(e,t){return(n,r,i)=>{if(n.api!==e)throw Error(`Mismatched api: ${n.api} expected ${e}`);return t(n,r,i)}}function Zbe(e,t){Ybe.set(e.api,{provider:{api:e.api,generateImages:Xbe(e.api,e.generateImages)},sourceId:t})}let zJ;function Qbe(e,t){return{api:e.api,provider:e.provider,model:e.id,output:[],stopReason:`error`,errorMessage:t instanceof Error?t.message:String(t),timestamp:Date.now()}}function $be(){return zJ||=import(`./openrouter-BzZrnZGs.js`).then(e=>e),zJ}const exe=async(e,t,n)=>{try{return await(await $be()).generateImagesOpenRouter(e,t,n)}catch(t){return Qbe(e,t)}};function txe(){Zbe({api:`openrouter-images`,generateImages:exe})}txe();const nxe={"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-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-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-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-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-haiku-4-5-20251001-v1:0":{id:`au.anthropic.claude-haiku-4-5-20251001-v1:0`,name:`Claude Haiku 4.5 (AU)`,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},"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-5-20250929-v1:0":{id:`au.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (AU)`,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},"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-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-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},"jp.anthropic.claude-opus-4-7":{id:`jp.anthropic.claude-opus-4-7`,name:`Claude Opus 4.7 (JP)`,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},"jp.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:`jp.anthropic.claude-sonnet-4-5-20250929-v1:0`,name:`Claude Sonnet 4.5 (JP)`,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},"jp.anthropic.claude-sonnet-4-6":{id:`jp.anthropic.claude-sonnet-4-6`,name:`Claude Sonnet 4.6 (JP)`,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},"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-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:16384},"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:16384},"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:16384},"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:16384},"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-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-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},"us.deepseek.r1-v1:0":{id:`us.deepseek.r1-v1:0`,name:`DeepSeek-R1 (US)`,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},"us.meta.llama4-maverick-17b-instruct-v1:0":{id:`us.meta.llama4-maverick-17b-instruct-v1:0`,name:`Llama 4 Maverick 17B Instruct (US)`,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},"us.meta.llama4-scout-17b-instruct-v1:0":{id:`us.meta.llama4-scout-17b-instruct-v1:0`,name:`Llama 4 Scout 17B Instruct (US)`,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},"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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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`,compat:{sendSessionAffinityHeaders:!0,supportsEagerToolInputStreaming:!1,supportsCacheControlOnTools:!1,supportsLongCacheRetention:!1},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.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.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-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,minimal:`low`},input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:264e3,maxTokens:64e3},"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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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,minimal:`low`,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:.01,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":{id:`gemini-3.1-flash-lite`,name:`Gemini 3.1 Flash Lite`,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:0},contextWindow:1048576,maxTokens:65536},"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:0},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:`none`},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:`none`,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:`none`,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:`none`,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:`none`,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:`none`,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:`none`,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.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.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:1.75,output:14,cacheRead:.175,cacheWrite:0},contextWindow:272e3,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},"deepseek-v4-flash-free":{id:`deepseek-v4-flash-free`,name:`DeepSeek V4 Flash Free`,api:`openai-completions`,provider:`opencode`,baseUrl:`https://opencode.ai/zen/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:`max`},input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:2e5,maxTokens:128e3},"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},"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},"qwen3.6-plus-free":{id:`qwen3.6-plus-free`,name:`Qwen3.6 Plus Free`,api:`anthropic-messages`,provider:`opencode`,baseUrl:`https://opencode.ai/zen`,reasoning:!0,input:[`text`,`image`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},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:`anthropic-messages`,provider:`opencode-go`,baseUrl:`https://opencode.ai/zen/go`,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-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-opus-4.7-fast":{id:`anthropic/claude-opus-4.7-fast`,name:`Anthropic: Claude Opus 4.7 (Fast)`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,thinkingLevelMap:{xhigh:`xhigh`},input:[`text`,`image`],cost:{input:30,output:150,cacheRead:3,cacheWrite:37.5},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-large-thinking:free":{id:`arcee-ai/trinity-large-thinking:free`,name:`Arcee AI: Trinity Large Thinking (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:8e4},"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:131072,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:131072,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:.21,output:.7899999999999999,cacheRead:.13,cacheWrite:0},contextWindow:163840,maxTokens:32768},"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:163840,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:.112,output:.224,cacheRead:.022,cacheWrite:0},contextWindow:1048576,maxTokens:4096},"deepseek/deepseek-v4-flash:free":{id:`deepseek/deepseek-v4-flash:free`,name:`DeepSeek: DeepSeek V4 Flash (free)`,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:0,output:0,cacheRead:0,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":{id:`google/gemini-3.1-flash-lite`,name:`Google: Gemini 3.1 Flash Lite`,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-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:1048756,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:.12,output:.37,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,thinkingLevelMap:{off:null},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:.01,output:.03,cacheRead:.002,cacheWrite:0},contextWindow:262144,maxTokens:32768},"inclusionai/ring-2.6-1t":{id:`inclusionai/ring-2.6-1t`,name:`inclusionAI: Ring-2.6-1T`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.075,output:.625,cacheRead:.015,cacheWrite:0},contextWindow:262144,maxTokens:65536},"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:131072,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:131072,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:1e7,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:204800,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:204800,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:0,cacheWrite:0},contextWindow:204800,maxTokens:196608},"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:204800,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:.27899999999999997,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:204800,maxTokens:131072},"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/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:.6,output:2.5,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:0,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:.73,output:3.49,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:262142},"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.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:1e6,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:1e6,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:131072,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:131072,maxTokens:32768},"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/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:.09999999999999999,output:.24,cacheRead:0,cacheWrite:0},contextWindow:131702,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:262144,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:131072,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:.28,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:16384},"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:131072,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:1048576,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:1048576,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:262144,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:262144,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:262144,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:256e3,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:256e3,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:.3,output:1.7999999999999998,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:.1875,output:1.125,cacheRead:0,cacheWrite:.234375},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":{id:`tencent/hy3-preview`,name:`Tencent: Hy3 preview`,api:`openai-completions`,provider:`openrouter`,baseUrl:`https://openrouter.ai/api/v1`,reasoning:!0,input:[`text`],cost:{input:.06599999999999999,output:.26,cacheRead:.029,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},"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-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},"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:.09999999999999999,output:.3,cacheRead:.01,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:16384},"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:.43,output:1.74,cacheRead:.08,cacheWrite:0},contextWindow:202752,maxTokens:131072},"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:.39999999999999997,output:1.75,cacheRead:.08,cacheWrite:0},contextWindow:202752,maxTokens:131072},"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:.98,output:3.08,cacheRead:.182,cacheWrite:0},contextWindow:202752,maxTokens:4096},"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:.73,output:3.49,cacheRead:.25,cacheWrite:0},contextWindow:262144,maxTokens:262142},"~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}},together:{"MiniMaxAI/MiniMax-M2.5":{id:`MiniMaxAI/MiniMax-M2.5`,name:`MiniMax-M2.5`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null},input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:204800,maxTokens:131072},"MiniMaxAI/MiniMax-M2.7":{id:`MiniMaxAI/MiniMax-M2.7`,name:`MiniMax-M2.7`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!0,thinkingLevelMap:{off:null,minimal:null,low:null,medium:null},input:[`text`],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:0},contextWindow:202752,maxTokens:131072},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{id:`Qwen/Qwen3-235B-A22B-Instruct-2507-tput`,name:`Qwen3 235B A22B Instruct 2507 FP8`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.2,output:.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{id:`Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8`,name:`Qwen3 Coder 480B A35B Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:2,output:2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3-Coder-Next-FP8":{id:`Qwen/Qwen3-Coder-Next-FP8`,name:`Qwen3 Coder Next FP8`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.5,output:1.2,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"Qwen/Qwen3.5-397B-A17B":{id:`Qwen/Qwen3.5-397B-A17B`,name:`Qwen3.5 397B A17B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.6,output:3.6,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:13e4},"Qwen/Qwen3.6-Plus":{id:`Qwen/Qwen3.6-Plus`,name:`Qwen3.6 Plus`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.5,output:3,cacheRead:0,cacheWrite:0},contextWindow:1e6,maxTokens:5e5},"deepseek-ai/DeepSeek-V3":{id:`deepseek-ai/DeepSeek-V3`,name:`DeepSeek V3`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:1.25,output:1.25,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"deepseek-ai/DeepSeek-V3-1":{id:`deepseek-ai/DeepSeek-V3-1`,name:`DeepSeek V3.1`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:.6,output:1.7,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"deepseek-ai/DeepSeek-V4-Pro":{id:`deepseek-ai/DeepSeek-V4-Pro`,name:`DeepSeek V4 Pro`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null,high:`high`,xhigh:null},input:[`text`],cost:{input:2.1,output:4.4,cacheRead:.2,cacheWrite:0},contextWindow:512e3,maxTokens:384e3},"essentialai/Rnj-1-Instruct":{id:`essentialai/Rnj-1-Instruct`,name:`Rnj-1 Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:.15,output:.15,cacheRead:0,cacheWrite:0},contextWindow:32768,maxTokens:32768},"google/gemma-4-31B-it":{id:`google/gemma-4-31B-it`,name:`Gemma 4 31B Instruct`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.2,output:.5,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:131072},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{id:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,name:`Llama 3.3 70B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1},reasoning:!1,input:[`text`],cost:{input:.88,output:.88,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"moonshotai/Kimi-K2.5":{id:`moonshotai/Kimi-K2.5`,name:`Kimi K2.5`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:.5,output:2.8,cacheRead:0,cacheWrite:0},contextWindow:262144,maxTokens:262144},"moonshotai/Kimi-K2.6":{id:`moonshotai/Kimi-K2.6`,name:`Kimi K2.6`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`,`image`],cost:{input:1.2,output:4.5,cacheRead:.2,cacheWrite:0},contextWindow:262144,maxTokens:131e3},"openai/gpt-oss-120b":{id:`openai/gpt-oss-120b`,name:`GPT OSS 120B`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!0,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`openai`},reasoning:!0,thinkingLevelMap:{off:null,minimal:null},input:[`text`],cost:{input:.15,output:.6,cacheRead:0,cacheWrite:0},contextWindow:131072,maxTokens:131072},"zai-org/GLM-5.1":{id:`zai-org/GLM-5.1`,name:`GLM-5.1`,api:`openai-completions`,provider:`together`,baseUrl:`https://api.together.ai/v1`,compat:{supportsStore:!1,supportsDeveloperRole:!1,supportsReasoningEffort:!1,maxTokensField:`max_tokens`,supportsStrictMode:!1,supportsLongCacheRetention:!1,thinkingFormat:`together`},reasoning:!0,thinkingLevelMap:{minimal:null,low:null,medium:null},input:[`text`],cost:{input:1.4,output:4.4,cacheRead:0,cacheWrite:0},contextWindow:202752,maxTokens:131072}},"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-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":{id:`google/gemini-3.1-flash-lite`,name:`Gemini 3.1 Flash Lite`,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-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 20B`,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-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:1e6,maxTokens:1e6},"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:1e6,maxTokens:1e6},"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},"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-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:!1,input:[`text`],cost:{input:.2,output:1.5,cacheRead:.02,cacheWrite:0},contextWindow:32768,maxTokens:8192},"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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi`,baseUrl:`https://api.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-ams`,baseUrl:`https://token-plan-ams.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-cn`,baseUrl:`https://token-plan-cn.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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:`openai-completions`,provider:`xiaomi-token-plan-sgp`,baseUrl:`https://token-plan-sgp.xiaomimimo.com/v1`,compat:{requiresReasoningContentOnAssistantMessages:!0,thinkingFormat:`deepseek`},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}}},BJ=new Map;for(let[e,t]of Object.entries(nxe)){let n=new Map;for(let[e,r]of Object.entries(t))n.set(e,r);BJ.set(e,n)}function VJ(e,t){return BJ.get(e)?.get(t)}function HJ(){return Array.from(BJ.keys())}function UJ(e){let t=BJ.get(e);return t?Array.from(t.values()):[]}function WJ(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 GJ=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`];function KJ(e){return e.reasoning?GJ.filter(t=>{let n=e.thinkingLevelMap?.[t];return n===null?!1:t===`xhigh`?n!==void 0:!0}):[`off`]}function qJ(e,t){let n=KJ(e);if(n.includes(t))return t;let r=GJ.indexOf(t);if(r===-1)return n[0]??`off`;for(let e=r;e<GJ.length;e++){let t=GJ[e];if(n.includes(t))return t}for(let e=r-1;e>=0;e--){let t=GJ[e];if(n.includes(t))return t}return n[0]??`off`}var rxe=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}},JJ=class extends rxe{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 YJ(){return new JJ}const ixe=e=>import(e);let XJ,ZJ,QJ,$J,eY,tY,nY,rY,iY;function aY(e,t){(async()=>{for await(let n of t)e.push(n);e.end()})()}function oY(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 sY(e){return(t,n,r)=>{let i=new JJ;return e().then(e=>{aY(i,e.stream(t,n,r))}).catch(e=>{let n=oY(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function cY(e){return(t,n,r)=>{let i=new JJ;return e().then(e=>{aY(i,e.streamSimple(t,n,r))}).catch(e=>{let n=oY(t,e);i.push({type:`error`,reason:`error`,error:n}),i.end(n)}),i}}function lY(){return XJ||=import(`./anthropic-DuyYNsVy.js`).then(e=>{let t=e;return{stream:t.streamAnthropic,streamSimple:t.streamSimpleAnthropic}}),XJ}function uY(){return ZJ||=import(`./azure-openai-responses-1KMjp9lB.js`).then(e=>{let t=e;return{stream:t.streamAzureOpenAIResponses,streamSimple:t.streamSimpleAzureOpenAIResponses}}),ZJ}function dY(){return QJ||=import(`./google-CBf6hEVr.js`).then(e=>{let t=e;return{stream:t.streamGoogle,streamSimple:t.streamSimpleGoogle}}),QJ}function fY(){return $J||=import(`./google-vertex-BV9T7ZAt.js`).then(e=>{let t=e;return{stream:t.streamGoogleVertex,streamSimple:t.streamSimpleGoogleVertex}}),$J}function pY(){return eY||=import(`./mistral-W4QJJdzV.js`).then(e=>{let t=e;return{stream:t.streamMistral,streamSimple:t.streamSimpleMistral}}),eY}function mY(){return tY||=import(`./openai-codex-responses-Bm_0qhvH.js`).then(e=>{let t=e;return{stream:t.streamOpenAICodexResponses,streamSimple:t.streamSimpleOpenAICodexResponses}}),tY}function hY(){return nY||=Promise.resolve().then(()=>TNe).then(e=>{let t=e;return{stream:t.streamOpenAICompletions,streamSimple:t.streamSimpleOpenAICompletions}}),nY}function gY(){return rY||=import(`./openai-responses-ZzUTala8.js`).then(e=>{let t=e;return{stream:t.streamOpenAIResponses,streamSimple:t.streamSimpleOpenAIResponses}}),rY}function _Y(){return iY||=ixe(`./amazon-bedrock.js`).then(e=>{let t=e;return{stream:t.streamBedrock,streamSimple:t.streamSimpleBedrock}}),iY}const vY=sY(lY),yY=cY(lY),axe=sY(uY),oxe=cY(uY),sxe=sY(dY),cxe=cY(dY),lxe=sY(fY),uxe=cY(fY),dxe=sY(pY),fxe=cY(pY),bY=sY(mY),xY=cY(mY),SY=sY(hY),CY=cY(hY),wY=sY(gY),TY=cY(gY),pxe=sY(_Y),mxe=cY(_Y);function hxe(){kJ({api:`anthropic-messages`,stream:vY,streamSimple:yY}),kJ({api:`openai-completions`,stream:SY,streamSimple:CY}),kJ({api:`mistral-conversations`,stream:dxe,streamSimple:fxe}),kJ({api:`openai-responses`,stream:wY,streamSimple:TY}),kJ({api:`azure-openai-responses`,stream:axe,streamSimple:oxe}),kJ({api:`openai-codex-responses`,stream:bY,streamSimple:xY}),kJ({api:`google-generative-ai`,stream:sxe,streamSimple:cxe}),kJ({api:`google-vertex`,stream:lxe,streamSimple:uxe}),kJ({api:`bedrock-converse-stream`,stream:pxe,streamSimple:mxe})}hxe();const EY=new Set;function gxe(e){return EY.add(e),()=>{EY.delete(e)}}function _xe(e){let t=Ube(e);if(!t)throw Error(`No API provider registered for api: ${e}`);return t}function DY(e,t,n){return _xe(e.api).streamSimple(e,t,n)}async function OY(e,t,n){return DY(e,t,n).result()}function kY(e){return e instanceof Error?e.message||e.name:typeof e==`string`?e:String(e)}function vxe(e){if(!(e instanceof Error))return{name:`ThrownValue`,message:kY(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 yxe(e,t,n){return{type:e,timestamp:Date.now(),error:vxe(t),details:n}}function bxe(e,t){e.diagnostics=[...e.diagnostics??[],t]}var AY=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})),jY=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=AY();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return r.Allow}}),n(AY(),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&&`
4120
4120
  \r `.includes(e[o]);)o++};return l()};e.parse=o}))();const xxe=new Set([`"`,`\\`,`/`,`b`,`f`,`n`,`r`,`t`,`u`]);function Sxe(e){let t=e.codePointAt(0);return t!==void 0&&t>=0&&t<=31}function Cxe(e){switch(e){case`\b`:return`\\b`;case`\f`:return`\\f`;case`
4121
4121
  `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;default:return`\\u${e.codePointAt(0)?.toString(16).padStart(4,`0`)??`0000`}`}}function MY(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(xxe.has(n)){t+=`\\${n}`,r+=1;continue}t+=`\\\\`;continue}t+=Sxe(i)?Cxe(i):i}return t}function NY(e){try{return JSON.parse(e)}catch(t){let n=MY(e);if(n!==e)return JSON.parse(n);throw t}}function PY(e){if(!e||e.trim()===``)return{};try{return NY(e)}catch{try{return(0,jY.parse)(e)??{}}catch{try{return(0,jY.parse)(MY(e))??{}}catch{return{}}}}}const wxe=[/prompt is too long/i,/request_too_large/i,/input is too long for requested model/i,/exceeds the context window/i,/exceeds (?:the )?(?:model'?s )?maximum context length of [\d,]+ tokens?/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,/input \(\d+ tokens\) is longer than the model'?s context length \(\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],Txe=[/^(Throttling error|Service unavailable):/i,/rate limit/i,/too many requests/i];function Exe(e,t){return!!(e.stopReason===`error`&&e.errorMessage&&!Txe.some(t=>t.test(e.errorMessage))&&wxe.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 Dxe(e){return xz(e)&&Z(e,`check`)&&Z(e,`errors`)&&hz(e.check)&&hz(e.errors)}function FY(e){return Z(e,`~guard`)&&Dxe(e[`~guard`])}function IY(e){return Z(e,`~refine`)&&uz(e[`~refine`])&&Fz(e[`~refine`],0,e=>xz(e)&&Z(e,`check`)&&Z(e,`error`)&&hz(e.check)&&hz(e.error))}function LY(e){return xz(e)&&!uz(e)}function RY(e){return pz(e)}function zY(e){return LY(e)||RY(e)}function BY(e){return Z(e,`additionalItems`)&&zY(e.additionalItems)}function VY(e){return Z(e,`additionalProperties`)&&zY(e.additionalProperties)}function HY(e){return Z(e,`allOf`)&&uz(e.allOf)&&e.allOf.every(e=>zY(e))}function UY(e){return Z(e,`$anchor`)&&Sz(e.$anchor)}function WY(e){return Z(e,`anyOf`)&&uz(e.anyOf)&&e.anyOf.every(e=>zY(e))}function GY(e){return Z(e,`const`)}function KY(e){return Z(e,`contains`)&&zY(e.contains)}function qY(e){return Z(e,`default`)}function JY(e){return Z(e,`dependencies`)&&xz(e.dependencies)&&Object.values(e.dependencies).every(e=>zY(e)||uz(e)&&e.every(e=>Sz(e)))}function YY(e){return Z(e,`dependentRequired`)&&xz(e.dependentRequired)&&Object.values(e.dependentRequired).every(e=>uz(e)&&e.every(e=>Sz(e)))}function XY(e){return Z(e,`dependentSchemas`)&&xz(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(e=>zY(e))}function ZY(e){return Z(e,`$dynamicAnchor`)&&Sz(e.$dynamicAnchor)}function QY(e){return Z(e,`$dynamicRef`)&&Sz(e.$dynamicRef)}function $Y(e){return Z(e,`else`)&&zY(e.else)}function eX(e){return Z(e,`enum`)&&uz(e.enum)}function tX(e){return Z(e,`exclusiveMaximum`)&&(yz(e.exclusiveMaximum)||fz(e.exclusiveMaximum))}function nX(e){return Z(e,`exclusiveMinimum`)&&(yz(e.exclusiveMinimum)||fz(e.exclusiveMinimum))}function rX(e){return Z(e,`format`)&&Sz(e.format)}function iX(e){return Z(e,`$id`)&&Sz(e.$id)}function aX(e){return Z(e,`if`)&&zY(e.if)}function oX(e){return Z(e,`items`)&&(zY(e.items)||uz(e.items)&&e.items.every(e=>zY(e)))}function sX(e){return oX(e)&&uz(e.items)}function cX(e){return Z(e,`maximum`)&&(yz(e.maximum)||fz(e.maximum))}function lX(e){return Z(e,`maxContains`)&&yz(e.maxContains)}function uX(e){return Z(e,`maxItems`)&&yz(e.maxItems)}function dX(e){return Z(e,`maxLength`)&&yz(e.maxLength)}function fX(e){return Z(e,`maxProperties`)&&yz(e.maxProperties)}function pX(e){return Z(e,`minimum`)&&(yz(e.minimum)||fz(e.minimum))}function mX(e){return Z(e,`minContains`)&&yz(e.minContains)}function hX(e){return Z(e,`minItems`)&&yz(e.minItems)}function gX(e){return Z(e,`minLength`)&&yz(e.minLength)}function _X(e){return Z(e,`minProperties`)&&yz(e.minProperties)}function vX(e){return Z(e,`multipleOf`)&&(yz(e.multipleOf)||fz(e.multipleOf))}function yX(e){return Z(e,`not`)&&zY(e.not)}function bX(e){return Z(e,`oneOf`)&&uz(e.oneOf)&&e.oneOf.every(e=>zY(e))}function xX(e){return Z(e,`pattern`)&&(Sz(e.pattern)||e.pattern instanceof RegExp)}function SX(e){return Z(e,`patternProperties`)&&xz(e.patternProperties)&&Object.values(e.patternProperties).every(e=>zY(e))}function CX(e){return Z(e,`prefixItems`)&&uz(e.prefixItems)&&e.prefixItems.every(e=>zY(e))}function wX(e){return Z(e,`properties`)&&xz(e.properties)&&Object.values(e.properties).every(e=>zY(e))}function TX(e){return Z(e,`propertyNames`)&&(xz(e.propertyNames)||zY(e.propertyNames))}function Oxe(e){return Z(e,`$recursiveAnchor`)&&pz(e.$recursiveAnchor)}function EX(e){return Oxe(e)&&X(e.$recursiveAnchor,!0)}function DX(e){return Z(e,`$recursiveRef`)&&Sz(e.$recursiveRef)}function OX(e){return Z(e,`$ref`)&&Sz(e.$ref)}function kX(e){return Z(e,`required`)&&uz(e.required)&&e.required.every(e=>Sz(e))}function AX(e){return Z(e,`then`)&&zY(e.then)}function jX(e){return Z(e,`type`)&&(Sz(e.type)||uz(e.type)&&e.type.every(e=>Sz(e)))}function MX(e){return Z(e,`uniqueItems`)&&pz(e.uniqueItems)}function NX(e){return Z(e,`unevaluatedItems`)&&zY(e.unevaluatedItems)}function PX(e){return Z(e,`unevaluatedProperties`)&&zY(e.unevaluatedProperties)}function kxe(e){return NX(e)||PX(e)||Bz(e).some(t=>FX(e[t]))}function Axe(e){return e.some(e=>FX(e))}function FX(e){return uz(e)?Axe(e):xz(e)?kxe(e):!1}function jxe(e,t){return FX(t)||Bz(e).some(t=>FX(e[t]))}var Mxe=class{constructor(e){this.hasUnevaluated=e}UseUnevaluated(){return this.hasUnevaluated}Push(){return EB(OB(`context`,`Push`),[])}Pop(){return EB(OB(`context`,`Pop`),[])}AddIndex(e){return EB(OB(`context`,`AddIndex`),[e])}AddKey(e){return EB(OB(`context`,`AddKey`),[e])}Merge(e){return EB(OB(`context`,`Merge`),[e])}},IX=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}},LX=class extends IX{constructor(e){super(),this.callback=e}AddError(e){return this.callback(e),!1}},RX=class extends LX{constructor(){super(e=>this.errors.push(e)),this.errors=[]}AddError(e){return this.errors.push(e),!1}GetErrors(){return this.errors}};const zX={identifier:`External`,variables:[]};function BX(e){let t=`External[${zX.variables.length}]`;return zX.variables.push(e),t}function Nxe(){zX.variables=[]}function Pxe(){return{...zX}}function Fxe(e,t,n,r){return EB(OB(OB(BX(n),`~guard`),`check`),[r])}function Ixe(e,t,n,r){return n[`~guard`].check(r)}function Lxe(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 Rxe(e,t,n,r){return yB(BX(n[`~refine`].map(e=>e)),kB(0),[`refinement`,`_`],EB(OB(`refinement`,`check`),[r]))}function zxe(e,t,n,r){return Fz(n[`~refine`],0,(e,t)=>e.check(r))}function Bxe(e,t,n,r,i,a){return Iz(i[`~refine`],0,(e,i)=>e.check(a)||t.AddError({keyword:`~refine`,schemaPath:n,instancePath:r,params:{index:i,message:e.error(a)}}))}let Vxe=0;function VX(){return`var_${Vxe++}`}function HX(e){return oX(e)&&uz(e.items)}function Hxe(e,t,n,r){if(!HX(n))return kB(!0);let[i,a]=[VX(),VX()],o=nQ(e,t,n.additionalItems,i),s=mB(a,kB(n.items.length)),c=t.AddIndex(a),l=t.UseUnevaluated()?Yz(s,Jz(o,c)):Yz(s,o);return EB(OB(r,`every`),[TB([i,a],l)])}function Uxe(e,t,n,r){return HX(n)?r.every((r,i)=>Ez(i,n.items.length)||iQ(e,t,n.additionalItems,r)&&t.AddIndex(i)):!0}function Wxe(e,t,n,r,i,a){return HX(i)?a.every((a,o)=>{let s=`${n}/additionalItems`,c=`${r}/${o}`;return Ez(o,i.items.length)||oQ(e,t,s,c,i.additionalItems,a)&&t.AddIndex(o)}):!0}function Gxe(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}$`}function UX(e){let t=[];return SX(e)&&t.push(...Bz(e.patternProperties)),wX(e)&&t.push(...Bz(e.properties).map(Gxe)),X(t.length,0)?`(?!)`:`(${t.join(`|`)})`}function Kxe(e,t,n){return kX(t)&&wX(t)&&!SX(t)&&X(t.additionalProperties,!1)&&X(Bz(t.properties).length,t.required.length)}function qxe(e,t,n){return fB(OB(EB(OB(`Object`,`getOwnPropertyNames`),[n]),`length`),kB(t.required.length))}function Jxe(e,t,n,r){let[i,a]=[VX(),VX()],o=BX(new RegExp(UX(n))),s=nQ(e,t,n.additionalProperties,`${r}[${i}]`),c=EB(OB(o,`test`),[i]),l=t.AddKey(i),u=t.UseUnevaluated()?Yz(c,Jz(s,l)):Yz(c,s);return yB(xB(r),kB(0),[i,a],u)}function Yxe(e,t,n,r){return Kxe(t,n,r)?qxe(t,n,r):Jxe(e,t,n,r)}function Xxe(e,t,n,r){let i=new RegExp(UX(n));return Fz(Bz(r),0,(a,o)=>i.test(a)||iQ(e,t,n.additionalProperties,r[a])&&t.AddKey(a))}function Zxe(e,t,n,r,i,a){let o=new RegExp(UX(i)),s=[];return Iz(Bz(a),0,(c,l)=>{let u=`${n}/additionalProperties`,d=`${r}/${c}`,f=new RX,p=o.test(c)||oQ(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 WX(e,t,n,r,i){let a=MB(`results`,`[]`),o=n.map((e,t)=>MB(`context_${t}`,DB(`CheckContext`,[]))),s=n.map((n,i)=>MB(`condition_${i}`,EB(TB([`context`],rQ(e,t,n,r)),[`context_${i}`]))),c=n.map((e,t)=>NB(`condition_${t}`,EB(OB(`results`,`push`),[`context_${t}`]))),l=PB(Jz(i,t.Merge(`results`)));return EB(TB([],jB([a,...o,...s,...c,l])),[])}function Qxe(e,t,n,r){return WX(e,t,n.allOf,r,fB(OB(`results`,`length`),kB(n.allOf.length)))}function $xe(e,t,n,r){return FB(n.allOf.map(n=>rQ(e,t,n,r)))}function eSe(e,t,n,r){return t.UseUnevaluated()?Qxe(e,t,n,r):$xe(e,t,n,r)}function tSe(e,t,n,r){let i=n.allOf.reduce((t,n)=>{let i=new IX;return aQ(e,i,n,r)?[...t,i]:t},[]);return X(i.length,n.allOf.length)&&t.Merge(i)}function nSe(e,t,n,r,i,a){let o=[],s=i.allOf.reduce((t,i,s)=>{let c=`${n}/allOf/${s}`,l=new RX,u=sQ(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 rSe(e,t,n,r){return WX(e,t,n.anyOf,r,pB(OB(`results`,`length`),kB(0)))}function iSe(e,t,n,r){return IB(n.anyOf.map(n=>rQ(e,t,n,r)))}function aSe(e,t,n,r){return t.UseUnevaluated()?rSe(e,t,n,r):iSe(e,t,n,r)}function oSe(e,t,n,r){let i=n.anyOf.reduce((t,n)=>{let i=new IX;return aQ(e,i,n,r)?[...t,i]:t},[]);return Tz(i.length,0)&&t.Merge(i)}function sSe(e,t,n,r,i,a){let o=[],s=i.anyOf.reduce((t,i,s)=>{let c=new RX,l=sQ(e,c,`${n}/anyOf/${s}`,r,i,a);return l||o.push(c),l?[...t,c]:t},[]),c=Tz(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 cSe(e,t,n,r){return kB(!!n)}function GX(e,t,n,r){return n}function lSe(e,t,n,r,i,a){return GX(e,t,i,a)||t.AddError({keyword:`boolean`,schemaPath:n,instancePath:r,params:{}})}function uSe(e,t,n,r){return jz(n.const)?fB(r,kB(n.const)):CB(r,BX(n.const))}function KX(e,t,n,r){return jz(n.const)?X(r,n.const):Gz(r,n.const)}function dSe(e,t,n,r,i,a){return KX(e,t,i,a)||t.AddError({keyword:`const`,schemaPath:n,instancePath:r,params:{allowedValue:i.const}})}function qX(e){return!(mX(e)&&X(e.minContains,0))}function fSe(e,t,n,r){if(!qX(n))return kB(!0);let i=VX();return Jz(Xz(fB(OB(r,`length`),kB(0))),EB(OB(r,`some`),[TB([i],rQ(e,t,n.contains,i))]))}function JX(e,t,n,r){return qX(n)?!X(r.length,0)&&r.some(r=>aQ(e,t,n.contains,r)):!0}function pSe(e,t,n,r,i,a){return JX(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:1}})}function mSe(e,t,n,r){return Yz(fB(OB(xB(r),`length`),kB(0)),FB(zz(n.dependencies).map(([n,i])=>{let a=Xz(SB(r,kB(n))),o=rQ(e,t,i,r);return Yz(a,uz(i)?(e=>FB(e.map(e=>SB(r,kB(e)))))(i):o)})))}function hSe(e,t,n,r){let i=X(Bz(r).length,0),a=Fz(zz(n.dependencies),0,([n,i])=>!Z(r,n)||(uz(i)?i.every(e=>Z(r,e)):aQ(e,t,i,r)));return i||a}function gSe(e,t,n,r,i,a){let o=X(Bz(a).length,0),s=Iz(zz(i.dependencies),0,([i,o])=>{let s=`${n}/dependencies/${i}`;return!Z(a,i)||(uz(o)?o.every(e=>Z(a,e)||t.AddError({keyword:`dependencies`,schemaPath:n,instancePath:r,params:{property:i,dependencies:o}})):sQ(e,t,s,r,o,a))});return o||s}function _Se(e,t,n,r){return Yz(fB(OB(xB(r),`length`),kB(0)),FB(zz(n.dependentRequired).map(([e,t])=>Yz(Xz(SB(r,kB(e))),FB(t.map(e=>SB(r,kB(e))))))))}function vSe(e,t,n,r){let i=X(Bz(r).length,0),a=Fz(zz(n.dependentRequired),0,([e,t])=>!Z(r,e)||t.every(e=>Z(r,e)));return i||a}function ySe(e,t,n,r,i,a){let o=X(Bz(a).length,0),s=Iz(zz(i.dependentRequired),0,([e,i])=>!Z(a,e)||Iz(i,0,o=>Z(a,o)||t.AddError({keyword:`dependentRequired`,schemaPath:n,instancePath:r,params:{property:e,dependencies:i}})));return o||s}function bSe(e,t,n,r){return Yz(fB(OB(xB(r),`length`),kB(0)),FB(zz(n.dependentSchemas).map(([n,i])=>Yz(Xz(SB(r,kB(n))),rQ(e,t,i,r)))))}function xSe(e,t,n,r){let i=X(Bz(r).length,0),a=Fz(zz(n.dependentSchemas),0,([n,i])=>!Z(r,n)||aQ(e,t,i,r));return i||a}function SSe(e,t,n,r,i,a){let o=X(Bz(a).length,0),s=Iz(zz(i.dependentSchemas),0,([i,o])=>{let s=`${n}/dependentSchemas/${i}`;return!Z(a,i)||sQ(e,t,s,r,o,a)});return o||s}function CSe(e,t,n,r){return lQ(e,t,e.DynamicRef(n)??!1,r)}function wSe(e,t,n,r){let i=e.DynamicRef(n)??!1;return zY(i)&&aQ(e,t,i,r)}function TSe(e,t,n,r,i,a){let o=e.DynamicRef(i)??!1;return zY(o)&&sQ(e,t,`#`,r,o,a)}function ESe(e,t,n,r){return IB(n.enum.map(e=>jz(e)?fB(r,kB(e)):CB(r,BX(e))))}function YX(e,t,n,r){return n.enum.some(e=>jz(e)?X(r,e):Gz(r,e))}function DSe(e,t,n,r,i,a){return YX(e,t,i,a)||t.AddError({keyword:`enum`,schemaPath:n,instancePath:r,params:{allowedValues:i.enum}})}function OSe(e,t,n,r){return mB(r,kB(n.exclusiveMaximum))}function XX(e,t,n,r){return Ez(r,n.exclusiveMaximum)}function kSe(e,t,n,r,i,a){return XX(e,t,i,a)||t.AddError({keyword:`exclusiveMaximum`,schemaPath:n,instancePath:r,params:{comparison:`<`,limit:i.exclusiveMaximum}})}function ASe(e,t,n,r){return pB(r,kB(n.exclusiveMinimum))}function ZX(e,t,n,r){return Tz(r,n.exclusiveMinimum)}function jSe(e,t,n,r,i,a){return ZX(e,t,i,a)||t.AddError({keyword:`exclusiveMinimum`,schemaPath:n,instancePath:r,params:{comparison:`>`,limit:i.exclusiveMinimum}})}const MSe=[0,31,28,31,30,31,30,31,31,30,31,30,31],NSe=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function PSe(e){return e%4==0&&(e%100!=0||e%400==0)}function QX(e){let t=NSe.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&&PSe(n)?29:MSe[r])}const FSe=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function $X(e,t=!0){let n=FSe.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 eZ(e,t=!0){let n=e.split(/T/i);return n.length===2&&QX(n[0])&&$X(n[1],t)}const ISe=/^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 tZ(e){return ISe.test(e)}const LSe=/^(?!.*\.\.)[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 nZ(e){return LSe.test(e)}function RSe(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 zSe(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=RSe(r-a,l,a===0),n+=Math.floor(r/l),r%=l,t.splice(r,0,n),r++}return globalThis.String.fromCodePoint(...t)}function BSe(e){return/\p{Mn}/u.test(String.fromCodePoint(e))}function VSe(e){return/\p{Mc}/u.test(String.fromCodePoint(e))}function HSe(e){return/\p{Me}/u.test(String.fromCodePoint(e))}function USe(e){return BSe(e)||VSe(e)||HSe(e)}const WSe=new Set([1600,2042,12334,12335,12337,12338,12339,12340,12341,12347]),GSe=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 KSe(e){return/\p{Script=Greek}/u.test(String.fromCodePoint(e))}function qSe(e){return/\p{Script=Hebrew}/u.test(String.fromCodePoint(e))}function JSe(e){return/\p{Script=Hiragana}/u.test(String.fromCodePoint(e))}function YSe(e){return/\p{Script=Katakana}/u.test(String.fromCodePoint(e))}function XSe(e){return/\p{Script=Han}/u.test(String.fromCodePoint(e))}function ZSe(e){return e>=1632&&e<=1641}function QSe(e){return e>=1776&&e<=1785}function $Se(e){return GSe.has(e)}function rZ(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||USe(t[0]))return!1;let r=!1,i=!1,a=!1;for(let e=0;e<n;e++){let n=t[e];if(WSe.has(n))return!1;(JSe(n)||YSe(n)||XSe(n))&&(r=!0),ZSe(n)&&(i=!0),QSe(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||!KSe(s))return!1;break;case 1523:case 1524:if(o===void 0||!qSe(o))return!1;break;case 8205:if(o===void 0||!$Se(o))return!1;break;case 12539:break}}return!(e.includes(`・`)&&!r||i&&a)}function eCe(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 iZ(e){return e.toLowerCase().startsWith(`xn--`)}function aZ(e){try{return rZ(zSe(e.slice(4)))}catch{return!1}}function tCe(e){return e.length===0||e.length>63?!1:iZ(e)?aZ(e):rZ(e)}function nCe(e){return e.length===0||e.length>63?!1:iZ(e)?aZ(e):eCe(e)}function oZ(e){if(e.length===0||e.length>253||e.charCodeAt(e.length-1)===46)return!1;for(let t of e.split(`.`))if(!nCe(t))return!1;return!0}const rCe=/^(?!.*\.\.)[\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 sZ(e){return rCe.test(e)}function cZ(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(!tCe(e))return!1;return!0}function lZ(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 uZ(e){return lZ(e,0,e.length)}function iCe(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function dZ(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&&iCe(e.charCodeAt(i));)i++,a++;if(a===0)return!1;let s=e.charCodeAt(i);if(s===46){if(!lZ(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 fZ(e){try{return new URL(e,`http://example.com`),!0}catch{return!1}}function pZ(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))?fZ(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:fZ(e)}function mZ(e){try{return new URL(e),!0}catch{return!1}}const aCe=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function hZ(e){return aCe.test(e)}const oCe=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function gZ(e){return oCe.test(e)}function _Z(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}const sCe=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function vZ(e){return sCe.test(e)}const cCe=/^(?!.*[^\x00-\x7F])(?!.*\\)(?:(?:[a-z][a-z0-9+\-.]*:)?(?:\/\/[^\s[\]{}<>^`|]*)?|[^\s[\]{}<>^`|]*)(?:\?[^\s[\]{}<>^`|]*)?(?:#[^\s[\]{}<>^`|]*)?$/i;function yZ(e){return cCe.test(e)}const lCe=/^(?:(?:[^\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 bZ(e){return lCe.test(e)}function xZ(e){return e>=97&&e<=122||e>=65&&e<=90}function SZ(e){return xZ(e)||e>=48&&e<=57}function CZ(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function uCe(e){return SZ(e)||e===43||e===45||e===46}function wZ(e){return SZ(e)||e===45||e===46||e===95||e===126}function TZ(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 dCe(e){return wZ(e)||TZ(e)||e===58||e===64}function EZ(e){let t=e.length;if(t===0||!xZ(e.charCodeAt(0)))return!1;let n=1;for(;n<t;){let t=e.charCodeAt(n);if(t===58)break;if(!uCe(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||!CZ(e.charCodeAt(t+1))||!CZ(e.charCodeAt(t+2)))return!1;t+=2}else if(!wZ(n)&&!TZ(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&&!wZ(t)&&!TZ(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||!CZ(e.charCodeAt(n+1))||!CZ(e.charCodeAt(n+2)))return!1;n+=2}else if(r>127)return!1;else if(!(dCe(r)||r===47||r===63||r===35))return!1;n++}return!0}const fCe=/^(?: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 DZ(e){return fCe.test(e)}const pCe=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function OZ(e){return pCe.test(e)}const kZ=new Map;function AZ(){kZ.clear()}function mCe(){return[...kZ.entries()]}function hCe(e,t){kZ.set(e,t)}function gCe(e){return kZ.has(e)}function _Ce(e){return kZ.get(e)}function jZ(e,t){return kZ.get(e)?.(t)??!0}function MZ(){AZ(),kZ.set(`date-time`,eZ),kZ.set(`date`,QX),kZ.set(`duration`,tZ),kZ.set(`email`,nZ),kZ.set(`hostname`,oZ),kZ.set(`idn-email`,sZ),kZ.set(`idn-hostname`,cZ),kZ.set(`ipv4`,uZ),kZ.set(`ipv6`,dZ),kZ.set(`iri-reference`,pZ),kZ.set(`iri`,mZ),kZ.set(`json-pointer-uri-fragment`,hZ),kZ.set(`json-pointer`,gZ),kZ.set(`regex`,_Z),kZ.set(`relative-json-pointer`,vZ),kZ.set(`time`,$X),kZ.set(`uri-reference`,yZ),kZ.set(`uri-template`,bZ),kZ.set(`uri`,EZ),kZ.set(`url`,DZ),kZ.set(`uuid`,OZ)}MZ();var vCe=c({Clear:()=>AZ,Entries:()=>mCe,Get:()=>_Ce,Has:()=>gCe,IsDate:()=>QX,IsDateTime:()=>eZ,IsDuration:()=>tZ,IsEmail:()=>nZ,IsHostname:()=>oZ,IsIPv4:()=>uZ,IsIPv6:()=>dZ,IsIdnEmail:()=>sZ,IsIdnHostname:()=>cZ,IsIri:()=>mZ,IsIriReference:()=>pZ,IsJsonPointer:()=>gZ,IsJsonPointerUriFragment:()=>hZ,IsRegex:()=>_Z,IsRelativeJsonPointer:()=>vZ,IsTime:()=>$X,IsUri:()=>EZ,IsUriReference:()=>yZ,IsUriTemplate:()=>bZ,IsUrl:()=>DZ,IsUuid:()=>OZ,Reset:()=>MZ,Set:()=>hCe,Test:()=>jZ});function yCe(e,t,n,r){return EB(OB(`Format`,`Test`),[kB(n.format),r])}function NZ(e,t,n,r){return jZ(n.format,r)}function bCe(e,t,n,r,i,a){return NZ(e,t,i,a)||t.AddError({keyword:`format`,schemaPath:n,instancePath:r,params:{format:i.format}})}function xCe(e,t,n,r){let i=AX(n)?n.then:!0,a=$Y(n)?n.else:!0;return AB(rQ(e,t,n.if,r),rQ(e,t,i,r),rQ(e,t,a,r))}function SCe(e,t,n,r){let i=AX(n)?n.then:!0,a=$Y(n)?n.else:!0;return aQ(e,t,n.if,r)?aQ(e,t,i,r):aQ(e,t,a,r)}function CCe(e,t,n,r,i,a){let o=AX(i)?i.then:!0,s=$Y(i)?i.else:!0,c=new RX,l=sQ(e,c,`${n}/if`,r,i.if,a)?sQ(e,c,`${n}/then`,r,o,a)||t.AddError({keyword:`if`,schemaPath:n,instancePath:r,params:{failingKeyword:`then`}}):sQ(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 wCe(e,t,n,r){return FB(n.items.map((n,i)=>{let a=hB(OB(r,`length`),kB(i)),o=nQ(e,t,n,`${r}[${i}]`),s=t.AddIndex(kB(i));return Yz(a,t.UseUnevaluated()?Jz(o,s):o)}))}function TCe(e,t,n,r){return Fz(n.items,0,(n,i)=>Dz(r.length,i)||iQ(e,t,n,r[i])&&t.AddIndex(i))}function ECe(e,t,n,r,i,a){return Iz(i.items,0,(i,o)=>{let s=`${n}/items/${o}`,c=`${r}/${o}`;return Dz(a.length,o)||oQ(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function DCe(e,t,n,r){let i=CX(n)?n.prefixItems.length:0,a=nQ(e,t,n.items,`element`),o=t.AddIndex(`index`),s=t.UseUnevaluated()?Jz(a,o):a;return yB(r,kB(i),[`element`,`index`],s)}function OCe(e,t,n,r){return Fz(r,CX(n)?n.prefixItems.length:0,(r,i)=>iQ(e,t,n.items,r)&&t.AddIndex(i))}function kCe(e,t,n,r,i,a){return Iz(a,CX(i)?i.prefixItems.length:0,(a,o)=>oQ(e,t,`${n}/items`,`${r}/${o}`,i.items,a)&&t.AddIndex(o))}function ACe(e,t,n,r){return sX(n)?wCe(e,t,n,r):DCe(e,t,n,r)}function jCe(e,t,n,r){return sX(n)?TCe(e,t,n,r):OCe(e,t,n,r)}function MCe(e,t,n,r,i,a){return sX(i)?ECe(e,t,n,r,i,a):kCe(e,t,n,r,i,a)}function PZ(e){return KY(e)}function NCe(e,t,n,r){if(!PZ(n))return kB(!0);let[i,a]=[VX(),VX()];return hB(EB(OB(r,`reduce`),[TB([i,a],AB(rQ(e,t,n.contains,a),LB(i),i)),kB(0)]),kB(n.maxContains))}function FZ(e,t,n,r){return PZ(n)?Dz(r.reduce((r,i)=>aQ(e,t,n.contains,i)?++r:r,0),n.maxContains):!0}function PCe(e,t,n,r,i,a){let o=mX(i)?i.minContains:1;return FZ(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:o,maxContains:i.maxContains}})}function FCe(e,t,n,r){return hB(r,kB(n.maximum))}function IZ(e,t,n,r){return Dz(r,n.maximum)}function ICe(e,t,n,r,i,a){return IZ(e,t,i,a)||t.AddError({keyword:`maximum`,schemaPath:n,instancePath:r,params:{comparison:`<=`,limit:i.maximum}})}function LCe(e,t,n,r){return hB(OB(r,`length`),kB(n.maxItems))}function LZ(e,t,n,r){return Dz(r.length,n.maxItems)}function RCe(e,t,n,r,i,a){return LZ(e,t,i,a)||t.AddError({keyword:`maxItems`,schemaPath:n,instancePath:r,params:{limit:i.maxItems}})}function zCe(e,t,n,r){return vB(r,kB(n.maxLength))}function RZ(e,t,n,r){return Nz(r,n.maxLength)}function BCe(e,t,n,r,i,a){return RZ(e,t,i,a)||t.AddError({keyword:`maxLength`,schemaPath:n,instancePath:r,params:{limit:i.maxLength}})}function VCe(e,t,n,r){return hB(OB(xB(r),`length`),kB(n.maxProperties))}function zZ(e,t,n,r){return Dz(Bz(r).length,n.maxProperties)}function HCe(e,t,n,r,i,a){return zZ(e,t,i,a)||t.AddError({keyword:`maxProperties`,schemaPath:n,instancePath:r,params:{limit:i.maxProperties}})}function BZ(e){return KY(e)}function UCe(e,t,n,r){if(!BZ(n))return kB(!0);let[i,a]=[VX(),VX()];return gB(EB(OB(r,`reduce`),[TB([i,a],AB(rQ(e,t,n.contains,a),LB(i),i)),kB(0)]),kB(n.minContains))}function VZ(e,t,n,r){return BZ(n)?Oz(r.reduce((r,i)=>aQ(e,t,n.contains,i)?++r:r,0),n.minContains):!0}function WCe(e,t,n,r,i,a){return VZ(e,t,i,a)||t.AddError({keyword:`contains`,schemaPath:n,instancePath:r,params:{minContains:i.minContains}})}function GCe(e,t,n,r){return gB(r,kB(n.minimum))}function HZ(e,t,n,r){return Oz(r,n.minimum)}function KCe(e,t,n,r,i,a){return HZ(e,t,i,a)||t.AddError({keyword:`minimum`,schemaPath:n,instancePath:r,params:{comparison:`>=`,limit:i.minimum}})}function qCe(e,t,n,r){return gB(OB(r,`length`),kB(n.minItems))}function UZ(e,t,n,r){return Oz(r.length,n.minItems)}function JCe(e,t,n,r,i,a){return UZ(e,t,i,a)||t.AddError({keyword:`minItems`,schemaPath:n,instancePath:r,params:{limit:i.minItems}})}function YCe(e,t,n,r){return _B(r,kB(n.minLength))}function WZ(e,t,n,r){return Pz(r,n.minLength)}function XCe(e,t,n,r,i,a){return WZ(e,t,i,a)||t.AddError({keyword:`minLength`,schemaPath:n,instancePath:r,params:{limit:i.minLength}})}function ZCe(e,t,n,r){return gB(OB(xB(r),`length`),kB(n.minProperties))}function GZ(e,t,n,r){return Oz(Bz(r).length,n.minProperties)}function QCe(e,t,n,r,i,a){return GZ(e,t,i,a)||t.AddError({keyword:`minProperties`,schemaPath:n,instancePath:r,params:{limit:i.minProperties}})}function $Ce(e,t,n,r){return RB(r,kB(n.multipleOf))}function KZ(e,t,n,r){return kz(r,n.multipleOf)}function ewe(e,t,n,r,i,a){return KZ(e,t,i,a)||t.AddError({keyword:`multipleOf`,schemaPath:n,instancePath:r,params:{multipleOf:i.multipleOf}})}function twe(e,t,n,r){return WX(e,t,[n.not],r,Xz(fB(OB(`results`,`length`),kB(1))))}function nwe(e,t,n,r){return Xz(rQ(e,t,n.not,r))}function rwe(e,t,n,r){return t.UseUnevaluated()?twe(e,t,n,r):nwe(e,t,n,r)}function qZ(e,t,n,r){let i=new IX;return!aQ(e,i,n.not,r)&&t.Merge([i])}function iwe(e,t,n,r,i,a){return qZ(e,t,i,a)||t.AddError({keyword:`not`,schemaPath:n,instancePath:r,params:{}})}function awe(e,t,n,r){return WX(e,t,n.oneOf,r,fB(OB(`results`,`length`),kB(1)))}function owe(e,t,n,r){return fB(EB(OB(wB(n.oneOf.map(n=>rQ(e,t,n,r))),`reduce`),[TB([`count`,`result`],AB(fB(`result`,kB(!0)),LB(`count`),`count`)),kB(0)]),kB(1))}function swe(e,t,n,r){return t.UseUnevaluated()?awe(e,t,n,r):owe(e,t,n,r)}function cwe(e,t,n,r){let i=n.oneOf.reduce((t,n)=>{let i=new IX;return aQ(e,i,n,r)?[...t,i]:t},[]);return X(i.length,1)&&t.Merge(i)}function lwe(e,t,n,r,i,a){let o=[],s=[],c=i.oneOf.reduce((t,i,c)=>{let l=new RX,u=sQ(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 uwe(e,t,n,r){return EB(OB(BX(Sz(n.pattern)?new RegExp(n.pattern,`u`):n.pattern),`test`),[r])}function JZ(e,t,n,r){return(Sz(n.pattern)?new RegExp(n.pattern,`u`):n.pattern).test(r)}function dwe(e,t,n,r,i,a){return JZ(e,t,i,a)||t.AddError({keyword:`pattern`,schemaPath:n,instancePath:r,params:{pattern:i.pattern}})}function fwe(e,t,n,r){return FB(zz(n.patternProperties).map(([n,i])=>{let[a,o]=[VX(),VX()],s=Xz(EB(OB(BX(new RegExp(n,`u`)),`test`),[a])),c=nQ(e,t,i,o),l=t.AddKey(a),u=t.UseUnevaluated()?Yz(s,Jz(c,l)):Yz(s,c);return yB(bB(r),kB(0),[`[${a}, ${o}]`,`_`],u)}))}function pwe(e,t,n,r){return Fz(zz(n.patternProperties),0,([n,i])=>{let a=new RegExp(n,`u`);return Fz(zz(r),0,([n,r])=>!a.test(n)||iQ(e,t,i,r)&&t.AddKey(n))})}function mwe(e,t,n,r,i,a){return Iz(zz(i.patternProperties),0,([i,o])=>{let s=`${n}/patternProperties/${i}`,c=new RegExp(i,`u`);return Iz(zz(a),0,([n,i])=>{let a=`${r}/${n}`;return!c.test(n)||oQ(e,t,s,a,o,i)&&t.AddKey(n)})})}function hwe(e,t,n,r){return FB(n.prefixItems.map((n,i)=>{let a=hB(OB(r,`length`),kB(i)),o=nQ(e,t,n,`${r}[${i}]`),s=t.AddIndex(kB(i));return Yz(a,t.UseUnevaluated()?Jz(o,s):o)}))}function gwe(e,t,n,r){return X(r.length,0)||Fz(n.prefixItems,0,(n,i)=>Dz(r.length,i)||iQ(e,t,n,r[i])&&t.AddIndex(i))}function _we(e,t,n,r,i,a){return X(a.length,0)||Iz(i.prefixItems,0,(i,o)=>{let s=`${n}/prefixItems/${o}`,c=`${r}/${o}`;return Dz(a.length,o)||oQ(e,t,s,c,i,a[o])&&t.AddIndex(o)})}function YZ(e,t){return e.includes(t)||nV().exactOptionalPropertyTypes}function vwe(e,t){return lB(OB(e,t))}function XZ(e,t){return wz(e[t])}function ywe(e,t,n,r){let i=kX(n)?n.required:[];return FB(zz(n.properties).map(([n,a])=>{let o=Xz(SB(r,kB(n))),s=nQ(e,t,a,OB(r,n)),c=t.AddKey(kB(n)),l=t.UseUnevaluated()?Jz(s,c):s,u=i.includes(n)?l:Yz(o,l);return YZ(i,n)?u:Yz(vwe(r,n),u)}))}function bwe(e,t,n,r){let i=kX(n)?n.required:[];return Fz(zz(n.properties),0,([n,a])=>{let o=!Z(r,n)||iQ(e,t,a,r[n])&&t.AddKey(n);return YZ(i,n)?o:XZ(r,n)||o})}function xwe(e,t,n,r,i,a){let o=kX(i)?i.required:[];return Iz(zz(i.properties),0,([i,s])=>{let c=`${n}/properties/${i}`,l=`${r}/${i}`,u=()=>!Z(a,i)||oQ(e,t,c,l,s,a[i])&&t.AddKey(i);return YZ(o,i)?u():XZ(a,i)||u()})}function Swe(e,t,n,r){let[i,a]=[VX(),VX()];return yB(xB(r),kB(0),[i,a],rQ(e,t,n.propertyNames,i))}function Cwe(e,t,n,r){return Fz(Bz(r),0,(r,i)=>aQ(e,t,n.propertyNames,r))}function wwe(e,t,n,r,i,a){let o=[];return Iz(Bz(a),0,(t,a)=>{let s=`${r}/${t}`,c=`${n}/propertyNames`,l=sQ(e,new RX,c,s,i.propertyNames,t);return l||o.push(t),l})||t.AddError({keyword:`propertyNames`,schemaPath:n,instancePath:r,params:{propertyNames:o}})}function Twe(e,t,n,r){return lQ(e,t,e.RecursiveRef(n)??!1,r)}function Ewe(e,t,n,r){let i=e.RecursiveRef(n)??!1;return zY(i)&&aQ(e,t,i,r)}function Dwe(e,t,n,r,i,a){let o=e.RecursiveRef(i)??!1;return zY(o)&&sQ(e,t,`#`,r,o,a)}function Owe(e,t,n,r){let i=TB([`context`,`value`],lQ(e,t,n,`value`));return EB(TB([`context`,`value`],jB([MB(`nextContext`,DB(`CheckContext`,[])),MB(`result`,EB(i,[`nextContext`,`value`])),NB(`result`,t.Merge(`[nextContext]`)),PB(`result`)])),[`context`,r])}function kwe(e,t,n,r){return lQ(e,t,n,r)}function Awe(e,t,n,r){let i=e.Ref(n)??!1;return t.UseUnevaluated()?Owe(e,t,i,r):kwe(e,t,i,r)}function jwe(e,t,n,r){let i=e.Ref(n)??!1,a=new IX,o=zY(i)&&aQ(e,a,i,r);return o&&t.Merge([a]),o}function Mwe(e,t,n,r,i,a){let o=e.Ref(i)??!1,s=new RX,c=zY(o)&&sQ(e,s,`#`,r,o,a);return c&&t.Merge([s]),c||s.GetErrors().forEach(e=>t.AddError(e)),c}function Nwe(e,t,n,r){return FB(n.required.map(e=>SB(r,kB(e))))}function Pwe(e,t,n,r){return Fz(n.required,0,e=>Z(r,e))}function Fwe(e,t,n,r,i,a){let o=[];return Iz(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 ZZ(e,t,n,r){return X(n,`object`)?aB(r):X(n,`array`)?Zz(r):X(n,`boolean`)?eB(r):X(n,`integer`)?tB(r):X(n,`number`)?iB(r):X(n,`null`)?rB(r):X(n,`string`)?sB(r):X(n,`asyncIterator`)?Qz(r):X(n,`bigint`)?$z(r):X(n,`constructor`)?dB(r):X(n,`function`)?uB(r):X(n,`iterator`)?nB(r):X(n,`symbol`)?cB(r):X(n,`undefined`)||X(n,`void`)?lB(r):kB(!0)}function QZ(e,t,n,r,i){return X(n,`object`)?bz(i):X(n,`array`)?uz(i):X(n,`boolean`)?pz(i):X(n,`integer`)?gz(i):X(n,`number`)?yz(i):X(n,`null`)?vz(i):X(n,`string`)?Sz(i):X(n,`asyncIterator`)?dz(i):X(n,`bigint`)?fz(i):X(n,`constructor`)?mz(i):X(n,`function`)?hz(i):X(n,`iterator`)?_z(i):X(n,`symbol`)?Cz(i):X(n,`undefined`)||X(n,`void`)?wz(i):!0}function Iwe(e,t,n,r){return IB(n.map(n=>ZZ(e,t,n,r)))}function $Z(e,t,n,r,i){return n.some(n=>QZ(e,t,n,r,i))}function Lwe(e,t,n,r){return uz(n.type)?Iwe(e,t,n.type,r):ZZ(e,t,n.type,r)}function Rwe(e,t,n,r){return uz(n.type)?$Z(e,t,n.type,n,r):QZ(e,t,n.type,n,r)}function zwe(e,t,n,r,i,a){return(uz(i.type)?$Z(e,t,i.type,i,a):QZ(e,t,i.type,i,a))||t.AddError({keyword:`type`,schemaPath:n,instancePath:r,params:{type:i.type}})}function Bwe(e,t,n,r){let[i,a]=[VX(),VX()],o=EB(OB(`context`,`GetIndices`),[]),s=EB(OB(`indices`,`has`),[i]),c=rQ(e,t,n.unevaluatedItems,a),l=EB(OB(`context`,`AddIndex`),[i]),u=yB(r,kB(0),[a,i],Jz(Yz(s,c),l));return EB(TB([`context`],jB([MB(`indices`,o),PB(u)])),[`context`])}function Vwe(e,t,n,r){let i=t.GetIndices();return Fz(r,0,(r,a)=>(i.has(a)||aQ(e,t,n.unevaluatedItems,r))&&t.AddIndex(a))}function Hwe(e,t,n,r,i,a){let o=t.GetIndices(),s=[];return Iz(a,0,(a,c)=>{let l=new RX,u=(o.has(c)||sQ(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 Uwe(e,t,n,r){let[i,a]=[VX(),VX()],o=EB(OB(`context`,`GetKeys`),[]),s=EB(OB(`keys`,`has`),[i]),c=EB(OB(`context`,`AddKey`),[i]),l=rQ(e,t,n.unevaluatedProperties,a),u=yB(bB(r),kB(0),[`[${i}, ${a}]`,`_`],Yz(s,Jz(l,c)));return EB(TB([`context`],jB([MB(`keys`,o),PB(u)])),[`context`])}function Wwe(e,t,n,r){let i=t.GetKeys();return Fz(zz(r),0,([r,a])=>i.has(r)||aQ(e,t,n.unevaluatedProperties,a)&&t.AddKey(r))}function Gwe(e,t,n,r,i,a){let o=t.GetKeys(),s=[];return Iz(zz(a),0,([a,c])=>{let l=new RX,u=o.has(a)||sQ(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 eQ(e){return!X(e.uniqueItems,!1)}function Kwe(e,t,n,r){return eQ(n)?fB(OB(DB(`Set`,[EB(OB(r,`map`),[OB(`Hashing`,`Hash`)])]),`size`),OB(r,`length`)):kB(!0)}function qwe(e,t,n,r){if(!eQ(n))return!0;let i=new Set(r.map($H)).size,a=r.length;return X(i,a)}function Jwe(e,t,n,r,i,a){if(!eQ(i))return!0;let o=new Set,s=a.reduce((e,t,n)=>{let r=$H(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 tQ(e,t){return jX(e)&&(uz(e.type)&&e.type.includes(t)||X(e.type,t))}function Ywe(e){return tQ(e,`object`)}function Xwe(e){return LY(e)&&(VY(e)||JY(e)||YY(e)||XY(e)||wX(e)||SX(e)||TX(e)||_X(e)||fX(e)||kX(e)||PX(e))}function Zwe(e){return tQ(e,`array`)}function Qwe(e){return LY(e)&&(BY(e)||oX(e)||KY(e)||lX(e)||uX(e)||mX(e)||hX(e)||CX(e)||NX(e)||MX(e))}function $we(e){return tQ(e,`string`)}function eTe(e){return LY(e)&&(gX(e)||dX(e)||rX(e)||xX(e))}function tTe(e){return tQ(e,`number`)||tQ(e,`bigint`)}function nTe(e){return LY(e)&&(pX(e)||cX(e)||tX(e)||nX(e)||vX(e))}function nQ(e,t,n,r){return t.UseUnevaluated()?Jz(Jz(t.Push(),rQ(e,t,n,r)),t.Pop()):rQ(e,t,n,r)}function rQ(e,t,n,r){e.Push(n);let i=[];if(RY(n))return cSe(e,t,n,r);if(jX(n)&&i.push(Lwe(e,t,n,r)),Xwe(n)){let a=[];kX(n)&&a.push(Nwe(e,t,n,r)),VY(n)&&a.push(Yxe(e,t,n,r)),JY(n)&&a.push(mSe(e,t,n,r)),YY(n)&&a.push(_Se(e,t,n,r)),XY(n)&&a.push(bSe(e,t,n,r)),SX(n)&&a.push(fwe(e,t,n,r)),wX(n)&&a.push(ywe(e,t,n,r)),TX(n)&&a.push(Swe(e,t,n,r)),_X(n)&&a.push(ZCe(e,t,n,r)),fX(n)&&a.push(VCe(e,t,n,r));let o=FB(a),s=Yz(Xz(aB(r)),o);i.push(Ywe(n)?o:s)}if(Qwe(n)){let a=[];BY(n)&&a.push(Hxe(e,t,n,r)),KY(n)&&a.push(fSe(e,t,n,r)),oX(n)&&a.push(ACe(e,t,n,r)),lX(n)&&a.push(NCe(e,t,n,r)),uX(n)&&a.push(LCe(e,t,n,r)),mX(n)&&a.push(UCe(e,t,n,r)),hX(n)&&a.push(qCe(e,t,n,r)),CX(n)&&a.push(hwe(e,t,n,r)),MX(n)&&a.push(Kwe(e,t,n,r));let o=FB(a),s=Yz(Xz(Zz(r)),o);i.push(Zwe(n)?o:s)}if(eTe(n)){let a=[];dX(n)&&a.push(zCe(e,t,n,r)),gX(n)&&a.push(YCe(e,t,n,r)),rX(n)&&a.push(yCe(e,t,n,r)),xX(n)&&a.push(uwe(e,t,n,r));let o=FB(a),s=Yz(Xz(sB(r)),o);i.push($we(n)?o:s)}if(nTe(n)){let a=[];tX(n)&&a.push(OSe(e,t,n,r)),nX(n)&&a.push(ASe(e,t,n,r)),cX(n)&&a.push(FCe(e,t,n,r)),pX(n)&&a.push(GCe(e,t,n,r)),vX(n)&&a.push($Ce(e,t,n,r));let o=FB(a),s=Yz(Xz(Yz(iB(r),$z(r))),o);i.push(tTe(n)?o:s)}OX(n)&&i.push(Awe(e,t,n,r)),DX(n)&&i.push(Twe(e,t,n,r)),QY(n)&&i.push(CSe(e,t,n,r)),FY(n)&&i.push(Fxe(e,t,n,r)),GY(n)&&i.push(uSe(e,t,n,r)),eX(n)&&i.push(ESe(e,t,n,r)),aX(n)&&i.push(xCe(e,t,n,r)),yX(n)&&i.push(rwe(e,t,n,r)),HY(n)&&i.push(eSe(e,t,n,r)),WY(n)&&i.push(aSe(e,t,n,r)),bX(n)&&i.push(swe(e,t,n,r)),NX(n)&&i.push(Yz(Xz(Zz(r)),Bwe(e,t,n,r))),PX(n)&&i.push(Yz(Xz(oB(r)),Uwe(e,t,n,r))),IY(n)&&i.push(Rxe(e,t,n,r));let a=FB(i);return e.Pop(n),a}function iQ(e,t,n,r){return t.Push()&&aQ(e,t,n,r)&&t.Pop()}function aQ(e,t,n,r){e.Push(n);let i=RY(n)?GX(e,t,n,r):(!jX(n)||Rwe(e,t,n,r))&&(!(xz(r)&&!uz(r))||(!kX(n)||Pwe(e,t,n,r))&&(!VY(n)||Xxe(e,t,n,r))&&(!JY(n)||hSe(e,t,n,r))&&(!YY(n)||vSe(e,t,n,r))&&(!XY(n)||xSe(e,t,n,r))&&(!SX(n)||pwe(e,t,n,r))&&(!wX(n)||bwe(e,t,n,r))&&(!TX(n)||Cwe(e,t,n,r))&&(!_X(n)||GZ(e,t,n,r))&&(!fX(n)||zZ(e,t,n,r)))&&(!uz(r)||(!BY(n)||Uxe(e,t,n,r))&&(!KY(n)||JX(e,t,n,r))&&(!oX(n)||jCe(e,t,n,r))&&(!lX(n)||FZ(e,t,n,r))&&(!uX(n)||LZ(e,t,n,r))&&(!mX(n)||VZ(e,t,n,r))&&(!hX(n)||UZ(e,t,n,r))&&(!CX(n)||gwe(e,t,n,r))&&(!MX(n)||qwe(e,t,n,r)))&&(!Sz(r)||(!dX(n)||RZ(e,t,n,r))&&(!gX(n)||WZ(e,t,n,r))&&(!rX(n)||NZ(e,t,n,r))&&(!xX(n)||JZ(e,t,n,r)))&&(!(yz(r)||fz(r))||(!tX(n)||XX(e,t,n,r))&&(!nX(n)||ZX(e,t,n,r))&&(!cX(n)||IZ(e,t,n,r))&&(!pX(n)||HZ(e,t,n,r))&&(!vX(n)||KZ(e,t,n,r)))&&(!OX(n)||jwe(e,t,n,r))&&(!DX(n)||Ewe(e,t,n,r))&&(!QY(n)||wSe(e,t,n,r))&&(!FY(n)||Ixe(e,t,n,r))&&(!GY(n)||KX(e,t,n,r))&&(!eX(n)||YX(e,t,n,r))&&(!aX(n)||SCe(e,t,n,r))&&(!yX(n)||qZ(e,t,n,r))&&(!HY(n)||tSe(e,t,n,r))&&(!WY(n)||oSe(e,t,n,r))&&(!bX(n)||cwe(e,t,n,r))&&(!NX(n)||!uz(r)||Vwe(e,t,n,r))&&(!PX(n)||!xz(r)||Wwe(e,t,n,r))&&(!IY(n)||zxe(e,t,n,r));return e.Pop(n),i}function oQ(e,t,n,r,i,a){return t.Push()&&sQ(e,t,n,r,i,a)&&t.Pop()}function sQ(e,t,n,r,i,a){e.Push(i);let o=RY(i)?lSe(e,t,n,r,i,a):!!((!jX(i)||zwe(e,t,n,r,i,a))&+(!(xz(a)&&!uz(a))||!!((!kX(i)||Fwe(e,t,n,r,i,a))&+(!VY(i)||Zxe(e,t,n,r,i,a))&(!JY(i)||gSe(e,t,n,r,i,a))&(!YY(i)||ySe(e,t,n,r,i,a))&(!XY(i)||SSe(e,t,n,r,i,a))&(!SX(i)||mwe(e,t,n,r,i,a))&(!wX(i)||xwe(e,t,n,r,i,a))&(!TX(i)||wwe(e,t,n,r,i,a))&(!_X(i)||QCe(e,t,n,r,i,a))&(!fX(i)||HCe(e,t,n,r,i,a))))&(!uz(a)||!!((!BY(i)||Wxe(e,t,n,r,i,a))&+(!KY(i)||pSe(e,t,n,r,i,a))&(!oX(i)||MCe(e,t,n,r,i,a))&(!lX(i)||PCe(e,t,n,r,i,a))&(!uX(i)||RCe(e,t,n,r,i,a))&(!mX(i)||WCe(e,t,n,r,i,a))&(!hX(i)||JCe(e,t,n,r,i,a))&(!CX(i)||_we(e,t,n,r,i,a))&(!MX(i)||Jwe(e,t,n,r,i,a))))&(!Sz(a)||!!((!dX(i)||BCe(e,t,n,r,i,a))&+(!gX(i)||XCe(e,t,n,r,i,a))&(!rX(i)||bCe(e,t,n,r,i,a))&(!xX(i)||dwe(e,t,n,r,i,a))))&(!(yz(a)||fz(a))||!!((!tX(i)||kSe(e,t,n,r,i,a))&+(!nX(i)||jSe(e,t,n,r,i,a))&(!cX(i)||ICe(e,t,n,r,i,a))&(!pX(i)||KCe(e,t,n,r,i,a))&(!vX(i)||ewe(e,t,n,r,i,a))))&(!OX(i)||Mwe(e,t,n,r,i,a))&(!DX(i)||Dwe(e,t,n,r,i,a))&(!QY(i)||TSe(e,t,n,r,i,a))&(!FY(i)||Lxe(e,t,n,r,i,a))&(!GY(i)||dSe(e,t,n,r,i,a))&(!eX(i)||DSe(e,t,n,r,i,a))&(!aX(i)||CCe(e,t,n,r,i,a))&(!yX(i)||iwe(e,t,n,r,i,a))&(!HY(i)||nSe(e,t,n,r,i,a))&(!WY(i)||sSe(e,t,n,r,i,a))&(!bX(i)||lwe(e,t,n,r,i,a))&(!NX(i)||!uz(a)||Hwe(e,t,n,r,i,a))&(!PX(i)||!xz(a)||Gwe(e,t,n,r,i,a)))&&(!IY(i)||Bxe(e,t,n,r,i,a));return e.Pop(i),o}const cQ=new Map;function rTe(e,t,n,r){return e.UseUnevaluated()?EB(`check_${n}`,[`context`,r]):EB(`check_${n}`,[r])}function iTe(e,t,n,r){let i=rQ(e,t,n,`value`);return t.UseUnevaluated()?MB(`check_${r}`,TB([`context`,`value`],i)):MB(`check_${r}`,TB([`value`],i))}function aTe(){cQ.clear()}function oTe(){return[...cQ.values()]}function lQ(e,t,n,r){let i=LY(n)?$H({__baseURL:e.BaseURL().href,...n}):$H(n),a=rTe(t,n,i,r);return cQ.has(i)?a:(cQ.set(i,``),cQ.set(i,iTe(e,t,n,i)),a)}function sTe(e,t){return xz(t)?t[e]:void 0}function cTe(e,t){return e.reduce((e,t)=>sTe(t,e),t)}function lTe(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 uTe(e,t){return cTe(lTe(t),e)}function dTe(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(`#`)?uQ(e,t,n):e}function fTe(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 pTe(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 uQ(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 uTe(e,r)}function mTe(e,t,n){if(iX(e)){let r=dTe(e,t,n);if(!wz(r))return r}if(UY(e)){let r=fTe(e,t,n);if(!wz(r))return r}if(ZY(e)){let r=pTe(e,t,n);if(!wz(r))return r}return uQ(e,t,n)}function hTe(e,t,n){return e.reduce((e,r)=>{let i=dQ(r,t,n);return wz(i)?e:i},void 0)}function gTe(e,t,n){return Bz(e).reduce((r,i)=>{let a=dQ(e[i],t,n);return wz(a)?r:a},void 0)}function dQ(e,t,n){let r=LY(e)&&iX(e)?new URL(e.$id,t.href):t;if(LY(e)){let t=mTe(e,r,n);if(!wz(t))return t}if(uz(e))return hTe(e,r,n);if(xz(e))return gTe(e,r,n)}function fQ(e,t){let n=new URL(`http://unknown/`),r=iX(e)?new URL(e.$id,n.href):n;return dQ(e,r,new URL(t,r.href))}function _Te(e,t,n,r){let i=n.$dynamicRef.startsWith(`#`)?fQ(t,n.$dynamicRef):fQ(e,n.$dynamicRef);if(!wz(i))return!LY(i)||!ZY(i)||new URL(n.$dynamicRef,`http://unknown/`).hash.startsWith(`#/`)?i:r.find(e=>e.$dynamicAnchor===i.$dynamicAnchor)??i}var pQ=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)},mQ,hQ,gQ,_Q,vQ,yQ=class{constructor(e,t){mQ.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){LY(e)&&(iX(e)&&(this.ids.push(e),pQ(this,mQ,`m`,hQ).call(this,e)),UY(e)&&this.anchors.push(e),EX(e)&&this.recursiveAnchors.push(e),ZY(e)&&this.dynamicAnchors.push(e))}Pop(e){LY(e)&&(iX(e)&&(this.ids.pop(),pQ(this,mQ,`m`,gQ).call(this,e)),UY(e)&&this.anchors.pop(),EX(e)&&this.recursiveAnchors.pop(),ZY(e)&&this.dynamicAnchors.pop())}Ref(e){return pQ(this,mQ,`m`,_Q).call(this,e)??pQ(this,mQ,`m`,vQ).call(this,e)}RecursiveRef(e){return EX(this.Base())?fQ(this.recursiveAnchors[0],e.$recursiveRef):fQ(this.Base(),e.$recursiveRef)}DynamicRef(e){let t=this.schema;return _Te(t,this.Base(),e,this.dynamicAnchors)}};mQ=new WeakSet,hQ=function e(t,n=!0){if(!LY(t))return;let r=t;if(!(!n&&iX(r))){!n&&ZY(r)&&this.dynamicAnchors.push(r);for(let t of Bz(r))pQ(this,mQ,`m`,e).call(this,r[t],!1)}},gQ=function e(t,n=!0){if(!LY(t))return;let r=t;if(!(!n&&iX(r))){!n&&ZY(r)&&this.dynamicAnchors.pop();for(let t of Bz(r))pQ(this,mQ,`m`,e).call(this,r[t],!1)}},_Q=function(e){return Z(this.context,e.$ref)?this.context[e.$ref]:void 0},vQ=function(e){let t=this.schema;return e.$ref.startsWith(`#`)?fQ(this.Base(),e.$ref):fQ(t,e.$ref)};function vTe(e){return`${e.Functions().join(`;
4122
4122
  `)}; return (value) => { ${(e.UseUnevaluated()?[`const context = new CheckContext({}, {})`,`return ${e.Call()}`]:[`return ${e.Call()}`]).join(`; `)} }`}function yTe(e,t){return SH(`CheckContext`,`Guard`,`Format`,`Hashing`,e.External().identifier,t)(IX,lz,vCe,wH,e.External().variables)}function bTe(e){let t=new yQ(e.Context(),e.Schema()),n=new IX;return r=>aQ(t,n,e.Schema(),r)}function xTe(e,t){return xH()?yTe(e,t):bTe(e)}var STe=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=vTe(this),t=xTe(this,e);return{IsAccelerated:xH(),Code:e,Check:t}}};function CTe(...e){let[t,n]=pH(e,{2:(e,t)=>[e,t],1:e=>[{},e]});Nxe(),aTe();let r=new yQ(t,n),i=new Mxe(jxe(t,n)),a=lQ(r,i,n,`value`),o=oTe();return new STe(t,n,Pxe(),o,a,i.UseUnevaluated())}function wTe(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),i=nV(),a=nU(),o=[];return[sQ(new yQ(t,n),new LX(e=>{if(!Oz(o.length,i.maxErrors))return o.push({...e,message:a(e)})}),`#`,``,n,r),o]}function TTe(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return aQ(new yQ(t,n),new IX,n,r)}function bQ(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return TTe(t,n,r)}function xQ(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]}),[i,a]=wTe(t,n,r);return a}var SQ=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 ETe(e,t,n){return uz(n)?n.map(n=>DQ(e,t.items,n)):n}function DTe(e,t,n){return t.Clean(n)}function OTe(e,t,n){return DQ({...e,...t.$defs},GV(t.$ref),n)}function kTe(e,t){let n=Z(t,`unevaluatedProperties`)?{additionalProperties:t.unevaluatedProperties}:{},r=DJ(TJ(e,t));return rH(r)?Yye(r,n):r}function ATe(e,t,n){return DQ(e,kTe(e,t),n)}function CQ(e){return Z(e,`additionalProperties`)?e.additionalProperties:void 0}function jTe(e,t,n){if(!xz(n)||uz(n))return n;let r=CQ(t);for(let i of Bz(n)){if(Z(t.properties,i)){n[i]=DQ(e,t.properties[i],n[i]);continue}if(pz(r)&&X(r,!0)||lV(r)&&bQ(e,r,n[i])){n[i]=DQ(e,r,n[i]);continue}delete n[i]}return n}function MTe(e,t,n){if(!xz(n))return n;let r=CQ(t),[i,a]=[new RegExp(qW(t)),YW(t)];for(let t of Bz(n)){if(i.test(t)){n[t]=DQ(e,a,n[t]);continue}if(pz(r)&&X(r,!0)||lV(r)&&bQ(e,r,n[t])){n[t]=DQ(e,r,n[t]);continue}delete n[t]}return n}function NTe(e,t,n){return Z(e,t.$ref)?DQ(e,e[t.$ref],n):n}function PTe(e,t,n){if(!uz(n))return n;let r=Math.min(n.length,t.items.length);for(let i=0;i<r;i++)n[i]=DQ(e,t.items[i],n[i]);return Tz(n.length,r)?n.slice(0,r):n}function FTe(e){return e}function ITe(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=wQ(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=wQ(e[n]);return t}function LTe(e){return Az(e)?FTe(e):ITe(e)}function RTe(e){return e.map(e=>wQ(e))}function zTe(e){return e.slice()}function BTe(e){return new Map(wQ([...e.entries()]))}function VTe(e){return new Set(wQ([...e.values()]))}function HTe(e){return e}function wQ(e){return HB(e)?zTe(e):KB(e)?BTe(e):GB(e)?VTe(e):uz(e)?RTe(e):xz(e)?LTe(e):HTe(e)}function TQ(e,t){return JSON.stringify(e).localeCompare(JSON.stringify(t))}function EQ(e,t=1){return e.sort((e,n)=>{let r=Pq(e,n);return(X(r,`disjoint`)?TQ(e,n):X(r,`right-inside`)?1:X(r,`left-inside`)?-1:TQ(e,n))*t})}function UTe(e,t,n){for(let r of EQ(t.anyOf)){let t=DQ(e,r,wQ(n));if(bQ(e,r,t))return t}return n}function DQ(e,t,n){return PV(t)?ETe(e,t,n):MV(t)?DTe(e,t,n):dH(t)?OTe(e,t,n):_H(t)?ATe(e,t,n):rH(t)?jTe(e,t,n):XW(t)?MTe(e,t,n):KV(t)?NTe(e,t,n):iW(t)?PTe(e,t,n):oH(t)?UTe(e,t,n):n}function OQ(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return DQ(t,n,r)}function kQ(e){return xz(e)&&Z(e,`value`)}function AQ(e){return{value:e}}function WTe(e){return uz(e)?AQ(e):AQ([e])}function GTe(e){return X(e,!0)?AQ(BigInt(1)):AQ(BigInt(0))}const KTe=/^-?(0|[1-9]\d*)n$/,qTe=/^-?(0|[1-9]\d*)\.\d+$/,JTe=/^-?(0|[1-9]\d*)$/;function YTe(e){return KTe.test(e)}function XTe(e){return qTe.test(e)}function ZTe(e){return JTe.test(e)}function QTe(e){let t=e.toLowerCase();return YTe(e)?AQ(BigInt(e.slice(0,e.length-1))):XTe(e)?AQ(BigInt(e.split(`.`)[0])):ZTe(e)?AQ(BigInt(e)):X(t,`false`)?AQ(BigInt(0)):X(t,`true`)?AQ(BigInt(1)):void 0}function jQ(e){return fz(e)?AQ(e):pz(e)?GTe(e):yz(e)?AQ(BigInt(Math.trunc(e))):vz(e)?AQ(BigInt(0)):Sz(e)?QTe(e):wz(e)?AQ(BigInt(0)):void 0}function $Te(e){return X(e,BigInt(0))?AQ(!1):X(e,BigInt(1))?AQ(!0):void 0}function eEe(e){return X(e,0)?AQ(!1):X(e,1)?AQ(!0):void 0}function tEe(e){return X(e.toLowerCase(),`false`)?AQ(!1):X(e.toLowerCase(),`true`)?AQ(!0):X(e,`0`)?AQ(!1):X(e,`1`)?AQ(!0):void 0}function MQ(e){return fz(e)?$Te(e):pz(e)?AQ(e):yz(e)?eEe(e):vz(e)?AQ(!1):Sz(e)?tEe(e):wz(e)?AQ(!1):void 0}function nEe(e){return X(e,BigInt(0))?AQ(null):void 0}function rEe(e){return X(e,!1)?AQ(null):void 0}function iEe(e){return X(e,0)?AQ(null):void 0}function aEe(e){let t=e.toLowerCase();return X(t,`undefined`)||X(t,`null`)||X(e,``)||X(e,`0`)?AQ(null):void 0}function oEe(e){return fz(e)?nEe(e):pz(e)?rEe(e):yz(e)?iEe(e):vz(e)?AQ(null):Sz(e)?aEe(e):wz(e)?AQ(null):void 0}const NQ=BigInt(2**53-1),PQ=BigInt(-(2**53-1));function sEe(e){return e<=NQ&&e>=PQ?AQ(Number(e)):void 0}function cEe(e){return AQ(+!!e)}function lEe(e){let t=+e;if(yz(t))return AQ(t);let n=e.toLowerCase();if(X(n,`false`))return AQ(0);if(X(n,`true`))return AQ(1);let r=jQ(e);if(kQ(r))return r.value<=NQ&&r.value>=PQ?AQ(Number(r.value)):void 0}function FQ(e){return fz(e)?sEe(e):pz(e)?cEe(e):yz(e)?AQ(e):vz(e)?AQ(0):Sz(e)?lEe(e):wz(e)?AQ(0):void 0}function IQ(e){return fz(e)||pz(e)||yz(e)?AQ(e.toString()):vz(e)?AQ(`null`):Sz(e)?AQ(e):wz(e)?AQ(``):void 0}function uEe(e){return X(e,BigInt(0))?AQ(void 0):void 0}function dEe(e){return X(e,!1)?AQ(void 0):void 0}function fEe(e){return X(e,0)?AQ(void 0):void 0}function pEe(e){let t=e.toLowerCase();return X(t,`undefined`)||X(t,`null`)||X(e,``)||X(e,`0`)?AQ(void 0):void 0}function LQ(e){return fz(e)?uEe(e):pz(e)?dEe(e):yz(e)?fEe(e):vz(e)?AQ(void 0):Sz(e)?pEe(e):wz(e)?AQ(e):void 0}function mEe(e,t,n){return WTe(n).value.map(n=>VQ(e,t.items,n))}function hEe(e,t,n){return t.Convert(n)}function gEe(e,t,n){let r=jQ(n);return kQ(r)?r.value:n}function _Ee(e,t,n){let r=MQ(n);return kQ(r)?r.value:n}function vEe(e,t,n){return VQ({...e,...t.$defs},GV(t.$ref),n)}function RQ(e,t,n){if(t.anyOf.some(t=>bQ(e,t,n)))return n;let r=t.anyOf.map(t=>VQ(e,t,wQ(n))).find(n=>bQ(e,t,n));return wz(r)?n:r}function yEe(e,t,n){return RQ(e,eW(t),n)}function bEe(e,t,n){let r=FQ(n);return kQ(r)?Math.trunc(r.value):n}function xEe(e,t,n){return VQ(e,DJ(TJ(e,t)),n)}function SEe(e,t,n){let r=jQ(n);return kQ(r)&&X(t.const,r.value)?r.value:n}function CEe(e,t,n){let r=MQ(n);return kQ(r)&&X(t.const,r.value)?r.value:n}function wEe(e,t,n){let r=FQ(n);return kQ(r)&&X(t.const,r.value)?r.value:n}function TEe(e,t,n){let r=IQ(n);return kQ(r)&&X(t.const,r.value)?r.value:n}function EEe(e,t,n){return X(t.const,n)?n:_U(t)?SEe(e,t,n):vU(t)?CEe(e,t,n):yU(t)?wEe(e,t,n):bU(t)?TEe(e,t,n):CH()}function DEe(e,t,n){let r=oEe(n);return kQ(r)?r.value:n}function OEe(e,t,n){let r=FQ(n);return kQ(r)?r.value:n}function zQ(e,t,n,r){let i=Bz(r);for(let[a,o]of t)for(let t of i)a.test(t)||(r[t]=VQ(e,n,r[t]));return r}function BQ(e,t,n){return TV(e)&&wz(n[t])}function kEe(e,t,n){let r=Rz(t.properties),i=Bz(n);for(let[t,a]of r)for(let r of i)!t.test(r)||BQ(a,r,n)||(n[r]=VQ(e,a,n[r]));return Z(t,`additionalProperties`)&&xz(t.additionalProperties)?zQ(e,r,t.additionalProperties,n):n}function AEe(e,t,n){return bz(n)?kEe(e,t,n):n}function jEe(e,t,n){let r=Rz(t.patternProperties),i=Bz(n);for(let[t,a]of r)for(let r of i)t.test(r)&&(n[r]=VQ(e,a,n[r]));return Z(t,`additionalProperties`)&&xz(t.additionalProperties)?zQ(e,r,t.additionalProperties,n):n}function MEe(e,t,n){return bz(n)?jEe(e,t,n):n}function NEe(e,t,n){return Z(e,t.$ref)?VQ(e,e[t.$ref],n):n}function PEe(e,t,n){let r=IQ(n);return kQ(r)?r.value:n}function FEe(e,t,n){return VQ(e,qU(t.pattern),n)}function IEe(e,t,n){if(!uz(n))return n;for(let r=0;r<Math.min(t.items.length,n.length);r++)n[r]=VQ(e,t.items[r],n[r]);return n}function LEe(e,t,n){let r=LQ(n);return kQ(r)?r.value:n}function REe(e,t,n){return kQ(LQ(n))?void 0:n}function VQ(e,t,n){return PV(t)?mEe(e,t,n):MV(t)?hEe(e,t,n):aU(t)?gEe(e,t,n):oU(t)?_Ee(e,t,n):dH(t)?vEe(e,t,n):hH(t)?yEe(e,t,n):lU(t)?bEe(e,t,n):_H(t)?xEe(e,t,n):xU(t)?EEe(e,t,n):CU(t)?DEe(e,t,n):EU(t)?OEe(e,t,n):rH(t)?AEe(e,t,n):XW(t)?MEe(e,t,n):KV(t)?NEe(e,t,n):AU(t)?PEe(e,t,n):fK(t)?FEe(e,t,n):iW(t)?IEe(e,t,n):tG(t)?LEe(e,t,n):oH(t)?RQ(e,t,n):nG(t)?REe(e,t,n):n}function HQ(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return VQ(t,n,r)}function zEe(e,t,n){if(!uz(n))return n;for(let r=0;r<n.length;r++)n[r]=UQ(e,t.items,n[r]);return n}function BEe(e,t,n){return t.Default(n)}function VEe(e,t,n){return UQ({...e,...t.$defs},GV(t.$ref),n)}function HEe(e,t){return wz(t)?hz(e.default)?e.default():wQ(e.default):t}function UEe(e,t,n){return UQ(e,DJ(TJ(e,t)),n)}function WEe(e,t,n){if(!xz(n))return n;let r=Bz(t.properties);for(let i of r)wz(UQ(e,t.properties[i],n[i]))&&(TV(t.properties[i])||!Z(t.properties[i],`default`))||(n[i]=UQ(e,t.properties[i],n[i]));if(!VY(t)||pz(t.additionalProperties))return n;for(let i of Bz(n))r.includes(i)||(n[i]=UQ(e,t.additionalProperties,n[i]));return n}function GEe(e,t,n){if(!xz(n))return n;let[r,i]=[new RegExp(qW(t)),YW(t)];for(let t of Bz(n))r.test(t)&&qY(i)&&(n[t]=UQ(e,i,n[t]));if(!VY(t))return n;for(let i of Bz(n))r.test(i)||(n[i]=UQ(e,t.additionalProperties,n[i]));return n}function KEe(e,t,n){return Z(e,t.$ref)?UQ(e,e[t.$ref],n):n}function qEe(e,t,n){if(!uz(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]=UQ(e,r[t],n[t]));return n}function JEe(e,t,n){for(let r of t.anyOf){let t=UQ(e,r,wQ(n));if(bQ(e,r,t))return t}return n}function UQ(e,t,n){let r=qY(t)?HEe(t,n):n;return PV(t)?zEe(e,t,r):MV(t)?BEe(e,t,r):dH(t)?VEe(e,t,r):_H(t)?UEe(e,t,r):rH(t)?WEe(e,t,r):XW(t)?GEe(e,t,r):KV(t)?KEe(e,t,r):iW(t)?qEe(e,t,r):oH(t)?JEe(e,t,r):r}function WQ(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return UQ(t,n,r)}function GQ(e){return(...t)=>{let[n,r,i]=pH(t,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return e.reduce((e,t)=>t(n,r,e),i)}}function YEe(e,t,n){return t[`~codec`].decode(n)}function XEe(e,t,n){return t[`~codec`].encode(n)}function KQ(e,t,n,r){return rU(n)?X(e,`Decode`)?YEe(t,n,r):XEe(t,n,r):r}function ZEe(e,t,n,r){if(!uz(r))return CH();for(let i=0;i<r.length;i++)r[i]=XQ(e,t,n.items,r[i]);return KQ(e,t,n,r)}function QEe(e,t,n,r){let i=KQ(e,t,n,r);if(!uz(i))return i;for(let r=0;r<i.length;r++)i[r]=XQ(e,t,n.items,i[r]);return i}function $Ee(e,t,n,r){return X(e,`Decode`)?ZEe(e,t,n,r):QEe(e,t,n,r)}function eDe(e,t,n,r){return r=XQ(e,{...t,...n.$defs},GV(n.$ref),r),KQ(e,t,n,r)}function qQ(e){return e.reduce((e,t)=>({...e,...t}),{})}function JQ(e,t){for(let n of t)if(!Gz(e,n))return n;return e}function tDe(e,t,n,r){if(X(n.allOf.length,0))return KQ(e,t,n,r);let i=n.allOf.map(n=>XQ(e,t,n,OQ(n,wQ(r))));return KQ(e,t,n,i.every(e=>xz(e))?qQ(i):JQ(r,i))}function nDe(e,t,n,r){if(X(n.allOf.length,0))return KQ(e,t,n,r);let i=KQ(e,t,n,r),a=n.allOf.map(n=>XQ(e,t,n,OQ(n,wQ(i))));return a.every(e=>xz(e))?qQ(a):JQ(i,a)}function rDe(e,t,n,r){return X(e,`Decode`)?tDe(e,t,n,r):nDe(e,t,n,r)}function iDe(e,t,n,r){if(!bz(r))return CH();for(let i of Bz(n.properties))!Z(r,i)||BQ(n.properties[i],i,r)||(r[i]=XQ(e,t,n.properties[i],r[i]));return KQ(e,t,n,r)}function aDe(e,t,n,r){let i=KQ(e,t,n,r);if(!bz(i))return i;for(let r of Bz(n.properties))!Z(i,r)||BQ(n.properties[r],r,i)||(i[r]=XQ(e,t,n.properties[r],i[r]));return i}function oDe(e,t,n,r){return X(e,`Decode`)?iDe(e,t,n,r):aDe(e,t,n,r)}function sDe(e,t,n,r){if(!bz(r))return CH();let i=new RegExp(qW(n));for(let a of Bz(r))i.test(a)||CH(),r[a]=XQ(e,t,YW(n),r[a]);return KQ(e,t,n,r)}function cDe(e,t,n,r){let i=KQ(e,t,n,r);if(!bz(i))return i;let a=new RegExp(qW(n));for(let r of Bz(i))a.test(r)&&(i[r]=XQ(e,t,YW(n),i[r]));return i}function lDe(e,t,n,r){return X(e,`Decode`)?sDe(e,t,n,r):cDe(e,t,n,r)}function YQ(e,t,n,r){return Z(t,n.$ref)?XQ(e,t,t[n.$ref],r):r}function uDe(e,t,n,r){return X(e,`Decode`)?KQ(e,t,n,YQ(e,t,n,r)):YQ(e,t,n,KQ(e,t,n,r))}function dDe(e,t,n,r){if(!uz(r))return CH();for(let i=0;i<Math.min(n.items.length,r.length);i++)r[i]=XQ(e,t,n.items[i],r[i]);return KQ(e,t,n,r)}function fDe(e,t,n,r){let i=KQ(e,t,n,r);if(!uz(i))return r;for(let r=0;r<Math.min(n.items.length,i.length);r++)i[r]=XQ(e,t,n.items[r],i[r]);return i}function pDe(e,t,n,r){return X(e,`Decode`)?dDe(e,t,n,r):fDe(e,t,n,r)}function mDe(e,t,n,r){for(let i of EQ(n.anyOf,1))if(bQ(t,i,r))return KQ(e,t,n,XQ(e,t,i,r));return r}function hDe(e,t,n,r){let i=KQ(e,t,n,r);for(let r of EQ(n.anyOf,-1)){let n=XQ(e,t,r,wQ(i));if(bQ(t,r,n))return n}return i}function gDe(e,t,n,r){return X(e,`Decode`)?mDe(e,t,n,r):hDe(e,t,n,r)}function XQ(e,t,n,r){return PV(n)?$Ee(e,t,n,r):dH(n)?eDe(e,t,n,r):_H(n)?rDe(e,t,n,r):rH(n)?oDe(e,t,n,r):XW(n)?lDe(e,t,n,r):KV(n)?uDe(e,t,n,r):iW(n)?pDe(e,t,n,r):oH(n)?gDe(e,t,n,r):KQ(e,t,n,r)}var _De=class extends SQ{constructor(e,t){super(`Decode`,e,t)}};function vDe(e,t,n){if(!bQ(e,t,n))throw new _De(n,xQ(e,t,n));return n}function yDe(e,t,n){return XQ(`Decode`,e,t,n)}const bDe=GQ([(e,t,n)=>wQ(n),(e,t,n)=>WQ(e,t,n),(e,t,n)=>HQ(e,t,n),(e,t,n)=>OQ(e,t,n),(e,t,n)=>vDe(e,t,n),(e,t,n)=>yDe(e,t,n)]);function xDe(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return bDe(t,n,r)}var SDe=class extends SQ{constructor(e,t){super(`Encode`,e,t)}};function CDe(e,t,n){if(!bQ(e,t,n))throw new SDe(n,xQ(e,t,n));return n}function wDe(e,t,n){return XQ(`Encode`,e,t,n)}const TDe=GQ([(e,t,n)=>wQ(n),(e,t,n)=>wDe(e,t,n),(e,t,n)=>WQ(e,t,n),(e,t,n)=>HQ(e,t,n),(e,t,n)=>OQ(e,t,n),(e,t,n)=>CDe(e,t,n)]);function EDe(...e){let[t,n,r]=pH(e,{3:(e,t,n)=>[e,t,n],2:(e,t)=>[{},e,t]});return TDe(t,n,r)}function DDe(e,t){return rU(t)||QQ(e,t.items)}function ODe(e,t){return rU(t)||ZQ({...e,...t.$defs},GV(t.$ref))}function kDe(e,t){return rU(t)||t.allOf.some(t=>QQ(e,t))}function ADe(e,t){return rU(t)||Bz(t.properties).some(n=>QQ(e,t.properties[n]))}function jDe(e,t){return rU(t)||QQ(e,YW(t))}function ZQ(e,t){return $Q.has(t.$ref)?!1:($Q.add(t.$ref),rU(t)||Z(e,t.$ref)&&QQ(e,e[t.$ref]))}function MDe(e,t){return rU(t)||t.items.some(t=>QQ(e,t))}function NDe(e,t){return rU(t)||t.anyOf.some(t=>QQ(e,t))}function QQ(e,t){return PV(t)?DDe(e,t):dH(t)?ODe(e,t):_H(t)?kDe(e,t):rH(t)?ADe(e,t):XW(t)?jDe(e,t):KV(t)?ZQ(e,t):iW(t)?MDe(e,t):oH(t)?NDe(e,t):rU(t)}const $Q=new Set;function PDe(...e){let[t,n]=pH(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return $Q.clear(),QQ(t,n)}var e$=class extends Error{constructor(e,t){super(t),this.type=e}};function FDe(e,t){return hz(t.default)?t.default(t):xz(t.default)?wQ(t.default):t.default}function IDe(e,t){if(MX(t)&&!qY(t))throw new e$(t,`Arrays with uniqueItems constraints must specify a default annotation`);let n=hX(t)?t.minItems:0;return Array.from({length:n},()=>t$(e,t.items))}async function*LDe(){}function RDe(e,t){return LDe()}function zDe(e,t){return t.Create()}function BDe(e,t){return nX(t)?BigInt(t.exclusiveMinimum)+BigInt(1):pX(t)?BigInt(t.minimum):BigInt(0)}function VDe(e,t){return!1}function HDe(e,t){let n=t$(e,t.instanceType);return class{constructor(){Object.assign(this,n)}}}function UDe(e,t){return t$({...e,...t.$defs},GV(t.$ref))}function WDe(e,t){return t$(e,eW(t))}function GDe(e,t){let n=t$(e,t.returnType);return()=>n}function KDe(e,t){return nX(t)&&yz(t.exclusiveMinimum)?t.exclusiveMinimum+1:pX(t)?t.minimum:0}function qDe(e,t){return t$(e,DJ(TJ(e,t)))}function*JDe(){}function YDe(e,t){return JDe()}function XDe(e,t){return t.const}function ZDe(e,t){throw new e$(t,`Cannot create TNever types`)}function QDe(e,t){return null}function $De(e,t){return nX(t)&&yz(t.exclusiveMinimum)?t.exclusiveMinimum+1:pX(t)?t.minimum:0}function eOe(e,t){return(wz(t.required)?[]:t.required).reduce((n,r)=>({...n,[r]:t$(e,t.properties[r])}),{})}function tOe(e,t){return Promise.resolve(t$(e,t.item))}function nOe(e,t){if(_X(t)&&!qY(t))throw new e$(t,`Record with the minProperties constraint must have a default annotation`);return{}}function rOe(e,t){return Z(e,t.$ref)?t$(e,e[t.$ref]):(()=>{throw new e$(t,`Unable to deref Ref`)})()}function iOe(e,t){if((xX(t)||rX(t))&&!qY(t))throw Error(`Strings with format or pattern constraints must specify default`);let n=gX(t)?t.minLength:0;return``.padEnd(n)}function aOe(e,t){return Symbol()}function oOe(e,t){let n=qU(t.pattern);if(AU(n))throw new e$(t,`Unable to create TemplateLiteral due to infinite type expansion`);return t$(e,n)}function sOe(e,t){return Array.from({length:t.minItems},(n,r)=>t$(e,t.items[r]))}function cOe(e,t){if(X(t.anyOf.length,0))throw Error(`Unable to create Union with no variants`);return t$(e,t.anyOf[0])}function t$(e,t){return qY(t)?FDe(e,t):PV(t)?IDe(e,t):LV(t)?RDe(e,t):MV(t)?zDe(e,t):aU(t)?BDe(e,t):oU(t)?VDe(e,t):BV(t)?HDe(e,t):dH(t)?UDe(e,t):hH(t)?WDe(e,t):UV(t)?GDe(e,t):lU(t)?KDe(e,t):_H(t)?qDe(e,t):dU(t)?YDe(e,t):xU(t)?XDe(e,t):QV(t)?ZDe(e,t):CU(t)?QDe(e,t):EU(t)?$De(e,t):rH(t)?eOe(e,t):_V(t)?tOe(e,t):XW(t)?nOe(e,t):KV(t)?rOe(e,t):AU(t)?iOe(e,t):OU(t)?aOe(e,t):fK(t)?oOe(e,t):iW(t)?sOe(e,t):tG(t)?void 0:oH(t)?cOe(e,t):(nG(t),void 0)}function lOe(...e){let[t,n]=pH(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return t$(t,n)}var n$=class extends SQ{constructor(e,t){super(`Parse`,e,t)}};function uOe(e,t,n){if(!bQ(e,t,n))throw new n$(n,xQ(e,t,n));return n}const dOe=GQ([(e,t,n)=>wQ(n),(e,t,n)=>WQ(e,t,n),(e,t,n)=>HQ(e,t,n),(e,t,n)=>OQ(e,t,n),(e,t,n)=>uOe(e,t,n)]);aH([nH({type:hU(`insert`),path:kU(),value:cH()}),Object({type:hU(`update`),path:kU(),value:cH()}),nH({type:hU(`delete`),path:kU()})]);var fOe=class e extends jV{constructor(...e){super();let t=pH(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=CTe(e,n).Evaluate();this.hasCodec=PDe(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 xH()&&this.check(e)?[]:xQ(this.context,this.type,e)}Clean(e){return OQ(this.context,this.type,e)}Convert(e){return HQ(this.context,this.type,e)}Create(){return lOe(this.context,this.type)}Default(e){return WQ(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(nV().correctiveParse)return dOe(this.context,this.type,e);throw new n$(e,this.Errors(e))}Decode(e){return this.hasCodec?xDe(this.context,this.type,e):this.Parse(e)}Encode(e){return this.hasCodec?EDe(this.context,this.type,e):this.Parse(e)}};function pOe(...e){let[t,n]=pH(e,{2:(e,t)=>[e,t],1:e=>[{},e]});return new fOe(t,n)}const r$=new WeakMap,mOe=Symbol.for(`TypeBox.Kind`);function i$(e){return typeof e==`object`&&!!e}function a$(e){return i$(e)}function hOe(e){return i$(e)&&Object.getOwnPropertySymbols(e).includes(mOe)}function gOe(e){return typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type.filter(e=>typeof e==`string`):[]}function _Oe(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 i$(e)&&!Array.isArray(e);default:return!1}}function vOe(e){return i$(e)}function yOe(e){if(vOe(e))try{return c$(e)}catch{return}}function bOe(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 xOe(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]=s$(e[t],r));if(t.additionalProperties&&a$(t.additionalProperties))for(let[n,i]of Object.entries(e))r.has(n)||(e[n]=s$(i,t.additionalProperties))}function SOe(e,t){if(Array.isArray(t.items)){for(let n=0;n<e.length;n++){let r=t.items[n];r&&(e[n]=s$(e[n],r))}return}if(a$(t.items))for(let n=0;n<e.length;n++)e[n]=s$(e[n],t.items)}function o$(e,t){for(let n of t){let t=s$(structuredClone(e),n);if(yOe(n)?.Check(t))return t}return e}function s$(e,t){let n=e;if(Array.isArray(t.allOf))for(let e of t.allOf)n=s$(n,e);Array.isArray(t.anyOf)&&(n=o$(n,t.anyOf)),Array.isArray(t.oneOf)&&(n=o$(n,t.oneOf));let r=gOe(t),i=r.length>1&&r.some(e=>_Oe(n,e));if(r.length>0&&!i)for(let e of r){let t=bOe(n,e);if(t!==n){n=t;break}}return r.includes(`object`)&&i$(n)&&!Array.isArray(n)&&xOe(n,t),r.includes(`array`)&&Array.isArray(n)&&SOe(n,t),n}function c$(e){let t=e,n=r$.get(t);if(n)return n;let r=pOe(e);return r$.set(t,r),r}function COe(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 wOe(e,t){let n=structuredClone(t.arguments);HQ(e.parameters,n);let r=c$(e.parameters);if(!hOe(e.parameters)&&a$(e.parameters)){let t=s$(n,e.parameters);if(t!==n)if(i$(n)&&i$(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=>` - ${COe(e)}: ${e.message}`).join(`
@@ -4218,7 +4218,7 @@ Otherwise, output ONLY a markdown bullet list (one bullet per memory), no header
4218
4218
 
4219
4219
  `)}`:n.join(`
4220
4220
 
4221
- `)}function kke(e){return e?.length?e.filter(e=>e.kind===`image`&&e.data).map(e=>({type:`image`,data:e.data,mimeType:e.mimeType})):[]}var Ake={include:[`*`],exclude:[]},q1=c({getRegisteredProviderConfig:()=>Q1,getRegisteredProviderIds:()=>$1,registerProviderConfig:()=>e0,registerProviders:()=>Z1,shouldIncludeProvider:()=>J1,unregisterProviderConfig:()=>t0});const jke=Object.assign({"/packages/dev-tools/providers.build.json":Ake})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function J1(e){let{include:t,exclude:n}=jke;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const Mke=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-cgi4Kkfa.js`),"./built-in/bedrock-camp.ts":()=>Promise.resolve().then(()=>Lke),"./built-in/local-llm.ts":()=>Promise.resolve().then(()=>D5)}),Nke=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-CE1Bs7rN.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-DnyK8Sst.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-DBqo8Qbh.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-BJyWKtaP.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok-models.ts":()=>import(`./xai-grok-models-B0Tf--xf.js`),"/packages/webapp/providers/xai-grok-sanitize.ts":()=>import(`./xai-grok-sanitize-CV6qvaEF.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-CnXU8B16.js`)}),Y1=new Map;let X1=null;function Z1(){return X1||(X1=(async()=>{for(let[e,t]of Object.entries(Mke)){let e=await t();e.config&&J1(e.config.id)&&(Y1.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(Nke)){let e=await t();e.config&&(Y1.set(e.config.id,e.config),e.register?.())}})(),X1)}function Q1(e){return Y1.get(e)}function $1(){return[...Y1.keys()]}function e0(e){Y1.set(e.id,e)}function t0(e){return Y1.delete(e)}var Pke=c({copyTextToClipboard:()=>Fke});async function Fke(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}function n0(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 Ike(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:n0(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:n0(e.content,`(tool image omitted: model does not support images)`)}:e)}function r0(e,t,n){let r=new Map,i=Ike(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 i0(e,t,n){let r=e.maxTokens>0?e.maxTokens>=e.contextWindow-1024?Math.min(e.maxTokens,32e3):e.maxTokens:void 0;return{temperature:t?.temperature,maxTokens:t?.maxTokens??r,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 a0(e){return e===`xhigh`?`high`:e}function o0(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[a0(n)],a=Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}var Lke=c({bedrockCampRegionFromBaseUrl:()=>s0,config:()=>Rke,isBedrockCampCompatible:()=>c0,register:()=>sAe,streamBedrockCamp:()=>_0,streamSimpleBedrockCamp:()=>v0});const Rke={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`},zke=/^(us|eu|global|apac)\./,Bke=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,Vke=/bedrock-runtime(?:-fips)?\.([a-z0-9-]+)\.amazonaws\.com(?:\.cn)?$/i;function s0(e){if(!e)return null;try{let{hostname:t}=new URL(e);return t.toLowerCase().match(Vke)?.[1]??null}catch{return null}}function Hke(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function c0(e,t){if(!zke.test(e.id)||!Bke.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return Hke(n,t)}function Uke(e,t){return!u0(e,t,[`claude-opus-4-7`,`opus-4-7`])}function Wke(e){return{onPayload:e.onPayload,onResponse:e.onResponse,toolChoice:e.toolChoice,thinkingDisplay:e.thinkingDisplay,interleavedThinking:e.interleavedThinking,requestMetadata:e.requestMetadata}}function l0(e,t){return(t?[e,t]:[e]).flatMap(e=>{let t=e.toLowerCase();return[t,t.replace(/[\s_.:]+/g,`-`)]})}function u0(e,t,n){return l0(e,t).some(e=>n.some(t=>e.includes(t)))}function Gke(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function d0(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function Kke(e,t,n){let r=[],i=r0(e.messages,t,Gke);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:d0(n.content)}]:n.content.map(e=>{if(e.type===`text`)return{text:d0(e.text)};if(e.type===`image`)return{image:f0(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:d0(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;Jke(t)?!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({text:d0(r.thinking)}):e.push({reasoningContent:{reasoningText:{text:d0(r.thinking),signature:r.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:d0(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:f0(e.mimeType,e.data)}:{text:d0(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:f0(e.mimeType,e.data)}:{text:d0(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`&&h0(t)&&r.length>0){let e=r[r.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push(g0(n))}return r}function f0(e,t){return{source:{bytes:t},format:qke(e)}}function qke(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 Jke(e){return m0(e)}function p0(e,t){return u0(e,t,[`opus-4-6`,`opus-4-7`,`sonnet-4-6`])}function Yke(e,t){return u0(e,t,[`opus-4-7`])}function Xke(e,t){return u0(e,t,[`opus-4-6`])}function Zke(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 Qke(e,t,n){if(e===`xhigh`&&Yke(t,n))return`xhigh`;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return Xke(t,n)?`max`:`high`;default:return`high`}}function $ke(e){if(s0(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 eAe(e,t){if(!t.reasoning||!e.reasoning||!m0(e))return;let n=$ke(e)?void 0:t.thinkingDisplay??`summarized`;if(p0(e.id,e.name))return{thinking:{type:`adaptive`,...n===void 0?{}:{display:n}},output_config:{effort:Qke(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 m0(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 h0(e){let t=l0(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 g0(e){return{cachePoint:{type:`default`,...e===`long`?{ttl:`1h`}:{}}}}function tAe(e,t,n){if(!e)return;let r=[{text:d0(e)}];return n!==`none`&&h0(t)&&r.push(g0(n)),r}function nAe(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 rAe(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 iAe(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,WJ(t,n.usage)),n.stopReason=nAe(e.stopReason||`end_turn`)}function aAe(e){return e??`short`}function oAe(e){let t={};return e.headers.forEach((e,n)=>{t[n.toLowerCase()]=e}),t}const _0=(e,t,n={})=>{let r=YJ();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=aAe(n.cacheRetention),c={};n.maxTokens!==void 0&&(c.maxTokens=n.maxTokens),n.temperature!==void 0&&Uke(e.id,e.name)&&(c.temperature=n.temperature);let l={modelId:e.id,messages:Kke(t,e,s),system:tAe(t.systemPrompt,e,s),inferenceConfig:c,toolConfig:Zke(t.tools,n.toolChoice),additionalModelRequestFields:eAe(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:oAe(f)},e),!f.ok){let e=await f.text();throw Error(rAe(f.status,e))}if(iAe(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},v0=(e,t,n)=>{let r=i0(e,n,void 0),i=n?Wke(n):{};if(!n?.reasoning)return _0(e,t,{...r,...i,reasoning:void 0});if(m0(e)){if(p0(e.id,e.name))return _0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let a=o0(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return _0(e,t,{...r,...i,maxTokens:a.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[a0(n.reasoning)]:a.budgetTokens}})}return _0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function sAe(){kJ({api:`bedrock-camp-converse`,stream:_0,streamSimple:v0})}[`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 cAe(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 lAe(e,t){return e.some(e=>cAe(e,t))}const y0=`slicc_oauth_extra_domains`;function b0(e){try{let t=e.getItem(y0);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 x0(e,t){try{e.setItem(y0,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}var S0=c({addAccount:()=>vAe,getAccounts:()=>I0,getAllAvailableModels:()=>F0,getAllExtraOAuthDomains:()=>_Ae,getApiKey:()=>J0,getApiKeyForProvider:()=>H0,getApiVersionForProvider:()=>G0,getAvailableProviders:()=>pAe,getBaseUrlForProvider:()=>U0,getDeploymentForProvider:()=>W0,getExtraOAuthDomains:()=>L0,getOAuthAccountInfo:()=>M0,getProviderConfig:()=>k0,getProviderModels:()=>j0,getRawApiKeyForProvider:()=>bAe,getSelectedModelId:()=>K0,getSelectedProvider:()=>q0,isModelHiddenFromPicker:()=>P0,migrateLegacyAuthOnlySelection:()=>O0,removeAccount:()=>yAe,resolveCurrentModel:()=>X0,resolveModelById:()=>Y0,saveOAuthAccount:()=>V0,setExtraOAuthDomains:()=>R0,setExtraOAuthDomainsAsync:()=>gAe});const C0=VJ,w0=UJ,T0=`slicc_accounts`,E0=`selected-model`,uAe=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],dAe=new Set([`github`]);let D0=!1;function fAe(){if(!D0){D0=!0;for(let e of uAe)try{localStorage.removeItem(e)}catch{}O0()}}function O0(){try{let e=localStorage.getItem(E0);if(!e)return;let t=e.indexOf(`:`);if(t<=0)return;let n=e.slice(0,t);dAe.has(n)&&localStorage.removeItem(E0)}catch{}}function pAe(){let e=HJ().filter(J1),t=$1();return[...new Set([...e,...t])].filter(e=>!Q1(e)?.hidden)}function k0(e){return Q1(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function A0(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}),t.thinkingLevelMap!==void 0&&(e.thinkingLevelMap={...e.thinkingLevelMap??{},...t.thinkingLevelMap})}function j0(e){try{if(e===`bedrock-camp`){let e=s0(U0(`bedrock-camp`));return w0(`amazon-bedrock`).filter(t=>c0(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=k0(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return N0.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of HJ())try{for(let t of w0(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&&A0(o,s),A0(o,n),o})}if(t.isOAuth){let n=w0(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&A0(i,a),i})}return w0(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return N0.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function M0(e){let t=I0().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 N0=v(`provider-settings`),mAe=[/haiku/i];function P0(e){return mAe.some(t=>t.test(e))}function hAe(e){return e.filter(e=>!P0(e.id))}function F0(){let e=I0();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=k0(n.providerId);if(e.hidden)continue;let r=hAe(j0(n.providerId));if(r.length===0)continue;let i={providerId:n.providerId,providerName:e.name,models:r};t.set(n.providerId,i)}return[...t.values()]}function I0(){fAe();let e=localStorage.getItem(T0);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 L0(e){return b0(localStorage)[e]??[]}function R0(e,t){let n=b0(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,x0(localStorage,n)}async function gAe(e,t){if(MN()){R0(e,t);return}let n=jN();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{x0(localStorage,r)}catch(t){N0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function _Ae(){return b0(localStorage)}function z0(e){localStorage.setItem(T0,JSON.stringify(e))}async function B0(e){if(MN()){z0(e);return}let t=jN();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(T0,r)}catch(e){N0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function vAe(e,t,n,r,i){let a=I0().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),z0(a)}async function yAe(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&&N0.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){N0.error(`OAuth replica removal failed`,{providerId:e,isExtension:t,error:n instanceof Error?n.message:String(n)})}await B0(I0().filter(t=>t.providerId!==e));let n=localStorage.getItem(E0)??``,r=n.indexOf(`:`);r>0&&n.slice(0,r)===e&&localStorage.removeItem(E0)}async function V0(e){let t=I0().find(t=>t.providerId===e.providerId),n=I0().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 B0(n);let r=k0(e.providerId)?.oauthTokenDomains??[],i=L0(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&&N0.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message}),t(n??{})})});if(t.error&&N0.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t.maskedValue){let n=I0(),r=n.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=t.maskedValue,await B0(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=I0(),i=r.find(t=>t.providerId===e.providerId);i&&typeof n.maskedValue==`string`&&(i.maskedValue=n.maskedValue,await B0(r))}else N0.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){N0.error(`OAuth replica sync failed`,{providerId:e.providerId,isExtension:s,error:t instanceof Error?t.message:String(t)})}}function bAe(e){let t=I0().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function H0(e){let t=I0().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(k0(e).optionalApiKey?`local`:null):null}function U0(e){return I0().find(t=>t.providerId===e)?.baseUrl??null}function W0(e){return I0().find(t=>t.providerId===e)?.deployment??null}function G0(e){return I0().find(t=>t.providerId===e)?.apiVersion??null}function K0(){let e=localStorage.getItem(E0)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function xAe(){return localStorage.getItem(E0)||``}function q0(){let e=xAe(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=I0();return n.length>0?n[0].providerId:`anthropic`}function J0(){return H0(q0())}function Y0(e){if(!e)return X0();let t=q0(),n=U0(t);try{let r=k0(t),i=C0(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=j0(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 X0()}}function X0(){let e=q0(),t=K0(),n=U0(e),r=j0(e),i=k0(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=k0(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=C0(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:C0(`anthropic`,`claude-sonnet-4-0`)}}async function SAe(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 CAe({wantVideo:t,videoDeviceId:t?await Z0(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Z0(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 Z0(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 CAe(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 wAe(){return{stdout:`ffmpeg - WASM build, downloaded on demand
4221
+ `)}function kke(e){return e?.length?e.filter(e=>e.kind===`image`&&e.data).map(e=>({type:`image`,data:e.data,mimeType:e.mimeType})):[]}var Ake={include:[`*`],exclude:[]},q1=c({getRegisteredProviderConfig:()=>Q1,getRegisteredProviderIds:()=>$1,registerProviderConfig:()=>e0,registerProviders:()=>Z1,shouldIncludeProvider:()=>J1,unregisterProviderConfig:()=>t0});const jke=Object.assign({"/packages/dev-tools/providers.build.json":Ake})[`/packages/dev-tools/providers.build.json`]??{include:[`*`],exclude:[]};function J1(e){let{include:t,exclude:n}=jke;return n.includes(`*`)||n.includes(e)?!1:!!(t.includes(`*`)||t.includes(e))}const Mke=Object.assign({"./built-in/azure-ai-foundry.ts":()=>import(`./azure-ai-foundry-CzkPLAhp.js`),"./built-in/azure-openai.ts":()=>import(`./azure-openai-CCocZQqr.js`),"./built-in/bedrock-camp.ts":()=>Promise.resolve().then(()=>Lke),"./built-in/local-llm.ts":()=>Promise.resolve().then(()=>D5)}),Nke=Object.assign({"/packages/webapp/providers/adobe.ts":()=>import(`./adobe-uKGa5Psy.js`),"/packages/webapp/providers/github-copilot.ts":()=>import(`./github-copilot-BXb0hqex.js`),"/packages/webapp/providers/github.ts":()=>import(`./github-DDaiVse9.js`),"/packages/webapp/providers/openai-codex.ts":()=>import(`./openai-codex-C-AjuizZ.js`),"/packages/webapp/providers/xai-grok-errors.ts":()=>import(`./xai-grok-errors-ByEMMSoz.js`),"/packages/webapp/providers/xai-grok-models.ts":()=>import(`./xai-grok-models-B0Tf--xf.js`),"/packages/webapp/providers/xai-grok-sanitize.ts":()=>import(`./xai-grok-sanitize-CV6qvaEF.js`),"/packages/webapp/providers/xai-grok.ts":()=>import(`./xai-grok-B-1r34dF.js`)}),Y1=new Map;let X1=null;function Z1(){return X1||(X1=(async()=>{for(let[e,t]of Object.entries(Mke)){let e=await t();e.config&&J1(e.config.id)&&(Y1.set(e.config.id,e.config),e.register?.())}for(let[e,t]of Object.entries(Nke)){let e=await t();e.config&&(Y1.set(e.config.id,e.config),e.register?.())}})(),X1)}function Q1(e){return Y1.get(e)}function $1(){return[...Y1.keys()]}function e0(e){Y1.set(e.id,e)}function t0(e){return Y1.delete(e)}var Pke=c({copyTextToClipboard:()=>Fke});async function Fke(e){if(!e)return!1;if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;try{let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.cssText=`position:fixed; opacity:0; pointer-events:none; left:-9999px;`,document.body.appendChild(t),t.select();let n=document.execCommand?.(`copy`)??!1;return document.body.removeChild(t),n}catch{return!1}}function n0(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 Ike(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:n0(e.content,`(image omitted: model does not support images)`)}:e.role===`toolResult`?{...e,content:n0(e.content,`(tool image omitted: model does not support images)`)}:e)}function r0(e,t,n){let r=new Map,i=Ike(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 i0(e,t,n){let r=e.maxTokens>0?e.maxTokens>=e.contextWindow-1024?Math.min(e.maxTokens,32e3):e.maxTokens:void 0;return{temperature:t?.temperature,maxTokens:t?.maxTokens??r,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 a0(e){return e===`xhigh`?`high`:e}function o0(e,t,n,r){let i={minimal:1024,low:2048,medium:8192,high:16384,...r}[a0(n)],a=Math.min(e+i,t);return a<=i&&(i=Math.max(0,a-1024)),{maxTokens:a,thinkingBudget:i}}var Lke=c({bedrockCampRegionFromBaseUrl:()=>s0,config:()=>Rke,isBedrockCampCompatible:()=>c0,register:()=>sAe,streamBedrockCamp:()=>_0,streamSimpleBedrockCamp:()=>v0});const Rke={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`},zke=/^(us|eu|global|apac)\./,Bke=/\.anthropic\.claude-(opus|sonnet|haiku)-4/,Vke=/bedrock-runtime(?:-fips)?\.([a-z0-9-]+)\.amazonaws\.com(?:\.cn)?$/i;function s0(e){if(!e)return null;try{let{hostname:t}=new URL(e);return t.toLowerCase().match(Vke)?.[1]??null}catch{return null}}function Hke(e,t){return e===`global`?!0:e===`us`?t.startsWith(`us-`):e===`eu`?t.startsWith(`eu-`):e===`apac`?t.startsWith(`ap-`):!1}function c0(e,t){if(!zke.test(e.id)||!Bke.test(e.id))return!1;if(!t)return!0;let n=e.id.split(`.`,1)[0];return Hke(n,t)}function Uke(e,t){return!u0(e,t,[`claude-opus-4-7`,`opus-4-7`])}function Wke(e){return{onPayload:e.onPayload,onResponse:e.onResponse,toolChoice:e.toolChoice,thinkingDisplay:e.thinkingDisplay,interleavedThinking:e.interleavedThinking,requestMetadata:e.requestMetadata}}function l0(e,t){return(t?[e,t]:[e]).flatMap(e=>{let t=e.toLowerCase();return[t,t.replace(/[\s_.:]+/g,`-`)]})}function u0(e,t,n){return l0(e,t).some(e=>n.some(t=>e.includes(t)))}function Gke(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length>64?t.slice(0,64):t}function d0(e){return e?e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,`�`):``}function Kke(e,t,n){let r=[],i=r0(e.messages,t,Gke);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:d0(n.content)}]:n.content.map(e=>{if(e.type===`text`)return{text:d0(e.text)};if(e.type===`image`)return{image:f0(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:d0(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;Jke(t)?!r.thinkingSignature||r.thinkingSignature.trim().length===0?e.push({text:d0(r.thinking)}):e.push({reasoningContent:{reasoningText:{text:d0(r.thinking),signature:r.thinkingSignature}}}):e.push({reasoningContent:{reasoningText:{text:d0(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:f0(e.mimeType,e.data)}:{text:d0(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:f0(e.mimeType,e.data)}:{text:d0(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`&&h0(t)&&r.length>0){let e=r[r.length-1];e.role===`user`&&Array.isArray(e.content)&&e.content.push(g0(n))}return r}function f0(e,t){return{source:{bytes:t},format:qke(e)}}function qke(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 Jke(e){return m0(e)}function p0(e,t){return u0(e,t,[`opus-4-6`,`opus-4-7`,`sonnet-4-6`])}function Yke(e,t){return u0(e,t,[`opus-4-7`])}function Xke(e,t){return u0(e,t,[`opus-4-6`])}function Zke(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 Qke(e,t,n){if(e===`xhigh`&&Yke(t,n))return`xhigh`;switch(e){case`minimal`:case`low`:return`low`;case`medium`:return`medium`;case`high`:return`high`;case`xhigh`:return Xke(t,n)?`max`:`high`;default:return`high`}}function $ke(e){if(s0(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 eAe(e,t){if(!t.reasoning||!e.reasoning||!m0(e))return;let n=$ke(e)?void 0:t.thinkingDisplay??`summarized`;if(p0(e.id,e.name))return{thinking:{type:`adaptive`,...n===void 0?{}:{display:n}},output_config:{effort:Qke(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 m0(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 h0(e){let t=l0(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 g0(e){return{cachePoint:{type:`default`,...e===`long`?{ttl:`1h`}:{}}}}function tAe(e,t,n){if(!e)return;let r=[{text:d0(e)}];return n!==`none`&&h0(t)&&r.push(g0(n)),r}function nAe(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 rAe(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 iAe(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,WJ(t,n.usage)),n.stopReason=nAe(e.stopReason||`end_turn`)}function aAe(e){return e??`short`}function oAe(e){let t={};return e.headers.forEach((e,n)=>{t[n.toLowerCase()]=e}),t}const _0=(e,t,n={})=>{let r=YJ();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=aAe(n.cacheRetention),c={};n.maxTokens!==void 0&&(c.maxTokens=n.maxTokens),n.temperature!==void 0&&Uke(e.id,e.name)&&(c.temperature=n.temperature);let l={modelId:e.id,messages:Kke(t,e,s),system:tAe(t.systemPrompt,e,s),inferenceConfig:c,toolConfig:Zke(t.tools,n.toolChoice),additionalModelRequestFields:eAe(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:oAe(f)},e),!f.ok){let e=await f.text();throw Error(rAe(f.status,e))}if(iAe(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},v0=(e,t,n)=>{let r=i0(e,n,void 0),i=n?Wke(n):{};if(!n?.reasoning)return _0(e,t,{...r,...i,reasoning:void 0});if(m0(e)){if(p0(e.id,e.name))return _0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets});let a=o0(r.maxTokens||0,e.maxTokens,n.reasoning,n.thinkingBudgets);return _0(e,t,{...r,...i,maxTokens:a.maxTokens,reasoning:n.reasoning,thinkingBudgets:{...n.thinkingBudgets||{},[a0(n.reasoning)]:a.budgetTokens}})}return _0(e,t,{...r,...i,reasoning:n.reasoning,thinkingBudgets:n.thinkingBudgets})};function sAe(){kJ({api:`bedrock-camp-converse`,stream:_0,streamSimple:v0})}[`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 cAe(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 lAe(e,t){return e.some(e=>cAe(e,t))}const y0=`slicc_oauth_extra_domains`;function b0(e){try{let t=e.getItem(y0);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 x0(e,t){try{e.setItem(y0,JSON.stringify(t))}catch(e){throw Error(`Failed to persist OAuth extras (localStorage quota exceeded?): ${e instanceof Error?e.message:String(e)}`)}}var S0=c({addAccount:()=>vAe,getAccounts:()=>I0,getAllAvailableModels:()=>F0,getAllExtraOAuthDomains:()=>_Ae,getApiKey:()=>J0,getApiKeyForProvider:()=>H0,getApiVersionForProvider:()=>G0,getAvailableProviders:()=>pAe,getBaseUrlForProvider:()=>U0,getDeploymentForProvider:()=>W0,getExtraOAuthDomains:()=>L0,getOAuthAccountInfo:()=>M0,getProviderConfig:()=>k0,getProviderModels:()=>j0,getRawApiKeyForProvider:()=>bAe,getSelectedModelId:()=>K0,getSelectedProvider:()=>q0,isModelHiddenFromPicker:()=>P0,migrateLegacyAuthOnlySelection:()=>O0,removeAccount:()=>yAe,resolveCurrentModel:()=>X0,resolveModelById:()=>Y0,saveOAuthAccount:()=>V0,setExtraOAuthDomains:()=>R0,setExtraOAuthDomainsAsync:()=>gAe});const C0=VJ,w0=UJ,T0=`slicc_accounts`,E0=`selected-model`,uAe=[`slicc_provider`,`slicc_api_key`,`slicc_base_url`,`anthropic_api_key`,`api_provider`,`azure_resource`,`bedrock_region`],dAe=new Set([`github`]);let D0=!1;function fAe(){if(!D0){D0=!0;for(let e of uAe)try{localStorage.removeItem(e)}catch{}O0()}}function O0(){try{let e=localStorage.getItem(E0);if(!e)return;let t=e.indexOf(`:`);if(t<=0)return;let n=e.slice(0,t);dAe.has(n)&&localStorage.removeItem(E0)}catch{}}function pAe(){let e=HJ().filter(J1),t=$1();return[...new Set([...e,...t])].filter(e=>!Q1(e)?.hidden)}function k0(e){return Q1(e)||{id:e,name:e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),description:`${e} provider`,requiresApiKey:!0,requiresBaseUrl:!1}}function A0(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}),t.thinkingLevelMap!==void 0&&(e.thinkingLevelMap={...e.thinkingLevelMap??{},...t.thinkingLevelMap})}function j0(e){try{if(e===`bedrock-camp`){let e=s0(U0(`bedrock-camp`));return w0(`amazon-bedrock`).filter(t=>c0(t,e)).map(e=>({...e,api:`bedrock-camp-converse`,provider:`bedrock-camp`}))}let t=k0(e);if(t.getModelIds){let n;try{n=t.getModelIds()}catch(t){return N0.error(`Provider getModelIds callback failed`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}let r=new Map;for(let e of HJ())try{for(let t of w0(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&&A0(o,s),A0(o,n),o})}if(t.isOAuth){let n=w0(`anthropic`),r=`${e}-anthropic`;return n.map(n=>{let i={...n,api:r,provider:e},a=t.modelOverrides?.[n.id];return a&&A0(i,a),i})}return w0(e===`azure-ai-foundry`?`anthropic`:e)}catch(t){return N0.error(`Failed to load models`,{providerId:e,error:t instanceof Error?t.message:String(t)}),[]}}function M0(e){let t=I0().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 N0=v(`provider-settings`),mAe=[/haiku/i];function P0(e){return mAe.some(t=>t.test(e))}function hAe(e){return e.filter(e=>!P0(e.id))}function F0(){let e=I0();if(e.length===0)return[];let t=new Map;for(let n of e){if(t.has(n.providerId))continue;let e=k0(n.providerId);if(e.hidden)continue;let r=hAe(j0(n.providerId));if(r.length===0)continue;let i={providerId:n.providerId,providerName:e.name,models:r};t.set(n.providerId,i)}return[...t.values()]}function I0(){fAe();let e=localStorage.getItem(T0);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 L0(e){return b0(localStorage)[e]??[]}function R0(e,t){let n=b0(localStorage),r=t.map(e=>e.trim()).filter(e=>e.length>0);r.length===0?delete n[e]:n[e]=r,x0(localStorage,n)}async function gAe(e,t){if(MN()){R0(e,t);return}let n=jN();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{x0(localStorage,r)}catch(t){N0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{providerId:e,error:t instanceof Error?t.message:String(t)})}}function _Ae(){return b0(localStorage)}function z0(e){localStorage.setItem(T0,JSON.stringify(e))}async function B0(e){if(MN()){z0(e);return}let t=jN();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(T0,r)}catch(e){N0.warn(`worker-shim mirror failed after successful page write — reload to refresh`,{error:e instanceof Error?e.message:String(e)})}}function vAe(e,t,n,r,i){let a=I0().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),z0(a)}async function yAe(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&&N0.warn(`OAuth replica DELETE non-ok`,{providerId:e,status:t.status})}}catch(n){N0.error(`OAuth replica removal failed`,{providerId:e,isExtension:t,error:n instanceof Error?n.message:String(n)})}await B0(I0().filter(t=>t.providerId!==e));let n=localStorage.getItem(E0)??``,r=n.indexOf(`:`);r>0&&n.slice(0,r)===e&&localStorage.removeItem(E0)}async function V0(e){let t=I0().find(t=>t.providerId===e.providerId),n=I0().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 B0(n);let r=k0(e.providerId)?.oauthTokenDomains??[],i=L0(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&&N0.error(`SW mask-oauth-token transport failed`,{providerId:e.providerId,error:chrome.runtime.lastError.message}),t(n??{})})});if(t.error&&N0.warn(`SW mask-oauth-token returned error`,{providerId:e.providerId,error:t.error}),t.maskedValue){let n=I0(),r=n.find(t=>t.providerId===e.providerId);r&&(r.maskedValue=t.maskedValue,await B0(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=I0(),i=r.find(t=>t.providerId===e.providerId);i&&typeof n.maskedValue==`string`&&(i.maskedValue=n.maskedValue,await B0(r))}else N0.warn(`OAuth replica POST non-ok`,{providerId:e.providerId,status:t.status})}}catch(t){N0.error(`OAuth replica sync failed`,{providerId:e.providerId,isExtension:s,error:t instanceof Error?t.message:String(t)})}}function bAe(e){let t=I0().find(t=>t.providerId===e);return t&&(t.accessToken||t.apiKey)||null}function H0(e){let t=I0().find(t=>t.providerId===e);return t?t.accessToken||t.apiKey||(k0(e).optionalApiKey?`local`:null):null}function U0(e){return I0().find(t=>t.providerId===e)?.baseUrl??null}function W0(e){return I0().find(t=>t.providerId===e)?.deployment??null}function G0(e){return I0().find(t=>t.providerId===e)?.apiVersion??null}function K0(){let e=localStorage.getItem(E0)||``,t=e.indexOf(`:`);return t>=0?e.slice(t+1):e}function xAe(){return localStorage.getItem(E0)||``}function q0(){let e=xAe(),t=e.indexOf(`:`);if(t>0)return e.slice(0,t);let n=I0();return n.length>0?n[0].providerId:`anthropic`}function J0(){return H0(q0())}function Y0(e){if(!e)return X0();let t=q0(),n=U0(t);try{let r=k0(t),i=C0(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=j0(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 X0()}}function X0(){let e=q0(),t=K0(),n=U0(e),r=j0(e),i=k0(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=k0(e),i=t.isOAuth||e===`azure-ai-foundry`?`anthropic`:e===`bedrock-camp`?`amazon-bedrock`:e,a=C0(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:C0(`anthropic`,`claude-sonnet-4-0`)}}async function SAe(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 CAe({wantVideo:t,videoDeviceId:t?await Z0(e.deviceId,`videoinput`):void 0,audioDeviceId:n?await Z0(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 Z0(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 CAe(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 wAe(){return{stdout:`ffmpeg - WASM build, downloaded on demand
4222
4222
 
4223
4223
  Usage:
4224
4224
  ffmpeg [global-opts] -i input [input-opts] ... output [output-opts]
@@ -5336,20 +5336,20 @@ authorization-code flow, stores the access token, and retries.
5336
5336
  On success, the server is persisted to /workspace/.mcp/servers.json and
5337
5337
  an alias shim is written to /workspace/.mcp/aliases/<name>.jsh so the
5338
5338
  short name resolves on the PATH.
5339
- `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return P2(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return P2(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_\-]*$/.test(i))return P2(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-DHtr0thS.js`).then(e=>e.r);if(await a(i,t.fs))return P2(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>T2),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await Nje(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>R2(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 Zje(i,t);let m=await V2(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-DGgbt705.js`);e({name:i,serverUrl:r,auth:u})}return N2([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${M2}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
5339
+ `);let n=e.filter(e=>!e.startsWith(`--`));if(n.length<2)return P2(`mcp add: expected <url> <name>`);let[r,i]=n;if(!/^https?:\/\//i.test(r))return P2(`mcp add: invalid URL "${r}" (must start with http:// or https://)`);if(!/^[A-Za-z][A-Za-z0-9_\-]*$/.test(i))return P2(`mcp add: invalid name "${i}" (letters, digits, _ and - only; must start with a letter)`);let{getServer:a,setServer:o}=await import(`./store-UGcMsrpW.js`).then(e=>e.r);if(await a(i,t.fs))return P2(`mcp add: a server named "${i}" already exists`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>T2),l=new s({url:r,fetchImpl:t.fetchImpl}),u;try{await l.initialize()}catch(e){if(!(e instanceof c))throw e;u=await Nje(r,i,e.resourceMetadataUrl,t),l=new s({url:r,fetchImpl:t.fetchImpl,getAuthHeader:()=>R2(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 Zje(i,t);let m=await V2(i,f,t);if(u){let{registerMcpProvider:e}=await import(`./provider-C-jyIoxd.js`);e({name:i,serverUrl:r,auth:u})}return N2([`Added MCP server "${i}" → ${r}`,` tools: ${d.length}, apps: ${f.length} (${m} sprinkle${m===1?``:`s`})`,` alias: ${M2}/${i}.jsh`,u?` auth: oauth (provider mcp:${i})`:` auth: none`].join(`
5340
5340
  `)+`
5341
- `)}async function Nje(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-DDRapyi2.js`),{saveOAuthAccount:s}=await Promise.resolve().then(()=>S0),c=await Yje(r.oauthFetchImpl),l=r.oauthLauncher??await z2(),u=await i(e,n,c);j2.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await Jje(),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 Pje(e,t){if(e.includes(`--help`)||e.includes(`-h`))return N2(`usage: mcp list
5342
- `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-DGgbt705.js`);await n();let{listServers:r}=await import(`./store-DHtr0thS.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return N2("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 N2(F2(o))}function F2(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(`
5341
+ `)}async function Nje(e,t,n,r){let{discoverAuth:i,dynamicRegister:a,runAuthFlow:o}=await import(`./oauth-3qcxsbc2.js`),{saveOAuthAccount:s}=await Promise.resolve().then(()=>S0),c=await Yje(r.oauthFetchImpl),l=r.oauthLauncher??await z2(),u=await i(e,n,c);j2.debug(`MCP OAuth discovery succeeded`,{name:t,serverUrl:e,discoveryPath:u.discoveryPath,issuer:u.issuer});let d=await Jje(),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 Pje(e,t){if(e.includes(`--help`)||e.includes(`-h`))return N2(`usage: mcp list
5342
+ `);let{ensureAllMcpProvidersRegistered:n}=await import(`./provider-C-jyIoxd.js`);await n();let{listServers:r}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),i=await r(t.fs),a=Object.keys(i).sort();if(a.length===0)return N2("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 N2(F2(o))}function F2(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(`
5343
5343
  `)+`
5344
5344
  `}async function Fje(e,t){if(e[0]===`--help`||e[0]===`-h`)return N2(`usage: mcp search <query>
5345
5345
 
5346
5346
  Case-insensitive substring search across the cached tools of every
5347
5347
  registered MCP server. Matches tool name OR description and prints a
5348
5348
  table of (server, tool, description, match-field) rows.
5349
- `);if(e.length===0)return P2(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-DGgbt705.js`);await i();let{listServers:a}=await import(`./store-DHtr0thS.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return N2("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 N2(`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,Ije(e.description),e.match]);return N2(F2(l))}function Ije(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Lje(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?P2(`mcp delete: expected <name>`):N2(`usage: mcp delete <name>
5350
- `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-DGgbt705.js`);await r(n);let{deleteServer:a}=await import(`./store-DHtr0thS.js`).then(e=>e.r),o=await a(n,t.fs);await Qje(n,t),await $je(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await Promise.resolve().then(()=>S0);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){j2.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?P2(`mcp delete: no server, alias, or account found for "${n}"`):N2([`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(`
5349
+ `);if(e.length===0)return P2(`mcp search: expected <query>`);let n=e[0],r=n.toLowerCase(),{ensureAllMcpProvidersRegistered:i}=await import(`./provider-C-jyIoxd.js`);await i();let{listServers:a}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),o=await a(t.fs),s=Object.keys(o).sort();if(s.length===0)return N2("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 N2(`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,Ije(e.description),e.match]);return N2(F2(l))}function Ije(e){if(!e)return``;let t=e.replace(/\s+/g,` `).trim();return t.length<=60?t:t.slice(0,59)+`…`}async function Lje(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?P2(`mcp delete: expected <name>`):N2(`usage: mcp delete <name>
5350
+ `);let n=e[0],{ensureMcpProviderRegistered:r,removeMcpProvider:i}=await import(`./provider-C-jyIoxd.js`);await r(n);let{deleteServer:a}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),o=await a(n,t.fs);await Qje(n,t),await $je(n,t);let s=`mcp:${n}`,c=!1;try{let{removeAccount:e,getAccounts:t}=await Promise.resolve().then(()=>S0);t().some(e=>e.providerId===s)&&(await e(s),c=!0)}catch(e){j2.warn(`mcp delete: OAuth removal failed`,{providerId:s,error:e instanceof Error?e.message:String(e)})}let l=i(n);return!o&&!c&&!l?P2(`mcp delete: no server, alias, or account found for "${n}"`):N2([`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(`
5351
5351
  `)+`
5352
- `)}async function Rje(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?P2(`mcp invoke: expected <name>`):N2(Bje());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-DGgbt705.js`);await i(n);let{getServer:a}=await import(`./store-DHtr0thS.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return P2(`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 N2(Vje(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return P2(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=zje(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return N2(Hje(n,l));let p=Uje(d,l.inputSchema);if(!p.ok)return P2(`mcp invoke: ${p.error}`);let{McpClient:m}=await Promise.resolve().then(()=>T2),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>R2(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=Gje(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function zje(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=I2(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=I2(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 I2(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 Bje(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
5352
+ `)}async function Rje(e,t){if(e.length===0||e[0]===`--help`||e[0]===`-h`)return e.length===0?P2(`mcp invoke: expected <name>`):N2(Bje());let n=e[0],r=e.slice(1),{ensureMcpProviderRegistered:i}=await import(`./provider-C-jyIoxd.js`);await i(n);let{getServer:a}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),o=await a(n,t.fs);if(!o)return P2(`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 N2(Vje(n,o,s));let c=r[0],l=s.find(e=>e.name===c);if(!l)return P2(`mcp invoke: unknown tool "${c}" on "${n}" (run \`${n}\` to list tools)`);let{timeoutMs:u,remaining:d,warnings:f}=zje(r.slice(1));if(d.includes(`--help`)||d.includes(`-h`))return N2(Hje(n,l));let p=Uje(d,l.inputSchema);if(!p.ok)return P2(`mcp invoke: ${p.error}`);let{McpClient:m}=await Promise.resolve().then(()=>T2),h=new m({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>R2(n):void 0,...u===void 0?{}:{timeoutMs:u}});await h.initialize();let g=Gje(await h.toolsCall(c,p.value));return f.length>0&&(g.stderr=f.map(e=>`${e}\n`).join(``)+g.stderr),g}function zje(e){let t=[],n=[],r,i=0;for(;i<e.length;){let a=e[i];if(a.startsWith(`--timeout=`)){let e=I2(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=I2(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 I2(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 Bje(){return`usage: mcp invoke <name> [tool] [--timeout <seconds>] [--flag value …]
5353
5353
 
5354
5354
  mcp invoke <name> List tools on <name>.
5355
5355
  mcp invoke <name> <tool> --help Show flags for <tool>.
@@ -5379,7 +5379,7 @@ Arguments are coerced according to the tool's JSON Schema:
5379
5379
 
5380
5380
  Re-fetches the tool catalog and \`apps/list\` for <name>. Does NOT refresh
5381
5381
  OAuth tokens — for OAuth token refresh use \`mcp auth <name>\`.
5382
- `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-DGgbt705.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-DHtr0thS.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return P2(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>T2),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>R2(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return P2(`mcp refresh: server "${n}" returned 401 — token may have expired. Run \`mcp auth ${n}\` to re-authenticate.`);throw e}let u=await l.toolsList(),d=await l.appsList();await a(n,{...o,sessionId:void 0,tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await V2(n,d,t);return N2(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function qje(e,t){if(e.includes(`--help`)||e.includes(`-h`))return N2(`usage: mcp auth <name> [--silent | --interactive]
5382
+ `);let n=e[0],{ensureMcpProviderRegistered:r}=await import(`./provider-C-jyIoxd.js`);await r(n);let{getServer:i,setServer:a}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),o=await i(n,t.fs);if(!o)return P2(`mcp refresh: unknown server "${n}"`);let{McpClient:s,McpAuthRequiredError:c}=await Promise.resolve().then(()=>T2),l=new s({url:o.url,fetchImpl:t.fetchImpl,headers:o.headers,getAuthHeader:o.auth?()=>R2(n):void 0});try{await l.initialize()}catch(e){if(e instanceof c)return P2(`mcp refresh: server "${n}" returned 401 — token may have expired. Run \`mcp auth ${n}\` to re-authenticate.`);throw e}let u=await l.toolsList(),d=await l.appsList();await a(n,{...o,sessionId:void 0,tools:u,apps:d,lastRefreshedAt:new Date().toISOString()},t.fs);let f=await V2(n,d,t);return N2(`Refreshed "${n}" — tools: ${u.length}, apps: ${d.length} (${f} sprinkle${f===1?``:`s`})\n`)}async function qje(e,t){if(e.includes(`--help`)||e.includes(`-h`))return N2(`usage: mcp auth <name> [--silent | --interactive]
5383
5383
 
5384
5384
  Re-authenticate an existing MCP server. By default, attempts a silent
5385
5385
  token renewal using the persisted refresh_token; if that returns no
@@ -5391,7 +5391,7 @@ Options:
5391
5391
  -i, --interactive Skip silent renewal and open the OAuth popup
5392
5392
  directly. Use after revoking a refresh token or
5393
5393
  when the AS no longer accepts the cached one.
5394
- `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return P2(`mcp auth: expected <name>`);let r=n[0],i=e.includes(`--silent`)||e.includes(`-s`),a=e.includes(`--interactive`)||e.includes(`-i`);if(i&&a)return P2(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-DGgbt705.js`),s=await o(r),{getServer:c}=await import(`./store-DHtr0thS.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return P2(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return P2(`mcp auth: server "${r}" does not use OAuth`);if(!s)return P2(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await Promise.resolve().then(()=>q1),f=d(u);if(!f)return P2(`mcp auth: provider "${u}" is not registered`);if(a)return await L2(r,f,t);if(!f.onSilentRenew)return i?P2(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await L2(r,f,t);let p=null;try{p=await f.onSilentRenew()}catch(e){let t=e instanceof Error?e.message:String(e);if(i)return P2(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);j2.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?N2(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?P2(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await L2(r,f,t)}async function L2(e,t,n){if(!t.onOAuthLogin)return P2(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await z2(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?N2(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):P2(`mcp auth: interactive login for "${e}" did not complete`)}async function R2(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await Promise.resolve().then(()=>S0),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await Promise.resolve().then(()=>q1),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){j2.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function z2(){let{createOAuthLauncher:e}=await import(`./oauth-service-BIFoyZr9.js`);return e()}async function Jje(){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-BIFoyZr9.js`),{origin:n}=await t();return`${n}/auth/callback`}async function Yje(e){if(e)return e;let{createProxiedFetch:t}=await Promise.resolve().then(()=>nN),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 B2(e){if(e)return e;let{VirtualFS:t}=await Promise.resolve().then(()=>QO),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>XM);return await t.create({dbName:n})}function Xje(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
5394
+ `);let n=e.filter(e=>!e.startsWith(`-`));if(n.length===0)return P2(`mcp auth: expected <name>`);let r=n[0],i=e.includes(`--silent`)||e.includes(`-s`),a=e.includes(`--interactive`)||e.includes(`-i`);if(i&&a)return P2(`mcp auth: --silent and --interactive are mutually exclusive`);let{ensureMcpProviderRegistered:o}=await import(`./provider-C-jyIoxd.js`),s=await o(r),{getServer:c}=await import(`./store-UGcMsrpW.js`).then(e=>e.r),l=await c(r,t.fs);if(!l)return P2(`mcp auth: unknown server "${r}" (run \`mcp list\` to see configured servers)`);if(!l.auth)return P2(`mcp auth: server "${r}" does not use OAuth`);if(!s)return P2(`mcp auth: failed to register provider for "${r}"`);let u=`mcp:${r}`,{getRegisteredProviderConfig:d}=await Promise.resolve().then(()=>q1),f=d(u);if(!f)return P2(`mcp auth: provider "${u}" is not registered`);if(a)return await L2(r,f,t);if(!f.onSilentRenew)return i?P2(`mcp auth: provider "${u}" does not support silent renewal; retry without --silent`):await L2(r,f,t);let p=null;try{p=await f.onSilentRenew()}catch(e){let t=e instanceof Error?e.message:String(e);if(i)return P2(`mcp auth: silent renewal for "${r}" failed (${t}); retry without --silent to run the interactive flow`);j2.debug(`mcp auth: silent renewal threw, falling back to interactive`,{name:r,error:t})}return p?N2(`Re-authenticated "${r}" via silent renewal (provider ${u})\n`):i?P2(`mcp auth: silent renewal for "${r}" returned no token; retry without --silent to run the interactive flow`):await L2(r,f,t)}async function L2(e,t,n){if(!t.onOAuthLogin)return P2(`mcp auth: provider "${t.id}" does not support interactive OAuth login`);let r=n.oauthLauncher??await z2(),i=!1;return await t.onOAuthLogin(r,()=>{i=!0}),i?N2(`Re-authenticated "${e}" via interactive login (provider ${t.id})\n`):P2(`mcp auth: interactive login for "${e}" did not complete`)}async function R2(e){let t=`mcp:${e}`,{getOAuthAccountInfo:n}=await Promise.resolve().then(()=>S0),r=n(t);if(!r)return null;if(r.expired){try{let{getRegisteredProviderConfig:e}=await Promise.resolve().then(()=>q1),n=await e(t)?.onSilentRenew?.();if(n)return`Bearer ${n}`}catch(e){j2.debug(`silent renewal threw`,{providerId:t,error:e instanceof Error?e.message:String(e)})}return null}return`Bearer ${r.token}`}async function z2(){let{createOAuthLauncher:e}=await import(`./oauth-service-BMa6Ij6L.js`);return e()}async function Jje(){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-BMa6Ij6L.js`),{origin:n}=await t();return`${n}/auth/callback`}async function Yje(e){if(e)return e;let{createProxiedFetch:t}=await Promise.resolve().then(()=>nN),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 B2(e){if(e)return e;let{VirtualFS:t}=await Promise.resolve().then(()=>QO),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>XM);return await t.create({dbName:n})}function Xje(e){return`// MCP alias for "${e}" — forwards args to \`mcp invoke ${e}\`.
5395
5395
  // Auto-generated by \`mcp add ${e}\`; do not edit by hand.
5396
5396
  const argv = Array.isArray(process.argv) ? process.argv.slice(2) : [];
5397
5397
  const escape = (s) => {
@@ -5405,7 +5405,7 @@ const r = await exec(cmd);
5405
5405
  if (r.stdout) process.stdout.write(r.stdout);
5406
5406
  if (r.stderr) process.stderr.write(r.stderr);
5407
5407
  process.exit(r.exitCode || 0);
5408
- `}async function Zje(e,t){let n=await B2(t.fs);await n.mkdir(M2,{recursive:!0}),await n.writeFile(`${M2}/${e}.jsh`,Xje(e)),t.scriptCatalog?.invalidateJsh()}async function Qje(e,t){let n=await B2(t.fs),r=`${M2}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){j2.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function $je(e,t){let{removeAppSprinkles:n}=await import(`./apps-CFqoQvbx.js`);await n(e,t.fs)}async function V2(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-CFqoQvbx.js`);return(await r(e,t,n.fs)).length}catch(t){return j2.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const H2=new Map;let eMe=0;function tMe(){return OC(`fswatch`,async e=>{let t=e[0];if(!t||t===`--help`)return{stdout:`usage: fswatch <command> [options]
5408
+ `}async function Zje(e,t){let n=await B2(t.fs);await n.mkdir(M2,{recursive:!0}),await n.writeFile(`${M2}/${e}.jsh`,Xje(e)),t.scriptCatalog?.invalidateJsh()}async function Qje(e,t){let n=await B2(t.fs),r=`${M2}/${e}.jsh`;try{await n.exists(r)&&await n.rm(r)}catch(e){j2.debug(`alias removal failed`,{path:r,error:e instanceof Error?e.message:String(e)})}t.scriptCatalog?.invalidateJsh()}async function $je(e,t){let{removeAppSprinkles:n}=await import(`./apps-D4QHJqIo.js`);await n(e,t.fs)}async function V2(e,t,n){try{let{materializeAppSprinkles:r}=await import(`./apps-D4QHJqIo.js`);return(await r(e,t,n.fs)).length}catch(t){return j2.warn(`mcp: failed to materialize app sprinkles`,{name:e,error:t instanceof Error?t.message:String(t)}),0}}const H2=new Map;let eMe=0;function tMe(){return OC(`fswatch`,async e=>{let t=e[0];if(!t||t===`--help`)return{stdout:`usage: fswatch <command> [options]
5409
5409
 
5410
5410
  Commands:
5411
5411
  create --path <path> --pattern <glob> [--scoop <name>] [--name <name>] Watch for file changes
@@ -5500,8 +5500,8 @@ Examples:
5500
5500
  `}function uMe(){return OC(`oauth-token`,async e=>{let{getOAuthAccountInfo:t,getSelectedProvider:n,getAccounts:r}=await Promise.resolve().then(()=>S0),{getRegisteredProviderConfig:i,getRegisteredProviderIds:a}=await Promise.resolve().then(()=>q1);if(e.includes(`--help`)||e.includes(`-h`))return{stdout:lMe(),stderr:``,exitCode:0};if(e.includes(`--list`))return fMe(r,a,i,t);if(e.includes(`--from-file`)||e.includes(`--intercept`))return dMe(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
5501
5501
  `,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
5502
5502
  `,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
5503
- `,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-BIFoyZr9.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-BIFoyZr9.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
5504
- `,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 dMe(e){let{parseInterceptOAuthConfig:t}=await import(`./intercepted-oauth-B6zxgQQV.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-BIFoyZr9.js`),r,i=e.indexOf(`--from-file`);if(i>=0){let t=e[i+1];if(!t)return q2(`oauth-token: --from-file requires a path`);try{let{VirtualFS:e}=await Promise.resolve().then(()=>QO),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>XM),i=await(await e.create({dbName:n})).readFile(t);r=JSON.parse(typeof i==`string`?i:new TextDecoder().decode(i))}catch(e){return q2(`oauth-token: failed to read ${t}: ${e instanceof Error?e.message:String(e)}`)}}else{let t=K2(e,`--authorize-url`),n=K2(e,`--redirect-pattern`);if(!t)return q2(`oauth-token: --authorize-url is required`);if(!n)return q2(`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 q2(`oauth-token: --rewrite requires a value`);let r=n.split(`=`);if(r.length<3)return q2(`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 q2(`oauth-token: invalid intercept config: ${a.error}`);let o=await n();if(!o)return q2(`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}:q2(`oauth-token: intercept timed out or was cancelled`)}function K2(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function q2(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function fMe(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
5503
+ `,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-BMa6Ij6L.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-BMa6Ij6L.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
5504
+ `,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 dMe(e){let{parseInterceptOAuthConfig:t}=await import(`./intercepted-oauth-C7d7QQVI.js`).then(e=>e.n),{createInterceptingOAuthLauncherForCurrentRuntime:n}=await import(`./oauth-service-BMa6Ij6L.js`),r,i=e.indexOf(`--from-file`);if(i>=0){let t=e[i+1];if(!t)return q2(`oauth-token: --from-file requires a path`);try{let{VirtualFS:e}=await Promise.resolve().then(()=>QO),{GLOBAL_FS_DB_NAME:n}=await Promise.resolve().then(()=>XM),i=await(await e.create({dbName:n})).readFile(t);r=JSON.parse(typeof i==`string`?i:new TextDecoder().decode(i))}catch(e){return q2(`oauth-token: failed to read ${t}: ${e instanceof Error?e.message:String(e)}`)}}else{let t=K2(e,`--authorize-url`),n=K2(e,`--redirect-pattern`);if(!t)return q2(`oauth-token: --authorize-url is required`);if(!n)return q2(`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 q2(`oauth-token: --rewrite requires a value`);let r=n.split(`=`);if(r.length<3)return q2(`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 q2(`oauth-token: invalid intercept config: ${a.error}`);let o=await n();if(!o)return q2(`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}:q2(`oauth-token: intercept timed out or was cancelled`)}function K2(e,t){let n=e.indexOf(t);if(n<0)return;let r=e[n+1];if(!(!r||r.startsWith(`--`)))return r}function q2(e){return{stdout:``,stderr:`${e}\n`,exitCode:1}}function fMe(e,t,n,r){let i=t().filter(e=>n(e)?.isOAuth);if(i.length===0)return{stdout:`No OAuth providers configured.
5505
5505
  `,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(`
5506
5506
  `)+`
5507
5507
  `,stderr:``,exitCode:0}}function J2(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 Y2=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return Y2=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 X2(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}const Z2=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 Q2=class extends Error{},$2=class e extends Q2{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 t4({message:r,cause:Z2(n)});let a=n?.error;return t===400?new r4(t,a,r,i):t===401?new i4(t,a,r,i):t===403?new a4(t,a,r,i):t===404?new o4(t,a,r,i):t===409?new s4(t,a,r,i):t===422?new c4(t,a,r,i):t===429?new l4(t,a,r,i):t>=500?new u4(t,a,r,i):new e(t,a,r,i)}},e4=class extends $2{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},t4=class extends $2{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},n4=class extends t4{constructor({message:e}={}){super({message:e??`Request timed out.`})}},r4=class extends $2{},i4=class extends $2{},a4=class extends $2{},o4=class extends $2{},s4=class extends $2{},c4=class extends $2{},l4=class extends $2{},u4=class extends $2{},d4=class extends Q2{constructor(){super(`Could not parse response content as the length limit was reached`)}},f4=class extends Q2{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},p4=class extends Error{constructor(e){super(e)}};const pMe=/^[a-z][a-z0-9+.-]*:/i,mMe=e=>pMe.test(e);let m4=e=>(m4=Array.isArray,m4(e)),h4=m4;function g4(e){return typeof e==`object`?e??{}:{}}function hMe(e){if(!e)return!0;for(let t in e)return!1;return!0}function gMe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _4(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const _Me=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new Q2(`${e} must be an integer`);if(t<0)throw new Q2(`${e} must be a positive integer`);return t},vMe=e=>{try{return JSON.parse(e)}catch{return}},v4=e=>new Promise(t=>setTimeout(t,e)),y4=`6.26.0`,yMe=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`;function bMe(){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 xMe=()=>{let e=bMe();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y4,"X-Stainless-OS":x4(Deno.build.os),"X-Stainless-Arch":b4(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":y4,"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":y4,"X-Stainless-OS":x4(globalThis.process.platform??`unknown`),"X-Stainless-Arch":b4(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=SMe();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":y4,"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":y4,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}};function SMe(){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 b4=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,x4=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 CMe;const wMe=()=>CMe??=xMe();function TMe(){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 S4(...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 C4(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return S4({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function w4(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 EMe(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 DMe=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)}),T4=`RFC3986`,E4=e=>String(e),D4={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:E4};let O4=(e,t)=>(O4=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),O4(e,t));const k4=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),A4=1024,OMe=(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+=A4){let t=a.length>=A4?a.slice(e,e+A4):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]=k4[r];continue}if(r<2048){n[n.length]=k4[192|r>>6]+k4[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=k4[224|r>>12]+k4[128|r>>6&63]+k4[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=k4[240|r>>18]+k4[128|r>>12&63]+k4[128|r>>6&63]+k4[128|r&63]}o+=n.join(``)}return o};function kMe(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function j4(e,t){if(m4(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const M4={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},N4=function(e,t){Array.prototype.push.apply(e,m4(t)?t:[t])};let AMe;const P4={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:OMe,encodeValuesOnly:!1,format:T4,formatter:E4,indices:!1,serializeDate(e){return(AMe??=Function.prototype.call.bind(Date.prototype.toISOString))(e)},skipNulls:!1,strictNullHandling:!1};function jMe(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}const F4={};function I4(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(F4))!==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(F4)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&m4(v)&&(v=j4(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,P4.encoder,g,`key`,p):t;v=``}if(jMe(v)||kMe(v)){if(c){let e=h?t:c(t,P4.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,P4.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let C;if(n===`comma`&&m4(v))h&&c&&(v=j4(v,c)),C=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(m4(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&&m4(v)&&v.length===1?w+`[]`:w;if(i&&m4(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=m4(v)?typeof n==`function`?n(T,w):T:T+(d?`.`+w:`[`+w+`]`);_.set(e,b);let D=new WeakMap;D.set(F4,_),N4(S,I4(x,E,n,r,i,a,o,s,n===`comma`&&h&&m4(v)?null:c,l,u,d,f,p,m,h,g,D))}return S}function MMe(e=P4){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||P4.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=T4;if(e.format!==void 0){if(!O4(D4,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=D4[n],i=P4.filter;(typeof e.filter==`function`||m4(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in M4?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:P4.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:P4.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:P4.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:P4.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:P4.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?P4.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:P4.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:P4.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:P4.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:P4.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:P4.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:P4.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:P4.strictNullHandling}}function NMe(e,t={}){let n=e,r=MMe(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):m4(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=M4[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||N4(o,I4(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 PMe(e){return NMe(e,{arrayFormat:`brackets`})}function FMe(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 IMe;function L4(e){let t;return(IMe??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}let LMe;function R4(e){let t;return(LMe??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var z4,B4,V4=class{constructor(){z4.set(this,void 0),B4.set(this,void 0),J2(this,z4,new Uint8Array,`f`),J2(this,B4,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?L4(e):e;J2(this,z4,FMe([Q(this,z4,`f`),t]),`f`);let n=[],r;for(;(r=RMe(Q(this,z4,`f`),Q(this,B4,`f`)))!=null;){if(r.carriage&&Q(this,B4,`f`)==null){J2(this,B4,r.index,`f`);continue}if(Q(this,B4,`f`)!=null&&(r.index!==Q(this,B4,`f`)+1||r.carriage)){n.push(R4(Q(this,z4,`f`).subarray(0,Q(this,B4,`f`)-1))),J2(this,z4,Q(this,z4,`f`).subarray(Q(this,B4,`f`)),`f`),J2(this,B4,null,`f`);continue}let e=Q(this,B4,`f`)===null?r.preceding:r.preceding-1,t=R4(Q(this,z4,`f`).subarray(0,e));n.push(t),J2(this,z4,Q(this,z4,`f`).subarray(r.index),`f`),J2(this,B4,null,`f`)}return n}flush(){return Q(this,z4,`f`).length?this.decode(`
@@ -5901,7 +5901,7 @@ Examples:
5901
5901
  kill -INT 1024 1025 SIGINT both
5902
5902
  kill -STOP 1024 pause; \`kill -CONT 1024\` resumes
5903
5903
  kill -s SIGKILL 1024 explicit signal name
5904
- `,stderr:``,exitCode:0}}const b7=NF(`@biomejs/wasm-web`,{name:`@biomejs/wasm-web`,type:`module`,collaborators:[`Biome Developers and Contributors`],description:`WebAssembly bindings to the Biome workspace API`,version:`2.4.16`,license:`MIT OR Apache-2.0`,repository:{type:`git`,url:`https://github.com/biomejs/biome`},files:[`biome_wasm_bg.wasm`,`biome_wasm.js`,`biome_wasm.d.ts`],main:`biome_wasm.js`,homepage:`https://biomejs.dev/`,types:`biome_wasm.d.ts`,sideEffects:[`./snippets/*`],keywords:[`parser`,`linter`,`formatter`,`wasm`],publishConfig:{provenance:!0}}.version),PFe=`https://unpkg.com/@biomejs/wasm-web@${b7}/biome_wasm_bg.wasm`,x7=`slicc-biome-${b7}`;let S7=null;async function FFe(e={}){return S7||=IFe(e.onProgress).catch(e=>{throw S7=null,e}),S7}async function IFe(e){let t=e??(()=>{});if(UF()){t(`biome ready (node wasm)`);let{Biome:e}=await import(`./nodejs-BV7kLKbo.js`).then(e=>u(e.default,1)),n=new e,{projectKey:r}=n.openProject();return{biome:n,projectKey:r,version:b7}}t(`downloading biome_wasm_bg.wasm (cached after first run)...`);let n=await LFe(PFe,`application/wasm`,t),r=new ArrayBuffer(n.byteLength);new Uint8Array(r).set(n);let i=await WebAssembly.compile(r),a=(await import(`./biome_wasm-CCl4-by8.js`)).default;await a({module_or_path:i});let{Biome:o}=await import(`./web-D-HTAm7L.js`).then(e=>u(e.default,1)),s=new o,{projectKey:c}=s.openProject();return t(`biome ready`),{biome:s,projectKey:c,version:b7}}async function LFe(e,t,n){if(typeof caches<`u`)try{let t=await(await caches.open(x7)).match(e);if(t)return new Uint8Array(await t.arrayBuffer())}catch{}n(`fetching ${RFe(e)}...`);let r=await fetch(e);if(!r.ok)throw Error(`@biomejs/wasm-web fetch ${e} failed: HTTP ${r.status}`);let i=new Uint8Array(await r.arrayBuffer());if(typeof caches<`u`)try{let n=await caches.open(x7),r=new Response(i,{headers:{"content-type":t}});await n.put(e,r)}catch{}return i}function RFe(e){return e.replace(/^https?:\/\//,``).slice(0,64)}const zFe=new Set([`js`,`mjs`,`cjs`,`jsx`,`ts`,`mts`,`cts`,`tsx`,`json`,`jsonc`,`css`,`graphql`,`gql`,`html`,`svelte`,`vue`,`astro`]),BFe=new Set([`lint`,`format`,`check`,`ci`]);function VFe(e){let t={subcommand:null,paths:[],write:!1,apply:!1,applyUnsafe:!1,stdinFilePath:null,showHelp:!1,showVersion:!1};if(e.length===0)return t.showHelp=!0,t;for(let n=0;n<e.length;n++){let r=e[n];if(r===`-h`||r===`--help`){t.showHelp=!0;continue}if(r===`-v`||r===`--version`){t.showVersion=!0;continue}if(t.subcommand===null&&BFe.has(r)){t.subcommand=r;continue}if(r===`--write`){t.write=!0;continue}if(r===`--apply`){t.apply=!0;continue}if(r===`--apply-unsafe`){t.applyUnsafe=!0;continue}if(r===`--stdin-file-path`){let r=e[n+1];if(typeof r!=`string`||r.startsWith(`-`))throw Error(`biome: --stdin-file-path requires a value`);t.stdinFilePath=r,n+=1;continue}if(r.startsWith(`--stdin-file-path=`)){t.stdinFilePath=r.slice(18);continue}if(r.startsWith(`-`))throw Error(`biome: unknown option: ${r}`);t.paths.push(r)}return t}function C7(e){let t=e.lastIndexOf(`.`);return t<0?!1:zFe.has(e.slice(t+1).toLowerCase())}async function HFe(e,t,n){let r=[],i=[];for(let a of n){let n=e.resolvePath(t,a);if(!await e.exists(n)){i.push(a);continue}(await e.stat?.(n))?.isDirectory?await w7(e,n,r):C7(n)&&r.push(n)}return{files:r,missing:i}}async function w7(e,t,n){let r=await e.readdir?.(t)??[];for(let i of r){if(i===`node_modules`||i.startsWith(`.git`))continue;let r=t===`/`?`/${i}`:`${t}/${i}`;(await e.stat?.(r))?.isDirectory?await w7(e,r,n):C7(r)&&n.push(r)}}function UFe(){return OC(`biome`,async(e,t)=>{let n;try{n=VFe(e)}catch(e){return{stdout:``,stderr:`${e instanceof Error?e.message:String(e)}\n`,exitCode:2}}if(n.showHelp)return{stdout:`biome - WASM build of the Biome linter / formatter
5904
+ `,stderr:``,exitCode:0}}const b7=NF(`@biomejs/wasm-web`,{name:`@biomejs/wasm-web`,type:`module`,collaborators:[`Biome Developers and Contributors`],description:`WebAssembly bindings to the Biome workspace API`,version:`2.4.16`,license:`MIT OR Apache-2.0`,repository:{type:`git`,url:`https://github.com/biomejs/biome`},files:[`biome_wasm_bg.wasm`,`biome_wasm.js`,`biome_wasm.d.ts`],main:`biome_wasm.js`,homepage:`https://biomejs.dev/`,types:`biome_wasm.d.ts`,sideEffects:[`./snippets/*`],keywords:[`parser`,`linter`,`formatter`,`wasm`],publishConfig:{provenance:!0}}.version),PFe=`https://unpkg.com/@biomejs/wasm-web@${b7}/biome_wasm_bg.wasm`,x7=`slicc-biome-${b7}`;let S7=null;async function FFe(e={}){return S7||=IFe(e.onProgress).catch(e=>{throw S7=null,e}),S7}async function IFe(e){let t=e??(()=>{});if(UF()){t(`biome ready (node wasm)`);let{Biome:e}=await import(`./nodejs-5irR1LHy.js`).then(e=>u(e.default,1)),n=new e,{projectKey:r}=n.openProject();return{biome:n,projectKey:r,version:b7}}t(`downloading biome_wasm_bg.wasm (cached after first run)...`);let n=await LFe(PFe,`application/wasm`,t),r=new ArrayBuffer(n.byteLength);new Uint8Array(r).set(n);let i=await WebAssembly.compile(r),a=(await import(`./biome_wasm-CW46ywCD.js`)).default;await a({module_or_path:i});let{Biome:o}=await import(`./web-Dg3d8ZUx.js`).then(e=>u(e.default,1)),s=new o,{projectKey:c}=s.openProject();return t(`biome ready`),{biome:s,projectKey:c,version:b7}}async function LFe(e,t,n){if(typeof caches<`u`)try{let t=await(await caches.open(x7)).match(e);if(t)return new Uint8Array(await t.arrayBuffer())}catch{}n(`fetching ${RFe(e)}...`);let r=await fetch(e);if(!r.ok)throw Error(`@biomejs/wasm-web fetch ${e} failed: HTTP ${r.status}`);let i=new Uint8Array(await r.arrayBuffer());if(typeof caches<`u`)try{let n=await caches.open(x7),r=new Response(i,{headers:{"content-type":t}});await n.put(e,r)}catch{}return i}function RFe(e){return e.replace(/^https?:\/\//,``).slice(0,64)}const zFe=new Set([`js`,`mjs`,`cjs`,`jsx`,`ts`,`mts`,`cts`,`tsx`,`json`,`jsonc`,`css`,`graphql`,`gql`,`html`,`svelte`,`vue`,`astro`]),BFe=new Set([`lint`,`format`,`check`,`ci`]);function VFe(e){let t={subcommand:null,paths:[],write:!1,apply:!1,applyUnsafe:!1,stdinFilePath:null,showHelp:!1,showVersion:!1};if(e.length===0)return t.showHelp=!0,t;for(let n=0;n<e.length;n++){let r=e[n];if(r===`-h`||r===`--help`){t.showHelp=!0;continue}if(r===`-v`||r===`--version`){t.showVersion=!0;continue}if(t.subcommand===null&&BFe.has(r)){t.subcommand=r;continue}if(r===`--write`){t.write=!0;continue}if(r===`--apply`){t.apply=!0;continue}if(r===`--apply-unsafe`){t.applyUnsafe=!0;continue}if(r===`--stdin-file-path`){let r=e[n+1];if(typeof r!=`string`||r.startsWith(`-`))throw Error(`biome: --stdin-file-path requires a value`);t.stdinFilePath=r,n+=1;continue}if(r.startsWith(`--stdin-file-path=`)){t.stdinFilePath=r.slice(18);continue}if(r.startsWith(`-`))throw Error(`biome: unknown option: ${r}`);t.paths.push(r)}return t}function C7(e){let t=e.lastIndexOf(`.`);return t<0?!1:zFe.has(e.slice(t+1).toLowerCase())}async function HFe(e,t,n){let r=[],i=[];for(let a of n){let n=e.resolvePath(t,a);if(!await e.exists(n)){i.push(a);continue}(await e.stat?.(n))?.isDirectory?await w7(e,n,r):C7(n)&&r.push(n)}return{files:r,missing:i}}async function w7(e,t,n){let r=await e.readdir?.(t)??[];for(let i of r){if(i===`node_modules`||i.startsWith(`.git`))continue;let r=t===`/`?`/${i}`:`${t}/${i}`;(await e.stat?.(r))?.isDirectory?await w7(e,r,n):C7(r)&&n.push(r)}}function UFe(){return OC(`biome`,async(e,t)=>{let n;try{n=VFe(e)}catch(e){return{stdout:``,stderr:`${e instanceof Error?e.message:String(e)}\n`,exitCode:2}}if(n.showHelp)return{stdout:`biome - WASM build of the Biome linter / formatter
5905
5905
 
5906
5906
  Usage:
5907
5907
  biome <subcommand> [options] [files...]
@@ -9443,5 +9443,5 @@ Rules:
9443
9443
  `)+`
9444
9444
  `;case`cmdline`:return`kernel-host\0`;case`cwd`:return`/
9445
9445
  `;case`stat`:return`1 (kernel-host) R 0 - 0 -
9446
- `}}function ZLe(e,{orchestrator:t,log:n}){let r=kLe(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 QLe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1,isExtension:o=!1}=e,s=e.logger??console,c=new aI,l=new LLe(t,{...i,getBrowserAPI:()=>n});l.setProcessManager(c),globalThis.__slicc_pm=c,globalThis.__slicc_browser=n,await r.bind(l,n);let u=I(()=>r.emitTrayRuntimeStatus()),d=ke(()=>r.emitTrayRuntimeStatus());await l.init();let f=l.getSharedFS();if(f?R9(l,f,l.getSessionStore()):s.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new WLe(c))}catch(e){s.warn(`Failed to mount /proc`,e)}let{registerSessionCostsProvider:p}=await Promise.resolve().then(()=>JPe);p(()=>l.getSessionCosts());let{getLickManager:m}=await Promise.resolve().then(()=>CLe),h=m();await h.init(),l.setLickManager(h);let g=e.lickEventHandler??ZLe,_={orchestrator:l,lickManager:h,log:s};h.setEventHandler(e=>g(e,_)),globalThis.__slicc_lickManager=h;let{CdpWsPageBridge:v}=await import(`./cdp-ws-page-bridge-BLnWRj3d.js`),{WsSubscriberRegistry:y}=await import(`./ws-subscribers-BEnP0PDu.js`),b=new v({browser:n}),x=new y({bridge:b,webhooks:{has:e=>h.getWebhook(e)!==void 0},dispatcher:{webhook:(e,t)=>{h.handleWebhookEvent(e,{},t)},scoop:(e,t)=>{if(!l.getScoops().find(t=>t.jid===e)){s.warn?.(`browser.websocket: scoop sink not found`,{jid:e});return}let n={id:`ws-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,chatJid:e,senderId:`browser.websocket`,senderName:`browser.websocket`,content:typeof t==`string`?t:JSON.stringify(t,null,2),timestamp:new Date().toISOString(),fromAssistant:!1,channel:`browser.websocket`};l.handleMessage(n)},vfs:async(e,t)=>{if(!f)return;let n=(typeof t==`string`?t:JSON.stringify(t))+`
9447
- `,r=``;try{let t=await f.readFile(e);r=typeof t==`string`?t:new TextDecoder().decode(t)}catch{}await f.writeFile(e,r+n)},log:e=>{s.info?.(`browser.websocket frame`,{payload:e})}}});globalThis.__slicc_wsSubscribers=x;let S=null;if(!o)try{let{startLickWsBridge:e}=await import(`./lick-ws-bridge-nuf5FOHB.js`);S=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 C=null;if(!o)try{let e=new mme(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(),C=()=>e.stop()}catch(e){s.warn(`Failed to start NavigationWatcher`,e)}f&&(async()=>{try{let{getAllMountEntries:e}=await Promise.resolve().then(()=>NO),{recoverMounts:t}=await Promise.resolve().then(()=>TLe),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-Cd14niwX.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 w=null,T=null;if(f)try{let{BshWatchdog:e}=await import(`./bsh-watchdog-CtN1RuOo.js`),{ScriptCatalog:t}=await Promise.resolve().then(()=>mIe),r=new t({jshFs:f,bshFs:f,watcher:f.getWatcher()}),i=new e({browserAPI:n,scriptCatalog:r,fs:f});i.start(),w=()=>i.stop(),T=()=>r.dispose()}catch(e){s.warn(`Failed to start BSH watchdog`,e)}let E=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:h,sharedFs:f??null,processManager:c,async dispose(){if(!E){if(E=!0,u?.(),d?.(),w?.(),T?.(),S?.(),C)try{await C()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(f)try{await f.unmountInternal(`/proc`)}catch{}try{x.dispose()}catch(e){s.warn(`WsSubscriberRegistry.dispose() failed`,e)}try{b.dispose()}catch(e){s.warn(`CdpWsPageBridge.dispose() failed`,e)}$Le({processManager:c,lickManager:h,browser:n,wsRegistry:x})}}}}function $Le(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,e.wsRegistry&&t.__slicc_wsSubscribers===e.wsRegistry&&delete t.__slicc_wsSubscribers}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 eRe(e){let t=Y9(e);return{onMessage:e=>t.onMessage(e),send:e=>{t.send({source:`offscreen`,payload:e})}}}var tRe=class extends tme{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})}})}},nRe=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(!rRe(e)||e.source!==`panel`)return;let t=e.payload;aRe(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=iRe(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 rRe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function iRe(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function aRe(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 oRe=class extends J7{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 sRe(e){let{transport:t,fs:n,browser:r,processManager:i}=e,a=new nRe({transport:t,processManager:i,createShell:(e,a)=>new oRe(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 cRe(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 lRe(e,t){return t?(n,r)=>{if(!uRe(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 uRe(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 dRe(){let e=globalThis.fetch;if(!e)return;let t=typeof self<`u`&&self.location?self.location.origin:void 0;globalThis.fetch=lRe(e.bind(globalThis),t)}function fRe(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 pRe=cRe(e=>mRe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&pRe.handle(e.data)});async function mRe(e){dRe(),fRe(e.localStorageSeed??{}),await Z1();let t=eRe(e.kernelPort),n=new Ke(t),r=Ke.createCallbacks(n),i=new tRe(e.cdpPort);await i.connect();let a=new T(i);Z9=await QLe({container:{},browser:a,bridge:n,callbacks:r,logger:console});let{createSprinkleManagerProxyOverChannel:o}=await import(`./sprinkle-bridge-channel-DwDzRdg8.js`);globalThis.__slicc_sprinkleManager=o({instanceId:e.instanceId});let{createPanelRpcClient:s}=await Promise.resolve().then(()=>hme);$9=s({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9;let c=Z9.processManager,l=Z9.sharedFs;l?Q9=sRe({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{ZM as $,kY as A,JJ as B,Q1 as C,PY as D,NY as E,wY as F,UJ as G,WJ as H,yY as I,AJ as J,HJ as K,xY as L,vY as M,bY as N,bxe as O,SY as P,nN as Q,CY as R,Pke as S,t0 as T,qJ as U,YJ as V,VJ as W,jN as X,kJ as Y,$pe as Z,M0 as _,g5 as a,Te as at,i0 as b,SNe as c,me as ct,u2 as d,s as dt,Ok as et,l2 as f,o as ft,W0 as g,u as gt,U0 as h,d as ht,h5 as i,Ae as it,gxe as j,yxe as k,f5 as l,he as lt,G0 as m,f as mt,v5 as n,q as nt,m5 as o,we as ot,I0 as p,c as pt,RJ as q,_5 as r,K as rt,p5 as s,Ce as st,g9 as t,QO as tt,pje as u,v as ut,V0 as v,e0 as w,r0 as x,o0 as y,TY as z};
9446
+ `}}function ZLe(e,{orchestrator:t,log:n}){let r=kLe(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 QLe(e){let{container:t,browser:n,bridge:r,callbacks:i,skipConeBootstrap:a=!1,isExtension:o=!1}=e,s=e.logger??console,c=new aI,l=new LLe(t,{...i,getBrowserAPI:()=>n});l.setProcessManager(c),globalThis.__slicc_pm=c,globalThis.__slicc_browser=n,await r.bind(l,n);let u=I(()=>r.emitTrayRuntimeStatus()),d=ke(()=>r.emitTrayRuntimeStatus());await l.init();let f=l.getSharedFS();if(f?R9(l,f,l.getSessionStore()):s.warn(`AgentBridge not published — orchestrator.getSharedFS() returned null`),f)try{await f.mountInternal(`/proc`,new WLe(c))}catch(e){s.warn(`Failed to mount /proc`,e)}let{registerSessionCostsProvider:p}=await Promise.resolve().then(()=>JPe);p(()=>l.getSessionCosts());let{getLickManager:m}=await Promise.resolve().then(()=>CLe),h=m();await h.init(),l.setLickManager(h);let g=e.lickEventHandler??ZLe,_={orchestrator:l,lickManager:h,log:s};h.setEventHandler(e=>g(e,_)),globalThis.__slicc_lickManager=h;let{CdpWsPageBridge:v}=await import(`./cdp-ws-page-bridge-6V6vk0DI.js`),{WsSubscriberRegistry:y}=await import(`./ws-subscribers-CwfxO1ZU.js`),b=new v({browser:n}),x=new y({bridge:b,webhooks:{has:e=>h.getWebhook(e)!==void 0},dispatcher:{webhook:(e,t)=>{h.handleWebhookEvent(e,{},t)},scoop:(e,t)=>{if(!l.getScoops().find(t=>t.jid===e)){s.warn?.(`browser.websocket: scoop sink not found`,{jid:e});return}let n={id:`ws-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,chatJid:e,senderId:`browser.websocket`,senderName:`browser.websocket`,content:typeof t==`string`?t:JSON.stringify(t,null,2),timestamp:new Date().toISOString(),fromAssistant:!1,channel:`browser.websocket`};l.handleMessage(n)},vfs:async(e,t)=>{if(!f)return;let n=(typeof t==`string`?t:JSON.stringify(t))+`
9447
+ `,r=``;try{let t=await f.readFile(e);r=typeof t==`string`?t:new TextDecoder().decode(t)}catch{}await f.writeFile(e,r+n)},log:e=>{s.info?.(`browser.websocket frame`,{payload:e})}}});globalThis.__slicc_wsSubscribers=x;let S=null;if(!o)try{let{startLickWsBridge:e}=await import(`./lick-ws-bridge-CB_xyzpN.js`);S=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 C=null;if(!o)try{let e=new mme(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(),C=()=>e.stop()}catch(e){s.warn(`Failed to start NavigationWatcher`,e)}f&&(async()=>{try{let{getAllMountEntries:e}=await Promise.resolve().then(()=>NO),{recoverMounts:t}=await Promise.resolve().then(()=>TLe),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-DC3-8klG.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 w=null,T=null;if(f)try{let{BshWatchdog:e}=await import(`./bsh-watchdog-DjxcEQC3.js`),{ScriptCatalog:t}=await Promise.resolve().then(()=>mIe),r=new t({jshFs:f,bshFs:f,watcher:f.getWatcher()}),i=new e({browserAPI:n,scriptCatalog:r,fs:f});i.start(),w=()=>i.stop(),T=()=>r.dispose()}catch(e){s.warn(`Failed to start BSH watchdog`,e)}let E=!1;return{orchestrator:l,browser:n,bridge:r,lickManager:h,sharedFs:f??null,processManager:c,async dispose(){if(!E){if(E=!0,u?.(),d?.(),w?.(),T?.(),S?.(),C)try{await C()}catch(e){s.warn(`NavigationWatcher.stop() failed`,e)}if(f)try{await f.unmountInternal(`/proc`)}catch{}try{x.dispose()}catch(e){s.warn(`WsSubscriberRegistry.dispose() failed`,e)}try{b.dispose()}catch(e){s.warn(`CdpWsPageBridge.dispose() failed`,e)}$Le({processManager:c,lickManager:h,browser:n,wsRegistry:x})}}}}function $Le(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,e.wsRegistry&&t.__slicc_wsSubscribers===e.wsRegistry&&delete t.__slicc_wsSubscribers}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 eRe(e){let t=Y9(e);return{onMessage:e=>t.onMessage(e),send:e=>{t.send({source:`offscreen`,payload:e})}}}var tRe=class extends tme{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})}})}},nRe=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(!rRe(e)||e.source!==`panel`)return;let t=e.payload;aRe(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=iRe(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 rRe(e){return typeof e==`object`&&!!e&&`source`in e&&`payload`in e}function iRe(e){switch(e){case`SIGINT`:return 130;case`SIGTERM`:return 143;case`SIGKILL`:return 137;case`SIGSTOP`:case`SIGCONT`:return 130}}function aRe(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 oRe=class extends J7{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 sRe(e){let{transport:t,fs:n,browser:r,processManager:i}=e,a=new nRe({transport:t,processManager:i,createShell:(e,a)=>new oRe(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 cRe(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 lRe(e,t){return t?(n,r)=>{if(!uRe(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 uRe(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 dRe(){let e=globalThis.fetch;if(!e)return;let t=typeof self<`u`&&self.location?self.location.origin:void 0;globalThis.fetch=lRe(e.bind(globalThis),t)}function fRe(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 pRe=cRe(e=>mRe(e));self.addEventListener(`message`,e=>{e.data?.type===`kernel-worker-init`&&pRe.handle(e.data)});async function mRe(e){dRe(),fRe(e.localStorageSeed??{}),await Z1();let t=eRe(e.kernelPort),n=new Ke(t),r=Ke.createCallbacks(n),i=new tRe(e.cdpPort);await i.connect();let a=new T(i);Z9=await QLe({container:{},browser:a,bridge:n,callbacks:r,logger:console});let{createSprinkleManagerProxyOverChannel:o}=await import(`./sprinkle-bridge-channel-DwDzRdg8.js`);globalThis.__slicc_sprinkleManager=o({instanceId:e.instanceId});let{createPanelRpcClient:s}=await Promise.resolve().then(()=>hme);$9=s({instanceId:e.instanceId}),globalThis.__slicc_panelRpc=$9;let c=Z9.processManager,l=Z9.sharedFs;l?Q9=sRe({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{ZM as $,kY as A,JJ as B,Q1 as C,PY as D,NY as E,wY as F,UJ as G,WJ as H,yY as I,AJ as J,HJ as K,xY as L,vY as M,bY as N,bxe as O,SY as P,nN as Q,CY as R,Pke as S,t0 as T,qJ as U,YJ as V,VJ as W,jN as X,kJ as Y,$pe as Z,M0 as _,g5 as a,Te as at,i0 as b,SNe as c,me as ct,u2 as d,s as dt,Ok as et,l2 as f,o as ft,W0 as g,u as gt,U0 as h,d as ht,h5 as i,Ae as it,gxe as j,yxe as k,f5 as l,he as lt,G0 as m,f as mt,v5 as n,q as nt,m5 as o,we as ot,I0 as p,c as pt,RJ as q,_5 as r,K as rt,p5 as s,Ce as st,g9 as t,QO as tt,pje as u,v as ut,V0 as v,e0 as w,r0 as x,o0 as y,TY as z};